@deserialize/multi-vm-wallet 1.1.4 → 1.1.5
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/constant.js +16 -2
- package/dist/constant.js.map +1 -1
- package/dist/evm/evm.d.ts +3 -1
- package/dist/evm/evm.js +154 -9
- package/dist/evm/evm.js.map +1 -1
- package/dist/evm/script.d.ts +24 -0
- package/dist/evm/script.js +111 -0
- package/dist/evm/script.js.map +1 -0
- package/dist/evm/utils.d.ts +13 -0
- package/dist/evm/utils.js +36 -7
- package/dist/evm/utils.js.map +1 -1
- package/dist/test.js +37 -11
- package/dist/test.js.map +1 -1
- package/package.json +6 -4
- package/utils/constant.ts +16 -2
- package/utils/evm/evm.ts +242 -9
- package/utils/evm/script.ts +160 -0
- package/utils/evm/utils.ts +46 -15
- package/utils/test.ts +45 -10
- package/utils/todo.txt +7 -0
package/dist/constant.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.DefaultChains = void 0;
|
|
|
4
4
|
exports.DefaultChains = [{
|
|
5
5
|
chainId: 501,
|
|
6
6
|
name: "Solana Mainnet",
|
|
7
|
-
rpcUrl: "https://
|
|
7
|
+
rpcUrl: "https://solana-mainnet.g.alchemy.com/v2/vB5mKztdJeFdz9RkW99Qf",
|
|
8
8
|
explorerUrl: "https://explorer.solana.com", // e.g. Solana Explorer
|
|
9
9
|
nativeToken: {
|
|
10
10
|
name: "Solana",
|
|
@@ -18,7 +18,7 @@ exports.DefaultChains = [{
|
|
|
18
18
|
{
|
|
19
19
|
chainId: 1,
|
|
20
20
|
name: "Ethereum Mainnet",
|
|
21
|
-
rpcUrl: "https://
|
|
21
|
+
rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/pwvhaDUZ4qZ8Oy2QcyWfCQa_avpkVPnL",
|
|
22
22
|
explorerUrl: "https://etherscan.io",
|
|
23
23
|
nativeToken: {
|
|
24
24
|
name: "Ether",
|
|
@@ -54,6 +54,20 @@ exports.DefaultChains = [{
|
|
|
54
54
|
testnet: false,
|
|
55
55
|
logoUrl: "https://raw.githubusercontent.com/hyperlane-xyz/hyperlane-registry/a86c3b432b6f9ad7272ae09859f20eb3ade3bd6e/deployments/warp_routes/ES/logo.svg",
|
|
56
56
|
vmType: "SVM"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
chainId: 16661,
|
|
60
|
+
name: "0G Mainnet",
|
|
61
|
+
rpcUrl: "https://evmrpc.0g.ai",
|
|
62
|
+
explorerUrl: "https://chainscan.0g.ai/", // e.g. Solana Explorer
|
|
63
|
+
nativeToken: {
|
|
64
|
+
name: "OG Mainnet",
|
|
65
|
+
symbol: "0G",
|
|
66
|
+
decimals: 18,
|
|
67
|
+
},
|
|
68
|
+
testnet: false,
|
|
69
|
+
logoUrl: "https://chainscan.0g.ai/static/media/zg-logo-new.b22d59dabf457524325ca81c29a4e055.svg",
|
|
70
|
+
vmType: "EVM"
|
|
57
71
|
}
|
|
58
72
|
];
|
|
59
73
|
//# sourceMappingURL=constant.js.map
|
package/dist/constant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../utils/constant.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAwB,CAAC;QAC/C,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../utils/constant.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAwB,CAAC;QAC/C,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,+DAA+D;QACvE,WAAW,EAAE,6BAA6B,EAAE,uBAAuB;QACnE,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;SACd;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,wDAAwD;QACjE,MAAM,EAAE,KAAK;KAEhB;IACK;QACF,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,uEAAuE;QAC/E,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACT,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,0DAA0D;QACnE,MAAM,EAAE,KAAK;KAChB,EAAE;QACC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,mCAAmC;QAC3C,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACT,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,qDAAqD;QAC9D,MAAM,EAAE,KAAK;KAChB,EAAE;QACC,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,qCAAqC;QAC7C,WAAW,EAAE,+BAA+B,EAAE,uBAAuB;QACrE,WAAW,EAAE;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;SACd;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,iJAAiJ;QAC1J,MAAM,EAAE,KAAK;KAChB;IACD;QACI,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,sBAAsB;QAC9B,WAAW,EAAE,0BAA0B,EAAE,uBAAuB;QAChE,WAAW,EAAE;YACT,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,uFAAuF;QAChG,MAAM,EAAE,KAAK;KAChB;CAGA,CAAA"}
|
package/dist/evm/evm.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import { ChainWallet } from "../IChainWallet";
|
|
|
7
7
|
import { Balance, ChainWalletConfig, TokenInfo, TransactionResult } from "../types";
|
|
8
8
|
import { VM } from "../vm";
|
|
9
9
|
import { JsonRpcProvider, Wallet } from "ethers";
|
|
10
|
-
export declare const createEvmVmPrivateKey: (phrase: string) => void;
|
|
11
10
|
export declare class EVMVM extends VM<string, string, JsonRpcProvider> {
|
|
12
11
|
derivationPath: string;
|
|
13
12
|
constructor(seed: string);
|
|
@@ -31,6 +30,9 @@ export declare class EVMChainWallet extends ChainWallet<string, string, JsonRpcP
|
|
|
31
30
|
transferToken(tokenAddress: TokenInfo, to: string, amount: number): Promise<TransactionResult>;
|
|
32
31
|
swap(tokenAddress: TokenInfo, to: string, amount: number, slippage?: number): Promise<TransactionResult>;
|
|
33
32
|
performCompleteSwap(tokenIn: TokenInfo, tokenOut: TokenInfo, amount: number, slippage?: number, recipient?: string, deadline?: number): Promise<TransactionResult>;
|
|
33
|
+
private performDebonkSwap;
|
|
34
|
+
private fail;
|
|
35
|
+
private performKyberSwap;
|
|
34
36
|
getSwapQuote(tokenIn: TokenInfo, tokenOut: TokenInfo, amount: number): Promise<{
|
|
35
37
|
amountOut: string;
|
|
36
38
|
priceImpact: string;
|
package/dist/evm/evm.js
CHANGED
|
@@ -8,15 +8,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
8
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
9
|
};
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.EVMChainWallet = exports.EVMVM =
|
|
11
|
+
exports.EVMChainWallet = exports.EVMVM = void 0;
|
|
12
12
|
const bip32_1 = require("../bip32");
|
|
13
13
|
const IChainWallet_1 = require("../IChainWallet");
|
|
14
14
|
const vm_1 = require("../vm");
|
|
15
15
|
const ethers_1 = require("ethers");
|
|
16
16
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
17
17
|
const utils_1 = require("./utils");
|
|
18
|
-
const createEvmVmPrivateKey = (phrase) => { };
|
|
19
|
-
exports.createEvmVmPrivateKey = createEvmVmPrivateKey;
|
|
20
18
|
class EVMVM extends vm_1.VM {
|
|
21
19
|
constructor(seed) {
|
|
22
20
|
super(seed, "EVM");
|
|
@@ -113,6 +111,153 @@ class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
113
111
|
amount: amount,
|
|
114
112
|
slippage: `${slippage / 100}%`
|
|
115
113
|
});
|
|
114
|
+
// Check if this is a 0G chain that should use Debonk
|
|
115
|
+
if ((0, utils_1.isChainSupportedByDebonk)(chainId)) {
|
|
116
|
+
console.log('Using Debonk API for 0G chain swap');
|
|
117
|
+
return await this.performDebonkSwap(tokenIn, tokenOut, amount, slippage, recipient, deadline);
|
|
118
|
+
}
|
|
119
|
+
// Otherwise use Kyber (existing flow)
|
|
120
|
+
console.log('Using KyberSwap for non-0G chain swap');
|
|
121
|
+
return await this.performKyberSwap(tokenIn, tokenOut, amount, slippage, recipient, deadline);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error('Swap failed:', error);
|
|
125
|
+
throw new Error(`Swap failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async performDebonkSwap(tokenIn, tokenOut, amount, slippage = 50, // bps (e.g., 50 = 0.5%)
|
|
129
|
+
recipient, deadline) {
|
|
130
|
+
try {
|
|
131
|
+
const BASE_URL = 'https://evm-api.deserialize.xyz';
|
|
132
|
+
const tokenInAddress = tokenIn.address;
|
|
133
|
+
const tokenOutAddress = tokenOut.address;
|
|
134
|
+
// Convert amount to wei (multiply by 10^18 for 18 decimal tokens)
|
|
135
|
+
const amountInWei = (amount * Math.pow(10, tokenIn.decimals || 18)).toString();
|
|
136
|
+
console.log("amountInWei", amountInWei);
|
|
137
|
+
// Convert slippage from bps to percentage (e.g., 50 bps -> 0.5%)
|
|
138
|
+
const slippagePercentage = slippage / 100;
|
|
139
|
+
console.log("Debonk API swap params:", {
|
|
140
|
+
tokenA: tokenInAddress,
|
|
141
|
+
tokenB: tokenOutAddress,
|
|
142
|
+
amountIn: amount,
|
|
143
|
+
amountInWei: amountInWei,
|
|
144
|
+
slippage: slippagePercentage,
|
|
145
|
+
});
|
|
146
|
+
// Step 1: Get quote from API
|
|
147
|
+
console.log("Getting quote from Debonk API...");
|
|
148
|
+
const quotePayload = {
|
|
149
|
+
tokenA: tokenInAddress,
|
|
150
|
+
tokenB: tokenOutAddress,
|
|
151
|
+
amountIn: amountInWei, // Use wei amount
|
|
152
|
+
dexId: "ZERO_G"
|
|
153
|
+
};
|
|
154
|
+
console.log("Quote request payload:", quotePayload);
|
|
155
|
+
const quoteResponse = await fetch(`${BASE_URL}/quote`, {
|
|
156
|
+
method: 'POST',
|
|
157
|
+
headers: {
|
|
158
|
+
'Content-Type': 'application/json',
|
|
159
|
+
},
|
|
160
|
+
body: JSON.stringify(quotePayload)
|
|
161
|
+
});
|
|
162
|
+
if (!quoteResponse.ok) {
|
|
163
|
+
const errorText = await quoteResponse.text();
|
|
164
|
+
console.error("Quote API error response:", errorText);
|
|
165
|
+
return this.fail(`Quote API failed: ${quoteResponse.status} ${errorText}`);
|
|
166
|
+
}
|
|
167
|
+
const quote = await quoteResponse.json();
|
|
168
|
+
console.log("Quote received:", JSON.stringify(quote, null, 2));
|
|
169
|
+
// Step 2: Fix the quote dexId for swap API (it expects "ALL")
|
|
170
|
+
const modifiedQuote = {
|
|
171
|
+
...quote,
|
|
172
|
+
dexId: "ALL" // Change from "ZERO_G" to "ALL" as required by swap API
|
|
173
|
+
};
|
|
174
|
+
console.log("Modified quote for swap API:", JSON.stringify(modifiedQuote, null, 2));
|
|
175
|
+
// Step 3: Get wallet address
|
|
176
|
+
const walletAddress = await this.getWallet().getAddress();
|
|
177
|
+
console.log("Wallet address:", walletAddress);
|
|
178
|
+
// Step 4: Call swap API with modified quote
|
|
179
|
+
console.log("Calling swap API...");
|
|
180
|
+
const swapPayload = {
|
|
181
|
+
publicKey: walletAddress,
|
|
182
|
+
slippage: slippagePercentage,
|
|
183
|
+
quote: modifiedQuote
|
|
184
|
+
};
|
|
185
|
+
console.log("Swap request payload:", JSON.stringify(swapPayload, null, 2));
|
|
186
|
+
const swapResponse = await fetch(`${BASE_URL}/swap`, {
|
|
187
|
+
method: 'POST',
|
|
188
|
+
headers: {
|
|
189
|
+
'Content-Type': 'application/json',
|
|
190
|
+
},
|
|
191
|
+
body: JSON.stringify(swapPayload)
|
|
192
|
+
});
|
|
193
|
+
if (!swapResponse.ok) {
|
|
194
|
+
const errorText = await swapResponse.text();
|
|
195
|
+
console.error("Swap API error response:", errorText);
|
|
196
|
+
return this.fail(`Swap API failed: ${swapResponse.status} ${errorText}`);
|
|
197
|
+
}
|
|
198
|
+
const swapData = await swapResponse.json();
|
|
199
|
+
console.log("Swap API response:", JSON.stringify(swapData, null, 2));
|
|
200
|
+
const wallet = this.getWallet();
|
|
201
|
+
let lastTxHash = '';
|
|
202
|
+
// Step 5: Execute each transaction sequentially
|
|
203
|
+
console.log(`Executing ${swapData.transactions.length} transactions...`);
|
|
204
|
+
for (let i = 0; i < swapData.transactions.length; i++) {
|
|
205
|
+
const transaction = swapData.transactions[i];
|
|
206
|
+
console.log(`Executing transaction ${i + 1} of ${swapData.transactions.length}`);
|
|
207
|
+
// Prepare transaction object
|
|
208
|
+
const txRequest = {
|
|
209
|
+
to: transaction.to,
|
|
210
|
+
data: transaction.data,
|
|
211
|
+
value: transaction.value,
|
|
212
|
+
// gasPrice: 70000000000,
|
|
213
|
+
// gasLimit: 70000, // Increase significantly
|
|
214
|
+
};
|
|
215
|
+
console.log("Prepared transaction request:", txRequest);
|
|
216
|
+
console.log(`Transaction ${i + 1} request:`, txRequest);
|
|
217
|
+
try {
|
|
218
|
+
const txResponse = await wallet.sendTransaction(txRequest);
|
|
219
|
+
console.log(`Transaction ${i + 1} sent:`, txResponse.hash);
|
|
220
|
+
// Wait for confirmation
|
|
221
|
+
const receipt = await txResponse.wait();
|
|
222
|
+
if (!receipt) {
|
|
223
|
+
return this.fail(`Transaction ${i + 1} failed - no receipt received`);
|
|
224
|
+
}
|
|
225
|
+
const txHash = receipt.hash || txResponse.hash;
|
|
226
|
+
lastTxHash = txHash;
|
|
227
|
+
console.log(`Transaction ${i + 1} confirmed:`, {
|
|
228
|
+
hash: txHash,
|
|
229
|
+
blockNumber: receipt.blockNumber,
|
|
230
|
+
gasUsed: receipt.gasUsed?.toString()
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
catch (txError) {
|
|
234
|
+
console.error(`Transaction ${i + 1} failed:`, txError);
|
|
235
|
+
return this.fail(`Transaction ${i + 1} failed: ${txError?.message ?? String(txError)}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
console.log("All transactions completed successfully");
|
|
239
|
+
return {
|
|
240
|
+
success: true,
|
|
241
|
+
hash: lastTxHash // Return the hash of the last transaction
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
console.error("Debonk API swap error:", error);
|
|
246
|
+
return this.fail(`Debonk API swap failed: ${error?.message ?? String(error)}`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Helper method for EVMChainWallet class
|
|
250
|
+
fail(message) {
|
|
251
|
+
return {
|
|
252
|
+
success: false,
|
|
253
|
+
hash: "",
|
|
254
|
+
error: message
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
async performKyberSwap(tokenIn, tokenOut, amount, slippage = 50, recipient, deadline) {
|
|
258
|
+
try {
|
|
259
|
+
const wallet = this.getWallet();
|
|
260
|
+
const chainId = (await this.connection.getNetwork()).chainId.toString();
|
|
116
261
|
if (!(0, utils_1.isChainSupportedByKyber)(chainId)) {
|
|
117
262
|
throw new Error(`Chain ${chainId} is not supported by KyberSwap`);
|
|
118
263
|
}
|
|
@@ -129,7 +274,7 @@ class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
129
274
|
tokenInDecimals = tokenBalance.decimal;
|
|
130
275
|
}
|
|
131
276
|
const { tokenInAddress, tokenOutAddress, formattedAmountIn } = (0, utils_1.prepareSwapParams)(tokenIn.address, tokenOut.address, amount.toString(), tokenInDecimals, isNativeIn, isNativeOut);
|
|
132
|
-
console.log('
|
|
277
|
+
console.log('Kyber swap parameters:', {
|
|
133
278
|
tokenInAddress,
|
|
134
279
|
tokenOutAddress,
|
|
135
280
|
formattedAmountIn,
|
|
@@ -160,7 +305,7 @@ class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
160
305
|
deadline: deadline ? Math.floor(Date.now() / 1000) + deadline : Math.floor(Date.now() / 1000) + 1200, // 20 minutes default
|
|
161
306
|
clientId: 'EVMChainWallet'
|
|
162
307
|
});
|
|
163
|
-
console.log('
|
|
308
|
+
console.log('Kyber swap transaction prepared:', {
|
|
164
309
|
to: swapTx.to,
|
|
165
310
|
dataLength: swapTx.data?.length || 0,
|
|
166
311
|
gasLimit: swapTx.gasLimit?.toString(),
|
|
@@ -189,20 +334,20 @@ class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
189
334
|
gasLimit: swapTx.gasLimit
|
|
190
335
|
}, this.config.confirmationNo || 1);
|
|
191
336
|
if (result.success) {
|
|
192
|
-
console.log('
|
|
337
|
+
console.log(' Kyber swap completed successfully:', {
|
|
193
338
|
hash: result.hash,
|
|
194
339
|
gasUsed: result.gasUsed?.toString(),
|
|
195
340
|
blockNumber: result.blockNumber
|
|
196
341
|
});
|
|
197
342
|
}
|
|
198
343
|
else {
|
|
199
|
-
console.log('
|
|
344
|
+
console.log(' Kyber swap failed:', result);
|
|
200
345
|
}
|
|
201
346
|
return result;
|
|
202
347
|
}
|
|
203
348
|
catch (error) {
|
|
204
|
-
console.error('
|
|
205
|
-
throw new Error(`
|
|
349
|
+
console.error('Kyber swap failed:', error);
|
|
350
|
+
throw new Error(`Kyber swap failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
206
351
|
}
|
|
207
352
|
}
|
|
208
353
|
async getSwapQuote(tokenIn, tokenOut, amount) {
|
package/dist/evm/evm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../utils/evm/evm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../utils/evm/evm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface SwapParams {
|
|
2
|
+
privateKey: string;
|
|
3
|
+
tokenIn: string;
|
|
4
|
+
tokenOut: string;
|
|
5
|
+
tokenInDecimal: number;
|
|
6
|
+
amountIn: string;
|
|
7
|
+
adminAddress: string;
|
|
8
|
+
routerAddress: string;
|
|
9
|
+
minAmountOut: string;
|
|
10
|
+
rpcUrl: string;
|
|
11
|
+
feeTier?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const quote: (quoterAddress: string, rpc: string, tokenIn: string, tokenOut: string, amountIn: string, fee: number, sqrtPriceLimitX96?: string) => Promise<any>;
|
|
14
|
+
export declare const quickSwapSetup: (params: SwapParams) => Promise<{
|
|
15
|
+
success: boolean;
|
|
16
|
+
txHash: any;
|
|
17
|
+
amountOut: any;
|
|
18
|
+
error?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
success: boolean;
|
|
21
|
+
error: string;
|
|
22
|
+
txHash?: undefined;
|
|
23
|
+
amountOut?: undefined;
|
|
24
|
+
}>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.quickSwapSetup = exports.quote = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
// Simplified ABI for Uniswap V3 Router
|
|
6
|
+
const ROUTER_ABI = [
|
|
7
|
+
'function exactInputSingle((address tokenIn, address tokenIn, uint24 fee, address recipient, uint256 deadline, uint256 amountIn, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)',
|
|
8
|
+
'function exactOutputSingle((address tokenIn, address tokenIn, uint24 fee, address recipient, uint256 deadline, uint256 amountOut, uint256 amountInMaximum, uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountIn)'
|
|
9
|
+
];
|
|
10
|
+
// ERC20 ABI (simplified)
|
|
11
|
+
const ERC20_ABI = [
|
|
12
|
+
'function approve(address spender, uint256 amount) external returns (bool)',
|
|
13
|
+
'function allowance(address owner, address spender) external view returns (uint256)',
|
|
14
|
+
'function balanceOf(address account) external view returns (uint256)'
|
|
15
|
+
];
|
|
16
|
+
const quote = async (quoterAddress, rpc, tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96 = "0") => {
|
|
17
|
+
const provider = new ethers_1.ethers.JsonRpcProvider(rpc);
|
|
18
|
+
const viewABI = [
|
|
19
|
+
{
|
|
20
|
+
inputs: [
|
|
21
|
+
{ internalType: "address", name: "tokenIn", type: "address" },
|
|
22
|
+
{ internalType: "address", name: "tokenOut", type: "address" },
|
|
23
|
+
{ internalType: "uint24", name: "fee", type: "uint24" },
|
|
24
|
+
{ internalType: "uint256", name: "amountIn", type: "uint256" },
|
|
25
|
+
{ internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" },
|
|
26
|
+
],
|
|
27
|
+
name: "quoteExactInputSingle",
|
|
28
|
+
outputs: [{ internalType: "uint256", name: "amountOut", type: "uint256" }],
|
|
29
|
+
stateMutability: "view",
|
|
30
|
+
type: "function",
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
const quoter = new ethers_1.ethers.Contract(quoterAddress, viewABI, provider);
|
|
34
|
+
try {
|
|
35
|
+
const amountOut = await quoter.quoteExactInputSingle(tokenIn, tokenOut, fee, amountIn, sqrtPriceLimitX96);
|
|
36
|
+
console.log("Amount Out:", amountOut.toString());
|
|
37
|
+
return amountOut.toString();
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
console.error("Quote failed:", err);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.quote = quote;
|
|
44
|
+
const quickSwapSetup = async (params) => {
|
|
45
|
+
const { privateKey, tokenIn, tokenOut, amountIn, tokenInDecimal, adminAddress, routerAddress, rpcUrl, minAmountOut, feeTier = 100 // 0.01% fee tier
|
|
46
|
+
} = params;
|
|
47
|
+
try {
|
|
48
|
+
// Setup provider and wallet
|
|
49
|
+
const provider = new ethers_1.ethers.JsonRpcProvider(rpcUrl);
|
|
50
|
+
const wallet = new ethers_1.ethers.Wallet(privateKey, provider);
|
|
51
|
+
// Create contract instances
|
|
52
|
+
const router = new ethers_1.ethers.Contract(routerAddress, ROUTER_ABI, wallet);
|
|
53
|
+
const tokenInContract = new ethers_1.ethers.Contract(tokenIn, ERC20_ABI, wallet);
|
|
54
|
+
// Convert amount to wei
|
|
55
|
+
const amountInWei = ethers_1.ethers.parseUnits(amountIn, tokenInDecimal); // Assuming 18 decimals
|
|
56
|
+
// Check and approve token allowance
|
|
57
|
+
const allowance = await tokenInContract.allowance(wallet.address, routerAddress);
|
|
58
|
+
if (allowance < amountInWei) {
|
|
59
|
+
console.log('Approving tokens...');
|
|
60
|
+
const approveTx = await tokenInContract.approve(routerAddress, amountInWei);
|
|
61
|
+
await approveTx.wait();
|
|
62
|
+
console.log('Approval confirmed');
|
|
63
|
+
}
|
|
64
|
+
// Calculate amount with fee (0.01% to admin)
|
|
65
|
+
const feeAmount = amountInWei * BigInt(1) / BigInt(10000); // 0.01%
|
|
66
|
+
const amountAfterFee = amountInWei - feeAmount;
|
|
67
|
+
// Transfer fee to admin
|
|
68
|
+
if (feeAmount > 0) {
|
|
69
|
+
console.log(`Transferring ${ethers_1.ethers.formatUnits(feeAmount, tokenIn)} fee to admin`);
|
|
70
|
+
const feeTransferTx = await tokenInContract.transfer(adminAddress, feeAmount);
|
|
71
|
+
await feeTransferTx.wait();
|
|
72
|
+
}
|
|
73
|
+
// Set deadline (10 minutes from now)
|
|
74
|
+
const deadline = Math.floor(Date.now() / 1000) + 600;
|
|
75
|
+
// Prepare swap parameters
|
|
76
|
+
const swapParams = {
|
|
77
|
+
tokenIn: tokenIn,
|
|
78
|
+
tokenOut: tokenOut,
|
|
79
|
+
fee: feeTier,
|
|
80
|
+
recipient: wallet.address,
|
|
81
|
+
deadline: deadline,
|
|
82
|
+
amountIn: amountAfterFee,
|
|
83
|
+
amountOutMinimum: minAmountOut,
|
|
84
|
+
sqrtPriceLimitX96: 0
|
|
85
|
+
};
|
|
86
|
+
console.log('Executing swap...');
|
|
87
|
+
// Execute swap
|
|
88
|
+
const swapTx = await router.exactInputSingle(swapParams);
|
|
89
|
+
const receipt = await swapTx.wait();
|
|
90
|
+
console.log('Swap successful!');
|
|
91
|
+
console.log('Transaction hash:', receipt.hash);
|
|
92
|
+
// Check final balances
|
|
93
|
+
const tokenOutContract = new ethers_1.ethers.Contract(tokenOut, ERC20_ABI, wallet);
|
|
94
|
+
const finalBalance = await tokenOutContract.balanceOf(wallet.address);
|
|
95
|
+
console.log(`Final ${tokenOut} balance:`, ethers_1.ethers.formatUnits(finalBalance, 18));
|
|
96
|
+
return {
|
|
97
|
+
success: true,
|
|
98
|
+
txHash: receipt.hash,
|
|
99
|
+
amountOut: finalBalance.toString()
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error('Swap failed:', error);
|
|
104
|
+
return {
|
|
105
|
+
success: false,
|
|
106
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
exports.quickSwapSetup = quickSwapSetup;
|
|
111
|
+
//# sourceMappingURL=script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../utils/evm/script.ts"],"names":[],"mappings":"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"}
|
package/dist/evm/utils.d.ts
CHANGED
|
@@ -90,6 +90,9 @@ export interface KyberBuildResponse {
|
|
|
90
90
|
routerAddress: string;
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
+
export declare const DESERIALIZED_SUPPORTED_CHAINS: {
|
|
94
|
+
[key: string]: string;
|
|
95
|
+
};
|
|
93
96
|
interface KyberSwapParams {
|
|
94
97
|
chainId: string;
|
|
95
98
|
tokenIn: string;
|
|
@@ -204,6 +207,7 @@ export declare function getKyberSupportedChains(): {
|
|
|
204
207
|
[key: string]: string;
|
|
205
208
|
};
|
|
206
209
|
export declare function isChainSupportedByKyber(chainId: string): boolean;
|
|
210
|
+
export declare function isChainSupportedByDebonk(chainId: string): boolean;
|
|
207
211
|
export declare function getNativeTokenAddress(): string;
|
|
208
212
|
export declare function formatAmountToWei(amount: string, decimals: number): string;
|
|
209
213
|
export declare function formatAmountFromWei(amountWei: string, decimals: number): string;
|
|
@@ -212,4 +216,13 @@ export declare function prepareSwapParams(tokenIn: string, tokenOut: string, amo
|
|
|
212
216
|
tokenOutAddress: string;
|
|
213
217
|
formattedAmountIn: string;
|
|
214
218
|
};
|
|
219
|
+
/**
|
|
220
|
+
* Normalize token address for Debonk
|
|
221
|
+
* Converts 'native' or variations to the standard 0xEeeee... address
|
|
222
|
+
*/
|
|
223
|
+
/**
|
|
224
|
+
* Convert slippage from basis points to percentage for Debonk
|
|
225
|
+
* Input: 50 (0.5% in bps) -> Output: 0.5 (percentage)
|
|
226
|
+
*/
|
|
227
|
+
export declare function convertSlippageForDebonk(slippageBps: number): number;
|
|
215
228
|
export {};
|
package/dist/evm/utils.js
CHANGED
|
@@ -3,16 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
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.getTokenInfo = exports.getNativeBalance = void 0;
|
|
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.getTokenInfo = exports.getNativeBalance = exports.DESERIALIZED_SUPPORTED_CHAINS = void 0;
|
|
7
7
|
exports.getKyberSwapRoute = getKyberSwapRoute;
|
|
8
8
|
exports.buildKyberSwapTransaction = buildKyberSwapTransaction;
|
|
9
9
|
exports.performSwap = performSwap;
|
|
10
10
|
exports.getKyberSupportedChains = getKyberSupportedChains;
|
|
11
11
|
exports.isChainSupportedByKyber = isChainSupportedByKyber;
|
|
12
|
+
exports.isChainSupportedByDebonk = isChainSupportedByDebonk;
|
|
12
13
|
exports.getNativeTokenAddress = getNativeTokenAddress;
|
|
13
14
|
exports.formatAmountToWei = formatAmountToWei;
|
|
14
15
|
exports.formatAmountFromWei = formatAmountFromWei;
|
|
15
16
|
exports.prepareSwapParams = prepareSwapParams;
|
|
17
|
+
exports.convertSlippageForDebonk = convertSlippageForDebonk;
|
|
16
18
|
const ethers_1 = require("ethers");
|
|
17
19
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
18
20
|
const KYBER_BASE_URL = 'https://aggregator-api.kyberswap.com';
|
|
@@ -28,6 +30,9 @@ const KYBER_SUPPORTED_CHAINS = {
|
|
|
28
30
|
'324': 'zksync',
|
|
29
31
|
'59144': 'linea'
|
|
30
32
|
};
|
|
33
|
+
exports.DESERIALIZED_SUPPORTED_CHAINS = {
|
|
34
|
+
'16661': '0gMainnet',
|
|
35
|
+
};
|
|
31
36
|
// ERC-20 ABI
|
|
32
37
|
const ERC20_ABI = [
|
|
33
38
|
"function balanceOf(address owner) view returns (uint256)",
|
|
@@ -40,10 +45,13 @@ const ERC20_ABI = [
|
|
|
40
45
|
"function allowance(address owner, address spender) view returns (uint256)"
|
|
41
46
|
];
|
|
42
47
|
const getNativeBalance = async (address, provider) => {
|
|
43
|
-
const balance = await provider.getBalance(address);
|
|
48
|
+
const balance = await provider.getBalance(address); // returns BigInt in ethers v6
|
|
49
|
+
const dem = 10n ** 18n;
|
|
50
|
+
// ⚠️ BigInt division truncates, so avoid dividing BigInt directly
|
|
51
|
+
const formatted = Number(balance) / Number(dem);
|
|
44
52
|
return {
|
|
45
|
-
balance: new bn_js_1.default(balance),
|
|
46
|
-
formatted
|
|
53
|
+
balance: new bn_js_1.default(balance.toString()), // raw wei as BN
|
|
54
|
+
formatted, // e.g. 0.1
|
|
47
55
|
decimal: 18
|
|
48
56
|
};
|
|
49
57
|
};
|
|
@@ -469,6 +477,9 @@ async function buildKyberSwapTransaction(chainId, routeSummary, sender, recipien
|
|
|
469
477
|
}
|
|
470
478
|
}
|
|
471
479
|
async function performSwap(params) {
|
|
480
|
+
if (!KYBER_SUPPORTED_CHAINS[params.chainId]) {
|
|
481
|
+
throw new Error(`KyberSwap does not support chain ID: ${params.chainId}`);
|
|
482
|
+
}
|
|
472
483
|
try {
|
|
473
484
|
console.log('Starting KyberSwap aggregation...', {
|
|
474
485
|
tokenIn: params.tokenIn,
|
|
@@ -554,6 +565,9 @@ function getKyberSupportedChains() {
|
|
|
554
565
|
function isChainSupportedByKyber(chainId) {
|
|
555
566
|
return chainId in KYBER_SUPPORTED_CHAINS;
|
|
556
567
|
}
|
|
568
|
+
function isChainSupportedByDebonk(chainId) {
|
|
569
|
+
return chainId in exports.DESERIALIZED_SUPPORTED_CHAINS;
|
|
570
|
+
}
|
|
557
571
|
function getNativeTokenAddress() {
|
|
558
572
|
return '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
|
|
559
573
|
}
|
|
@@ -579,7 +593,22 @@ function prepareSwapParams(tokenIn, tokenOut, amountIn, tokenInDecimals, isNativ
|
|
|
579
593
|
formattedAmountIn
|
|
580
594
|
};
|
|
581
595
|
}
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
596
|
+
/**
|
|
597
|
+
* Normalize token address for Debonk
|
|
598
|
+
* Converts 'native' or variations to the standard 0xEeeee... address
|
|
599
|
+
*/
|
|
600
|
+
// export function normalizeTokenAddressForDebonk(tokenAddress: string): string {
|
|
601
|
+
// if (tokenAddress === 'native' ||
|
|
602
|
+
// tokenAddress.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') {
|
|
603
|
+
// return getNativeTokenAddress();
|
|
604
|
+
// }
|
|
605
|
+
// return tokenAddress;
|
|
606
|
+
// }
|
|
607
|
+
/**
|
|
608
|
+
* Convert slippage from basis points to percentage for Debonk
|
|
609
|
+
* Input: 50 (0.5% in bps) -> Output: 0.5 (percentage)
|
|
610
|
+
*/
|
|
611
|
+
function convertSlippageForDebonk(slippageBps) {
|
|
612
|
+
return slippageBps / 100;
|
|
613
|
+
}
|
|
585
614
|
//# sourceMappingURL=utils.js.map
|