0

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)
4

0 に答える 0