以太坊智能合約開發:讓合約接受轉賬
在以太坊智能合約開發中,通常會有向合約地址進行轉賬的需求,那么有幾種向合約地址進行轉賬的方式呢?
有三種方式:
- 部署合約時轉賬
- 調用合約提供的方法
- 直接向合約地址進行轉賬
但有一個問題,以太坊的智能合約默認是拒絕來自任何地址的轉賬,那么如何讓合約能夠支持接收轉賬呢?
1、部署轉賬
在進行合約開發時,如果想要在部署時,直接向該合約進行轉賬,只需要給構造函數中添加payable
修飾符。
示例:
contract Test {
// 構造函數添加payable修飾符即可 function Test() payable { // 構造函數其他邏輯代碼 } }
2、執行合約轉賬
執行合約轉賬,則需要給你需要支持轉賬功能的方法添加payable
修飾符
示例:
contract Test {
function getBalance() payable { // 其他邏輯 } }
3、直接轉賬
支持直接轉賬,需要借助后備函數(fallback function),只需要為后備函數添加 payable
修飾符
示例:
contract Test {
function () payable { // 其他邏輯 } }