函数修饰符

pragma solidity ^0.4.11;

contract owned {
address owner; // 构造函数
function owned() public {
owner = msg.sender;
} // 此合约定义的函数修饰符不使用,用于衍生的合约
modifier onlyOwner {
require(msg.sender == owner);
_; // 引用的函数体部分
}
} contract mortal is owned {
function close() public onlyOwner {
selfdestruct(owner);
}
} /* 相当于
function close() public onlyOwner {
require(msg.sender == owner);
selfdestruct(owner);
}
*/ contract priced {
modifier costs(uint price) {
if (msg.value >= price) {
_;
}
}
} // 继承合约priced,owned
contract Register is priced, owned {
mapping (address => bool) registeredAddresses;
uint price; function Register(uint initialPrice) public {
price = initialPrice;
} // 这里使用关键字payable很重要,否则函数将自动拒绝所有以太的转帐
function register() public payable costs(price) {
registeredAddresses[msg.sender] = true;
} /* 相当于
function register() public payable costs(price) {
if (msg.value >= price) {
registeredAddresses[msg.sender] = true;
}
}
*/ function changePrice(uint _price) public onlyOwner {
price = _price;
} /* 相当于
function changePrice(uint _price) public onlyOwner {
require(msg.sender == owner);
price = _price;
}
*/
} contract Mutex {
bool locked; modifier noReentrancy() {
require(!locked);
locked = true;
_;
locked = false;
} function f() public noReentrancy returns (uint) {
require(msg.sender.call());
return 7;
} /* 相当于
function f() public noReentrancy returns (uint) {
require(!locked);
locked = true; require(msg.sender.call());
return 7; locked = false;
}
*/
}

常量

pragma solidity ^0.4.0;

contract C {
uint constant NUMER = 32 ** 22 + 8;
string constant TEXT = "abc";
bytes32 constant MYHASH = keccak256("abc");
}

solidity语言11的更多相关文章

  1. Solidity语言系列教程

    Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在 以太坊虚拟机(EVM) 上运行. ...

  2. 用solidity语言开发代币智能合约

    智能合约开发是以太坊编程的核心之一,而代币是区块链应用的关键环节,下面我们来用solidity语言开发一个代币合约的实例,希望对大家有帮助. 以太坊的应用被称为去中心化应用(DApp),DApp的开发 ...

  3. 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约

    智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...

  4. solidity语言介绍以及开发环境准备

    solidity语言介绍以及开发环境准备   Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的 ...

  5. 用C++生成solidity语言描述的buchi自动机的初级经验

    我的项目rvtool(https://github.com/Zeraka/rvtool)中增加了生成solidity语言格式的监控器的模块. solidity特殊之处在于,它是运行在以太坊虚拟机环境中 ...

  6. solidity语言5

    结构体 pragma solidity ^0.4.11; // 众筹合约 contract CrowdFunding { // 投资者 struct Funder { address addr; ui ...

  7. solidity语言3

    #函数类型(function type) function (<parameter types>) {internal|external(public)} [pure|constant|v ...

  8. solidity语言1

    合约(contract)由变量(variable).函数(functions).函数修饰符(function modifiers).事件(events).结构体类型(struct type).枚举类型 ...

  9. Solidity语言基础 和 Etherum ERC20合约基础

    1. 类型只能从第一次赋值中推断出来,因此以下代码中的循环是无限的,  小. for (var i = 0; i < 2000; i++) { ... } --- Solidity Types ...

随机推荐

  1. npm i -S -D -g 区别

    npm install 本身就有一个别名 npm i npm i module_name -S    即    npm install module_name --save     写入depende ...

  2. vue-persist 为 vuex 持久化!!

    npm install --save vuex-persist import VuexPersistence from 'vuex-persist' const vuexLocal = new Vue ...

  3. RPC 框架 应用

    RPC RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下,RPC 更扮 ...

  4. BZOJ 5421: 收藏家

    传送门 直接搞很复杂,考虑转化问题 题目只要求第1个人最多能获得的物品数量 所以如果一种物品拥有多个和一个是没区别的 那么考虑每种物品对第1个人怎样贡献 显然要经过一些交换最终到达第一个人那里 发现很 ...

  5. poj3417 Network 树上差分+LCA

    题目传送门 题目大意:给出一棵树,再给出m条非树边,先割掉一条树边,再割掉一条非树边,问有几种割法,使图变成两部分. 思路:每一条 非树边会和一部分的树边形成一个环,分三种情况: 对于那些没有形成环的 ...

  6. centeros下安装python3

    一.查看python版本及安装python3 1. which python 可以看到预装的是2.7版本 2.安装依赖包 yum -y groupinstall "Development t ...

  7. DP Intro - OBST

    http://radford.edu/~nokie/classes/360/dp-opt-bst.html Overview Optimal Binary Search Trees - Problem ...

  8. jquery通过submit()和serialize()提交表单

    <script type="text/javascript"> $(function() { $('#form1').submit(function() { //当提交 ...

  9. 命令行编译java项目

    命令行编译java项目 项目名: testproj 目录 src -> cn -> busix -> test bin lib 编译项目 cd testproj javac -d . ...

  10. vim脚本语言

    转自:http://man.chinaunix.net/newsoft/vi/doc/usr_41.html#usr_41.txt Vim 脚本语言在很多地方用到,包括 vimrc 文件, 语法文件, ...