Indexes
Two contracts, three proxies.
AccountsIndex
Enumerable address set with activation. clc-core calls add with its master key on user registration.
Proxy: 0xB1Ec3942dc9258de62056Febb0dc544D9EB1ED1a.
| Call | Who | Effect |
|---|---|---|
add(account) | owner / writer | insert; revert if present |
remove(account) | owner / writer | swap-and-pop (order not stable) |
activate / deactivate | owner / writer | toggle have without dropping the entry |
have(account) | anyone | present and active |
contains(account) | anyone | present, including deactivated |
entry(i) / entryCount() | anyone | enumerate |
time(account) | anyone | add timestamp; NotFound if absent |
Deactivation: contains stays true, have / isActive go false.
add reverts Access() unless writers[msg.sender] || msg.sender == owner().
Events: AddressAdded, AddressRemoved, AddressActive(account, active), WriterAdded, WriterDeleted.
TokenUniqueSymbolIndex
Token registry keyed by unique ERC-20 symbol(). Used as:
- Network TokenIndex
- Network PoolIndex (pools, not tokens; same ABI)
- Per-pool
SwapPool.tokenRegistry
| Call | Notes |
|---|---|
register(token) / add(token) | reads symbol(); unique address + unique symbol; ≤32 bytes; owner/writer |
remove(token) | owner/writer |
have(token) | SwapPool whitelist check |
addressOf(bytes32 symbolKey) | lookup |
entry(i) / entryCount() | enumerate addresses |
identifier(i) / identifierCount() | enumerate symbol keys |
time / activate / deactivate are inert stubs (0 / false) for interface compatibility.
isWriter on this contract is the raw mapping. It does not treat owner as writer.
Events: AddressKey(symbol, token), AddressAdded, AddressRemoved.
Tracker bootstrap walks TokenIndex and PoolIndex with entryCount / entry, then each pool's tokenRegistry().