Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

ContractRegistry

bytes32 identifier → address. Identifiers are fixed in initialize; each set can run once.

Proxy: 0xaC95B1A09f2dbaf4542e3Ba8c4Cce0234895D389.

function initialize(address owner_, bytes32[] memory _identifiers) external initializer;
function set(bytes32 _identifier, address _address) external onlyOwner returns (bool);
function addressOf(bytes32) external view returns (address);
function identifier(uint256) external view returns (bytes32);
function identifierCount() external view returns (uint256);

Event: AddressKey(identifier, address).

The key is ASCII, right-padded: cast format-bytes32-string AccountIndex. Case matters.

This registry has AccountIndex, TokenIndex, PoolIndex. clc-core reads AccountIndex; eth-tracker reads TokenIndex and PoolIndex.

Config

Same address in CORE_CHAIN__GE_REGISTRY and tracker bootstrap.ge_registry. Tracker cannot take a single env value (koanf Strings() treats it as a scalar), so put it in tracker-config.toml and leave TRACKER_BOOTSTRAP__GE_REGISTRY unset:

[bootstrap]
ge_registry = ["0xaC95B1A09f2dbaf4542e3Ba8c4Cce0234895D389"]