inconsistency in handling redefined types
- 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
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