如何在near api js和near cli中将near令牌发送到payable函数?

2024-01-30

我在合同中有以下功能:

#[payable]
pub fn buy_tokens(&mut self) {
    let amount = env::attached_deposit()
}

但是如何调用near-api-js和near cli中的函数并附加near代币存款呢?

await nearvar.contract.buy_tokens()

Edit:

await nearvar.contract.buy_tokens({}, GAS_AMOUNT, ATTACHED_DEPOSIT);

给出错误 {InvalidTxError: {InvalidAccessKeyError: "DepositWithFunctionCall"}
该错误似乎是因为函数调用访问键不允许函数调用操作https://docs.near.org/docs/roles/integrator/errors/error-implementation https://docs.near.org/docs/roles/integrator/errors/error-implementation

如何使用完整的访问键调用付费功能?

这是我的索引文件:Link https://gateway.ipfs.io/ipfs/QmdUe4sWAhHomhVeqNQigeWX8U86TNJprnnu48Qco9gd8A/index.js

这是我调用该函数的地方:Link https://gateway.ipfs.io/ipfs/QmdUe4sWAhHomhVeqNQigeWX8U86TNJprnnu48Qco9gd8A/components/BuyTokens/BuyTokens.jsx


函数的第二个和第三个参数Contract是气体和附加沉积物:

await nearvar.contract.buy_tokens({}, GAS_AMOUNT, ATTACHED_DEPOSIT);

或者您可以使用Account API (请参阅此处的详细信息 https://docs.near.org/docs/roles/developer/examples/near-api-js/examples#account) 要做到这一点:

let account = await connection.account(senderAccountId);
account.functionCall(contractId, 'buy_tokens', {}, GAS_AMOUNT, ATTACHED_DEPOSIT);

其中 GAS_AMOUNT 可以是100000000000000对于 100Tgas(也可以传递 null 而不是默认的 30Tgas)。 例如 1N 的 ATTACHED_DEPOSIT:10000000000000000000000000

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在near api js和near cli中将near令牌发送到payable函数? 的相关文章

随机推荐