def encode_calldata(self, web3: Web3, fn_signature: str, arguments: List, contract_abi) -> Calldata: """ encode inputted contract and methods with call arguments as pymaker.Calldata """ assert isinstance(web3, Web3) assert isinstance(fn_signature, str) assert isinstance(arguments, List) return Calldata.from_contract_abi(web3, fn_signature, arguments, contract_abi)
def test_from_contract_abi(self, web3): # given calldata1a = Calldata( '0xa9059cbb' # function 4byte signature '00000000000000000000000011223344556600000000000000000000000000ff' '000000000000000000000000000000000000000000000000000000000000007b') calldata1b = Calldata.from_contract_abi( web3, 'transfer(address,uint256)', ['0x11223344556600000000000000000000000000ff', 123], test_abi) # expect assert calldata1a == calldata1b