函数修饰符

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. c3m快速入门

  2. bzoj3098 Hash Killer II 生日共计

    题目传送门 题目大意: 让你构造一个字符串,使字符串在题目给出的哈希条件下统计出错. 思路:生日攻击,结论题,尚未理解. #include<bits/stdc++.h> #define C ...

  3. 隐藏入口文件的apache配置

    AllowOverride None->AllowOverride All #LoadModule rewrite_module modules/mod_rewrite.so->LoadM ...

  4. [转] Spring Boot特性

    [From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...

  5. 枚举类型与字符串ConvertEnumToString

    枚举类型与字符串添加字典互转ConvertEnumToString using UnityEngine; using System.Collections; using UnityEngine.UI; ...

  6. Oracle 基础系列之1.1 oracle的安装

    一. 1.以下是安装Oracle的一些硬件上的条件: (1).操作系统最后是windows2000(也就是服务器版的操作系统) (2).内存最好在1G以上,当然越大越好(因为Oracle服务启动就要消 ...

  7. Yii 自带的分页实例

    yii自带的分页很好用,简单的几行代码就能把分页搞出来,唯一恼火的是只能写在controller中,所以有时候controller中的方法有点臃肿.废话少说,上代码上图. 一.代码实例: 1.控制器中 ...

  8. Python 递归返回树形菜单JSON串 <flask>

    需求:菜单管理功能(增.删.改),多级树形菜单展示 数据库表设计 create table if not exists Menu( id serial primary key , title ) no ...

  9. pat1015. Reversible Primes (20)

    1015. Reversible Primes (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A r ...

  10. mongo 多条件or

    or语句 or b=2 > db.XXX.find({"$or":[{"a":1}, {"b":2}]});  等于java mong ...