使用Vyper实现智能合约
1. 智能合约中的特殊对象与捐赠方法
在Vyper编写的智能合约方法内部,存在特殊对象,例如 msg
。通过 msg.sender
可以访问调用该方法的账户,使用 msg.value
能获取以太币(以wei为单位)的数量。以下是保存智能合约发起者地址的代码示例:
@payable
@public
def donate(name: bytes[100]):
assert msg.value >= as_wei_value(1, "ether")
assert self.index < 10
self.donatur_details[msg.sender] = DonaturDetail({
sum: msg.value,
name: name,
time: block.timestamp
})
self.donaturs[self.index] = msg.sender
self.index += 1
-
@payable
:表明该方法接受以太币支付。 - <