8

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 ABIEncoderV2

As far as I know, ABIEncoderV2 still needs 'experimental' and that means officially not yet ready to the production level.

I know 0x is using https://github.com/0xProject/0x-monorepo/search?q=ABIEncoderV2%3B&unscoped_q=ABIEncoderV2%3B

and we can't use arrays as arguments in function

Do you know anything else?

1 Answer 1

10

Update 2020 (#2)

As of Solidity 0.6.0, ABIEncoderV2 is no longer experimental.



Update 2020 (#1)

An update from the Solidity team reads:

We are almost finished with implementing breaking changes and can hopefully release Solidity 0.6.0 later this year. Some of the new changes include:

ABIEncoderV2 is no longer experimental.



As you mentioned, ABIEncoderV2 is currently in experimental state. This means that the creators do not vouch for its use in production.

Additionally, there have been two critical bugs(1, 2) found in Solidity surrounding ABIEncoderV2 within the last 3 months (at the time of writing), one being just 4 days ago.

Finally, auditing firms such as Zeppelin have noted the use of ABIEncoderV2 as a "High Severity" item, as they believe it is not ready for production.

With that said, teams like 0x and dYdX are using it in production and have been fine thus far. If you are using ABIEncoderV2 in production, try to limit its use to only necessary items, and attempt to write as many tests as possible for the affected code.

2
  • 1
    Update (#3) - As of Solidity 0.8.0 AbiEncoderV2 is turned on by default :)
    – shamisen
    Jun 14, 2022 at 19:15
  • I'm using pragma solidity 0.8.11; and I still needed to pragma experimental ABIEncoderV2; in order to generate ABI for this function: function getOrganisations() public view returns(Organisation[] memory) { return organisations; } Don't trust, verify. I've just asked the code / remix / compiler / etherscan. Jun 19 at 15:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.