首页 > 解决方案 > 在 FunctionCallAction 和 TransferAction 中存款

问题描述

考虑 FunctionCallAction 和 TransferAction

pub struct FunctionCallAction {
    // ...
    pub deposit: Balance,
}


pub struct TransferAction {
    pub deposit: Balance,
}

depositinFunctionCallAction和 和有什么不一样TransferAction

标签: nearprotocol

解决方案


从表面上看,它看起来像是通过重新实现存款来FunctionCallAction复制 的功能。TransferAction例如,有人可能会争辩说我们可以摆脱depositinFunctionCallAction并且当我们需要与函数调用一起发送一些余额时,我们可以在事务中执行两个操作:一个用于传输,另一个用于函数调用。但是,我们目前没有向智能合约公开有关交易中所有先前操作共同存入多少代币的信息,这对于支付智能合约 API 是有用的信息。因此,目前当有人想要编写一个以代币表示的具有一定相关成本的智能合约时,他们可以断言这些代币是FunctionCallAction::deposit通过env::attached_balance https://github.com/nearprotocol/near-bindgen/blob/master/near-bindgen/src/environment/env.rs#L149


推荐阅读