为什么它可以获得新生成地址的关联帐户?

why could it get the associated account for a new generated address?

新生成的地址,能获取到关联的账号就奇怪了

const account = Keypair.generate();

let address = await Token.getAssociatedTokenAddress(
  ASSOCIATED_TOKEN_PROGRAM_ID,
  TOKEN_PROGRAM_ID,
  token.publicKey,
  account
);

getAssociatedTokenAddress 生成的地址是确定性的,因此给定相同的 public 键输入,它将始终具有相同的输出。此外,它是程序派生的地址,因此只能由程序“签名”。

您可以在 https://docs.solana.com/developing/programming-model/calling-between-programs#program-derived-addresses

找到有关程序派生地址的更多信息