New answers tagged

0

For on-chain transactions, you can use abi.encodeWithSelector. This article has a ton of great information about it. In your case, you can do the following: bytes4 methodSig = 0xbeabacc8; address addressOne = address(0); address addressTwo = address(1); uint256 uintOne = 2; abi.encodeWithSelector( methodSig, addressOne, addressTwo, ...


0

You can execute the call the following way (members of addresses, abi.encode*, low-level calls): Example 1: Call using already calculated function signature (this answers your question) bytes memory transferPayload = abi.encodeWithSelector(bytes4(0xbeabacc8), param1, param2, param3); bytes memory executePayload = abi.encodeWithSignature("execute(address,...


1

Calldata is the data sent to contract with external calls and since 0.6.0 Solidity introduced fallback and receive functions for contracts to receive calldata and/or ethers ( see https://solidity.readthedocs.io/en/v0.6.0/contracts.html#receive-ether-function ) This part of Deploy & Run tx's plugin of Remix-ide is to provide an interface to use them. see ...


1

Ethereum transactions follow a certain low-level structure: from: address (signed by this) to: address value: uint (ether) data: message data bytes The first four bytes of data are a function selector, where the selector is derived from a hash of the function name (source code) and arguments, truncated to four bytes. After that comes the arguments. That's ...


0

The general error: Invalid implicit conversion from type[N] memory to type[] memory requested. Occurs when trying to send a static array to a function which expects a dynamic array. In order to fix it in your specific case, you should do something like: address[] memory recipients = new address[](2); uint[] memory tokenAmounts = new uint[](2); (...


Top 50 recent answers are included