mirror of
https://github.com/logos-storage/nim-contract-abi.git
synced 2026-01-02 13:43:12 +00:00
Since the introduction of the new API for encoding and decoding of tuples, these procs are no longer required to be on the external API.
Contract ABI
Implements encoding of parameters according to the Ethereum Contract ABI Specification.
Installation
Use the Nimble package manager to add contractabi to an existing project.
Add the following to its .nimble file:
requires "https://github.com/status-im/nim-contract-abi >= 0.1.0 & < 0.2.0"
Usage
import contractabi
import stint
# encode unsigned integers, booleans, enums
AbiEncoder.encode(42'u8)
# encode uint256
AbiEncoder.encode(42.u256)
# encode byte arrays and sequences
AbiEncoder.encode([1'u8, 2'u8, 3'u8])
AbiEncoder.encode(@[1'u8, 2'u8, 3'u8])
# encode tuples
AbiEncoder.encode( (42'u8, @[1'u8, 2'u8, 3'u8], true) )
# decode values of different types
AbiDecoder.decode(bytes, uint8)
AbiDecoder.decode(bytes, UInt256)
AbiDecoder.decode(bytes, array[3, uint8])
AbiDecoder.decode(bytes, seq[uint8])
# decode tuples
AbiDecoder.decode(bytes, (uint32, bool, seq[byte]) )
Description
Languages
Nim
100%