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

Posted

技术标签:

【中文标题】如何在与 Nearlib 的交易中附加价值(存款)?【英文标题】:How to attach value (deposit) to transaction with Nearlib? 【发布时间】:2020-01-14 04:25:35 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案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

【讨论】:

我简化了我的代码,在我的实际项目中,我首先通过登录钱包从发件人那里获得一个访问密钥。 有 NEP 用于用户显式交易签名(需要更新,因为我们不再使用照片):github.com/nearprotocol/NEPs/pull/10/… 不过这还没有在钱包/nearlib 端实现。跨度> 【参考方案3】:

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

在 nearlib 中查看 Account#functionCall。

【讨论】:

以上是关于如何在与 Nearlib 的交易中附加价值(存款)?的主要内容,如果未能解决你的问题,请参考以下文章

其他综合收益转投资收益

如何获取在与@solana/web3.js 的交易中转移的自定义令牌数量?

如何从上次交易中获得价值,但不是今天的交易

我正在使用 integrator.io 创建将 Shopify 交易发送到 NetSuite 中的银行存款的集成流程?但我收到以下错误消息?

如何从这个长的 json 文件中获取价值,它会在新交易后自行增加,我需要最新的交易

FTX平台的存款或入金步骤是啥?