ethereum(以太坊)(九)--global(全局函数)
pragma solidity ^0.4.0; contract modifierTest{
bytes32 public blockhash;
address public coinbase;
uint public difficulty;
uint public gaslimit;
uint public blockNum;
uint public timestamp;
bytes public calldata1;
uint public gas;
address public sender;
bytes4 public sig;
uint public msgValue;
uint public now1;
uint public gasPrice;
address public txOrigin; function tt(){
//给定区块号的哈希值,只支持最近256个区块,且不包含当前区块
blockhash = block.blockhash(block.number -1);
coinbase = block.coinbase;//当前块矿工的地址
difficulty = block.difficulty;//当前块的难度
gaslimit = block.gaslimit;//当前块的gaslimit
blockNum = block.number; //当前区块的块号
timestamp = block.timestamp;//当前块的时间戳==now
calldata1 = msg.data;//完整的调用数据: 0x1e36169e
gas = msg.gas;//当前还剩下的gas
sender = msg.sender;//当前调用发起人的地址: 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c
sig = msg.sig;//调用数据的前4个字节(函数标识符): 0x1e36169e
msgValue = msg.value;//这个消息所携带的货币量,单位wei
now1 = now;
gasPrice = tx.gasprice;//交易的gas价格
txOrigin = tx.origin;//交易的发送者(完整的调用链): 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c
}
}
直接调用,后面无需()
abi.encode(...) returns (bytes)
:对给定的参数进行ABI编码。abi.encodePacked(...) returns (bytes)
: Performes packed encoding of the given argumentsabi.encodeWithSelector(bytes4 selector, ...) returns (bytes)
::对给定的参数进行ABI编码——从第二个预置给定的四字节选择器开始abi.encodeWithSignature(string signature, ...) returns (bytes)
:相当于abi.encodeWithSelector(bytes4(keccak256(signature), ...)
block.blockhash(uint blockNumber) returns (bytes32)
: 给定的块的hash值, 只有最近工作的256个块的hash值—— 在 0.4.22 后请使用blockhash(uint blockNumber)
.block.coinbase
(address
): 当前块的矿工的地址block.difficulty
(uint
): 当前块的难度block.gaslimit
(uint
): 当前块的gaslimitblock.number
(uint
):当前块的数量block.timestamp
(uint
):当前块的时间戳gasleft() returns (uint256)
: 剩余 gasmsg.data
(bytes
): 完整的calldatamsg.gas
(uint
): 剩余 gas - 0.4.21后请使用gasleft()
msg.sender
(address
): 消息的发送者(当前调用)msg.value
(uint
): 和消息一起发送的wei的数量now
(uint
): 当前块的时间戳(block.timestamp
的别名)tx.gasprice
(uint
):交易的gas价格tx.origin
(address
):交易的发送者(全调用链)assert(bool condition)
: abort execution and revert state changes if condition isfalse
(用于内部错误)require(bool condition)
: abort execution and revert state changes if condition isfalse
(用于输入错误或外部组件的错误)require(bool condition, string message)
: abort execution and revert state changes if condition isfalse
(用于输入错误或外部组件的错误). 并提供错误信息.revert()
: 中止执行并还原状态更改revert(string message)
:中止执行并还原状态更改,提供解释字符串blockhash(uint blockNumber) returns (bytes32)
: : 给定的块的hash值, 只有最近工作的256个块的hash值keccak256(...) returns (bytes32)
:计算(紧凑排列的)参数的 Ethereum-SHA3 hash值sha3(...) returns (bytes32)
: an alias tokeccak256
sha256(...) returns (bytes32)
: 计算(紧凑排列的)参数的SHA256 hash值ripemd160(...) returns (bytes20)
:计算 256个(紧凑排列的)参数的RIPEMDecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)
: 椭圆曲线签名公钥恢复,错误时返回0addmod(uint x, uint y, uint k) returns (uint)
: compute(x + y) % k
where the addition is performed with arbitrary precision and does not wrap around at2**256
. Assert thatk != 0
starting from version 0.5.0.mulmod(uint x, uint y, uint k) returns (uint)
: compute(x * y) % k
where the multiplication is performed with arbitrary precision and does not wrap around at2**256
. Assert thatk != 0
starting from version 0.5.0.this
(current contract’s type): 当前合约,在地址上显式转换super
: 在层次关系上一层的合约selfdestruct(address recipient)
: 销毁当前的合约,将其资金发送到指定address
suicide(address recipient)
: a deprecated alias toselfdestruct
<address>.balance
(uint256
): address地址中的账户余额(以wei为单位)<address>.send(uint256 amount) returns (bool)
: 将一定量wei发送给address地址,若失败返回false
。<address>.transfer(uint256 amount)
: 将一定量wei发送给address地址,若失败抛出异常。
ethereum(以太坊)(九)--global(全局函数)的更多相关文章
- ethereum(以太坊)(一)
从这周开始,开始学习以太坊开发--solidity,开始决定往区块链方向发展,毕竟区块链技术应用广泛.一开始接触solidity开发语言不太习惯,毕竟一直在学习python语法,有很多都不能接受.有难 ...
- ethereum(以太坊)(十)--函数修饰符
pragma solidity ^0.4.0; contract modifierTest{ uint public v1; uint constant v2 =10; //uint constant ...
- ethereum(以太坊)(实例)--"安全的远程购买"
pragma solidity ^0.4.10; contract Safebuy{ uint public price; address public seller; address public ...
- ethereum(以太坊)(十一)--字节数组(二)
pragma solidity ^0.4.0; contract test { uint [5] T =[1,2,3,4,5] ;//固定长度的数组:可修改数组内值大小,不支持push,不可更改长度 ...
- ethereum(以太坊)(实例)--"简单的公开竞拍"
说真的,刚开始接触这个竞拍案例--“简单的公开竞拍”,我就抱着简单的心态去查看这个实例,但是自我感觉并不简单.应该是我实力不到家的原因吧!!!233333...不过经过大半天的努力,自己理解完之后,觉 ...
- ethereum(以太坊)(基础)--容易忽略的坑(一)
pragma solidity ^0.4.0; contract base{ address public _owner=msg.sender; uint _a; string internal _b ...
- ethereum(以太坊)(七)--枚举/映射/构造函数/修改器
pragma solidity ^0.4.10; //枚举类型 contract enumTest{ enum ActionChoices{Left,Right,Straight,Still} // ...
- ethereum(以太坊)(四)--值传递与引用传递
contract Person { string public _name; function Person() { _name = "liyuechun"; } function ...
- ethereum(以太坊)(三)--合约单继承与多继承
pragma solidity ^0.4.0; // priveta public internal contract Test{ //defualt internal uint8 internal ...
随机推荐
- HDU——Cover——————【技巧】
Cover Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- c#-day04学习笔记
面向对象 类与对象: C#的类和对象是用于在程序中模拟现实生活中的事务的 C#中的类是一种数据类型,用来定义对象的类型的 C#的对象是类的实例,是基于[给定数据类型]的具体的一个实例 小结: 类是对象 ...
- [JAVA][Liferay] Configure sharding in multiple sites
create databases first portal-ext.properties配置 hibernate.dialect=org.hibernate.dialect.PostgreSQLDia ...
- Matlab多项式回归实现
多项式回归也称多元非线性回归,是指包含两个以上变量的非线性回归模型.对于多元非线性回归模型求解的传统解决方案,仍然是想办法把它转化成标准的线性形式的多元回归模型来处理. 多元非线性回归分析方程 如果自 ...
- CommonJS 的实现原理
CommonJS 使用 Node.js 的四个环境变量moduleexportsrequireglobal 只要能够提供这四个变量,浏览器就能加载 CommonJS 模块. Browserify 是目 ...
- ndk制作so库,ndk-build不是内部或外部命令。。。的错误
想了想大概就需要下面这几步: 1.下载ndk 2.配置ndk的环境变量 3.在android studio添加一些ndk的配置 4.编写c文件 5.生成so库 6.调用so库 上面提到的大部分问题你都 ...
- element-ui打包的坑爹之处 !!!必看三遍!!!
最近笔者打包element-ui出现如下问题: ERROR in static/js/0.4cad92088cb8dc6e7afd.js from UglifyJs Unexpected token: ...
- Help for enable SSL 3.0 and disable TLS 1.0..
https://support.mozilla.org/en-US/questions/967266 i cant find tab Encryption for enable SSL 3.0 and ...
- JSON:使用json_encode函数解析结果为Null
1.首先,数据库中的json数据是这样的 2.仓鼠使用json_encode()函数进行解析json数据时,显示了一个NULL: 3.这时候,我们需要使用,表示在解析json之前,该json是有语法错 ...
- Python-Django框架学习笔记——第二课:Django的搭建
Django 环境搭建 一. 版本选择 Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3. Django 1.6.x 支持 Pytho ...