Solanaドキュメントinstructions
アテステーションの構造と検証ルールを定義する新しいスキーマを作成します。このinstructionにより、クレデンシャル機関はアテステーションに含まれるべきフィールドとそのフォーマット方法を指定するスキーマを作成できます。
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
payer | Signer | トランザクションの支払いを行うアカウント |
authority | Signer | クレデンシャルの権限者 |
credential | PublicKey | Pda | このスキーマが関連付けられるクレデンシャルアカウント |
schema | PublicKey | Pda | 作成するスキーマアカウント |
systemProgram | PublicKey | Pda | System Programアカウント(デフォルトは'11111111111111111111111111111111') |
name | string | スキーマの名前 |
description | string | スキーマの目的に関する詳細な説明 |
layout | ReadonlyUint8Array | スキーマのバイナリレイアウト定義 |
fieldNames | string[] | スキーマ内のフィールドの名前 |
戻り値
トランザクションの構築と送信に使用できるTransactionBuilderを返します。
例
import { getCreateSchemaInstruction } from "sas-lib";const transaction = getCreateSchemaInstruction({payer: payerSigner,authority: authoritySigner,credential: credentialPublicKey,schema: schemaPublicKey,systemProgram: systemProgramPublicKey,name: "Identity Verification",description: "Schema for verifying user identity information",layout: schemaLayoutBytes,fieldNames: ["fullName", "dateOfBirth", "nationality"]});// Send the transactionawait transaction.sendAndConfirm();
重要な注意事項
- payerはトランザクションの署名者である必要があります
- authorityはトランザクションの署名者であり、かつクレデンシャルの権限者である必要があります
- スキーマアカウントは書き込み可能である必要があります
- クレデンシャルアカウントは読み取り可能である必要があります
- この操作には、rent免除計算のためにSystem Programが必要です
- スキーマ名は説明的で、クレデンシャル内で一意である必要があります
- 説明には、スキーマの目的と使用方法に関する明確な情報を記載する必要があります
- レイアウトは、アテステーションデータの構造を定義する有効なバイナリ形式である必要があります
- fieldNames配列は、レイアウトで定義されたフィールドと一致する必要があります
- スキーマは必要に応じて後で一時停止できます
- スキーマはデータ構造の進化をサポートするためにバージョン管理できます
- このスキーマの下で作成されるすべてのアテステーションは、その構造に準拠する必要があります
Is this page helpful?