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


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

在以太坊智能合約開發中,通常會有向合約地址進行轉賬的需求,那么有幾種向合約地址進行轉賬的方式呢?

有三種方式:

  • 部署合約時轉賬
  • 調用合約提供的方法
  • 直接向合約地址進行轉賬

但有一個問題,以太坊的智能合約默認是拒絕來自任何地址的轉賬,那么如何讓合約能夠支持接收轉賬呢?

1、部署轉賬

在進行合約開發時,如果想要在部署時,直接向該合約進行轉賬,只需要給構造函數中添加payable修飾符。

示例:

contract Test {
    
      // 構造函數添加payable修飾符即可 function Test() payable { // 構造函數其他邏輯代碼 } }

2、執行合約轉賬

執行合約轉賬,則需要給你需要支持轉賬功能的方法添加payable修飾符

示例:

contract Test {
    
      function getBalance() payable { // 其他邏輯 } }

3、直接轉賬

支持直接轉賬,需要借助后備函數(fallback function),只需要為后備函數添加 payable 修飾符

示例:

 
contract Test {
    
      function () payable { // 其他邏輯 } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM