UNPKG

viem

Version:

TypeScript Interface for Ethereum

57 lines 3.11 kB
import * as Hex from 'ox/Hex'; import { ZoneId } from 'ox/tempo'; const legacyZoneChainIdBase = 4_217_000_000; const legacyZoneChainIdLimit = 4_218_000_000; const mainnetZoneChainIdBase = ZoneId.toChainId(0); const testnetZoneChainIdBase = ZoneId.toChainId(0, 42_431); const zoneChainIdLimit = 2 ** 31; export const accountImplementation = '0x7702c00000000000000000000000000000000000'; export const accountKeychain = '0xaAAAaaAA00000000000000000000000000000000'; export const accountRegistrar = '0x7702ac0000000000000000000000000000000000'; export const addressRegistry = '0xfdc0000000000000000000000000000000000000'; export const feeManager = '0xfeec000000000000000000000000000000000000'; export const nativeMultisig = '0xAACC000000000000000000000000000000000000'; /** Temporary recovery factory until the production address is finalized. */ export const nativeMultisigFactory = '0x7171717171717171717171717171717171717171'; export const nonceManager = '0x4e4F4E4345000000000000000000000000000000'; export const pathUsd = '0x20c0000000000000000000000000000000000000'; export const receivePolicyGuard = '0xB10C000000000000000000000000000000000000'; export const signatureVerifier = '0x5165300000000000000000000000000000000000'; export const stablecoinDex = '0xdec0000000000000000000000000000000000000'; export const storageCredits = '0x1060000000000000000000000000000000000000'; export const tip20ChannelReserve = '0x4d50500000000000000000000000000000000000'; export const tip20Factory = '0x20fc000000000000000000000000000000000000'; export const tip403Registry = '0x403c000000000000000000000000000000000000'; export const validator = '0xcccccccc00000000000000000000000000000000'; export const validatorV2 = '0xcccccccc00000000000000000000000000000001'; export const zoneFactory = '0x5aF2000000000000000000000000000000000000'; export const zoneMessenger = '0x5A4d000000000000000000000000000000000000'; export const zoneOutbox = '0x1c00000000000000000000000000000000000002'; export const zonePortalImplementation = '0x5AD1000000000000000000000000000000000000'; export const zoneVerifier = '0x5a56000000000000000000000000000000000000'; /** * Returns the Zone portal address for a Zone ID or chain ID. * * @param id - Zone ID or chain ID. * @returns The Zone portal address. */ export function zonePortal(id) { const zoneId = normalizeZoneId(id); // TODO: Remove legacy Zone portal address compatibility. if (zoneId === 6) return '0x7069DeC4E64Fd07334A0933eDe836C17259c9B23'; if (zoneId === 7) return '0x3F5296303400B56271b476F5A0B9cBF74350D6Ac'; const suffix = Hex.fromNumber(zoneId, { size: 8 }).slice(2); return `0x5ad000000000000000000000${suffix}`; } function normalizeZoneId(id) { if (id >= legacyZoneChainIdBase && id < legacyZoneChainIdLimit) return id - legacyZoneChainIdBase; if (id >= testnetZoneChainIdBase && id < zoneChainIdLimit) return ZoneId.fromChainId(id, 42_431); if (id >= mainnetZoneChainIdBase && id < testnetZoneChainIdBase) return ZoneId.fromChainId(id); return id; } //# sourceMappingURL=Addresses.js.map