在特定凭证和架构下创建新的证明。此指令允许授权签名者创建包含经过验证数据且具有明确过期时间的证明。
参数
| 参数 | 类型 | 描述 |
|---|---|---|
payer | Signer | 支付交易费用的账户 |
authority | Signer | 凭证的授权签名者 |
credential | PublicKey | Pda | 与架构关联的凭证账户 |
schema | PublicKey | Pda | 定义证明结构的架构账户 |
attestation | PublicKey | Pda | 要创建的证明账户 |
systemProgram | PublicKey | Pda | System Program账户(默认为'11111111111111111111111111111111') |
nonce | Address | 证明的唯一标识符 |
data | ReadonlyUint8Array | 必须符合架构的证明数据 |
expiry | number | bigint | 证明的过期时间戳 |
返回值
返回一个TransactionBuilder,可用于构建和发送交易。
示例
import { getCreateAttestationInstruction } from "sas-lib";const transaction = getCreateAttestationInstruction({payer: payerSigner,authority: authoritySigner,credential: credentialPublicKey,schema: schemaPublicKey,attestation: attestationPublicKey,systemProgram: systemProgramPublicKey,nonce: noncePublicKey,data: attestationData,expiry: expiryTimestamp});// Send the transactionawait transaction.sendAndConfirm();
重要说明
- 只有凭证的授权签名者才能创建证明
- 授权者必须是交易的签名者
- 支付者必须是交易的签名者
- 证明账户必须可写
- 凭证和架构账户必须可读
- 此操作需要System Program用于rent豁免计算
- 架构不得处于暂停状态
- 数据必须符合架构的结构和验证规则
- 每个证明的nonce必须唯一
- 过期时间戳必须在未来
- 证明在过期时间戳后将失效
- 凭证必须与架构关联
Is this page helpful?