@zkp2p/sdk 0.0.8 → 0.0.10

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 (41) hide show
  1. package/README.md +42 -37
  2. package/dist/{Zkp2pClient-w5Pzlea6.d.mts → Zkp2pClient-tpqzO2dc.d.mts} +4 -0
  3. package/dist/{Zkp2pClient-w5Pzlea6.d.ts → Zkp2pClient-tpqzO2dc.d.ts} +4 -0
  4. package/dist/{chunk-NRU6Z6WS.mjs → chunk-34DVWMT5.mjs} +4 -4
  5. package/dist/{chunk-NRU6Z6WS.mjs.map → chunk-34DVWMT5.mjs.map} +1 -1
  6. package/dist/chunk-37HJPVJE.mjs +11 -0
  7. package/dist/chunk-37HJPVJE.mjs.map +1 -0
  8. package/dist/{chunk-MWFONYDJ.mjs → chunk-37YHT3UF.mjs} +5 -4
  9. package/dist/chunk-37YHT3UF.mjs.map +1 -0
  10. package/dist/{chunk-LZJL5J5X.mjs → chunk-MDLTLKWK.mjs} +3 -3
  11. package/dist/chunk-MDLTLKWK.mjs.map +1 -0
  12. package/dist/{constants-S277YHME.mjs → constants-BBJQLAU3.mjs} +4 -5
  13. package/dist/{constants-S277YHME.mjs.map → constants-BBJQLAU3.mjs.map} +1 -1
  14. package/dist/currency-P4HY7S34.mjs +4 -0
  15. package/dist/{currency-NTRIKAOH.mjs.map → currency-P4HY7S34.mjs.map} +1 -1
  16. package/dist/index.cjs +49 -2273
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.mts +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.mjs +58 -40
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/paymentResolution-UPQTQCCC.mjs +4 -0
  23. package/dist/{paymentResolution-WNXTUSNH.mjs.map → paymentResolution-UPQTQCCC.mjs.map} +1 -1
  24. package/dist/protocolViewerParsers-MUTCT3IW.mjs +6 -0
  25. package/dist/{protocolViewerParsers-FCIK2ZTT.mjs.map → protocolViewerParsers-MUTCT3IW.mjs.map} +1 -1
  26. package/dist/react.d.mts +1 -1
  27. package/dist/react.d.ts +1 -1
  28. package/dist/react.mjs +1 -1
  29. package/dist/{timeout-7HCFGU6P.mjs → timeout-QB7K5SOB.mjs} +2 -3
  30. package/dist/timeout-QB7K5SOB.mjs.map +1 -0
  31. package/package.json +2 -2
  32. package/dist/chunk-3QS3WKRC.mjs +0 -29
  33. package/dist/chunk-3QS3WKRC.mjs.map +0 -1
  34. package/dist/chunk-J34QNX2H.mjs +0 -196
  35. package/dist/chunk-J34QNX2H.mjs.map +0 -1
  36. package/dist/chunk-LZJL5J5X.mjs.map +0 -1
  37. package/dist/chunk-MWFONYDJ.mjs.map +0 -1
  38. package/dist/currency-NTRIKAOH.mjs +0 -5
  39. package/dist/paymentResolution-WNXTUSNH.mjs +0 -5
  40. package/dist/protocolViewerParsers-FCIK2ZTT.mjs +0 -7
  41. package/dist/timeout-7HCFGU6P.mjs.map +0 -1
package/README.md CHANGED
@@ -9,6 +9,7 @@
9
9
  ## Who Is This For?
10
10
 
11
11
  This SDK is designed for **liquidity providers (peers)** who want to:
12
+
12
13
  - Create and manage USDC deposits that accept fiat payments
13
14
  - Configure payment methods, currencies, and conversion rates
14
15
  - Monitor deposit utilization and manage liquidity
@@ -26,15 +27,15 @@ Advanced historical queries (pagination, filtering, fulfillment records) are ava
26
27
 
27
28
  ## Core Features (Deposit Management)
28
29
 
29
- | Feature | Description |
30
- |---------|-------------|
31
- | **Create Deposits** | Lock USDC and define accepted payment methods |
32
- | **Configure Rates** | Set conversion rates per currency and payment platform |
33
- | **Manage Funds** | Add/remove funds, withdraw deposits |
30
+ | Feature | Description |
31
+ | ------------------- | ---------------------------------------------------------------- |
32
+ | **Create Deposits** | Lock USDC and define accepted payment methods |
33
+ | **Configure Rates** | Set conversion rates per currency and payment platform |
34
+ | **Manage Funds** | Add/remove funds, withdraw deposits |
34
35
  | **Payment Methods** | Wise, Venmo, Revolut, CashApp, PayPal, Zelle, Monzo, MercadoPago |
35
- | **Multi-Currency** | Support USD, EUR, GBP, and 25+ fiat currencies |
36
- | **Query Deposits** | Real-time on-chain queries via ProtocolViewer |
37
- | **React Hooks** | Full suite of React hooks for frontend integration |
36
+ | **Multi-Currency** | Support USD, EUR, GBP, and 25+ fiat currencies |
37
+ | **Query Deposits** | Real-time on-chain queries via ProtocolViewer |
38
+ | **React Hooks** | Full suite of React hooks for frontend integration |
38
39
 
39
40
  ## Supporting Features
40
41
 
@@ -155,11 +156,11 @@ await client.createDeposit({
155
156
  processorNames: ['wise', 'revolut'],
156
157
  depositData: [
157
158
  { email: 'maker@example.com' }, // Wise payment details
158
- { tag: '@maker' }, // Revolut payment details
159
+ { tag: '@maker' }, // Revolut payment details
159
160
  ],
160
161
  conversionRates: [
161
162
  [{ currency: Currency.USD, conversionRate: '1020000000000000000' }], // 1.02 (18 decimals)
162
- [{ currency: Currency.EUR, conversionRate: '950000000000000000' }], // 0.95 (18 decimals)
163
+ [{ currency: Currency.EUR, conversionRate: '950000000000000000' }], // 0.95 (18 decimals)
163
164
  ],
164
165
  onSuccess: ({ hash }) => console.log('Deposit created:', hash),
165
166
  });
@@ -235,14 +236,14 @@ For historical data, pagination, and advanced filtering:
235
236
  // Query with filters and pagination
236
237
  const deposits = await client.indexer.getDeposits(
237
238
  { status: 'ACTIVE', minLiquidity: '1000000', depositor: '0xYourAddress' }, // Note: use 'depositor', not 'owner'
238
- { limit: 50, orderBy: 'remainingDeposits', orderDirection: 'desc' }
239
+ { limit: 50, orderBy: 'remainingDeposits', orderDirection: 'desc' },
239
240
  );
240
241
 
241
242
  // Get deposits with related data
242
243
  const depositsWithRelations = await client.indexer.getDepositsWithRelations(
243
244
  { status: 'ACTIVE' },
244
245
  { limit: 50 },
245
- { includeIntents: true, intentStatuses: ['SIGNALED'] }
246
+ { includeIntents: true, intentStatuses: ['SIGNALED'] },
246
247
  );
247
248
 
248
249
  // Historical fulfillment records
@@ -353,16 +354,16 @@ function DepositManager({ client }) {
353
354
 
354
355
  Supported payment platforms:
355
356
 
356
- | Platform | Key | Currencies |
357
- |-------------|---------------|------------|
357
+ | Platform | Key | Currencies |
358
+ | ----------- | ------------- | ------------------- |
358
359
  | Wise | `wise` | USD, EUR, GBP, etc. |
359
- | Venmo | `venmo` | USD |
360
+ | Venmo | `venmo` | USD |
360
361
  | Revolut | `revolut` | USD, EUR, GBP, etc. |
361
- | CashApp | `cashapp` | USD |
362
- | PayPal | `paypal` | USD, EUR, etc. |
363
- | Zelle | `zelle` | USD |
364
- | Monzo | `monzo` | GBP |
365
- | MercadoPago | `mercadopago` | BRL, ARS, MXN |
362
+ | CashApp | `cashapp` | USD |
363
+ | PayPal | `paypal` | USD, EUR, etc. |
364
+ | Zelle | `zelle` | USD |
365
+ | Monzo | `monzo` | GBP |
366
+ | MercadoPago | `mercadopago` | BRL, ARS, MXN |
366
367
 
367
368
  ```typescript
368
369
  import { getPaymentMethodsCatalog, PLATFORM_METADATA, PAYMENT_PLATFORMS } from '@zkp2p/sdk';
@@ -386,7 +387,7 @@ import {
386
387
  Currency,
387
388
  currencyInfo,
388
389
  getCurrencyInfoFromHash,
389
- resolveFiatCurrencyBytes32
390
+ resolveFiatCurrencyBytes32,
390
391
  } from '@zkp2p/sdk';
391
392
 
392
393
  // Use currency constants
@@ -408,7 +409,7 @@ import { getContracts, getPaymentMethodsCatalog } from '@zkp2p/sdk';
408
409
 
409
410
  // Get contract addresses and ABIs
410
411
  const { addresses, abis } = getContracts(8453, 'production');
411
- console.log(addresses.escrow); // Contract addresses use camelCase
412
+ console.log(addresses.escrow); // Contract addresses use camelCase
412
413
  console.log(addresses.orchestrator);
413
414
 
414
415
  // Get payment methods catalog
@@ -417,41 +418,47 @@ const catalog = getPaymentMethodsCatalog(8453, 'production');
417
418
 
418
419
  ## Supported Networks
419
420
 
420
- | Network | Chain ID | Environment |
421
- |---------|----------|-------------|
422
- | Base Mainnet | 8453 | `production` |
423
- | Base Sepolia | 84532 | `staging` |
421
+ | Network | Chain ID | Environment |
422
+ | ------------ | -------- | ------------ |
423
+ | Base Mainnet | 8453 | `production` |
424
+ | Base Sepolia | 84532 | `staging` |
424
425
 
425
426
  ## API Reference
426
427
 
427
428
  ### Query Methods (RPC-first)
428
429
 
429
430
  **Deposits (instant on-chain reads):**
431
+
430
432
  - `getDeposits()` - Get connected wallet's deposits
431
433
  - `getAccountDeposits(owner)` - Get deposits for any address
432
434
  - `getDeposit(depositId)` - Get single deposit by ID
433
435
  - `getDepositsById(ids)` - Batch fetch deposits
434
436
 
435
437
  **Intents (instant on-chain reads):**
438
+
436
439
  - `getIntents()` - Get connected wallet's intents
437
440
  - `getAccountIntents(owner)` - Get intents for any address
438
441
  - `getIntent(intentHash)` - Get single intent by hash
439
442
 
440
443
  **Utilities:**
444
+
441
445
  - `resolvePayeeHash(depositId, paymentMethodHash)` - Get payee details hash
442
446
 
443
447
  **Token Allowance:**
448
+
444
449
  - `ensureAllowance(params)` - Check/set ERC20 allowance for deposits
445
450
 
446
451
  ### Core Methods (Deposit Management)
447
452
 
448
453
  **Creating & Managing Deposits:**
454
+
449
455
  - `createDeposit(params)` - Create a new liquidity deposit
450
456
  - `addFunds(params)` - Add funds to deposit
451
457
  - `removeFunds(params)` - Remove funds from deposit
452
458
  - `withdrawDeposit(params)` - Withdraw entire deposit
453
459
 
454
460
  **Configuring Deposits:**
461
+
455
462
  - `setAcceptingIntents(params)` - Toggle intent acceptance
456
463
  - `setIntentRange(params)` - Set min/max intent amounts
457
464
  - `setCurrencyMinRate(params)` - Set minimum conversion rate
@@ -476,6 +483,7 @@ For historical data, pagination, and advanced filtering:
476
483
  ### Supporting Methods
477
484
 
478
485
  **Intent Operations** (typically used by takers, not liquidity providers):
486
+
479
487
  - `signalIntent(params)` - Signal an intent to use a deposit
480
488
  - `fulfillIntent(params)` - Fulfill with attestation proof
481
489
  - `cancelIntent(params)` - Cancel an intent
@@ -483,6 +491,7 @@ For historical data, pagination, and advanced filtering:
483
491
  - `pruneExpiredIntents(params)` - Clean up expired intents
484
492
 
485
493
  **Quote API** (used by frontends):
494
+
486
495
  - `getQuote(params)` - Get available exchange quotes
487
496
 
488
497
  ## Token Allowance Management
@@ -514,15 +523,9 @@ For methods that interact directly with on-chain data, parameters use bytes32 he
514
523
  await client.addPaymentMethods({
515
524
  depositId: 1n,
516
525
  paymentMethods: ['0x...'], // bytes32 payment method hashes
517
- paymentMethodData: [
518
- { intentGatingService: '0x...', payeeDetails: '0x...', data: '0x' },
519
- ],
526
+ paymentMethodData: [{ intentGatingService: '0x...', payeeDetails: '0x...', data: '0x' }],
520
527
  // currencies is required and must align with paymentMethods by index
521
- currencies: [
522
- [
523
- { code: '0x...', minConversionRate: 1020000000000000000n },
524
- ],
525
- ],
528
+ currencies: [[{ code: '0x...', minConversionRate: 1020000000000000000n }]],
526
529
  });
527
530
 
528
531
  // addCurrencies - Add currencies to a payment method
@@ -538,7 +541,7 @@ await client.addCurrencies({
538
541
  await client.deactivateCurrency({
539
542
  depositId: 1n,
540
543
  paymentMethod: '0x...', // bytes32 payment method hash
541
- currencyCode: '0x...', // bytes32 currency code
544
+ currencyCode: '0x...', // bytes32 currency code
542
545
  });
543
546
 
544
547
  // setPaymentMethodActive - Enable/disable a payment method
@@ -552,7 +555,7 @@ await client.setPaymentMethodActive({
552
555
  await client.setCurrencyMinRate({
553
556
  depositId: 1n,
554
557
  paymentMethod: '0x...', // bytes32 payment method hash
555
- fiatCurrency: '0x...', // bytes32 currency code (not currencyCode)
558
+ fiatCurrency: '0x...', // bytes32 currency code (not currencyCode)
556
559
  minConversionRate: 1020000000000000000n, // 18 decimals
557
560
  });
558
561
  ```
@@ -563,7 +566,9 @@ await client.setCurrencyMinRate({
563
566
  import { ValidationError, NetworkError, ContractError } from '@zkp2p/sdk';
564
567
 
565
568
  try {
566
- await client.createDeposit({ /* ... */ });
569
+ await client.createDeposit({
570
+ /* ... */
571
+ });
567
572
  } catch (error) {
568
573
  if (error instanceof ValidationError) {
569
574
  console.error('Invalid parameters:', error.message);
@@ -360,6 +360,7 @@ interface DepositEntity {
360
360
  escrowAddress: string;
361
361
  depositId: string;
362
362
  depositor: string;
363
+ delegate?: string | null;
363
364
  token: string;
364
365
  remainingDeposits: string;
365
366
  intentAmountMin: string;
@@ -445,6 +446,9 @@ type OrderDirection = 'asc' | 'desc';
445
446
  type DepositFilter = Partial<{
446
447
  status: 'ACTIVE' | 'CLOSED';
447
448
  depositor: string;
449
+ delegate: string;
450
+ /** True to only include deposits with a non-zero delegate, false for zero delegate. */
451
+ delegateIsSet: boolean;
448
452
  chainId: number;
449
453
  escrowAddress: string;
450
454
  escrowAddresses: string[];
@@ -360,6 +360,7 @@ interface DepositEntity {
360
360
  escrowAddress: string;
361
361
  depositId: string;
362
362
  depositor: string;
363
+ delegate?: string | null;
363
364
  token: string;
364
365
  remainingDeposits: string;
365
366
  intentAmountMin: string;
@@ -445,6 +446,9 @@ type OrderDirection = 'asc' | 'desc';
445
446
  type DepositFilter = Partial<{
446
447
  status: 'ACTIVE' | 'CLOSED';
447
448
  depositor: string;
449
+ delegate: string;
450
+ /** True to only include deposits with a non-zero delegate, false for zero delegate. */
451
+ delegateIsSet: boolean;
448
452
  chainId: number;
449
453
  escrowAddress: string;
450
454
  escrowAddresses: string[];
@@ -1,5 +1,5 @@
1
- import { resolvePaymentMethodNameFromHash } from './chunk-MWFONYDJ.mjs';
2
- import { getCurrencyInfoFromHash } from './chunk-LZJL5J5X.mjs';
1
+ import { resolvePaymentMethodNameFromHash } from './chunk-37YHT3UF.mjs';
2
+ import { getCurrencyInfoFromHash } from './chunk-MDLTLKWK.mjs';
3
3
  import baseAddressesRaw from '@zkp2p/contracts-v2/addresses/base';
4
4
  import baseSepoliaAddressesRaw from '@zkp2p/contracts-v2/addresses/baseSepolia';
5
5
  import baseStagingAddressesRaw from '@zkp2p/contracts-v2/addresses/baseStaging';
@@ -240,5 +240,5 @@ function enrichPvIntentView(view, chainId, env = "production") {
240
240
  }
241
241
 
242
242
  export { enrichPvDepositView, enrichPvIntentView, getContracts, getGatingServiceAddress, getPaymentMethodsCatalog, parseDepositView, parseIntentView };
243
- //# sourceMappingURL=chunk-NRU6Z6WS.mjs.map
244
- //# sourceMappingURL=chunk-NRU6Z6WS.mjs.map
243
+ //# sourceMappingURL=chunk-34DVWMT5.mjs.map
244
+ //# sourceMappingURL=chunk-34DVWMT5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contracts.ts","../src/utils/protocolViewerParsers.ts"],"names":[],"mappings":"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","file":"chunk-NRU6Z6WS.mjs","sourcesContent":["/**\n * Contract resolution utilities for the SDK.\n *\n * Provides access to deployed contract addresses and ABIs for different\n * networks (Base, Base Sepolia) and environments (production, staging).\n *\n * @module contracts\n */\n\nimport type { Abi } from 'abitype';\n\n// Typed imports from @zkp2p/contracts-v2 (module declarations provided in src/@types)\n// Use *Raw suffix for imports that need runtime normalization (addresses, constants)\nimport baseAddressesRaw from '@zkp2p/contracts-v2/addresses/base';\nimport baseSepoliaAddressesRaw from '@zkp2p/contracts-v2/addresses/baseSepolia';\nimport baseStagingAddressesRaw from '@zkp2p/contracts-v2/addresses/baseStaging';\n\nimport EscrowBase from '@zkp2p/contracts-v2/abis/base/Escrow.json';\nimport OrchestratorBase from '@zkp2p/contracts-v2/abis/base/Orchestrator.json';\nimport ProtocolViewerBase from '@zkp2p/contracts-v2/abis/base/ProtocolViewer.json';\nimport UnifiedPaymentVerifierBase from '@zkp2p/contracts-v2/abis/base/UnifiedPaymentVerifier.json';\n\nimport EscrowBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/Escrow.json';\nimport OrchestratorBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/Orchestrator.json';\nimport ProtocolViewerBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/ProtocolViewer.json';\nimport UnifiedPaymentVerifierBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/UnifiedPaymentVerifier.json';\n\nimport EscrowBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/Escrow.json';\nimport OrchestratorBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/Orchestrator.json';\nimport UnifiedPaymentVerifierBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/UnifiedPaymentVerifier.json';\nimport ProtocolViewerBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/ProtocolViewer.json';\n\nimport baseConstantsRaw from '@zkp2p/contracts-v2/constants/base';\nimport baseStagingConstantsRaw from '@zkp2p/contracts-v2/constants/baseStaging';\n// Payment methods catalogs (JSON). Import statically so ESM bundlers include the data.\n// These modules are present in @zkp2p/contracts-v2; tsconfig sets resolveJsonModule: true\nimport basePaymentMethodsRaw from '@zkp2p/contracts-v2/paymentMethods/base.json';\nimport baseSepoliaPaymentMethodsRaw from '@zkp2p/contracts-v2/paymentMethods/baseSepolia.json';\nimport baseStagingPaymentMethodsRaw from '@zkp2p/contracts-v2/paymentMethods/baseStaging.json';\n\n// ---------------------------------------------------------------------------\n// Runtime normalization helpers for ESM/CJS interoperability\n// ---------------------------------------------------------------------------\n// In certain runtimes (tsx, Node ESM), deep imports from @zkp2p/contracts-v2\n// resolve as { default: [Getter] } or { default: { contracts: {...} } } instead\n// of the expected shape. These helpers unwrap the actual data regardless of shape.\n\n/**\n * Normalize address module shape. Handles:\n * - { contracts: {...} } (direct)\n * - { default: { contracts: {...} } } (wrapped)\n * - { default: [Getter] } (lazy)\n */\nfunction unwrapAddresses(mod: unknown): { name?: string; chainId?: number; contracts?: Record<string, `0x${string}`> } {\n if (!mod) return {} as ReturnType<typeof unwrapAddresses>;\n const m = mod as Record<string, unknown>;\n // Direct shape\n if (m.contracts) return m as ReturnType<typeof unwrapAddresses>;\n // Wrapped shape\n if ((m.default as Record<string, unknown>)?.contracts) return m.default as ReturnType<typeof unwrapAddresses>;\n // Lazy getter shape\n try {\n const d = typeof m.default === 'function' ? (m.default as () => unknown)() : m.default;\n if ((d as Record<string, unknown>)?.contracts) return d as ReturnType<typeof unwrapAddresses>;\n } catch {\n // ignore\n }\n return m as ReturnType<typeof unwrapAddresses>;\n}\n\n/**\n * Normalize payment methods module shape. Handles:\n * - { methods: {...} } (direct)\n * - { default: { methods: {...} } } (wrapped)\n * - { default: [Getter] } (lazy)\n */\nfunction unwrapMethods(mod: unknown): { methods?: Record<string, { paymentMethodHash: `0x${string}`; currencies?: `0x${string}`[] }> } {\n if (!mod) return {} as ReturnType<typeof unwrapMethods>;\n const m = mod as Record<string, unknown>;\n if (m.methods) return m as ReturnType<typeof unwrapMethods>;\n if ((m.default as Record<string, unknown>)?.methods) return m.default as ReturnType<typeof unwrapMethods>;\n try {\n const d = typeof m.default === 'function' ? (m.default as () => unknown)() : m.default;\n if ((d as Record<string, unknown>)?.methods) return d as ReturnType<typeof unwrapMethods>;\n } catch {\n // ignore\n }\n return m as ReturnType<typeof unwrapMethods>;\n}\n\n/**\n * Normalize constants module shape (for USDC address, etc.)\n */\nfunction unwrapConstants(mod: unknown): Record<string, unknown> {\n if (!mod) return {};\n const m = mod as Record<string, unknown>;\n if (m.USDC) return m;\n if ((m.default as Record<string, unknown>)?.USDC) return m.default as Record<string, unknown>;\n try {\n const d = typeof m.default === 'function' ? (m.default as () => unknown)() : m.default;\n if ((d as Record<string, unknown>)?.USDC) return d as Record<string, unknown>;\n } catch {\n // ignore\n }\n return m;\n}\n\n// Apply runtime normalization to all imports\nconst baseAddresses = unwrapAddresses(baseAddressesRaw);\nconst baseSepoliaAddresses = unwrapAddresses(baseSepoliaAddressesRaw);\nconst baseStagingAddresses = unwrapAddresses(baseStagingAddressesRaw);\nconst basePaymentMethods = unwrapMethods(basePaymentMethodsRaw);\nconst baseSepoliaPaymentMethods = unwrapMethods(baseSepoliaPaymentMethodsRaw);\nconst baseStagingPaymentMethods = unwrapMethods(baseStagingPaymentMethodsRaw);\nconst baseConstants = unwrapConstants(baseConstantsRaw);\nconst baseStagingConstants = unwrapConstants(baseStagingConstantsRaw);\n\n/**\n * Contract addresses for a specific deployment.\n */\nexport type V2ContractAddresses = {\n /** Escrow contract (holds deposits and manages intents) */\n escrow: `0x${string}`;\n /** Orchestrator contract (handles intent signaling and fulfillment) */\n orchestrator?: `0x${string}`;\n /** UnifiedPaymentVerifier contract (verifies payment proofs) */\n unifiedPaymentVerifier?: `0x${string}`;\n /** ProtocolViewer contract (batch read operations) */\n protocolViewer?: `0x${string}`;\n /** USDC token address */\n usdc?: `0x${string}`;\n};\n\n/**\n * Contract ABIs for a specific deployment.\n */\nexport type V2ContractAbis = {\n escrow: Abi;\n orchestrator?: Abi;\n unifiedPaymentVerifier?: Abi;\n protocolViewer?: Abi;\n};\n\n/**\n * Runtime environment: 'production' for mainnet, 'staging' for testnet/dev.\n */\nexport type RuntimeEnv = 'production' | 'staging';\n\n/**\n * Converts a chain ID to its network key.\n * @internal\n */\nexport function networkKeyFromChainId(chainId: number): 'base' | 'base_sepolia' {\n if (chainId === 84532) return 'base_sepolia';\n return 'base';\n}\n\n/**\n * Retrieves deployed contract addresses and ABIs for a given chain and environment.\n *\n * @param chainId - The chain ID (8453 for Base, 84532 for Base Sepolia)\n * @param env - Runtime environment ('production' or 'staging')\n * @returns Object containing addresses and ABIs\n *\n * @example\n * ```typescript\n * import { getContracts } from '@zkp2p/sdk';\n *\n * const { addresses, abis } = getContracts(8453, 'production');\n * console.log(addresses.escrow); // \"0x...\"\n * console.log(addresses.usdc); // \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n * ```\n */\nexport function getContracts(chainId: number, env: RuntimeEnv = 'production'): { addresses: V2ContractAddresses; abis: V2ContractAbis } {\n const key = networkKeyFromChainId(chainId);\n\n const addressesByKey: Record<'base' | 'base_sepolia', V2ContractAddresses> = {\n base: {\n escrow: (baseAddresses.contracts?.Escrow ?? '') as `0x${string}`,\n orchestrator: (baseAddresses.contracts?.Orchestrator ?? '') as `0x${string}`,\n unifiedPaymentVerifier: (baseAddresses.contracts?.UnifiedPaymentVerifier ?? '') as `0x${string}`,\n protocolViewer: (baseAddresses.contracts?.ProtocolViewer ?? '') as `0x${string}`,\n usdc: (baseConstants as any).USDC,\n },\n base_sepolia: {\n escrow: (baseSepoliaAddresses.contracts?.Escrow ?? '') as `0x${string}`,\n orchestrator: (baseSepoliaAddresses.contracts?.Orchestrator ?? '') as `0x${string}`,\n unifiedPaymentVerifier: (baseSepoliaAddresses.contracts?.UnifiedPaymentVerifier ?? '') as `0x${string}`,\n protocolViewer: (baseSepoliaAddresses.contracts?.ProtocolViewer ?? '') as `0x${string}`,\n // Prefer mock USDC when available on testnet\n usdc: (baseSepoliaAddresses.contracts as any)?.USDCMock as `0x${string}` | undefined,\n },\n };\n\n const abisByKey: Record<'base' | 'base_sepolia', V2ContractAbis> = {\n base: {\n escrow: EscrowBase as unknown as Abi,\n orchestrator: OrchestratorBase as unknown as Abi,\n unifiedPaymentVerifier: UnifiedPaymentVerifierBase as unknown as Abi,\n protocolViewer: ProtocolViewerBase as unknown as Abi,\n },\n base_sepolia: {\n escrow: EscrowBaseSepolia as unknown as Abi,\n orchestrator: OrchestratorBaseSepolia as unknown as Abi,\n unifiedPaymentVerifier: UnifiedPaymentVerifierBaseSepolia as unknown as Abi,\n protocolViewer: ProtocolViewerBaseSepolia as unknown as Abi,\n },\n };\n\n // Staging overrides (custom addresses/abis)\n if (env === 'staging') {\n return {\n addresses: {\n escrow: (baseStagingAddresses.contracts?.Escrow ?? '') as `0x${string}`,\n orchestrator: (baseStagingAddresses.contracts?.Orchestrator ?? '') as `0x${string}`,\n unifiedPaymentVerifier: (baseStagingAddresses.contracts?.UnifiedPaymentVerifier ?? '') as `0x${string}`,\n protocolViewer: (baseStagingAddresses.contracts?.ProtocolViewer ?? '') as `0x${string}`,\n usdc: (baseStagingConstants as any).USDC,\n },\n abis: {\n escrow: EscrowBaseStaging as unknown as Abi,\n orchestrator: OrchestratorBaseStaging as unknown as Abi,\n unifiedPaymentVerifier: UnifiedPaymentVerifierBaseStaging as unknown as Abi,\n protocolViewer: ProtocolViewerBaseStaging as unknown as Abi,\n },\n };\n }\n\n return { addresses: addressesByKey[key], abis: abisByKey[key] };\n}\n\n/**\n * Catalog of payment methods with their hashes and supported currencies.\n */\nexport type PaymentMethodCatalog = Record<string, { paymentMethodHash: `0x${string}`; currencies?: `0x${string}`[] }>;\n\n/**\n * Retrieves the payment methods catalog for a given chain and environment.\n *\n * The catalog maps payment platform names (e.g., 'wise', 'revolut') to their\n * on-chain hashes and supported currency hashes.\n *\n * @param chainId - The chain ID\n * @param env - Runtime environment\n * @returns Payment method catalog keyed by platform name\n *\n * @example\n * ```typescript\n * import { getPaymentMethodsCatalog } from '@zkp2p/sdk';\n *\n * const catalog = getPaymentMethodsCatalog(8453, 'production');\n * console.log(Object.keys(catalog)); // ['wise', 'venmo', 'revolut', ...]\n * console.log(catalog.wise.paymentMethodHash); // \"0x...\"\n * console.log(catalog.wise.currencies); // [\"0x...\", \"0x...\"] (currency hashes)\n * ```\n */\nexport function getPaymentMethodsCatalog(chainId: number, env: RuntimeEnv = 'production'): PaymentMethodCatalog {\n const isBaseSepolia = networkKeyFromChainId(chainId) === 'base_sepolia';\n const src = env === 'staging'\n ? (baseStagingPaymentMethods as any)\n : (isBaseSepolia ? (baseSepoliaPaymentMethods as any) : (basePaymentMethods as any));\n const methods = (src?.methods ?? src?.default?.methods ?? {}) as PaymentMethodCatalog;\n return methods;\n}\n\n/**\n * Returns the gating service address for a given chain and environment.\n *\n * The gating service signs intent parameters before they can be submitted\n * on-chain, providing an additional validation layer.\n *\n * @param chainId - The chain ID\n * @param env - Runtime environment\n * @returns Gating service signer address\n */\nexport function getGatingServiceAddress(chainId: number, env: RuntimeEnv = 'production'): `0x${string}` {\n // Base Staging & Production share the same gating service in current deployments\n if (env === 'staging') {\n return '0x396D31055Db28C0C6f36e8b36f18FE7227248a97' as `0x${string}`;\n }\n // Testnets / Base Sepolia often use a dev signer (Hardhat 0)\n if (networkKeyFromChainId(chainId) === 'base_sepolia') {\n return '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' as `0x${string}`;\n }\n // Base mainnet (production)\n return '0x396D31055Db28C0C6f36e8b36f18FE7227248a97' as `0x${string}`;\n}\n","function toBigInt(v: any): bigint {\n if (typeof v === 'bigint') return v;\n if (typeof v === 'number') return BigInt(v);\n if (typeof v === 'string') return BigInt(v);\n if (v && typeof v.toString === 'function') return BigInt(v.toString());\n throw new Error('Unsupported numeric type for bigint conversion');\n}\n\nexport type PV_Deposit = {\n depositor: string;\n delegate: string;\n token: string;\n amount: bigint;\n intentAmountRange: { min: bigint; max: bigint };\n acceptingIntents: boolean;\n remainingDeposits: bigint;\n outstandingIntentAmount: bigint;\n makerProtocolFee: bigint;\n reservedMakerFees: bigint;\n accruedMakerFees: bigint;\n accruedReferrerFees: bigint;\n intentGuardian: string;\n referrer: string;\n referrerFee: bigint;\n};\n\nexport type PV_Currency = { code: string; minConversionRate: bigint };\nexport type PV_PaymentMethodData = {\n paymentMethod: string; // bytes32\n verificationData: {\n intentGatingService: string;\n payeeDetails: string; // bytes32\n data: string; // bytes\n };\n currencies: PV_Currency[];\n};\n\nexport type PV_DepositView = {\n depositId: bigint;\n deposit: PV_Deposit;\n availableLiquidity: bigint;\n paymentMethods: PV_PaymentMethodData[];\n intentHashes: string[];\n};\n\nexport type PV_Intent = {\n owner: string;\n to: string;\n escrow: string;\n depositId: bigint;\n amount: bigint;\n timestamp: bigint;\n paymentMethod: string; // bytes32\n fiatCurrency: string; // bytes32\n conversionRate: bigint;\n referrer: string;\n referrerFee: bigint;\n postIntentHook: string;\n data: string;\n};\n\nexport type PV_IntentView = {\n intentHash: string;\n intent: PV_Intent;\n deposit: Omit<PV_DepositView, 'intentHashes'>;\n};\n\nexport function parseDepositView(raw: any): PV_DepositView {\n return {\n depositId: toBigInt(raw.depositId),\n deposit: {\n depositor: raw.deposit.depositor,\n delegate: raw.deposit.delegate,\n token: raw.deposit.token,\n amount: toBigInt(raw.deposit.amount),\n intentAmountRange: {\n min: toBigInt(raw.deposit.intentAmountRange.min),\n max: toBigInt(raw.deposit.intentAmountRange.max),\n },\n acceptingIntents: raw.deposit.acceptingIntents,\n remainingDeposits: toBigInt(raw.deposit.remainingDeposits),\n outstandingIntentAmount: toBigInt(raw.deposit.outstandingIntentAmount),\n makerProtocolFee: toBigInt(raw.deposit.makerProtocolFee ?? 0),\n reservedMakerFees: toBigInt(raw.deposit.reservedMakerFees ?? 0),\n accruedMakerFees: toBigInt(raw.deposit.accruedMakerFees ?? 0),\n accruedReferrerFees: toBigInt(raw.deposit.accruedReferrerFees ?? 0),\n intentGuardian: raw.deposit.intentGuardian,\n referrer: raw.deposit.referrer,\n referrerFee: toBigInt(raw.deposit.referrerFee ?? 0),\n },\n availableLiquidity: toBigInt(raw.availableLiquidity),\n paymentMethods: (raw.paymentMethods || []).map((pm: any) => ({\n paymentMethod: pm.paymentMethod,\n verificationData: {\n intentGatingService: pm.verificationData.intentGatingService,\n payeeDetails: pm.verificationData.payeeDetails,\n data: pm.verificationData.data,\n },\n currencies: (pm.currencies || []).map((c: any) => ({\n code: c.code,\n minConversionRate: toBigInt(c.minConversionRate),\n })),\n })),\n intentHashes: raw.intentHashes || [],\n };\n}\n\nexport function parseIntentView(raw: any): PV_IntentView {\n const parsedDeposit = parseDepositView(raw.deposit);\n const deposit: Omit<PV_DepositView, 'intentHashes'> = {\n depositId: parsedDeposit.depositId,\n deposit: parsedDeposit.deposit,\n availableLiquidity: parsedDeposit.availableLiquidity,\n paymentMethods: parsedDeposit.paymentMethods,\n };\n return {\n intentHash: raw.intentHash,\n intent: {\n owner: raw.intent.owner,\n to: raw.intent.to,\n escrow: raw.intent.escrow,\n depositId: toBigInt(raw.intent.depositId),\n amount: toBigInt(raw.intent.amount),\n timestamp: toBigInt(raw.intent.timestamp),\n paymentMethod: raw.intent.paymentMethod,\n fiatCurrency: raw.intent.fiatCurrency,\n conversionRate: toBigInt(raw.intent.conversionRate),\n referrer: raw.intent.referrer,\n referrerFee: toBigInt(raw.intent.referrerFee ?? 0),\n postIntentHook: raw.intent.postIntentHook,\n data: raw.intent.data,\n },\n deposit,\n };\n}\n\n// Enrichment helpers for dashboards/explorers\nimport { getPaymentMethodsCatalog, type RuntimeEnv } from '../contracts';\nimport { resolvePaymentMethodNameFromHash } from './paymentResolution';\nimport { getCurrencyInfoFromHash } from './currency';\n\nexport function enrichPvDepositView(view: PV_DepositView, chainId: number, env: RuntimeEnv = 'production') {\n const catalog = getPaymentMethodsCatalog(chainId, env);\n return {\n ...view,\n paymentMethods: view.paymentMethods.map((pm) => ({\n ...pm,\n processorName: resolvePaymentMethodNameFromHash(pm.paymentMethod, catalog),\n currencies: pm.currencies.map((c) => ({\n ...c,\n currencyInfo: getCurrencyInfoFromHash(c.code),\n })),\n })),\n };\n}\n\nexport function enrichPvIntentView(view: PV_IntentView, chainId: number, env: RuntimeEnv = 'production') {\n const catalog = getPaymentMethodsCatalog(chainId, env);\n return {\n ...view,\n intent: {\n ...view.intent,\n processorName: resolvePaymentMethodNameFromHash(view.intent.paymentMethod, catalog),\n currencyInfo: getCurrencyInfoFromHash(view.intent.fiatCurrency),\n },\n deposit: enrichPvDepositView(view.deposit as any, chainId, env),\n } as any;\n}\n"]}
1
+ {"version":3,"sources":["../src/contracts.ts","../src/utils/protocolViewerParsers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqDA,SAAS,gBAAgB,GAAA,EAA8F;AACrH,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAClB,EAAA,MAAM,CAAA,GAAI,GAAA;AAEV,EAAA,IAAI,CAAA,CAAE,WAAW,OAAO,CAAA;AAExB,EAAA,IAAK,CAAA,CAAE,OAAA,EAAqC,SAAA,EAAW,OAAO,CAAA,CAAE,OAAA;AAEhE,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,OAAO,CAAA,CAAE,OAAA,KAAY,aAAc,CAAA,CAAE,OAAA,KAA8B,CAAA,CAAE,OAAA;AAC/E,IAAA,IAAK,CAAA,EAA+B,WAAW,OAAO,CAAA;AAAA,EACxD,CAAA,CAAA,MAAQ;AAAA,EAER;AACA,EAAA,OAAO,CAAA;AACT;AAQA,SAAS,cAAc,GAAA,EAAgH;AACrI,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAClB,EAAA,MAAM,CAAA,GAAI,GAAA;AACV,EAAA,IAAI,CAAA,CAAE,SAAS,OAAO,CAAA;AACtB,EAAA,IAAK,CAAA,CAAE,OAAA,EAAqC,OAAA,EAAS,OAAO,CAAA,CAAE,OAAA;AAC9D,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,OAAO,CAAA,CAAE,OAAA,KAAY,aAAc,CAAA,CAAE,OAAA,KAA8B,CAAA,CAAE,OAAA;AAC/E,IAAA,IAAK,CAAA,EAA+B,SAAS,OAAO,CAAA;AAAA,EACtD,CAAA,CAAA,MAAQ;AAAA,EAER;AACA,EAAA,OAAO,CAAA;AACT;AAKA,SAAS,gBAAgB,GAAA,EAAuC;AAC9D,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAClB,EAAA,MAAM,CAAA,GAAI,GAAA;AACV,EAAA,IAAI,CAAA,CAAE,MAAM,OAAO,CAAA;AACnB,EAAA,IAAK,CAAA,CAAE,OAAA,EAAqC,IAAA,EAAM,OAAO,CAAA,CAAE,OAAA;AAC3D,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,OAAO,CAAA,CAAE,OAAA,KAAY,aAAc,CAAA,CAAE,OAAA,KAA8B,CAAA,CAAE,OAAA;AAC/E,IAAA,IAAK,CAAA,EAA+B,MAAM,OAAO,CAAA;AAAA,EACnD,CAAA,CAAA,MAAQ;AAAA,EAER;AACA,EAAA,OAAO,CAAA;AACT;AAGA,IAAM,aAAA,GAAgB,gBAAgB,gBAAgB,CAAA;AACtD,IAAM,oBAAA,GAAuB,gBAAgB,uBAAuB,CAAA;AACpE,IAAM,oBAAA,GAAuB,gBAAgB,uBAAuB,CAAA;AACpE,IAAM,kBAAA,GAAqB,cAAc,qBAAqB,CAAA;AAC9D,IAAM,yBAAA,GAA4B,cAAc,4BAA4B,CAAA;AAC5E,IAAM,yBAAA,GAA4B,cAAc,4BAA4B,CAAA;AAC5E,IAAM,aAAA,GAAgB,gBAAgB,gBAAgB,CAAA;AACtD,IAAM,oBAAA,GAAuB,gBAAgB,uBAAuB,CAAA;AAqC7D,SAAS,sBAAsB,OAAA,EAA0C;AAC9E,EAAA,IAAI,OAAA,KAAY,OAAO,OAAO,cAAA;AAC9B,EAAA,OAAO,MAAA;AACT;AAkBO,SAAS,YAAA,CAAa,OAAA,EAAiB,GAAA,GAAkB,YAAA,EAAwE;AACtI,EAAA,MAAM,GAAA,GAAM,sBAAsB,OAAO,CAAA;AAEzC,EAAA,MAAM,cAAA,GAAuE;AAAA,IAC3E,IAAA,EAAM;AAAA,MACJ,MAAA,EAAS,aAAA,CAAc,SAAA,EAAW,MAAA,IAAU,EAAA;AAAA,MAC5C,YAAA,EAAe,aAAA,CAAc,SAAA,EAAW,YAAA,IAAgB,EAAA;AAAA,MACxD,sBAAA,EAAyB,aAAA,CAAc,SAAA,EAAW,sBAAA,IAA0B,EAAA;AAAA,MAC5E,cAAA,EAAiB,aAAA,CAAc,SAAA,EAAW,cAAA,IAAkB,EAAA;AAAA,MAC5D,MAAO,aAAA,CAAsB;AAAA,KAC/B;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,MAAA,EAAS,oBAAA,CAAqB,SAAA,EAAW,MAAA,IAAU,EAAA;AAAA,MACnD,YAAA,EAAe,oBAAA,CAAqB,SAAA,EAAW,YAAA,IAAgB,EAAA;AAAA,MAC/D,sBAAA,EAAyB,oBAAA,CAAqB,SAAA,EAAW,sBAAA,IAA0B,EAAA;AAAA,MACnF,cAAA,EAAiB,oBAAA,CAAqB,SAAA,EAAW,cAAA,IAAkB,EAAA;AAAA;AAAA,MAEnE,IAAA,EAAO,qBAAqB,SAAA,EAAmB;AAAA;AACjD,GACF;AAEA,EAAA,MAAM,SAAA,GAA6D;AAAA,IACjE,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,UAAA;AAAA,MACR,YAAA,EAAc,gBAAA;AAAA,MACd,sBAAA,EAAwB,0BAAA;AAAA,MACxB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,MAAA,EAAQ,iBAAA;AAAA,MACR,YAAA,EAAc,uBAAA;AAAA,MACd,sBAAA,EAAwB,iCAAA;AAAA,MACxB,cAAA,EAAgB;AAAA;AAClB,GACF;AAGA,EAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,IAAA,OAAO;AAAA,MACL,SAAA,EAAW;AAAA,QACT,MAAA,EAAS,oBAAA,CAAqB,SAAA,EAAW,MAAA,IAAU,EAAA;AAAA,QACnD,YAAA,EAAe,oBAAA,CAAqB,SAAA,EAAW,YAAA,IAAgB,EAAA;AAAA,QAC/D,sBAAA,EAAyB,oBAAA,CAAqB,SAAA,EAAW,sBAAA,IAA0B,EAAA;AAAA,QACnF,cAAA,EAAiB,oBAAA,CAAqB,SAAA,EAAW,cAAA,IAAkB,EAAA;AAAA,QACnE,MAAO,oBAAA,CAA6B;AAAA,OACtC;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,MAAA,EAAQ,iBAAA;AAAA,QACR,YAAA,EAAc,uBAAA;AAAA,QACd,sBAAA,EAAwB,iCAAA;AAAA,QACxB,cAAA,EAAgB;AAAA;AAClB,KACF;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,WAAW,cAAA,CAAe,GAAG,GAAG,IAAA,EAAM,SAAA,CAAU,GAAG,CAAA,EAAE;AAChE;AA2BO,SAAS,wBAAA,CAAyB,OAAA,EAAiB,GAAA,GAAkB,YAAA,EAAoC;AAC9G,EAAA,MAAM,aAAA,GAAgB,qBAAA,CAAsB,OAAO,CAAA,KAAM,cAAA;AACzD,EAAA,MAAM,GAAA,GAAM,GAAA,KAAQ,SAAA,GACf,yBAAA,GACA,gBAAiB,yBAAA,GAAqC,kBAAA;AAC3D,EAAA,MAAM,UAAW,GAAA,EAAK,OAAA,IAAW,GAAA,EAAK,OAAA,EAAS,WAAW,EAAC;AAC3D,EAAA,OAAO,OAAA;AACT;AAYO,SAAS,uBAAA,CAAwB,OAAA,EAAiB,GAAA,GAAkB,YAAA,EAA6B;AAEtG,EAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,IAAA,OAAO,4CAAA;AAAA,EACT;AAEA,EAAA,IAAI,qBAAA,CAAsB,OAAO,CAAA,KAAM,cAAA,EAAgB;AACrD,IAAA,OAAO,4CAAA;AAAA,EACT;AAEA,EAAA,OAAO,4CAAA;AACT;;;AC9RA,SAAS,SAAS,CAAA,EAAgB;AAChC,EAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,OAAO,CAAA;AAClC,EAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,OAAO,OAAO,CAAC,CAAA;AAC1C,EAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,OAAO,OAAO,CAAC,CAAA;AAC1C,EAAA,IAAI,CAAA,IAAK,OAAO,CAAA,CAAE,QAAA,KAAa,YAAY,OAAO,MAAA,CAAO,CAAA,CAAE,QAAA,EAAU,CAAA;AACrE,EAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAClE;AA6DO,SAAS,iBAAiB,GAAA,EAA0B;AACzD,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,QAAA,CAAS,GAAA,CAAI,SAAS,CAAA;AAAA,IACjC,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,IAAI,OAAA,CAAQ,SAAA;AAAA,MACvB,QAAA,EAAU,IAAI,OAAA,CAAQ,QAAA;AAAA,MACtB,KAAA,EAAO,IAAI,OAAA,CAAQ,KAAA;AAAA,MACnB,MAAA,EAAQ,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,MAAM,CAAA;AAAA,MACnC,iBAAA,EAAmB;AAAA,QACjB,GAAA,EAAK,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,kBAAkB,GAAG,CAAA;AAAA,QAC/C,GAAA,EAAK,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,kBAAkB,GAAG;AAAA,OACjD;AAAA,MACA,gBAAA,EAAkB,IAAI,OAAA,CAAQ,gBAAA;AAAA,MAC9B,iBAAA,EAAmB,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,iBAAiB,CAAA;AAAA,MACzD,uBAAA,EAAyB,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,uBAAuB,CAAA;AAAA,MACrE,gBAAA,EAAkB,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,oBAAoB,CAAC,CAAA;AAAA,MAC5D,iBAAA,EAAmB,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,qBAAqB,CAAC,CAAA;AAAA,MAC9D,gBAAA,EAAkB,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,oBAAoB,CAAC,CAAA;AAAA,MAC5D,mBAAA,EAAqB,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,uBAAuB,CAAC,CAAA;AAAA,MAClE,cAAA,EAAgB,IAAI,OAAA,CAAQ,cAAA;AAAA,MAC5B,QAAA,EAAU,IAAI,OAAA,CAAQ,QAAA;AAAA,MACtB,WAAA,EAAa,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,eAAe,CAAC;AAAA,KACpD;AAAA,IACA,kBAAA,EAAoB,QAAA,CAAS,GAAA,CAAI,kBAAkB,CAAA;AAAA,IACnD,iBAAiB,GAAA,CAAI,cAAA,IAAkB,EAAC,EAAG,GAAA,CAAI,CAAC,EAAA,MAAa;AAAA,MAC3D,eAAe,EAAA,CAAG,aAAA;AAAA,MAClB,gBAAA,EAAkB;AAAA,QAChB,mBAAA,EAAqB,GAAG,gBAAA,CAAiB,mBAAA;AAAA,QACzC,YAAA,EAAc,GAAG,gBAAA,CAAiB,YAAA;AAAA,QAClC,IAAA,EAAM,GAAG,gBAAA,CAAiB;AAAA,OAC5B;AAAA,MACA,aAAa,EAAA,CAAG,UAAA,IAAc,EAAC,EAAG,GAAA,CAAI,CAAC,CAAA,MAAY;AAAA,QACjD,MAAM,CAAA,CAAE,IAAA;AAAA,QACR,iBAAA,EAAmB,QAAA,CAAS,CAAA,CAAE,iBAAiB;AAAA,OACjD,CAAE;AAAA,KACJ,CAAE,CAAA;AAAA,IACF,YAAA,EAAc,GAAA,CAAI,YAAA,IAAgB;AAAC,GACrC;AACF;AAEO,SAAS,gBAAgB,GAAA,EAAyB;AACvD,EAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,GAAA,CAAI,OAAO,CAAA;AAClD,EAAA,MAAM,OAAA,GAAgD;AAAA,IACpD,WAAW,aAAA,CAAc,SAAA;AAAA,IACzB,SAAS,aAAA,CAAc,OAAA;AAAA,IACvB,oBAAoB,aAAA,CAAc,kBAAA;AAAA,IAClC,gBAAgB,aAAA,CAAc;AAAA,GAChC;AACA,EAAA,OAAO;AAAA,IACL,YAAY,GAAA,CAAI,UAAA;AAAA,IAChB,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,IAAI,MAAA,CAAO,KAAA;AAAA,MAClB,EAAA,EAAI,IAAI,MAAA,CAAO,EAAA;AAAA,MACf,MAAA,EAAQ,IAAI,MAAA,CAAO,MAAA;AAAA,MACnB,SAAA,EAAW,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,SAAS,CAAA;AAAA,MACxC,MAAA,EAAQ,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA;AAAA,MAClC,SAAA,EAAW,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,SAAS,CAAA;AAAA,MACxC,aAAA,EAAe,IAAI,MAAA,CAAO,aAAA;AAAA,MAC1B,YAAA,EAAc,IAAI,MAAA,CAAO,YAAA;AAAA,MACzB,cAAA,EAAgB,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,cAAc,CAAA;AAAA,MAClD,QAAA,EAAU,IAAI,MAAA,CAAO,QAAA;AAAA,MACrB,WAAA,EAAa,QAAA,CAAS,GAAA,CAAI,MAAA,CAAO,eAAe,CAAC,CAAA;AAAA,MACjD,cAAA,EAAgB,IAAI,MAAA,CAAO,cAAA;AAAA,MAC3B,IAAA,EAAM,IAAI,MAAA,CAAO;AAAA,KACnB;AAAA,IACA;AAAA,GACF;AACF;AAOO,SAAS,mBAAA,CAAoB,IAAA,EAAsB,OAAA,EAAiB,GAAA,GAAkB,YAAA,EAAc;AACzG,EAAA,MAAM,OAAA,GAAU,wBAAA,CAAyB,OAAA,EAAS,GAAG,CAAA;AACrD,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,cAAA,EAAgB,IAAA,CAAK,cAAA,CAAe,GAAA,CAAI,CAAC,EAAA,MAAQ;AAAA,MAC/C,GAAG,EAAA;AAAA,MACH,aAAA,EAAe,gCAAA,CAAiC,EAAA,CAAG,aAAA,EAAe,OAAO,CAAA;AAAA,MACzE,UAAA,EAAY,EAAA,CAAG,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,QACpC,GAAG,CAAA;AAAA,QACH,YAAA,EAAc,uBAAA,CAAwB,CAAA,CAAE,IAAI;AAAA,OAC9C,CAAE;AAAA,KACJ,CAAE;AAAA,GACJ;AACF;AAEO,SAAS,kBAAA,CAAmB,IAAA,EAAqB,OAAA,EAAiB,GAAA,GAAkB,YAAA,EAAc;AACvG,EAAA,MAAM,OAAA,GAAU,wBAAA,CAAyB,OAAA,EAAS,GAAG,CAAA;AACrD,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,MAAA,EAAQ;AAAA,MACN,GAAG,IAAA,CAAK,MAAA;AAAA,MACR,aAAA,EAAe,gCAAA,CAAiC,IAAA,CAAK,MAAA,CAAO,eAAe,OAAO,CAAA;AAAA,MAClF,YAAA,EAAc,uBAAA,CAAwB,IAAA,CAAK,MAAA,CAAO,YAAY;AAAA,KAChE;AAAA,IACA,OAAA,EAAS,mBAAA,CAAoB,IAAA,CAAK,OAAA,EAAgB,SAAS,GAAG;AAAA,GAChE;AACF","file":"chunk-34DVWMT5.mjs","sourcesContent":["/**\n * Contract resolution utilities for the SDK.\n *\n * Provides access to deployed contract addresses and ABIs for different\n * networks (Base, Base Sepolia) and environments (production, staging).\n *\n * @module contracts\n */\n\nimport type { Abi } from 'abitype';\n\n// Typed imports from @zkp2p/contracts-v2 (module declarations provided in src/@types)\n// Use *Raw suffix for imports that need runtime normalization (addresses, constants)\nimport baseAddressesRaw from '@zkp2p/contracts-v2/addresses/base';\nimport baseSepoliaAddressesRaw from '@zkp2p/contracts-v2/addresses/baseSepolia';\nimport baseStagingAddressesRaw from '@zkp2p/contracts-v2/addresses/baseStaging';\n\nimport EscrowBase from '@zkp2p/contracts-v2/abis/base/Escrow.json';\nimport OrchestratorBase from '@zkp2p/contracts-v2/abis/base/Orchestrator.json';\nimport ProtocolViewerBase from '@zkp2p/contracts-v2/abis/base/ProtocolViewer.json';\nimport UnifiedPaymentVerifierBase from '@zkp2p/contracts-v2/abis/base/UnifiedPaymentVerifier.json';\n\nimport EscrowBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/Escrow.json';\nimport OrchestratorBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/Orchestrator.json';\nimport ProtocolViewerBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/ProtocolViewer.json';\nimport UnifiedPaymentVerifierBaseSepolia from '@zkp2p/contracts-v2/abis/baseSepolia/UnifiedPaymentVerifier.json';\n\nimport EscrowBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/Escrow.json';\nimport OrchestratorBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/Orchestrator.json';\nimport UnifiedPaymentVerifierBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/UnifiedPaymentVerifier.json';\nimport ProtocolViewerBaseStaging from '@zkp2p/contracts-v2/abis/baseStaging/ProtocolViewer.json';\n\nimport baseConstantsRaw from '@zkp2p/contracts-v2/constants/base';\nimport baseStagingConstantsRaw from '@zkp2p/contracts-v2/constants/baseStaging';\n// Payment methods catalogs (JSON). Import statically so ESM bundlers include the data.\n// These modules are present in @zkp2p/contracts-v2; tsconfig sets resolveJsonModule: true\nimport basePaymentMethodsRaw from '@zkp2p/contracts-v2/paymentMethods/base.json';\nimport baseSepoliaPaymentMethodsRaw from '@zkp2p/contracts-v2/paymentMethods/baseSepolia.json';\nimport baseStagingPaymentMethodsRaw from '@zkp2p/contracts-v2/paymentMethods/baseStaging.json';\n\n// ---------------------------------------------------------------------------\n// Runtime normalization helpers for ESM/CJS interoperability\n// ---------------------------------------------------------------------------\n// In certain runtimes (tsx, Node ESM), deep imports from @zkp2p/contracts-v2\n// resolve as { default: [Getter] } or { default: { contracts: {...} } } instead\n// of the expected shape. These helpers unwrap the actual data regardless of shape.\n\n/**\n * Normalize address module shape. Handles:\n * - { contracts: {...} } (direct)\n * - { default: { contracts: {...} } } (wrapped)\n * - { default: [Getter] } (lazy)\n */\nfunction unwrapAddresses(mod: unknown): { name?: string; chainId?: number; contracts?: Record<string, `0x${string}`> } {\n if (!mod) return {} as ReturnType<typeof unwrapAddresses>;\n const m = mod as Record<string, unknown>;\n // Direct shape\n if (m.contracts) return m as ReturnType<typeof unwrapAddresses>;\n // Wrapped shape\n if ((m.default as Record<string, unknown>)?.contracts) return m.default as ReturnType<typeof unwrapAddresses>;\n // Lazy getter shape\n try {\n const d = typeof m.default === 'function' ? (m.default as () => unknown)() : m.default;\n if ((d as Record<string, unknown>)?.contracts) return d as ReturnType<typeof unwrapAddresses>;\n } catch {\n // ignore\n }\n return m as ReturnType<typeof unwrapAddresses>;\n}\n\n/**\n * Normalize payment methods module shape. Handles:\n * - { methods: {...} } (direct)\n * - { default: { methods: {...} } } (wrapped)\n * - { default: [Getter] } (lazy)\n */\nfunction unwrapMethods(mod: unknown): { methods?: Record<string, { paymentMethodHash: `0x${string}`; currencies?: `0x${string}`[] }> } {\n if (!mod) return {} as ReturnType<typeof unwrapMethods>;\n const m = mod as Record<string, unknown>;\n if (m.methods) return m as ReturnType<typeof unwrapMethods>;\n if ((m.default as Record<string, unknown>)?.methods) return m.default as ReturnType<typeof unwrapMethods>;\n try {\n const d = typeof m.default === 'function' ? (m.default as () => unknown)() : m.default;\n if ((d as Record<string, unknown>)?.methods) return d as ReturnType<typeof unwrapMethods>;\n } catch {\n // ignore\n }\n return m as ReturnType<typeof unwrapMethods>;\n}\n\n/**\n * Normalize constants module shape (for USDC address, etc.)\n */\nfunction unwrapConstants(mod: unknown): Record<string, unknown> {\n if (!mod) return {};\n const m = mod as Record<string, unknown>;\n if (m.USDC) return m;\n if ((m.default as Record<string, unknown>)?.USDC) return m.default as Record<string, unknown>;\n try {\n const d = typeof m.default === 'function' ? (m.default as () => unknown)() : m.default;\n if ((d as Record<string, unknown>)?.USDC) return d as Record<string, unknown>;\n } catch {\n // ignore\n }\n return m;\n}\n\n// Apply runtime normalization to all imports\nconst baseAddresses = unwrapAddresses(baseAddressesRaw);\nconst baseSepoliaAddresses = unwrapAddresses(baseSepoliaAddressesRaw);\nconst baseStagingAddresses = unwrapAddresses(baseStagingAddressesRaw);\nconst basePaymentMethods = unwrapMethods(basePaymentMethodsRaw);\nconst baseSepoliaPaymentMethods = unwrapMethods(baseSepoliaPaymentMethodsRaw);\nconst baseStagingPaymentMethods = unwrapMethods(baseStagingPaymentMethodsRaw);\nconst baseConstants = unwrapConstants(baseConstantsRaw);\nconst baseStagingConstants = unwrapConstants(baseStagingConstantsRaw);\n\n/**\n * Contract addresses for a specific deployment.\n */\nexport type V2ContractAddresses = {\n /** Escrow contract (holds deposits and manages intents) */\n escrow: `0x${string}`;\n /** Orchestrator contract (handles intent signaling and fulfillment) */\n orchestrator?: `0x${string}`;\n /** UnifiedPaymentVerifier contract (verifies payment proofs) */\n unifiedPaymentVerifier?: `0x${string}`;\n /** ProtocolViewer contract (batch read operations) */\n protocolViewer?: `0x${string}`;\n /** USDC token address */\n usdc?: `0x${string}`;\n};\n\n/**\n * Contract ABIs for a specific deployment.\n */\nexport type V2ContractAbis = {\n escrow: Abi;\n orchestrator?: Abi;\n unifiedPaymentVerifier?: Abi;\n protocolViewer?: Abi;\n};\n\n/**\n * Runtime environment: 'production' for mainnet, 'staging' for testnet/dev.\n */\nexport type RuntimeEnv = 'production' | 'staging';\n\n/**\n * Converts a chain ID to its network key.\n * @internal\n */\nexport function networkKeyFromChainId(chainId: number): 'base' | 'base_sepolia' {\n if (chainId === 84532) return 'base_sepolia';\n return 'base';\n}\n\n/**\n * Retrieves deployed contract addresses and ABIs for a given chain and environment.\n *\n * @param chainId - The chain ID (8453 for Base, 84532 for Base Sepolia)\n * @param env - Runtime environment ('production' or 'staging')\n * @returns Object containing addresses and ABIs\n *\n * @example\n * ```typescript\n * import { getContracts } from '@zkp2p/sdk';\n *\n * const { addresses, abis } = getContracts(8453, 'production');\n * console.log(addresses.escrow); // \"0x...\"\n * console.log(addresses.usdc); // \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n * ```\n */\nexport function getContracts(chainId: number, env: RuntimeEnv = 'production'): { addresses: V2ContractAddresses; abis: V2ContractAbis } {\n const key = networkKeyFromChainId(chainId);\n\n const addressesByKey: Record<'base' | 'base_sepolia', V2ContractAddresses> = {\n base: {\n escrow: (baseAddresses.contracts?.Escrow ?? '') as `0x${string}`,\n orchestrator: (baseAddresses.contracts?.Orchestrator ?? '') as `0x${string}`,\n unifiedPaymentVerifier: (baseAddresses.contracts?.UnifiedPaymentVerifier ?? '') as `0x${string}`,\n protocolViewer: (baseAddresses.contracts?.ProtocolViewer ?? '') as `0x${string}`,\n usdc: (baseConstants as any).USDC,\n },\n base_sepolia: {\n escrow: (baseSepoliaAddresses.contracts?.Escrow ?? '') as `0x${string}`,\n orchestrator: (baseSepoliaAddresses.contracts?.Orchestrator ?? '') as `0x${string}`,\n unifiedPaymentVerifier: (baseSepoliaAddresses.contracts?.UnifiedPaymentVerifier ?? '') as `0x${string}`,\n protocolViewer: (baseSepoliaAddresses.contracts?.ProtocolViewer ?? '') as `0x${string}`,\n // Prefer mock USDC when available on testnet\n usdc: (baseSepoliaAddresses.contracts as any)?.USDCMock as `0x${string}` | undefined,\n },\n };\n\n const abisByKey: Record<'base' | 'base_sepolia', V2ContractAbis> = {\n base: {\n escrow: EscrowBase as unknown as Abi,\n orchestrator: OrchestratorBase as unknown as Abi,\n unifiedPaymentVerifier: UnifiedPaymentVerifierBase as unknown as Abi,\n protocolViewer: ProtocolViewerBase as unknown as Abi,\n },\n base_sepolia: {\n escrow: EscrowBaseSepolia as unknown as Abi,\n orchestrator: OrchestratorBaseSepolia as unknown as Abi,\n unifiedPaymentVerifier: UnifiedPaymentVerifierBaseSepolia as unknown as Abi,\n protocolViewer: ProtocolViewerBaseSepolia as unknown as Abi,\n },\n };\n\n // Staging overrides (custom addresses/abis)\n if (env === 'staging') {\n return {\n addresses: {\n escrow: (baseStagingAddresses.contracts?.Escrow ?? '') as `0x${string}`,\n orchestrator: (baseStagingAddresses.contracts?.Orchestrator ?? '') as `0x${string}`,\n unifiedPaymentVerifier: (baseStagingAddresses.contracts?.UnifiedPaymentVerifier ?? '') as `0x${string}`,\n protocolViewer: (baseStagingAddresses.contracts?.ProtocolViewer ?? '') as `0x${string}`,\n usdc: (baseStagingConstants as any).USDC,\n },\n abis: {\n escrow: EscrowBaseStaging as unknown as Abi,\n orchestrator: OrchestratorBaseStaging as unknown as Abi,\n unifiedPaymentVerifier: UnifiedPaymentVerifierBaseStaging as unknown as Abi,\n protocolViewer: ProtocolViewerBaseStaging as unknown as Abi,\n },\n };\n }\n\n return { addresses: addressesByKey[key], abis: abisByKey[key] };\n}\n\n/**\n * Catalog of payment methods with their hashes and supported currencies.\n */\nexport type PaymentMethodCatalog = Record<string, { paymentMethodHash: `0x${string}`; currencies?: `0x${string}`[] }>;\n\n/**\n * Retrieves the payment methods catalog for a given chain and environment.\n *\n * The catalog maps payment platform names (e.g., 'wise', 'revolut') to their\n * on-chain hashes and supported currency hashes.\n *\n * @param chainId - The chain ID\n * @param env - Runtime environment\n * @returns Payment method catalog keyed by platform name\n *\n * @example\n * ```typescript\n * import { getPaymentMethodsCatalog } from '@zkp2p/sdk';\n *\n * const catalog = getPaymentMethodsCatalog(8453, 'production');\n * console.log(Object.keys(catalog)); // ['wise', 'venmo', 'revolut', ...]\n * console.log(catalog.wise.paymentMethodHash); // \"0x...\"\n * console.log(catalog.wise.currencies); // [\"0x...\", \"0x...\"] (currency hashes)\n * ```\n */\nexport function getPaymentMethodsCatalog(chainId: number, env: RuntimeEnv = 'production'): PaymentMethodCatalog {\n const isBaseSepolia = networkKeyFromChainId(chainId) === 'base_sepolia';\n const src = env === 'staging'\n ? (baseStagingPaymentMethods as any)\n : (isBaseSepolia ? (baseSepoliaPaymentMethods as any) : (basePaymentMethods as any));\n const methods = (src?.methods ?? src?.default?.methods ?? {}) as PaymentMethodCatalog;\n return methods;\n}\n\n/**\n * Returns the gating service address for a given chain and environment.\n *\n * The gating service signs intent parameters before they can be submitted\n * on-chain, providing an additional validation layer.\n *\n * @param chainId - The chain ID\n * @param env - Runtime environment\n * @returns Gating service signer address\n */\nexport function getGatingServiceAddress(chainId: number, env: RuntimeEnv = 'production'): `0x${string}` {\n // Base Staging & Production share the same gating service in current deployments\n if (env === 'staging') {\n return '0x396D31055Db28C0C6f36e8b36f18FE7227248a97' as `0x${string}`;\n }\n // Testnets / Base Sepolia often use a dev signer (Hardhat 0)\n if (networkKeyFromChainId(chainId) === 'base_sepolia') {\n return '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' as `0x${string}`;\n }\n // Base mainnet (production)\n return '0x396D31055Db28C0C6f36e8b36f18FE7227248a97' as `0x${string}`;\n}\n","function toBigInt(v: any): bigint {\n if (typeof v === 'bigint') return v;\n if (typeof v === 'number') return BigInt(v);\n if (typeof v === 'string') return BigInt(v);\n if (v && typeof v.toString === 'function') return BigInt(v.toString());\n throw new Error('Unsupported numeric type for bigint conversion');\n}\n\nexport type PV_Deposit = {\n depositor: string;\n delegate: string;\n token: string;\n amount: bigint;\n intentAmountRange: { min: bigint; max: bigint };\n acceptingIntents: boolean;\n remainingDeposits: bigint;\n outstandingIntentAmount: bigint;\n makerProtocolFee: bigint;\n reservedMakerFees: bigint;\n accruedMakerFees: bigint;\n accruedReferrerFees: bigint;\n intentGuardian: string;\n referrer: string;\n referrerFee: bigint;\n};\n\nexport type PV_Currency = { code: string; minConversionRate: bigint };\nexport type PV_PaymentMethodData = {\n paymentMethod: string; // bytes32\n verificationData: {\n intentGatingService: string;\n payeeDetails: string; // bytes32\n data: string; // bytes\n };\n currencies: PV_Currency[];\n};\n\nexport type PV_DepositView = {\n depositId: bigint;\n deposit: PV_Deposit;\n availableLiquidity: bigint;\n paymentMethods: PV_PaymentMethodData[];\n intentHashes: string[];\n};\n\nexport type PV_Intent = {\n owner: string;\n to: string;\n escrow: string;\n depositId: bigint;\n amount: bigint;\n timestamp: bigint;\n paymentMethod: string; // bytes32\n fiatCurrency: string; // bytes32\n conversionRate: bigint;\n referrer: string;\n referrerFee: bigint;\n postIntentHook: string;\n data: string;\n};\n\nexport type PV_IntentView = {\n intentHash: string;\n intent: PV_Intent;\n deposit: Omit<PV_DepositView, 'intentHashes'>;\n};\n\nexport function parseDepositView(raw: any): PV_DepositView {\n return {\n depositId: toBigInt(raw.depositId),\n deposit: {\n depositor: raw.deposit.depositor,\n delegate: raw.deposit.delegate,\n token: raw.deposit.token,\n amount: toBigInt(raw.deposit.amount),\n intentAmountRange: {\n min: toBigInt(raw.deposit.intentAmountRange.min),\n max: toBigInt(raw.deposit.intentAmountRange.max),\n },\n acceptingIntents: raw.deposit.acceptingIntents,\n remainingDeposits: toBigInt(raw.deposit.remainingDeposits),\n outstandingIntentAmount: toBigInt(raw.deposit.outstandingIntentAmount),\n makerProtocolFee: toBigInt(raw.deposit.makerProtocolFee ?? 0),\n reservedMakerFees: toBigInt(raw.deposit.reservedMakerFees ?? 0),\n accruedMakerFees: toBigInt(raw.deposit.accruedMakerFees ?? 0),\n accruedReferrerFees: toBigInt(raw.deposit.accruedReferrerFees ?? 0),\n intentGuardian: raw.deposit.intentGuardian,\n referrer: raw.deposit.referrer,\n referrerFee: toBigInt(raw.deposit.referrerFee ?? 0),\n },\n availableLiquidity: toBigInt(raw.availableLiquidity),\n paymentMethods: (raw.paymentMethods || []).map((pm: any) => ({\n paymentMethod: pm.paymentMethod,\n verificationData: {\n intentGatingService: pm.verificationData.intentGatingService,\n payeeDetails: pm.verificationData.payeeDetails,\n data: pm.verificationData.data,\n },\n currencies: (pm.currencies || []).map((c: any) => ({\n code: c.code,\n minConversionRate: toBigInt(c.minConversionRate),\n })),\n })),\n intentHashes: raw.intentHashes || [],\n };\n}\n\nexport function parseIntentView(raw: any): PV_IntentView {\n const parsedDeposit = parseDepositView(raw.deposit);\n const deposit: Omit<PV_DepositView, 'intentHashes'> = {\n depositId: parsedDeposit.depositId,\n deposit: parsedDeposit.deposit,\n availableLiquidity: parsedDeposit.availableLiquidity,\n paymentMethods: parsedDeposit.paymentMethods,\n };\n return {\n intentHash: raw.intentHash,\n intent: {\n owner: raw.intent.owner,\n to: raw.intent.to,\n escrow: raw.intent.escrow,\n depositId: toBigInt(raw.intent.depositId),\n amount: toBigInt(raw.intent.amount),\n timestamp: toBigInt(raw.intent.timestamp),\n paymentMethod: raw.intent.paymentMethod,\n fiatCurrency: raw.intent.fiatCurrency,\n conversionRate: toBigInt(raw.intent.conversionRate),\n referrer: raw.intent.referrer,\n referrerFee: toBigInt(raw.intent.referrerFee ?? 0),\n postIntentHook: raw.intent.postIntentHook,\n data: raw.intent.data,\n },\n deposit,\n };\n}\n\n// Enrichment helpers for dashboards/explorers\nimport { getPaymentMethodsCatalog, type RuntimeEnv } from '../contracts';\nimport { resolvePaymentMethodNameFromHash } from './paymentResolution';\nimport { getCurrencyInfoFromHash } from './currency';\n\nexport function enrichPvDepositView(view: PV_DepositView, chainId: number, env: RuntimeEnv = 'production') {\n const catalog = getPaymentMethodsCatalog(chainId, env);\n return {\n ...view,\n paymentMethods: view.paymentMethods.map((pm) => ({\n ...pm,\n processorName: resolvePaymentMethodNameFromHash(pm.paymentMethod, catalog),\n currencies: pm.currencies.map((c) => ({\n ...c,\n currencyInfo: getCurrencyInfoFromHash(c.code),\n })),\n })),\n };\n}\n\nexport function enrichPvIntentView(view: PV_IntentView, chainId: number, env: RuntimeEnv = 'production') {\n const catalog = getPaymentMethodsCatalog(chainId, env);\n return {\n ...view,\n intent: {\n ...view.intent,\n processorName: resolvePaymentMethodNameFromHash(view.intent.paymentMethod, catalog),\n currencyInfo: getCurrencyInfoFromHash(view.intent.fiatCurrency),\n },\n deposit: enrichPvDepositView(view.deposit as any, chainId, env),\n } as any;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { keccak256 } from 'viem';
2
+
3
+ // src/utils/currencyKeccak256.ts
4
+ var currencyKeccak256 = (inputString) => {
5
+ const bytes = new TextEncoder().encode(inputString);
6
+ return keccak256(bytes);
7
+ };
8
+
9
+ export { currencyKeccak256 };
10
+ //# sourceMappingURL=chunk-37HJPVJE.mjs.map
11
+ //# sourceMappingURL=chunk-37HJPVJE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/currencyKeccak256.ts"],"names":["viemKeccak256"],"mappings":";;;AAEO,IAAM,iBAAA,GAAoB,CAAC,WAAA,KAAgC;AAChE,EAAA,MAAM,KAAA,GAAQ,IAAI,WAAA,EAAY,CAAE,OAAO,WAAW,CAAA;AAClD,EAAA,OAAOA,UAAc,KAAK,CAAA;AAC5B","file":"chunk-37HJPVJE.mjs","sourcesContent":["import { keccak256 as viemKeccak256 } from 'viem';\n\nexport const currencyKeccak256 = (inputString: string): string => {\n const bytes = new TextEncoder().encode(inputString);\n return viemKeccak256(bytes);\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { currencyKeccak256 } from './chunk-J34QNX2H.mjs';
1
+ import { currencyKeccak256 } from './chunk-37HJPVJE.mjs';
2
2
  import { hexToBytes, keccak256, toBytes, bytesToHex } from 'viem';
3
3
  import baseSepoliaPaymentMethods from '@zkp2p/contracts-v2/paymentMethods/baseSepolia';
4
4
  import baseStagingPaymentMethods from '@zkp2p/contracts-v2/paymentMethods/baseStaging';
@@ -9,7 +9,8 @@ function ensureBytes32(value, { hashIfAscii = false } = {}) {
9
9
  if (bytes.length !== 32) throw new Error("Expected 32-byte hex value");
10
10
  return value;
11
11
  }
12
- if (!hashIfAscii) throw new Error("Expected 32-byte hex; received ascii string. Pass hashIfAscii=true to hash.");
12
+ if (!hashIfAscii)
13
+ throw new Error("Expected 32-byte hex; received ascii string. Pass hashIfAscii=true to hash.");
13
14
  const hashed = keccak256(toBytes(value));
14
15
  return hashed;
15
16
  }
@@ -71,5 +72,5 @@ function resolvePaymentMethodNameFromHash(hash, catalog) {
71
72
  }
72
73
 
73
74
  export { asciiToBytes32, ensureBytes32, resolveFiatCurrencyBytes32, resolvePaymentMethodHash, resolvePaymentMethodHashFromCatalog, resolvePaymentMethodNameFromHash };
74
- //# sourceMappingURL=chunk-MWFONYDJ.mjs.map
75
- //# sourceMappingURL=chunk-MWFONYDJ.mjs.map
75
+ //# sourceMappingURL=chunk-37YHT3UF.mjs.map
76
+ //# sourceMappingURL=chunk-37YHT3UF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/bytes32.ts","../src/utils/paymentResolution.ts"],"names":[],"mappings":"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","file":"chunk-37YHT3UF.mjs","sourcesContent":["import { keccak256, toBytes, hexToBytes, bytesToHex } from 'viem';\n\n/**\n * Ensure a value is 32 bytes hex (0x + 64 nibbles). If ascii, keccak256 by default when hash=true.\n */\nexport function ensureBytes32(\n value: string,\n { hashIfAscii = false }: { hashIfAscii?: boolean } = {},\n): `0x${string}` {\n if (value.startsWith('0x')) {\n const bytes = hexToBytes(value as `0x${string}`);\n if (bytes.length !== 32) throw new Error('Expected 32-byte hex value');\n return value as `0x${string}`;\n }\n if (!hashIfAscii)\n throw new Error('Expected 32-byte hex; received ascii string. Pass hashIfAscii=true to hash.');\n const hashed = keccak256(toBytes(value));\n return hashed as `0x${string}`;\n}\n\n/**\n * Encode ASCII (<=32 chars) left-aligned, right-padded with zeros to 32 bytes.\n */\nexport function asciiToBytes32(value: string): `0x${string}` {\n const b = toBytes(value);\n if (b.length > 32) throw new Error('ASCII input exceeds 32 bytes');\n const padded = new Uint8Array(32);\n padded.set(b);\n return bytesToHex(padded);\n}\n","/**\n * Payment method resolution utilities.\n *\n * These functions convert between human-readable payment platform names\n * (e.g., 'wise', 'revolut') and their on-chain bytes32 hashes.\n *\n * @module paymentResolution\n */\n\nimport { ensureBytes32 } from './bytes32';\nimport { currencyKeccak256 } from './currencyKeccak256';\nimport type { PaymentMethodCatalog } from '../contracts';\n\n// Optional JSON maps from @zkp2p/contracts-v2 (only provided on some envs)\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport baseSepoliaPaymentMethods from '@zkp2p/contracts-v2/paymentMethods/baseSepolia';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport baseStagingPaymentMethods from '@zkp2p/contracts-v2/paymentMethods/baseStaging';\n\ntype NetworkKey = 'base' | 'base_sepolia';\ntype RuntimeEnv = 'production' | 'staging';\n\nfunction getPaymentMethodMap(\n env: RuntimeEnv,\n network: NetworkKey,\n): Record<string, { paymentMethodHash: `0x${string}` }> | null {\n if (env === 'staging') {\n const m = (baseStagingPaymentMethods?.methods ?? {}) as Record<\n string,\n { paymentMethodHash: `0x${string}` }\n >;\n return m && Object.keys(m).length ? m : null;\n }\n if (network === 'base_sepolia') {\n const m = (baseSepoliaPaymentMethods?.methods ?? {}) as Record<\n string,\n { paymentMethodHash: `0x${string}` }\n >;\n return m && Object.keys(m).length ? m : null;\n }\n return null;\n}\n\n/**\n * Resolves a payment method hash from a human-readable name.\n *\n * First attempts to look up the hash from contracts-v2 payment method maps.\n * Falls back to keccak256(name) when maps are unavailable.\n *\n * **Warning**: The fallback may not match on-chain mappings. Prefer using\n * `resolvePaymentMethodHashFromCatalog` with an explicit catalog.\n *\n * @param nameOrBytes - Payment method name ('wise') or existing bytes32 hash\n * @param opts.env - Runtime environment ('production' | 'staging')\n * @param opts.network - Network key ('base' | 'base_sepolia')\n * @returns bytes32 payment method hash\n *\n * @example\n * ```typescript\n * const hash = resolvePaymentMethodHash('wise', { env: 'production' });\n * ```\n */\nexport function resolvePaymentMethodHash(\n nameOrBytes: string,\n opts: { env?: RuntimeEnv; network?: NetworkKey } = {},\n): `0x${string}` {\n const { env = 'production', network = 'base' } = opts;\n if (nameOrBytes.startsWith('0x')) return ensureBytes32(nameOrBytes) as `0x${string}`;\n const mapping = getPaymentMethodMap(env, network);\n if (mapping) {\n const key = nameOrBytes.toLowerCase();\n const entry = mapping[key];\n if (entry?.paymentMethodHash) return entry.paymentMethodHash;\n }\n // Fallback: hash ascii name to bytes32\n return ensureBytes32(nameOrBytes, { hashIfAscii: true });\n}\n\n/**\n * Encodes a fiat currency code into bytes32 format (keccak256 hash).\n *\n * If the input is already a hex string (0x-prefixed), it's normalized to bytes32.\n * Otherwise, the currency code is hashed using keccak256.\n *\n * @param codeOrBytes - Currency code ('USD') or existing bytes32 hash\n * @returns bytes32 keccak256 hash of the currency code\n *\n * @example\n * ```typescript\n * const bytes = resolveFiatCurrencyBytes32('USD');\n * // Returns: 0xc4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e\n * ```\n */\nexport function resolveFiatCurrencyBytes32(codeOrBytes: string): `0x${string}` {\n if (codeOrBytes.startsWith('0x')) return ensureBytes32(codeOrBytes) as `0x${string}`;\n return currencyKeccak256(codeOrBytes.toUpperCase()) as `0x${string}`;\n}\n\n/**\n * Resolves a payment method hash from a provided catalog.\n *\n * This is the recommended method for resolving payment methods as it uses\n * the exact catalog from `getPaymentMethodsCatalog()`, ensuring consistency\n * with on-chain registrations.\n *\n * @param processorName - Payment platform name ('wise', 'revolut', etc.)\n * @param catalog - Payment method catalog from `getPaymentMethodsCatalog()`\n * @returns bytes32 payment method hash\n * @throws Error with available processors if not found\n *\n * @example\n * ```typescript\n * import { getPaymentMethodsCatalog, resolvePaymentMethodHashFromCatalog } from '@zkp2p/sdk';\n *\n * const catalog = getPaymentMethodsCatalog(8453, 'production');\n * const hash = resolvePaymentMethodHashFromCatalog('wise', catalog);\n * ```\n */\nexport function resolvePaymentMethodHashFromCatalog(\n processorName: string,\n catalog: Record<string, { paymentMethodHash: `0x${string}`; currencies?: `0x${string}`[] }>,\n): `0x${string}` {\n if (!processorName) {\n throw new Error('processorName is required to resolve paymentMethodHash');\n }\n if (processorName.startsWith('0x')) {\n return ensureBytes32(processorName) as `0x${string}`;\n }\n const key = processorName.toLowerCase();\n const entry = catalog?.[key];\n if (entry?.paymentMethodHash) return entry.paymentMethodHash;\n\n const available = Object.keys(catalog || {})\n .sort()\n .join(', ');\n throw new Error(\n available\n ? `Unknown processorName: ${processorName}. Available: ${available}`\n : `Unknown processorName: ${processorName}. The payment methods catalog is empty or unavailable.`,\n );\n}\n\n/**\n * Reverse-lookup: converts a payment method hash back to its name.\n *\n * @param hash - The payment method hash (bytes32)\n * @param catalog - Payment method catalog from `getPaymentMethodsCatalog()`\n * @returns Payment platform name (e.g., 'wise') or undefined if not found\n *\n * @example\n * ```typescript\n * const name = resolvePaymentMethodNameFromHash('0x...', catalog);\n * console.log(name); // \"wise\"\n * ```\n */\nexport function resolvePaymentMethodNameFromHash(\n hash: string,\n catalog: PaymentMethodCatalog,\n): string | undefined {\n if (!hash) return undefined;\n const target = ensureBytes32(hash) as `0x${string}`;\n for (const [name, entry] of Object.entries(catalog || {})) {\n if (entry?.paymentMethodHash?.toLowerCase() === target.toLowerCase()) return name;\n }\n return undefined;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { currencyKeccak256 } from './chunk-J34QNX2H.mjs';
1
+ import { currencyKeccak256 } from './chunk-37HJPVJE.mjs';
2
2
 
3
3
  // src/utils/currency.ts
4
4
  var Currency = {
@@ -122,5 +122,5 @@ function isSupportedCurrencyHash(hash) {
122
122
  }
123
123
 
124
124
  export { Currency, currencyInfo, getCurrencyCodeFromHash, getCurrencyInfoFromCountryCode, getCurrencyInfoFromHash, isSupportedCurrencyHash, mapConversionRatesToOnchain, mapConversionRatesToOnchainMinRate };
125
- //# sourceMappingURL=chunk-LZJL5J5X.mjs.map
126
- //# sourceMappingURL=chunk-LZJL5J5X.mjs.map
125
+ //# sourceMappingURL=chunk-MDLTLKWK.mjs.map
126
+ //# sourceMappingURL=chunk-MDLTLKWK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/currency.ts"],"names":[],"mappings":"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","file":"chunk-MDLTLKWK.mjs","sourcesContent":["import { currencyKeccak256 } from './currencyKeccak256';\n\n/**\n * Supported fiat currency codes.\n *\n * Use these constants when specifying currencies in conversion rates:\n *\n * @example\n * ```typescript\n * import { Currency } from '@zkp2p/sdk';\n *\n * const rates = [\n * { currency: Currency.USD, conversionRate: '1020000000000000000' },\n * { currency: Currency.EUR, conversionRate: '1100000000000000000' },\n * ];\n * ```\n */\nexport const Currency = {\n AED: 'AED',\n ARS: 'ARS',\n AUD: 'AUD',\n CAD: 'CAD',\n CHF: 'CHF',\n CNY: 'CNY',\n CZK: 'CZK',\n DKK: 'DKK',\n EUR: 'EUR',\n GBP: 'GBP',\n HKD: 'HKD',\n HUF: 'HUF',\n IDR: 'IDR',\n ILS: 'ILS',\n INR: 'INR',\n JPY: 'JPY',\n KES: 'KES',\n MXN: 'MXN',\n MYR: 'MYR',\n NOK: 'NOK',\n NZD: 'NZD',\n PHP: 'PHP',\n PLN: 'PLN',\n RON: 'RON',\n SAR: 'SAR',\n SEK: 'SEK',\n SGD: 'SGD',\n THB: 'THB',\n TRY: 'TRY',\n UGX: 'UGX',\n USD: 'USD',\n VND: 'VND',\n ZAR: 'ZAR'\n} as const;\n\n/**\n * Union type of all supported currency codes.\n */\nexport type CurrencyType = (typeof Currency)[keyof typeof Currency];\n\n/**\n * Complete currency information including name, symbol, and hash.\n */\nexport type CurrencyData = {\n currency: CurrencyType;\n currencyCode: string;\n currencyName: string;\n currencySymbol: string;\n currencyCodeHash: string;\n countryCode: string;\n};\n\n/**\n * Lookup table containing metadata for all supported currencies.\n *\n * Includes currency name, symbol, keccak256 hash (for on-chain use),\n * and ISO country code for flag display.\n *\n * @example\n * ```typescript\n * import { currencyInfo, Currency } from '@zkp2p/sdk';\n *\n * const usd = currencyInfo[Currency.USD];\n * console.log(usd.currencyName); // \"United States Dollar\"\n * console.log(usd.currencySymbol); // \"$\"\n * console.log(usd.currencyCodeHash); // \"0x...\"\n * ```\n */\nexport const currencyInfo: Record<CurrencyType, CurrencyData> = {\n AED: { currency: 'AED', currencyCode: 'AED', currencyName: 'United Arab Emirates Dirham', currencyCodeHash: currencyKeccak256('AED'), currencySymbol: 'د.إ', countryCode: 'ae' },\n ARS: { currency: 'ARS', currencyCode: 'ARS', currencyName: 'Argentine Peso', currencyCodeHash: currencyKeccak256('ARS'), currencySymbol: '$', countryCode: 'ar' },\n AUD: { currency: 'AUD', currencyCode: 'AUD', currencyName: 'Australian Dollar', currencyCodeHash: currencyKeccak256('AUD'), currencySymbol: 'A$', countryCode: 'au' },\n CAD: { currency: 'CAD', currencyCode: 'CAD', currencyName: 'Canadian Dollar', currencyCodeHash: currencyKeccak256('CAD'), currencySymbol: 'C$', countryCode: 'ca' },\n CHF: { currency: 'CHF', currencyCode: 'CHF', currencyName: 'Swiss Franc', currencyCodeHash: currencyKeccak256('CHF'), currencySymbol: 'Fr', countryCode: 'ch' },\n CNY: { currency: 'CNY', currencyCode: 'CNY', currencyName: 'Chinese Yuan', currencyCodeHash: currencyKeccak256('CNY'), currencySymbol: '¥', countryCode: 'cn' },\n CZK: { currency: 'CZK', currencyCode: 'CZK', currencyName: 'Czech Koruna', currencyCodeHash: currencyKeccak256('CZK'), currencySymbol: 'Kč', countryCode: 'cz' },\n DKK: { currency: 'DKK', currencyCode: 'DKK', currencyName: 'Danish Krone', currencyCodeHash: currencyKeccak256('DKK'), currencySymbol: 'kr', countryCode: 'dk' },\n EUR: { currency: 'EUR', currencyCode: 'EUR', currencyName: 'Euro', currencyCodeHash: currencyKeccak256('EUR'), currencySymbol: '€', countryCode: 'eu' },\n GBP: { currency: 'GBP', currencyCode: 'GBP', currencyName: 'British Pound', currencyCodeHash: currencyKeccak256('GBP'), currencySymbol: '£', countryCode: 'gb' },\n HKD: { currency: 'HKD', currencyCode: 'HKD', currencyName: 'Hong Kong Dollar', currencyCodeHash: currencyKeccak256('HKD'), currencySymbol: 'HK$', countryCode: 'hk' },\n HUF: { currency: 'HUF', currencyCode: 'HUF', currencyName: 'Hungarian Forint', currencyCodeHash: currencyKeccak256('HUF'), currencySymbol: 'Ft', countryCode: 'hu' },\n IDR: { currency: 'IDR', currencyCode: 'IDR', currencyName: 'Indonesian Rupiah', currencyCodeHash: currencyKeccak256('IDR'), currencySymbol: 'Rp', countryCode: 'id' },\n ILS: { currency: 'ILS', currencyCode: 'ILS', currencyName: 'Israeli New Shekel', currencyCodeHash: currencyKeccak256('ILS'), currencySymbol: '₪', countryCode: 'il' },\n INR: { currency: 'INR', currencyCode: 'INR', currencyName: 'Indian Rupee', currencyCodeHash: currencyKeccak256('INR'), currencySymbol: '₹', countryCode: 'in' },\n JPY: { currency: 'JPY', currencyCode: 'JPY', currencyName: 'Japanese Yen', currencyCodeHash: currencyKeccak256('JPY'), currencySymbol: '¥', countryCode: 'jp' },\n KES: { currency: 'KES', currencyCode: 'KES', currencyName: 'Kenyan Shilling', currencyCodeHash: currencyKeccak256('KES'), currencySymbol: 'KSh', countryCode: 'ke' },\n MXN: { currency: 'MXN', currencyCode: 'MXN', currencyName: 'Mexican Peso', currencyCodeHash: currencyKeccak256('MXN'), currencySymbol: '$', countryCode: 'mx' },\n MYR: { currency: 'MYR', currencyCode: 'MYR', currencyName: 'Malaysian Ringgit', currencyCodeHash: currencyKeccak256('MYR'), currencySymbol: 'RM', countryCode: 'my' },\n NOK: { currency: 'NOK', currencyCode: 'NOK', currencyName: 'Norwegian Krone', currencyCodeHash: currencyKeccak256('NOK'), currencySymbol: 'kr', countryCode: 'no' },\n NZD: { currency: 'NZD', currencyCode: 'NZD', currencyName: 'New Zealand Dollar', currencyCodeHash: currencyKeccak256('NZD'), currencySymbol: 'NZ$', countryCode: 'nz' },\n PHP: { currency: 'PHP', currencyCode: 'PHP', currencyName: 'Philippine Peso', currencyCodeHash: currencyKeccak256('PHP'), currencySymbol: '₱', countryCode: 'ph' },\n PLN: { currency: 'PLN', currencyCode: 'PLN', currencyName: 'Polish Złoty', currencyCodeHash: currencyKeccak256('PLN'), currencySymbol: 'zł', countryCode: 'pl' },\n RON: { currency: 'RON', currencyCode: 'RON', currencyName: 'Romanian Leu', currencyCodeHash: currencyKeccak256('RON'), currencySymbol: 'lei', countryCode: 'ro' },\n SAR: { currency: 'SAR', currencyCode: 'SAR', currencyName: 'Saudi Riyal', currencyCodeHash: currencyKeccak256('SAR'), currencySymbol: '﷼', countryCode: 'sa' },\n SEK: { currency: 'SEK', currencyCode: 'SEK', currencyName: 'Swedish Krona', currencyCodeHash: currencyKeccak256('SEK'), currencySymbol: 'kr', countryCode: 'se' },\n SGD: { currency: 'SGD', currencyCode: 'SGD', currencyName: 'Singapore Dollar', currencyCodeHash: currencyKeccak256('SGD'), currencySymbol: 'S$', countryCode: 'sg' },\n THB: { currency: 'THB', currencyCode: 'THB', currencyName: 'Thai Baht', currencyCodeHash: currencyKeccak256('THB'), currencySymbol: '฿', countryCode: 'th' },\n TRY: { currency: 'TRY', currencyCode: 'TRY', currencyName: 'Turkish Lira', currencyCodeHash: currencyKeccak256('TRY'), currencySymbol: '₺', countryCode: 'tr' },\n UGX: { currency: 'UGX', currencyCode: 'UGX', currencyName: 'Ugandan Shilling', currencyCodeHash: currencyKeccak256('UGX'), currencySymbol: 'USh', countryCode: 'ug' },\n USD: { currency: 'USD', currencyCode: 'USD', currencyName: 'United States Dollar', currencyCodeHash: currencyKeccak256('USD'), currencySymbol: '$', countryCode: 'us' },\n VND: { currency: 'VND', currencyCode: 'VND', currencyName: 'Vietnamese Dong', currencyCodeHash: currencyKeccak256('VND'), currencySymbol: '₫', countryCode: 'vn' },\n ZAR: { currency: 'ZAR', currencyCode: 'ZAR', currencyName: 'South African Rand', currencyCodeHash: currencyKeccak256('ZAR'), currencySymbol: 'R', countryCode: 'za' },\n} as unknown as Record<CurrencyType, CurrencyData>;\n\n/**\n * UI-friendly currency rate structure used in SDK methods.\n */\nexport type UICurrencyRate = { currency: CurrencyType; conversionRate: string };\n\n/**\n * On-chain currency structure with bytes32 code and bigint rate.\n */\nexport type OnchainCurrency = { code: `0x${string}`; conversionRate: bigint };\n\n/**\n * Maps UI currency rates to on-chain format.\n *\n * @param groups - Nested array of currency rates per payment method\n * @param expectedGroups - Expected number of groups (for validation)\n * @returns On-chain formatted currency arrays\n * @throws Error if groups structure is invalid or lengths don't match\n *\n * @internal Used by createDeposit internally\n */\nexport function mapConversionRatesToOnchain(\n groups: UICurrencyRate[][],\n expectedGroups?: number\n): OnchainCurrency[][] {\n if (!Array.isArray(groups) || !Array.isArray(groups[0])) {\n throw new Error('conversionRates must be a nested array per processor');\n }\n if (typeof expectedGroups === 'number' && groups.length !== expectedGroups) {\n throw new Error(`conversionRates length (${groups.length}) must match processorNames length (${expectedGroups})`);\n }\n return groups.map((group) => group.map((r) => {\n const info = currencyInfo[r.currency as CurrencyType];\n if (!info?.currencyCodeHash) throw new Error('Invalid currency');\n return { code: info.currencyCodeHash as `0x${string}`, conversionRate: BigInt(r.conversionRate) };\n }));\n}\n\n/**\n * On-chain currency structure with minimum conversion rate (V3 escrow format).\n */\nexport type OnchainCurrencyMinRate = { code: `0x${string}`; minConversionRate: bigint };\n\n/**\n * Maps UI currency rates to on-chain V3 escrow format with minConversionRate.\n *\n * @param groups - Nested array of currency rates per payment method\n * @param expectedGroups - Expected number of groups (for validation)\n * @returns On-chain formatted currency arrays for V3 escrow\n * @throws Error if groups structure is invalid or lengths don't match\n */\nexport function mapConversionRatesToOnchainMinRate(\n groups: UICurrencyRate[][],\n expectedGroups?: number\n): OnchainCurrencyMinRate[][] {\n if (!Array.isArray(groups) || !Array.isArray(groups[0])) {\n throw new Error('conversionRates must be a nested array per payment method');\n }\n if (typeof expectedGroups === 'number' && groups.length !== expectedGroups) {\n throw new Error(`conversionRates length (${groups.length}) must match processorNames length (${expectedGroups})`);\n }\n return groups.map((group) =>\n group.map((r) => {\n const info = currencyInfo[r.currency as CurrencyType];\n const hash = info?.currencyCodeHash as `0x${string}` | undefined;\n if (!hash) throw new Error(`Invalid currency: ${r.currency}`);\n return { code: hash, minConversionRate: BigInt(r.conversionRate) };\n })\n );\n}\n\n/**\n * Looks up currency info by its keccak256 hash.\n *\n * @param hash - The currency code hash (0x-prefixed)\n * @returns Currency data if found, undefined otherwise\n *\n * @example\n * ```typescript\n * const info = getCurrencyInfoFromHash('0x...');\n * if (info) {\n * console.log(info.currencyCode); // \"USD\"\n * }\n * ```\n */\nexport function getCurrencyInfoFromHash(hash: string): CurrencyData | undefined {\n if (!hash) return undefined;\n const h = hash.toLowerCase();\n for (const key of Object.keys(currencyInfo) as Array<keyof typeof currencyInfo>) {\n const info = currencyInfo[key];\n if (info?.currencyCodeHash?.toLowerCase() === h) return info;\n }\n return undefined;\n}\n\n/**\n * Looks up currency info by ISO country code.\n *\n * @param code - The ISO country code (e.g., 'US', 'GB')\n * @returns Currency data if found, undefined otherwise\n */\nexport function getCurrencyInfoFromCountryCode(code: string): CurrencyData | undefined {\n if (!code) return undefined;\n const upper = code.toUpperCase() as CurrencyType;\n return currencyInfo[upper];\n}\n\n/**\n * Converts a currency hash to its ISO currency code.\n *\n * @param hash - The currency code hash (0x-prefixed)\n * @returns Currency code string (e.g., 'USD') or undefined if not found\n *\n * @example\n * ```typescript\n * const code = getCurrencyCodeFromHash('0x...');\n * console.log(code); // \"USD\"\n * ```\n */\nexport function getCurrencyCodeFromHash(hash: string): string | undefined {\n return getCurrencyInfoFromHash(hash)?.currencyCode;\n}\n\n/**\n * Checks if a currency hash is recognized by the SDK.\n *\n * @param hash - The currency code hash to check\n * @returns true if the hash corresponds to a supported currency\n */\nexport function isSupportedCurrencyHash(hash: string): boolean {\n return Boolean(getCurrencyInfoFromHash(hash));\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  export { DEFAULT_BASE_API_URL, DEFAULT_WITNESS_URL, DEPLOYED_ADDRESSES, PAYMENT_PLATFORMS, PLATFORM_ATTESTATION_CONFIG, PLATFORM_METADATA, SUPPORTED_CHAIN_IDS, TOKEN_METADATA, resolvePlatformAttestationConfig } from './chunk-GYYD6SSA.mjs';
2
- export { Currency, currencyInfo } from './chunk-LZJL5J5X.mjs';
3
- import './chunk-J34QNX2H.mjs';
4
- import './chunk-3QS3WKRC.mjs';
5
- //# sourceMappingURL=constants-S277YHME.mjs.map
6
- //# sourceMappingURL=constants-S277YHME.mjs.map
2
+ export { Currency, currencyInfo } from './chunk-MDLTLKWK.mjs';
3
+ import './chunk-37HJPVJE.mjs';
4
+ //# sourceMappingURL=constants-BBJQLAU3.mjs.map
5
+ //# sourceMappingURL=constants-BBJQLAU3.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"constants-S277YHME.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"constants-BBJQLAU3.mjs"}
@@ -0,0 +1,4 @@
1
+ export { Currency, currencyInfo, getCurrencyCodeFromHash, getCurrencyInfoFromCountryCode, getCurrencyInfoFromHash, isSupportedCurrencyHash, mapConversionRatesToOnchain, mapConversionRatesToOnchainMinRate } from './chunk-MDLTLKWK.mjs';
2
+ import './chunk-37HJPVJE.mjs';
3
+ //# sourceMappingURL=currency-P4HY7S34.mjs.map
4
+ //# sourceMappingURL=currency-P4HY7S34.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"currency-NTRIKAOH.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"currency-P4HY7S34.mjs"}