"ATA" 在 Solana/Anchor 中是什么意思?
What's "ATA" mean in Solana/Anchor?
在锚点测试中注意到此代码注释:
ATA 在那里代表什么,为什么它对 DAO 控制的权威很重要?
ATA 是关联的令牌地址。
可以使用 findProgramAddress
.
从另一个 public 密钥派生关联的令牌地址
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;
}
还有一种先于关联令牌帐户的令牌帐户类型,即辅助令牌帐户。这些旧帐户仍然存在,今天就可以创建。
代码说它可以是 ATA 或其他东西的原因是因为它正在验证该帐户是它期望的令牌帐户。
在锚点测试中注意到此代码注释:
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;
}
还有一种先于关联令牌帐户的令牌帐户类型,即辅助令牌帐户。这些旧帐户仍然存在,今天就可以创建。
代码说它可以是 ATA 或其他东西的原因是因为它正在验证该帐户是它期望的令牌帐户。