degenbot.abi¶

ABI encode/decode — the stable mirror home for _ffi.abi.

Provides public functions (encode, encode_packed, encode_single, decode, decode_single) that delegate to the Rust degenbot-abi core. Addresses are EIP-55 checksummed on decode.

Package Contents¶

type degenbot.abi.BytesLike = bytes¶
exception degenbot.abi.AbiEncodeError(*, message: str | None = None)¶

Bases: degenbot.exceptions.base.DegenbotError

Raised when ABI encoding fails.

exception degenbot.abi.AbiDecodeError(*, message: str | None = None)¶

Bases: degenbot.exceptions.base.DegenbotError

Raised when ABI decoding fails.

degenbot.abi.encode(types: collections.abc.Sequence[str], args: collections.abc.Sequence[Any]) → bytes¶

Encode values into ABI-encoded bytes.

Parameters:
  • types – ABI type strings (e.g., ["uint256", "address"]).

  • args – Values to encode.

Returns:

ABI-encoded bytes.

Raises:

AbiEncodeError – If encoding fails.

degenbot.abi.encode_packed(types: collections.abc.Sequence[str], args: collections.abc.Sequence[Any]) → bytes¶

Pack-encode values into Solidity abi.encodePacked bytes.

Each value is encoded tightly with no 32-byte word padding and no length prefix for dynamic types — the values are simply concatenated in their packed forms. Tuples are packed element-by-element.

Parameters:
  • types – ABI type strings (e.g., ["address", "address", "bool"]).

  • args – Values to encode.

Returns:

The packed-encoded bytes.

Raises:

AbiEncodeError – If encoding fails.

degenbot.abi.encode_single(abi_type: str, value: Any) → bytes¶

Encode a single value into ABI-encoded bytes.

Parameters:
  • abi_type – ABI type string (e.g., "uint256").

  • value – The value to encode.

Returns:

The ABI-encoded bytes.

Raises:

AbiEncodeError – If encoding fails.

degenbot.abi.decode(types: collections.abc.Sequence[str], data: BytesLike) → tuple[Any, ...]¶

Decode ABI-encoded bytes into Python values.

Parameters:
  • types – ABI type strings (e.g., ["uint256", "address"]).

  • data – ABI-encoded bytes.

Returns:

Tuple of decoded values.

Raises:

AbiDecodeError – If decoding fails.

degenbot.abi.decode_single(abi_type: str, data: BytesLike) → Any¶

Decode a single ABI value.

Parameters:
  • abi_type – ABI type string (e.g., "uint256").

  • data – ABI-encoded bytes.

Returns:

The decoded value.

Raises:

AbiDecodeError – If decoding fails.