首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在near api js和near cli中将near tokens发送到payable函数?

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

Stack Overflow用户
提问于 2021-01-06 23:22:40
回答 1查看 150关注 0票数 2

我在合同中有以下功能:

代码语言:javascript
复制
#[payable]
pub fn buy_tokens(&mut self) {
    let amount = env::attached_deposit()
}

但是如何在near-api-js和near - cli中调用函数,并附加near令牌存放?

代码语言:javascript
复制
await nearvar.contract.buy_tokens()

编辑:

代码语言:javascript
复制
await nearvar.contract.buy_tokens({}, GAS_AMOUNT, ATTACHED_DEPOSIT);

出现错误{InvalidTxError:{InvalidAccessKeyError:"DepositWithFunctionCall"}

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

如何调用全访问密钥的付费函数?

这是我的索引文件:Link

这就是我要调用的函数:Link

EN

回答 1

Stack Overflow用户

发布于 2021-01-07 10:11:27

Contract中函数的第二个和第三个参数是gas和attached third:

代码语言:javascript
复制
await nearvar.contract.buy_tokens({}, GAS_AMOUNT, ATTACHED_DEPOSIT);

或者,您可以使用Account应用编程接口(see details here)来执行此操作:

代码语言:javascript
复制
let account = await connection.account(senderAccountId);
account.functionCall(contractId, 'buy_tokens', {}, GAS_AMOUNT, ATTACHED_DEPOSIT);

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65598492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档