nearprotocol - 在 FunctionCallAction 和 TransferAction 中存款
问题描述
考虑 FunctionCallAction 和 TransferAction
pub struct FunctionCallAction {
// ...
pub deposit: Balance,
}
pub struct TransferAction {
pub deposit: Balance,
}
deposit
inFunctionCallAction
和 和有什么不一样TransferAction
?
解决方案
从表面上看,它看起来像是通过重新实现存款来FunctionCallAction
复制 的功能。TransferAction
例如,有人可能会争辩说我们可以摆脱deposit
inFunctionCallAction
并且当我们需要与函数调用一起发送一些余额时,我们可以在事务中执行两个操作:一个用于传输,另一个用于函数调用。但是,我们目前没有向智能合约公开有关交易中所有先前操作共同存入多少代币的信息,这对于支付智能合约 API 是有用的信息。因此,目前当有人想要编写一个以代币表示的具有一定相关成本的智能合约时,他们可以断言这些代币是FunctionCallAction::deposit
通过env::attached_balance
https://github.com/nearprotocol/near-bindgen/blob/master/near-bindgen/src/environment/env.rs#L149。
推荐阅读
- excel - VBA 在年初至今复制范围
- java - 获得权限后如何立即调用函数?
- aws-lambda - Lambda 超时
- javascript - 如何操作接收到的 svg(访问 '
' 和 ' ' 元素)通过 vue - woocommerce - woocommerce_add_to_cart_validation 挂钩适用于可变产品,但不适用于单一产品
- angular - 错误 TS2304:在角度 6 中找不到名称“参数”
- python - 使用 Python (Pyspark) 从 S3 服务器 (ECS) 读取和写入
- node.js - 根据通过的技能集查找技能最高的候选人
- java - 以不同方式创建的两个 BigDecimal 的比较
- c# - FluentValidation:Must 子句忽略 When 子句并运行