是所有模块都自动继承 Coin 合约还是需要导入?

Do all modules inherit the Coin contract automatically or is there a required import?

当接受我正在制作的 NFT 的付款时,我如何确保我可以从我的模块调用 coin.transfer 和 coin.details?

所以唯一的per-requisites是

  1. 参考代币合约
  2. 传输能力

你可以通过像普通函数一样简单地调用它们来引用(调用)硬币合约上的函数,方法是 coin.transfer 等。 您还可以通过在合同中执行 (use coin) 来“导入”整个硬币模块。这会导入硬币合约中的所有函数,因此您可以像 transfer 而不是 coin.transfer 那样调用它们。 但如果不谨慎使用,这可能会导致意外错误,因此我建议始终将它们称为 coin.transfer

您需要确保已授予“传输”权限。这可以在调用合约时由调用者传入/指定。 如果您的合约是账户的“所有者”(即合约有余额),您可以使用 install-capability 这将使合约授予自己为其账户进行转账的能力