以太坊智能合約開發:讓合約接受轉帳
在以太坊智能合約開發中,一般會有向合約地址進行轉帳的需求,那麼有幾種向合約地址進行轉帳的方式呢?javascript
有三種方式:java
- 部署合約時轉帳
- 調用合約提供的方法
- 直接向合約地址進行轉帳
但有一個問題,以太坊的智能合約默認是拒絕來自任何地址的轉帳,那麼如何讓合約可以支持接收轉帳呢?函數
一、部署轉帳
在進行合約開發時,若是想要在部署時,直接向該合約進行轉帳,只須要給構造函數中添加payable
修飾符。spa
示例:
contract Test {
// 構造函數添加payable修飾符便可 function Test() payable { // 構造函數其餘邏輯代碼 } }
二、執行合約轉帳
執行合約轉帳,則須要給你須要支持轉帳功能的方法添加payable
修飾符code
示例:
contract Test {
function getBalance() payable { // 其餘邏輯 } }
三、直接轉帳
支持直接轉帳,須要藉助後備函數(fallback function),只須要爲後備函數添加 payable
修飾符ip
示例:
contract Test {
function () payable { // 其餘邏輯 } }