@klappay/types 5.2.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <img src="https://raw.githubusercontent.com/klappay/.github/refs/heads/main/profile/logo.png" alt="Klappay" width="80" />
1
+ <img src="https://api.klappay.com/types/logo.png" alt="Klappay" width="80" />
2
2
 
3
3
  # @klappay/types
4
4
 
@@ -61,7 +61,7 @@ var NETWORK_FAMILIES = {
61
61
  avalanche: "evm-official",
62
62
  bnb: "evm-official",
63
63
  tron: "tron",
64
- arc: "arc"
64
+ arc: "evm-official"
65
65
  };
66
66
 
67
67
  // src/addresses.constants.ts
@@ -222,4 +222,4 @@ export {
222
222
  ALT_TOKEN_DECIMALS,
223
223
  ALT_TOKEN_ADDRESSES
224
224
  };
225
- //# sourceMappingURL=chunk-ATCNU2ZP.mjs.map
225
+ //# sourceMappingURL=chunk-46SHMIHE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/networks.constants.ts","../src/addresses.constants.ts","../src/tokens.constants.ts","../src/alt-tokens.constants.ts"],"sourcesContent":["import type { Environment } from './environment'\nimport type { Network } from './networks'\n\nexport const NETWORK_LABELS: Record<Network, string> = {\n base: 'Base',\n optimism: 'Optimism',\n polygon: 'Polygon',\n ethereum: 'Ethereum',\n arbitrum: 'Arbitrum',\n avalanche: 'Avalanche',\n bnb: 'BNB Chain',\n tron: 'TRON',\n arc: 'Arc',\n}\n\nexport const NETWORK_EXPLORERS: Record<Network, string> = {\n base: 'https://basescan.org',\n optimism: 'https://optimistic.etherscan.io',\n polygon: 'https://polygonscan.com',\n ethereum: 'https://etherscan.io',\n arbitrum: 'https://arbiscan.io',\n avalanche: 'https://snowtrace.io',\n bnb: 'https://bscscan.com',\n tron: 'https://tronscan.org',\n arc: 'https://explorer.arc.io',\n}\n\nexport const EVM_NETWORKS = [\n 'base',\n 'optimism',\n 'polygon',\n 'ethereum',\n 'arbitrum',\n 'avalanche',\n 'bnb',\n 'arc',\n] as const\nexport type EvmNetwork = (typeof EVM_NETWORKS)[number]\n\nexport const OPERATIONAL_NETWORKS = [\n 'base',\n 'arbitrum',\n 'optimism',\n 'polygon',\n 'ethereum',\n 'avalanche',\n 'bnb',\n 'arc',\n 'tron',\n] as const\nexport type OperationalNetwork = (typeof OPERATIONAL_NETWORKS)[number]\n\nexport const CHAIN_IDS: Record<EvmNetwork, Partial<Record<Environment, number>>> = {\n base: { live: 8453, test: 84532 },\n optimism: { live: 10, test: 11155420 },\n ethereum: { live: 1, test: 11155111 },\n polygon: { live: 137 },\n arbitrum: { live: 42161 },\n avalanche: { live: 43114 },\n bnb: { live: 56 },\n arc: { live: 5042, test: 5042002 },\n}\n\nexport const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron'> = {\n base: 'evm-official',\n optimism: 'evm-official',\n polygon: 'evm-official',\n ethereum: 'evm-official',\n arbitrum: 'evm-official',\n avalanche: 'evm-official',\n bnb: 'evm-official',\n tron: 'tron',\n arc: 'evm-official',\n}\nexport type NetworkFamily = (typeof NETWORK_FAMILIES)[Network]\n","export type EvmAddress = `0x${string}`\nexport type TronAddress = string & { readonly __tronAddress: unique symbol }\n\nexport type SplitAddress = EvmAddress | TronAddress\n\nconst EVM_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/i\nconst TRON_ADDRESS_REGEX = /^T[1-9A-HJ-NP-Za-km-z]{33}$/\n\nexport function isEvmAddress(value: string): value is EvmAddress {\n return EVM_ADDRESS_REGEX.test(value)\n}\n\nexport function isTronAddress(value: string): value is TronAddress {\n return TRON_ADDRESS_REGEX.test(value)\n}\n\nexport function isSplitAddress(value: string): value is SplitAddress {\n return isEvmAddress(value) || isTronAddress(value)\n}\n\nexport function tronAddress(value: string): TronAddress {\n if (!isTronAddress(value)) throw new Error(`not a valid TRON address: ${value}`)\n return value\n}\n\nexport function addressesEqual(a: string, b: string): boolean {\n if (isEvmAddress(a) && isEvmAddress(b)) return a.toLowerCase() === b.toLowerCase()\n return a === b\n}\n","import { type SplitAddress, tronAddress } from './addresses.constants'\nimport type { Environment } from './environment'\nimport type { Network } from './networks'\nimport type { Token } from './tokens'\n\nexport const TOKEN_DECIMALS = 6\n\nexport type TokenDeployment = { address: SplitAddress; decimals: number }\n\ntype DeploymentsByNetwork = Partial<Record<Network, Partial<Record<Environment, TokenDeployment>>>>\ntype AddressesByNetwork = Partial<Record<Network, Partial<Record<Environment, SplitAddress>>>>\n\nexport const TOKEN_DEPLOYMENTS: Record<Token, DeploymentsByNetwork> = {\n USDC: {\n base: {\n live: { address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', decimals: 6 },\n test: { address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', decimals: 6 },\n },\n optimism: {\n live: { address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', decimals: 6 },\n test: { address: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7', decimals: 6 },\n },\n polygon: { live: { address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', decimals: 6 } },\n ethereum: {\n live: { address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', decimals: 6 },\n test: { address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', decimals: 6 },\n },\n arbitrum: { live: { address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', decimals: 6 } },\n avalanche: { live: { address: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E', decimals: 6 } },\n bnb: { live: { address: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', decimals: 18 } },\n arc: {\n live: { address: '0x3600000000000000000000000000000000000000', decimals: 6 },\n test: { address: '0x3600000000000000000000000000000000000000', decimals: 6 },\n },\n },\n USDT: {\n base: { live: { address: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2', decimals: 6 } },\n optimism: { live: { address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', decimals: 6 } },\n polygon: { live: { address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F', decimals: 6 } },\n ethereum: { live: { address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', decimals: 6 } },\n arbitrum: { live: { address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9', decimals: 6 } },\n avalanche: { live: { address: '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7', decimals: 6 } },\n bnb: { live: { address: '0x55d398326f99059fF775485246999027B3197955', decimals: 18 } },\n tron: {\n live: { address: tronAddress('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'), decimals: 6 },\n test: { address: tronAddress('TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf'), decimals: 6 },\n },\n },\n}\n\nexport function getTokenDeployment(\n token: Token,\n network: Network,\n environment: Environment,\n): TokenDeployment | undefined {\n return TOKEN_DEPLOYMENTS[token][network]?.[environment]\n}\n\nexport function isPaymentDeploymentEnabled(\n token: Token,\n network: Network,\n environment: Environment,\n): boolean {\n return getTokenDeployment(token, network, environment) !== undefined\n}\n\nfunction deriveAddresses(deployments: DeploymentsByNetwork): AddressesByNetwork {\n const addresses: AddressesByNetwork = {}\n for (const network of Object.keys(deployments) as Network[]) {\n const byEnvironment = deployments[network]\n if (!byEnvironment) continue\n const networkAddresses: Partial<Record<Environment, SplitAddress>> = {}\n for (const environment of ['live', 'test'] as const) {\n const deployment = byEnvironment[environment]\n if (deployment) networkAddresses[environment] = deployment.address\n }\n addresses[network] = networkAddresses\n }\n return addresses\n}\n\nexport const TOKEN_ADDRESSES: Record<Token, AddressesByNetwork> = {\n USDC: deriveAddresses(TOKEN_DEPLOYMENTS.USDC),\n USDT: deriveAddresses(TOKEN_DEPLOYMENTS.USDT),\n}\n","import type { AltToken } from './alt-tokens'\nimport type { Network } from './networks'\n\nexport const ALT_TOKEN_DECIMALS: Record<AltToken, number> = {\n ETH: 18,\n BNB: 18,\n POL: 18,\n AVAX: 18,\n BTC: 8,\n LINK: 18,\n ARB: 18,\n OP: 18,\n CBETH: 18,\n}\n\nexport const ALT_TOKEN_ADDRESSES: Record<\n Network,\n Partial<Record<AltToken, 'native' | `0x${string}`>>\n> = {\n base: {\n ETH: 'native',\n BTC: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n LINK: '0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196',\n CBETH: '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22',\n },\n optimism: {\n ETH: 'native',\n BTC: '0x68f180fcCe6836688e9084f035309E29Bf0A2095',\n LINK: '0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6',\n OP: '0x4200000000000000000000000000000000000042',\n },\n ethereum: {\n ETH: 'native',\n BTC: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n LINK: '0x514910771AF9Ca656af840dff83E8264EcF986CA',\n },\n arbitrum: {\n ETH: 'native',\n BTC: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',\n LINK: '0xf97f4df75117a78c1A5a0DBb814Af92458539FB4',\n ARB: '0x912CE59144191C1204E64559FE8253a0e49E6548',\n },\n polygon: {\n POL: 'native',\n BTC: '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6',\n LINK: '0xb0897686c545045aFc77CF20eC7A532E3120E0F1',\n },\n avalanche: {\n AVAX: 'native',\n BTC: '0x2297aebd383787a160dd0d9f71508148769342e3',\n LINK: '0x5947BB275c521040051D82396192181b413227A3',\n },\n bnb: { BNB: 'native' },\n tron: {},\n arc: {\n BTC: '0x171A4217b86A807A64eB94757Db6849fb4bDbAA0',\n },\n}\n"],"mappings":"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","names":[]}
@@ -13,7 +13,7 @@ type EvmNetwork = (typeof EVM_NETWORKS)[number];
13
13
  declare const OPERATIONAL_NETWORKS: readonly ["base", "arbitrum", "optimism", "polygon", "ethereum", "avalanche", "bnb", "arc", "tron"];
14
14
  type OperationalNetwork = (typeof OPERATIONAL_NETWORKS)[number];
15
15
  declare const CHAIN_IDS: Record<EvmNetwork, Partial<Record<Environment, number>>>;
16
- declare const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron' | 'arc'>;
16
+ declare const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron'>;
17
17
  type NetworkFamily = (typeof NETWORK_FAMILIES)[Network];
18
18
 
19
19
  type EvmAddress = `0x${string}`;
@@ -13,7 +13,7 @@ type EvmNetwork = (typeof EVM_NETWORKS)[number];
13
13
  declare const OPERATIONAL_NETWORKS: readonly ["base", "arbitrum", "optimism", "polygon", "ethereum", "avalanche", "bnb", "arc", "tron"];
14
14
  type OperationalNetwork = (typeof OPERATIONAL_NETWORKS)[number];
15
15
  declare const CHAIN_IDS: Record<EvmNetwork, Partial<Record<Environment, number>>>;
16
- declare const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron' | 'arc'>;
16
+ declare const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron'>;
17
17
  type NetworkFamily = (typeof NETWORK_FAMILIES)[Network];
18
18
 
19
19
  type EvmAddress = `0x${string}`;
@@ -1,2 +1,2 @@
1
- export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, C as CHAIN_IDS, E as EVM_NETWORKS, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, k as NetworkFamily, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, s as TokenDeployment, w as getTokenDeployment, y as isPaymentDeploymentEnabled } from './constants-DpqgXUf_.mjs';
1
+ export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, C as CHAIN_IDS, E as EVM_NETWORKS, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, k as NetworkFamily, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, s as TokenDeployment, w as getTokenDeployment, y as isPaymentDeploymentEnabled } from './constants-D_aWF5Lc.mjs';
2
2
  import 'zod';
@@ -1,2 +1,2 @@
1
- export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, C as CHAIN_IDS, E as EVM_NETWORKS, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, k as NetworkFamily, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, s as TokenDeployment, w as getTokenDeployment, y as isPaymentDeploymentEnabled } from './constants-DpqgXUf_.js';
1
+ export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, C as CHAIN_IDS, E as EVM_NETWORKS, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, k as NetworkFamily, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, s as TokenDeployment, w as getTokenDeployment, y as isPaymentDeploymentEnabled } from './constants-D_aWF5Lc.js';
2
2
  import 'zod';
package/dist/constants.js CHANGED
@@ -99,7 +99,7 @@ var NETWORK_FAMILIES = {
99
99
  avalanche: "evm-official",
100
100
  bnb: "evm-official",
101
101
  tron: "tron",
102
- arc: "arc"
102
+ arc: "evm-official"
103
103
  };
104
104
 
105
105
  // src/addresses.constants.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts","../src/networks.constants.ts","../src/addresses.constants.ts","../src/tokens.constants.ts","../src/alt-tokens.constants.ts"],"sourcesContent":["export * from './networks.constants'\nexport * from './tokens.constants'\nexport * from './alt-tokens.constants'\n","import type { Environment } from './environment'\nimport type { Network } from './networks'\n\nexport const NETWORK_LABELS: Record<Network, string> = {\n base: 'Base',\n optimism: 'Optimism',\n polygon: 'Polygon',\n ethereum: 'Ethereum',\n arbitrum: 'Arbitrum',\n avalanche: 'Avalanche',\n bnb: 'BNB Chain',\n tron: 'TRON',\n arc: 'Arc',\n}\n\nexport const NETWORK_EXPLORERS: Record<Network, string> = {\n base: 'https://basescan.org',\n optimism: 'https://optimistic.etherscan.io',\n polygon: 'https://polygonscan.com',\n ethereum: 'https://etherscan.io',\n arbitrum: 'https://arbiscan.io',\n avalanche: 'https://snowtrace.io',\n bnb: 'https://bscscan.com',\n tron: 'https://tronscan.org',\n arc: 'https://explorer.arc.io',\n}\n\nexport const EVM_NETWORKS = [\n 'base',\n 'optimism',\n 'polygon',\n 'ethereum',\n 'arbitrum',\n 'avalanche',\n 'bnb',\n 'arc',\n] as const\nexport type EvmNetwork = (typeof EVM_NETWORKS)[number]\n\nexport const OPERATIONAL_NETWORKS = [\n 'base',\n 'arbitrum',\n 'optimism',\n 'polygon',\n 'ethereum',\n 'avalanche',\n 'bnb',\n 'arc',\n 'tron',\n] as const\nexport type OperationalNetwork = (typeof OPERATIONAL_NETWORKS)[number]\n\nexport const CHAIN_IDS: Record<EvmNetwork, Partial<Record<Environment, number>>> = {\n base: { live: 8453, test: 84532 },\n optimism: { live: 10, test: 11155420 },\n ethereum: { live: 1, test: 11155111 },\n polygon: { live: 137 },\n arbitrum: { live: 42161 },\n avalanche: { live: 43114 },\n bnb: { live: 56 },\n arc: { live: 5042, test: 5042002 },\n}\n\nexport const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron' | 'arc'> = {\n base: 'evm-official',\n optimism: 'evm-official',\n polygon: 'evm-official',\n ethereum: 'evm-official',\n arbitrum: 'evm-official',\n avalanche: 'evm-official',\n bnb: 'evm-official',\n tron: 'tron',\n arc: 'arc',\n}\nexport type NetworkFamily = (typeof NETWORK_FAMILIES)[Network]\n","export type EvmAddress = `0x${string}`\nexport type TronAddress = string & { readonly __tronAddress: unique symbol }\n\nexport type SplitAddress = EvmAddress | TronAddress\n\nconst EVM_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/i\nconst TRON_ADDRESS_REGEX = /^T[1-9A-HJ-NP-Za-km-z]{33}$/\n\nexport function isEvmAddress(value: string): value is EvmAddress {\n return EVM_ADDRESS_REGEX.test(value)\n}\n\nexport function isTronAddress(value: string): value is TronAddress {\n return TRON_ADDRESS_REGEX.test(value)\n}\n\nexport function isSplitAddress(value: string): value is SplitAddress {\n return isEvmAddress(value) || isTronAddress(value)\n}\n\nexport function tronAddress(value: string): TronAddress {\n if (!isTronAddress(value)) throw new Error(`not a valid TRON address: ${value}`)\n return value\n}\n\nexport function addressesEqual(a: string, b: string): boolean {\n if (isEvmAddress(a) && isEvmAddress(b)) return a.toLowerCase() === b.toLowerCase()\n return a === b\n}\n","import { type SplitAddress, tronAddress } from './addresses.constants'\nimport type { Environment } from './environment'\nimport type { Network } from './networks'\nimport type { Token } from './tokens'\n\nexport const TOKEN_DECIMALS = 6\n\nexport type TokenDeployment = { address: SplitAddress; decimals: number }\n\ntype DeploymentsByNetwork = Partial<Record<Network, Partial<Record<Environment, TokenDeployment>>>>\ntype AddressesByNetwork = Partial<Record<Network, Partial<Record<Environment, SplitAddress>>>>\n\nexport const TOKEN_DEPLOYMENTS: Record<Token, DeploymentsByNetwork> = {\n USDC: {\n base: {\n live: { address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', decimals: 6 },\n test: { address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', decimals: 6 },\n },\n optimism: {\n live: { address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', decimals: 6 },\n test: { address: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7', decimals: 6 },\n },\n polygon: { live: { address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', decimals: 6 } },\n ethereum: {\n live: { address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', decimals: 6 },\n test: { address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', decimals: 6 },\n },\n arbitrum: { live: { address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', decimals: 6 } },\n avalanche: { live: { address: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E', decimals: 6 } },\n bnb: { live: { address: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', decimals: 18 } },\n arc: {\n live: { address: '0x3600000000000000000000000000000000000000', decimals: 6 },\n test: { address: '0x3600000000000000000000000000000000000000', decimals: 6 },\n },\n },\n USDT: {\n base: { live: { address: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2', decimals: 6 } },\n optimism: { live: { address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', decimals: 6 } },\n polygon: { live: { address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F', decimals: 6 } },\n ethereum: { live: { address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', decimals: 6 } },\n arbitrum: { live: { address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9', decimals: 6 } },\n avalanche: { live: { address: '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7', decimals: 6 } },\n bnb: { live: { address: '0x55d398326f99059fF775485246999027B3197955', decimals: 18 } },\n tron: {\n live: { address: tronAddress('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'), decimals: 6 },\n test: { address: tronAddress('TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf'), decimals: 6 },\n },\n },\n}\n\nexport function getTokenDeployment(\n token: Token,\n network: Network,\n environment: Environment,\n): TokenDeployment | undefined {\n return TOKEN_DEPLOYMENTS[token][network]?.[environment]\n}\n\nexport function isPaymentDeploymentEnabled(\n token: Token,\n network: Network,\n environment: Environment,\n): boolean {\n return getTokenDeployment(token, network, environment) !== undefined\n}\n\nfunction deriveAddresses(deployments: DeploymentsByNetwork): AddressesByNetwork {\n const addresses: AddressesByNetwork = {}\n for (const network of Object.keys(deployments) as Network[]) {\n const byEnvironment = deployments[network]\n if (!byEnvironment) continue\n const networkAddresses: Partial<Record<Environment, SplitAddress>> = {}\n for (const environment of ['live', 'test'] as const) {\n const deployment = byEnvironment[environment]\n if (deployment) networkAddresses[environment] = deployment.address\n }\n addresses[network] = networkAddresses\n }\n return addresses\n}\n\nexport const TOKEN_ADDRESSES: Record<Token, AddressesByNetwork> = {\n USDC: deriveAddresses(TOKEN_DEPLOYMENTS.USDC),\n USDT: deriveAddresses(TOKEN_DEPLOYMENTS.USDT),\n}\n","import type { AltToken } from './alt-tokens'\nimport type { Network } from './networks'\n\nexport const ALT_TOKEN_DECIMALS: Record<AltToken, number> = {\n ETH: 18,\n BNB: 18,\n POL: 18,\n AVAX: 18,\n BTC: 8,\n LINK: 18,\n ARB: 18,\n OP: 18,\n CBETH: 18,\n}\n\nexport const ALT_TOKEN_ADDRESSES: Record<\n Network,\n Partial<Record<AltToken, 'native' | `0x${string}`>>\n> = {\n base: {\n ETH: 'native',\n BTC: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n LINK: '0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196',\n CBETH: '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22',\n },\n optimism: {\n ETH: 'native',\n BTC: '0x68f180fcCe6836688e9084f035309E29Bf0A2095',\n LINK: '0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6',\n OP: '0x4200000000000000000000000000000000000042',\n },\n ethereum: {\n ETH: 'native',\n BTC: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n LINK: '0x514910771AF9Ca656af840dff83E8264EcF986CA',\n },\n arbitrum: {\n ETH: 'native',\n BTC: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',\n LINK: '0xf97f4df75117a78c1A5a0DBb814Af92458539FB4',\n ARB: '0x912CE59144191C1204E64559FE8253a0e49E6548',\n },\n polygon: {\n POL: 'native',\n BTC: '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6',\n LINK: '0xb0897686c545045aFc77CF20eC7A532E3120E0F1',\n },\n avalanche: {\n AVAX: 'native',\n BTC: '0x2297aebd383787a160dd0d9f71508148769342e3',\n LINK: '0x5947BB275c521040051D82396192181b413227A3',\n },\n bnb: { BNB: 'native' },\n tron: {},\n arc: {\n BTC: '0x171A4217b86A807A64eB94757Db6849fb4bDbAA0',\n },\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/constants.ts","../src/networks.constants.ts","../src/addresses.constants.ts","../src/tokens.constants.ts","../src/alt-tokens.constants.ts"],"sourcesContent":["export * from './networks.constants'\nexport * from './tokens.constants'\nexport * from './alt-tokens.constants'\n","import type { Environment } from './environment'\nimport type { Network } from './networks'\n\nexport const NETWORK_LABELS: Record<Network, string> = {\n base: 'Base',\n optimism: 'Optimism',\n polygon: 'Polygon',\n ethereum: 'Ethereum',\n arbitrum: 'Arbitrum',\n avalanche: 'Avalanche',\n bnb: 'BNB Chain',\n tron: 'TRON',\n arc: 'Arc',\n}\n\nexport const NETWORK_EXPLORERS: Record<Network, string> = {\n base: 'https://basescan.org',\n optimism: 'https://optimistic.etherscan.io',\n polygon: 'https://polygonscan.com',\n ethereum: 'https://etherscan.io',\n arbitrum: 'https://arbiscan.io',\n avalanche: 'https://snowtrace.io',\n bnb: 'https://bscscan.com',\n tron: 'https://tronscan.org',\n arc: 'https://explorer.arc.io',\n}\n\nexport const EVM_NETWORKS = [\n 'base',\n 'optimism',\n 'polygon',\n 'ethereum',\n 'arbitrum',\n 'avalanche',\n 'bnb',\n 'arc',\n] as const\nexport type EvmNetwork = (typeof EVM_NETWORKS)[number]\n\nexport const OPERATIONAL_NETWORKS = [\n 'base',\n 'arbitrum',\n 'optimism',\n 'polygon',\n 'ethereum',\n 'avalanche',\n 'bnb',\n 'arc',\n 'tron',\n] as const\nexport type OperationalNetwork = (typeof OPERATIONAL_NETWORKS)[number]\n\nexport const CHAIN_IDS: Record<EvmNetwork, Partial<Record<Environment, number>>> = {\n base: { live: 8453, test: 84532 },\n optimism: { live: 10, test: 11155420 },\n ethereum: { live: 1, test: 11155111 },\n polygon: { live: 137 },\n arbitrum: { live: 42161 },\n avalanche: { live: 43114 },\n bnb: { live: 56 },\n arc: { live: 5042, test: 5042002 },\n}\n\nexport const NETWORK_FAMILIES: Record<Network, 'evm-official' | 'tron'> = {\n base: 'evm-official',\n optimism: 'evm-official',\n polygon: 'evm-official',\n ethereum: 'evm-official',\n arbitrum: 'evm-official',\n avalanche: 'evm-official',\n bnb: 'evm-official',\n tron: 'tron',\n arc: 'evm-official',\n}\nexport type NetworkFamily = (typeof NETWORK_FAMILIES)[Network]\n","export type EvmAddress = `0x${string}`\nexport type TronAddress = string & { readonly __tronAddress: unique symbol }\n\nexport type SplitAddress = EvmAddress | TronAddress\n\nconst EVM_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/i\nconst TRON_ADDRESS_REGEX = /^T[1-9A-HJ-NP-Za-km-z]{33}$/\n\nexport function isEvmAddress(value: string): value is EvmAddress {\n return EVM_ADDRESS_REGEX.test(value)\n}\n\nexport function isTronAddress(value: string): value is TronAddress {\n return TRON_ADDRESS_REGEX.test(value)\n}\n\nexport function isSplitAddress(value: string): value is SplitAddress {\n return isEvmAddress(value) || isTronAddress(value)\n}\n\nexport function tronAddress(value: string): TronAddress {\n if (!isTronAddress(value)) throw new Error(`not a valid TRON address: ${value}`)\n return value\n}\n\nexport function addressesEqual(a: string, b: string): boolean {\n if (isEvmAddress(a) && isEvmAddress(b)) return a.toLowerCase() === b.toLowerCase()\n return a === b\n}\n","import { type SplitAddress, tronAddress } from './addresses.constants'\nimport type { Environment } from './environment'\nimport type { Network } from './networks'\nimport type { Token } from './tokens'\n\nexport const TOKEN_DECIMALS = 6\n\nexport type TokenDeployment = { address: SplitAddress; decimals: number }\n\ntype DeploymentsByNetwork = Partial<Record<Network, Partial<Record<Environment, TokenDeployment>>>>\ntype AddressesByNetwork = Partial<Record<Network, Partial<Record<Environment, SplitAddress>>>>\n\nexport const TOKEN_DEPLOYMENTS: Record<Token, DeploymentsByNetwork> = {\n USDC: {\n base: {\n live: { address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', decimals: 6 },\n test: { address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', decimals: 6 },\n },\n optimism: {\n live: { address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', decimals: 6 },\n test: { address: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7', decimals: 6 },\n },\n polygon: { live: { address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', decimals: 6 } },\n ethereum: {\n live: { address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', decimals: 6 },\n test: { address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', decimals: 6 },\n },\n arbitrum: { live: { address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', decimals: 6 } },\n avalanche: { live: { address: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E', decimals: 6 } },\n bnb: { live: { address: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', decimals: 18 } },\n arc: {\n live: { address: '0x3600000000000000000000000000000000000000', decimals: 6 },\n test: { address: '0x3600000000000000000000000000000000000000', decimals: 6 },\n },\n },\n USDT: {\n base: { live: { address: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2', decimals: 6 } },\n optimism: { live: { address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', decimals: 6 } },\n polygon: { live: { address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F', decimals: 6 } },\n ethereum: { live: { address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', decimals: 6 } },\n arbitrum: { live: { address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9', decimals: 6 } },\n avalanche: { live: { address: '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7', decimals: 6 } },\n bnb: { live: { address: '0x55d398326f99059fF775485246999027B3197955', decimals: 18 } },\n tron: {\n live: { address: tronAddress('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'), decimals: 6 },\n test: { address: tronAddress('TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf'), decimals: 6 },\n },\n },\n}\n\nexport function getTokenDeployment(\n token: Token,\n network: Network,\n environment: Environment,\n): TokenDeployment | undefined {\n return TOKEN_DEPLOYMENTS[token][network]?.[environment]\n}\n\nexport function isPaymentDeploymentEnabled(\n token: Token,\n network: Network,\n environment: Environment,\n): boolean {\n return getTokenDeployment(token, network, environment) !== undefined\n}\n\nfunction deriveAddresses(deployments: DeploymentsByNetwork): AddressesByNetwork {\n const addresses: AddressesByNetwork = {}\n for (const network of Object.keys(deployments) as Network[]) {\n const byEnvironment = deployments[network]\n if (!byEnvironment) continue\n const networkAddresses: Partial<Record<Environment, SplitAddress>> = {}\n for (const environment of ['live', 'test'] as const) {\n const deployment = byEnvironment[environment]\n if (deployment) networkAddresses[environment] = deployment.address\n }\n addresses[network] = networkAddresses\n }\n return addresses\n}\n\nexport const TOKEN_ADDRESSES: Record<Token, AddressesByNetwork> = {\n USDC: deriveAddresses(TOKEN_DEPLOYMENTS.USDC),\n USDT: deriveAddresses(TOKEN_DEPLOYMENTS.USDT),\n}\n","import type { AltToken } from './alt-tokens'\nimport type { Network } from './networks'\n\nexport const ALT_TOKEN_DECIMALS: Record<AltToken, number> = {\n ETH: 18,\n BNB: 18,\n POL: 18,\n AVAX: 18,\n BTC: 8,\n LINK: 18,\n ARB: 18,\n OP: 18,\n CBETH: 18,\n}\n\nexport const ALT_TOKEN_ADDRESSES: Record<\n Network,\n Partial<Record<AltToken, 'native' | `0x${string}`>>\n> = {\n base: {\n ETH: 'native',\n BTC: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n LINK: '0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196',\n CBETH: '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22',\n },\n optimism: {\n ETH: 'native',\n BTC: '0x68f180fcCe6836688e9084f035309E29Bf0A2095',\n LINK: '0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6',\n OP: '0x4200000000000000000000000000000000000042',\n },\n ethereum: {\n ETH: 'native',\n BTC: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n LINK: '0x514910771AF9Ca656af840dff83E8264EcF986CA',\n },\n arbitrum: {\n ETH: 'native',\n BTC: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',\n LINK: '0xf97f4df75117a78c1A5a0DBb814Af92458539FB4',\n ARB: '0x912CE59144191C1204E64559FE8253a0e49E6548',\n },\n polygon: {\n POL: 'native',\n BTC: '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6',\n LINK: '0xb0897686c545045aFc77CF20eC7A532E3120E0F1',\n },\n avalanche: {\n AVAX: 'native',\n BTC: '0x2297aebd383787a160dd0d9f71508148769342e3',\n LINK: '0x5947BB275c521040051D82396192181b413227A3',\n },\n bnb: { BNB: 'native' },\n tron: {},\n arc: {\n BTC: '0x171A4217b86A807A64eB94757Db6849fb4bDbAA0',\n },\n}\n"],"mappings":"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","names":[]}
@@ -12,7 +12,7 @@ import {
12
12
  TOKEN_DEPLOYMENTS,
13
13
  getTokenDeployment,
14
14
  isPaymentDeploymentEnabled
15
- } from "./chunk-ATCNU2ZP.mjs";
15
+ } from "./chunk-46SHMIHE.mjs";
16
16
  export {
17
17
  ALT_TOKEN_ADDRESSES,
18
18
  ALT_TOKEN_DECIMALS,
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SplitAddress } from './constants-DpqgXUf_.mjs';
2
- export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, b as AltToken, c as AltTokenSchema, C as CHAIN_IDS, E as EVM_NETWORKS, d as Environment, e as EnvironmentSchema, f as EvmAddress, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, j as Network, k as NetworkFamily, l as NetworkSchema, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, n as SwapAlternative, o as SwapAlternativeSchema, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, r as Token, s as TokenDeployment, t as TokenSchema, u as TronAddress, v as addressesEqual, w as getTokenDeployment, x as isEvmAddress, y as isPaymentDeploymentEnabled, z as isSplitAddress, B as isTronAddress, D as listSwapAlternatives, F as tronAddress } from './constants-DpqgXUf_.mjs';
1
+ import { S as SplitAddress } from './constants-D_aWF5Lc.mjs';
2
+ export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, b as AltToken, c as AltTokenSchema, C as CHAIN_IDS, E as EVM_NETWORKS, d as Environment, e as EnvironmentSchema, f as EvmAddress, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, j as Network, k as NetworkFamily, l as NetworkSchema, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, n as SwapAlternative, o as SwapAlternativeSchema, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, r as Token, s as TokenDeployment, t as TokenSchema, u as TronAddress, v as addressesEqual, w as getTokenDeployment, x as isEvmAddress, y as isPaymentDeploymentEnabled, z as isSplitAddress, B as isTronAddress, D as listSwapAlternatives, F as tronAddress } from './constants-D_aWF5Lc.mjs';
3
3
  import { z } from 'zod';
4
4
 
5
5
  declare const SplitAddressSchema: z.ZodEffects<z.ZodString, SplitAddress, string>;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SplitAddress } from './constants-DpqgXUf_.js';
2
- export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, b as AltToken, c as AltTokenSchema, C as CHAIN_IDS, E as EVM_NETWORKS, d as Environment, e as EnvironmentSchema, f as EvmAddress, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, j as Network, k as NetworkFamily, l as NetworkSchema, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, n as SwapAlternative, o as SwapAlternativeSchema, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, r as Token, s as TokenDeployment, t as TokenSchema, u as TronAddress, v as addressesEqual, w as getTokenDeployment, x as isEvmAddress, y as isPaymentDeploymentEnabled, z as isSplitAddress, B as isTronAddress, D as listSwapAlternatives, F as tronAddress } from './constants-DpqgXUf_.js';
1
+ import { S as SplitAddress } from './constants-D_aWF5Lc.js';
2
+ export { A as ALT_TOKEN_ADDRESSES, a as ALT_TOKEN_DECIMALS, b as AltToken, c as AltTokenSchema, C as CHAIN_IDS, E as EVM_NETWORKS, d as Environment, e as EnvironmentSchema, f as EvmAddress, g as EvmNetwork, N as NETWORK_EXPLORERS, h as NETWORK_FAMILIES, i as NETWORK_LABELS, j as Network, k as NetworkFamily, l as NetworkSchema, O as OPERATIONAL_NETWORKS, m as OperationalNetwork, n as SwapAlternative, o as SwapAlternativeSchema, T as TOKEN_ADDRESSES, p as TOKEN_DECIMALS, q as TOKEN_DEPLOYMENTS, r as Token, s as TokenDeployment, t as TokenSchema, u as TronAddress, v as addressesEqual, w as getTokenDeployment, x as isEvmAddress, y as isPaymentDeploymentEnabled, z as isSplitAddress, B as isTronAddress, D as listSwapAlternatives, F as tronAddress } from './constants-D_aWF5Lc.js';
3
3
  import { z } from 'zod';
4
4
 
5
5
  declare const SplitAddressSchema: z.ZodEffects<z.ZodString, SplitAddress, string>;
package/dist/index.js CHANGED
@@ -286,7 +286,7 @@ var NETWORK_FAMILIES = {
286
286
  avalanche: "evm-official",
287
287
  bnb: "evm-official",
288
288
  tron: "tron",
289
- arc: "arc"
289
+ arc: "evm-official"
290
290
  };
291
291
 
292
292
  // src/networks.ts
@@ -770,10 +770,10 @@ var CheckChargeRequestSchema = import_zod14.z.object({
770
770
  });
771
771
  var CheckChargeResponseSchema = ChargeSchema.extend({
772
772
  transactionSender: import_zod14.z.string().nullable().describe(
773
- "The `txHash` transaction's own sender (`from`) \u2014 who actually signed and submitted it on-chain, which stays the payer's own wallet even when the transaction swaps through a router/aggregator on the way to paying, unlike the credited transfer's `from` (which can be the router/pool contract, not the payer). `null` unless `txHash`/`network` was passed in the request and a successful receipt was found for it \u2014 a hint-less background scan, an unaccepted network, or a not-found/reverted transaction all leave this `null`."
773
+ "The `txHash` transaction's own sender (`from`) \u2014 who actually signed and submitted it on-chain, which stays the payer's own wallet even when the transaction swaps through a router/aggregator on the way to paying, unlike the credited transfer's `from` (which can be the router/pool contract, not the payer). Only populated when `txHash`/`network` was passed in the request and that transaction actually paid this charge: on a `pending`/`partially_paid`/`expired` charge, a successful receipt containing at least one Transfer of an accepted token (on that network) to this charge's address \u2014 even one not yet deep enough to be credited; on an already-`confirmed`/`underpaid` charge, a transaction already credited to this charge on that network. Anything else \u2014 a hint-less background scan, an unaccepted network, a not-found/reverted transaction, or a successful transaction that never paid this charge \u2014 leaves this `null`, so it never vouches for a hash that didn't pay this charge."
774
774
  ),
775
775
  confirmationProgress: ConfirmationProgressSchema.nullable().describe(
776
- "Present when this check found a real matching transfer on-chain that has not yet reached its network's required confirmation depth \u2014 use it to render a progress bar while waiting. `null` when nothing new was found, when the charge is already terminal (this check short-circuits with no RPC call), or once the transfer is deep enough to have already been credited (the charge's own `status` field is the signal for that, not this one)."
776
+ "Present when this check found a real matching transfer on-chain that has not yet reached its network's required confirmation depth \u2014 use it to render a progress bar while waiting. `null` when nothing new was found, when the charge is already terminal (no re-scan and nothing credited \u2014 at most one receipt read, only when `txHash` is a transfer already credited to it, to fill `transactionSender`), or once the transfer is deep enough to have already been credited (the charge's own `status` field is the signal for that, not this one)."
777
777
  )
778
778
  });
779
779