nat*_*ire 2 solana anchor-solana
在 Anchor 测试中注意到以下代码注释:
ATA 代表什么?为什么它对于 DAO 控制的机构很重要?
ATA 是关联的令牌地址。
关联的令牌地址可以使用另一个公钥派生出来findProgramAddress。
function getAssociatedTokenAddress(
mint: PublicKey,
owner: PublicKey,
allowOwnerOffCurve = false,
programId = TOKEN_PROGRAM_ID,
associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID
): Promise<PublicKey> {
if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) throw new TokenOwnerOffCurveError();
const [address] = await PublicKey.findProgramAddress(
[owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],
associatedTokenProgramId
);
return address;
}
Run Code Online (Sandbox Code Playgroud)
还有另一种类型的令牌帐户早于关联的令牌帐户,即辅助令牌帐户。这些旧帐户仍然存在并且现在可以创建。
代码之所以说它可以是 ATA 或其他东西,是因为它正在验证该帐户是否是它期望的令牌帐户。
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |