Solidity-讓合約地址 接受ETH的轉帳充值的 三種方式

以太坊智能合約開發:讓合約接受轉帳

在以太坊智能合約開發中,一般會有向合約地址進行轉帳的需求,那麼有幾種向合約地址進行轉帳的方式呢?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 { // 其餘邏輯 } }
相關文章
相關標籤/搜索