このセクションでは、@arcblock/did ライブラリ内のすべての公開関数と型に関する包括的なAPIリファレンスを提供します。これには、分散型ID(DID)の作成、検証、検査などの一般的なタスクに対応する、すぐにコピー&ペーストして使用できる実用的なコードスニペットが含まれています。
DIDの作成
これらの関数は、秘密鍵、公開鍵、ハッシュなどのさまざまな暗号学的入力からDIDを生成するために使用されます。
fromSecretKey
秘密鍵と指定されたDIDタイプ設定からDIDを生成します。
パラメータ
- sk
BytesType(required) — 16進数でエンコードされた秘密鍵の文字列。 - type
DIDTypeArg— DIDタイプの設定。ショートカット文字列(例:'arcblock'、'eth')またはタイプオブジェクトを指定できます。デフォルトは標準のArcBlock DIDタイプです。
戻り値
- did
string— 生成されたDID文字列。
例
アプリケーションDIDの作成
import { fromSecretKey, types } from '@arcblock/did';
const sk = '0xD67C071B6F51D2B61180B9B1AA9BE0DD0704619F0E30453AB4A592B036EDE644E4852B7091317E3622068E62A5127D1FB0D4AE2FC50213295E10652D2F0ABFC7';
const appType = {
role: types.RoleType.ROLE_APPLICATION,
pk: types.KeyType.ED25519,
hash: types.HashType.SHA3,
};
const did = fromSecretKey(sk, appType);
console.log(did); // zNKtCNqYWLYWYW3gWRA1vnRykfCBZYHZvzKrfromPublicKey
公開鍵と指定されたDIDタイプ設定からDIDを生成します。
パラメータ
- pk
BytesType(required) — 16進数でエンコードされた公開鍵の文字列。 - type
DIDTypeArg— DIDタイプの設定。デフォルトは標準のArcBlock DIDタイプです。
戻り値
- did
string— 生成されたDID文字列。
例
イーサリアムスタイルのDIDの作成
import { fromPublicKey } from '@arcblock/did';
const pk = '0x4bc2a31265153f07e70e0bab08724e6b85e217f8cd628ceb62974247bb493382ce28cab79ad7119ee1ad3ebcdb98a16805211530ecc6cfefa1b88e6dff99232a';
const ethDid = fromPublicKey(pk, 'eth');
console.log(ethDid); // 0x9d8A62f656a8d1615C1294fd71e9CFb3E4855A4FfromPublicKeyHash
公開鍵ハッシュと指定されたDIDタイプからDIDを生成します。出力形式(Base58またはBase16)は、DIDタイプで指定されたエンコーディングタイプに依存します。
パラメータ
- buffer
string(required) — 16進数でエンコードされた公開鍵ハッシュ。 - type
DIDTypeArg(required) — DIDタイプの設定。
戻り値
- did
string— 生成されたDID文字列。
例
import { fromPublicKeyHash, types, DidType } from '@arcblock/did';
import { Hasher } from '@ocap/mcrypto';
const pk = '0xFF47B3022FA503EAA1E9FA4B20FA8B16694EA56096F3A2E9109714062B3486D9';
const pkHash = Hasher.SHA3.hash256(pk);
const nodeType = DidType({ role: types.RoleType.ROLE_NODE });
const did = fromPublicKeyHash(pkHash, nodeType);
console.log(did); // z89nF4GRYvgw5mqk8NqVVC7NeZLWKbcbQY7VfromHash
汎用の16進数エンコードされたハッシュとロールタイプからDIDを生成します。
パラメータ
- hash
string(required) — 16進数でエンコードされたハッシュ。 - role
number(default:ROLE_ACCOUNT) — mcrypto.types.RoleType からのロールタイプ。デフォルトは ROLE_ACCOUNT です。
戻り値
- did
string— 生成されたDID文字列。
例
import { fromHash, types } from '@arcblock/did';
import { Hasher } from '@ocap/mcrypto';
const pk = '0xE4852B7091317E3622068E62A5127D1FB0D4AE2FC50213295E10652D2F0ABFC7';
const pkHash = Hasher.SHA3.hash256(pk);
const did = fromHash(pkHash, types.RoleType.ROLE_APPLICATION);
console.log(did); // zNKtCNqYWLYWYW3gWRA1vnRykfCBZYHZvzKrDIDの検証
これらの関数は、DIDの整合性と公開鍵との関係を検証するのに役立ちます。
isValid
DID文字列の形式とチェックサムを検証して、その有効性を確認します。
パラメータ
- did
string(required) — 検証するDID文字列。
戻り値
- isValid
boolean— DIDが有効な場合はtrueを、それ以外の場合はfalseを返します。
例
import { isValid } from '@arcblock/did';
// ArcBlock DID (Base58)
console.log(isValid('zNKtCNqYWLYWYW3gWRA1vnRykfCBZYHZvzKr')); // true
console.log(isValid('did:abt:z1nfCgfPqvSQCaZ2EVZPXbwPjKCkMrqfTUu')); // true
// ArcBlock DID (Base16)
console.log(isValid('0x0021e4b8f62674897ed75df0f7356e82c6f9a64a5c13f3cc0cd3')); // true
// イーサリアムDID
console.log(isValid('0x9d8A62f656a8d1615C1294fd71e9CFb3E4855A4F')); // true
// 無効なDID
console.log(isValid('abc')); // false
console.log(isValid('z1muQ3xqHQK2uiACHyChikobsiY5kLqtSha')); // false (チェックサムが不正)isFromPublicKey
指定されたDIDが特定の公開鍵から生成されたかどうかを確認します。
パラメータ
- did
string(required) — DID文字列。 - pk
BytesType(required) — 照合する16進数エンコードされた公開鍵。
戻り値
- isMatch
boolean— DIDが公開鍵に対応する場合はtrueを、それ以外の場合はfalseを返します。
例
import { isFromPublicKey } from '@arcblock/did';
const pk = '0xE4852B7091317E3622068E62A5127D1FB0D4AE2FC50213295E10652D2F0ABFC7';
const did = 'zNKtCNqYWLYWYW3gWRA1vnRykfCBZYHZvzKr';
console.log(isFromPublicKey(did, pk)); // true
console.log(isFromPublicKey('abc', pk)); // false型ユーティリティ
DIDタイプ情報を作成、解析、変換するための関数。
DidType
ショートカット文字列または部分的な型定義から標準化されたDIDタイプオブジェクトを作成します。不足しているプロパティは、ArcBlock DIDのデフォルト値で自動的に補完されます。
パラメータ
- type
DIDTypeArg— ショートカット文字列('arcblock'、'eth'、'passkey')または部分的なDIDTypeオブジェクト。
戻り値
- didType
DIDType— 完全なDIDTypeオブジェクト。
例
import { DidType, types } from '@arcblock/did';
// ショートカットの使用
const ethType = DidType('eth');
console.log(ethType);
// { role: 1, pk: 2, hash: 2, address: 1 }
// 部分的なタイプオブジェクトの使用
const nodeType = DidType({ role: types.RoleType.ROLE_NODE });
console.log(nodeType);
// { role: 3, pk: 1, hash: 4, address: 0 }toTypeInfo
DID文字列からDIDタイプ情報(ロール、キータイプ、ハッシュアルゴリズムなど)を抽出します。
パラメータ
- did
string(required) — DID文字列。
戻り値
- didType
DIDType— 数値タイプのコードを含むDIDTypeオブジェクト。
例
import { toTypeInfo } from '@arcblock/did';
const did = 'zNKtCNqYWLYWYW3gWRA1vnRykfCBZYHZvzKr';
const typeInfo = toTypeInfo(did);
console.log(typeInfo);
// { role: 12, pk: 1, hash: 1, address: 0 }toTypeInfoStr
DID文字列からDIDタイプ情報を抽出し、人間が読める文字列形式で返します。
パラメータ
- did
string(required) — DID文字列。
戻り値
- didTypeStr
DIDTypeStr— タイプの文字列表現を持つDIDTypeStrオブジェクト。
例
import { toTypeInfoStr } from '@arcblock/did';
const did = 'zNKtCNqYWLYWYW3gWRA1vnRykfCBZYHZvzKr';
const typeInfo = toTypeInfoStr(did);
console.log(typeInfo);
// { role: 'ROLE_APPLICATION', pk: 'ED25519', hash: 'SHA3', address: 'BASE58' }fromTypeInfo
DIDタイプオブジェクトを、そのコンパクトな2バイトの16進数文字列表現に変換します。
パラメータ
- type
DIDTypeArg(required) — DIDタイプオブジェクトまたはショートカット。
戻り値
- hex
string— タイプを表す4文字の16進数文字列。
例
import { fromTypeInfo, types } from '@arcblock/did';
const appType = {
role: types.RoleType.ROLE_APPLICATION,
pk: types.KeyType.ED25519,
hash: types.HashType.SHA3,
address: types.EncodingType.BASE58,
};
const typeHex = fromTypeInfo(appType);
console.log(typeHex); // 0c01isEthereumDid
文字列が有効なイーサリアムアドレスであるかを、チェックサム検証を含めて確認します。
パラメータ
- did
string(required) — 確認する文字列。
戻り値
- isEth
boolean— 有効なイーサリアムDIDの場合はtrueを返します。
toChecksumAddress
イーサリアムアドレスをチェックサム付きの形式に変換します。
パラメータ
- address
string(required) — イーサリアムアドレス。
戻り値
- checksummedAddress
string— チェックサム付きのアドレス。
フォーマットユーティリティ
標準のDIDプレフィックスを追加または削除するためのヘルパー関数。
toDid
DID文字列に did:abt: というプレフィックスが付いていることを保証します。
パラメータ
- address
string(required) — 生のDIDアドレス。
戻り値
- did
string— 完全修飾されたDID文字列。
例
import { toDid } from '@arcblock/did';
const address = 'z1muQ3xqHQK2uiACHyChikobsiY5kLqtShA';
console.log(toDid(address)); // did:abt:z1muQ3xqHQK2uiACHyChikobsiY5kLqtShAtoAddress
DID文字列から did:abt: プレフィックスを削除し、生のアドレスを返します。
パラメータ
- did
string(required) — 完全修飾されたDID文字列。
戻り値
- address
string— 生のDIDアドレス。
例
import { toAddress } from '@arcblock/did';
const did = 'did:abt:z1muQ3xqHQK2uiACHyChikobsiY5kLqtShA';
console.log(toAddress(did)); // z1muQ3xqHQK2uiACHyChikobsiY5kLqtShA定数
DIDタイプとプレフィックスのための事前定義された定数。
| 定数 | 説明 |
|---|---|
DID_PREFIX | ArcBlock DIDの標準文字列プレフィックス:"did:abt:"。 |
DID_TYPE_ARCBLOCK | デフォルトのArcBlock DID設定を表すDIDTypeオブジェクト。 |
DID_TYPE_ETHEREUM | イーサリアム互換DIDのためのDIDTypeオブジェクト。 |
DID_TYPE_PASSKEY | パスキーから派生したDIDのためのDIDTypeオブジェクト。 |
型
ライブラリ全体で使用される主要なTypeScriptの型定義。
- DIDType
object— DIDの暗号学的プロパティを定義するオブジェクト。これには、role、pk(キータイプ)、hash(ハッシュアルゴリズム)、および address(エンコーディングタイプ)が含まれます。 - DIDTypeStr
object— DIDType に似ていますが、プロパティ値は数値コードの代わりに人間が読める文字列です。 - DIDTypeArg
DIDTypeShortcut | DIDType— ショートカット文字列または DIDType オブジェクトのいずれかを取ることができる共用体型で、多くの関数で引数として使用されます。 - DIDTypeShortcut
string— 事前定義されたDID設定のためのリテラル文字列型:'default'、'arcblock'、'eth'、'ethereum'、または 'passkey'。 - BytesType
string | Buffer— 16進数エンコードされた文字列またはBufferのいずれかを取ることができる型で、バイナリデータを表します。