溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solidity智能合約[23]-payable

發布時間:2020-07-25 12:48:40 來源:網絡 閱讀:1456 作者:jonson_jackson 欄目:開發技術

轉賬

如果在函數中涉及到以太幣的轉移,需要使用到payable關鍵詞。意味著可以在調用這筆函數的消息中附帶以太幣。

1
2
3
function pay() public payable{

}

this代表合約地址

this 代表當前部署的合約地址

1
2
3
4
5
function  getThis() public view returns(address){
    return this;
    // 0x9F4c14f487B8e4E3986467c2a2aA5bDE93052666
     //0x9f4c14f487b8e4e3986467c2a2aa5bde93052666
}

獲取合約賬戶余額

1
2
3
4
function getbalance() public view returns(uint){

    return address(this).balance;
}

獲取外部賬戶余額

1
2
3
function getExternalBalance(address account) public view returns(uint){
      return account.balance;
  }

轉賬

1
2
3
4
5
6
7
8
9
10
//給外部賬戶轉賬
function transfer() public payable{
    address account = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c;
    account.transfer(msg.value);
}

//給合約地址轉賬
function transfer2() public payable{
   address(this).transfer(msg.value);
}

給合約地址與外部地址同時轉賬

在下面的例子中,如果在調用此函數時,附帶了20Ether,那么就會給account賬戶轉移10ether,給合約賬戶轉移10ether

1
2
3
4
function transfer3() public payable{
   address account = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c;
   account.transfer(10*10**18);
}

全部代碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
pragma solidity ^0.4.23;


contract  payableTest{

   function pay() public payable{

   }

    function getbalance() public view returns(uint){

       return address(this).balance;
   }

   function  getThis() public view returns(address){
       return this;
       // 0x9F4c14f487B8e4E3986467c2a2aA5bDE93052666
        //0x9f4c14f487b8e4e3986467c2a2aa5bde93052666
   }


   function getExternalBalance(address account) public view returns(uint){
       return account.balance;
   }


   function transfer() public payable{
       address account = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c;
       account.transfer(msg.value);
   }


    function transfer2() public payable{
       address(this).transfer(msg.value);
   }

   function ()  public payable{

   }

   function transfer3() public payable{
       address account = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c;
       account.transfer(10*10**18);
   }
}
  • 本文鏈接: https://dreamerjonson.com/2018/11/20/solidity-23-payable/

  • 版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協議 許可協議。轉載請注明出處!

solidity智能合約[23]-payable

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女