Erc-20
是否有與 OpenZeppelin 的 SafeERC20.safeTransfer 等效的 Vyper?
OpenZeppelin 提供 Solidity
SafeERC20
庫作為處理ERC20 可能變化的一種方式。是否有使用 Vyper 的等效方法來執行此操作?
從 Vyper 開始,
0.2.0
這可以使用raw_call
內置函式:@external def safe_transfer(_token: address, _to: address, _value: uint256) -> bool: _response: Bytes[32] = raw_call( _token, concat( method_id("transfer(address,uint256)"), convert(_to, bytes32), convert(_value, bytes32) ), max_outsize=32 ) if len(_response) > 0: assert convert(_response, bool), "Transfer failed!" return True