{"version":3,"sources":["../../core/src/addresses.ts","../../core/src/constants.ts","../../core/src/contract-addresses.ts"],"names":["chainId","optimism","sepolia","optimismSepolia","CONTRACT_SRC_HASH","REGISTRY_ADDRESS","GTOKEN_ADDRESS","GTOKEN_STAKING_ADDRESS","SBT_ADDRESS","REPUTATION_SYSTEM_ADDRESS","SUPER_PAYMASTER_ADDRESS","PAYMASTER_FACTORY_ADDRESS","PAYMASTER_V4_ADDRESS","PAYMASTER_V4_IMPL_ADDRESS","XPNTS_FACTORY_ADDRESS","BLS_AGGREGATOR_ADDRESS","BLS_VALIDATOR_ADDRESS","DVT_VALIDATOR_ADDRESS","ENTRY_POINT_ADDRESS","APNTS_ADDRESS","MICRO_PAYMENT_CHANNEL_ADDRESS","AGENT_IDENTITY_REGISTRY_ADDRESS","AGENT_REPUTATION_REGISTRY_ADDRESS"],"mappings":"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","file":"chunk-LDYYPFJD.cjs","sourcesContent":["/**\n * Canonical Contract Addresses for Supported Networks\n * These are hardcoded as defaults for NPM distribution.\n *\n * SINGLE SOURCE OF TRUTH for SDK contract addresses (Beta3.1 P2.8).\n * The root `config.{network}.json` files are dev/deploy-time overrides and MUST\n * agree with this table for any network that has a chainId entry here. The\n * `scripts/check-address-consistency.ts` drift check (CI: `pnpm run check:addresses`)\n * enforces that. NOTE: `@aastar/shared-config` is a separate external repo (vendored\n * as git submodules under ext/ and lib/), NOT a workspace package and NOT the SDK's\n * source of truth — do not treat it as canonical here.\n */\n\nimport type { Address } from 'viem';\nimport { optimism, sepolia, optimismSepolia } from 'viem/chains';\n\nexport const CANONICAL_ADDRESSES = {\n  // --- Optimism (Chain ID: 10) ---\n  10: {\n    registry: \"0x997686219F31405503D32728B1f094F115EF24e7\",\n    gToken: \"0x8d6Fe002dDacCcFBD377F684EC1825f2E1ab7ef6\",\n    staking: \"0x7A1216C2d814D2389698C64eD23AA1aA9Eb6343E\",\n    sbt: \"0x28eBFc5fc03B1d7648254AbF1C7B39DbFdef1a94\",\n    reputationSystem: \"0xA9560898dC0eE4F9Ed3F1db17dbf74dE65e925c2\",\n    superPaymaster: \"0xA2c9A6e95f19f5D2a364CBCbB5f0b32B1B4d140E\",\n    paymasterFactory: \"0x58A7F6E44a57028A255794119F8b37124c9a7eB8\",\n    paymasterV4: \"0x67a70a578E142b950987081e7016906ae4F56Df4\",  // = aPNTsPaymasterV4 (AAStar Community PM, Jason)\n    paymasterV4Impl: \"0xc4dd13F7825409EEC13FBCBdD9D8f6d618207cca\",\n    // Official community PaymasterV4 instances (one per community, each backed by its own points token).\n    aPNTsPaymasterV4: \"0x67a70a578E142b950987081e7016906ae4F56Df4\",  // AAStar community → aPNTs\n    PNTsPaymasterV4: \"0x0000000000000000000000000000000000000000\",   // Mycelium (Anni) → pnts; not deployed on this chain\n    xPNTsFactory: \"0x864971a26384d9DCC7115f0bBC428e2623F28b6e\",\n    blsAggregator: \"0x1C305372ecc5a36CBef1FA371392234bCD55eB19\",\n    blsValidator: \"0xA88ADec5A8dc422B57488272d5aD5913d728942A\",\n    dvtValidator: \"0x31Ede6454a56293f7cf2323CA5d5F9a6230558Fb\",\n    entryPoint: \"0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\n    aPNTs: \"0x0B41C78081B5A141eb4C3C7E7FD8E58A7Bde553B\",\n    priceFeed: \"0x13e3Ee699D1909E989722E753853AE30b17e08c5\",\n    simpleAccountFactory: \"0x91E60e0613810449d098b0b5Ec8b51A0FE8c8985\",\n    microPaymentChannel: \"0x0000000000000000000000000000000000000000\",\n    agentIdentityRegistry: \"0x0000000000000000000000000000000000000000\",\n    agentReputationRegistry: \"0x0000000000000000000000000000000000000000\",\n    // ERC-8004 agent validation registry (SP v5.4) — not yet deployed on this chain.\n    agentValidationRegistry: \"0x0000000000000000000000000000000000000000\",\n    // --- AirAccount v0.17.2-beta.2 stack (not yet deployed on this chain) ---\n    aaStarBLSAlgorithm: \"0x0000000000000000000000000000000000000000\",\n    aaStarValidator: \"0x0000000000000000000000000000000000000000\",\n    aaStarBLSAggregator: \"0x0000000000000000000000000000000000000000\",\n    sessionKeyValidator: \"0x0000000000000000000000000000000000000000\",\n    forceExitModule: \"0x0000000000000000000000000000000000000000\",\n    airAccountDelegate: \"0x0000000000000000000000000000000000000000\",\n    calldataParserRegistry: \"0x0000000000000000000000000000000000000000\",\n    airAccountFactoryV7: \"0x0000000000000000000000000000000000000000\",\n    airAccountV7Impl: \"0x0000000000000000000000000000000000000000\",\n    airAccountExtension: \"0x0000000000000000000000000000000000000000\",\n    agentRegistry: \"0x0000000000000000000000000000000000000000\",\n    // SP v5.4 PolicyRegistry (DVT layer-1) — not yet deployed on this chain.\n    policyRegistry: \"0x0000000000000000000000000000000000000000\",\n    // SP v5.4 x402 settlement facilitator — not yet deployed on this chain.\n    x402Facilitator: \"0x0000000000000000000000000000000000000000\",\n    // SP v5.4 governance TimelockController — not yet deployed on this chain.\n    timelockController: \"0x0000000000000000000000000000000000000000\",\n    // Mycelium community PNTs token — Sepolia-only testbed; zero on mainnets.\n    // Kept here so the inferred CanonicalAddresses union has `pnts` on every\n    // chain (consumers see Address, not Address|undefined per-chain).\n    pnts: \"0x0000000000000000000000000000000000000000\",\n  },\n\n  // --- Sepolia (Chain ID: 11155111) ---\n  // Source of truth: SuperPaymaster repo `deployments/config.sepolia.json`\n  //                  AirAccount repo docs/e2e/E2E_TESTDATA_v0.18.0-beta.2.md\n  // Latest sync: 2026-06-28 — AirAccount contracts v0.20.3 (gasless self-call patch: onlyOwnerOrSelf\n  //   on setTierLimits/modifyTierLimitsWithGuardians/setWeightConfig/modifyTierLimitsWithMixedGuardians\n  //   so tier/weight config can be submitted as SuperPaymaster-sponsored UserOps — #140. Modifier-only\n  //   change → ZERO ABI delta vs v0.20.2; but ACCOUNT_VERSION/FACTORY_VERSION bump redeployed impl+\n  //   extension+factory+agentRegistry to fresh addrs). SuperPaymaster v5.4.1-rc.1 (FULL Sepolia redeploy,\n  //   deployments/config.sepolia.json 2026-06-27; two-step slash guard + BLS_AGGREGATOR wiring).\n  //   SP proxy 0x09DF... (impl 0x027481...), Registry 0xf5Bf... ; v5.4.1 keys: x402Facilitator\n  //   0xfe1DB0..., policyRegistry 0x29253b..., timelockController 0x86C86c...\n  //   AirAccount v0.20.3 (on-chain verified): impl 0x91Ee5a7 (ACCOUNT_VERSION 0.20.3), extension 0xC3F4Ff,\n  //   factory 0x78775786 (FACTORY_VERSION 0.20.2, implementation()→0x91Ee5a7), agentRegistry 0x33B3287.\n  //   NOTE: #60 syncs the v0.18 read-layer + addresses ONLY; v0.18 runtime-signing\n  //   behavioral changes (BLS packer / #45 hash_to_curve binding) are a separate follow-up.\n  //   NOTE: official community PaymasterV4s below — `aPNTsPaymasterV4` (AAStar → aPNTs) and\n  //   `PNTsPaymasterV4` (Mycelium/Anni → pnts), auto-deployed by SuperPaymaster prepare-test and\n  //   synced via config.sepolia.json. `paymasterV4` = the AAStar one (= aPNTsPaymasterV4).\n  //   All verified on-chain (PaymasterFactory.getPaymasterList + isTokenSupported + owner).\n  11155111: {\n    registry: \"0xf5Bf37ca83AfdAab73691bA7eCcDfA69b8708E71\",\n    gToken: \"0x4c09aE57503Aa1E2A43b05621A38DbdD43b0Aa08\",\n    staking: \"0x472297B557c1d0F030f281a5Bb8A535f6c5AB65e\",\n    sbt: \"0x4867B4302bf4C7818b71F55E53A3520Ee1855Aa7\",\n    reputationSystem: \"0x4Ec2D49D75D5D4206B64387A7d6a6C3c5c90fB5A\",\n    superPaymaster: \"0x09DF0d2e3722EC0e401fE3819E64278a42ae4DE9\",  // proxy unchanged (UUPS-upgraded to v5.4.2 impl 0xe25f88db, 2026-07-08 CC-13 double-slash fix; was v5.4.1-rc.1 impl 0x0274811E)\n    paymasterFactory: \"0xA936F8e3d682B0eCf280E6f5c05fF4204ee87180\",\n    paymasterV4: \"0xf3948753ff21D33f6A5f516621FFF245B23efa0e\",  // = aPNTsPaymasterV4 (AAStar)\n    paymasterV4Impl: \"0xc0F968625E3Ac0A2ad7f107cD5857425F672D268\",\n    // Official community PaymasterV4 instances (verified on-chain). AAStar's is an ERC-1167 clone of\n    // paymasterV4Impl above (version PMV4-Deposit-4.5.0), owner = SuperPaymaster owner 0xb5600060….\n    aPNTsPaymasterV4: \"0xf3948753ff21D33f6A5f516621FFF245B23efa0e\",  // AAStar community → aPNTs (0x696A7370)\n    PNTsPaymasterV4: \"0xC827747674ab6397c319e284f650D07d8c2a4a46\",   // Mycelium (Anni) → pnts; on-chain verified 2026-06-28 (version PMV4-Deposit-4.5.0, isTokenSupported(pnts)==true, owner 0xEcAACb91…)\n    xPNTsFactory: \"0x67422d2e44a33c8dA99b3b776841bF316bD209a2\",  // v5.4.1-rc.1 2026-06-27 redeploy\n    // #285/CC-18 (SuperPaymaster #329 slash-consensus unify): switched to the NEW BLSAggregator/DVTValidator\n    // deployment. SP executed `applyBLSAggregator()` (tx 0x691db4175bcce842beb1e93481573b4e843ea3e4d86793a2f07230cc611bfd26,\n    // block 11216728); SP.BLS_AGGREGATOR now == 0xF51c…8B13 (pendingBLSAgg cleared), so SP recognises the new\n    // aggregator on-chain. DVTValidator 0x568b1486… has addValidator×3 + registerBLSPublicKey×3 (slot 1/2/3).\n    //   OLD (deprecated): blsAggregator 0x893b8fb7B3d203C288b481400fE05Ade5edD6d11 · dvtValidator 0x9946953af7aAA8F56e8dF4E46F68FFFA0c4F593D\n    blsAggregator: \"0xF51c029879685Ced8fbCfa4b647c2eAe50Cd8B13\",  // NEW/active — SP applied (#285/CC-18)\n    blsValidator: \"0x0A71C5a32b8CBC517523D2C88b539Ab22AeF0654\",  // deprecated; aggregator verifies BLS inline\n    dvtValidator: \"0x568b1486BFE036e603eA11f0D03Dc47fa62c9E0e\",  // NEW/active — SP applied (#285/CC-18)\n    entryPoint: \"0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\n    aPNTs: \"0x696A73701b104c6cCBbAadDD2216788ea08EaB89\",  // AAStar aPNTs (v5.4.1-rc.1 redeploy)\n    priceFeed: \"0x694AA1769357215DE4FAC081bf1f309aDC325306\",  // Sepolia Chainlink ETH/USD\n    simpleAccountFactory: \"0x91E60e0613810449d098b0b5Ec8b51A0FE8c8985\",\n    microPaymentChannel: \"0x37578b70B231CC0Eda5991CA633ae99eb35f3818\",  // SP v5.4.1-rc.1 2026-06-27 redeploy\n    agentIdentityRegistry: \"0x8004A818BFB912233c491871b3d84c89A494BD9e\",  // ERC-8004 vanity addr (beta.3)\n    agentReputationRegistry: \"0x8004B663056A597Dffe9eCcC1965A193B7388713\",\n    // ERC-8004 agent validation registry (SP v5.4) — present in SP config.\n    agentValidationRegistry: \"0x8004Cb1BF31DAf7788923b405b754f57acEB4272\",\n    // --- AirAccount stack (Sepolia) — mixed versions ---\n    // NOTE: the account triplet (airAccountFactoryV7 / airAccountV7Impl / airAccountExtension) was\n    // subsequently redeployed to v0.23.0 (see those lines below: #159 isValidOwnerAuth owner-auth view,\n    // FACTORY/ACCOUNT_VERSION 0.23.0 on-chain verified). The BLS/validator/session/recovery contracts in\n    // this block below remain at v0.20.0 (not redeployed since). The v0.20.0 history that follows applies\n    // to those unchanged contracts.\n    // v0.20.0 ships first-class P-256/WebAuthn guardian support (#119) and a diamond-lite\n    // refactor that relocates the cold ECDSA recovery path (propose/approve/execute/cancel)\n    // into AirAccountExtension, reached via the V7 fallback→delegatecall boundary (frees the\n    // main-account runtime from 11 B → 1,258 B under EIP-170). The version bump\n    // (ACCOUNT_VERSION/FACTORY_VERSION → \"0.20.0\") changes bytecode and therefore redeployed\n    // the ENTIRE stack to fresh addresses — all 11 below moved; the v0.19.0-beta.2 addresses\n    // are now stale. The recovery event topic0 (RecoveryProposed/Approved/CancelVoted) also\n    // changed (trailing uint8 guardianIdx). P-256 guardian feature is Batch 2 (SDK stubbed).\n    // Source of truth: AirAccount repo docs/DEPLOYMENT-v0.20.0.md \"Core addresses\"\n    //   (Sepolia 2026-06-20). NOTE: factory ctor is NEW — impl injected as arg 1.\n    // v0.27.0 DVT-unification (CC-10 Phase 1 / #274): the algId-0x01 verifier is now the unified DVT\n    // validator (router.getAlgorithm(0x01)==0x539B, on-chain verified). It enforces strictly-ascending\n    // nodeIds (SDK sorts them — #274) and operator registration via registerWithProof (nodeId=keccak256(pubkey)).\n    aaStarBLSAlgorithm: \"0x1A8Db639b5d8Bd5742edB083656EDD56f416cd64\",  // v0.31.0 algId 0x01 = the CC-98 COMMITTEE validator (dvt #237), NOT the legacy whole-set 0x539B. committeeActive()==true since 2026-08-18 (dvt set epochLength=64 + snapshotEpoch, requiredQuorum=2) → it decodes COMMITTEE framing; encode with committeeSigners, never bare nodeIds. Read committeeActive() rather than trusting this note.\n    aaStarValidator: \"0xA15127e8601e77De7C655bf04ca75cccD8C968f0\",  // v0.31.0 ValidatorRouter. getAlgorithm(0x01)=committee validator 0x1A8Db639, (0x08)=0x6b04 — both on-chain verified.\n    aaStarBLSAggregator: \"0x35775df9a4f4dB42Ea0C46118a12dDd0cEc70609\",  // v0.20.0 (SP-side aggregator; unchanged by DVT-unification)\n    sessionKeyValidator: \"0x6b044fB27B4763Fd30D02e41EDF2c62af4Aa946f\",  // v0.24.0 (algId 0x08; NEW — security fix d #164 block self-call escalation)\n    forceExitModule: \"0x3fDe77868b74a7979A40a2293a1CD265fbe66EEc\",  // v0.20.0\n    airAccountDelegate: \"0xd2735E54C5f5f2BF523b8a9ddd0E183624c3f2c0\",  // v0.20.0\n    calldataParserRegistry: \"0x7dEea4544446826601014bD94d0F6432A67496F5\",  // v0.20.0\n    airAccountFactoryV7: \"0x25C1E9F9120a406581f93bA82f7Cfd6805512791\",  // v0.31.0 (FACTORY_VERSION 0.31.0 on-chain verified; CC-48 -> b72c8868). #161 InitConfig carries tier1Limit/tier2Limit.\n    airAccountV7Impl: \"0x4873b7C1c07BE1b52d6583A64F5E902e593BDdad\",  // v0.31.0 (ACCOUNT_VERSION 0.31.0; factory.implementation() matches — on-chain verified)\n    airAccountExtension: \"0x79b90Ed6CB97ec48cfDA86399752C58Bbc59D90a\",  // v0.31.0 (isValidOwnerAuth host; selector/magic 0xa0cf00cf unchanged since v0.23.0)\n    agentRegistry: \"0x37fc74EaeC81fEdD92876c8713405118Ebc0306e\",  // v0.31.0\n    // SP v5.4 PolicyRegistry (DVT layer-1), deployed on Sepolia.\n    // Source of truth: SuperPaymaster repo deployments/config.sepolia.json (v5.4.0-beta.1).\n    policyRegistry: \"0x29253bF61310B63866dfb9E9f464B6d95E09f2C1\",\n    // SP v5.4 x402 settlement facilitator (verify/settle EIP-3009 + direct xPNTs).\n    x402Facilitator: \"0xfe1DB01e1d6622e722B92ed5993af61325DB92aF\",\n    // SP v5.4 governance TimelockController (2-day minDelay; gates PolicyRegistry loosen/unfreeze).\n    timelockController: \"0x86C86c789EDc099801cc6a5F48334F1D67dC9564\",\n    // Base PNTs token — authoritative value from the SuperPaymaster Sepolia\n    // deployment (deployments/config.sepolia.json) and config.sepolia.json here.\n    // Was 0x6A230Fa25b9Ec12eeF8eeb8d2FbE32CF29c6edC6 (\"Anni's xPNTsToken\"), which\n    // drifted from the live deployment; realigned per \"Sepolia deployment is the\n    // source of truth\". A community-specific xPNTs belongs under its own key, not\n    // the canonical base `pnts`.\n    pnts: \"0xE6579A90dc498a710008de12119812D0FB7aA224\",\n  },\n\n  // --- OP Sepolia (Chain ID: 11155420) ---\n  11155420: {\n    registry: \"0xcf6860Ab57de8669756997e414D9c52B6e301972\",\n    gToken: \"0xC341c88453372021d0221834307613c2e99fE718\",\n    staking: \"0x5f57B931C849e8E255F22755506eB2255aB22a7C\",\n    sbt: \"0x2c3Ca1553dC1B8870381E8E56C7b3e3A3ae162f0\",\n    reputationSystem: \"0x891EC0f84D9275839B8dAf74e87B23F2DBd7f9c9\",\n    superPaymaster: \"0x9eC1FE8134A1C05aD34ba2E4e8758dAe0a009B94\",\n    paymasterFactory: \"0x1e3b9d12eAc27867a523d0537902441B0E7D98d8\",\n    paymasterV4: \"0xf250416C940605a1D423ccd059668219cf7D80ea\",\n    paymasterV4Impl: \"0x906123080207F250B1C9F299991512Cb31f35b2f\",\n    // Official community PaymasterV4 instances — not yet confirmed/deployed on this chain.\n    aPNTsPaymasterV4: \"0x0000000000000000000000000000000000000000\",\n    PNTsPaymasterV4: \"0x0000000000000000000000000000000000000000\",\n    xPNTsFactory: \"0x7792a49C9E91e0E9B631B27D885d15e971B7482A\",\n    blsAggregator: \"0x6e06b17b1a4D2D973F7E3e026e24b4393315736c\",\n    blsValidator: \"0x260fa905CcE1f5b29Afe9d627c01fAAE4A66A7F5\",\n    dvtValidator: \"0x0087cA806109E150438116cAA414580BB5fa9195\",\n    entryPoint: \"0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\n    aPNTs: \"0x3BBcA92Ad828b3dD619c980Ba09f929b9d2BC440\",\n    priceFeed: \"0x61Ec26aA57019C486B10502285c5A3D4A4750AD7\",\n    simpleAccountFactory: \"0x91E6060613810449d098b0b5EC8b51A0fe8C8985\",\n    microPaymentChannel: \"0x0000000000000000000000000000000000000000\",\n    agentIdentityRegistry: \"0x0000000000000000000000000000000000000000\",\n    agentReputationRegistry: \"0x0000000000000000000000000000000000000000\",\n    // ERC-8004 agent validation registry (SP v5.4) — not yet deployed on this chain.\n    agentValidationRegistry: \"0x0000000000000000000000000000000000000000\",\n    // --- AirAccount v0.17.2-beta.2 stack (not yet deployed on this chain) ---\n    aaStarBLSAlgorithm: \"0x0000000000000000000000000000000000000000\",\n    aaStarValidator: \"0x0000000000000000000000000000000000000000\",\n    aaStarBLSAggregator: \"0x0000000000000000000000000000000000000000\",\n    sessionKeyValidator: \"0x0000000000000000000000000000000000000000\",\n    forceExitModule: \"0x0000000000000000000000000000000000000000\",\n    airAccountDelegate: \"0x0000000000000000000000000000000000000000\",\n    calldataParserRegistry: \"0x0000000000000000000000000000000000000000\",\n    airAccountFactoryV7: \"0x0000000000000000000000000000000000000000\",\n    airAccountV7Impl: \"0x0000000000000000000000000000000000000000\",\n    airAccountExtension: \"0x0000000000000000000000000000000000000000\",\n    agentRegistry: \"0x0000000000000000000000000000000000000000\",\n    // SP v5.4 PolicyRegistry (DVT layer-1) — not yet deployed on this chain.\n    policyRegistry: \"0x0000000000000000000000000000000000000000\",\n    // SP v5.4 x402 settlement facilitator — not yet deployed on this chain.\n    x402Facilitator: \"0x0000000000000000000000000000000000000000\",\n    // SP v5.4 governance TimelockController — not yet deployed on this chain.\n    timelockController: \"0x0000000000000000000000000000000000000000\",\n    // Mycelium community PNTs token — Sepolia-only testbed; zero on mainnets.\n    pnts: \"0x0000000000000000000000000000000000000000\",\n  }\n} as const;\n\nexport type CanonicalAddresses = (typeof CANONICAL_ADDRESSES)[keyof typeof CANONICAL_ADDRESSES];\nexport type SupportedChainId = keyof typeof CANONICAL_ADDRESSES;\n\n/**\n * Mycelium community governance Safe (CC-31) — the canonical production owner-target for\n * on-chain governance across the ecosystem. Deployed at the SAME address on all three chains:\n * OP Mainnet (10), Ethereum (1), and Sepolia (11155111).\n *\n * Use it as the default `newOwner`/owner-target for SDK governance write helpers\n * (`@aastar/admin` `transferOwnership`, `SlashGovernance` Timelock orchestration) and deploy\n * scripts, and as the single source consumers (e.g. YAAA) read instead of hard-coding the\n * address — same pattern as `DVT_VALIDATOR_ADDRESS`.\n *\n * NOTE: the SDK owns/deploys no on-chain contracts, so it never transfers ownership itself.\n * Actually pointing each contract's owner/admin at this Safe is a mainnet deploy action taken\n * by the individual contract repos (SuperPaymaster / airaccount-contract / DVT); this constant\n * only provides the canonical target + default. Testnet may use a test EOA/Safe; production\n * governance must converge here.\n */\nexport const COMMUNITY_SAFE = '0x51eDf11fDb0A4F66220eFb8efA54Eca77232E114' as const;\n\n/**\n * MushroomDAO launch token-sale stack (aPoints + governance-token sale), keyed by chainId.\n *\n * Kept as a SEPARATE table from {@link CANONICAL_ADDRESSES} on purpose: these are the launch\n * app's own contracts (`MushroomDAO/launch`), not the core SuperPaymaster protocol set, so they\n * stay out of the constants/contract-addresses/drift-check pipeline.\n *\n * De-dup rule: this table stores ONLY the launch-specific contracts (the two sale contracts +\n * BuyHelper) plus the accepted payment stablecoins. It deliberately does NOT store the GToken /\n * aPNTs *payout* token addresses — `TokenSaleClient` reads those on-chain from the sale contract's\n * `gToken()` / `aPNTs()` immutable getters, so there is never a second copy of a token address to\n * drift. (Background: multiple GToken deployments have existed — core canonical `0x20a051…`, an\n * earlier launch test GToken `0x4e6A11…`, and the launch DEPLOYED.md \"SuperPaymaster\" `0xa592ec…`.\n * The earlier Sepolia sale was constructor-bound to the test token; the Path-A redeploy\n * (2026-06-21, below) rebound it to the core-canonical GToken/aPNTs, so `getPayoutToken()` now\n * resolves on-chain to `0x20a051…` / `0x9e66B…`.)\n */\nexport interface LaunchSaleAddresses {\n  /** SaleContractV2 — sells the constructor-bound GToken (governance token). */\n  saleGToken: Address;\n  /** APNTsSaleContract — sells the constructor-bound aPNTs (aPoints). */\n  saleAPNTs: Address;\n  /** BuyHelper — gasless entrypoint (EIP-3009 transferWithAuthorization + EIP-712 BuyIntent). */\n  buyHelper: Address;\n  /** Accepted payment stablecoin: USDC (6-decimal). Also the EIP-3009 token for gasless. */\n  usdc: Address;\n  /** Accepted payment stablecoin: USDT (6-decimal). Self-pay only. */\n  usdt: Address;\n  /**\n   * Legacy single relayer base URL (Cloudflare Worker) — kept as the FINAL fallback. The SDK\n   * appends `/v3/relay`. The primary gasless-relay pool now lives in the single-source DVT config\n   * (`getDvtRelayerUrlsForChain`, AirAccount #98 / aastar-sdk #148/#153); `TokenSaleClient`\n   * load-balances across it and only falls back here.\n   */\n  relayerUrl: string;\n}\n\nexport const LAUNCH_SALE_ADDRESSES: Record<number, LaunchSaleAddresses> = {\n  // --- Sepolia (Chain ID: 11155111) ---\n  // Path-A reconciliation (2026-06-21): the sale stack was REDEPLOYED bound to the\n  // core-canonical SuperPaymaster GToken (0x20a051…) / aPNTs (0x9e66B…) and the\n  // inventory funded from the deployer, replacing the earlier test-token-bound\n  // deployment. `getPayoutToken()` now resolves on-chain to the canonical tokens.\n  11155111: {\n    saleGToken: \"0xA563fA13E2353aE7D65FCE37F4801288CD11FC3e\", // SaleContractV2 → canonical GToken (audit-fix redeploy, #165 / launch#26#27)\n    saleAPNTs: \"0x9cF028D17b40E5249Ce119a2E642A6eC91a285D0\", // APNTsSaleContract → canonical aPNTs\n    buyHelper: \"0x8d08fBD8297355BC93397820AE1CfFD884BEaA00\", // BuyHelper (receiveWithAuthorization; BuyIntent domain verifyingContract; capExempt)\n    usdc: \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n    usdt: \"0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0\", // Aave Sepolia USDT (6-dec)\n    // Gasless-relay pool now sourced from DVT_CONFIG (getDvtRelayerUrlsForChain) — single source of\n    // truth. This Cloudflare Worker is only the FINAL fallback.\n    relayerUrl: \"https://mycelium-relayer.jhfnetboy.workers.dev\",\n  },\n  // --- op-mainnet / ethereum-mainnet: reserved for the path-A reconciliation deploy ---\n  // When launch deploys to mainnet, redeploy the sale stack bound to the core-canonical\n  // SuperPaymaster GToken/aPNTs, then fill the new sale + BuyHelper addresses here.\n};\n\n/** Resolve the launch token-sale address group for a chain, or `undefined` if none. */\nexport function getLaunchSaleAddresses(chainId: number): LaunchSaleAddresses | undefined {\n  return LAUNCH_SALE_ADDRESSES[chainId];\n}\n\n\n/**\n * Chain IDs that have a canonical address book in {@link CANONICAL_ADDRESSES}.\n *\n * @example\n * ```ts\n * listSupportedChainIds(); // [10, 11155111, 11155420]\n * ```\n */\nexport function listSupportedChainIds(): number[] {\n  return Object.keys(CANONICAL_ADDRESSES).map(Number);\n}\n\n/** True if {@link CANONICAL_ADDRESSES} has an entry for `chainId`. */\nexport function isSupportedChainId(chainId: number): chainId is SupportedChainId {\n  return Object.prototype.hasOwnProperty.call(CANONICAL_ADDRESSES, chainId);\n}\n\n/**\n * Resolve the canonical contract address book for a chain, keyed by `chainId`,\n * normalized to the key names the role-based client factories expect.\n *\n * The canonical table uses `staking` / `sbt`; the historical client factories\n * (and many consumers) reference `gTokenStaking` / `mySBT`. This helper returns\n * the canonical set plus those aliases so a single object satisfies both, which\n * is what makes `createEndUserClient({ chain })` resolve addresses automatically\n * — no manual `addresses` needed for any supported chain.\n *\n * @param chainId - EVM chain id (e.g. 10 = Optimism, 11155111 = Sepolia).\n * @returns The normalized address record, or `undefined` if the chain has no\n *          canonical entry (caller must then pass `addresses` explicitly).\n *\n * @example\n * ```ts\n * import { optimism } from 'viem/chains';\n * const addrs = getCanonicalAddresses(optimism.id); // chainId 10\n * addrs?.registry; addrs?.mySBT; // alias of `sbt`\n * ```\n */\nexport function getCanonicalAddresses(\n  chainId: number,\n): (CanonicalAddresses & { gTokenStaking: Address; mySBT: Address }) | undefined {\n  if (!isSupportedChainId(chainId)) return undefined;\n  const a = CANONICAL_ADDRESSES[chainId];\n  return {\n    ...a,\n    // Aliases bridging the canonical table's key names to the client factories'.\n    gTokenStaking: a.staking as Address,\n    mySBT: a.sbt as Address,\n  };\n}\n\n// Human labels for the supported chains, taken verbatim from viem/chains (`.name`)\n// so the SDK stays in lockstep with viem and never invents its own chain identity.\nconst SUPPORTED_CHAIN_LABELS: Record<number, string> = {\n  [optimism.id]: optimism.name,\n  [sepolia.id]: sepolia.name,\n  [optimismSepolia.id]: optimismSepolia.name,\n};\n\n/**\n * A friendly, human-readable list of the supported chains for error messages —\n * e.g. `\"OP Mainnet (10), Sepolia (11155111), OP Sepolia (11155420)\"`. Names come\n * from viem/chains so callers recognize them by the same label viem uses.\n */\nexport function describeSupportedChains(): string {\n  return listSupportedChainIds()\n    .map((id) => `${SUPPORTED_CHAIN_LABELS[id] ?? `chainId ${id}`} (${id})`)\n    .join(', ');\n}\n","import { CANONICAL_ADDRESSES } from './addresses.js';\n\n// Browser-safe network detection\nconst network = (typeof process !== 'undefined' && process.env && process.env.NETWORK) || 'anvil';\nlet internalConfig: any = {};\n\n// 2. Identify Chain ID and resolve canonical defaults\nlet chainIdStr = (typeof process !== 'undefined' && process.env && process.env.CHAIN_ID) || internalConfig.chainId;\nlet chainId = chainIdStr ? Number(chainIdStr) : (network === 'optimism' ? 10 : (network === 'mainnet' ? 1 : (network === 'sepolia' ? 11155111 : (network === 'op-sepolia' ? 11155420 : 0))));\nlet defaults = (CANONICAL_ADDRESSES as any)[chainId] || {};\n\n/**\n * Helper to resolve address\n */\nfunction resolveAddr(envKey: string, configKey: string): `0x${string}` {\n    const envVal = (typeof process !== 'undefined' && process.env) ? process.env[envKey] : undefined;\n    return (envVal || internalConfig[configKey] || defaults[configKey]) as `0x${string}`;\n}\n\nfunction resolveVal(envKey: string, configKey: string) {\n    const envVal = (typeof process !== 'undefined' && process.env) ? process.env[envKey] : undefined;\n    return envVal || internalConfig[configKey] || defaults[configKey];\n}\n\n/**\n * Contract Addresses (Priority: ENV > Local Config > Canonical Defaults)\n */\nexport let CONTRACT_SRC_HASH = resolveVal('SRC_HASH', 'srcHash');\nexport let REGISTRY_ADDRESS = resolveAddr('REGISTRY', 'registry');\nexport let GTOKEN_ADDRESS = resolveAddr('GTOKEN', 'gToken');\nexport let GTOKEN_STAKING_ADDRESS = resolveAddr('STAKING', 'staking');\nexport let SBT_ADDRESS = resolveAddr('SBT', 'sbt');\nexport let REPUTATION_SYSTEM_ADDRESS = resolveAddr('REPUTATION_SYSTEM', 'reputationSystem');\nexport let SUPER_PAYMASTER_ADDRESS = resolveAddr('SUPER_PAYMASTER', 'superPaymaster');\nexport let PAYMASTER_FACTORY_ADDRESS = resolveAddr('PAYMASTER_FACTORY', 'paymasterFactory');\nexport let PAYMASTER_V4_ADDRESS = resolveAddr('PAYMASTER_V4', 'paymasterV4');\nexport let PAYMASTER_V4_IMPL_ADDRESS = resolveAddr('PAYMASTER_V4_IMPL', 'paymasterV4Impl');\nexport let XPNTS_FACTORY_ADDRESS = resolveAddr('XPNTS_FACTORY', 'xPNTsFactory');\nexport let BLS_AGGREGATOR_ADDRESS = resolveAddr('BLS_AGGREGATOR', 'blsAggregator');\nexport let BLS_VALIDATOR_ADDRESS = resolveAddr('BLS_VALIDATOR', 'blsValidator');\nexport let DVT_VALIDATOR_ADDRESS = resolveAddr('DVT_VALIDATOR', 'dvtValidator');\nexport let ENTRY_POINT_ADDRESS = resolveAddr('ENTRY_POINT', 'entryPoint');\nexport let APNTS_ADDRESS = resolveAddr('APNTS', 'aPNTs');\nexport let MICRO_PAYMENT_CHANNEL_ADDRESS = resolveAddr('MICRO_PAYMENT_CHANNEL', 'microPaymentChannel');\nexport let AGENT_IDENTITY_REGISTRY_ADDRESS = resolveAddr('AGENT_IDENTITY_REGISTRY', 'agentIdentityRegistry');\nexport let AGENT_REPUTATION_REGISTRY_ADDRESS = resolveAddr('AGENT_REPUTATION_REGISTRY', 'agentReputationRegistry');\n\n/**\n * Apply external configuration (for Node.js environment)\n */\nexport function applyConfig(newConfig: any) {\n    internalConfig = newConfig;\n    \n    // Re-calculate derived values\n    const envChainId = (typeof process !== 'undefined' && process.env) ? process.env.CHAIN_ID : undefined;\n    chainIdStr = envChainId || internalConfig.chainId;\n    chainId = chainIdStr ? Number(chainIdStr) : (network === 'optimism' ? 10 : (network === 'mainnet' ? 1 : (network === 'sepolia' ? 11155111 : (network === 'op-sepolia' ? 11155420 : 0))));\n    defaults = (CANONICAL_ADDRESSES as any)[chainId] || {};\n\n    // Re-assign exports\n    CONTRACT_SRC_HASH = resolveVal('SRC_HASH', 'srcHash');\n    REGISTRY_ADDRESS = resolveAddr('REGISTRY', 'registry');\n    GTOKEN_ADDRESS = resolveAddr('GTOKEN', 'gToken');\n    GTOKEN_STAKING_ADDRESS = resolveAddr('STAKING', 'staking');\n    SBT_ADDRESS = resolveAddr('SBT', 'sbt');\n    REPUTATION_SYSTEM_ADDRESS = resolveAddr('REPUTATION_SYSTEM', 'reputationSystem');\n    SUPER_PAYMASTER_ADDRESS = resolveAddr('SUPER_PAYMASTER', 'superPaymaster');\n    PAYMASTER_FACTORY_ADDRESS = resolveAddr('PAYMASTER_FACTORY', 'paymasterFactory');\n    PAYMASTER_V4_ADDRESS = resolveAddr('PAYMASTER_V4', 'paymasterV4');\n    PAYMASTER_V4_IMPL_ADDRESS = resolveAddr('PAYMASTER_V4_IMPL', 'paymasterV4Impl');\n    XPNTS_FACTORY_ADDRESS = resolveAddr('XPNTS_FACTORY', 'xPNTsFactory');\n    BLS_AGGREGATOR_ADDRESS = resolveAddr('BLS_AGGREGATOR', 'blsAggregator');\n    BLS_VALIDATOR_ADDRESS = resolveAddr('BLS_VALIDATOR', 'blsValidator');\n    DVT_VALIDATOR_ADDRESS = resolveAddr('DVT_VALIDATOR', 'dvtValidator');\n    ENTRY_POINT_ADDRESS = resolveAddr('ENTRY_POINT', 'entryPoint');\n    APNTS_ADDRESS = resolveAddr('APNTS', 'aPNTs');\n    MICRO_PAYMENT_CHANNEL_ADDRESS = resolveAddr('MICRO_PAYMENT_CHANNEL', 'microPaymentChannel');\n    AGENT_IDENTITY_REGISTRY_ADDRESS = resolveAddr('AGENT_IDENTITY_REGISTRY', 'agentIdentityRegistry');\n    AGENT_REPUTATION_REGISTRY_ADDRESS = resolveAddr('AGENT_REPUTATION_REGISTRY', 'agentReputationRegistry');\n}\n\n/**\n * Common Constants\n */\nexport const FAUCET_API_URL = \"https://faucet-aastar.vercel.app\";\nexport const SERVICE_FEE_RATE = 200;\nexport const MAX_SERVICE_FEE = 1000;\nexport const BPS_DENOMINATOR = 10000;\nexport const DEFAULT_GAS_TOKEN_MINT_AMOUNT = \"100\";\nexport const DEFAULT_USDT_MINT_AMOUNT = \"10\";\nexport const TEST_ACCOUNT_POOL_SIZE = 20;\n\nexport const NODE_STAKE_AMOUNTS = {\n  LITE: 30,\n  STANDARD: 100,\n  SUPER: 300,\n  ENTERPRISE: 1000,\n} as const;\n\nexport const DEFAULT_APNTS_PRICE_USD = \"0.02\";\nexport const CHAIN_SEPOLIA = 11155111;\nexport const CHAIN_MAINNET = 1;\nexport const DEFAULT_TOKEN_SYMBOL = 'GT';\nexport const DEFAULT_TOKEN_NAME = 'Governance Token';\nexport const DEFAULT_VERIFICATION_GAS_LIMIT = 200000n;\nexport const DEFAULT_CALL_GAS_LIMIT = 100000n;\nexport const DEFAULT_PRE_VERIFICATION_GAS = 50000n;\nexport const DEFAULT_TIMEOUT_MS = 30000;\n","/**\n * Contract Addresses - Single Source of Truth\n * All contract addresses for Sepolia testnet\n *\n * This file serves as the single source of truth for all contract addresses.\n * All other files reference these constants to avoid duplication.\n */\n\nimport { type Address } from 'viem';\nimport {\n  REGISTRY_ADDRESS,\n  GTOKEN_ADDRESS,\n  GTOKEN_STAKING_ADDRESS,\n  SUPER_PAYMASTER_ADDRESS,\n  PAYMASTER_FACTORY_ADDRESS,\n  PAYMASTER_V4_ADDRESS,\n  PAYMASTER_V4_IMPL_ADDRESS,\n  APNTS_ADDRESS,\n  SBT_ADDRESS,\n  DVT_VALIDATOR_ADDRESS,\n  ENTRY_POINT_ADDRESS,\n  XPNTS_FACTORY_ADDRESS,\n  BLS_AGGREGATOR_ADDRESS,\n  MICRO_PAYMENT_CHANNEL_ADDRESS,\n  AGENT_IDENTITY_REGISTRY_ADDRESS,\n  AGENT_REPUTATION_REGISTRY_ADDRESS,\n} from './constants.js';\n\n/**\n * Core System Addresses\n */\nexport const CORE_ADDRESSES = {\n  registry: REGISTRY_ADDRESS,\n  gToken: GTOKEN_ADDRESS,\n  gTokenStaking: GTOKEN_STAKING_ADDRESS,\n  superPaymaster: SUPER_PAYMASTER_ADDRESS,\n  paymasterFactory: PAYMASTER_FACTORY_ADDRESS,\n  aPNTs: APNTS_ADDRESS,\n  mySBT: SBT_ADDRESS,\n  paymasterV4: (process.env.PAYMASTER_V4_PROXY || PAYMASTER_V4_ADDRESS || PAYMASTER_V4_IMPL_ADDRESS) as Address,\n  dvtValidator: DVT_VALIDATOR_ADDRESS,\n  entryPoint: ENTRY_POINT_ADDRESS,\n  xPNTsFactory: XPNTS_FACTORY_ADDRESS,\n  microPaymentChannel: MICRO_PAYMENT_CHANNEL_ADDRESS,\n  agentIdentityRegistry: AGENT_IDENTITY_REGISTRY_ADDRESS,\n  agentReputationRegistry: AGENT_REPUTATION_REGISTRY_ADDRESS,\n} as const;\n\n/**\n * Token System Addresses\n */\nexport const TOKEN_ADDRESSES = {\n  xPNTsFactory: XPNTS_FACTORY_ADDRESS,\n} as const;\n\n/**\n * Test Token Addresses (For Development & Testing)\n */\nexport const TEST_TOKEN_ADDRESSES = {\n  mockUSDT: process.env.TEST_MOCK_USDT as Address,\n  aPNTs: process.env.TEST_APNTS as Address,\n  bPNTs: process.env.TEST_BPNTS as Address,\n} as const;\n\n/**\n * Test Account Addresses (For Development & Testing)\n */\nexport const TEST_ACCOUNT_ADDRESSES = {\n  // Official EntryPoint 0.6 Factory for Sepolia\n  simpleAccountFactory: (process.env.SIMPLE_ACCOUNT_FACTORY || '0x9406Cc6185a346906296840746125a0E44976454') as Address,\n} as const;\n\n/**\n * Paymaster Addresses\n */\nexport const PAYMASTER_ADDRESSES = {\n  paymasterV4_1: process.env.PAYMASTER_V4_ADDRESS as Address,\n  paymasterV4_1iImplementation: PAYMASTER_V4_IMPL_ADDRESS,\n} as const;\n\n/**\n * Monitoring System Addresses\n */\nexport const MONITORING_ADDRESSES = {\n  dvtValidator: DVT_VALIDATOR_ADDRESS,\n  blsAggregator: BLS_AGGREGATOR_ADDRESS,\n} as const;\n\n/**\n * Official Contract Addresses\n */\nexport const OFFICIAL_ADDRESSES = {\n  entryPoint: (ENTRY_POINT_ADDRESS || '0x0000000071727De22E5E9d8BAf0edAc6f37da032') as Address,\n} as const;\n\n/**\n * Community Owner Addresses\n */\nexport const COMMUNITY_OWNERS = {\n  aastarOwner: '0x411BD567E46C0781248dbB6a9211891C032885e5', // Deployer 1\n  breadCommunityOwner: '0xe24b6f321B0140716a2b671ed0D983bb64E7DaFA', // OWNER2\n} as const;\n\n/**\n * Test Community Addresses (Registered in Registry v2.2.0 on 2025-11-08)\n */\nexport const TEST_COMMUNITIES = {\n  aastar: process.env.TEST_COMMUNITY_AASTAR as Address,\n  bread: process.env.TEST_COMMUNITY_BREAD as Address,\n  mycelium: process.env.TEST_COMMUNITY_MYCELIUM as Address,\n} as const;\n\n/**\n * All Addresses Combined (for reference)\n */\nexport const ALL_ADDRESSES = {\n  ...CORE_ADDRESSES,\n  ...TOKEN_ADDRESSES,\n  ...TEST_TOKEN_ADDRESSES,\n  ...TEST_ACCOUNT_ADDRESSES,\n  ...PAYMASTER_ADDRESSES,\n  ...MONITORING_ADDRESSES,\n  ...OFFICIAL_ADDRESSES,\n} as const;\n"]}