@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.
Files changed (87) hide show
  1. package/dist/auth/prepareAuth.js +107 -32
  2. package/dist/auth/prepareAuth.js.map +1 -1
  3. package/dist/auth/prepareAuth.mjs +6 -6
  4. package/dist/auth/prepareAuth.mjs.map +1 -1
  5. package/dist/chains/aptos/index.js.map +1 -1
  6. package/dist/chains/aptos/index.mjs +3 -3
  7. package/dist/chains/avalanche/index.js.map +1 -1
  8. package/dist/chains/avalanche/index.mjs +4 -4
  9. package/dist/chains/evm/index.d.mts +2 -2
  10. package/dist/chains/evm/index.js.map +1 -1
  11. package/dist/chains/evm/index.mjs +3 -3
  12. package/dist/chains/solana/index.js.map +1 -1
  13. package/dist/chains/solana/index.mjs +3 -3
  14. package/dist/chains/stacks/index.d.mts +1 -1
  15. package/dist/chains/stacks/index.js.map +1 -1
  16. package/dist/chains/stacks/index.mjs +3 -3
  17. package/dist/chains/starknet/index.d.mts +2 -3
  18. package/dist/chains/starknet/index.js +1 -13
  19. package/dist/chains/starknet/index.js.map +1 -1
  20. package/dist/chains/starknet/index.mjs +3 -3
  21. package/dist/chains/sui/index.d.mts +3 -3
  22. package/dist/chains/sui/index.js +2 -2
  23. package/dist/chains/sui/index.js.map +1 -1
  24. package/dist/chains/sui/index.mjs +3 -3
  25. package/dist/{chunk-Q5O3M5LP.mjs → chunk-2TS375ET.mjs} +2 -2
  26. package/dist/{chunk-QT4ZZ4GM.mjs → chunk-5FDOTI5G.mjs} +2 -2
  27. package/dist/{chunk-5T6KPH7A.mjs → chunk-CSU4IV2F.mjs} +2 -2
  28. package/dist/{chunk-YCUJZ6Z7.mjs → chunk-CTYDGO6E.mjs} +63 -6
  29. package/dist/chunk-CTYDGO6E.mjs.map +1 -0
  30. package/dist/{chunk-PRHNGA4G.mjs → chunk-E3SU36C2.mjs} +4 -4
  31. package/dist/{chunk-PRHNGA4G.mjs.map → chunk-E3SU36C2.mjs.map} +1 -1
  32. package/dist/{chunk-NUWSMJFJ.mjs → chunk-EFIXFA6V.mjs} +2 -2
  33. package/dist/{chunk-EFIURACP.mjs → chunk-GM5DKEHD.mjs} +3 -15
  34. package/dist/chunk-GM5DKEHD.mjs.map +1 -0
  35. package/dist/{chunk-GWJRKDSA.mjs → chunk-GOWXQPTW.mjs} +3 -3
  36. package/dist/{chunk-OVMMTL6H.mjs → chunk-ICGB3AHI.mjs} +2 -2
  37. package/dist/{chunk-QDO6NQ7P.mjs → chunk-M3GUNREX.mjs} +20 -3
  38. package/dist/{chunk-QDO6NQ7P.mjs.map → chunk-M3GUNREX.mjs.map} +1 -1
  39. package/dist/{chunk-N4A2RMUN.mjs → chunk-PEGOXMBU.mjs} +2 -2
  40. package/dist/{chunk-X7BZMSPQ.mjs → chunk-RD6ZYUVG.mjs} +52 -30
  41. package/dist/chunk-RD6ZYUVG.mjs.map +1 -0
  42. package/dist/{chunk-F3YAGZSW.mjs → chunk-TPEP6XUA.mjs} +2 -2
  43. package/dist/{chunk-M3MM4YMF.mjs → chunk-UPO55SBK.mjs} +2 -2
  44. package/dist/{chunk-USDA5JTN.mjs → chunk-YBN2VC6E.mjs} +2 -2
  45. package/dist/{chunk-PDHZ5X5O.mjs → chunk-YYT3V7CI.mjs} +2 -2
  46. package/dist/constants.d.mts +2 -2
  47. package/dist/constants.js +51 -29
  48. package/dist/constants.js.map +1 -1
  49. package/dist/constants.mjs +1 -1
  50. package/dist/{index-DDalBhAm.d.mts → index-CySMITQ9.d.mts} +9 -6
  51. package/dist/index.d.mts +44 -13
  52. package/dist/index.js +466 -162
  53. package/dist/index.js.map +1 -1
  54. package/dist/index.mjs +345 -127
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/passkey.js +57 -4
  57. package/dist/passkey.js.map +1 -1
  58. package/dist/passkey.mjs +3 -3
  59. package/dist/payload.js.map +1 -1
  60. package/dist/payload.mjs +2 -2
  61. package/dist/portfolio-JA4OTF7Y.mjs +13 -0
  62. package/dist/queries/index.js +49 -27
  63. package/dist/queries/index.js.map +1 -1
  64. package/dist/queries/index.mjs +5 -5
  65. package/dist/{types-B7V5VNbO.d.mts → types-DWx-5jmz.d.mts} +12 -3
  66. package/dist/utils.js +49 -27
  67. package/dist/utils.js.map +1 -1
  68. package/dist/utils.mjs +2 -2
  69. package/dist/wormhole.js.map +1 -1
  70. package/dist/wormhole.mjs +2 -2
  71. package/package.json +1 -1
  72. package/dist/chunk-EFIURACP.mjs.map +0 -1
  73. package/dist/chunk-X7BZMSPQ.mjs.map +0 -1
  74. package/dist/chunk-YCUJZ6Z7.mjs.map +0 -1
  75. package/dist/portfolio-V347KZOL.mjs +0 -13
  76. /package/dist/{chunk-Q5O3M5LP.mjs.map → chunk-2TS375ET.mjs.map} +0 -0
  77. /package/dist/{chunk-QT4ZZ4GM.mjs.map → chunk-5FDOTI5G.mjs.map} +0 -0
  78. /package/dist/{chunk-5T6KPH7A.mjs.map → chunk-CSU4IV2F.mjs.map} +0 -0
  79. /package/dist/{chunk-NUWSMJFJ.mjs.map → chunk-EFIXFA6V.mjs.map} +0 -0
  80. /package/dist/{chunk-GWJRKDSA.mjs.map → chunk-GOWXQPTW.mjs.map} +0 -0
  81. /package/dist/{chunk-OVMMTL6H.mjs.map → chunk-ICGB3AHI.mjs.map} +0 -0
  82. /package/dist/{chunk-N4A2RMUN.mjs.map → chunk-PEGOXMBU.mjs.map} +0 -0
  83. /package/dist/{chunk-F3YAGZSW.mjs.map → chunk-TPEP6XUA.mjs.map} +0 -0
  84. /package/dist/{chunk-M3MM4YMF.mjs.map → chunk-UPO55SBK.mjs.map} +0 -0
  85. /package/dist/{chunk-USDA5JTN.mjs.map → chunk-YBN2VC6E.mjs.map} +0 -0
  86. /package/dist/{chunk-PDHZ5X5O.mjs.map → chunk-YYT3V7CI.mjs.map} +0 -0
  87. /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-USDA5JTN.mjs";
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-N4A2RMUN.mjs.map
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
- POLYGON_MUMBAI: 5,
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
- POLYGON_MUMBAI: 5,
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: "0x23a39c294891703146c3607e1FEEB5Fe78F7F28d",
145
- vaultFactory: "0x31e8dc9428575334739754Ab2bdB0E8b9Dc707FD",
146
- vaultImplementation: "0xD65E996CD6d5B01689dc54ad30B51f1D88a100f5",
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: "0x52a6dc19C11b3B53B434Fc7f6D31F8b62ed18F0a",
160
- vaultImplementation: "0xfab72dd1fd3AD79f738B49506f32251B60c95f01",
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: "0x347feeaBB5655a7a80b56D8D554DA30BE6c28225",
174
- vaultImplementation: "0x26C4FD8fC66150ef5964562F7A69271fB0cd02A4",
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: "0x708eEE22621A64CDF51d98d3e8D97902D7dF52dD",
188
- vaultImplementation: "0x9f74Dc14A98E59df7AEC5571a2B9E329153dF5Cd",
186
+ vaultFactory: "0xB9C3e6bad3c6f26956be4a4bb5a366376Fd3045D",
187
+ vaultImplementation: "0x8601881b94B68B09b485f407317686103d3CB681",
189
188
  wormholeCoreBridge: "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35",
190
189
  tokenBridge: "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e"
191
190
  }
192
191
  },
193
- seiTestnet: {
194
- name: "Sei Atlantic-2",
195
- chainId: 1328,
196
- wormholeChainId: 40,
197
- rpcUrl: "https://evm-rpc-testnet.sei-apis.com",
198
- explorerUrl: "https://seitrace.com/?chain=atlantic-2",
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: "0x0000000000000000000000000000000000000000"
204
- // Mock - not yet deployed
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: "0x7f6b9a3f9dba7ac6b20d180a9274f525c23a2a9f7e5445218c595c3696c55667",
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
- // Custom chain ID (50000+ reserved for non-Wormhole chains)
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
- // Starknet spoke contract
256
- hub: "0x46139177b8a1d7187cf35fbcddca637882a1d6f50d91f048c59d1322eee9ede",
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-X7BZMSPQ.mjs.map
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":";AAUO,IAAM,eAAe;AAAA,EAC1B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAEO,IAAM,kBAAkB;AACxB,IAAM,iBAAiB;AACvB,IAAM,gBAAgB;AACtB,IAAM,gBAAgB;AAGtB,IAAM,mBAAmB;AAUzB,IAAM,qBAAqB;AAAA,EAChC,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,gBAAgB;AAAA;AAAA,IAChB,kBAAkB;AAAA;AAAA,EACpB;AACF;AAGO,IAAM,0BAA0B;AAAA;AAAA,EAErC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,KAAK;AAAA,EACL,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EAGR,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,kBAAkB;AAAA;AACpB;AAMO,IAAM,iBAA8C;AAAA,EACzD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,KAAK;AAAA,MACL,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,KAAK;AAAA,MACL,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,KAAK;AAAA,MACL,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,KAAK;AAAA,MACL,oBAAoB;AAAA,IACtB;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,KAAK;AAAA,MACL,oBAAoB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,EACd;AACF;AAMO,IAAM,iBAA8C;AAAA,EACzD,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,MACT,oBAAoB;AAAA,IACtB;AAAA,EACF;AACF;AAMO,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA,EACT,SAAS;AAAA,EACT,sBAAsB;AAAA,EACtB,sBAAsB;AACxB;AAMO,IAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  ACTION_EXECUTE,
5
5
  ACTION_TRANSFER,
6
6
  PROTOCOL_VERSION
7
- } from "./chunk-X7BZMSPQ.mjs";
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-F3YAGZSW.mjs.map
269
+ //# sourceMappingURL=chunk-TPEP6XUA.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  WORMHOLE_API
3
- } from "./chunk-X7BZMSPQ.mjs";
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-M3MM4YMF.mjs.map
417
+ //# sourceMappingURL=chunk-UPO55SBK.mjs.map
@@ -2,7 +2,7 @@ import {
2
2
  encodeBridgeAction,
3
3
  encodeExecuteAction,
4
4
  encodeTransferAction
5
- } from "./chunk-F3YAGZSW.mjs";
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-USDA5JTN.mjs.map
1249
+ //# sourceMappingURL=chunk-YBN2VC6E.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  computeKeyHash
3
- } from "./chunk-NUWSMJFJ.mjs";
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-PDHZ5X5O.mjs.map
565
+ //# sourceMappingURL=chunk-YYT3V7CI.mjs.map
@@ -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 POLYGON_MUMBAI: 5;
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 POLYGON_MUMBAI: 5;
124
+ readonly POLYGON_AMOY: 10007;
125
125
  readonly AVALANCHE_FUJI: 6;
126
126
  readonly FANTOM_TESTNET: 10;
127
127
  readonly CELO_ALFAJORES: 14;