Skip to main content
The contracts namespace describes each registry protocol’s contracts: per-chain addresses, each bound to the ABI the registry checked against the deployed code. contracts.on(chain) returns typed accessors (contracts.on("base").Uniswap.UniversalRouter) whose methods build ContractCall objects you run with your own viem client.
Generated from the type declarations of @eco-incorp/sauce.

contracts.ContractDescriptor

Interface · @eco-incorp/sauce

contracts.ContractCoverage

Interface · @eco-incorp/sauce

contracts.ContractKind

Type · @eco-incorp/sauce What KIND of thing a descriptor represents. Not a boolean: the vendored registry data genuinely contains three structurally different shapes sharing one addresses.ts/abis.ts file pair per protocol.

contracts.DescriptorMethod

Interface · @eco-incorp/sauce

contracts.MethodReturn

Interface · @eco-incorp/sauce One address output of a method, and the registry contract it is.

contracts.ResolvedContract

Interface · @eco-incorp/sauce

contracts.StateMutability

Type · @eco-incorp/sauce
Interface · @eco-incorp/sauce One registry contract: a protocol’s addresses.ts role key, its abis.ts export, and the name it has in a namespace (Base.UniswapV3.QuoterV2, UniswapV3.QuoterV2 in a program). Every role with an EVM address is a contract:
  • singleton - a role bound to an ABI;
  • address-only - a role bound to no ABI, or to one the evidence marks unverifiable (its address only, no methods);
  • interface - an ABI bound to no role: no fixed address, so a caller binds one with .at(...).
A contract is named by its role key, first letter upper-cased, with the ABI export’s spelling for the role’s leading words wherever the export spells the same words (clFactory under SlipstreamCLFactoryABI is CLFactory). An interface, or a role bound to different ABIs on different chains, is named after its ABI export (deriveContractName). The generator refuses a name two contracts of one protocol would share.

contracts.ContractLinkEntry

Type · @eco-incorp/sauce
Interface · @eco-incorp/sauce A registry function whose address output the registry knows the contract of: a factory’s pool, a pool’s tokens, a vault’s asset. An annotation names an ABI the registry already holds to its deployments; it says only which of them an address a function returns speaks. Where the actions suites’ replayed mainnet state holds the contracts, they call each result as its annotation says (names.mainnet, swap.mainnet).

contracts.DESCRIPTORS

Variable · @eco-incorp/sauce The whole flat registry, built once at module load. Stable order: as declared in CONTRACT_LINKS.

contracts.byChain

Variable · @eco-incorp/sauce REVERSE INDEX: chain slug -> descriptors with an address on that chain (kind:“interface” descriptors are always excluded - see listInterfaces).

contracts.byProtocol

Variable · @eco-incorp/sauce protocol slug (normalized) -> its descriptors, in DESCRIPTORS order.

contracts.byProtocolAndContract

Variable · @eco-incorp/sauce protocol slug (normalized) -> contract name (normalized) -> descriptor.
Variable · @eco-incorp/sauce One entry per contract: 312 contracts across 133 protocols.

contracts.RETURNED_CONTRACTS

Variable · @eco-incorp/sauce 58 function outputs whose contract the registry knows.

contracts.ChainContracts

Interface · @eco-incorp/sauce The contract tree every chain accessor carries: one namespace per registry protocol and one per family alias. Chain-independent: whether a contract is deployed on a chain is its .available.