/**
* @title TokenBridgeLib
* @notice Helpers for ICRC-1 ↔ ERC-20 bridge operations.
*
* Wraps the Token Bridge Admin precompile at 0x1004 and provides
* helpers for interacting with synthetic ERC-20 contracts at their
* deterministic addresses.
*
* Admin precompile (0x1004) selectors:
* registerToken(bytes) — register an ICRC-1 token (owner only)
* getErc20Address(bytes) — get synthetic ERC-20 address for a ledger
* getIcrc1Principal(address) — reverse lookup: ERC-20 → ledger principal
* depositSpenderSubaccount(...) — derive the ICRC-2 spender subaccount for a deposit
* requestDepositFromApproved(...) — request async ICRC-2 transfer_from and ERC-20 credit
* depositStatus(uint256) — check deposit ticket status
* listTokens() — list all registered tokens
*
* Synthetic ERC-20 bridge extensions (at derived addresses):
* withdraw(uint256,bytes,bytes) — burn ERC-20, queue ICRC-1 transfer
* withdrawalStatus(uint256) — check withdrawal status
* icrc1Ledger() — get underlying ledger principal
* icrc1Fee() — get current ICRC-1 fee
*/
7 Likes