如何将价值(存款)附加到与 Nearlib 的交易中?

How to attach value (deposit) to transaction with Nearlib?

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

我在前端设置了名为 myContract 的合约。

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

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

据我所知,目前不支持。它将在这个 NEP https://github.com/nearprotocol/NEPs/pull/13 登陆后可用。

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

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

可以直接使用 account.functionCall(RPC 不加糖)来附加金额或指定调用的 gas 津贴。

参见 nearlib 中的 Account#functionCall