-
check encode_string / bytes for special case data.size/arg.size == 32 no need for length - gets placed "inline" as a convention - yes/no? why? why not?
-
make sure encode always returns BINARY / ASCII_8BIT encoding !!!!!
inspired by and follow ethers.js - why? why not?
see https://docs.ethers.org/v5/api/utils/abi/coder/
- https://www.quicknode.com/guides/smart-contract-development/what-is-an-abi
- https://docs.soliditylang.org/en/v0.8.17/abi-spec.html
Fuel Abi Coder
- https://www.npmjs.com/package/@fuel-ts/abi-coder
- https://github.com/FuelLabs/fuels-ts/tree/master/packages/abi-coder
- https://fuellabs.github.io/fuels-ts/packages/fuel-ts-abi-coder/classes/AbiCoder.html
ETH ABI (Python)
- https://github.com/ethereum/eth-abi
- https://pypi.org/project/eth-abi/
- https://eth-abi.readthedocs.io/en/latest/
Abi Coder
- https://github.com/Destiner/abi-coder - (re)uses ethers.js AbiCoder !!
Abi Decoder
Abi Decoder (Go Lang)
Truffle Codec
more
Online Abi Encoder
- https://abi.hashex.org/ - (re)uses ethers.js !!!
Abi, to represent the full ABI array Entry, to represent items in ABI arrays FunctionEntry, to represent named functions ConstructorEntry, to represent constructors FallbackEntry, to represent old or new fallback functions ReceiveEntry, to represent receive functions Parameter, to represent parameters defined in entry inputs or outputs EventParameter, to represent event parameters
for more abi packages (in js) see the abi keyword