MEW で vyper (以下のソース) で書かれたスマート コントラクトを正常にデプロイしました。コントラクトに資金を送ろうとすると、トランザクションが元に戻ります。コードをできるだけ単純化しようとしましたが、それでもハングアップします。私はアサートコールがそれをつまずかせていると思っていたので、それらも削除しましたが、それでも問題が発生しました。最後に、非常に単純な「Hello World」コントラクトを試してみましたが、これもデプロイ後に元に戻りました。この時点で途方に暮れています。元に戻すエラーが発生する理由を知っている人はいますか?
struct Funder:
sender: address
value: wei_value
funders: map(int128, Funder)
nextFunderIndex: int128
beneficiary: address
prizeAcc: address
deadline: public(timestamp)
refundIndex: int128
timelimit: public(timedelta)
@public
def __init__(_beneficiary: address, _prizeAcc: address, _timelimit: timedelta):
self.beneficiary = _beneficiary
self.prizeAcc = _prizeAcc
self.timelimit = _timelimit
self.deadline = block.timestamp +_timelimit
# Participate in this crowdfunding campaign
@public
@payable
def participate():
assert block.timestamp < self.deadline, "Participation deadline has passed"
assert msg.value == 10**16, 'Must send exactly 0.01 ETH to participate'
# place funder's info in to struct (address & contributed amt)
nfi: int128 = self.nextFunderIndex
self.funders[nfi] = Funder({sender: msg.sender, value: msg.value})
self.nextFunderIndex = nfi + 1
send(self.prizeAcc, 5*10**15)
# deadline passed Send funds to the beneficiary
@public
def finalize():
assert block.timestamp >= self.deadline, "deadline has passed"
# this conditions must be met to finalize
selfdestruct(self.prizeAcc)