Skip to main content

Questions tagged [abiencoderv2]

The new ABI encoder is able to encode and decode arbitrarily nested arrays and structs. It produces less optimal code (the optimizer for this part of the code is still under development).

Filter by
Sorted by
Tagged with
1 vote
1 answer
510 views

How to decode ABI such that i get From, To, For in python

Currently my implementations of abi decode gets only token amount and not the From, To, address and token amount is without decimal point value = decode(['uint256'],log['data']) ouptput Token ...
1 vote
0 answers
16 views

Create Call Data for function input using Nethereum

I want to call it a smart contract function. I am signing the transaction using Metamask so I need to create call data for the transaction. I want to use Nethereum for creating the call data of the ...
1 vote
1 answer
818 views

How to encode variable number of arguments with `abi.encodePacked`

I'm trying to use the UniswapV3 Router to execute a Multihop Swap which accepts the path as an encoded combination of token addresses. Documentation: https://docs.uniswap.org/protocol/guides/swaps/...
0 votes
1 answer
1k views

abi.encodePacked() + arrays trick

So, I'm realizing that solidity does not allow you to use abi.encodePacked on arrays. I want to be able to return a 2 dimensional uint array printed out and concatenated with other strings. I'm trying ...
1 vote
1 answer
26 views

abi.decode() does not accept "address payable" as type

function myStatic() public returns (uint256[] memory, address payable[] memory, bytes32, string memory) { bytes memory encodedResult; bool success; (success, encodedResult) = address(...
1 vote
2 answers
645 views

How to get FunctionName from msg.data Signature in Solidity

Is it possible to decode the signature of a method from msg.data and get the Function name aside the parameters of the function using abi.decode? or any other way aside from using the ABI?
2 votes
0 answers
79 views

How to really encode dynamicall length array of structs in Solidity ? Or how to use the Muliplex Feature of 0x?

I need to use the Multiplex Feature of 0x in order to perform a specific trade that perform a UniswapV3 call followed by a _FillOTCorder using the SelfBalance feature of the the Multiplex Feature. As ...
0 votes
0 answers
44 views

Access imported contract's function on behalf of another contract using delegatecall

So I have two contracts. the firt one is a contract that imports a token import {testToken} from "./testToken.sol"; testToken public token; and has this functionality AddressUpgradeable....
0 votes
0 answers
12 views

I want to use scale codec in solidity? Is the any implementation of scale codec to decode bytes?

I want to decode bytes on solidity side that was decoded with scale codec. Is the any implementation of scale codec. (decode) on solidity side?
1 vote
1 answer
53 views

The simplest way to return a list of items + gas limits on long lists when using pragma experimental ABIEncoderV2?

This question has two parts. I would like to return a list of items from my smart contract in a simple way, ideally a one-liner solution, something that I consume on the front-end. I tried some of the ...
1 vote
1 answer
871 views

How to encode a solidity struct in python?

I have in solidity: struct MyStruct { string data; address issuer; } function getHash(MyStruct calldata myStruct) public pure returns (bytes32) { return keccak256(abi.encode(myStruct)); } ...
3 votes
3 answers
374 views

How to decode a nested encodePacked?

The structure of the encoding is abi.encodePacked( abi.encodePacked( address, uint256, uint256, address, uint256, address, ...
2 votes
4 answers
184 views

How to batch list into a single bytes object?

Let's say I have a string list of parameters ["Example String", "vitalikbuterin", "1000"] How can I encode this list into a bytes object, and then decode the bytes to get ...
1 vote
0 answers
234 views

ABI-encoding in Nethereum of a struct that contains a bytes-array (variable size)

I have a custom struct defined in solidity. When calling the decode-function of the contract, I want to decode an encoded MyStruct (in bytes). This works perfectly as long as a previous defined ...
0 votes
1 answer
7 views

Can the Aragon SDK pass any encoded action abitrarily?

In the examples section of the SDK documentation, there are encoders for a bunch of common DAO operations. However I can't see an encoding for an arbitrary contract call in the examples. Does the SDK ...
4 votes
2 answers
4k views

Encode a struct with solidity

Is it possible to encode a struct in Solidity without serializing each variable separately? Something like: struct MyStruct { uint x; uint y; } MyStruct storage myStruct = MyStruct({ x: 11, ...
0 votes
2 answers
1k views

How to use initialize a bytes array with abi data?

To initialize a bytes array with the bool value True encoded as ABI data, I'm attempting to do it like this: bytes memory arr = '0x0000000000000000000000000000000000000000000000000000000000000001'; ...
1 vote
1 answer
1k views

How can I decode an array of structs that is encoded with arbitrary data?

I'm using calldata of abi.encode(123 , arrayOfStructs) and abi.decode(data[:32], (uint256)) to get 123. But I'm unable to get the array of structs with abi.decode(data[32:], (myStruct[])) On the other ...
4 votes
3 answers
6k views

web3 equivalent of abi.encodePacked

What is the equivalent of abi.encodePacked in web3? I am trying to generate the equivalent of (solidity) keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", domainHash, ...
1 vote
1 answer
86 views

Byte32 to uint and then back to byte32

I have to bitpack two uint128 values into a uint256, then get back the two original uint128s. To encode the values I'm using: function encode256(uint128 a, uint128 b) pure public returns (uint256) { ...
14 votes
2 answers
12k views

How to pass struct params in remix ide?

I have this smart contract: pragma solidity 0.5; pragma experimental ABIEncoderV2; contract TestStruct { struct User { string name; uint256 age; } mapping (bytes32 =&...
1 vote
1 answer
885 views

How to decode data from abi.encodeWithSignature?

How can I get decode data from my method abi.encodeWithSignature ? contract Store { function set(address contractAddress, string memory value) public { (bool success, bytes memory data) = ...
1 vote
1 answer
1k views

How can I return string array in solidity?

This is my struct: struct Token { address tokenAddress; uint256 minAmount; bool emergencyUnlock; TokenStatus status; string name; uint256 decimal; ...
1 vote
1 answer
1k views

The Graph nodes can't decode ABI encoded data containing arrays

I'm currently having an issue with decoding a function call inside a Subgraph mapping that seems to be related to builtin abi decoder of a Graph node: Given this input: ...
1 vote
1 answer
1k views

What is the difference between encodeWithSelector and encode?

I've been messing around with the abi.encode... functions and I think I have a good grasp of the differences, except abi.encode and abi.encodeWithSelector. Because, they give similar but slightly ...
1 vote
0 answers
217 views

Verify Smart Contract ABI Encoded Avalanche

I would like to verify a smart contract with snowtrace.io explorer on Avalanche. For this I need Constructor Argument ABI-Encoded To encode this, I use https://abi.hashex.org/ Anyway I get the error ...
0 votes
1 answer
392 views

Calldata and Payload for multiple calls

If I understand well, payload and calldata are the same thing ? Basically are the bytes representation of the function that is called. I heard this was useful for calling many functions in a single ...
2 votes
0 answers
270 views

Maximum ABI-encoded variables

In early versions of the ABI encoder/EVM/Solidity, the budget for function parameters was 16 fixed-length variable or 8 variable-length variables. The logic was simple enough - a budget of 16 slots ...
2 votes
2 answers
658 views

Passing struct into solidity function from brownie

Similar questions have been asked before, and I have read them but am stuck after using encode_single. If I pass the resulting bytes into my solidity function it says "expected list or tuple, ...
0 votes
1 answer
101 views

Encoding arguments for UniswapV3 trade function

I am trying to encode arguments to call the UniswapV3ExchangeAdapter through the Set-Protocol TradeModule. The UniswapV3ExchangeAdapter has a function which is called generateDataParam that given hops ...
0 votes
0 answers
99 views

How can I get this mapping function in an interface? [duplicate]

I have this mapping in a smart contract: mapping (uint256 => mapping (address => UserInfo)) public userInfo; I want to call this in a interface like function view returns: Can someone tell me ...
1 vote
1 answer
1k views

how to encode bool variables in solidity

i am trying to encode a bool variable as callback data (bytes). i am doing this by using abi.encodePacked for reduced space and cost and a custom decoding function. The issue is that after decoding, ...
2 votes
0 answers
760 views

Encode nested structs using web3

I'm using Solidity 0.8.0 (so I'm using ABIEncoderV2) and web3.js 1.3.4 and I'm trying to call a contract's method passing a nested struct. erc1155.methods.safeBatchTransferFrom( owner, ...
1 vote
1 answer
2k views

How to encode arrays for solidity function calls

I want to understand how to encode the following arrays in Solidity. Dynamic Arrays For example, the following: function getDynamicUintArray() public pure returns (uint[] memory) { uint[] ...
2 votes
0 answers
129 views

Is older web3.js UI code compatible with new contracts that use ABI coder v2?

The solidity 0.8.0 patch notes state: ABI coder v2 is activated by default. You can choose to use the old behaviour using pragma abicoder v1;. The pragma pragma experimental ABIEncoderV2; is still ...
1 vote
1 answer
367 views

Are newer solidity versions 'safer'? Should I update my existing code to use a newer version?

I have created a set of contracts that will shortly be undergoing an audit. It's a DeFi platform that is intended to hold real value. The project began as a fork of a fairly old project, that uses ...
1 vote
1 answer
710 views

Is it possible to access struct field from in-line assembly (Yul) when using ABIEncoderV2?

Is it possible to access struct field from Yul? Ideally it could look like this: pragma solidity ^0.7.0; pragma experimental ABIEncoderV2; contract Sample { struct S { uint256 n; ...
0 votes
1 answer
202 views

Cannot verify source code smart contract on Etherscan! PLEASE help me

Link for the contract on Etherscan: https://ropsten.etherscan.io/address/0x339237da476f50777da2d04b05037a805e46fcdb Arguments Type: String,String, uint8 ~ "FinanceToken", "MYFI", &...
1 vote
1 answer
2k views

abi.decode with pragma experimental ABIEncoderV2 reverts with nested array

I have a function with a parameter of bytes calldata that needs to be decoded to a struct, but the call reverts in assembly. I believe the issue has something to do with the nested array. I have ...
0 votes
1 answer
97 views

Why do we write ABI before some functions

Why do we write "abi" before abi.encode()? I understand that ABI is a like a JSON file used to help interaction of different applications because the solidity code is stored as bytecode, but ...
8 votes
1 answer
2k views

Status of ABIEncoderV2 now

Do you know the current status of ABIEncoderV2? I want to know the current status of ABIEncoderV2 Live projects using ABIEncoderV2 right now Restriction on the normal encoder Risks of using ...
1 vote
1 answer
239 views

How to call an overloaded function in Truffle with ABIEncoderV2?

How do you call an overloaded function in Truffle when passing a struct using pragma experimental ABIEncoderV2;? contract MyContract { struct MyStruct { address param1; address param2; ...
1 vote
0 answers
423 views

Gas-efficient string concatenation

My use-case requires that I feed my contract with a long string (Base64 data), which requires to split it and send it over several transactions so as to not reach gas limit. Then the contract rebuilds ...
3 votes
1 answer
866 views

AbiEncoderV2 encoding Tuple algorithm

Where can I find AbiEncoderV2 encoding Tuple algorithm? I would like to add Tuples support to a ruby library.
2 votes
1 answer
1k views

ABI encoding with tuples

I don't understand how ABI encoding with tuples work: f(uint8[], uint) with arguments [3], 4 accordingly https://abi.hashex.org produces: ...
0 votes
1 answer
3k views

How to encode an object with ABIEncoder V2?

How to encode an object with ABIEncoder V2? For example, this one: { items: [ { str: "str", num: 5, bol: true } ] } Solidity struct: struct Item { string str; ...
1 vote
0 answers
3k views

Solidity calldata for an array of structs

I'm trying to create the calldata offchain for an on-chain low-level call to a method that accepts an array of structs as an argument. I'm not sure how to encode the calldata for this. Here's a ...
0 votes
1 answer
377 views

Passing more than 20 parameters in solidity

How to pass more than 20 parameters in solidity function? I have tried using array[] parameter that uses pragma ABIENCODERV2 experimental feature. But this feature cannot be used in production purpose....
1 vote
0 answers
170 views

UnimplementedFeatureError: Variable inaccessible, too deep inside stack (17)

I'm getting this error, with no indication of which line of code or variable is responsible. I know it goes away when I comment out pragma experimental ABIEncoderV2; …but I need ABIEncoderV2 as I ...