一个众筹的智能合约示例,来源于 learnxinyminutes
主要是用来展示智能合约状态机(State machines)和函数修饰器(modifier)的使用
修饰器
函数修饰器(Modifiers)可以用来改变一个函数的行为。比如用于在函数执行前检查某种前置条件。这个和python的修饰器(Decorators)的作用很类似,在python中,我们也经常使用装饰器对函数执行前后增加一些逻辑。下面是solidity修饰器的简单使用,在众筹支付前需要检查合约状态是否已完成
python中一个函数可以有多个装饰器,solidity中的函数也是可以有多个修饰器的。
如果同一个函数有多个修饰器,他们之间以空格隔开,修饰器会依次检查执行。
状态机
状态State在合约中本质是一个合约的全局变量,在实际合约中,状态会有很多种,各个合约方法也会对State做修改,并且根据State执行不同的逻辑。对于多个State可以通过枚举管理