4

假设我有一个合约函数,它期望通过某个交易发送一定数量的 near ,该函数被称为create_ordercreate_order带有几个参数。

我在前端的名称下设置了我的合同myContract

我想打电话myContract.create_order({...}),但交易失败,因为这个方法调用没有附加正确数量的 NEAR 令牌。

如何为交易分配一定的存款价值?

4

3 回答 3

4

可以account.functionCall直接使用(对于 RPC 不加糖)来附加数量或指定呼叫的气体限额。

请参阅nearlib 中的Account#functionCall

于 2019-09-12T22:13:15.740 回答
2

AFAIK 目前不支持。它将在此 NEP https://github.com/nearprotocol/NEPs/pull/13登陆后可用。

于 2019-09-12T16:34:35.687 回答
2

Nearlib 使用account.functionCall(..., amount). 但它可能不起作用,因为带有函数调用的访问键的设计。对应用程序的默认授权访问密钥仅允许在没有附加令牌存款的情况下调用函数(仅预付 gas)。这样做是为了防止应用程序在未经您明确批准的情况下自动使用您的余额。访问密钥的详细信息在这里:https ://github.com/nearprotocol/NEPs/blob/master/text/0005-access-keys.md

为交易附加存款的方式应得到钱包的明确批准。应用程序应该为钱包创建一个请求,重定向到钱包以获得批准(或通过弹出窗口)。用户批准交易后,将直接使用钱包中的完整访问密钥对其进行签名并广播。但恐怕我们钱包上还没有这个 API。问题:https ://github.com/nearprotocol/near-wallet/issues/56

于 2019-09-12T16:59:29.053 回答