@voyage_ai/v402-web-ts 0.1.1 → 0.1.3
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/dist/index.d.mts +14 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.js +156 -106
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +139 -88
- package/dist/index.mjs.map +1 -1
- package/dist/react/index.d.mts +62 -52
- package/dist/react/index.d.ts +62 -52
- package/dist/react/index.js +901 -227
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +884 -203
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/styles.css +1 -168
- package/package.json +33 -10
- package/dist/react/components/PaymentButton.tsx +0 -119
- package/dist/react/components/WalletConnect.tsx +0 -152
- package/dist/react/hooks/usePayment.ts +0 -109
- package/dist/react/hooks/usePaymentInfo.ts +0 -94
- package/dist/react/hooks/useWallet.ts +0 -174
- package/dist/react/hooks/useWalletStore.ts +0 -61
- package/dist/react/index.ts +0 -42
- package/dist/react/store/walletStore.ts +0 -181
- package/dist/react/styles/inline-styles.ts +0 -227
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PaymentRequirements } from 'x402/types';
|
|
2
|
-
export {
|
|
2
|
+
export { PaymentRequirements, SPLTokenAmount, SettleResponse, VerifyResponse, x402Response } from 'x402/types';
|
|
3
3
|
import { VersionedTransaction } from '@solana/web3.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
|
@@ -442,6 +442,7 @@ declare function getWalletDisplayName(networkType: NetworkType): string;
|
|
|
442
442
|
* @param endpoint - API endpoint
|
|
443
443
|
* @param networkType - Network type (from useWallet)
|
|
444
444
|
* @param merchantId - @see our website to apply
|
|
445
|
+
* @param additionalParams - Optional additional parameters to send with the request (default: {})
|
|
445
446
|
* @returns Response from the payment
|
|
446
447
|
*
|
|
447
448
|
* @example
|
|
@@ -449,8 +450,19 @@ declare function getWalletDisplayName(networkType: NetworkType): string;
|
|
|
449
450
|
* const response = await makePayment('/api/endpoint', networkType);
|
|
450
451
|
* const data = await response.json();
|
|
451
452
|
* ```
|
|
453
|
+
*
|
|
454
|
+
* @example
|
|
455
|
+
* ```tsx
|
|
456
|
+
* // With additional parameters
|
|
457
|
+
* const response = await makePayment(
|
|
458
|
+
* '/api/endpoint',
|
|
459
|
+
* networkType,
|
|
460
|
+
* merchantId,
|
|
461
|
+
* { userId: '123', customField: 'value' }
|
|
462
|
+
* );
|
|
463
|
+
* ```
|
|
452
464
|
*/
|
|
453
|
-
declare function makePayment(networkType: NetworkType, merchantId: string, endpoint?: string): Promise<Response>;
|
|
465
|
+
declare function makePayment(networkType: NetworkType, merchantId: string, endpoint?: string, additionalParams?: Record<string, any>): Promise<Response>;
|
|
454
466
|
|
|
455
467
|
/**
|
|
456
468
|
* Network utilities
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PaymentRequirements } from 'x402/types';
|
|
2
|
-
export {
|
|
2
|
+
export { PaymentRequirements, SPLTokenAmount, SettleResponse, VerifyResponse, x402Response } from 'x402/types';
|
|
3
3
|
import { VersionedTransaction } from '@solana/web3.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
|
@@ -442,6 +442,7 @@ declare function getWalletDisplayName(networkType: NetworkType): string;
|
|
|
442
442
|
* @param endpoint - API endpoint
|
|
443
443
|
* @param networkType - Network type (from useWallet)
|
|
444
444
|
* @param merchantId - @see our website to apply
|
|
445
|
+
* @param additionalParams - Optional additional parameters to send with the request (default: {})
|
|
445
446
|
* @returns Response from the payment
|
|
446
447
|
*
|
|
447
448
|
* @example
|
|
@@ -449,8 +450,19 @@ declare function getWalletDisplayName(networkType: NetworkType): string;
|
|
|
449
450
|
* const response = await makePayment('/api/endpoint', networkType);
|
|
450
451
|
* const data = await response.json();
|
|
451
452
|
* ```
|
|
453
|
+
*
|
|
454
|
+
* @example
|
|
455
|
+
* ```tsx
|
|
456
|
+
* // With additional parameters
|
|
457
|
+
* const response = await makePayment(
|
|
458
|
+
* '/api/endpoint',
|
|
459
|
+
* networkType,
|
|
460
|
+
* merchantId,
|
|
461
|
+
* { userId: '123', customField: 'value' }
|
|
462
|
+
* );
|
|
463
|
+
* ```
|
|
452
464
|
*/
|
|
453
|
-
declare function makePayment(networkType: NetworkType, merchantId: string, endpoint?: string): Promise<Response>;
|
|
465
|
+
declare function makePayment(networkType: NetworkType, merchantId: string, endpoint?: string, additionalParams?: Record<string, any>): Promise<Response>;
|
|
454
466
|
|
|
455
467
|
/**
|
|
456
468
|
* Network utilities
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,9 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __esm = (fn, res) => function __init() {
|
|
7
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
8
|
+
};
|
|
6
9
|
var __export = (target, all) => {
|
|
7
10
|
for (var name in all)
|
|
8
11
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -17,107 +20,38 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
20
|
};
|
|
18
21
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
22
|
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var index_exports = {};
|
|
22
|
-
__export(index_exports, {
|
|
23
|
-
EVM_NETWORK_CONFIGS: () => EVM_NETWORK_CONFIGS,
|
|
24
|
-
EvmNetworkSchema: () => EvmNetworkSchema,
|
|
25
|
-
EvmPaymentPayloadSchema: () => EvmPaymentPayloadSchema,
|
|
26
|
-
SolanaNetworkSchema: () => SolanaNetworkSchema,
|
|
27
|
-
SolanaPaymentPayloadSchema: () => SolanaPaymentPayloadSchema,
|
|
28
|
-
createEvmPaymentFetch: () => createEvmPaymentFetch,
|
|
29
|
-
createEvmPaymentHeader: () => createEvmPaymentHeader,
|
|
30
|
-
createSvmPaymentFetch: () => createSvmPaymentFetch,
|
|
31
|
-
createSvmPaymentHeader: () => createSvmPaymentHeader,
|
|
32
|
-
formatAddress: () => formatAddress,
|
|
33
|
-
fromAtomicUnits: () => fromAtomicUnits,
|
|
34
|
-
getChainId: () => getChainId,
|
|
35
|
-
getChainIdFromNetwork: () => getChainIdFromNetwork,
|
|
36
|
-
getDefaultSolanaRpcUrl: () => getDefaultSolanaRpcUrl,
|
|
37
|
-
getNetworkDisplayName: () => getNetworkDisplayName,
|
|
38
|
-
getNetworkType: () => getNetworkType,
|
|
39
|
-
getWalletDisplayName: () => getWalletDisplayName,
|
|
40
|
-
getWalletInstallUrl: () => getWalletInstallUrl,
|
|
41
|
-
getWalletProvider: () => getWalletProvider,
|
|
42
|
-
handleEvmPayment: () => handleEvmPayment,
|
|
43
|
-
handleSvmPayment: () => handleSvmPayment,
|
|
44
|
-
is402Response: () => is402Response,
|
|
45
|
-
isEvmAddress: () => isEvmAddress,
|
|
46
|
-
isEvmNetwork: () => isEvmNetwork,
|
|
47
|
-
isSolanaAddress: () => isSolanaAddress,
|
|
48
|
-
isSolanaNetwork: () => isSolanaNetwork,
|
|
49
|
-
isWalletInstalled: () => isWalletInstalled,
|
|
50
|
-
makePayment: () => makePayment,
|
|
51
|
-
toAtomicUnits: () => toAtomicUnits
|
|
52
|
-
});
|
|
53
|
-
module.exports = __toCommonJS(index_exports);
|
|
54
|
-
|
|
55
|
-
// src/types/index.ts
|
|
56
|
-
var import_types3 = require("x402/types");
|
|
57
|
-
|
|
58
23
|
// src/types/common.ts
|
|
59
|
-
var PROD_BACK_URL
|
|
24
|
+
var PROD_BACK_URL;
|
|
25
|
+
var init_common = __esm({
|
|
26
|
+
"src/types/common.ts"() {
|
|
27
|
+
"use strict";
|
|
28
|
+
PROD_BACK_URL = "https://v402.onvoyage.ai/api/pay";
|
|
29
|
+
}
|
|
30
|
+
});
|
|
60
31
|
|
|
61
32
|
// src/types/svm.ts
|
|
62
|
-
var import_zod
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
33
|
+
var import_zod, import_types, SolanaNetworkSchema, SolanaPaymentPayloadSchema;
|
|
34
|
+
var init_svm = __esm({
|
|
35
|
+
"src/types/svm.ts"() {
|
|
36
|
+
"use strict";
|
|
37
|
+
import_zod = require("zod");
|
|
38
|
+
import_types = require("x402/types");
|
|
39
|
+
SolanaNetworkSchema = import_zod.z.enum([
|
|
40
|
+
"solana-devnet",
|
|
41
|
+
"solana",
|
|
42
|
+
"solana-mainnet"
|
|
43
|
+
// Alias for mainnet
|
|
44
|
+
]);
|
|
45
|
+
SolanaPaymentPayloadSchema = import_zod.z.object({
|
|
46
|
+
x402Version: import_zod.z.literal(1),
|
|
47
|
+
scheme: import_zod.z.literal("exact"),
|
|
48
|
+
network: SolanaNetworkSchema,
|
|
49
|
+
payload: import_types.ExactSvmPayloadSchema
|
|
50
|
+
});
|
|
51
|
+
}
|
|
75
52
|
});
|
|
76
53
|
|
|
77
54
|
// src/types/evm.ts
|
|
78
|
-
var import_zod2 = require("zod");
|
|
79
|
-
var import_types2 = require("x402/types");
|
|
80
|
-
var EvmNetworkSchema = import_zod2.z.enum([
|
|
81
|
-
"ethereum",
|
|
82
|
-
"sepolia",
|
|
83
|
-
"base",
|
|
84
|
-
"base-sepolia",
|
|
85
|
-
"polygon",
|
|
86
|
-
"arbitrum",
|
|
87
|
-
"optimism"
|
|
88
|
-
]);
|
|
89
|
-
var EvmPaymentPayloadSchema = import_zod2.z.object({
|
|
90
|
-
x402Version: import_zod2.z.literal(1),
|
|
91
|
-
scheme: import_zod2.z.literal("exact"),
|
|
92
|
-
network: EvmNetworkSchema,
|
|
93
|
-
payload: import_types2.ExactEvmPayloadSchema
|
|
94
|
-
});
|
|
95
|
-
var EVM_NETWORK_CONFIGS = {
|
|
96
|
-
"ethereum": {
|
|
97
|
-
chainId: "0x1",
|
|
98
|
-
chainName: "Ethereum Mainnet",
|
|
99
|
-
rpcUrls: ["https://eth.llamarpc.com"],
|
|
100
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
101
|
-
},
|
|
102
|
-
"sepolia": {
|
|
103
|
-
chainId: "0xaa36a7",
|
|
104
|
-
chainName: "Sepolia",
|
|
105
|
-
rpcUrls: ["https://sepolia.infura.io/v3/"],
|
|
106
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
107
|
-
},
|
|
108
|
-
"base": {
|
|
109
|
-
chainId: "0x2105",
|
|
110
|
-
chainName: "Base",
|
|
111
|
-
rpcUrls: ["https://mainnet.base.org"],
|
|
112
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
113
|
-
},
|
|
114
|
-
"base-sepolia": {
|
|
115
|
-
chainId: "0x14a34",
|
|
116
|
-
chainName: "Base Sepolia",
|
|
117
|
-
rpcUrls: ["https://sepolia.base.org"],
|
|
118
|
-
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
55
|
function getChainId(network) {
|
|
122
56
|
const chainIdMap = {
|
|
123
57
|
"ethereum": 1,
|
|
@@ -130,10 +64,66 @@ function getChainId(network) {
|
|
|
130
64
|
};
|
|
131
65
|
return chainIdMap[network.toLowerCase()] || 1;
|
|
132
66
|
}
|
|
67
|
+
var import_zod2, import_types2, EvmNetworkSchema, EvmPaymentPayloadSchema, EVM_NETWORK_CONFIGS;
|
|
68
|
+
var init_evm = __esm({
|
|
69
|
+
"src/types/evm.ts"() {
|
|
70
|
+
"use strict";
|
|
71
|
+
import_zod2 = require("zod");
|
|
72
|
+
import_types2 = require("x402/types");
|
|
73
|
+
EvmNetworkSchema = import_zod2.z.enum([
|
|
74
|
+
"ethereum",
|
|
75
|
+
"sepolia",
|
|
76
|
+
"base",
|
|
77
|
+
"base-sepolia",
|
|
78
|
+
"polygon",
|
|
79
|
+
"arbitrum",
|
|
80
|
+
"optimism"
|
|
81
|
+
]);
|
|
82
|
+
EvmPaymentPayloadSchema = import_zod2.z.object({
|
|
83
|
+
x402Version: import_zod2.z.literal(1),
|
|
84
|
+
scheme: import_zod2.z.literal("exact"),
|
|
85
|
+
network: EvmNetworkSchema,
|
|
86
|
+
payload: import_types2.ExactEvmPayloadSchema
|
|
87
|
+
});
|
|
88
|
+
EVM_NETWORK_CONFIGS = {
|
|
89
|
+
"ethereum": {
|
|
90
|
+
chainId: "0x1",
|
|
91
|
+
chainName: "Ethereum Mainnet",
|
|
92
|
+
rpcUrls: ["https://eth.llamarpc.com"],
|
|
93
|
+
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
94
|
+
},
|
|
95
|
+
"sepolia": {
|
|
96
|
+
chainId: "0xaa36a7",
|
|
97
|
+
chainName: "Sepolia",
|
|
98
|
+
rpcUrls: ["https://sepolia.infura.io/v3/"],
|
|
99
|
+
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
100
|
+
},
|
|
101
|
+
"base": {
|
|
102
|
+
chainId: "0x2105",
|
|
103
|
+
chainName: "Base",
|
|
104
|
+
rpcUrls: ["https://mainnet.base.org"],
|
|
105
|
+
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
106
|
+
},
|
|
107
|
+
"base-sepolia": {
|
|
108
|
+
chainId: "0x14a34",
|
|
109
|
+
chainName: "Base Sepolia",
|
|
110
|
+
rpcUrls: ["https://sepolia.base.org"],
|
|
111
|
+
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
});
|
|
133
116
|
|
|
134
|
-
// src/
|
|
135
|
-
var
|
|
136
|
-
var
|
|
117
|
+
// src/types/index.ts
|
|
118
|
+
var import_types3;
|
|
119
|
+
var init_types = __esm({
|
|
120
|
+
"src/types/index.ts"() {
|
|
121
|
+
"use strict";
|
|
122
|
+
import_types3 = require("x402/types");
|
|
123
|
+
init_svm();
|
|
124
|
+
init_evm();
|
|
125
|
+
}
|
|
126
|
+
});
|
|
137
127
|
|
|
138
128
|
// src/utils/wallet.ts
|
|
139
129
|
function isWalletInstalled(networkType) {
|
|
@@ -192,6 +182,54 @@ function getWalletDisplayName(networkType) {
|
|
|
192
182
|
return "Unknown Wallet";
|
|
193
183
|
}
|
|
194
184
|
}
|
|
185
|
+
var init_wallet = __esm({
|
|
186
|
+
"src/utils/wallet.ts"() {
|
|
187
|
+
"use strict";
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
// src/index.ts
|
|
192
|
+
var index_exports = {};
|
|
193
|
+
__export(index_exports, {
|
|
194
|
+
EVM_NETWORK_CONFIGS: () => EVM_NETWORK_CONFIGS,
|
|
195
|
+
EvmNetworkSchema: () => EvmNetworkSchema,
|
|
196
|
+
EvmPaymentPayloadSchema: () => EvmPaymentPayloadSchema,
|
|
197
|
+
SolanaNetworkSchema: () => SolanaNetworkSchema,
|
|
198
|
+
SolanaPaymentPayloadSchema: () => SolanaPaymentPayloadSchema,
|
|
199
|
+
createEvmPaymentFetch: () => createEvmPaymentFetch,
|
|
200
|
+
createEvmPaymentHeader: () => createEvmPaymentHeader,
|
|
201
|
+
createSvmPaymentFetch: () => createSvmPaymentFetch,
|
|
202
|
+
createSvmPaymentHeader: () => createSvmPaymentHeader,
|
|
203
|
+
formatAddress: () => formatAddress,
|
|
204
|
+
fromAtomicUnits: () => fromAtomicUnits,
|
|
205
|
+
getChainId: () => getChainId,
|
|
206
|
+
getChainIdFromNetwork: () => getChainIdFromNetwork,
|
|
207
|
+
getDefaultSolanaRpcUrl: () => getDefaultSolanaRpcUrl,
|
|
208
|
+
getNetworkDisplayName: () => getNetworkDisplayName,
|
|
209
|
+
getNetworkType: () => getNetworkType,
|
|
210
|
+
getWalletDisplayName: () => getWalletDisplayName,
|
|
211
|
+
getWalletInstallUrl: () => getWalletInstallUrl,
|
|
212
|
+
getWalletProvider: () => getWalletProvider,
|
|
213
|
+
handleEvmPayment: () => handleEvmPayment,
|
|
214
|
+
handleSvmPayment: () => handleSvmPayment,
|
|
215
|
+
is402Response: () => is402Response,
|
|
216
|
+
isEvmAddress: () => isEvmAddress,
|
|
217
|
+
isEvmNetwork: () => isEvmNetwork,
|
|
218
|
+
isSolanaAddress: () => isSolanaAddress,
|
|
219
|
+
isSolanaNetwork: () => isSolanaNetwork,
|
|
220
|
+
isWalletInstalled: () => isWalletInstalled,
|
|
221
|
+
makePayment: () => makePayment,
|
|
222
|
+
toAtomicUnits: () => toAtomicUnits
|
|
223
|
+
});
|
|
224
|
+
module.exports = __toCommonJS(index_exports);
|
|
225
|
+
init_types();
|
|
226
|
+
|
|
227
|
+
// src/services/svm/payment-header.ts
|
|
228
|
+
var import_web3 = require("@solana/web3.js");
|
|
229
|
+
var import_spl_token = require("@solana/spl-token");
|
|
230
|
+
|
|
231
|
+
// src/utils/index.ts
|
|
232
|
+
init_wallet();
|
|
195
233
|
|
|
196
234
|
// src/services/evm/payment-header.ts
|
|
197
235
|
var import_ethers = require("ethers");
|
|
@@ -307,6 +345,7 @@ function getChainIdFromNetwork(network) {
|
|
|
307
345
|
}
|
|
308
346
|
|
|
309
347
|
// src/services/evm/payment-handler.ts
|
|
348
|
+
init_types();
|
|
310
349
|
async function handleEvmPayment(endpoint, config, requestInit) {
|
|
311
350
|
const { wallet, network, maxPaymentAmount } = config;
|
|
312
351
|
const initialResponse = await fetch(endpoint, {
|
|
@@ -483,9 +522,16 @@ function createEvmPaymentFetch(config) {
|
|
|
483
522
|
|
|
484
523
|
// src/utils/payment-helpers.ts
|
|
485
524
|
var import_ethers2 = require("ethers");
|
|
486
|
-
|
|
487
|
-
|
|
525
|
+
init_common();
|
|
526
|
+
async function makePayment(networkType, merchantId, endpoint = PROD_BACK_URL, additionalParams) {
|
|
527
|
+
const fullEndpoint = `${endpoint}/${merchantId}`;
|
|
488
528
|
let response;
|
|
529
|
+
const requestInit = additionalParams && Object.keys(additionalParams).length > 0 ? {
|
|
530
|
+
body: JSON.stringify(additionalParams),
|
|
531
|
+
headers: {
|
|
532
|
+
"Content-Type": "application/json"
|
|
533
|
+
}
|
|
534
|
+
} : {};
|
|
489
535
|
if (networkType === "solana" /* SOLANA */ || networkType === "svm" /* SVM */) {
|
|
490
536
|
const solana = window.solana;
|
|
491
537
|
if (!solana) {
|
|
@@ -494,11 +540,11 @@ async function makePayment(networkType, merchantId, endpoint = PROD_BACK_URL) {
|
|
|
494
540
|
if (!solana.isConnected) {
|
|
495
541
|
await solana.connect();
|
|
496
542
|
}
|
|
497
|
-
response = await handleSvmPayment(
|
|
543
|
+
response = await handleSvmPayment(fullEndpoint, {
|
|
498
544
|
wallet: solana,
|
|
499
545
|
network: "solana"
|
|
500
546
|
// Will use backend's network configuration
|
|
501
|
-
});
|
|
547
|
+
}, requestInit);
|
|
502
548
|
} else if (networkType === "evm" /* EVM */) {
|
|
503
549
|
if (!window.ethereum) {
|
|
504
550
|
throw new Error("\u8BF7\u5B89\u88C5 MetaMask \u94B1\u5305");
|
|
@@ -523,11 +569,11 @@ async function makePayment(networkType, merchantId, endpoint = PROD_BACK_URL) {
|
|
|
523
569
|
});
|
|
524
570
|
}
|
|
525
571
|
};
|
|
526
|
-
response = await handleEvmPayment(
|
|
572
|
+
response = await handleEvmPayment(fullEndpoint, {
|
|
527
573
|
wallet,
|
|
528
574
|
network: "base"
|
|
529
575
|
// Will use backend's network configuration
|
|
530
|
-
});
|
|
576
|
+
}, requestInit);
|
|
531
577
|
} else {
|
|
532
578
|
throw new Error(`\u4E0D\u652F\u6301\u7684\u7F51\u7EDC\u7C7B\u578B: ${networkType}`);
|
|
533
579
|
}
|
|
@@ -577,6 +623,7 @@ function isEvmAddress(address) {
|
|
|
577
623
|
}
|
|
578
624
|
function getNetworkDisplayName(network) {
|
|
579
625
|
const displayNames = {
|
|
626
|
+
"evm": "EVM",
|
|
580
627
|
"ethereum": "Ethereum",
|
|
581
628
|
"sepolia": "Sepolia Testnet",
|
|
582
629
|
"base": "Base",
|
|
@@ -850,6 +897,7 @@ function getDefaultSolanaRpcUrl(network) {
|
|
|
850
897
|
}
|
|
851
898
|
|
|
852
899
|
// src/services/svm/payment-handler.ts
|
|
900
|
+
init_types();
|
|
853
901
|
async function handleSvmPayment(endpoint, config, requestInit) {
|
|
854
902
|
const { wallet, network, rpcUrl, maxPaymentAmount } = config;
|
|
855
903
|
const initialResponse = await fetch(endpoint, {
|
|
@@ -874,7 +922,8 @@ async function handleSvmPayment(endpoint, config, requestInit) {
|
|
|
874
922
|
"already_used": "This payment has already been used",
|
|
875
923
|
"network_mismatch": "Payment network does not match",
|
|
876
924
|
"invalid_payment": "Invalid payment data",
|
|
877
|
-
"verification_failed": "Payment verification failed"
|
|
925
|
+
"verification_failed": "Payment verification failed",
|
|
926
|
+
"invalid_exact_svm_payload_transaction_simulation_failed": "Transaction simulation failed due to insufficient balance. Please check your wallet balance carefully and ensure you have enough funds to cover the payment and transaction fees."
|
|
878
927
|
};
|
|
879
928
|
const errorMessage = ERROR_MESSAGES[rawResponse.error] || `Payment failed: ${rawResponse.error}`;
|
|
880
929
|
const error = new Error(errorMessage);
|
|
@@ -942,7 +991,8 @@ async function handleSvmPayment(endpoint, config, requestInit) {
|
|
|
942
991
|
"already_used": "This payment has already been used",
|
|
943
992
|
"network_mismatch": "Payment network does not match",
|
|
944
993
|
"invalid_payment": "Invalid payment data",
|
|
945
|
-
"verification_failed": "Payment verification failed"
|
|
994
|
+
"verification_failed": "Payment verification failed",
|
|
995
|
+
"invalid_exact_svm_payload_transaction_simulation_failed": "Transaction simulation failed due to insufficient balance. Please check your wallet balance carefully and ensure you have enough funds to cover the payment and transaction fees."
|
|
946
996
|
};
|
|
947
997
|
const errorMessage = ERROR_MESSAGES[retryData.error] || `Payment failed: ${retryData.error}`;
|
|
948
998
|
const error = new Error(errorMessage);
|