基于Populus框架的智能合约开发与部署及投票应用搭建
1. Populus框架下智能合约的测试与部署
1.1 智能合约测试
在智能合约测试中,对于取款操作后的账户余额检查,由于取款时账户需支付费用,经理账户取款后的余额减去初始余额不会恰好是1以太币。我们采用粗略测量,只要差值低于10 gwei即可。可以使用以下代码进行断言:
assert abs((after_withdraw_balance - initial_balance) - web3.toWei('1', 'ether')) < web3.toWei('0.00000001', 'ether')
运行测试命令:
(populus-venv) $ py.test tests/test_donation.py
当智能合约的构造函数有参数时,以 Greeter2.vy
合约为例:
greeting: bytes[20]
@public
def __init__(greeting_param: bytes[20]):
self.greeting = greeting_param
@public
def setGreeting(x: bytes[20]):
self.greeting = x
@public
def greet() -> bytes[20]:
re