@circle-fin/adapter-ethers-v6 1.3.0 → 1.4.0
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/CHANGELOG.md +8 -0
- package/index.cjs +100 -5
- package/index.d.ts +4 -2
- package/index.mjs +100 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @circle-fin/adapter-ethers-v6
|
|
2
2
|
|
|
3
|
+
## 1.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Monad chain support added
|
|
8
|
+
|
|
9
|
+
Monad mainnet and testnet are now supported for cross-chain USDC transfers. Use `'Monad'` or `'Monad_Testnet'` as chain identifiers in your bridge operations.
|
|
10
|
+
|
|
3
11
|
## 1.3.0
|
|
4
12
|
|
|
5
13
|
### Minor Changes
|
package/index.cjs
CHANGED
|
@@ -85,6 +85,8 @@ const ERROR_TYPES = {
|
|
|
85
85
|
RPC: 'RPC',
|
|
86
86
|
/** Internet connectivity, DNS resolution, connection issues */
|
|
87
87
|
NETWORK: 'NETWORK',
|
|
88
|
+
/** Catch-all for unrecognized errors (code 0) */
|
|
89
|
+
UNKNOWN: 'UNKNOWN',
|
|
88
90
|
};
|
|
89
91
|
/**
|
|
90
92
|
* Array of valid error type values for validation.
|
|
@@ -98,6 +100,8 @@ const ERROR_TYPE_ARRAY = [...ERROR_TYPE_VALUES];
|
|
|
98
100
|
/**
|
|
99
101
|
* Error code ranges for validation.
|
|
100
102
|
* Single source of truth for valid error code ranges.
|
|
103
|
+
*
|
|
104
|
+
* Note: Code 0 is special - it's the UNKNOWN catch-all error.
|
|
101
105
|
*/
|
|
102
106
|
const ERROR_CODE_RANGES = [
|
|
103
107
|
{ min: 1000, max: 1999, type: 'INPUT' },
|
|
@@ -106,6 +110,8 @@ const ERROR_CODE_RANGES = [
|
|
|
106
110
|
{ min: 5000, max: 5999, type: 'ONCHAIN' },
|
|
107
111
|
{ min: 9000, max: 9999, type: 'BALANCE' },
|
|
108
112
|
];
|
|
113
|
+
/** Special code for UNKNOWN errors */
|
|
114
|
+
const UNKNOWN_ERROR_CODE = 0;
|
|
109
115
|
/**
|
|
110
116
|
* Zod schema for validating ErrorDetails objects.
|
|
111
117
|
*
|
|
@@ -144,6 +150,7 @@ const ERROR_CODE_RANGES = [
|
|
|
144
150
|
const errorDetailsSchema = zod.z.object({
|
|
145
151
|
/**
|
|
146
152
|
* Numeric identifier following standardized ranges:
|
|
153
|
+
* - 0: UNKNOWN - Catch-all for unrecognized errors
|
|
147
154
|
* - 1000-1999: INPUT errors - Parameter validation
|
|
148
155
|
* - 3000-3999: NETWORK errors - Connectivity issues
|
|
149
156
|
* - 4000-4999: RPC errors - Provider issues, gas estimation
|
|
@@ -153,8 +160,9 @@ const errorDetailsSchema = zod.z.object({
|
|
|
153
160
|
code: zod.z
|
|
154
161
|
.number()
|
|
155
162
|
.int('Error code must be an integer')
|
|
156
|
-
.refine((code) =>
|
|
157
|
-
|
|
163
|
+
.refine((code) => code === UNKNOWN_ERROR_CODE ||
|
|
164
|
+
ERROR_CODE_RANGES.some((range) => code >= range.min && code <= range.max), {
|
|
165
|
+
message: 'Error code must be 0 (UNKNOWN) or in valid ranges: 1000-1999 (INPUT), 3000-3999 (NETWORK), 4000-4999 (RPC), 5000-5999 (ONCHAIN), 9000-9999 (BALANCE)',
|
|
158
166
|
}),
|
|
159
167
|
/** Human-readable ID (e.g., "INPUT_NETWORK_MISMATCH", "BALANCE_INSUFFICIENT_TOKEN") */
|
|
160
168
|
name: zod.z
|
|
@@ -164,7 +172,7 @@ const errorDetailsSchema = zod.z.object({
|
|
|
164
172
|
/** Error category indicating where the error originated */
|
|
165
173
|
type: zod.z.enum(ERROR_TYPE_ARRAY, {
|
|
166
174
|
errorMap: () => ({
|
|
167
|
-
message: 'Error type must be one of: INPUT, BALANCE, ONCHAIN, RPC, NETWORK',
|
|
175
|
+
message: 'Error type must be one of: INPUT, BALANCE, ONCHAIN, RPC, NETWORK, UNKNOWN',
|
|
168
176
|
}),
|
|
169
177
|
}),
|
|
170
178
|
/** Error handling strategy */
|
|
@@ -347,6 +355,7 @@ class KitError extends Error {
|
|
|
347
355
|
/**
|
|
348
356
|
* Standardized error code ranges for consistent categorization:
|
|
349
357
|
*
|
|
358
|
+
* - 0: UNKNOWN - Catch-all for unrecognized errors
|
|
350
359
|
* - 1000-1999: INPUT errors - Parameter validation, input format errors
|
|
351
360
|
* - 3000-3999: NETWORK errors - Internet connectivity, DNS, connection issues
|
|
352
361
|
* - 4000-4999: RPC errors - Blockchain provider issues, gas estimation, nonce errors
|
|
@@ -1168,6 +1177,8 @@ exports.Blockchain = void 0;
|
|
|
1168
1177
|
Blockchain["Ink_Testnet"] = "Ink_Testnet";
|
|
1169
1178
|
Blockchain["Linea"] = "Linea";
|
|
1170
1179
|
Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
1180
|
+
Blockchain["Monad"] = "Monad";
|
|
1181
|
+
Blockchain["Monad_Testnet"] = "Monad_Testnet";
|
|
1171
1182
|
Blockchain["NEAR"] = "NEAR";
|
|
1172
1183
|
Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
|
|
1173
1184
|
Blockchain["Noble"] = "Noble";
|
|
@@ -1259,6 +1270,7 @@ var BridgeChain;
|
|
|
1259
1270
|
BridgeChain["HyperEVM"] = "HyperEVM";
|
|
1260
1271
|
BridgeChain["Ink"] = "Ink";
|
|
1261
1272
|
BridgeChain["Linea"] = "Linea";
|
|
1273
|
+
BridgeChain["Monad"] = "Monad";
|
|
1262
1274
|
BridgeChain["Optimism"] = "Optimism";
|
|
1263
1275
|
BridgeChain["Plume"] = "Plume";
|
|
1264
1276
|
BridgeChain["Polygon"] = "Polygon";
|
|
@@ -1278,6 +1290,7 @@ var BridgeChain;
|
|
|
1278
1290
|
BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
1279
1291
|
BridgeChain["Ink_Testnet"] = "Ink_Testnet";
|
|
1280
1292
|
BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
1293
|
+
BridgeChain["Monad_Testnet"] = "Monad_Testnet";
|
|
1281
1294
|
BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
|
|
1282
1295
|
BridgeChain["Plume_Testnet"] = "Plume_Testnet";
|
|
1283
1296
|
BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
|
|
@@ -2264,6 +2277,86 @@ const LineaSepolia = defineChain({
|
|
|
2264
2277
|
},
|
|
2265
2278
|
});
|
|
2266
2279
|
|
|
2280
|
+
/**
|
|
2281
|
+
* Monad Mainnet chain definition
|
|
2282
|
+
* @remarks
|
|
2283
|
+
* This represents the official production network for the Monad blockchain.
|
|
2284
|
+
* Monad is a high-performance EVM-compatible Layer-1 blockchain featuring
|
|
2285
|
+
* over 10,000 TPS, sub-second finality, and near-zero gas fees.
|
|
2286
|
+
*/
|
|
2287
|
+
const Monad = defineChain({
|
|
2288
|
+
type: 'evm',
|
|
2289
|
+
chain: exports.Blockchain.Monad,
|
|
2290
|
+
name: 'Monad',
|
|
2291
|
+
title: 'Monad Mainnet',
|
|
2292
|
+
nativeCurrency: {
|
|
2293
|
+
name: 'Monad',
|
|
2294
|
+
symbol: 'MON',
|
|
2295
|
+
decimals: 18,
|
|
2296
|
+
},
|
|
2297
|
+
chainId: 143,
|
|
2298
|
+
isTestnet: false,
|
|
2299
|
+
explorerUrl: 'https://monadscan.com/tx/{hash}',
|
|
2300
|
+
rpcEndpoints: ['https://rpc.monad.xyz'],
|
|
2301
|
+
eurcAddress: null,
|
|
2302
|
+
usdcAddress: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
|
|
2303
|
+
cctp: {
|
|
2304
|
+
domain: 15,
|
|
2305
|
+
contracts: {
|
|
2306
|
+
v2: {
|
|
2307
|
+
type: 'split',
|
|
2308
|
+
tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
2309
|
+
messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
2310
|
+
confirmations: 1,
|
|
2311
|
+
fastConfirmations: 1,
|
|
2312
|
+
},
|
|
2313
|
+
},
|
|
2314
|
+
},
|
|
2315
|
+
kitContracts: {
|
|
2316
|
+
bridge: BRIDGE_CONTRACT_EVM_MAINNET,
|
|
2317
|
+
},
|
|
2318
|
+
});
|
|
2319
|
+
|
|
2320
|
+
/**
|
|
2321
|
+
* Monad Testnet chain definition
|
|
2322
|
+
* @remarks
|
|
2323
|
+
* This represents the official test network for the Monad blockchain.
|
|
2324
|
+
* Monad is a high-performance EVM-compatible Layer-1 blockchain featuring
|
|
2325
|
+
* over 10,000 TPS, sub-second finality, and near-zero gas fees.
|
|
2326
|
+
*/
|
|
2327
|
+
const MonadTestnet = defineChain({
|
|
2328
|
+
type: 'evm',
|
|
2329
|
+
chain: exports.Blockchain.Monad_Testnet,
|
|
2330
|
+
name: 'Monad Testnet',
|
|
2331
|
+
title: 'Monad Testnet',
|
|
2332
|
+
nativeCurrency: {
|
|
2333
|
+
name: 'Monad',
|
|
2334
|
+
symbol: 'MON',
|
|
2335
|
+
decimals: 18,
|
|
2336
|
+
},
|
|
2337
|
+
chainId: 10143,
|
|
2338
|
+
isTestnet: true,
|
|
2339
|
+
explorerUrl: 'https://testnet.monadscan.com/tx/{hash}',
|
|
2340
|
+
rpcEndpoints: ['https://testnet-rpc.monad.xyz'],
|
|
2341
|
+
eurcAddress: null,
|
|
2342
|
+
usdcAddress: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
|
|
2343
|
+
cctp: {
|
|
2344
|
+
domain: 15,
|
|
2345
|
+
contracts: {
|
|
2346
|
+
v2: {
|
|
2347
|
+
type: 'split',
|
|
2348
|
+
tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
|
|
2349
|
+
messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
|
|
2350
|
+
confirmations: 1,
|
|
2351
|
+
fastConfirmations: 1,
|
|
2352
|
+
},
|
|
2353
|
+
},
|
|
2354
|
+
},
|
|
2355
|
+
kitContracts: {
|
|
2356
|
+
bridge: BRIDGE_CONTRACT_EVM_TESTNET,
|
|
2357
|
+
},
|
|
2358
|
+
});
|
|
2359
|
+
|
|
2267
2360
|
/**
|
|
2268
2361
|
* NEAR Protocol Mainnet chain definition
|
|
2269
2362
|
* @remarks
|
|
@@ -3348,6 +3441,8 @@ var Blockchains = {
|
|
|
3348
3441
|
InkTestnet: InkTestnet,
|
|
3349
3442
|
Linea: Linea,
|
|
3350
3443
|
LineaSepolia: LineaSepolia,
|
|
3444
|
+
Monad: Monad,
|
|
3445
|
+
MonadTestnet: MonadTestnet,
|
|
3351
3446
|
NEAR: NEAR,
|
|
3352
3447
|
NEARTestnet: NEARTestnet,
|
|
3353
3448
|
Noble: Noble,
|
|
@@ -11943,7 +12038,7 @@ const createAdapterFromPrivateKey = createEthersAdapterFromPrivateKey;
|
|
|
11943
12038
|
* const adapter = await createEthersAdapterFromProvider({
|
|
11944
12039
|
* provider: window.ethereum,
|
|
11945
12040
|
* getProvider: ({ chain }) => new JsonRpcProvider(
|
|
11946
|
-
* `https://eth-mainnet.
|
|
12041
|
+
* `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,
|
|
11947
12042
|
* { name: chain.name, chainId: chain.chainId }
|
|
11948
12043
|
* )
|
|
11949
12044
|
* })
|
|
@@ -12113,7 +12208,7 @@ const createEthersAdapterFromProvider = async (params) => {
|
|
|
12113
12208
|
* const adapter = await createAdapterFromProvider({
|
|
12114
12209
|
* provider: window.ethereum,
|
|
12115
12210
|
* getProvider: ({ chain }) => new JsonRpcProvider(
|
|
12116
|
-
* `https://eth-mainnet.
|
|
12211
|
+
* `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,
|
|
12117
12212
|
* { name: chain.name, chainId: chain.chainId }
|
|
12118
12213
|
* )
|
|
12119
12214
|
* })
|
package/index.d.ts
CHANGED
|
@@ -437,6 +437,8 @@ declare enum Blockchain {
|
|
|
437
437
|
Ink_Testnet = "Ink_Testnet",
|
|
438
438
|
Linea = "Linea",
|
|
439
439
|
Linea_Sepolia = "Linea_Sepolia",
|
|
440
|
+
Monad = "Monad",
|
|
441
|
+
Monad_Testnet = "Monad_Testnet",
|
|
440
442
|
NEAR = "NEAR",
|
|
441
443
|
NEAR_Testnet = "NEAR_Testnet",
|
|
442
444
|
Noble = "Noble",
|
|
@@ -3792,7 +3794,7 @@ type CreateAdapterFromProviderParams = CreateEthersAdapterFromProviderParams;
|
|
|
3792
3794
|
* const adapter = await createEthersAdapterFromProvider({
|
|
3793
3795
|
* provider: window.ethereum,
|
|
3794
3796
|
* getProvider: ({ chain }) => new JsonRpcProvider(
|
|
3795
|
-
* `https://eth-mainnet.
|
|
3797
|
+
* `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,
|
|
3796
3798
|
* { name: chain.name, chainId: chain.chainId }
|
|
3797
3799
|
* )
|
|
3798
3800
|
* })
|
|
@@ -3934,7 +3936,7 @@ declare const createEthersAdapterFromProvider: (params: CreateEthersAdapterFromP
|
|
|
3934
3936
|
* const adapter = await createAdapterFromProvider({
|
|
3935
3937
|
* provider: window.ethereum,
|
|
3936
3938
|
* getProvider: ({ chain }) => new JsonRpcProvider(
|
|
3937
|
-
* `https://eth-mainnet.
|
|
3939
|
+
* `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,
|
|
3938
3940
|
* { name: chain.name, chainId: chain.chainId }
|
|
3939
3941
|
* )
|
|
3940
3942
|
* })
|
package/index.mjs
CHANGED
|
@@ -80,6 +80,8 @@ const ERROR_TYPES = {
|
|
|
80
80
|
RPC: 'RPC',
|
|
81
81
|
/** Internet connectivity, DNS resolution, connection issues */
|
|
82
82
|
NETWORK: 'NETWORK',
|
|
83
|
+
/** Catch-all for unrecognized errors (code 0) */
|
|
84
|
+
UNKNOWN: 'UNKNOWN',
|
|
83
85
|
};
|
|
84
86
|
/**
|
|
85
87
|
* Array of valid error type values for validation.
|
|
@@ -93,6 +95,8 @@ const ERROR_TYPE_ARRAY = [...ERROR_TYPE_VALUES];
|
|
|
93
95
|
/**
|
|
94
96
|
* Error code ranges for validation.
|
|
95
97
|
* Single source of truth for valid error code ranges.
|
|
98
|
+
*
|
|
99
|
+
* Note: Code 0 is special - it's the UNKNOWN catch-all error.
|
|
96
100
|
*/
|
|
97
101
|
const ERROR_CODE_RANGES = [
|
|
98
102
|
{ min: 1000, max: 1999, type: 'INPUT' },
|
|
@@ -101,6 +105,8 @@ const ERROR_CODE_RANGES = [
|
|
|
101
105
|
{ min: 5000, max: 5999, type: 'ONCHAIN' },
|
|
102
106
|
{ min: 9000, max: 9999, type: 'BALANCE' },
|
|
103
107
|
];
|
|
108
|
+
/** Special code for UNKNOWN errors */
|
|
109
|
+
const UNKNOWN_ERROR_CODE = 0;
|
|
104
110
|
/**
|
|
105
111
|
* Zod schema for validating ErrorDetails objects.
|
|
106
112
|
*
|
|
@@ -139,6 +145,7 @@ const ERROR_CODE_RANGES = [
|
|
|
139
145
|
const errorDetailsSchema = z.object({
|
|
140
146
|
/**
|
|
141
147
|
* Numeric identifier following standardized ranges:
|
|
148
|
+
* - 0: UNKNOWN - Catch-all for unrecognized errors
|
|
142
149
|
* - 1000-1999: INPUT errors - Parameter validation
|
|
143
150
|
* - 3000-3999: NETWORK errors - Connectivity issues
|
|
144
151
|
* - 4000-4999: RPC errors - Provider issues, gas estimation
|
|
@@ -148,8 +155,9 @@ const errorDetailsSchema = z.object({
|
|
|
148
155
|
code: z
|
|
149
156
|
.number()
|
|
150
157
|
.int('Error code must be an integer')
|
|
151
|
-
.refine((code) =>
|
|
152
|
-
|
|
158
|
+
.refine((code) => code === UNKNOWN_ERROR_CODE ||
|
|
159
|
+
ERROR_CODE_RANGES.some((range) => code >= range.min && code <= range.max), {
|
|
160
|
+
message: 'Error code must be 0 (UNKNOWN) or in valid ranges: 1000-1999 (INPUT), 3000-3999 (NETWORK), 4000-4999 (RPC), 5000-5999 (ONCHAIN), 9000-9999 (BALANCE)',
|
|
153
161
|
}),
|
|
154
162
|
/** Human-readable ID (e.g., "INPUT_NETWORK_MISMATCH", "BALANCE_INSUFFICIENT_TOKEN") */
|
|
155
163
|
name: z
|
|
@@ -159,7 +167,7 @@ const errorDetailsSchema = z.object({
|
|
|
159
167
|
/** Error category indicating where the error originated */
|
|
160
168
|
type: z.enum(ERROR_TYPE_ARRAY, {
|
|
161
169
|
errorMap: () => ({
|
|
162
|
-
message: 'Error type must be one of: INPUT, BALANCE, ONCHAIN, RPC, NETWORK',
|
|
170
|
+
message: 'Error type must be one of: INPUT, BALANCE, ONCHAIN, RPC, NETWORK, UNKNOWN',
|
|
163
171
|
}),
|
|
164
172
|
}),
|
|
165
173
|
/** Error handling strategy */
|
|
@@ -342,6 +350,7 @@ class KitError extends Error {
|
|
|
342
350
|
/**
|
|
343
351
|
* Standardized error code ranges for consistent categorization:
|
|
344
352
|
*
|
|
353
|
+
* - 0: UNKNOWN - Catch-all for unrecognized errors
|
|
345
354
|
* - 1000-1999: INPUT errors - Parameter validation, input format errors
|
|
346
355
|
* - 3000-3999: NETWORK errors - Internet connectivity, DNS, connection issues
|
|
347
356
|
* - 4000-4999: RPC errors - Blockchain provider issues, gas estimation, nonce errors
|
|
@@ -1163,6 +1172,8 @@ var Blockchain;
|
|
|
1163
1172
|
Blockchain["Ink_Testnet"] = "Ink_Testnet";
|
|
1164
1173
|
Blockchain["Linea"] = "Linea";
|
|
1165
1174
|
Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
1175
|
+
Blockchain["Monad"] = "Monad";
|
|
1176
|
+
Blockchain["Monad_Testnet"] = "Monad_Testnet";
|
|
1166
1177
|
Blockchain["NEAR"] = "NEAR";
|
|
1167
1178
|
Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
|
|
1168
1179
|
Blockchain["Noble"] = "Noble";
|
|
@@ -1254,6 +1265,7 @@ var BridgeChain;
|
|
|
1254
1265
|
BridgeChain["HyperEVM"] = "HyperEVM";
|
|
1255
1266
|
BridgeChain["Ink"] = "Ink";
|
|
1256
1267
|
BridgeChain["Linea"] = "Linea";
|
|
1268
|
+
BridgeChain["Monad"] = "Monad";
|
|
1257
1269
|
BridgeChain["Optimism"] = "Optimism";
|
|
1258
1270
|
BridgeChain["Plume"] = "Plume";
|
|
1259
1271
|
BridgeChain["Polygon"] = "Polygon";
|
|
@@ -1273,6 +1285,7 @@ var BridgeChain;
|
|
|
1273
1285
|
BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
1274
1286
|
BridgeChain["Ink_Testnet"] = "Ink_Testnet";
|
|
1275
1287
|
BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
1288
|
+
BridgeChain["Monad_Testnet"] = "Monad_Testnet";
|
|
1276
1289
|
BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
|
|
1277
1290
|
BridgeChain["Plume_Testnet"] = "Plume_Testnet";
|
|
1278
1291
|
BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
|
|
@@ -2259,6 +2272,86 @@ const LineaSepolia = defineChain({
|
|
|
2259
2272
|
},
|
|
2260
2273
|
});
|
|
2261
2274
|
|
|
2275
|
+
/**
|
|
2276
|
+
* Monad Mainnet chain definition
|
|
2277
|
+
* @remarks
|
|
2278
|
+
* This represents the official production network for the Monad blockchain.
|
|
2279
|
+
* Monad is a high-performance EVM-compatible Layer-1 blockchain featuring
|
|
2280
|
+
* over 10,000 TPS, sub-second finality, and near-zero gas fees.
|
|
2281
|
+
*/
|
|
2282
|
+
const Monad = defineChain({
|
|
2283
|
+
type: 'evm',
|
|
2284
|
+
chain: Blockchain.Monad,
|
|
2285
|
+
name: 'Monad',
|
|
2286
|
+
title: 'Monad Mainnet',
|
|
2287
|
+
nativeCurrency: {
|
|
2288
|
+
name: 'Monad',
|
|
2289
|
+
symbol: 'MON',
|
|
2290
|
+
decimals: 18,
|
|
2291
|
+
},
|
|
2292
|
+
chainId: 143,
|
|
2293
|
+
isTestnet: false,
|
|
2294
|
+
explorerUrl: 'https://monadscan.com/tx/{hash}',
|
|
2295
|
+
rpcEndpoints: ['https://rpc.monad.xyz'],
|
|
2296
|
+
eurcAddress: null,
|
|
2297
|
+
usdcAddress: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
|
|
2298
|
+
cctp: {
|
|
2299
|
+
domain: 15,
|
|
2300
|
+
contracts: {
|
|
2301
|
+
v2: {
|
|
2302
|
+
type: 'split',
|
|
2303
|
+
tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
2304
|
+
messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
2305
|
+
confirmations: 1,
|
|
2306
|
+
fastConfirmations: 1,
|
|
2307
|
+
},
|
|
2308
|
+
},
|
|
2309
|
+
},
|
|
2310
|
+
kitContracts: {
|
|
2311
|
+
bridge: BRIDGE_CONTRACT_EVM_MAINNET,
|
|
2312
|
+
},
|
|
2313
|
+
});
|
|
2314
|
+
|
|
2315
|
+
/**
|
|
2316
|
+
* Monad Testnet chain definition
|
|
2317
|
+
* @remarks
|
|
2318
|
+
* This represents the official test network for the Monad blockchain.
|
|
2319
|
+
* Monad is a high-performance EVM-compatible Layer-1 blockchain featuring
|
|
2320
|
+
* over 10,000 TPS, sub-second finality, and near-zero gas fees.
|
|
2321
|
+
*/
|
|
2322
|
+
const MonadTestnet = defineChain({
|
|
2323
|
+
type: 'evm',
|
|
2324
|
+
chain: Blockchain.Monad_Testnet,
|
|
2325
|
+
name: 'Monad Testnet',
|
|
2326
|
+
title: 'Monad Testnet',
|
|
2327
|
+
nativeCurrency: {
|
|
2328
|
+
name: 'Monad',
|
|
2329
|
+
symbol: 'MON',
|
|
2330
|
+
decimals: 18,
|
|
2331
|
+
},
|
|
2332
|
+
chainId: 10143,
|
|
2333
|
+
isTestnet: true,
|
|
2334
|
+
explorerUrl: 'https://testnet.monadscan.com/tx/{hash}',
|
|
2335
|
+
rpcEndpoints: ['https://testnet-rpc.monad.xyz'],
|
|
2336
|
+
eurcAddress: null,
|
|
2337
|
+
usdcAddress: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
|
|
2338
|
+
cctp: {
|
|
2339
|
+
domain: 15,
|
|
2340
|
+
contracts: {
|
|
2341
|
+
v2: {
|
|
2342
|
+
type: 'split',
|
|
2343
|
+
tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
|
|
2344
|
+
messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
|
|
2345
|
+
confirmations: 1,
|
|
2346
|
+
fastConfirmations: 1,
|
|
2347
|
+
},
|
|
2348
|
+
},
|
|
2349
|
+
},
|
|
2350
|
+
kitContracts: {
|
|
2351
|
+
bridge: BRIDGE_CONTRACT_EVM_TESTNET,
|
|
2352
|
+
},
|
|
2353
|
+
});
|
|
2354
|
+
|
|
2262
2355
|
/**
|
|
2263
2356
|
* NEAR Protocol Mainnet chain definition
|
|
2264
2357
|
* @remarks
|
|
@@ -3343,6 +3436,8 @@ var Blockchains = /*#__PURE__*/Object.freeze({
|
|
|
3343
3436
|
InkTestnet: InkTestnet,
|
|
3344
3437
|
Linea: Linea,
|
|
3345
3438
|
LineaSepolia: LineaSepolia,
|
|
3439
|
+
Monad: Monad,
|
|
3440
|
+
MonadTestnet: MonadTestnet,
|
|
3346
3441
|
NEAR: NEAR,
|
|
3347
3442
|
NEARTestnet: NEARTestnet,
|
|
3348
3443
|
Noble: Noble,
|
|
@@ -11938,7 +12033,7 @@ const createAdapterFromPrivateKey = createEthersAdapterFromPrivateKey;
|
|
|
11938
12033
|
* const adapter = await createEthersAdapterFromProvider({
|
|
11939
12034
|
* provider: window.ethereum,
|
|
11940
12035
|
* getProvider: ({ chain }) => new JsonRpcProvider(
|
|
11941
|
-
* `https://eth-mainnet.
|
|
12036
|
+
* `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,
|
|
11942
12037
|
* { name: chain.name, chainId: chain.chainId }
|
|
11943
12038
|
* )
|
|
11944
12039
|
* })
|
|
@@ -12108,7 +12203,7 @@ const createEthersAdapterFromProvider = async (params) => {
|
|
|
12108
12203
|
* const adapter = await createAdapterFromProvider({
|
|
12109
12204
|
* provider: window.ethereum,
|
|
12110
12205
|
* getProvider: ({ chain }) => new JsonRpcProvider(
|
|
12111
|
-
* `https://eth-mainnet.
|
|
12206
|
+
* `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,
|
|
12112
12207
|
* { name: chain.name, chainId: chain.chainId }
|
|
12113
12208
|
* )
|
|
12114
12209
|
* })
|