本文へ移動
SDK ガイド / 本人・資格

本人・資格

本人情報とRelay / Worldの資格。

Identity・WorldError

Identity.generate / fromRecovery で本人を用意します。exportRecovery の秘密JWKはアプリが保管し、Worldの保存データには含まれません。操作失敗はWorldErrorの code / detailsで判別します。OutcomeUnknownは未適用を意味しません。

TypeScript · シグネチャ
class Identity {
  readonly subject: string;
  readonly publicKey: JsonWebKey;
  static generate(): Promise<Identity>;
  static fromRecovery(recovery: JsonWebKey): Promise<Identity>;
  exportRecovery(): Promise<JsonWebKey>;
  sign(purpose: string, value: Json): Promise<{
    publicKey: JsonWebKey;
    signature: number[];
  }>;
  static verify(subject: string, purpose: string, value: Json,
    proof: { publicKey: JsonWebKey; signature: number[] }): Promise<void>;
}

class WorldError extends Error {
  readonly code: string;
  readonly details: Json;
  constructor(code: string, details?: Json);
}

資格の操作

@tablebox/sdk/access からimportします。RelayAccessはNodeの利用、WorldAccessはWorldのread / send / publishの許可です。nowはUnixミリ秒。allowsWorldActionには検証済みのgrantを渡します。

TypeScript · シグネチャ
issueWorldAccess(owner: Identity, genesis: Genesis,
  grant: WorldGrant, now?: number): Promise<WorldAccess>;
delegateWorldAccess(identity: Identity, access: WorldAccess, genesis: Genesis,
  grant: WorldGrant, now?: number): Promise<WorldAccess>;
inspectWorldAccess(access: WorldAccess, genesis: Genesis,
  now?: number): Promise<WorldGrant>;
allowsWorldAction(grant: WorldGrant, action: WorldAccessAction,
  scope: string | null, now?: number): boolean;
delegateRelayAccess(identity: Identity, access: RelayAccess,
  grant: RelayGrant): Promise<RelayAccess>;
inspectRelayAccess(access: RelayAccess, now?: number): Promise<RelayGrant>;

リファレンスの目次