@veridex/sdk 1.0.1 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/prepareAuth.js +107 -32
- package/dist/auth/prepareAuth.js.map +1 -1
- package/dist/auth/prepareAuth.mjs +6 -6
- package/dist/auth/prepareAuth.mjs.map +1 -1
- package/dist/chains/aptos/index.js.map +1 -1
- package/dist/chains/aptos/index.mjs +3 -3
- package/dist/chains/avalanche/index.js.map +1 -1
- package/dist/chains/avalanche/index.mjs +4 -4
- package/dist/chains/evm/index.d.mts +2 -2
- package/dist/chains/evm/index.js.map +1 -1
- package/dist/chains/evm/index.mjs +3 -3
- package/dist/chains/solana/index.js.map +1 -1
- package/dist/chains/solana/index.mjs +3 -3
- package/dist/chains/stacks/index.d.mts +1 -1
- package/dist/chains/stacks/index.js.map +1 -1
- package/dist/chains/stacks/index.mjs +3 -3
- package/dist/chains/starknet/index.d.mts +2 -3
- package/dist/chains/starknet/index.js +1 -13
- package/dist/chains/starknet/index.js.map +1 -1
- package/dist/chains/starknet/index.mjs +3 -3
- package/dist/chains/sui/index.d.mts +3 -3
- package/dist/chains/sui/index.js +2 -2
- package/dist/chains/sui/index.js.map +1 -1
- package/dist/chains/sui/index.mjs +3 -3
- package/dist/{chunk-Q5O3M5LP.mjs → chunk-2TS375ET.mjs} +2 -2
- package/dist/{chunk-QT4ZZ4GM.mjs → chunk-5FDOTI5G.mjs} +2 -2
- package/dist/{chunk-5T6KPH7A.mjs → chunk-CSU4IV2F.mjs} +2 -2
- package/dist/{chunk-YCUJZ6Z7.mjs → chunk-CTYDGO6E.mjs} +63 -6
- package/dist/chunk-CTYDGO6E.mjs.map +1 -0
- package/dist/{chunk-PRHNGA4G.mjs → chunk-E3SU36C2.mjs} +4 -4
- package/dist/{chunk-PRHNGA4G.mjs.map → chunk-E3SU36C2.mjs.map} +1 -1
- package/dist/{chunk-NUWSMJFJ.mjs → chunk-EFIXFA6V.mjs} +2 -2
- package/dist/{chunk-EFIURACP.mjs → chunk-GM5DKEHD.mjs} +3 -15
- package/dist/chunk-GM5DKEHD.mjs.map +1 -0
- package/dist/{chunk-GWJRKDSA.mjs → chunk-GOWXQPTW.mjs} +3 -3
- package/dist/{chunk-OVMMTL6H.mjs → chunk-ICGB3AHI.mjs} +2 -2
- package/dist/{chunk-QDO6NQ7P.mjs → chunk-M3GUNREX.mjs} +20 -3
- package/dist/{chunk-QDO6NQ7P.mjs.map → chunk-M3GUNREX.mjs.map} +1 -1
- package/dist/{chunk-N4A2RMUN.mjs → chunk-PEGOXMBU.mjs} +2 -2
- package/dist/{chunk-X7BZMSPQ.mjs → chunk-RD6ZYUVG.mjs} +52 -30
- package/dist/chunk-RD6ZYUVG.mjs.map +1 -0
- package/dist/{chunk-F3YAGZSW.mjs → chunk-TPEP6XUA.mjs} +2 -2
- package/dist/{chunk-M3MM4YMF.mjs → chunk-UPO55SBK.mjs} +2 -2
- package/dist/{chunk-USDA5JTN.mjs → chunk-YBN2VC6E.mjs} +2 -2
- package/dist/{chunk-PDHZ5X5O.mjs → chunk-YYT3V7CI.mjs} +2 -2
- package/dist/constants.d.mts +2 -2
- package/dist/constants.js +51 -29
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs +1 -1
- package/dist/{index-DDalBhAm.d.mts → index-CySMITQ9.d.mts} +9 -6
- package/dist/index.d.mts +44 -13
- package/dist/index.js +466 -162
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +345 -127
- package/dist/index.mjs.map +1 -1
- package/dist/passkey.js +57 -4
- package/dist/passkey.js.map +1 -1
- package/dist/passkey.mjs +3 -3
- package/dist/payload.js.map +1 -1
- package/dist/payload.mjs +2 -2
- package/dist/portfolio-JA4OTF7Y.mjs +13 -0
- package/dist/queries/index.js +49 -27
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/index.mjs +5 -5
- package/dist/{types-B7V5VNbO.d.mts → types-DWx-5jmz.d.mts} +12 -3
- package/dist/utils.js +49 -27
- package/dist/utils.js.map +1 -1
- package/dist/utils.mjs +2 -2
- package/dist/wormhole.js.map +1 -1
- package/dist/wormhole.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-EFIURACP.mjs.map +0 -1
- package/dist/chunk-X7BZMSPQ.mjs.map +0 -1
- package/dist/chunk-YCUJZ6Z7.mjs.map +0 -1
- package/dist/portfolio-V347KZOL.mjs +0 -13
- /package/dist/{chunk-Q5O3M5LP.mjs.map → chunk-2TS375ET.mjs.map} +0 -0
- /package/dist/{chunk-QT4ZZ4GM.mjs.map → chunk-5FDOTI5G.mjs.map} +0 -0
- /package/dist/{chunk-5T6KPH7A.mjs.map → chunk-CSU4IV2F.mjs.map} +0 -0
- /package/dist/{chunk-NUWSMJFJ.mjs.map → chunk-EFIXFA6V.mjs.map} +0 -0
- /package/dist/{chunk-GWJRKDSA.mjs.map → chunk-GOWXQPTW.mjs.map} +0 -0
- /package/dist/{chunk-OVMMTL6H.mjs.map → chunk-ICGB3AHI.mjs.map} +0 -0
- /package/dist/{chunk-N4A2RMUN.mjs.map → chunk-PEGOXMBU.mjs.map} +0 -0
- /package/dist/{chunk-F3YAGZSW.mjs.map → chunk-TPEP6XUA.mjs.map} +0 -0
- /package/dist/{chunk-M3MM4YMF.mjs.map → chunk-UPO55SBK.mjs.map} +0 -0
- /package/dist/{chunk-USDA5JTN.mjs.map → chunk-YBN2VC6E.mjs.map} +0 -0
- /package/dist/{chunk-PDHZ5X5O.mjs.map → chunk-YYT3V7CI.mjs.map} +0 -0
- /package/dist/{portfolio-V347KZOL.mjs.map → portfolio-JA4OTF7Y.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/featureFlags.ts","../src/presets.ts"],"sourcesContent":["/**\n * Veridex Protocol SDK - Feature Flags\n * \n * Centralized feature flag management for toggling SDK capabilities.\n * These flags allow operators to enable/disable features at runtime,\n * which is critical for:\n * - Hackathon demos (Avalanche Build Games: single hub for simplicity)\n * - Enterprise deployments (controlled rollout of multi-hub)\n * - Compliance (restrict routing to audited chains only)\n * \n * ## Multi-Hub Feature\n * \n * When `multiHub` is **disabled** (default):\n * - Only the primary hub chain (Base) is used for identity and session management\n * - `getHubChains()` returns only `['base']`\n * - `getDefaultHub()` returns Base config\n * - Avalanche operates as a spoke chain (payments only, identity on Base)\n * \n * When `multiHub` is **enabled**:\n * - All chains marked `canBeHub: true` are available as hubs\n * - `getHubChains()` returns all hub-capable chains\n * - `getDefaultHub()` can be overridden to point at any hub chain\n * - Avalanche can operate as a secondary hub with its own identity registry\n * \n * ## Enterprise Risk Alignment\n * \n * Feature flags enable the \"Enterprise Trust Firewall\" narrative:\n * - Single hub = single source of truth = simpler audit trail\n * - Multi-hub = horizontal scaling for enterprise multi-region deployments\n * - Trace logging integration points are hub-aware\n * \n * @example\n * ```typescript\n * import { setFeatureFlags, getFeatureFlags } from '@veridex/sdk';\n * \n * // Disable multi-hub (default for hackathon demos)\n * setFeatureFlags({ multiHub: false });\n * \n * // Enable multi-hub for enterprise deployment\n * setFeatureFlags({ multiHub: true });\n * \n * // Check current flags\n * const flags = getFeatureFlags();\n * console.log(flags.multiHub); // false\n * ```\n */\n\nimport type { ChainName } from './presets.js';\n\n// ============================================================================\n// Feature Flag Types\n// ============================================================================\n\nexport interface FeatureFlags {\n /**\n * Enable multi-hub architecture.\n * \n * When false (default), only 'base' is treated as a hub chain.\n * When true, all chains with `canBeHub: true` in presets are available.\n * \n * @default false\n */\n multiHub: boolean;\n\n /**\n * Primary hub chain override.\n * \n * When multiHub is false, this is ignored (always 'base').\n * When multiHub is true, this sets the preferred hub chain.\n * \n * @default 'base'\n */\n primaryHub: ChainName;\n}\n\n// ============================================================================\n// Default Flags\n// ============================================================================\n\nconst DEFAULT_FLAGS: FeatureFlags = {\n multiHub: false,\n primaryHub: 'base' as ChainName,\n};\n\n// ============================================================================\n// Global State\n// ============================================================================\n\nlet _flags: FeatureFlags = { ...DEFAULT_FLAGS };\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Get current feature flags (immutable copy).\n */\nexport function getFeatureFlags(): Readonly<FeatureFlags> {\n return { ..._flags };\n}\n\n/**\n * Set feature flags. Merges with current flags.\n * \n * @param flags - Partial flags to merge\n * \n * @example\n * ```typescript\n * // Enable multi-hub\n * setFeatureFlags({ multiHub: true });\n * \n * // Set Avalanche as primary hub\n * setFeatureFlags({ multiHub: true, primaryHub: 'avalanche' });\n * ```\n */\nexport function setFeatureFlags(flags: Partial<FeatureFlags>): void {\n _flags = { ..._flags, ...flags };\n}\n\n/**\n * Reset feature flags to defaults.\n * Useful for testing and cleanup.\n */\nexport function resetFeatureFlags(): void {\n _flags = { ...DEFAULT_FLAGS };\n}\n\n/**\n * Check if multi-hub is enabled.\n * Convenience function used throughout the SDK.\n */\nexport function isMultiHubEnabled(): boolean {\n return _flags.multiHub;\n}\n\n/**\n * Get the effective primary hub chain name.\n * \n * When multiHub is false, always returns 'base'.\n * When multiHub is true, returns the configured primaryHub.\n */\nexport function getEffectivePrimaryHub(): ChainName {\n if (!_flags.multiHub) {\n return 'base' as ChainName;\n }\n return _flags.primaryHub;\n}\n","/**\n * Veridex Protocol SDK - Chain Presets\n * \n * Pre-configured chain settings for easy SDK initialization.\n * Developers only need to specify chain name and network type.\n * \n * @example\n * ```typescript\n * import { createSDK } from '@veridex/sdk';\n * \n * // Simple initialization - testnet by default\n * const sdk = await createSDK('base');\n * \n * // Or specify mainnet\n * const mainnetSdk = await createSDK('base', { network: 'mainnet' });\n * ```\n */\n\nimport type { ChainConfig } from './types.js';\nimport { isMultiHubEnabled, getEffectivePrimaryHub } from './featureFlags.js';\n\n// ============================================================================\n// Supported Chain Names\n// ============================================================================\n\n/**\n * All supported chain names for easy reference\n */\nexport const CHAIN_NAMES = {\n // EVM L2s (Hub-capable)\n BASE: 'base',\n OPTIMISM: 'optimism',\n ARBITRUM: 'arbitrum',\n SCROLL: 'scroll',\n BLAST: 'blast',\n MANTLE: 'mantle',\n \n // EVM L1s\n ETHEREUM: 'ethereum',\n POLYGON: 'polygon',\n BSC: 'bsc',\n AVALANCHE: 'avalanche',\n FANTOM: 'fantom',\n CELO: 'celo',\n MOONBEAM: 'moonbeam',\n \n // EVM L1s (High Performance)\n MONAD: 'monad',\n \n // Non-EVM\n SOLANA: 'solana',\n APTOS: 'aptos',\n SUI: 'sui',\n STARKNET: 'starknet',\n STACKS: 'stacks',\n NEAR: 'near',\n SEI: 'sei',\n} as const;\n\nexport type ChainName = typeof CHAIN_NAMES[keyof typeof CHAIN_NAMES];\nexport type NetworkType = 'mainnet' | 'testnet';\n\n// ============================================================================\n// Chain Preset Interface\n// ============================================================================\n\nexport interface ChainPreset {\n /** Human-readable chain name */\n displayName: string;\n /** Chain type for client selection */\n type: 'evm' | 'solana' | 'aptos' | 'sui' | 'starknet' | 'stacks' | 'near' | 'cosmos';\n /** Whether this chain can be a hub */\n canBeHub: boolean;\n /** Testnet configuration */\n testnet: ChainConfig;\n /** Mainnet configuration */\n mainnet: ChainConfig;\n}\n\n// ============================================================================\n// EVM Chain Presets\n// ============================================================================\n\nexport const CHAIN_PRESETS: Record<ChainName, ChainPreset> = {\n // ────────────────────────────────────────────────────────────────────────\n // BASE - Primary Hub Chain\n // ────────────────────────────────────────────────────────────────────────\n base: {\n displayName: 'Base',\n type: 'evm',\n canBeHub: true,\n testnet: {\n name: 'Base Sepolia',\n chainId: 84532,\n wormholeChainId: 10004,\n rpcUrl: 'https://sepolia.base.org',\n explorerUrl: 'https://sepolia.basescan.org',\n isEvm: true,\n contracts: {\n hub: '0x23a39c294891703146c3607e1FEEB5Fe78F7F28d',\n vaultFactory: '0x31e8dc9428575334739754Ab2bdB0E8b9Dc707FD',\n vaultImplementation: '0xD65E996CD6d5B01689dc54ad30B51f1D88a100f5',\n wormholeCoreBridge: '0x79A1027a6A159502049F10906D333EC57E95F083',\n tokenBridge: '0x86F55A04690fd7815A3D802bD587e83eA888B239',\n },\n },\n mainnet: {\n name: 'Base',\n chainId: 8453,\n wormholeChainId: 30,\n rpcUrl: 'https://mainnet.base.org',\n explorerUrl: 'https://basescan.org',\n isEvm: true,\n contracts: {\n // TODO: Deploy mainnet contracts\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // OPTIMISM - Secondary Hub / Spoke\n // ────────────────────────────────────────────────────────────────────────\n optimism: {\n displayName: 'Optimism',\n type: 'evm',\n canBeHub: true,\n testnet: {\n name: 'Optimism Sepolia',\n chainId: 11155420,\n wormholeChainId: 10005,\n rpcUrl: 'https://sepolia.optimism.io',\n explorerUrl: 'https://sepolia-optimism.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x347feeaBB5655a7a80b56D8D554DA30BE6c28225',\n vaultImplementation: '0x26C4FD8fC66150ef5964562F7A69271fB0cd02A4',\n wormholeCoreBridge: '0x31377888146f3253211EFEf5c676D41ECe7D58Fe',\n tokenBridge: '0x99737Ec4B815d816c49A385943baf0380e75c0Ac',\n },\n },\n mainnet: {\n name: 'Optimism',\n chainId: 10,\n wormholeChainId: 24,\n rpcUrl: 'https://mainnet.optimism.io',\n explorerUrl: 'https://optimistic.etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722',\n tokenBridge: '0x1D68124e65faFC907325e3EDbF8c4d84499DAa8b',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // ARBITRUM\n // ────────────────────────────────────────────────────────────────────────\n arbitrum: {\n displayName: 'Arbitrum',\n type: 'evm',\n canBeHub: true,\n testnet: {\n name: 'Arbitrum Sepolia',\n chainId: 421614,\n wormholeChainId: 10003,\n rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',\n explorerUrl: 'https://sepolia.arbiscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x708eEE22621A64CDF51d98d3e8D97902D7dF52dD',\n vaultImplementation: '0x9f74Dc14A98E59df7AEC5571a2B9E329153dF5Cd',\n wormholeCoreBridge: '0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35',\n tokenBridge: '0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e',\n },\n },\n mainnet: {\n name: 'Arbitrum',\n chainId: 42161,\n wormholeChainId: 23,\n rpcUrl: 'https://arb1.arbitrum.io/rpc',\n explorerUrl: 'https://arbiscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa5f208e072434bC67592E4C49C1B991BA79BCA46',\n tokenBridge: '0x0b2402144Bb366A632D14B83F244D2e0e21bD39c',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // ETHEREUM\n // ────────────────────────────────────────────────────────────────────────\n ethereum: {\n displayName: 'Ethereum',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Sepolia',\n chainId: 11155111,\n wormholeChainId: 10002,\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n explorerUrl: 'https://sepolia.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x52a6dc19C11b3B53B434Fc7f6D31F8b62ed18F0a',\n vaultImplementation: '0xfab72dd1fd3AD79f738B49506f32251B60c95f01',\n wormholeCoreBridge: '0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78',\n tokenBridge: '0xDB5492265f6038831E89f495670FF909aDe94bd9',\n },\n },\n mainnet: {\n name: 'Ethereum',\n chainId: 1,\n wormholeChainId: 2,\n rpcUrl: 'https://eth.llamarpc.com',\n explorerUrl: 'https://etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B',\n tokenBridge: '0x3ee18B2214AFF97000D974cf647E7C347E8fa585',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // POLYGON\n // ────────────────────────────────────────────────────────────────────────\n polygon: {\n displayName: 'Polygon',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Polygon Amoy',\n chainId: 80002,\n wormholeChainId: 10007,\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n explorerUrl: 'https://amoy.polygonscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x0CBE91CF822c73C2315FB05100C2F714765d5c20',\n tokenBridge: '0x0290FB167208Af455bB137780163b7B7a9a10C16',\n },\n },\n mainnet: {\n name: 'Polygon',\n chainId: 137,\n wormholeChainId: 5,\n rpcUrl: 'https://polygon-rpc.com',\n explorerUrl: 'https://polygonscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7',\n tokenBridge: '0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // BSC\n // ────────────────────────────────────────────────────────────────────────\n bsc: {\n displayName: 'BNB Chain',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'BSC Testnet',\n chainId: 97,\n wormholeChainId: 4,\n rpcUrl: 'https://data-seed-prebsc-1-s1.binance.org:8545',\n explorerUrl: 'https://testnet.bscscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D',\n tokenBridge: '0x9dcF9D205C9De35334D646BeE44b2D2859712A09',\n },\n },\n mainnet: {\n name: 'BNB Chain',\n chainId: 56,\n wormholeChainId: 4,\n rpcUrl: 'https://bsc-dataseed.binance.org',\n explorerUrl: 'https://bscscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B',\n tokenBridge: '0xB6F6D86a8f9879A9c87f643768d9efc38c1Da6E7',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // AVALANCHE — ACP-204 Native P-256 + ICM Teleporter + Hub-Capable\n // ────────────────────────────────────────────────────────────────────────\n avalanche: {\n displayName: 'Avalanche',\n type: 'evm',\n canBeHub: true, // ACP-204 provides native P-256 at 0x0100 (6,900 gas)\n testnet: {\n name: 'Avalanche Fuji',\n chainId: 43113,\n wormholeChainId: 6,\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n explorerUrl: 'https://testnet.snowtrace.io',\n isEvm: true,\n contracts: {\n // Veridex Hub (deployed via deploy-avalanche.ts)\n hub: '', // No Hub on Fuji — Hub is on Base Sepolia\n vaultFactory: '0x9e9716442e908A9b61F11432cC38024DD390cd2a',\n vaultImplementation: '0xE0b9919ffDf3415355Db369C8FfA5Dd4e000052c',\n // Wormhole bridges (canonical Fuji addresses)\n wormholeCoreBridge: '0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C',\n tokenBridge: '0x61E44E506Ca5659E6c0bba9b678586fA2d729756',\n // Avalanche-specific: ACP-204 P-256 verifier wrapper\n p256Verifier: '0xB5d29EA1E2e90A24D6506E2a6a269506a12974CC',\n // Avalanche-specific: ICM Spoke for cross-L1 session bridging\n icmSpoke: '0x9fCFC608086539A69839EfA9628884dB75ac07D0',\n // Chainlink price feeds (Fuji testnet)\n chainlinkAvaxUsd: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD',\n chainlinkUsdcUsd: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad',\n chainlinkUsdtUsd: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad',\n },\n hubChainId: 10004, // Base Sepolia (primary Hub)\n },\n mainnet: {\n name: 'Avalanche',\n chainId: 43114,\n wormholeChainId: 6,\n rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',\n explorerUrl: 'https://snowtrace.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c',\n tokenBridge: '0x0e082F06FF657D94310cB8cE8B0D9a04541d8052',\n // Chainlink price feeds (Avalanche mainnet)\n chainlinkAvaxUsd: '0x0A77230d17318075983913bC2145DB16C7366156',\n chainlinkUsdcUsd: '0xF096872672F44d6EBA71458D74fe67F9a77a23B9',\n chainlinkUsdtUsd: '0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SCROLL\n // ────────────────────────────────────────────────────────────────────────\n scroll: {\n displayName: 'Scroll',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Scroll Sepolia',\n chainId: 534351,\n wormholeChainId: 34,\n rpcUrl: 'https://sepolia-rpc.scroll.io',\n explorerUrl: 'https://sepolia.scrollscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x055F47F1250012C6B20c436570a76e52c17Af2D5',\n tokenBridge: '0x22427d90B7dA3fA4642F7025A854c7254E4e45BF',\n },\n },\n mainnet: {\n name: 'Scroll',\n chainId: 534352,\n wormholeChainId: 34,\n rpcUrl: 'https://rpc.scroll.io',\n explorerUrl: 'https://scrollscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // BLAST\n // ────────────────────────────────────────────────────────────────────────\n blast: {\n displayName: 'Blast',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Blast Sepolia',\n chainId: 168587773,\n wormholeChainId: 36,\n rpcUrl: 'https://sepolia.blast.io',\n explorerUrl: 'https://sepolia.blastscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x473e002D7add6fB67a4964F13bFd61280Ca46886',\n tokenBridge: '0x430855B4D43b8AEB9D2B9869B74d58dda79C0dB2',\n },\n },\n mainnet: {\n name: 'Blast',\n chainId: 81457,\n wormholeChainId: 36,\n rpcUrl: 'https://rpc.blast.io',\n explorerUrl: 'https://blastscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // MANTLE\n // ────────────────────────────────────────────────────────────────────────\n mantle: {\n displayName: 'Mantle',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Mantle Sepolia',\n chainId: 5003,\n wormholeChainId: 35,\n rpcUrl: 'https://rpc.sepolia.mantle.xyz',\n explorerUrl: 'https://sepolia.mantlescan.xyz',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x376428e7f26D5867e69201b275553C45B09EE090',\n tokenBridge: '0x75Bfa155a9D7A3714b0861c8a8aF0C4633c45b5D',\n },\n },\n mainnet: {\n name: 'Mantle',\n chainId: 5000,\n wormholeChainId: 35,\n rpcUrl: 'https://rpc.mantle.xyz',\n explorerUrl: 'https://mantlescan.xyz',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // FANTOM\n // ────────────────────────────────────────────────────────────────────────\n fantom: {\n displayName: 'Fantom',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Fantom Testnet',\n chainId: 4002,\n wormholeChainId: 10,\n rpcUrl: 'https://rpc.testnet.fantom.network',\n explorerUrl: 'https://testnet.ftmscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7',\n tokenBridge: '0x599CEa2204B4FaECd584Ab1F2b6aCA137a0afbE8',\n },\n },\n mainnet: {\n name: 'Fantom',\n chainId: 250,\n wormholeChainId: 10,\n rpcUrl: 'https://rpcapi.fantom.network',\n explorerUrl: 'https://ftmscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x126783A6Cb203a3E35344528B26ca3a0489a1485',\n tokenBridge: '0x7C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // CELO\n // ────────────────────────────────────────────────────────────────────────\n celo: {\n displayName: 'Celo',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Celo Alfajores',\n chainId: 44787,\n wormholeChainId: 14,\n rpcUrl: 'https://alfajores-forno.celo-testnet.org',\n explorerUrl: 'https://alfajores.celoscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x88505117CA88e7dd2eC6EA1E13f0948db2D50D56',\n tokenBridge: '0x05ca6037eC51F8b712eD2E6Fa72219FEaE74E153',\n },\n },\n mainnet: {\n name: 'Celo',\n chainId: 42220,\n wormholeChainId: 14,\n rpcUrl: 'https://forno.celo.org',\n explorerUrl: 'https://celoscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa321448d90d4e5b0A732867c18eA198e75CAC48E',\n tokenBridge: '0x796Dff6D74F3E27060B71255Fe517BFb23C93eed',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // MOONBEAM\n // ────────────────────────────────────────────────────────────────────────\n moonbeam: {\n displayName: 'Moonbeam',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Moonbase Alpha',\n chainId: 1287,\n wormholeChainId: 16,\n rpcUrl: 'https://rpc.api.moonbase.moonbeam.network',\n explorerUrl: 'https://moonbase.moonscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901',\n tokenBridge: '0xbc976D4b9D57E57c3cA52e1Fd136C45FF7955A96',\n },\n },\n mainnet: {\n name: 'Moonbeam',\n chainId: 1284,\n wormholeChainId: 16,\n rpcUrl: 'https://rpc.api.moonbeam.network',\n explorerUrl: 'https://moonscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3',\n tokenBridge: '0xb1731c586ca89a23809861c6103F0b96B3F57D92',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // MONAD - High-Performance L1 with EIP-7951 P256 + Agent Gateway\n // ────────────────────────────────────────────────────────────────────────\n monad: {\n displayName: 'Monad',\n type: 'evm',\n canBeHub: true, // Has native P-256 precompile (EIP-7951)\n testnet: {\n name: 'Monad Testnet',\n chainId: 10143,\n wormholeChainId: 10048,\n rpcUrl: 'https://testnet-rpc.monad.xyz',\n explorerUrl: 'https://testnet.monadvision.com',\n isEvm: true,\n contracts: {\n vaultFactory: '0x50F2c37584823A6cc293bd0d7647D558d05CA4C1',\n vaultImplementation: '0x53d4D3943d0E524836f0B1955AbB216449F538fF',\n wormholeCoreBridge: '0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd',\n // Agent Gateway contracts\n serviceDirectory: '0x2d20f29E1f5B24294B3F125B47f2a22a7012a35E',\n },\n hubChainId: 10004, // Base Sepolia\n },\n mainnet: {\n name: 'Monad',\n chainId: 143,\n wormholeChainId: 0, // TBD\n rpcUrl: 'https://rpc.monad.xyz',\n explorerUrl: 'https://monadscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x194B123c5E96B9b2E49763619985790Dc241CAC0',\n tokenBridge: '0x0B2719cdA2F10595369e6673ceA3Ee2EDFa13BA7',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SEI\n // ────────────────────────────────────────────────────────────────────────\n sei: {\n displayName: 'Sei',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Sei Atlantic-2',\n chainId: 1328,\n wormholeChainId: 40,\n rpcUrl: 'https://evm-rpc-testnet.sei-apis.com',\n explorerUrl: 'https://seitrace.com/?chain=atlantic-2',\n isEvm: true,\n contracts: {\n vaultFactory: '0x07F608AFf6d63b68029488b726d895c4Bb593038',\n vaultImplementation: '0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6',\n wormholeCoreBridge: '0x0000000000000000000000000000000000000000',\n },\n },\n mainnet: {\n name: 'Sei',\n chainId: 1329,\n wormholeChainId: 32,\n rpcUrl: 'https://evm-rpc.sei-apis.com',\n explorerUrl: 'https://seitrace.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x0000000000000000000000000000000000000000',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SOLANA\n // ────────────────────────────────────────────────────────────────────────\n solana: {\n displayName: 'Solana',\n type: 'solana',\n canBeHub: false,\n testnet: {\n name: 'Solana Devnet',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.devnet.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n hub: 'AnyXHsqq9c2BiW4WgBcj6Aye7Ua7a7L7iSuwpfJxECJM',\n wormholeCoreBridge: '3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5',\n tokenBridge: 'DZnkkTmCiFWfYTfT41X3Rd1kDgozqzxWaHqsw6W4x2oe',\n },\n },\n mainnet: {\n name: 'Solana',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.mainnet-beta.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth',\n tokenBridge: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // APTOS\n // ────────────────────────────────────────────────────────────────────────\n aptos: {\n displayName: 'Aptos',\n type: 'aptos',\n canBeHub: false,\n testnet: {\n name: 'Aptos Testnet',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.testnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n hub: '0x2935e5d434c383c8f8b8af3b9596aa78b7238c308b5b0fe2bbd19e248b6f018f',\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n mainnet: {\n name: 'Aptos',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.mainnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SUI\n // ────────────────────────────────────────────────────────────────────────\n sui: {\n displayName: 'Sui',\n type: 'sui',\n canBeHub: false,\n testnet: {\n name: 'Sui Testnet',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.testnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/testnet',\n isEvm: false,\n contracts: {\n hub: '0x7f6b9a3f9dba7ac6b20d180a9274f525c23a2a9f7e5445218c595c3696c55667',\n wormholeCoreBridge: '0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790',\n },\n },\n mainnet: {\n name: 'Sui',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.mainnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/mainnet',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // STARKNET\n // ────────────────────────────────────────────────────────────────────────\n starknet: {\n displayName: 'Starknet',\n type: 'starknet',\n canBeHub: false,\n testnet: {\n name: 'Starknet Sepolia',\n chainId: 0,\n wormholeChainId: 50001, // Custom bridge (non-Wormhole)\n rpcUrl: 'https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/tsOnfTBZDKMXcUA26OED-',\n explorerUrl: 'https://sepolia.starkscan.co',\n isEvm: false,\n contracts: {\n hub: '0x46139177b8a1d7187cf35fbcddca637882a1d6f50d91f048c59d1322eee9ede',\n wormholeCoreBridge: '0x700488242f8f03248b2311edddc394f0408a18c36181446eabd265067809c83',\n },\n hubChainId: 10004, // Base Sepolia\n },\n mainnet: {\n name: 'Starknet',\n chainId: 0,\n wormholeChainId: 50001,\n rpcUrl: 'https://starknet-mainnet.public.blastapi.io/rpc/v0_7',\n explorerUrl: 'https://starkscan.co',\n isEvm: false,\n contracts: {\n // TODO: Deploy mainnet contracts\n wormholeCoreBridge: '',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // STACKS\n // ────────────────────────────────────────────────────────────────────────\n stacks: {\n displayName: 'Stacks',\n type: 'stacks',\n canBeHub: false,\n testnet: {\n name: 'Stacks Testnet',\n chainId: 2147483648, // CAIP-2: stacks:2147483648\n wormholeChainId: 60, // Official Wormhole chain ID for Stacks\n rpcUrl: 'https://api.testnet.hiro.so',\n explorerUrl: 'https://explorer.hiro.so/?chain=testnet',\n isEvm: false,\n contracts: {\n // Spoke contract: identity + session management\n hub: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-spoke',\n // Vault contract: STX/sBTC custody\n vaultFactory: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-vault',\n wormholeCoreBridge: '',\n // Phase 2: Wormhole integration contracts\n wormholeVerifier: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-wormhole-verifier',\n vaultVaa: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-vault-vaa',\n },\n hubChainId: 10004, // Base Sepolia\n },\n mainnet: {\n name: 'Stacks',\n chainId: 1, // CAIP-2: stacks:1\n wormholeChainId: 60,\n rpcUrl: 'https://api.hiro.so',\n explorerUrl: 'https://explorer.hiro.so',\n isEvm: false,\n contracts: {\n // TODO: Deploy mainnet contracts\n wormholeCoreBridge: '',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // NEAR\n // ────────────────────────────────────────────────────────────────────────\n near: {\n displayName: 'Near',\n type: 'near',\n canBeHub: false,\n testnet: {\n name: 'Near Testnet',\n chainId: 0,\n wormholeChainId: 15,\n rpcUrl: 'https://rpc.testnet.near.org',\n explorerUrl: 'https://explorer.testnet.near.org',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'wormhole.wormhole.testnet',\n tokenBridge: 'token.wormhole.testnet',\n },\n },\n mainnet: {\n name: 'Near',\n chainId: 0,\n wormholeChainId: 15,\n rpcUrl: 'https://rpc.mainnet.near.org',\n explorerUrl: 'https://explorer.near.org',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'contract.wormhole_crypto.near',\n tokenBridge: 'contract.portalbridge.near',\n },\n },\n },\n};\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Get chain configuration by name and network\n */\nexport function getChainConfig(\n chain: ChainName,\n network: NetworkType = 'testnet'\n): ChainConfig {\n const preset = CHAIN_PRESETS[chain];\n if (!preset) {\n throw new Error(\n `Unknown chain: \"${chain}\". Supported chains: ${Object.keys(CHAIN_PRESETS).join(', ')}`\n );\n }\n return preset[network];\n}\n\n/**\n * Get chain preset by name\n */\nexport function getChainPreset(chain: ChainName): ChainPreset {\n const preset = CHAIN_PRESETS[chain];\n if (!preset) {\n throw new Error(\n `Unknown chain: \"${chain}\". Supported chains: ${Object.keys(CHAIN_PRESETS).join(', ')}`\n );\n }\n return preset;\n}\n\n/**\n * Get all supported chain names\n */\nexport function getSupportedChains(): ChainName[] {\n return Object.keys(CHAIN_PRESETS) as ChainName[];\n}\n\n/**\n * Get hub-capable chains.\n * \n * When multi-hub feature flag is disabled, returns only the primary hub chain ('base').\n * When enabled, returns all chains with canBeHub: true.\n */\nexport function getHubChains(): ChainName[] {\n if (!isMultiHubEnabled()) {\n const primary = getEffectivePrimaryHub();\n return [primary];\n }\n return Object.entries(CHAIN_PRESETS)\n .filter(([_, preset]) => preset.canBeHub)\n .map(([name]) => name as ChainName);\n}\n\n/**\n * Check if chain is supported\n */\nexport function isChainSupported(chain: string): chain is ChainName {\n return chain in CHAIN_PRESETS;\n}\n\n/**\n * Check if a specific chain is currently acting as a hub.\n * \n * When multi-hub is disabled, only the primary hub ('base') returns true.\n * When enabled, any chain with canBeHub: true returns true.\n */\nexport function isHubChain(chain: ChainName): boolean {\n if (!isMultiHubEnabled()) {\n return chain === getEffectivePrimaryHub();\n }\n const preset = CHAIN_PRESETS[chain];\n return preset?.canBeHub ?? false;\n}\n\n/**\n * Get default hub chain.\n * \n * Returns the effective primary hub's config. When multi-hub is disabled,\n * this always returns Base. When enabled, it returns the configured primary hub.\n */\nexport function getDefaultHub(network: NetworkType = 'testnet'): ChainConfig {\n const primary = getEffectivePrimaryHub();\n return CHAIN_PRESETS[primary][network];\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/featureFlags.ts","../src/presets.ts"],"sourcesContent":["/**\n * Veridex Protocol SDK - Feature Flags\n * \n * Centralized feature flag management for toggling SDK capabilities.\n * These flags allow operators to enable/disable features at runtime,\n * which is critical for:\n * - Hackathon demos (Avalanche Build Games: single hub for simplicity)\n * - Enterprise deployments (controlled rollout of multi-hub)\n * - Compliance (restrict routing to audited chains only)\n * \n * ## Multi-Hub Feature\n * \n * When `multiHub` is **disabled** (default):\n * - Only the primary hub chain (Base) is used for identity and session management\n * - `getHubChains()` returns only `['base']`\n * - `getDefaultHub()` returns Base config\n * - Avalanche operates as a spoke chain (payments only, identity on Base)\n * \n * When `multiHub` is **enabled**:\n * - All chains marked `canBeHub: true` are available as hubs\n * - `getHubChains()` returns all hub-capable chains\n * - `getDefaultHub()` can be overridden to point at any hub chain\n * - Avalanche can operate as a secondary hub with its own identity registry\n * \n * ## Enterprise Risk Alignment\n * \n * Feature flags enable the \"Enterprise Trust Firewall\" narrative:\n * - Single hub = single source of truth = simpler audit trail\n * - Multi-hub = horizontal scaling for enterprise multi-region deployments\n * - Trace logging integration points are hub-aware\n * \n * @example\n * ```typescript\n * import { setFeatureFlags, getFeatureFlags } from '@veridex/sdk';\n * \n * // Disable multi-hub (default for hackathon demos)\n * setFeatureFlags({ multiHub: false });\n * \n * // Enable multi-hub for enterprise deployment\n * setFeatureFlags({ multiHub: true });\n * \n * // Check current flags\n * const flags = getFeatureFlags();\n * console.log(flags.multiHub); // false\n * ```\n */\n\nimport type { ChainName } from './presets.js';\n\n// ============================================================================\n// Feature Flag Types\n// ============================================================================\n\nexport interface FeatureFlags {\n /**\n * Enable multi-hub architecture.\n * \n * When false (default), only 'base' is treated as a hub chain.\n * When true, all chains with `canBeHub: true` in presets are available.\n * \n * @default false\n */\n multiHub: boolean;\n\n /**\n * Primary hub chain override.\n * \n * When multiHub is false, this is ignored (always 'base').\n * When multiHub is true, this sets the preferred hub chain.\n * \n * @default 'base'\n */\n primaryHub: ChainName;\n}\n\n// ============================================================================\n// Default Flags\n// ============================================================================\n\nconst DEFAULT_FLAGS: FeatureFlags = {\n multiHub: false,\n primaryHub: 'base' as ChainName,\n};\n\n// ============================================================================\n// Global State\n// ============================================================================\n\nlet _flags: FeatureFlags = { ...DEFAULT_FLAGS };\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Get current feature flags (immutable copy).\n */\nexport function getFeatureFlags(): Readonly<FeatureFlags> {\n return { ..._flags };\n}\n\n/**\n * Set feature flags. Merges with current flags.\n * \n * @param flags - Partial flags to merge\n * \n * @example\n * ```typescript\n * // Enable multi-hub\n * setFeatureFlags({ multiHub: true });\n * \n * // Set Avalanche as primary hub\n * setFeatureFlags({ multiHub: true, primaryHub: 'avalanche' });\n * ```\n */\nexport function setFeatureFlags(flags: Partial<FeatureFlags>): void {\n _flags = { ..._flags, ...flags };\n}\n\n/**\n * Reset feature flags to defaults.\n * Useful for testing and cleanup.\n */\nexport function resetFeatureFlags(): void {\n _flags = { ...DEFAULT_FLAGS };\n}\n\n/**\n * Check if multi-hub is enabled.\n * Convenience function used throughout the SDK.\n */\nexport function isMultiHubEnabled(): boolean {\n return _flags.multiHub;\n}\n\n/**\n * Get the effective primary hub chain name.\n * \n * When multiHub is false, always returns 'base'.\n * When multiHub is true, returns the configured primaryHub.\n */\nexport function getEffectivePrimaryHub(): ChainName {\n if (!_flags.multiHub) {\n return 'base' as ChainName;\n }\n return _flags.primaryHub;\n}\n","/**\n * Veridex Protocol SDK - Chain Presets\n * \n * Pre-configured chain settings for easy SDK initialization.\n * Developers only need to specify chain name and network type.\n * \n * @example\n * ```typescript\n * import { createSDK } from '@veridex/sdk';\n * \n * // Simple initialization - testnet by default\n * const sdk = await createSDK('base');\n * \n * // Or specify mainnet\n * const mainnetSdk = await createSDK('base', { network: 'mainnet' });\n * ```\n */\n\nimport type { ChainConfig } from './types.js';\nimport { isMultiHubEnabled, getEffectivePrimaryHub } from './featureFlags.js';\n\n// ============================================================================\n// Supported Chain Names\n// ============================================================================\n\n/**\n * All supported chain names for easy reference\n */\nexport const CHAIN_NAMES = {\n // EVM L2s (Hub-capable)\n BASE: 'base',\n OPTIMISM: 'optimism',\n ARBITRUM: 'arbitrum',\n SCROLL: 'scroll',\n BLAST: 'blast',\n MANTLE: 'mantle',\n \n // EVM L1s\n ETHEREUM: 'ethereum',\n POLYGON: 'polygon',\n BSC: 'bsc',\n AVALANCHE: 'avalanche',\n FANTOM: 'fantom',\n CELO: 'celo',\n MOONBEAM: 'moonbeam',\n \n // EVM L1s (High Performance)\n MONAD: 'monad',\n \n // Non-EVM\n SOLANA: 'solana',\n APTOS: 'aptos',\n SUI: 'sui',\n STARKNET: 'starknet',\n STACKS: 'stacks',\n NEAR: 'near',\n SEI: 'sei',\n} as const;\n\nexport type ChainName = typeof CHAIN_NAMES[keyof typeof CHAIN_NAMES];\nexport type NetworkType = 'mainnet' | 'testnet';\n\n// ============================================================================\n// Chain Preset Interface\n// ============================================================================\n\nexport interface ChainPreset {\n /** Human-readable chain name */\n displayName: string;\n /** Chain type for client selection */\n type: 'evm' | 'solana' | 'aptos' | 'sui' | 'starknet' | 'stacks' | 'near' | 'cosmos';\n /** Whether this chain can be a hub */\n canBeHub: boolean;\n /** Testnet configuration */\n testnet: ChainConfig;\n /** Mainnet configuration */\n mainnet: ChainConfig;\n}\n\n// ============================================================================\n// EVM Chain Presets\n// ============================================================================\n\nexport const CHAIN_PRESETS: Record<ChainName, ChainPreset> = {\n // ────────────────────────────────────────────────────────────────────────\n // BASE - Primary Hub Chain\n // ────────────────────────────────────────────────────────────────────────\n base: {\n displayName: 'Base',\n type: 'evm',\n canBeHub: true,\n testnet: {\n name: 'Base Sepolia',\n chainId: 84532,\n wormholeChainId: 10004,\n rpcUrl: 'https://sepolia.base.org',\n explorerUrl: 'https://sepolia.basescan.org',\n isEvm: true,\n contracts: {\n hub: '0x23a39c294891703146c3607e1FEEB5Fe78F7F28d',\n vaultFactory: '0x31e8dc9428575334739754Ab2bdB0E8b9Dc707FD',\n vaultImplementation: '0xD65E996CD6d5B01689dc54ad30B51f1D88a100f5',\n wormholeCoreBridge: '0x79A1027a6A159502049F10906D333EC57E95F083',\n tokenBridge: '0x86F55A04690fd7815A3D802bD587e83eA888B239',\n },\n },\n mainnet: {\n name: 'Base',\n chainId: 8453,\n wormholeChainId: 30,\n rpcUrl: 'https://mainnet.base.org',\n explorerUrl: 'https://basescan.org',\n isEvm: true,\n contracts: {\n // TODO: Deploy mainnet contracts\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // OPTIMISM - Secondary Hub / Spoke\n // ────────────────────────────────────────────────────────────────────────\n optimism: {\n displayName: 'Optimism',\n type: 'evm',\n canBeHub: true,\n testnet: {\n name: 'Optimism Sepolia',\n chainId: 11155420,\n wormholeChainId: 10005,\n rpcUrl: 'https://sepolia.optimism.io',\n explorerUrl: 'https://sepolia-optimism.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x347feeaBB5655a7a80b56D8D554DA30BE6c28225',\n vaultImplementation: '0x26C4FD8fC66150ef5964562F7A69271fB0cd02A4',\n wormholeCoreBridge: '0x31377888146f3253211EFEf5c676D41ECe7D58Fe',\n tokenBridge: '0x99737Ec4B815d816c49A385943baf0380e75c0Ac',\n },\n },\n mainnet: {\n name: 'Optimism',\n chainId: 10,\n wormholeChainId: 24,\n rpcUrl: 'https://mainnet.optimism.io',\n explorerUrl: 'https://optimistic.etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722',\n tokenBridge: '0x1D68124e65faFC907325e3EDbF8c4d84499DAa8b',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // ARBITRUM\n // ────────────────────────────────────────────────────────────────────────\n arbitrum: {\n displayName: 'Arbitrum',\n type: 'evm',\n canBeHub: true,\n testnet: {\n name: 'Arbitrum Sepolia',\n chainId: 421614,\n wormholeChainId: 10003,\n rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',\n explorerUrl: 'https://sepolia.arbiscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x708eEE22621A64CDF51d98d3e8D97902D7dF52dD',\n vaultImplementation: '0x9f74Dc14A98E59df7AEC5571a2B9E329153dF5Cd',\n wormholeCoreBridge: '0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35',\n tokenBridge: '0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e',\n },\n },\n mainnet: {\n name: 'Arbitrum',\n chainId: 42161,\n wormholeChainId: 23,\n rpcUrl: 'https://arb1.arbitrum.io/rpc',\n explorerUrl: 'https://arbiscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa5f208e072434bC67592E4C49C1B991BA79BCA46',\n tokenBridge: '0x0b2402144Bb366A632D14B83F244D2e0e21bD39c',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // ETHEREUM\n // ────────────────────────────────────────────────────────────────────────\n ethereum: {\n displayName: 'Ethereum',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Sepolia',\n chainId: 11155111,\n wormholeChainId: 10002,\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n explorerUrl: 'https://sepolia.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x52a6dc19C11b3B53B434Fc7f6D31F8b62ed18F0a',\n vaultImplementation: '0xfab72dd1fd3AD79f738B49506f32251B60c95f01',\n wormholeCoreBridge: '0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78',\n tokenBridge: '0xDB5492265f6038831E89f495670FF909aDe94bd9',\n },\n },\n mainnet: {\n name: 'Ethereum',\n chainId: 1,\n wormholeChainId: 2,\n rpcUrl: 'https://eth.llamarpc.com',\n explorerUrl: 'https://etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B',\n tokenBridge: '0x3ee18B2214AFF97000D974cf647E7C347E8fa585',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // POLYGON\n // ────────────────────────────────────────────────────────────────────────\n polygon: {\n displayName: 'Polygon',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Polygon Amoy',\n chainId: 80002,\n wormholeChainId: 10007,\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n explorerUrl: 'https://amoy.polygonscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x0CBE91CF822c73C2315FB05100C2F714765d5c20',\n tokenBridge: '0x0290FB167208Af455bB137780163b7B7a9a10C16',\n },\n },\n mainnet: {\n name: 'Polygon',\n chainId: 137,\n wormholeChainId: 5,\n rpcUrl: 'https://polygon-rpc.com',\n explorerUrl: 'https://polygonscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7',\n tokenBridge: '0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // BSC\n // ────────────────────────────────────────────────────────────────────────\n bsc: {\n displayName: 'BNB Chain',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'BSC Testnet',\n chainId: 97,\n wormholeChainId: 4,\n rpcUrl: 'https://data-seed-prebsc-1-s1.binance.org:8545',\n explorerUrl: 'https://testnet.bscscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D',\n tokenBridge: '0x9dcF9D205C9De35334D646BeE44b2D2859712A09',\n },\n },\n mainnet: {\n name: 'BNB Chain',\n chainId: 56,\n wormholeChainId: 4,\n rpcUrl: 'https://bsc-dataseed.binance.org',\n explorerUrl: 'https://bscscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B',\n tokenBridge: '0xB6F6D86a8f9879A9c87f643768d9efc38c1Da6E7',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // AVALANCHE — ACP-204 Native P-256 + ICM Teleporter + Hub-Capable\n // ────────────────────────────────────────────────────────────────────────\n avalanche: {\n displayName: 'Avalanche',\n type: 'evm',\n canBeHub: true, // ACP-204 provides native P-256 at 0x0100 (6,900 gas)\n testnet: {\n name: 'Avalanche Fuji',\n chainId: 43113,\n wormholeChainId: 6,\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n explorerUrl: 'https://testnet.snowtrace.io',\n isEvm: true,\n contracts: {\n // Veridex Hub (deployed via deploy-avalanche.ts)\n hub: '', // No Hub on Fuji — Hub is on Base Sepolia\n vaultFactory: '0x9e9716442e908A9b61F11432cC38024DD390cd2a',\n vaultImplementation: '0xE0b9919ffDf3415355Db369C8FfA5Dd4e000052c',\n // Wormhole bridges (canonical Fuji addresses)\n wormholeCoreBridge: '0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C',\n tokenBridge: '0x61E44E506Ca5659E6c0bba9b678586fA2d729756',\n // Avalanche-specific: ACP-204 P-256 verifier wrapper\n p256Verifier: '0xB5d29EA1E2e90A24D6506E2a6a269506a12974CC',\n // Avalanche-specific: ICM Spoke for cross-L1 session bridging\n icmSpoke: '0x9fCFC608086539A69839EfA9628884dB75ac07D0',\n // Chainlink price feeds (Fuji testnet)\n chainlinkAvaxUsd: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD',\n chainlinkUsdcUsd: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad',\n chainlinkUsdtUsd: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad',\n },\n hubChainId: 10004, // Base Sepolia (primary Hub)\n },\n mainnet: {\n name: 'Avalanche',\n chainId: 43114,\n wormholeChainId: 6,\n rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',\n explorerUrl: 'https://snowtrace.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c',\n tokenBridge: '0x0e082F06FF657D94310cB8cE8B0D9a04541d8052',\n // Chainlink price feeds (Avalanche mainnet)\n chainlinkAvaxUsd: '0x0A77230d17318075983913bC2145DB16C7366156',\n chainlinkUsdcUsd: '0xF096872672F44d6EBA71458D74fe67F9a77a23B9',\n chainlinkUsdtUsd: '0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SCROLL\n // ────────────────────────────────────────────────────────────────────────\n scroll: {\n displayName: 'Scroll',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Scroll Sepolia',\n chainId: 534351,\n wormholeChainId: 34,\n rpcUrl: 'https://sepolia-rpc.scroll.io',\n explorerUrl: 'https://sepolia.scrollscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x055F47F1250012C6B20c436570a76e52c17Af2D5',\n tokenBridge: '0x22427d90B7dA3fA4642F7025A854c7254E4e45BF',\n },\n },\n mainnet: {\n name: 'Scroll',\n chainId: 534352,\n wormholeChainId: 34,\n rpcUrl: 'https://rpc.scroll.io',\n explorerUrl: 'https://scrollscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // BLAST\n // ────────────────────────────────────────────────────────────────────────\n blast: {\n displayName: 'Blast',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Blast Sepolia',\n chainId: 168587773,\n wormholeChainId: 36,\n rpcUrl: 'https://sepolia.blast.io',\n explorerUrl: 'https://sepolia.blastscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x473e002D7add6fB67a4964F13bFd61280Ca46886',\n tokenBridge: '0x430855B4D43b8AEB9D2B9869B74d58dda79C0dB2',\n },\n },\n mainnet: {\n name: 'Blast',\n chainId: 81457,\n wormholeChainId: 36,\n rpcUrl: 'https://rpc.blast.io',\n explorerUrl: 'https://blastscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // MANTLE\n // ────────────────────────────────────────────────────────────────────────\n mantle: {\n displayName: 'Mantle',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Mantle Sepolia',\n chainId: 5003,\n wormholeChainId: 35,\n rpcUrl: 'https://rpc.sepolia.mantle.xyz',\n explorerUrl: 'https://sepolia.mantlescan.xyz',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x376428e7f26D5867e69201b275553C45B09EE090',\n tokenBridge: '0x75Bfa155a9D7A3714b0861c8a8aF0C4633c45b5D',\n },\n },\n mainnet: {\n name: 'Mantle',\n chainId: 5000,\n wormholeChainId: 35,\n rpcUrl: 'https://rpc.mantle.xyz',\n explorerUrl: 'https://mantlescan.xyz',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // FANTOM\n // ────────────────────────────────────────────────────────────────────────\n fantom: {\n displayName: 'Fantom',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Fantom Testnet',\n chainId: 4002,\n wormholeChainId: 10,\n rpcUrl: 'https://rpc.testnet.fantom.network',\n explorerUrl: 'https://testnet.ftmscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7',\n tokenBridge: '0x599CEa2204B4FaECd584Ab1F2b6aCA137a0afbE8',\n },\n },\n mainnet: {\n name: 'Fantom',\n chainId: 250,\n wormholeChainId: 10,\n rpcUrl: 'https://rpcapi.fantom.network',\n explorerUrl: 'https://ftmscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x126783A6Cb203a3E35344528B26ca3a0489a1485',\n tokenBridge: '0x7C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // CELO\n // ────────────────────────────────────────────────────────────────────────\n celo: {\n displayName: 'Celo',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Celo Alfajores',\n chainId: 44787,\n wormholeChainId: 14,\n rpcUrl: 'https://alfajores-forno.celo-testnet.org',\n explorerUrl: 'https://alfajores.celoscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x88505117CA88e7dd2eC6EA1E13f0948db2D50D56',\n tokenBridge: '0x05ca6037eC51F8b712eD2E6Fa72219FEaE74E153',\n },\n },\n mainnet: {\n name: 'Celo',\n chainId: 42220,\n wormholeChainId: 14,\n rpcUrl: 'https://forno.celo.org',\n explorerUrl: 'https://celoscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa321448d90d4e5b0A732867c18eA198e75CAC48E',\n tokenBridge: '0x796Dff6D74F3E27060B71255Fe517BFb23C93eed',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // MOONBEAM\n // ────────────────────────────────────────────────────────────────────────\n moonbeam: {\n displayName: 'Moonbeam',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Moonbase Alpha',\n chainId: 1287,\n wormholeChainId: 16,\n rpcUrl: 'https://rpc.api.moonbase.moonbeam.network',\n explorerUrl: 'https://moonbase.moonscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901',\n tokenBridge: '0xbc976D4b9D57E57c3cA52e1Fd136C45FF7955A96',\n },\n },\n mainnet: {\n name: 'Moonbeam',\n chainId: 1284,\n wormholeChainId: 16,\n rpcUrl: 'https://rpc.api.moonbeam.network',\n explorerUrl: 'https://moonscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3',\n tokenBridge: '0xb1731c586ca89a23809861c6103F0b96B3F57D92',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // MONAD - High-Performance L1 with EIP-7951 P256 + Agent Gateway\n // ────────────────────────────────────────────────────────────────────────\n monad: {\n displayName: 'Monad',\n type: 'evm',\n canBeHub: true, // Has native P-256 precompile (EIP-7951)\n testnet: {\n name: 'Monad Testnet',\n chainId: 10143,\n wormholeChainId: 10048,\n rpcUrl: 'https://testnet-rpc.monad.xyz',\n explorerUrl: 'https://testnet.monadvision.com',\n isEvm: true,\n contracts: {\n vaultFactory: '0x50F2c37584823A6cc293bd0d7647D558d05CA4C1',\n vaultImplementation: '0x53d4D3943d0E524836f0B1955AbB216449F538fF',\n wormholeCoreBridge: '0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd',\n // Agent Gateway contracts\n serviceDirectory: '0x2d20f29E1f5B24294B3F125B47f2a22a7012a35E',\n },\n hubChainId: 10004, // Base Sepolia\n },\n mainnet: {\n name: 'Monad',\n chainId: 143,\n wormholeChainId: 0, // TBD\n rpcUrl: 'https://rpc.monad.xyz',\n explorerUrl: 'https://monadscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x194B123c5E96B9b2E49763619985790Dc241CAC0',\n tokenBridge: '0x0B2719cdA2F10595369e6673ceA3Ee2EDFa13BA7',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SEI\n // ────────────────────────────────────────────────────────────────────────\n sei: {\n displayName: 'Sei',\n type: 'evm',\n canBeHub: false,\n testnet: {\n name: 'Sei Atlantic-2',\n chainId: 1328,\n wormholeChainId: 40,\n rpcUrl: 'https://evm-rpc-testnet.sei-apis.com',\n explorerUrl: 'https://seitrace.com/?chain=atlantic-2',\n isEvm: true,\n contracts: {\n vaultFactory: '0x07F608AFf6d63b68029488b726d895c4Bb593038',\n vaultImplementation: '0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6',\n wormholeCoreBridge: '0x0000000000000000000000000000000000000000',\n },\n },\n mainnet: {\n name: 'Sei',\n chainId: 1329,\n wormholeChainId: 32,\n rpcUrl: 'https://evm-rpc.sei-apis.com',\n explorerUrl: 'https://seitrace.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x0000000000000000000000000000000000000000',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SOLANA\n // ────────────────────────────────────────────────────────────────────────\n solana: {\n displayName: 'Solana',\n type: 'solana',\n canBeHub: false,\n testnet: {\n name: 'Solana Devnet',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.devnet.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n hub: 'AnyXHsqq9c2BiW4WgBcj6Aye7Ua7a7L7iSuwpfJxECJM',\n wormholeCoreBridge: '3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5',\n tokenBridge: 'DZnkkTmCiFWfYTfT41X3Rd1kDgozqzxWaHqsw6W4x2oe',\n },\n },\n mainnet: {\n name: 'Solana',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.mainnet-beta.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth',\n tokenBridge: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // APTOS\n // ────────────────────────────────────────────────────────────────────────\n aptos: {\n displayName: 'Aptos',\n type: 'aptos',\n canBeHub: false,\n testnet: {\n name: 'Aptos Testnet',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.testnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n hub: '0x2935e5d434c383c8f8b8af3b9596aa78b7238c308b5b0fe2bbd19e248b6f018f',\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n mainnet: {\n name: 'Aptos',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.mainnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // SUI\n // ────────────────────────────────────────────────────────────────────────\n sui: {\n displayName: 'Sui',\n type: 'sui',\n canBeHub: false,\n testnet: {\n name: 'Sui Testnet',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.testnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/testnet',\n isEvm: false,\n contracts: {\n hub: '0x7f6b9a3f9dba7ac6b20d180a9274f525c23a2a9f7e5445218c595c3696c55667',\n wormholeCoreBridge: '0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790',\n },\n },\n mainnet: {\n name: 'Sui',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.mainnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/mainnet',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // STARKNET\n // ────────────────────────────────────────────────────────────────────────\n starknet: {\n displayName: 'Starknet',\n type: 'starknet',\n canBeHub: false,\n testnet: {\n name: 'Starknet Sepolia',\n chainId: 0,\n wormholeChainId: 50001, // Custom bridge (non-Wormhole)\n rpcUrl: 'https://starknet-sepolia-rpc.publicnode.com',\n explorerUrl: 'https://sepolia.starkscan.co',\n isEvm: false,\n contracts: {\n hub: '0x46139177b8a1d7187cf35fbcddca637882a1d6f50d91f048c59d1322eee9ede',\n wormholeCoreBridge: '0x700488242f8f03248b2311edddc394f0408a18c36181446eabd265067809c83',\n },\n hubChainId: 10004, // Base Sepolia\n },\n mainnet: {\n name: 'Starknet',\n chainId: 0,\n wormholeChainId: 50001,\n rpcUrl: 'https://starknet-mainnet.public.blastapi.io/rpc/v0_7',\n explorerUrl: 'https://starkscan.co',\n isEvm: false,\n contracts: {\n // TODO: Deploy mainnet contracts\n wormholeCoreBridge: '',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // STACKS\n // ────────────────────────────────────────────────────────────────────────\n stacks: {\n displayName: 'Stacks',\n type: 'stacks',\n canBeHub: false,\n testnet: {\n name: 'Stacks Testnet',\n chainId: 2147483648, // CAIP-2: stacks:2147483648\n wormholeChainId: 60, // Official Wormhole chain ID for Stacks\n rpcUrl: 'https://api.testnet.hiro.so',\n explorerUrl: 'https://explorer.hiro.so/?chain=testnet',\n isEvm: false,\n contracts: {\n // Spoke contract: identity + session management\n hub: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-spoke',\n // Vault contract: STX/sBTC custody\n vaultFactory: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-vault',\n wormholeCoreBridge: '',\n // Phase 2: Wormhole integration contracts\n wormholeVerifier: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-wormhole-verifier',\n vaultVaa: 'ST398EE8PHNSACV2M9F5MYVVBSDS4ZZ0S44WCJ6KR.veridex-vault-vaa',\n },\n hubChainId: 10004, // Base Sepolia\n },\n mainnet: {\n name: 'Stacks',\n chainId: 1, // CAIP-2: stacks:1\n wormholeChainId: 60,\n rpcUrl: 'https://api.hiro.so',\n explorerUrl: 'https://explorer.hiro.so',\n isEvm: false,\n contracts: {\n // TODO: Deploy mainnet contracts\n wormholeCoreBridge: '',\n },\n },\n },\n\n // ────────────────────────────────────────────────────────────────────────\n // NEAR\n // ────────────────────────────────────────────────────────────────────────\n near: {\n displayName: 'Near',\n type: 'near',\n canBeHub: false,\n testnet: {\n name: 'Near Testnet',\n chainId: 0,\n wormholeChainId: 15,\n rpcUrl: 'https://rpc.testnet.near.org',\n explorerUrl: 'https://explorer.testnet.near.org',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'wormhole.wormhole.testnet',\n tokenBridge: 'token.wormhole.testnet',\n },\n },\n mainnet: {\n name: 'Near',\n chainId: 0,\n wormholeChainId: 15,\n rpcUrl: 'https://rpc.mainnet.near.org',\n explorerUrl: 'https://explorer.near.org',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'contract.wormhole_crypto.near',\n tokenBridge: 'contract.portalbridge.near',\n },\n },\n },\n};\n\n// ============================================================================\n// Custom RPC URL Overrides\n// ============================================================================\n\n/**\n * Global RPC URL overrides. Set once at app startup to avoid passing\n * custom URLs to every SDK / client constructor.\n *\n * @example\n * ```typescript\n * import { configureDefaultRpcUrls } from '@veridex/sdk';\n *\n * configureDefaultRpcUrls({\n * starknet: { testnet: 'https://my-starknet-rpc.example.com' },\n * base: { mainnet: 'https://my-base-mainnet.example.com' },\n * });\n * ```\n */\nconst _rpcOverrides: Partial<Record<ChainName, Partial<Record<NetworkType, string>>>> = {};\n\n/**\n * Configure global default RPC URL overrides.\n * These take precedence over the built-in public endpoints but are\n * themselves overridden by per-SDK `rpcUrl` / `rpcUrls` options.\n *\n * Call with an empty object to clear all overrides.\n */\nexport function configureDefaultRpcUrls(\n overrides: Partial<Record<ChainName, Partial<Record<NetworkType, string>>>>\n): void {\n // Clear existing overrides\n for (const key of Object.keys(_rpcOverrides) as ChainName[]) {\n delete _rpcOverrides[key];\n }\n // Apply new overrides\n Object.assign(_rpcOverrides, overrides);\n}\n\n/**\n * Get the current global RPC URL override for a chain + network, if any.\n */\nexport function getRpcUrlOverride(\n chain: ChainName,\n network: NetworkType\n): string | undefined {\n return _rpcOverrides[chain]?.[network];\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Get chain configuration by name and network.\n *\n * Returns a copy of the built-in config with any global RPC override applied.\n * Per-SDK overrides (`rpcUrl`, `rpcUrls`) still take priority in the factory.\n */\nexport function getChainConfig(\n chain: ChainName,\n network: NetworkType = 'testnet'\n): ChainConfig {\n const preset = CHAIN_PRESETS[chain];\n if (!preset) {\n throw new Error(\n `Unknown chain: \"${chain}\". Supported chains: ${Object.keys(CHAIN_PRESETS).join(', ')}`\n );\n }\n const config = preset[network];\n const rpcOverride = getRpcUrlOverride(chain, network);\n if (rpcOverride) {\n return { ...config, rpcUrl: rpcOverride };\n }\n return config;\n}\n\n/**\n * Get chain preset by name\n */\nexport function getChainPreset(chain: ChainName): ChainPreset {\n const preset = CHAIN_PRESETS[chain];\n if (!preset) {\n throw new Error(\n `Unknown chain: \"${chain}\". Supported chains: ${Object.keys(CHAIN_PRESETS).join(', ')}`\n );\n }\n return preset;\n}\n\n/**\n * Get all supported chain names\n */\nexport function getSupportedChains(): ChainName[] {\n return Object.keys(CHAIN_PRESETS) as ChainName[];\n}\n\n/**\n * Get hub-capable chains.\n * \n * When multi-hub feature flag is disabled, returns only the primary hub chain ('base').\n * When enabled, returns all chains with canBeHub: true.\n */\nexport function getHubChains(): ChainName[] {\n if (!isMultiHubEnabled()) {\n const primary = getEffectivePrimaryHub();\n return [primary];\n }\n return Object.entries(CHAIN_PRESETS)\n .filter(([_, preset]) => preset.canBeHub)\n .map(([name]) => name as ChainName);\n}\n\n/**\n * Check if chain is supported\n */\nexport function isChainSupported(chain: string): chain is ChainName {\n return chain in CHAIN_PRESETS;\n}\n\n/**\n * Check if a specific chain is currently acting as a hub.\n * \n * When multi-hub is disabled, only the primary hub ('base') returns true.\n * When enabled, any chain with canBeHub: true returns true.\n */\nexport function isHubChain(chain: ChainName): boolean {\n if (!isMultiHubEnabled()) {\n return chain === getEffectivePrimaryHub();\n }\n const preset = CHAIN_PRESETS[chain];\n return preset?.canBeHub ?? false;\n}\n\n/**\n * Get default hub chain.\n * \n * Returns the effective primary hub's config. When multi-hub is disabled,\n * this always returns Base. When enabled, it returns the configured primary hub.\n */\nexport function getDefaultHub(network: NetworkType = 'testnet'): ChainConfig {\n const primary = getEffectivePrimaryHub();\n return CHAIN_PRESETS[primary][network];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EVMClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YBN2VC6E.mjs";
|
|
4
4
|
|
|
5
5
|
// src/chains/avalanche/AvalancheClient.ts
|
|
6
6
|
import { ethers } from "ethers";
|
|
@@ -213,4 +213,4 @@ var AvalancheClient = class extends EVMClient {
|
|
|
213
213
|
export {
|
|
214
214
|
AvalancheClient
|
|
215
215
|
};
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
216
|
+
//# sourceMappingURL=chunk-PEGOXMBU.mjs.map
|
|
@@ -54,7 +54,7 @@ var WORMHOLE_CHAIN_IDS = {
|
|
|
54
54
|
SOLANA_DEVNET: 1,
|
|
55
55
|
GOERLI: 2,
|
|
56
56
|
BSC_TESTNET: 4,
|
|
57
|
-
|
|
57
|
+
POLYGON_AMOY: 10007,
|
|
58
58
|
AVALANCHE_FUJI: 6,
|
|
59
59
|
FANTOM_TESTNET: 10,
|
|
60
60
|
CELO_ALFAJORES: 14,
|
|
@@ -116,7 +116,7 @@ var WORMHOLE_CHAIN_IDS_FLAT = {
|
|
|
116
116
|
SOLANA_DEVNET: 1,
|
|
117
117
|
GOERLI: 2,
|
|
118
118
|
BSC_TESTNET: 4,
|
|
119
|
-
|
|
119
|
+
POLYGON_AMOY: 10007,
|
|
120
120
|
AVALANCHE_FUJI: 6,
|
|
121
121
|
FANTOM_TESTNET: 10,
|
|
122
122
|
CELO_ALFAJORES: 14,
|
|
@@ -137,13 +137,12 @@ var TESTNET_CHAINS = {
|
|
|
137
137
|
chainId: 84532,
|
|
138
138
|
wormholeChainId: 10004,
|
|
139
139
|
rpcUrl: "https://sepolia.base.org",
|
|
140
|
-
// Public CORS-friendly RPC
|
|
141
140
|
explorerUrl: "https://sepolia.basescan.org",
|
|
142
141
|
isEvm: true,
|
|
143
142
|
contracts: {
|
|
144
|
-
hub: "
|
|
145
|
-
vaultFactory: "
|
|
146
|
-
vaultImplementation: "
|
|
143
|
+
hub: "0xD5D29b6EaeE6FF4b765e704298a7e48D22607059",
|
|
144
|
+
vaultFactory: "0xb25b73D5FeD5693dcd1Bb78f8e33387B59A022EC",
|
|
145
|
+
vaultImplementation: "0x2CB8397df988c1880d9e5cFfF65bfC22D7D90EE6",
|
|
147
146
|
wormholeCoreBridge: "0x79A1027a6A159502049F10906D333EC57E95F083",
|
|
148
147
|
tokenBridge: "0x86F55A04690fd7815A3D802bD587e83eA888B239"
|
|
149
148
|
}
|
|
@@ -156,8 +155,8 @@ var TESTNET_CHAINS = {
|
|
|
156
155
|
explorerUrl: "https://sepolia.etherscan.io",
|
|
157
156
|
isEvm: true,
|
|
158
157
|
contracts: {
|
|
159
|
-
vaultFactory: "
|
|
160
|
-
vaultImplementation: "
|
|
158
|
+
vaultFactory: "0x265c10763B4d16AD970bC3d7670c645e37f63AF4",
|
|
159
|
+
vaultImplementation: "0x942426C94652ebC48f4f404928016B95ADb1DA25",
|
|
161
160
|
wormholeCoreBridge: "0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78",
|
|
162
161
|
tokenBridge: "0xDB5492265f6038831E89f495670FF909aDe94bd9"
|
|
163
162
|
}
|
|
@@ -170,8 +169,8 @@ var TESTNET_CHAINS = {
|
|
|
170
169
|
explorerUrl: "https://sepolia-optimism.etherscan.io",
|
|
171
170
|
isEvm: true,
|
|
172
171
|
contracts: {
|
|
173
|
-
vaultFactory: "
|
|
174
|
-
vaultImplementation: "
|
|
172
|
+
vaultFactory: "0x3c5e4aCdC8Cd53ae5ae603B4c511885191fBb868",
|
|
173
|
+
vaultImplementation: "0xA45dBF322c5A3028687fEEB161603d3BCe02e119",
|
|
175
174
|
wormholeCoreBridge: "0x31377888146f3253211EFEf5c676D41ECe7D58Fe",
|
|
176
175
|
tokenBridge: "0x99737Ec4B815d816c49A385943baf0380e75c0Ac"
|
|
177
176
|
}
|
|
@@ -184,24 +183,52 @@ var TESTNET_CHAINS = {
|
|
|
184
183
|
explorerUrl: "https://sepolia.arbiscan.io",
|
|
185
184
|
isEvm: true,
|
|
186
185
|
contracts: {
|
|
187
|
-
vaultFactory: "
|
|
188
|
-
vaultImplementation: "
|
|
186
|
+
vaultFactory: "0xB9C3e6bad3c6f26956be4a4bb5a366376Fd3045D",
|
|
187
|
+
vaultImplementation: "0x8601881b94B68B09b485f407317686103d3CB681",
|
|
189
188
|
wormholeCoreBridge: "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35",
|
|
190
189
|
tokenBridge: "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e"
|
|
191
190
|
}
|
|
192
191
|
},
|
|
193
|
-
|
|
194
|
-
name: "
|
|
195
|
-
chainId:
|
|
196
|
-
wormholeChainId:
|
|
197
|
-
rpcUrl: "https://
|
|
198
|
-
explorerUrl: "https://
|
|
192
|
+
monadTestnet: {
|
|
193
|
+
name: "Monad Testnet",
|
|
194
|
+
chainId: 10143,
|
|
195
|
+
wormholeChainId: 10048,
|
|
196
|
+
rpcUrl: "https://testnet-rpc.monad.xyz",
|
|
197
|
+
explorerUrl: "https://testnet.monadexplorer.com",
|
|
198
|
+
isEvm: true,
|
|
199
|
+
contracts: {
|
|
200
|
+
vaultFactory: "0xbE9B9c39956448DA75Ac97E5e3dE17e34171660A",
|
|
201
|
+
vaultImplementation: "0x500853DCc54Fd1A707ec9d443032Bb7748f426d3",
|
|
202
|
+
wormholeCoreBridge: "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd",
|
|
203
|
+
tokenBridge: "0x0000000000000000000000000000000000000000"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
avalancheFuji: {
|
|
207
|
+
name: "Avalanche Fuji",
|
|
208
|
+
chainId: 43113,
|
|
209
|
+
wormholeChainId: 6,
|
|
210
|
+
rpcUrl: "https://api.avax-test.network/ext/bc/C/rpc",
|
|
211
|
+
explorerUrl: "https://testnet.snowtrace.io",
|
|
212
|
+
isEvm: true,
|
|
213
|
+
contracts: {
|
|
214
|
+
vaultFactory: "0x50F2c37584823A6cc293bd0d7647D558d05CA4C1",
|
|
215
|
+
vaultImplementation: "0x53d4D3943d0E524836f0B1955AbB216449F538fF",
|
|
216
|
+
wormholeCoreBridge: "0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C",
|
|
217
|
+
tokenBridge: "0x61E44E506Ca5659E6c0bba9b678586fA2d729756"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
polygonAmoy: {
|
|
221
|
+
name: "Polygon Amoy",
|
|
222
|
+
chainId: 80002,
|
|
223
|
+
wormholeChainId: 10007,
|
|
224
|
+
rpcUrl: "https://rpc-amoy.polygon.technology",
|
|
225
|
+
explorerUrl: "https://amoy.polygonscan.com",
|
|
199
226
|
isEvm: true,
|
|
200
227
|
contracts: {
|
|
201
228
|
vaultFactory: "0x07F608AFf6d63b68029488b726d895c4Bb593038",
|
|
202
229
|
vaultImplementation: "0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6",
|
|
203
|
-
wormholeCoreBridge: "
|
|
204
|
-
|
|
230
|
+
wormholeCoreBridge: "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35",
|
|
231
|
+
tokenBridge: "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e"
|
|
205
232
|
}
|
|
206
233
|
},
|
|
207
234
|
solanaDevnet: {
|
|
@@ -238,26 +265,21 @@ var TESTNET_CHAINS = {
|
|
|
238
265
|
explorerUrl: "https://suiscan.xyz/testnet",
|
|
239
266
|
isEvm: false,
|
|
240
267
|
contracts: {
|
|
241
|
-
hub: "
|
|
268
|
+
hub: "0x1f8f9b79561525275c2de4579a1e5243cfe789656ec666485b7737f4784c1bfc",
|
|
242
269
|
wormholeCoreBridge: "0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790"
|
|
243
270
|
}
|
|
244
271
|
},
|
|
245
272
|
starknetSepolia: {
|
|
246
273
|
name: "Starknet Sepolia",
|
|
247
274
|
chainId: 0,
|
|
248
|
-
// Native Starknet chain ID (SN_SEPOLIA = 0x534e5f5345504f4c4941)
|
|
249
275
|
wormholeChainId: 50001,
|
|
250
|
-
|
|
251
|
-
rpcUrl: "https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/tsOnfTBZDKMXcUA26OED-",
|
|
276
|
+
rpcUrl: "https://starknet-sepolia-rpc.publicnode.com",
|
|
252
277
|
explorerUrl: "https://sepolia.starkscan.co",
|
|
253
278
|
isEvm: false,
|
|
254
279
|
contracts: {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
// Custom bridge contract (NOT Wormhole)
|
|
258
|
-
wormholeCoreBridge: "0x700488242f8f03248b2311edddc394f0408a18c36181446eabd265067809c83"
|
|
280
|
+
hub: "0x1c87ca930ad46a5fef167f2d03d6df5b1dd6cdb841955c059edabb0566ff2d6",
|
|
281
|
+
wormholeCoreBridge: "0x30280c19d413eef7515c479186f206498c7f5077e30cb7277ce753d35adab00"
|
|
259
282
|
},
|
|
260
|
-
// Hub chain ID that Starknet bridge validates (Base Sepolia = 10004)
|
|
261
283
|
hubChainId: 10004
|
|
262
284
|
}
|
|
263
285
|
};
|
|
@@ -404,4 +426,4 @@ export {
|
|
|
404
426
|
VAULT_FACTORY_ABI,
|
|
405
427
|
VAULT_ABI
|
|
406
428
|
};
|
|
407
|
-
//# sourceMappingURL=chunk-
|
|
429
|
+
//# sourceMappingURL=chunk-RD6ZYUVG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Veridex Protocol SDK - Constants and Chain Configurations\n */\n\nimport type { ChainConfig } from './types.js';\n\n// ============================================================================\n// Action Type Constants\n// ============================================================================\n\nexport const ACTION_TYPES = {\n TRANSFER: 1,\n EXECUTE: 2,\n CONFIG: 3,\n BRIDGE: 4,\n} as const;\n\nexport const ACTION_TRANSFER = 1;\nexport const ACTION_EXECUTE = 2;\nexport const ACTION_CONFIG = 3;\nexport const ACTION_BRIDGE = 4;\n\n// Protocol version\nexport const PROTOCOL_VERSION = 1;\n\n// ============================================================================\n// Wormhole Chain IDs\n// ============================================================================\n\n/**\n * Wormhole Chain IDs organized by network\n * @see https://docs.wormhole.com/wormhole/reference/constants\n */\nexport const WORMHOLE_CHAIN_IDS = {\n MAINNET: {\n SOLANA: 1,\n ETHEREUM: 2,\n TERRA: 3,\n BSC: 4,\n POLYGON: 5,\n AVALANCHE: 6,\n OASIS: 7,\n ALGORAND: 8,\n AURORA: 9,\n FANTOM: 10,\n KARURA: 11,\n ACALA: 12,\n KLAYTN: 13,\n CELO: 14,\n NEAR: 15,\n MOONBEAM: 16,\n NEON: 17,\n TERRA2: 18,\n INJECTIVE: 19,\n OSMOSIS: 20,\n SUI: 21,\n APTOS: 22,\n ARBITRUM: 23,\n OPTIMISM: 24,\n GNOSIS: 25,\n PYTHNET: 26,\n XPLA: 28,\n BASE: 30,\n SEI: 32,\n ROOTSTOCK: 33,\n SCROLL: 34,\n MANTLE: 35,\n BLAST: 36,\n XLAYER: 37,\n LINEA: 38,\n BERACHAIN: 39,\n SEIEVM: 40,\n },\n TESTNET: {\n SOLANA_DEVNET: 1,\n GOERLI: 2,\n BSC_TESTNET: 4,\n POLYGON_AMOY: 10007,\n AVALANCHE_FUJI: 6,\n FANTOM_TESTNET: 10,\n CELO_ALFAJORES: 14,\n MOONBASE_ALPHA: 16,\n SUI_TESTNET: 21,\n APTOS_TESTNET: 22,\n SEPOLIA: 10002,\n ARBITRUM_SEPOLIA: 10003,\n BASE_SEPOLIA: 10004,\n OPTIMISM_SEPOLIA: 10005,\n HOLESKY: 10006,\n POLYGON_SEPOLIA: 10007,\n SEI_ATLANTIC_2: 10066, // Sei Arctic-1 testnet (EVM)\n STARKNET_SEPOLIA: 50001, // Custom bridge (non-Wormhole, relayer-attested)\n },\n} as const;\n\n// Legacy flat exports for backward compatibility\nexport const WORMHOLE_CHAIN_IDS_FLAT = {\n // Mainnets\n SOLANA: 1,\n ETHEREUM: 2,\n TERRA: 3,\n BSC: 4,\n POLYGON: 5,\n AVALANCHE: 6,\n OASIS: 7,\n ALGORAND: 8,\n AURORA: 9,\n FANTOM: 10,\n KARURA: 11,\n ACALA: 12,\n KLAYTN: 13,\n CELO: 14,\n NEAR: 15,\n MOONBEAM: 16,\n NEON: 17,\n TERRA2: 18,\n INJECTIVE: 19,\n OSMOSIS: 20,\n SUI: 21,\n APTOS: 22,\n ARBITRUM: 23,\n OPTIMISM: 24,\n GNOSIS: 25,\n PYTHNET: 26,\n XPLA: 28,\n BASE: 30,\n SEI: 32,\n ROOTSTOCK: 33,\n SCROLL: 34,\n MANTLE: 35,\n BLAST: 36,\n XLAYER: 37,\n LINEA: 38,\n BERACHAIN: 39,\n SEIEVM: 40,\n\n // Testnets\n SOLANA_DEVNET: 1,\n GOERLI: 2,\n BSC_TESTNET: 4,\n POLYGON_AMOY: 10007,\n AVALANCHE_FUJI: 6,\n FANTOM_TESTNET: 10,\n CELO_ALFAJORES: 14,\n MOONBASE_ALPHA: 16,\n SUI_TESTNET: 21,\n APTOS_TESTNET: 22,\n ARBITRUM_SEPOLIA: 10003,\n BASE_SEPOLIA: 10004,\n OPTIMISM_SEPOLIA: 10005,\n POLYGON_SEPOLIA: 10007,\n HOLESKY: 10006,\n STARKNET_SEPOLIA: 50001, // Custom bridge (non-Wormhole)\n} as const;\n\n// ============================================================================\n// Testnet Chain Configurations\n// ============================================================================\n\nexport const TESTNET_CHAINS: Record<string, ChainConfig> = {\n baseSepolia: {\n name: 'Base Sepolia',\n chainId: 84532,\n wormholeChainId: 10004,\n rpcUrl: 'https://sepolia.base.org',\n explorerUrl: 'https://sepolia.basescan.org',\n isEvm: true,\n contracts: {\n hub: '0xD5D29b6EaeE6FF4b765e704298a7e48D22607059',\n vaultFactory: '0xb25b73D5FeD5693dcd1Bb78f8e33387B59A022EC',\n vaultImplementation: '0x2CB8397df988c1880d9e5cFfF65bfC22D7D90EE6',\n wormholeCoreBridge: '0x79A1027a6A159502049F10906D333EC57E95F083',\n tokenBridge: '0x86F55A04690fd7815A3D802bD587e83eA888B239',\n },\n },\n ethereumSepolia: {\n name: 'Ethereum Sepolia',\n chainId: 11155111,\n wormholeChainId: 10002,\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n explorerUrl: 'https://sepolia.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x265c10763B4d16AD970bC3d7670c645e37f63AF4',\n vaultImplementation: '0x942426C94652ebC48f4f404928016B95ADb1DA25',\n wormholeCoreBridge: '0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78',\n tokenBridge: '0xDB5492265f6038831E89f495670FF909aDe94bd9',\n },\n },\n optimismSepolia: {\n name: 'Optimism Sepolia',\n chainId: 11155420,\n wormholeChainId: 10005,\n rpcUrl: 'https://sepolia.optimism.io',\n explorerUrl: 'https://sepolia-optimism.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x3c5e4aCdC8Cd53ae5ae603B4c511885191fBb868',\n vaultImplementation: '0xA45dBF322c5A3028687fEEB161603d3BCe02e119',\n wormholeCoreBridge: '0x31377888146f3253211EFEf5c676D41ECe7D58Fe',\n tokenBridge: '0x99737Ec4B815d816c49A385943baf0380e75c0Ac',\n },\n },\n arbitrumSepolia: {\n name: 'Arbitrum Sepolia',\n chainId: 421614,\n wormholeChainId: 10003,\n rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',\n explorerUrl: 'https://sepolia.arbiscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0xB9C3e6bad3c6f26956be4a4bb5a366376Fd3045D',\n vaultImplementation: '0x8601881b94B68B09b485f407317686103d3CB681',\n wormholeCoreBridge: '0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35',\n tokenBridge: '0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e',\n },\n },\n monadTestnet: {\n name: 'Monad Testnet',\n chainId: 10143,\n wormholeChainId: 10048,\n rpcUrl: 'https://testnet-rpc.monad.xyz',\n explorerUrl: 'https://testnet.monadexplorer.com',\n isEvm: true,\n contracts: {\n vaultFactory: '0xbE9B9c39956448DA75Ac97E5e3dE17e34171660A',\n vaultImplementation: '0x500853DCc54Fd1A707ec9d443032Bb7748f426d3',\n wormholeCoreBridge: '0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd',\n tokenBridge: '0x0000000000000000000000000000000000000000',\n },\n },\n avalancheFuji: {\n name: 'Avalanche Fuji',\n chainId: 43113,\n wormholeChainId: 6,\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n explorerUrl: 'https://testnet.snowtrace.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0x50F2c37584823A6cc293bd0d7647D558d05CA4C1',\n vaultImplementation: '0x53d4D3943d0E524836f0B1955AbB216449F538fF',\n wormholeCoreBridge: '0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C',\n tokenBridge: '0x61E44E506Ca5659E6c0bba9b678586fA2d729756',\n },\n },\n polygonAmoy: {\n name: 'Polygon Amoy',\n chainId: 80002,\n wormholeChainId: 10007,\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n explorerUrl: 'https://amoy.polygonscan.com',\n isEvm: true,\n contracts: {\n vaultFactory: '0x07F608AFf6d63b68029488b726d895c4Bb593038',\n vaultImplementation: '0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6',\n wormholeCoreBridge: '0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35',\n tokenBridge: '0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e',\n },\n },\n solanaDevnet: {\n name: 'Solana Devnet',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.devnet.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n hub: 'AnyXHsqq9c2BiW4WgBcj6Aye7Ua7a7L7iSuwpfJxECJM',\n wormholeCoreBridge: '3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5',\n tokenBridge: 'DZnkkTmCiFWfYTfT41X3Rd1kDgozqzxWaHqsw6W4x2oe',\n },\n },\n aptosTestnet: {\n name: 'Aptos Testnet',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.testnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n hub: '0x2935e5d434c383c8f8b8af3b9596aa78b7238c308b5b0fe2bbd19e248b6f018f',\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n suiTestnet: {\n name: 'Sui Testnet',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.testnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/testnet',\n isEvm: false,\n contracts: {\n hub: '0x1f8f9b79561525275c2de4579a1e5243cfe789656ec666485b7737f4784c1bfc',\n wormholeCoreBridge: '0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790',\n },\n },\n starknetSepolia: {\n name: 'Starknet Sepolia',\n chainId: 0,\n wormholeChainId: 50001,\n rpcUrl: 'https://starknet-sepolia-rpc.publicnode.com',\n explorerUrl: 'https://sepolia.starkscan.co',\n isEvm: false,\n contracts: {\n hub: '0x1c87ca930ad46a5fef167f2d03d6df5b1dd6cdb841955c059edabb0566ff2d6',\n wormholeCoreBridge: '0x30280c19d413eef7515c479186f206498c7f5077e30cb7277ce753d35adab00',\n },\n hubChainId: 10004,\n },\n};\n\n// ============================================================================\n// Mainnet Chain Configurations\n// ============================================================================\n\nexport const MAINNET_CHAINS: Record<string, ChainConfig> = {\n ethereum: {\n name: 'Ethereum',\n chainId: 1,\n wormholeChainId: 2,\n rpcUrl: 'https://eth.llamarpc.com',\n explorerUrl: 'https://etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B',\n tokenBridge: '0x3ee18B2214AFF97000D974cf647E7C347E8fa585',\n },\n },\n base: {\n name: 'Base',\n chainId: 8453,\n wormholeChainId: 30,\n rpcUrl: 'https://mainnet.base.org',\n explorerUrl: 'https://basescan.org',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627',\n },\n },\n optimism: {\n name: 'Optimism',\n chainId: 10,\n wormholeChainId: 24,\n rpcUrl: 'https://mainnet.optimism.io',\n explorerUrl: 'https://optimistic.etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722',\n tokenBridge: '0x1D68124e65faFC907325e3EDbF8c4d84499DAa8b',\n },\n },\n arbitrum: {\n name: 'Arbitrum',\n chainId: 42161,\n wormholeChainId: 23,\n rpcUrl: 'https://arb1.arbitrum.io/rpc',\n explorerUrl: 'https://arbiscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa5f208e072434bC67592E4C49C1B991BA79BCA46',\n tokenBridge: '0x0b2402144Bb366A632D14B83F244D2e0e21bD39c',\n },\n },\n polygon: {\n name: 'Polygon',\n chainId: 137,\n wormholeChainId: 5,\n rpcUrl: 'https://polygon-rpc.com',\n explorerUrl: 'https://polygonscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7',\n tokenBridge: '0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE',\n },\n },\n solana: {\n name: 'Solana',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.mainnet-beta.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth',\n tokenBridge: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n },\n },\n aptos: {\n name: 'Aptos',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.mainnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n sui: {\n name: 'Sui',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.mainnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/mainnet',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c',\n },\n },\n};\n\n// ============================================================================\n// Wormhole API Endpoints\n// ============================================================================\n\nexport const WORMHOLE_API = {\n MAINNET: 'https://api.wormholescan.io',\n TESTNET: 'https://api.testnet.wormholescan.io',\n GUARDIAN_RPC_MAINNET: 'https://wormhole-v2-mainnet-api.certus.one',\n GUARDIAN_RPC_TESTNET: 'https://wormhole-v2-testnet-api.certus.one',\n} as const;\n\n// ============================================================================\n// Hub Contract ABI (minimal)\n// ============================================================================\n\nexport const HUB_ABI = [\n 'function authenticateAndDispatch((bytes authenticatorData, string clientDataJSON, uint256 challengeIndex, uint256 typeIndex, uint256 r, uint256 s) auth, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload) external payable returns (uint64 sequence)',\n 'function authenticateRawAndDispatch(uint256 r, uint256 s, bytes32 messageHash, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload, uint256 nonce) external payable returns (uint64 sequence)',\n 'function userNonces(bytes32 userKeyHash) external view returns (uint256)',\n 'function encodeTransferAction(address token, address recipient, uint256 amount) external pure returns (bytes)',\n 'function encodeExecuteAction(address target, uint256 value, bytes data) external pure returns (bytes)',\n 'function encodeBridgeAction(bytes32 token, uint256 amount, uint16 targetChain, bytes32 recipient) external pure returns (bytes)',\n 'function messageFee() external view returns (uint256)',\n 'event Dispatched(bytes32 indexed userKeyHash, uint16 targetChain, uint256 nonce, uint64 sequence, bytes actionPayload)',\n] as const;\n\n// ============================================================================\n// Vault Factory ABI (minimal)\n// ============================================================================\n\nexport const VAULT_FACTORY_ABI = [\n 'function createVault(bytes32 userKeyHash) external returns (address)',\n 'function getVault(bytes32 userKeyHash) external view returns (address)',\n 'function vaultExists(bytes32 userKeyHash) external view returns (bool)',\n 'event VaultCreated(bytes32 indexed userKeyHash, address vault)',\n] as const;\n\n// ============================================================================\n// Vault ABI (minimal)\n// ============================================================================\n\nexport const VAULT_ABI = [\n 'function execute(address target, uint256 value, bytes data) external returns (bytes)',\n 'function executeFromHub(bytes32 vaaHash, uint16 emitterChain, bytes32 emitterAddress, bytes payload) external',\n 'function owner() external view returns (bytes32)',\n 'function hub() external view returns (address)',\n 'receive() external payable',\n] as const;\n"],"mappings":"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","names":[]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ACTION_EXECUTE,
|
|
5
5
|
ACTION_TRANSFER,
|
|
6
6
|
PROTOCOL_VERSION
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-RD6ZYUVG.mjs";
|
|
8
8
|
|
|
9
9
|
// src/payload.ts
|
|
10
10
|
import { ethers } from "ethers";
|
|
@@ -266,4 +266,4 @@ export {
|
|
|
266
266
|
buildGaslessChallenge,
|
|
267
267
|
buildChallenge
|
|
268
268
|
};
|
|
269
|
-
//# sourceMappingURL=chunk-
|
|
269
|
+
//# sourceMappingURL=chunk-TPEP6XUA.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WORMHOLE_API
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RD6ZYUVG.mjs";
|
|
4
4
|
|
|
5
5
|
// src/wormhole.ts
|
|
6
6
|
import { ethers } from "ethers";
|
|
@@ -414,4 +414,4 @@ export {
|
|
|
414
414
|
validateEmitter,
|
|
415
415
|
evmAddressToBytes32
|
|
416
416
|
};
|
|
417
|
-
//# sourceMappingURL=chunk-
|
|
417
|
+
//# sourceMappingURL=chunk-UPO55SBK.mjs.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
encodeBridgeAction,
|
|
3
3
|
encodeExecuteAction,
|
|
4
4
|
encodeTransferAction
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TPEP6XUA.mjs";
|
|
6
6
|
|
|
7
7
|
// src/chains/evm/EVMClient.ts
|
|
8
8
|
import { ethers } from "ethers";
|
|
@@ -1246,4 +1246,4 @@ var EVMClient = class {
|
|
|
1246
1246
|
export {
|
|
1247
1247
|
EVMClient
|
|
1248
1248
|
};
|
|
1249
|
-
//# sourceMappingURL=chunk-
|
|
1249
|
+
//# sourceMappingURL=chunk-YBN2VC6E.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
computeKeyHash
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EFIXFA6V.mjs";
|
|
4
4
|
|
|
5
5
|
// src/core/WalletManager.ts
|
|
6
6
|
import { ethers } from "ethers";
|
|
@@ -562,4 +562,4 @@ export {
|
|
|
562
562
|
getSupportedChainIds,
|
|
563
563
|
getChainName
|
|
564
564
|
};
|
|
565
|
-
//# sourceMappingURL=chunk-
|
|
565
|
+
//# sourceMappingURL=chunk-YYT3V7CI.mjs.map
|
package/dist/constants.d.mts
CHANGED
|
@@ -63,7 +63,7 @@ declare const WORMHOLE_CHAIN_IDS: {
|
|
|
63
63
|
readonly SOLANA_DEVNET: 1;
|
|
64
64
|
readonly GOERLI: 2;
|
|
65
65
|
readonly BSC_TESTNET: 4;
|
|
66
|
-
readonly
|
|
66
|
+
readonly POLYGON_AMOY: 10007;
|
|
67
67
|
readonly AVALANCHE_FUJI: 6;
|
|
68
68
|
readonly FANTOM_TESTNET: 10;
|
|
69
69
|
readonly CELO_ALFAJORES: 14;
|
|
@@ -121,7 +121,7 @@ declare const WORMHOLE_CHAIN_IDS_FLAT: {
|
|
|
121
121
|
readonly SOLANA_DEVNET: 1;
|
|
122
122
|
readonly GOERLI: 2;
|
|
123
123
|
readonly BSC_TESTNET: 4;
|
|
124
|
-
readonly
|
|
124
|
+
readonly POLYGON_AMOY: 10007;
|
|
125
125
|
readonly AVALANCHE_FUJI: 6;
|
|
126
126
|
readonly FANTOM_TESTNET: 10;
|
|
127
127
|
readonly CELO_ALFAJORES: 14;
|