本人・資格
本人情報と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>;