moltspay 0.9.5 → 0.9.7
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 +68 -45
- package/dist/cdp/index.d.mts +1 -1
- package/dist/cdp/index.d.ts +1 -1
- package/dist/cdp/index.js +63 -0
- package/dist/cdp/index.js.map +1 -1
- package/dist/cdp/index.mjs +63 -0
- package/dist/cdp/index.mjs.map +1 -1
- package/dist/chains/index.d.mts +9 -5
- package/dist/chains/index.d.ts +9 -5
- package/dist/chains/index.js +85 -0
- package/dist/chains/index.js.map +1 -1
- package/dist/chains/index.mjs +83 -0
- package/dist/chains/index.mjs.map +1 -1
- package/dist/cli/index.js +201 -38
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +201 -38
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.d.mts +18 -3
- package/dist/client/index.d.ts +18 -3
- package/dist/client/index.js +112 -15
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +112 -15
- package/dist/client/index.mjs.map +1 -1
- package/dist/{index-Dg8n6wdW.d.mts → index-B3v8IWjM.d.mts} +11 -1
- package/dist/{index-Dg8n6wdW.d.ts → index-B3v8IWjM.d.ts} +11 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +203 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +203 -42
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.d.mts +19 -1
- package/dist/server/index.d.ts +19 -1
- package/dist/server/index.js +71 -19
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +71 -19
- package/dist/server/index.mjs.map +1 -1
- package/dist/verify/index.d.mts +7 -0
- package/dist/verify/index.d.ts +7 -0
- package/dist/verify/index.js +83 -8
- package/dist/verify/index.js.map +1 -1
- package/dist/verify/index.mjs +83 -8
- package/dist/verify/index.mjs.map +1 -1
- package/dist/wallet/index.d.mts +16 -8
- package/dist/wallet/index.d.ts +16 -8
- package/dist/wallet/index.js +114 -18
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/index.mjs +114 -18
- package/dist/wallet/index.mjs.map +1 -1
- package/package.json +1 -1
- package/schemas/moltspay.services.schema.json +13 -3
package/dist/chains/index.d.mts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { C as ChainName, a as ChainConfig } from '../index-
|
|
1
|
+
import { C as ChainName, a as ChainConfig, T as TokenSymbol, b as TokenConfig } from '../index-B3v8IWjM.mjs';
|
|
2
2
|
|
|
3
|
+
declare const CHAINS: Record<ChainName, ChainConfig>;
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* Get token address for a chain
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
declare function getTokenAddress(chainName: ChainName, token: TokenSymbol): string;
|
|
8
|
+
/**
|
|
9
|
+
* Get token config for a chain
|
|
10
|
+
*/
|
|
11
|
+
declare function getTokenConfig(chainName: ChainName, token: TokenSymbol): TokenConfig;
|
|
8
12
|
/**
|
|
9
13
|
* Get chain configuration
|
|
10
14
|
*/
|
|
@@ -22,4 +26,4 @@ declare function getChainById(chainId: number): ChainConfig | undefined;
|
|
|
22
26
|
*/
|
|
23
27
|
declare const ERC20_ABI: string[];
|
|
24
28
|
|
|
25
|
-
export { CHAINS, ChainConfig, ChainName, ERC20_ABI, getChain, getChainById, listChains };
|
|
29
|
+
export { CHAINS, ChainConfig, ChainName, ERC20_ABI, TokenSymbol, getChain, getChainById, getTokenAddress, getTokenConfig, listChains };
|
package/dist/chains/index.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { C as ChainName, a as ChainConfig } from '../index-
|
|
1
|
+
import { C as ChainName, a as ChainConfig, T as TokenSymbol, b as TokenConfig } from '../index-B3v8IWjM.js';
|
|
2
2
|
|
|
3
|
+
declare const CHAINS: Record<ChainName, ChainConfig>;
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* Get token address for a chain
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
declare function getTokenAddress(chainName: ChainName, token: TokenSymbol): string;
|
|
8
|
+
/**
|
|
9
|
+
* Get token config for a chain
|
|
10
|
+
*/
|
|
11
|
+
declare function getTokenConfig(chainName: ChainName, token: TokenSymbol): TokenConfig;
|
|
8
12
|
/**
|
|
9
13
|
* Get chain configuration
|
|
10
14
|
*/
|
|
@@ -22,4 +26,4 @@ declare function getChainById(chainId: number): ChainConfig | undefined;
|
|
|
22
26
|
*/
|
|
23
27
|
declare const ERC20_ABI: string[];
|
|
24
28
|
|
|
25
|
-
export { CHAINS, ChainConfig, ChainName, ERC20_ABI, getChain, getChainById, listChains };
|
|
29
|
+
export { CHAINS, ChainConfig, ChainName, ERC20_ABI, TokenSymbol, getChain, getChainById, getTokenAddress, getTokenConfig, listChains };
|
package/dist/chains/index.js
CHANGED
|
@@ -24,6 +24,8 @@ __export(chains_exports, {
|
|
|
24
24
|
ERC20_ABI: () => ERC20_ABI,
|
|
25
25
|
getChain: () => getChain,
|
|
26
26
|
getChainById: () => getChainById,
|
|
27
|
+
getTokenAddress: () => getTokenAddress,
|
|
28
|
+
getTokenConfig: () => getTokenConfig,
|
|
27
29
|
listChains: () => listChains
|
|
28
30
|
});
|
|
29
31
|
module.exports = __toCommonJS(chains_exports);
|
|
@@ -33,7 +35,20 @@ var CHAINS = {
|
|
|
33
35
|
name: "Base",
|
|
34
36
|
chainId: 8453,
|
|
35
37
|
rpc: "https://mainnet.base.org",
|
|
38
|
+
tokens: {
|
|
39
|
+
USDC: {
|
|
40
|
+
address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
41
|
+
decimals: 6,
|
|
42
|
+
symbol: "USDC"
|
|
43
|
+
},
|
|
44
|
+
USDT: {
|
|
45
|
+
address: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2",
|
|
46
|
+
decimals: 6,
|
|
47
|
+
symbol: "USDT"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
36
50
|
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
51
|
+
// deprecated, for backward compat
|
|
37
52
|
explorer: "https://basescan.org/address/",
|
|
38
53
|
explorerTx: "https://basescan.org/tx/",
|
|
39
54
|
avgBlockTime: 2
|
|
@@ -42,6 +57,18 @@ var CHAINS = {
|
|
|
42
57
|
name: "Polygon",
|
|
43
58
|
chainId: 137,
|
|
44
59
|
rpc: "https://polygon-rpc.com",
|
|
60
|
+
tokens: {
|
|
61
|
+
USDC: {
|
|
62
|
+
address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
|
63
|
+
decimals: 6,
|
|
64
|
+
symbol: "USDC"
|
|
65
|
+
},
|
|
66
|
+
USDT: {
|
|
67
|
+
address: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
|
|
68
|
+
decimals: 6,
|
|
69
|
+
symbol: "USDT"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
45
72
|
usdc: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
|
46
73
|
explorer: "https://polygonscan.com/address/",
|
|
47
74
|
explorerTx: "https://polygonscan.com/tx/",
|
|
@@ -51,6 +78,18 @@ var CHAINS = {
|
|
|
51
78
|
name: "Ethereum",
|
|
52
79
|
chainId: 1,
|
|
53
80
|
rpc: "https://eth.llamarpc.com",
|
|
81
|
+
tokens: {
|
|
82
|
+
USDC: {
|
|
83
|
+
address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
84
|
+
decimals: 6,
|
|
85
|
+
symbol: "USDC"
|
|
86
|
+
},
|
|
87
|
+
USDT: {
|
|
88
|
+
address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
89
|
+
decimals: 6,
|
|
90
|
+
symbol: "USDT"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
54
93
|
usdc: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
55
94
|
explorer: "https://etherscan.io/address/",
|
|
56
95
|
explorerTx: "https://etherscan.io/tx/",
|
|
@@ -61,6 +100,19 @@ var CHAINS = {
|
|
|
61
100
|
name: "Base Sepolia",
|
|
62
101
|
chainId: 84532,
|
|
63
102
|
rpc: "https://sepolia.base.org",
|
|
103
|
+
tokens: {
|
|
104
|
+
USDC: {
|
|
105
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
106
|
+
decimals: 6,
|
|
107
|
+
symbol: "USDC"
|
|
108
|
+
},
|
|
109
|
+
USDT: {
|
|
110
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
111
|
+
// Same as USDC on testnet (no official USDT)
|
|
112
|
+
decimals: 6,
|
|
113
|
+
symbol: "USDT"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
64
116
|
usdc: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
65
117
|
explorer: "https://sepolia.basescan.org/address/",
|
|
66
118
|
explorerTx: "https://sepolia.basescan.org/tx/",
|
|
@@ -70,12 +122,43 @@ var CHAINS = {
|
|
|
70
122
|
name: "Sepolia",
|
|
71
123
|
chainId: 11155111,
|
|
72
124
|
rpc: "https://rpc.sepolia.org",
|
|
125
|
+
tokens: {
|
|
126
|
+
USDC: {
|
|
127
|
+
address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
128
|
+
decimals: 6,
|
|
129
|
+
symbol: "USDC"
|
|
130
|
+
},
|
|
131
|
+
USDT: {
|
|
132
|
+
address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
133
|
+
// Same as USDC on testnet
|
|
134
|
+
decimals: 6,
|
|
135
|
+
symbol: "USDT"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
73
138
|
usdc: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
74
139
|
explorer: "https://sepolia.etherscan.io/address/",
|
|
75
140
|
explorerTx: "https://sepolia.etherscan.io/tx/",
|
|
76
141
|
avgBlockTime: 12
|
|
77
142
|
}
|
|
78
143
|
};
|
|
144
|
+
function getTokenAddress(chainName, token) {
|
|
145
|
+
const chain = CHAINS[chainName];
|
|
146
|
+
if (!chain) {
|
|
147
|
+
throw new Error(`Unsupported chain: ${chainName}`);
|
|
148
|
+
}
|
|
149
|
+
const tokenConfig = chain.tokens[token];
|
|
150
|
+
if (!tokenConfig) {
|
|
151
|
+
throw new Error(`Token ${token} not supported on ${chainName}`);
|
|
152
|
+
}
|
|
153
|
+
return tokenConfig.address;
|
|
154
|
+
}
|
|
155
|
+
function getTokenConfig(chainName, token) {
|
|
156
|
+
const chain = CHAINS[chainName];
|
|
157
|
+
if (!chain) {
|
|
158
|
+
throw new Error(`Unsupported chain: ${chainName}`);
|
|
159
|
+
}
|
|
160
|
+
return chain.tokens[token];
|
|
161
|
+
}
|
|
79
162
|
function getChain(name) {
|
|
80
163
|
const config = CHAINS[name];
|
|
81
164
|
if (!config) {
|
|
@@ -108,6 +191,8 @@ var ERC20_ABI = [
|
|
|
108
191
|
ERC20_ABI,
|
|
109
192
|
getChain,
|
|
110
193
|
getChainById,
|
|
194
|
+
getTokenAddress,
|
|
195
|
+
getTokenConfig,
|
|
111
196
|
listChains
|
|
112
197
|
});
|
|
113
198
|
//# sourceMappingURL=index.js.map
|
package/dist/chains/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n * Blockchain Configuration\n */\n\nimport type { ChainConfig, ChainName } from '../types/index.js';\n\nexport const CHAINS: Record<ChainName, ChainConfig> = {\n // ============ Mainnet ============\n base: {\n name: 'Base',\n chainId: 8453,\n rpc: 'https://mainnet.base.org',\n
|
|
1
|
+
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n * Blockchain Configuration\n */\n\nimport type { ChainConfig, ChainName, TokenSymbol } from '../types/index.js';\n\nexport const CHAINS: Record<ChainName, ChainConfig> = {\n // ============ Mainnet ============\n base: {\n name: 'Base',\n chainId: 8453,\n rpc: 'https://mainnet.base.org',\n tokens: {\n USDC: {\n address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2',\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // deprecated, for backward compat\n explorer: 'https://basescan.org/address/',\n explorerTx: 'https://basescan.org/tx/',\n avgBlockTime: 2,\n },\n polygon: {\n name: 'Polygon',\n chainId: 137,\n rpc: 'https://polygon-rpc.com',\n tokens: {\n USDC: {\n address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',\n explorer: 'https://polygonscan.com/address/',\n explorerTx: 'https://polygonscan.com/tx/',\n avgBlockTime: 2,\n },\n ethereum: {\n name: 'Ethereum',\n chainId: 1,\n rpc: 'https://eth.llamarpc.com',\n tokens: {\n USDC: {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n explorer: 'https://etherscan.io/address/',\n explorerTx: 'https://etherscan.io/tx/',\n avgBlockTime: 12,\n },\n\n // ============ Testnet ============\n base_sepolia: {\n name: 'Base Sepolia',\n chainId: 84532,\n rpc: 'https://sepolia.base.org',\n tokens: {\n USDC: {\n address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', // Same as USDC on testnet (no official USDT)\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n explorer: 'https://sepolia.basescan.org/address/',\n explorerTx: 'https://sepolia.basescan.org/tx/',\n avgBlockTime: 2,\n },\n sepolia: {\n name: 'Sepolia',\n chainId: 11155111,\n rpc: 'https://rpc.sepolia.org',\n tokens: {\n USDC: {\n address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', // Same as USDC on testnet\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n explorer: 'https://sepolia.etherscan.io/address/',\n explorerTx: 'https://sepolia.etherscan.io/tx/',\n avgBlockTime: 12,\n },\n};\n\n/**\n * Get token address for a chain\n */\nexport function getTokenAddress(chainName: ChainName, token: TokenSymbol): string {\n const chain = CHAINS[chainName];\n if (!chain) {\n throw new Error(`Unsupported chain: ${chainName}`);\n }\n const tokenConfig = chain.tokens[token];\n if (!tokenConfig) {\n throw new Error(`Token ${token} not supported on ${chainName}`);\n }\n return tokenConfig.address;\n}\n\n/**\n * Get token config for a chain\n */\nexport function getTokenConfig(chainName: ChainName, token: TokenSymbol) {\n const chain = CHAINS[chainName];\n if (!chain) {\n throw new Error(`Unsupported chain: ${chainName}`);\n }\n return chain.tokens[token];\n}\n\n/**\n * Get chain configuration\n */\nexport function getChain(name: ChainName): ChainConfig {\n const config = CHAINS[name];\n if (!config) {\n throw new Error(`Unsupported chain: ${name}. Supported: ${Object.keys(CHAINS).join(', ')}`);\n }\n return config;\n}\n\n/**\n * List all supported chains\n */\nexport function listChains(): ChainName[] {\n return Object.keys(CHAINS) as ChainName[];\n}\n\n/**\n * Get chain config by chainId\n */\nexport function getChainById(chainId: number): ChainConfig | undefined {\n return Object.values(CHAINS).find(c => c.chainId === chainId);\n}\n\n/**\n * ERC20 ABI (minimal, only required methods)\n */\nexport const ERC20_ABI = [\n 'function balanceOf(address owner) view returns (uint256)',\n 'function transfer(address to, uint256 amount) returns (bool)',\n 'function approve(address spender, uint256 amount) returns (bool)',\n 'function allowance(address owner, address spender) view returns (uint256)',\n 'function decimals() view returns (uint8)',\n 'function symbol() view returns (string)',\n 'function name() view returns (string)',\n 'function nonces(address owner) view returns (uint256)',\n 'function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)',\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\n 'event Approval(address indexed owner, address indexed spender, uint256 value)',\n];\n\nexport type { ChainConfig, ChainName, TokenSymbol };\n"],"mappings":"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","names":[]}
|
package/dist/chains/index.mjs
CHANGED
|
@@ -5,7 +5,20 @@ var CHAINS = {
|
|
|
5
5
|
name: "Base",
|
|
6
6
|
chainId: 8453,
|
|
7
7
|
rpc: "https://mainnet.base.org",
|
|
8
|
+
tokens: {
|
|
9
|
+
USDC: {
|
|
10
|
+
address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
11
|
+
decimals: 6,
|
|
12
|
+
symbol: "USDC"
|
|
13
|
+
},
|
|
14
|
+
USDT: {
|
|
15
|
+
address: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2",
|
|
16
|
+
decimals: 6,
|
|
17
|
+
symbol: "USDT"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
8
20
|
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
21
|
+
// deprecated, for backward compat
|
|
9
22
|
explorer: "https://basescan.org/address/",
|
|
10
23
|
explorerTx: "https://basescan.org/tx/",
|
|
11
24
|
avgBlockTime: 2
|
|
@@ -14,6 +27,18 @@ var CHAINS = {
|
|
|
14
27
|
name: "Polygon",
|
|
15
28
|
chainId: 137,
|
|
16
29
|
rpc: "https://polygon-rpc.com",
|
|
30
|
+
tokens: {
|
|
31
|
+
USDC: {
|
|
32
|
+
address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
|
33
|
+
decimals: 6,
|
|
34
|
+
symbol: "USDC"
|
|
35
|
+
},
|
|
36
|
+
USDT: {
|
|
37
|
+
address: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
|
|
38
|
+
decimals: 6,
|
|
39
|
+
symbol: "USDT"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
17
42
|
usdc: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
|
18
43
|
explorer: "https://polygonscan.com/address/",
|
|
19
44
|
explorerTx: "https://polygonscan.com/tx/",
|
|
@@ -23,6 +48,18 @@ var CHAINS = {
|
|
|
23
48
|
name: "Ethereum",
|
|
24
49
|
chainId: 1,
|
|
25
50
|
rpc: "https://eth.llamarpc.com",
|
|
51
|
+
tokens: {
|
|
52
|
+
USDC: {
|
|
53
|
+
address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
54
|
+
decimals: 6,
|
|
55
|
+
symbol: "USDC"
|
|
56
|
+
},
|
|
57
|
+
USDT: {
|
|
58
|
+
address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
|
59
|
+
decimals: 6,
|
|
60
|
+
symbol: "USDT"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
26
63
|
usdc: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
27
64
|
explorer: "https://etherscan.io/address/",
|
|
28
65
|
explorerTx: "https://etherscan.io/tx/",
|
|
@@ -33,6 +70,19 @@ var CHAINS = {
|
|
|
33
70
|
name: "Base Sepolia",
|
|
34
71
|
chainId: 84532,
|
|
35
72
|
rpc: "https://sepolia.base.org",
|
|
73
|
+
tokens: {
|
|
74
|
+
USDC: {
|
|
75
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
76
|
+
decimals: 6,
|
|
77
|
+
symbol: "USDC"
|
|
78
|
+
},
|
|
79
|
+
USDT: {
|
|
80
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
81
|
+
// Same as USDC on testnet (no official USDT)
|
|
82
|
+
decimals: 6,
|
|
83
|
+
symbol: "USDT"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
36
86
|
usdc: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
37
87
|
explorer: "https://sepolia.basescan.org/address/",
|
|
38
88
|
explorerTx: "https://sepolia.basescan.org/tx/",
|
|
@@ -42,12 +92,43 @@ var CHAINS = {
|
|
|
42
92
|
name: "Sepolia",
|
|
43
93
|
chainId: 11155111,
|
|
44
94
|
rpc: "https://rpc.sepolia.org",
|
|
95
|
+
tokens: {
|
|
96
|
+
USDC: {
|
|
97
|
+
address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
98
|
+
decimals: 6,
|
|
99
|
+
symbol: "USDC"
|
|
100
|
+
},
|
|
101
|
+
USDT: {
|
|
102
|
+
address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
103
|
+
// Same as USDC on testnet
|
|
104
|
+
decimals: 6,
|
|
105
|
+
symbol: "USDT"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
45
108
|
usdc: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
46
109
|
explorer: "https://sepolia.etherscan.io/address/",
|
|
47
110
|
explorerTx: "https://sepolia.etherscan.io/tx/",
|
|
48
111
|
avgBlockTime: 12
|
|
49
112
|
}
|
|
50
113
|
};
|
|
114
|
+
function getTokenAddress(chainName, token) {
|
|
115
|
+
const chain = CHAINS[chainName];
|
|
116
|
+
if (!chain) {
|
|
117
|
+
throw new Error(`Unsupported chain: ${chainName}`);
|
|
118
|
+
}
|
|
119
|
+
const tokenConfig = chain.tokens[token];
|
|
120
|
+
if (!tokenConfig) {
|
|
121
|
+
throw new Error(`Token ${token} not supported on ${chainName}`);
|
|
122
|
+
}
|
|
123
|
+
return tokenConfig.address;
|
|
124
|
+
}
|
|
125
|
+
function getTokenConfig(chainName, token) {
|
|
126
|
+
const chain = CHAINS[chainName];
|
|
127
|
+
if (!chain) {
|
|
128
|
+
throw new Error(`Unsupported chain: ${chainName}`);
|
|
129
|
+
}
|
|
130
|
+
return chain.tokens[token];
|
|
131
|
+
}
|
|
51
132
|
function getChain(name) {
|
|
52
133
|
const config = CHAINS[name];
|
|
53
134
|
if (!config) {
|
|
@@ -79,6 +160,8 @@ export {
|
|
|
79
160
|
ERC20_ABI,
|
|
80
161
|
getChain,
|
|
81
162
|
getChainById,
|
|
163
|
+
getTokenAddress,
|
|
164
|
+
getTokenConfig,
|
|
82
165
|
listChains
|
|
83
166
|
};
|
|
84
167
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n * Blockchain Configuration\n */\n\nimport type { ChainConfig, ChainName } from '../types/index.js';\n\nexport const CHAINS: Record<ChainName, ChainConfig> = {\n // ============ Mainnet ============\n base: {\n name: 'Base',\n chainId: 8453,\n rpc: 'https://mainnet.base.org',\n
|
|
1
|
+
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n * Blockchain Configuration\n */\n\nimport type { ChainConfig, ChainName, TokenSymbol } from '../types/index.js';\n\nexport const CHAINS: Record<ChainName, ChainConfig> = {\n // ============ Mainnet ============\n base: {\n name: 'Base',\n chainId: 8453,\n rpc: 'https://mainnet.base.org',\n tokens: {\n USDC: {\n address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2',\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // deprecated, for backward compat\n explorer: 'https://basescan.org/address/',\n explorerTx: 'https://basescan.org/tx/',\n avgBlockTime: 2,\n },\n polygon: {\n name: 'Polygon',\n chainId: 137,\n rpc: 'https://polygon-rpc.com',\n tokens: {\n USDC: {\n address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',\n explorer: 'https://polygonscan.com/address/',\n explorerTx: 'https://polygonscan.com/tx/',\n avgBlockTime: 2,\n },\n ethereum: {\n name: 'Ethereum',\n chainId: 1,\n rpc: 'https://eth.llamarpc.com',\n tokens: {\n USDC: {\n address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n explorer: 'https://etherscan.io/address/',\n explorerTx: 'https://etherscan.io/tx/',\n avgBlockTime: 12,\n },\n\n // ============ Testnet ============\n base_sepolia: {\n name: 'Base Sepolia',\n chainId: 84532,\n rpc: 'https://sepolia.base.org',\n tokens: {\n USDC: {\n address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', // Same as USDC on testnet (no official USDT)\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n explorer: 'https://sepolia.basescan.org/address/',\n explorerTx: 'https://sepolia.basescan.org/tx/',\n avgBlockTime: 2,\n },\n sepolia: {\n name: 'Sepolia',\n chainId: 11155111,\n rpc: 'https://rpc.sepolia.org',\n tokens: {\n USDC: {\n address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n decimals: 6,\n symbol: 'USDC',\n },\n USDT: {\n address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', // Same as USDC on testnet\n decimals: 6,\n symbol: 'USDT',\n },\n },\n usdc: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n explorer: 'https://sepolia.etherscan.io/address/',\n explorerTx: 'https://sepolia.etherscan.io/tx/',\n avgBlockTime: 12,\n },\n};\n\n/**\n * Get token address for a chain\n */\nexport function getTokenAddress(chainName: ChainName, token: TokenSymbol): string {\n const chain = CHAINS[chainName];\n if (!chain) {\n throw new Error(`Unsupported chain: ${chainName}`);\n }\n const tokenConfig = chain.tokens[token];\n if (!tokenConfig) {\n throw new Error(`Token ${token} not supported on ${chainName}`);\n }\n return tokenConfig.address;\n}\n\n/**\n * Get token config for a chain\n */\nexport function getTokenConfig(chainName: ChainName, token: TokenSymbol) {\n const chain = CHAINS[chainName];\n if (!chain) {\n throw new Error(`Unsupported chain: ${chainName}`);\n }\n return chain.tokens[token];\n}\n\n/**\n * Get chain configuration\n */\nexport function getChain(name: ChainName): ChainConfig {\n const config = CHAINS[name];\n if (!config) {\n throw new Error(`Unsupported chain: ${name}. Supported: ${Object.keys(CHAINS).join(', ')}`);\n }\n return config;\n}\n\n/**\n * List all supported chains\n */\nexport function listChains(): ChainName[] {\n return Object.keys(CHAINS) as ChainName[];\n}\n\n/**\n * Get chain config by chainId\n */\nexport function getChainById(chainId: number): ChainConfig | undefined {\n return Object.values(CHAINS).find(c => c.chainId === chainId);\n}\n\n/**\n * ERC20 ABI (minimal, only required methods)\n */\nexport const ERC20_ABI = [\n 'function balanceOf(address owner) view returns (uint256)',\n 'function transfer(address to, uint256 amount) returns (bool)',\n 'function approve(address spender, uint256 amount) returns (bool)',\n 'function allowance(address owner, address spender) view returns (uint256)',\n 'function decimals() view returns (uint8)',\n 'function symbol() view returns (string)',\n 'function name() view returns (string)',\n 'function nonces(address owner) view returns (uint256)',\n 'function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)',\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\n 'event Approval(address indexed owner, address indexed spender, uint256 value)',\n];\n\nexport type { ChainConfig, ChainName, TokenSymbol };\n"],"mappings":"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","names":[]}
|