Solidity

如何在 vyper 中聲明一個儲存變數?

  • June 4, 2019

我正在嘗試將我的solidity 程式碼轉換為vyper,但我找不到聲明儲存變數的方法。

我的solidity函式是這樣的:

struct Account {
uint256 balance; // Account's balance
uint256 timeLocked; // If not 0, then account will be allowed to withdraw 
}
mapping (address => Account) public accounts;

function addBalance() public payable {
Account storage a = accounts[msg.sender];
a.balance = a.balance + msg.value;

}

我怎樣才能a成為一個儲存變數?

我還有一個問題,我怎樣才能做出這樣的要求聲明?

require(_operator != address(0));

似乎地址(0)在vyper中不存在,因為它會引發錯誤。

你不能完全繞過使用a嗎?

struct Account:
   accountBalance: wei_value
   timeLocked: uint256

accounts: public(map(address, Account))

@public
@payable
def addBalance():
   self.accounts[msg.sender].accountBalance += msg.value

請注意,這balance是一個保留關鍵字,所以我使用了accountBalance.


似乎地址(0)在vyper中不存在,因為它會引發錯誤。

採用:

assert _operator != ZERO_ADDRESS

ZERO_ADDRESS是一個內置常量

引用自:https://ethereum.stackexchange.com/questions/71450