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。