将value传递给EOA和合约

当你构建包含 value 的以太坊交易时,它等同于_payment_。根据目的地址是否为合约,这些交易行为会有所不同。

对于EOA地址,或者更确切地说,对于未在区块链中注册为合约的任何地址,以太坊将记录状态更改,并将你发送的value添加到地址的余额中。如果地址之前没有被查看过,则会创建地址并将其余额初始化为你的付款+value+。

如果目标地址(to)是合约,则EVM将执行合约并尝试调用你的交易的 data 中指定的函数(参见 [invocation] )。如果你的交易中没有 data,那么EVM将调用目标合约的 fallback 函数,如果该函数是payable,则将执行该函数以确定下一步该做什么。

合约可以通过在调用付款功能时立即抛出异常或由付款功能中编码的条件确定来拒绝收款。如果付款功能成功终止(没有意外),则更新合约状态以反映合约的ether余额增加。