Solidity
如何在 vyper 中聲明一個儲存變數?
我正在嘗試將我的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
是一個內置常量。