11、智能合约开发与部署:从Populus到投票应用

智能合约开发与部署:从Populus到投票应用

1. Populus开发框架下的智能合约测试

在智能合约开发中,测试是确保其功能正确性的关键环节。在Populus开发框架里,我们不仅可以对无参数构造函数的智能合约进行测试,还能处理有参数构造函数的合约。

当测试涉及到交易取款时,由于经理账户取款后余额减去初始余额不会恰好是1以太币,因为账户需要支付手续费。所以,我们使用一个粗略的测量方法来确保取款成功,只要差值低于10 gwei即可。gwei是用于计算交易费用的货币单位,1 gwei等于1,000,000,000 wei。可以使用以下代码进行断言:

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 = greeti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值