Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

Inconsistent behaviors between eosio::chain::abi_serializer and eosjs-serialize #823

Open
conr2d opened this issue Jan 18, 2021 · 0 comments

Comments

@conr2d
Copy link
Contributor

conr2d commented Jan 18, 2021

Version of EOSJS
v21.0.3

Describe the bug
eosio::chain::abi_serializer puts built-in types first, so even if user defines new type with built-in type name, it would be ignored. However, eosjs instantiates built-in types by createInitialTypes(), but it would be overwritten by types read from abi. It would be better to keep consistency between two serializers.

To Reproduce
Steps to reproduce the behavior:

  1. Define new type with built-in type name in contract ABI like:
  "types": [
    {
      "new_type_name": "bytes",
      "type": "checksum256"
    }
  ],
  1. Send an action including argument with the user-defined new type
  • cleos: cleos uses eosio::chain::abi_serializer, so bytes still follows the serialization rule of built-in type bytes.
  • eosjs: eosjs overwrites built-in type serializer with user-defined one, so it would be serialized like checksum256 here.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant