Vyper入门:15.接收ETH


文档摘要

Vyper 入门: 15. 接收 ETH Vyper 中接收 ETH 可以分为两种情况:局部接收和全局接收。 局部接收:使用 修饰符处理需要接收 ETH 的特定函数 全局接收:使用 特殊函数,用于处理发送到合约地址的 ETH,但不调用任何具体的函数 修饰符 用于标记可以接收 ETH 的函数,在合约中,任何应该接收 ETH 的函数都需要使用此修饰符 代码示例: 注意:只有标记了 的函数才能接收 ETH。

Vyper 入门: 15. 接收 ETH

Vyper 中接收 ETH 可以分为两种情况:局部接收和全局接收。

  • 局部接收:使用 @payable 修饰符处理需要接收 ETH 的特定函数
  • 全局接收:使用 __default__ 特殊函数,用于处理发送到合约地址的 ETH,但不调用任何具体的函数

@payable 修饰符

用于标记可以接收 ETH 的函数,在合约中,任何应该接收 ETH 的函数都需要使用此修饰符

代码示例:

event Received: _sender: indexed(address) _amount: indexed(uint256) _data: Bytes[1024] @payable @external def receive_eth(): log Received(msg.sender, msg.value, b"")
  • 注意:只有标记了 @payable 的函数才能接收 ETH。无法直接向未标记的合约转账 ETH

payable

__default__ 函数

__default__ 函数是一个特殊的函数,用于在未调用特定函数的情况下接收 ETH,适用于接收不涉及特定逻辑的普通转账

它也常用于构建代理合约,在第 11 节回调函数中有代理合约的实现,感兴趣的可以返回查看

示例代码:

event Received: _sender: indexed(address) _amount: indexed(uint256) _data: Bytes[1024] @payable @external def __default__(): log Received(msg.sender, msg.value, b"")

default

总结

在本节中我们介绍了如何接收 ETH 的两种方式,通过以上教程,你可以了解在 Vyper 中创建和管理能够接收 ETH 的智能合约的基本步骤和最佳实践


作者与出处
原作者: WTFAcademy
来源:WTFAcademy
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: WTFAcademy 转发
评论区 (0)
U