考虑 FunctionCallAction 和 TransferAction
pub struct FunctionCallAction {
// ...
pub deposit: Balance,
}
pub struct TransferAction {
pub deposit: Balance,
}
deposit
inFunctionCallAction
和 和有什么不一样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。