我在合同中有以下功能:
#[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(使用前将#替换为@)