TokenRegistry
Manages token registration and balance lookups. Maps token symbols to contract addresses and raw token types.
Import
import { TokenRegistry } from '@knight-shield/core';
Constructor
const registry = new TokenRegistry();
Methods
register(symbol, contractAddress, opts?): void
Registers a new token.
registry.register('CLOAK', '0x1234...', {
rawTokenType: 'custom_token_type'
});
unregister(symbol): void
Removes a token from the registry.
registry.unregister('CLOAK');
resolve(symbol): TokenInfo | undefined
Looks up a token by symbol.
const token = registry.resolve('CLOAK');
// { symbol: 'CLOAK', contractAddress: '0x1234...', rawTokenType: '...' }
resolveByRawType(rawType): TokenInfo | undefined
Looks up a token by its raw token type identifier.
const token = registry.resolveByRawType('custom_token_type');
list(): TokenInfo[]
Returns all registered tokens.
const tokens = registry.list();
listWithBalances(wallet): Promise<Array<TokenInfo & { balance: bigint }>>
Returns all tokens with their current balances from the wallet.
const tokens = await registry.listWithBalances(wallet);
for (const t of tokens) {
console.log(`${t.symbol}: ${t.balance}`);
}
Serialization
toJSON(): object
Serializes the registry to a plain object for persistence.
const data = registry.toJSON();
localStorage.setItem('tokens', JSON.stringify(data));
fromJSON(data): TokenRegistry
Restores a registry from serialized data.
const data = JSON.parse(localStorage.getItem('tokens'));
const registry = TokenRegistry.fromJSON(data);