@deserialize/multi-vm-wallet 1.0.12 → 1.0.21
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/IChainWallet.d.ts +17 -0
- package/dist/IChainWallet.js +23 -0
- package/dist/IChainWallet.js.map +1 -0
- package/dist/bip32.d.ts +11 -0
- package/dist/bip32.js +100 -0
- package/dist/bip32.js.map +1 -0
- package/dist/evm/evm.d.ts +39 -0
- package/dist/evm/evm.js +234 -0
- package/dist/evm/evm.js.map +1 -0
- package/dist/evm/index.d.ts +2 -0
- package/dist/evm/index.js +19 -0
- package/dist/evm/index.js.map +1 -0
- package/dist/evm/utils.d.ts +207 -0
- package/dist/evm/utils.js +538 -0
- package/dist/evm/utils.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/svm/index.d.ts +1 -0
- package/dist/svm/index.js +18 -0
- package/dist/svm/index.js.map +1 -0
- package/dist/svm/svm.d.ts +36 -0
- package/dist/svm/svm.js +167 -0
- package/dist/svm/svm.js.map +1 -0
- package/dist/svm/transactionSender.d.ts +8 -0
- package/dist/svm/transactionSender.js +84 -0
- package/dist/svm/transactionSender.js.map +1 -0
- package/dist/svm/utils.d.ts +85 -0
- package/dist/svm/utils.js +305 -0
- package/dist/svm/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +44 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/evm/evm.d.ts +4 -3
- package/dist/utils/evm/evm.js +18 -6
- package/dist/utils/svm/svm.d.ts +3 -2
- package/dist/utils/svm/svm.js +17 -5
- package/dist/utils/vm.d.ts +2 -3
- package/dist/utils/vm.js +5 -6
- package/dist/vm.d.ts +12 -0
- package/dist/vm.js +49 -0
- package/dist/vm.js.map +1 -0
- package/package.json +1 -1
- package/tsconfig.json +11 -111
- package/utils/evm/evm.ts +22 -10
- package/utils/svm/svm.ts +17 -5
- package/utils/vm.ts +5 -5
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.safeApprove = exports.resetAllowance = exports.checkAndApprove = exports.approveTokenUnlimited = exports.approveToken = exports.isAllowanceSufficient = exports.checkAllowance = exports.estimateGas = exports.getGasPrices = exports.executeContractMethod = exports.sendERC20Token = exports.sendNativeToken = exports.signSendAndConfirm = exports.getTokenBalance = exports.getNativeBalance = void 0;
|
|
7
|
+
exports.getKyberSwapRoute = getKyberSwapRoute;
|
|
8
|
+
exports.buildKyberSwapTransaction = buildKyberSwapTransaction;
|
|
9
|
+
exports.performSwap = performSwap;
|
|
10
|
+
exports.getKyberSupportedChains = getKyberSupportedChains;
|
|
11
|
+
exports.isChainSupportedByKyber = isChainSupportedByKyber;
|
|
12
|
+
exports.getNativeTokenAddress = getNativeTokenAddress;
|
|
13
|
+
exports.formatAmountToWei = formatAmountToWei;
|
|
14
|
+
exports.formatAmountFromWei = formatAmountFromWei;
|
|
15
|
+
exports.prepareSwapParams = prepareSwapParams;
|
|
16
|
+
const ethers_1 = require("ethers");
|
|
17
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
18
|
+
const KYBER_BASE_URL = 'https://aggregator-api.kyberswap.com';
|
|
19
|
+
const KYBER_SUPPORTED_CHAINS = {
|
|
20
|
+
'1': 'ethereum',
|
|
21
|
+
'137': 'polygon',
|
|
22
|
+
'56': 'bsc',
|
|
23
|
+
'43114': 'avalanche',
|
|
24
|
+
'250': 'fantom',
|
|
25
|
+
'42161': 'arbitrum',
|
|
26
|
+
'10': 'optimism',
|
|
27
|
+
'8453': 'base',
|
|
28
|
+
'324': 'zksync',
|
|
29
|
+
'59144': 'linea'
|
|
30
|
+
};
|
|
31
|
+
// ERC-20 ABI
|
|
32
|
+
const ERC20_ABI = [
|
|
33
|
+
"function balanceOf(address owner) view returns (uint256)",
|
|
34
|
+
"function decimals() view returns (uint8)",
|
|
35
|
+
"function symbol() view returns (string)",
|
|
36
|
+
"function name() view returns (string)",
|
|
37
|
+
"function transfer(address to, uint256 amount) returns (bool)",
|
|
38
|
+
"function transferFrom(address from, address to, uint256 amount) returns (bool)",
|
|
39
|
+
"function approve(address spender, uint256 amount) returns (bool)",
|
|
40
|
+
"function allowance(address owner, address spender) view returns (uint256)"
|
|
41
|
+
];
|
|
42
|
+
const getNativeBalance = async (address, provider) => {
|
|
43
|
+
const balance = await provider.getBalance(address);
|
|
44
|
+
return {
|
|
45
|
+
balance: new bn_js_1.default(balance),
|
|
46
|
+
formatted: Number(balance / 10n ** 18n),
|
|
47
|
+
decimal: 18
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
exports.getNativeBalance = getNativeBalance;
|
|
51
|
+
const getTokenBalance = async (tokenAddress, walletAddress, provider) => {
|
|
52
|
+
try {
|
|
53
|
+
// Create contract instance
|
|
54
|
+
const tokenContract = new ethers_1.Contract(tokenAddress, ERC20_ABI, provider);
|
|
55
|
+
// Get balance (returns BigNumber)
|
|
56
|
+
const balance = await tokenContract.balanceOf(walletAddress);
|
|
57
|
+
// Get decimals to format the balance properly
|
|
58
|
+
const decimals = await tokenContract.decimals();
|
|
59
|
+
// Format balance by dividing by 10^decimals
|
|
60
|
+
const formattedBalance = balance / (10n ** BigInt(decimals));
|
|
61
|
+
return {
|
|
62
|
+
balance: new bn_js_1.default(balance.toString()), // Raw balance as BigNumber
|
|
63
|
+
formatted: Number(formattedBalance.toString()),
|
|
64
|
+
decimal: decimals
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error('Error fetching token balance:', error);
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.getTokenBalance = getTokenBalance;
|
|
73
|
+
/**
|
|
74
|
+
* Sign, send, and confirm any EVM transaction
|
|
75
|
+
*/
|
|
76
|
+
const signSendAndConfirm = async (wallet, // Connected wallet (private key + provider)
|
|
77
|
+
transactionParams, confirmations = 1, // Number of confirmations to wait for
|
|
78
|
+
timeout = 300000 // 5 minutes timeout
|
|
79
|
+
) => {
|
|
80
|
+
try {
|
|
81
|
+
// Prepare transaction object
|
|
82
|
+
const tx = {
|
|
83
|
+
to: transactionParams.to,
|
|
84
|
+
value: transactionParams.value || 0,
|
|
85
|
+
data: transactionParams.data || '0x',
|
|
86
|
+
};
|
|
87
|
+
// Set gas parameters
|
|
88
|
+
if (transactionParams.gasLimit) {
|
|
89
|
+
tx.gasLimit = transactionParams.gasLimit;
|
|
90
|
+
}
|
|
91
|
+
// Handle gas pricing (EIP-1559 vs legacy)
|
|
92
|
+
if (transactionParams.maxFeePerGas && transactionParams.maxPriorityFeePerGas) {
|
|
93
|
+
// EIP-1559 transaction
|
|
94
|
+
tx.maxFeePerGas = transactionParams.maxFeePerGas;
|
|
95
|
+
tx.maxPriorityFeePerGas = transactionParams.maxPriorityFeePerGas;
|
|
96
|
+
}
|
|
97
|
+
else if (transactionParams.gasPrice) {
|
|
98
|
+
// Legacy transaction
|
|
99
|
+
tx.gasPrice = transactionParams.gasPrice;
|
|
100
|
+
}
|
|
101
|
+
// Set nonce if provided
|
|
102
|
+
if (transactionParams.nonce !== undefined) {
|
|
103
|
+
tx.nonce = transactionParams.nonce;
|
|
104
|
+
}
|
|
105
|
+
// Estimate gas if not provided
|
|
106
|
+
if (!tx.gasLimit) {
|
|
107
|
+
tx.gasLimit = await wallet.estimateGas(tx);
|
|
108
|
+
}
|
|
109
|
+
console.log('Sending transaction:', tx);
|
|
110
|
+
// Sign and send transaction
|
|
111
|
+
const txResponse = await wallet.sendTransaction(tx);
|
|
112
|
+
console.log(`Transaction sent with hash: ${txResponse.hash}`);
|
|
113
|
+
// Wait for confirmation with timeout
|
|
114
|
+
const receipt = await Promise.race([
|
|
115
|
+
txResponse.wait(confirmations),
|
|
116
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Transaction confirmation timeout')), timeout))
|
|
117
|
+
]);
|
|
118
|
+
const result = {
|
|
119
|
+
hash: txResponse.hash,
|
|
120
|
+
receipt: receipt,
|
|
121
|
+
success: receipt?.status === 1,
|
|
122
|
+
gasUsed: receipt?.gasUsed,
|
|
123
|
+
effectiveGasPrice: receipt?.gasPrice,
|
|
124
|
+
blockNumber: receipt?.blockNumber,
|
|
125
|
+
confirmations: confirmations
|
|
126
|
+
};
|
|
127
|
+
console.log(`Transaction ${result.success ? 'successful' : 'failed'}:`, result);
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
console.error('Transaction failed:', error);
|
|
132
|
+
throw error;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
exports.signSendAndConfirm = signSendAndConfirm;
|
|
136
|
+
/**
|
|
137
|
+
* Send native token (ETH, BNB, MATIC, etc.)
|
|
138
|
+
*/
|
|
139
|
+
const sendNativeToken = async (wallet, to, amount, // Amount in wei
|
|
140
|
+
gasLimit, confirmations = 1) => {
|
|
141
|
+
return await (0, exports.signSendAndConfirm)(wallet, {
|
|
142
|
+
to,
|
|
143
|
+
value: (Number(amount) * 10 ** 18).toString(),
|
|
144
|
+
gasLimit
|
|
145
|
+
}, confirmations);
|
|
146
|
+
};
|
|
147
|
+
exports.sendNativeToken = sendNativeToken;
|
|
148
|
+
/**
|
|
149
|
+
* Send ERC-20 token
|
|
150
|
+
*/
|
|
151
|
+
const sendERC20Token = async (wallet, tokenAddress, to, amount, // Amount in token's smallest unit
|
|
152
|
+
gasLimit, confirmations = 1) => {
|
|
153
|
+
try {
|
|
154
|
+
// Create contract instance
|
|
155
|
+
const tokenContract = new ethers_1.Contract(tokenAddress, ERC20_ABI, wallet);
|
|
156
|
+
// Encode transfer function call
|
|
157
|
+
const data = tokenContract.interface.encodeFunctionData('transfer', [to, amount]);
|
|
158
|
+
return await (0, exports.signSendAndConfirm)(wallet, {
|
|
159
|
+
to: tokenAddress,
|
|
160
|
+
data,
|
|
161
|
+
gasLimit
|
|
162
|
+
}, confirmations);
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
console.error('ERC-20 transfer failed:', error);
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
exports.sendERC20Token = sendERC20Token;
|
|
170
|
+
/**
|
|
171
|
+
* Execute any contract method
|
|
172
|
+
*/
|
|
173
|
+
const executeContractMethod = async (wallet, contractAddress, abi, methodName, methodParams = [], value, // For payable methods
|
|
174
|
+
gasLimit, confirmations = 1) => {
|
|
175
|
+
try {
|
|
176
|
+
// Create contract instance
|
|
177
|
+
const contract = new ethers_1.Contract(contractAddress, abi, wallet);
|
|
178
|
+
// Encode method call
|
|
179
|
+
const data = contract.interface.encodeFunctionData(methodName, methodParams);
|
|
180
|
+
return await (0, exports.signSendAndConfirm)(wallet, {
|
|
181
|
+
to: contractAddress,
|
|
182
|
+
data,
|
|
183
|
+
value,
|
|
184
|
+
gasLimit
|
|
185
|
+
}, confirmations);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
console.error('Contract method execution failed:', error);
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
exports.executeContractMethod = executeContractMethod;
|
|
193
|
+
/**
|
|
194
|
+
* Get current gas prices (both legacy and EIP-1559)
|
|
195
|
+
*/
|
|
196
|
+
const getGasPrices = async (provider) => {
|
|
197
|
+
try {
|
|
198
|
+
const feeData = await provider.getFeeData();
|
|
199
|
+
return {
|
|
200
|
+
// Legacy
|
|
201
|
+
gasPrice: feeData.gasPrice,
|
|
202
|
+
// EIP-1559
|
|
203
|
+
maxFeePerGas: feeData.maxFeePerGas,
|
|
204
|
+
maxPriorityFeePerGas: feeData.maxPriorityFeePerGas
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
console.error('Error fetching gas prices:', error);
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
exports.getGasPrices = getGasPrices;
|
|
213
|
+
/**
|
|
214
|
+
* Estimate gas for a transaction
|
|
215
|
+
*/
|
|
216
|
+
const estimateGas = async (provider, transactionParams) => {
|
|
217
|
+
try {
|
|
218
|
+
const tx = {
|
|
219
|
+
to: transactionParams.to,
|
|
220
|
+
value: transactionParams.value || 0,
|
|
221
|
+
data: transactionParams.data || '0x'
|
|
222
|
+
};
|
|
223
|
+
return await provider.estimateGas(tx);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
console.error('Gas estimation failed:', error);
|
|
227
|
+
throw error;
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
exports.estimateGas = estimateGas;
|
|
231
|
+
/**
|
|
232
|
+
* Check ERC-20 token allowance
|
|
233
|
+
*/
|
|
234
|
+
const checkAllowance = async (tokenAddress, owner, spender, provider) => {
|
|
235
|
+
try {
|
|
236
|
+
const tokenContract = new ethers_1.Contract(tokenAddress, ERC20_ABI, provider);
|
|
237
|
+
// Get allowance and decimals
|
|
238
|
+
const [allowance, decimals] = await Promise.all([
|
|
239
|
+
tokenContract.allowance(owner, spender),
|
|
240
|
+
tokenContract.decimals()
|
|
241
|
+
]);
|
|
242
|
+
// Format allowance for display
|
|
243
|
+
const formattedAllowance = allowance / (10n ** BigInt(decimals));
|
|
244
|
+
return {
|
|
245
|
+
allowance,
|
|
246
|
+
formatted: formattedAllowance.toString(),
|
|
247
|
+
decimals
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
console.error('Error checking allowance:', error);
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
exports.checkAllowance = checkAllowance;
|
|
256
|
+
/**
|
|
257
|
+
* Check if allowance is sufficient for a transaction
|
|
258
|
+
*/
|
|
259
|
+
const isAllowanceSufficient = async (tokenAddress, owner, spender, requiredAmount, provider) => {
|
|
260
|
+
try {
|
|
261
|
+
const { allowance } = await (0, exports.checkAllowance)(tokenAddress, owner, spender, provider);
|
|
262
|
+
const required = typeof requiredAmount === 'string' ? BigInt(requiredAmount) : requiredAmount;
|
|
263
|
+
return allowance >= required;
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
console.error('Error checking allowance sufficiency:', error);
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
exports.isAllowanceSufficient = isAllowanceSufficient;
|
|
271
|
+
/**
|
|
272
|
+
* Approve ERC-20 token spending
|
|
273
|
+
*/
|
|
274
|
+
const approveToken = async (wallet, tokenAddress, spender, amount, // Amount to approve, use MaxUint256 for unlimited
|
|
275
|
+
gasLimit, confirmations = 1) => {
|
|
276
|
+
try {
|
|
277
|
+
const tokenContract = new ethers_1.Contract(tokenAddress, ERC20_ABI, wallet);
|
|
278
|
+
// Encode approve function call
|
|
279
|
+
const data = tokenContract.interface.encodeFunctionData('approve', [spender, amount]);
|
|
280
|
+
return await (0, exports.signSendAndConfirm)(wallet, {
|
|
281
|
+
to: tokenAddress,
|
|
282
|
+
data,
|
|
283
|
+
gasLimit
|
|
284
|
+
}, confirmations);
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
console.error('Token approval failed:', error);
|
|
288
|
+
throw error;
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
exports.approveToken = approveToken;
|
|
292
|
+
/**
|
|
293
|
+
* Approve unlimited token spending (MaxUint256)
|
|
294
|
+
*/
|
|
295
|
+
const approveTokenUnlimited = async (wallet, tokenAddress, spender, gasLimit, confirmations = 1) => {
|
|
296
|
+
// MaxUint256 = 2^256 - 1
|
|
297
|
+
const MAX_UINT256 = "115792089237316195423570985008687907853269984665640564039457584007913129639935";
|
|
298
|
+
return await (0, exports.approveToken)(wallet, tokenAddress, spender, MAX_UINT256, gasLimit, confirmations);
|
|
299
|
+
};
|
|
300
|
+
exports.approveTokenUnlimited = approveTokenUnlimited;
|
|
301
|
+
/**
|
|
302
|
+
* Check allowance and approve if necessary
|
|
303
|
+
*/
|
|
304
|
+
const checkAndApprove = async (wallet, tokenAddress, spender, requiredAmount, approvalAmount, // If not provided, will approve exactly the required amount
|
|
305
|
+
gasLimit, confirmations = 1) => {
|
|
306
|
+
try {
|
|
307
|
+
const owner = await wallet.getAddress();
|
|
308
|
+
const provider = wallet.provider;
|
|
309
|
+
// Check current allowance
|
|
310
|
+
const { allowance } = await (0, exports.checkAllowance)(tokenAddress, owner, spender, provider);
|
|
311
|
+
const required = typeof requiredAmount === 'string' ? BigInt(requiredAmount) : requiredAmount;
|
|
312
|
+
const approvalNeeded = allowance < required;
|
|
313
|
+
if (!approvalNeeded) {
|
|
314
|
+
return {
|
|
315
|
+
approvalNeeded: false,
|
|
316
|
+
currentAllowance: allowance
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
console.log(`Approval needed. Current: ${allowance}, Required: ${required}`);
|
|
320
|
+
// Determine approval amount
|
|
321
|
+
const amountToApprove = approvalAmount || required;
|
|
322
|
+
// Execute approval
|
|
323
|
+
const approvalResult = await (0, exports.approveToken)(wallet, tokenAddress, spender, amountToApprove, gasLimit, confirmations);
|
|
324
|
+
return {
|
|
325
|
+
approvalNeeded: true,
|
|
326
|
+
currentAllowance: allowance,
|
|
327
|
+
approvalResult
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
console.error('Check and approve failed:', error);
|
|
332
|
+
throw error;
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
exports.checkAndApprove = checkAndApprove;
|
|
336
|
+
/**
|
|
337
|
+
* Reset token allowance to zero (security best practice before setting new allowance)
|
|
338
|
+
*/
|
|
339
|
+
const resetAllowance = async (wallet, tokenAddress, spender, gasLimit, confirmations = 1) => {
|
|
340
|
+
return await (0, exports.approveToken)(wallet, tokenAddress, spender, "0", gasLimit, confirmations);
|
|
341
|
+
};
|
|
342
|
+
exports.resetAllowance = resetAllowance;
|
|
343
|
+
/**
|
|
344
|
+
* Safe approve: Reset to zero first, then approve the desired amount
|
|
345
|
+
* (Some tokens like USDT require this)
|
|
346
|
+
*/
|
|
347
|
+
const safeApprove = async (wallet, tokenAddress, spender, amount, gasLimit, confirmations = 1) => {
|
|
348
|
+
try {
|
|
349
|
+
console.log('Performing safe approve: reset then approve');
|
|
350
|
+
// First reset to zero
|
|
351
|
+
const resetResult = await (0, exports.resetAllowance)(wallet, tokenAddress, spender, gasLimit, confirmations);
|
|
352
|
+
if (!resetResult.success) {
|
|
353
|
+
throw new Error('Failed to reset allowance to zero');
|
|
354
|
+
}
|
|
355
|
+
// Then approve the desired amount
|
|
356
|
+
const approveResult = await (0, exports.approveToken)(wallet, tokenAddress, spender, amount, gasLimit, confirmations);
|
|
357
|
+
return {
|
|
358
|
+
resetResult,
|
|
359
|
+
approveResult
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
catch (error) {
|
|
363
|
+
console.error('Safe approve failed:', error);
|
|
364
|
+
throw error;
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
exports.safeApprove = safeApprove;
|
|
368
|
+
//swaps
|
|
369
|
+
//kyber swap here
|
|
370
|
+
//docs -. https://docs.kyberswap.com/kyberswap-solutions/kyberswap-aggregator/developer-guides/execute-a-swap-with-the-aggregator-api
|
|
371
|
+
// the major constrain is that each function should return a transaction to sign, do not sign transaction or send transaction within util functions
|
|
372
|
+
// let the ChainWalletClass be the one to sign and send,
|
|
373
|
+
//so in you chainWallet.swap, you can have the futil swap function to get the transaction then another function to sign and send and confirm the transaction
|
|
374
|
+
async function getKyberSwapRoute(params) {
|
|
375
|
+
const chainName = KYBER_SUPPORTED_CHAINS[params.chainId];
|
|
376
|
+
if (!chainName) {
|
|
377
|
+
throw new Error(`Unsupported chain ID: ${params.chainId}`);
|
|
378
|
+
}
|
|
379
|
+
const queryParams = new URLSearchParams({
|
|
380
|
+
tokenIn: params.tokenIn,
|
|
381
|
+
tokenOut: params.tokenOut,
|
|
382
|
+
amountIn: params.amountIn,
|
|
383
|
+
});
|
|
384
|
+
if (params.feeAmount)
|
|
385
|
+
queryParams.append('feeAmount', params.feeAmount);
|
|
386
|
+
if (params.feeReceiver)
|
|
387
|
+
queryParams.append('feeReceiver', params.feeReceiver);
|
|
388
|
+
if (params.isInBps !== undefined)
|
|
389
|
+
queryParams.append('isInBps', params.isInBps.toString());
|
|
390
|
+
if (params.chargeFeeBy)
|
|
391
|
+
queryParams.append('chargeFeeBy', params.chargeFeeBy);
|
|
392
|
+
const url = `${KYBER_BASE_URL}/${chainName}/api/v1/routes?${queryParams}`;
|
|
393
|
+
const headers = {};
|
|
394
|
+
if (params.clientId) {
|
|
395
|
+
headers['x-client-id'] = params.clientId;
|
|
396
|
+
}
|
|
397
|
+
try {
|
|
398
|
+
const response = await fetch(url, { headers });
|
|
399
|
+
const data = await response.json();
|
|
400
|
+
if (!response.ok) {
|
|
401
|
+
throw new Error(`KyberSwap API error: ${data.message || response.statusText}`);
|
|
402
|
+
}
|
|
403
|
+
return data;
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
console.error('Error fetching KyberSwap route:', error);
|
|
407
|
+
throw error;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
async function buildKyberSwapTransaction(chainId, routeSummary, sender, recipient, slippageTolerance = 50, deadline, clientId) {
|
|
411
|
+
const chainName = KYBER_SUPPORTED_CHAINS[chainId];
|
|
412
|
+
if (!chainName) {
|
|
413
|
+
throw new Error(`Unsupported chain ID: ${chainId}`);
|
|
414
|
+
}
|
|
415
|
+
const url = `${KYBER_BASE_URL}/${chainName}/api/v1/route/build`;
|
|
416
|
+
const txDeadline = deadline || Math.floor(Date.now() / 1000) + 1200;
|
|
417
|
+
const body = {
|
|
418
|
+
routeSummary,
|
|
419
|
+
sender,
|
|
420
|
+
recipient,
|
|
421
|
+
slippageTolerance,
|
|
422
|
+
deadline: txDeadline,
|
|
423
|
+
source: clientId || 'MyWalletApp'
|
|
424
|
+
};
|
|
425
|
+
const headers = {
|
|
426
|
+
'Content-Type': 'application/json',
|
|
427
|
+
};
|
|
428
|
+
if (clientId) {
|
|
429
|
+
headers['x-client-id'] = clientId;
|
|
430
|
+
}
|
|
431
|
+
try {
|
|
432
|
+
const response = await fetch(url, {
|
|
433
|
+
method: 'POST',
|
|
434
|
+
headers,
|
|
435
|
+
body: JSON.stringify(body)
|
|
436
|
+
});
|
|
437
|
+
const data = await response.json();
|
|
438
|
+
if (!response.ok) {
|
|
439
|
+
throw new Error(`KyberSwap build API error: ${data.message || response.statusText}`);
|
|
440
|
+
}
|
|
441
|
+
return data;
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
console.error('Error building KyberSwap transaction:', error);
|
|
445
|
+
throw error;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
async function performSwap(params) {
|
|
449
|
+
try {
|
|
450
|
+
console.log('Starting KyberSwap aggregation...', {
|
|
451
|
+
tokenIn: params.tokenIn,
|
|
452
|
+
tokenOut: params.tokenOut,
|
|
453
|
+
amountIn: params.amountIn,
|
|
454
|
+
chainId: params.chainId
|
|
455
|
+
});
|
|
456
|
+
console.log('Fetching best swap route across all DEXs...');
|
|
457
|
+
const routeResponse = await getKyberSwapRoute({
|
|
458
|
+
chainId: params.chainId,
|
|
459
|
+
tokenIn: params.tokenIn,
|
|
460
|
+
tokenOut: params.tokenOut,
|
|
461
|
+
amountIn: params.amountIn,
|
|
462
|
+
feeAmount: params.feeAmount,
|
|
463
|
+
feeReceiver: params.feeReceiver,
|
|
464
|
+
isInBps: params.isInBps,
|
|
465
|
+
chargeFeeBy: params.chargeFeeBy,
|
|
466
|
+
clientId: params.clientId || 'MyWalletApp'
|
|
467
|
+
});
|
|
468
|
+
if (!routeResponse.data || !routeResponse.data.routeSummary) {
|
|
469
|
+
throw new Error('No valid route found for the swap');
|
|
470
|
+
}
|
|
471
|
+
const { routeSummary, routerAddress } = routeResponse.data;
|
|
472
|
+
console.log('✅ Best route found:', {
|
|
473
|
+
tokenIn: routeSummary.tokenIn,
|
|
474
|
+
tokenOut: routeSummary.tokenOut,
|
|
475
|
+
amountIn: routeSummary.amountIn,
|
|
476
|
+
amountOut: routeSummary.amountOut,
|
|
477
|
+
gasEstimate: routeSummary.gas,
|
|
478
|
+
routerAddress,
|
|
479
|
+
dexSources: routeSummary.swaps.map(swap => swap.exchange)
|
|
480
|
+
});
|
|
481
|
+
console.log(' Building executable transaction...');
|
|
482
|
+
const buildResponse = await buildKyberSwapTransaction(params.chainId, routeSummary, params.sender, params.recipient || params.sender, params.slippageTolerance || 50, params.deadline, params.clientId || 'MyWalletApp');
|
|
483
|
+
if (!buildResponse.data || !buildResponse.data.data) {
|
|
484
|
+
throw new Error('Failed to build transaction data');
|
|
485
|
+
}
|
|
486
|
+
const { data: encodedData, gas, routerAddress: finalRouterAddress } = buildResponse.data;
|
|
487
|
+
console.log('✅ Transaction built successfully:', {
|
|
488
|
+
to: finalRouterAddress,
|
|
489
|
+
dataLength: encodedData.length,
|
|
490
|
+
gasEstimate: gas,
|
|
491
|
+
expectedOutput: buildResponse.data.amountOut
|
|
492
|
+
});
|
|
493
|
+
return {
|
|
494
|
+
to: finalRouterAddress,
|
|
495
|
+
data: encodedData,
|
|
496
|
+
gasLimit: gas,
|
|
497
|
+
value: params.tokenIn.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
|
|
498
|
+
? params.amountIn
|
|
499
|
+
: '0'
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
catch (error) {
|
|
503
|
+
console.error('❌ KyberSwap aggregation failed:', error);
|
|
504
|
+
throw new Error(`Swap preparation failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
function getKyberSupportedChains() {
|
|
508
|
+
return { ...KYBER_SUPPORTED_CHAINS };
|
|
509
|
+
}
|
|
510
|
+
function isChainSupportedByKyber(chainId) {
|
|
511
|
+
return chainId in KYBER_SUPPORTED_CHAINS;
|
|
512
|
+
}
|
|
513
|
+
function getNativeTokenAddress() {
|
|
514
|
+
return '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
|
|
515
|
+
}
|
|
516
|
+
function formatAmountToWei(amount, decimals) {
|
|
517
|
+
const amountBN = new bn_js_1.default(amount);
|
|
518
|
+
const multiplier = new bn_js_1.default(10).pow(new bn_js_1.default(decimals));
|
|
519
|
+
return amountBN.mul(multiplier).toString();
|
|
520
|
+
}
|
|
521
|
+
function formatAmountFromWei(amountWei, decimals) {
|
|
522
|
+
const amountBN = new bn_js_1.default(amountWei);
|
|
523
|
+
const divisor = new bn_js_1.default(10).pow(new bn_js_1.default(decimals));
|
|
524
|
+
return amountBN.div(divisor).toString();
|
|
525
|
+
}
|
|
526
|
+
function prepareSwapParams(tokenIn, tokenOut, amountIn, tokenInDecimals, isNativeIn = false, isNativeOut = false) {
|
|
527
|
+
const tokenInAddress = isNativeIn ? getNativeTokenAddress() : tokenIn;
|
|
528
|
+
const tokenOutAddress = isNativeOut ? getNativeTokenAddress() : tokenOut;
|
|
529
|
+
const formattedAmountIn = amountIn.includes('.')
|
|
530
|
+
? formatAmountToWei(amountIn, tokenInDecimals)
|
|
531
|
+
: amountIn;
|
|
532
|
+
return {
|
|
533
|
+
tokenInAddress,
|
|
534
|
+
tokenOutAddress,
|
|
535
|
+
formattedAmountIn
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../utils/evm/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./bip32"), exports);
|
|
18
|
+
__exportStar(require("./evm/evm"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
__exportStar(require("./vm"), exports);
|
|
21
|
+
__exportStar(require("./evm"), exports);
|
|
22
|
+
__exportStar(require("./svm"), exports);
|
|
23
|
+
__exportStar(require("./types"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB;AACzB,0CAAuB;AACvB,uCAAoB;AACpB,wCAAqB;AACrB,wCAAqB;AAErB,0CAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./svm";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./svm"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/svm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Connection, Keypair, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { VM } from "../vm";
|
|
3
|
+
import { ChainWallet } from "../IChainWallet";
|
|
4
|
+
import { Balance, ChainWalletConfig, TokenInfo, TransactionResult } from "../types";
|
|
5
|
+
import { JupiterQuoteResponse } from "./utils";
|
|
6
|
+
export declare class SVMVM extends VM<PublicKey, Keypair, Connection> {
|
|
7
|
+
derivationPath: string;
|
|
8
|
+
constructor(seed: string);
|
|
9
|
+
static validateAddress(address: PublicKey): boolean;
|
|
10
|
+
static getNativeBalance(address: PublicKey, connection: Connection): Promise<Balance>;
|
|
11
|
+
static getTokenBalance(address: PublicKey, tokenAddress: PublicKey, connection: Connection): Promise<Balance>;
|
|
12
|
+
static signAndSendTransaction: (transaction: import("@solana/web3.js").VersionedTransaction, connection: Connection, signers: Keypair[]) => Promise<string>;
|
|
13
|
+
generatePrivateKey(index: number, seed?: string, mnemonic?: string, derivationPath?: string): {
|
|
14
|
+
privateKey: Keypair;
|
|
15
|
+
index: number;
|
|
16
|
+
};
|
|
17
|
+
static fromMnemonic(seed: string): VM<PublicKey, Keypair, Connection>;
|
|
18
|
+
}
|
|
19
|
+
export declare class SVMChainWallet extends ChainWallet<PublicKey, Keypair, Connection> {
|
|
20
|
+
constructor(config: ChainWalletConfig, privateKey: Keypair, index: number);
|
|
21
|
+
generateAddress(): PublicKey;
|
|
22
|
+
getNativeBalance(): Promise<Balance>;
|
|
23
|
+
getTokenBalance(tokenAddress: PublicKey): Promise<Balance>;
|
|
24
|
+
transferNative(to: PublicKey, amount: number): Promise<TransactionResult>;
|
|
25
|
+
transferToken(token: TokenInfo, to: PublicKey, amount: number): Promise<TransactionResult>;
|
|
26
|
+
swap(fromToken: TokenInfo, toToken: PublicKey, amount: number, slippage?: number): Promise<TransactionResult>;
|
|
27
|
+
getSwapQuote(fromToken: TokenInfo, toToken: PublicKey, amount: number, slippage?: number): Promise<{
|
|
28
|
+
success: boolean;
|
|
29
|
+
inputAmount?: string;
|
|
30
|
+
outputAmount?: string;
|
|
31
|
+
priceImpact?: string;
|
|
32
|
+
routePlan?: JupiterQuoteResponse['routePlan'];
|
|
33
|
+
slippageBps?: number;
|
|
34
|
+
error?: string;
|
|
35
|
+
}>;
|
|
36
|
+
}
|