solidity语法一些新的概念

address public minter

address是类型,public关键字是自动产生外部访问该变量的方法  minter是变量名

mapping(address=>unit) public balance

address类型映射unit类型  public 同上

event Sent(address from,address to,unit account);

event事件会在合约的最后一行被触发   下面是监听交易的代码

Coin.Sent().watch({}, '' , function(error, result) {
     if (!error) {
         console.log( "Coin transfer: " + result.args.amount +
             " coins were sent from " + result.args.from +
             " to " + result.args.to + "." );
         console.log( "Balances now:\n" +
             "Sender: " + Coin.balances.call(result.args.from) +
             "Receiver: " + Coin.balances.call(result.args.to));
     }
})

Msg,tx,block是全局变量,保存了可以被区块链访问的一些属性。它持久化了创建合约的节点的地址。 Msg.sender是值该方法调用者的地址,构造方法名称需要和合约名称一致
下面是solidity全部的全局变量
    block.coinbase (address):当前块的矿场的地址

    block.difficulty (uint):当前块的难度

    block.gaslimit (uint):当前块的gaslimit

    block.number (uint):当前块的数量

    block.blockhash (function(uint) returns (bytes32)):给定的块的hash值, 只有最近工作的256个块的hash值

    block.timestamp (uint):当前块的时间戳

    msg.data (bytes):完整的calldata

    msg.gas (uint): 剩余gas

    msg.sender (address):消息的发送者(当前调用)

    msg.value (uint):和消息一起发送的wei的数量

    now (uint):当前块的时间戳(block.timestamp的别名)

    tx.gasprice (uint):交易的gas价格

    tx.origin (address):交易的发送者(全调用链)

    sha3(...) returns (bytes32):计算(紧凑排列的)参数的 Ethereum-SHA3  hash值

    sha256(...) returns (bytes32)计算(紧凑排列的)参数的SHA256 hash值

    ripemd160(...) returns (bytes20):计算 256个(紧凑排列的)参数的RIPEMD

    ecrecover(bytes32, uint8, bytes32, bytes32) returns (address):椭圆曲线签名公钥恢复

    addmod(uint x, uint y, uint k) returns (uint):计算(x + y)K,加法为任意精度,不以2 ** 256取余

    mulmod(uint x, uint y, uint k) returns (uint):计算(XY)K,乘法为任意精度,不以2 * 256取余

    this (current contract’s type): 当前合约,在地址上显式转换

    super:在层次关系上一层的合约

    selfdestruct(address):销毁当前的合同,将其资金发送到指定address地址
    .balance:address地址中的账户余额(以wei为单位)
    .send(uint256) returns (bool):将一定量wei发送给address地址,若失败返回false。

猜你喜欢

转载自blog.csdn.net/enjoy_sun_moon/article/details/80449872
今日推荐