地址类型address / 学习智能合约#3

in STEEM CN/中文4 years ago

智能合约

表示一个帐户或合约地址,20字节(160位),有一般地址和可付款地址
address a
address payable c
成员:balance, 单位wei, 1eth=10**18wei
可付款地址才有 transfer()

payable属性应该是0.5版本后加上的,所以在很多教程中没加payable导致很多错误的发生!Solidity的更新速度还是很快的,现在新版到了0.6.6了。很多时候还是得查手册!

https://solidity.readthedocs.io/en/v0.6.6

pragma solidity >=0.4.22 <0.7.0;

contract TestAddr {
    
    constructor() public payable {
    }

    // 获取一个账号的余额,注意把地址替换为自己的账号地址
    function testBlance() public view returns (uint) {
        address a = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;
        return a.balance;  // wei   1eth = 10e18wei
    }

   // 参看合约地址余额,在创建账号的时候附加一个以太币
    function testSelfBlance() public view returns (uint) {
        return address(this).balance;
    }
    
    // 地址如何作为参数
    function balance(address b) public view returns (uint) {
        return b.balance;
    }
    
    function testTransfer(address payable c) public{
        address myAddress = address(this);

        //  转移1eth  (1eth  = 10^18wei)
        if (myAddress.balance >= 1.2e18) {
           // 思考谁来支付矿工费呢?查看一下合约余额.发起交易的地址支付
           c.transfer(1e18);
        }

    }
}

后面还有挺多更新的,比如构造函数,回退函数,基本上是重构了,这放到后来再聊。

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.028
BTC 59508.12
ETH 2603.38
USDT 1.00
SBD 2.39