EOSIO / EOSIO/abieos

inconsistency in handling redefined types

Open
#10 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
35
Forks
45
PR merge metrics
No merged PRs in 30d

Description

On mainnet, `mydex1engine` has ABI that redefines some standard types:
```
},{
"name": "extended_symbol",
"base": "",
"fields": [{
"name": "sym",
"type": "symbol"
},{
"name": "contract",
"type": "account_name"
}
]
},{
"name": "extended_asset",
"base": "",
"fields": [{
"name": "quantity",
"type": "asset"
},{
"name": "contract",
"type": "account_name"
}
]
}
```

when parsing the binary output from state history plugin, abieos throws an exception:

```
error: abi redefines type "extended_asset"
```

So, it needs to be more consistent: either `nodeos` should reject uploading of such an ABI, or `abieos` should tolerate and work around this error. Probably both should be done, as this wrong ABI is already carved in history.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the exception while parsing the mainnet `mydex1engine` ABI's binary output from the state history plugin, then inspect how abieos handles redefined types. Compare the possible nodeos upload rejection and abieos compatibility behaviors; done means the historical ABI no longer causes parsing to fail and the handling policy is consistent.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.