@deserialize/multi-vm-wallet 1.1.41 → 1.1.43

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 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://api.mainnet-beta.solana.com",
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",
@@ -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,qCAAqC;QAC7C,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,4BAA4B;QACpC,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;CAGA,CAAA"}
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,4BAA4B;QACpC,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;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 = exports.createEvmVmPrivateKey = void 0;
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('Swap parameters:', {
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('Swap transaction prepared:', {
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(' Swap completed successfully:', {
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(' Swap failed:', result);
344
+ console.log(' Kyber swap failed:', result);
200
345
  }
201
346
  return result;
202
347
  }
203
348
  catch (error) {
204
- console.error('Swap failed:', error);
205
- throw new Error(`Swap failed: ${error instanceof Error ? error.message : 'Unknown 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) {
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../utils/evm/evm.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,oCAAoD;AACpD,kDAA8C;AAE9C,8BAA2B;AAC3B,mCAAyD;AACzD,kDAAuB;AACvB,mCAgBiB;AAEV,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE,GAAG,CAAC,CAAA;AAA/C,QAAA,qBAAqB,yBAA0B;AAE5D,MAAa,KAAM,SAAQ,OAAmC;IAG1D,YAAY,IAAY;QACpB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAHvB,mBAAc,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;QAMlE,iBAAY,GAAG,oBAAY,CAAA;IAF3B,CAAC;IAGD,kBAAkB,CAAC,KAAa,EAAE,IAAa,EAAE,QAAiB,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc;QACpG,IAAI,KAAa,CAAA;QAEjB,IAAI,IAAI,EAAE,CAAC;YACP,KAAK,GAAG,IAAI,CAAA;QAChB,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,KAAK,GAAG,OAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,gCAAwB,EAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,UAAU,CAAC;QACrF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,OAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACxC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAe;QAClC,OAAO,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,UAA2B;QACtE,gDAAgD;QAChD,OAAO,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,YAAoB,EAAE,UAA2B;QAC3F,+CAA+C;QAC/C,OAAO,MAAM,IAAA,uBAAe,EAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACnE,CAAC;CACJ;AAvCD,sBAuCC;AAED,MAAa,cAAe,SAAQ,0BAA4C;IAC5E,YAAY,MAAyB,EAAE,UAAkB,EAAE,KAAa;QACpE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAW,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB;QACtC,+CAA+C;QAC/C,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,UAAW,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,MAAc;QAC3C,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,MAAM,IAAA,uBAAe,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAC3G,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAuB,EAAE,EAAU,EAAE,MAAc;QACnE,sCAAsC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,MAAM,IAAA,sBAAc,EAAC,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAChI,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,IAAI,CACN,YAAuB,EACvB,EAAU,EACV,MAAc,EACd,WAAmB,EAAE;QAErB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,+BAA+B;aACzC,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAc;YACxB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;SACf,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,mBAAmB,CACrB,OAAkB,EAClB,QAAmB,EACnB,MAAc,EACd,WAAmB,EAAE,EACrB,SAAkB,EAClB,QAAiB;QAEjB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAW,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEzE,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,GAAG,EAAE;gBAC/C,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO;gBACvC,EAAE,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO;gBACvC,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,GAAG,QAAQ,GAAG,GAAG,GAAG;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,gCAAgC,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAC3C,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBAC7C,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YAEpF,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;YACvC,CAAC;iBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAA,yBAAiB,EAC5E,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,OAAO,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,eAAe,EACf,UAAU,EACV,WAAW,CACd,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBAC5B,cAAc;gBACd,eAAe;gBACf,iBAAiB;gBACjB,eAAe;aAClB,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM,cAAc,GAAG,IAAI,eAAE,CAAC,iBAAiB,CAAC,CAAC;gBACjD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,gBAAgB,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,MAAM,cAAc,GAAG,IAAI,eAAE,CAAC,iBAAiB,CAAC,CAAC;gBACjD,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,gBAAgB,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC;gBAC7B,OAAO;gBACP,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,eAAe;gBACzB,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO;gBACpC,iBAAiB,EAAE,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,qBAAqB;gBAC3H,QAAQ,EAAE,gBAAgB;aAC7B,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE;gBACtC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;gBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBACrC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAe,EACxC,MAAM,EACN,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,EAAE,EACT,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAClC,CAAC;gBAEF,IAAI,cAAc,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;oBACjE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;wBACzC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC7C,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBACpE,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAkB,EACnC,MAAM,EACN;gBACI,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC5B,EACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAClC,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;oBACzC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;oBACnC,WAAW,EAAE,MAAM,CAAC,WAAW;iBAClC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,MAAM,CAAC;QAElB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAChG,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CACd,OAAkB,EAClB,QAAmB,EACnB,MAAc;QAOd,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAW,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEzE,IAAI,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,gCAAgC,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAC3C,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBAC7C,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YAEpF,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;YACvC,CAAC;iBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAA,yBAAiB,EAC5E,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,OAAO,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,eAAe,EACf,UAAU,EACV,WAAW,CACd,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAEpH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,MAMlB;QACG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,MAAM,IAAA,oBAAY,EACxB,MAAM,EACN,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAC1D,CAAA;QACD,OAAO;YACH,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAG,CAAS,CAAC,KAAK;SAC1B,CAAA;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAQ3B;QACG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,MAAM,IAAA,6BAAqB,EACjC,MAAM,EACN,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,IAAI,EAAE,EACzB,MAAM,CAAC,KAAK,CACf,CAAA;QACD,OAAO;YACH,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAG,CAAS,CAAC,KAAK;SAC1B,CAAA;IACL,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;CACJ;AA1SD,wCA0SC"}
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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"}
@@ -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)",
@@ -469,6 +474,9 @@ async function buildKyberSwapTransaction(chainId, routeSummary, sender, recipien
469
474
  }
470
475
  }
471
476
  async function performSwap(params) {
477
+ if (!KYBER_SUPPORTED_CHAINS[params.chainId]) {
478
+ throw new Error(`KyberSwap does not support chain ID: ${params.chainId}`);
479
+ }
472
480
  try {
473
481
  console.log('Starting KyberSwap aggregation...', {
474
482
  tokenIn: params.tokenIn,
@@ -554,6 +562,9 @@ function getKyberSupportedChains() {
554
562
  function isChainSupportedByKyber(chainId) {
555
563
  return chainId in KYBER_SUPPORTED_CHAINS;
556
564
  }
565
+ function isChainSupportedByDebonk(chainId) {
566
+ return chainId in exports.DESERIALIZED_SUPPORTED_CHAINS;
567
+ }
557
568
  function getNativeTokenAddress() {
558
569
  return '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
559
570
  }
@@ -579,7 +590,22 @@ function prepareSwapParams(tokenIn, tokenOut, amountIn, tokenInDecimals, isNativ
579
590
  formattedAmountIn
580
591
  };
581
592
  }
582
- //recent activity
583
- // token list with balance
584
- // discover tokens with balances
593
+ /**
594
+ * Normalize token address for Debonk
595
+ * Converts 'native' or variations to the standard 0xEeeee... address
596
+ */
597
+ // export function normalizeTokenAddressForDebonk(tokenAddress: string): string {
598
+ // if (tokenAddress === 'native' ||
599
+ // tokenAddress.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') {
600
+ // return getNativeTokenAddress();
601
+ // }
602
+ // return tokenAddress;
603
+ // }
604
+ /**
605
+ * Convert slippage from basis points to percentage for Debonk
606
+ * Input: 50 (0.5% in bps) -> Output: 0.5 (percentage)
607
+ */
608
+ function convertSlippageForDebonk(slippageBps) {
609
+ return slippageBps / 100;
610
+ }
585
611
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../utils/evm/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../utils/evm/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deserialize/multi-vm-wallet",
3
- "version": "1.1.41",
3
+ "version": "1.1.43",
4
4
  "devDependencies": {
5
5
  "@types/bn.js": "^5.2.0",
6
6
  "@types/crypto-js": "^4.2.2",
@@ -10,15 +10,18 @@
10
10
  "typescript": "^5.9.2"
11
11
  },
12
12
  "dependencies": {
13
+ "@noble/hashes": "^2.0.0",
14
+ "@scure/bip32": "^2.0.0",
15
+ "@scure/bip39": "^2.0.0",
13
16
  "@solana/spl-token": "^0.4.13",
14
17
  "@solana/web3.js": "^1.98.4",
15
18
  "bn.js": "^5.2.2",
16
19
  "bs58": "^6.0.0",
17
20
  "crypto-js": "^4.2.0",
21
+ "debonk-evm-sever-sdk": "^1.4.0",
18
22
  "ethers": "^6.15.0",
19
23
  "promise-retry": "^2.0.1",
20
- "tweetnacl": "^1.0.3",
21
- "@noble/hashes": "^2.0.0"
24
+ "tweetnacl": "^1.0.3"
22
25
  },
23
26
  "description": "Multi VM Wallet",
24
27
  "main": "dist/index.js",
package/utils/constant.ts CHANGED
@@ -3,7 +3,7 @@ import { ChainWalletConfig } from "./types";
3
3
  export const DefaultChains: ChainWalletConfig[] = [{
4
4
  chainId: 501,
5
5
  name: "Solana Mainnet",
6
- rpcUrl: "https://api.mainnet-beta.solana.com",
6
+ rpcUrl: "https://solana-mainnet.g.alchemy.com/v2/vB5mKztdJeFdz9RkW99Qf",
7
7
  explorerUrl: "https://explorer.solana.com", // e.g. Solana Explorer
8
8
  nativeToken: {
9
9
  name: "Solana",
package/utils/evm/evm.ts CHANGED
@@ -8,7 +8,7 @@ import { EVMDeriveChildPrivateKey } from "../bip32";
8
8
  import { ChainWallet } from "../IChainWallet";
9
9
  import { Balance, ChainWalletConfig, NFTInfo, TokenInfo, TransactionResult } from "../types";
10
10
  import { VM } from "../vm";
11
- import { ethers, JsonRpcProvider, Wallet } from "ethers";
11
+ import { ethers, JsonRpcProvider, Wallet, formatUnits } from "ethers";
12
12
  import BN from "bn.js";
13
13
  import {
14
14
  getNativeBalance,
@@ -22,13 +22,51 @@ import {
22
22
  prepareSwapParams,
23
23
  formatAmountToWei,
24
24
  isChainSupportedByKyber,
25
+ isChainSupportedByDebonk,
26
+ // normalizeTokenAddressForDebonk,
27
+ convertSlippageForDebonk,
25
28
  TransactionParams,
26
29
  approveToken,
27
30
  executeContractMethod,
28
- getTokenInfo
31
+ getTokenInfo,
32
+ DESERIALIZED_SUPPORTED_CHAINS
29
33
  } from "./utils";
30
34
 
31
- export const createEvmVmPrivateKey = (phrase: string) => { }
35
+ interface DebonkQuoteResponse {
36
+ tokenA: string;
37
+ tokenB: string;
38
+ amountIn: string;
39
+ amountOut: string;
40
+ tokenPrice: string;
41
+ routePlan: Array<{
42
+ tokenA: string;
43
+ tokenB: string;
44
+ dexId: string;
45
+ poolAddress: string;
46
+ aToB: boolean;
47
+ fee: number;
48
+ }>;
49
+ dexId: string;
50
+ dexFactory: string;
51
+ }
52
+
53
+ interface DebonkSwapResponse {
54
+ transactions: Array<{
55
+ from: string;
56
+ to: string;
57
+ data: string;
58
+ value: string;
59
+ gasLimit?: string;
60
+ gasPrice?: string;
61
+ }>;
62
+ }
63
+
64
+ interface DebonkSwapResult {
65
+ success: boolean;
66
+ hash: string;
67
+ error?: string;
68
+ }
69
+
32
70
 
33
71
  export class EVMVM extends VM<string, string, JsonRpcProvider> {
34
72
  derivationPath = "m/44'/60'/0'/0/"; // Default EVM derivation path
@@ -153,6 +191,200 @@ export class EVMChainWallet extends ChainWallet<string, string, JsonRpcProvider>
153
191
  slippage: `${slippage / 100}%`
154
192
  });
155
193
 
194
+ // Check if this is a 0G chain that should use Debonk
195
+ if (isChainSupportedByDebonk(chainId)) {
196
+ console.log('Using Debonk API for 0G chain swap');
197
+ return await this.performDebonkSwap(tokenIn, tokenOut, amount, slippage, recipient, deadline);
198
+ }
199
+
200
+ // Otherwise use Kyber (existing flow)
201
+ console.log('Using KyberSwap for non-0G chain swap');
202
+ return await this.performKyberSwap(tokenIn, tokenOut, amount, slippage, recipient, deadline);
203
+
204
+ } catch (error) {
205
+ console.error('Swap failed:', error);
206
+ throw new Error(`Swap failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
207
+ }
208
+ }
209
+
210
+ private async performDebonkSwap(
211
+ tokenIn: TokenInfo,
212
+ tokenOut: TokenInfo,
213
+ amount: number,
214
+ slippage: number = 50, // bps (e.g., 50 = 0.5%)
215
+ recipient?: string,
216
+ deadline?: number
217
+ ): Promise<DebonkSwapResult> {
218
+ try {
219
+ const BASE_URL = 'https://evm-api.deserialize.xyz';
220
+ const tokenInAddress = tokenIn.address;
221
+ const tokenOutAddress = tokenOut.address;
222
+
223
+ // Convert amount to wei (multiply by 10^18 for 18 decimal tokens)
224
+ const amountInWei = (amount * Math.pow(10, tokenIn.decimals || 18)).toString();
225
+ console.log("amountInWei", amountInWei)
226
+ // Convert slippage from bps to percentage (e.g., 50 bps -> 0.5%)
227
+ const slippagePercentage = slippage / 100;
228
+
229
+ console.log("Debonk API swap params:", {
230
+ tokenA: tokenInAddress,
231
+ tokenB: tokenOutAddress,
232
+ amountIn: amount,
233
+ amountInWei: amountInWei,
234
+ slippage: slippagePercentage,
235
+ });
236
+
237
+ // Step 1: Get quote from API
238
+ console.log("Getting quote from Debonk API...");
239
+
240
+ const quotePayload = {
241
+ tokenA: tokenInAddress,
242
+ tokenB: tokenOutAddress,
243
+ amountIn: amountInWei, // Use wei amount
244
+ dexId: "ZERO_G"
245
+ };
246
+
247
+ console.log("Quote request payload:", quotePayload);
248
+
249
+ const quoteResponse = await fetch(`${BASE_URL}/quote`, {
250
+ method: 'POST',
251
+ headers: {
252
+ 'Content-Type': 'application/json',
253
+ },
254
+ body: JSON.stringify(quotePayload)
255
+ });
256
+
257
+ if (!quoteResponse.ok) {
258
+ const errorText = await quoteResponse.text();
259
+ console.error("Quote API error response:", errorText);
260
+ return this.fail(`Quote API failed: ${quoteResponse.status} ${errorText}`);
261
+ }
262
+
263
+ const quote: DebonkQuoteResponse = await quoteResponse.json();
264
+ console.log("Quote received:", JSON.stringify(quote, null, 2));
265
+
266
+ // Step 2: Fix the quote dexId for swap API (it expects "ALL")
267
+ const modifiedQuote = {
268
+ ...quote,
269
+ dexId: "ALL" // Change from "ZERO_G" to "ALL" as required by swap API
270
+ };
271
+
272
+ console.log("Modified quote for swap API:", JSON.stringify(modifiedQuote, null, 2));
273
+
274
+ // Step 3: Get wallet address
275
+ const walletAddress = await this.getWallet().getAddress();
276
+ console.log("Wallet address:", walletAddress);
277
+
278
+ // Step 4: Call swap API with modified quote
279
+ console.log("Calling swap API...");
280
+
281
+ const swapPayload = {
282
+ publicKey: walletAddress,
283
+ slippage: slippagePercentage,
284
+ quote: modifiedQuote
285
+ };
286
+
287
+ console.log("Swap request payload:", JSON.stringify(swapPayload, null, 2));
288
+
289
+ const swapResponse = await fetch(`${BASE_URL}/swap`, {
290
+ method: 'POST',
291
+ headers: {
292
+ 'Content-Type': 'application/json',
293
+ },
294
+ body: JSON.stringify(swapPayload)
295
+ });
296
+
297
+ if (!swapResponse.ok) {
298
+ const errorText = await swapResponse.text();
299
+ console.error("Swap API error response:", errorText);
300
+ return this.fail(`Swap API failed: ${swapResponse.status} ${errorText}`);
301
+ }
302
+
303
+ const swapData: DebonkSwapResponse = await swapResponse.json();
304
+ console.log("Swap API response:", JSON.stringify(swapData, null, 2));
305
+
306
+ const wallet = this.getWallet();
307
+ let lastTxHash = '';
308
+
309
+ // Step 5: Execute each transaction sequentially
310
+ console.log(`Executing ${swapData.transactions.length} transactions...`);
311
+
312
+ for (let i = 0; i < swapData.transactions.length; i++) {
313
+ const transaction = swapData.transactions[i];
314
+ console.log(`Executing transaction ${i + 1} of ${swapData.transactions.length}`);
315
+
316
+ // Prepare transaction object
317
+ const txRequest = {
318
+ to: transaction.to,
319
+ data: transaction.data,
320
+ value: transaction.value,
321
+ // gasPrice: 70000000000,
322
+ // gasLimit: 70000, // Increase significantly
323
+ };
324
+ console.log("Prepared transaction request:", txRequest);
325
+ console.log(`Transaction ${i + 1} request:`, txRequest);
326
+
327
+ try {
328
+ const txResponse = await wallet.sendTransaction(txRequest);
329
+ console.log(`Transaction ${i + 1} sent:`, txResponse.hash);
330
+
331
+ // Wait for confirmation
332
+ const receipt = await txResponse.wait();
333
+
334
+ if (!receipt) {
335
+ return this.fail(`Transaction ${i + 1} failed - no receipt received`);
336
+ }
337
+
338
+ const txHash = receipt.hash || txResponse.hash;
339
+ lastTxHash = txHash;
340
+
341
+ console.log(`Transaction ${i + 1} confirmed:`, {
342
+ hash: txHash,
343
+ blockNumber: receipt.blockNumber,
344
+ gasUsed: receipt.gasUsed?.toString()
345
+ });
346
+
347
+ } catch (txError: any) {
348
+ console.error(`Transaction ${i + 1} failed:`, txError);
349
+ return this.fail(`Transaction ${i + 1} failed: ${txError?.message ?? String(txError)}`);
350
+ }
351
+ }
352
+
353
+ console.log("All transactions completed successfully");
354
+
355
+ return {
356
+ success: true,
357
+ hash: lastTxHash // Return the hash of the last transaction
358
+ };
359
+
360
+ } catch (error: any) {
361
+ console.error("Debonk API swap error:", error);
362
+ return this.fail(`Debonk API swap failed: ${error?.message ?? String(error)}`);
363
+ }
364
+ }
365
+
366
+ // Helper method for EVMChainWallet class
367
+ private fail(message: string): DebonkSwapResult {
368
+ return {
369
+ success: false,
370
+ hash: "",
371
+ error: message
372
+ };
373
+ }
374
+
375
+
376
+ private async performKyberSwap(
377
+ tokenIn: TokenInfo,
378
+ tokenOut: TokenInfo,
379
+ amount: number,
380
+ slippage: number = 50,
381
+ recipient?: string,
382
+ deadline?: number
383
+ ): Promise<TransactionResult> {
384
+ try {
385
+ const wallet = this.getWallet();
386
+ const chainId = (await this.connection!.getNetwork()).chainId.toString();
387
+
156
388
  if (!isChainSupportedByKyber(chainId)) {
157
389
  throw new Error(`Chain ${chainId} is not supported by KyberSwap`);
158
390
  }
@@ -179,7 +411,7 @@ export class EVMChainWallet extends ChainWallet<string, string, JsonRpcProvider>
179
411
  isNativeOut
180
412
  );
181
413
 
182
- console.log('Swap parameters:', {
414
+ console.log('Kyber swap parameters:', {
183
415
  tokenInAddress,
184
416
  tokenOutAddress,
185
417
  formattedAmountIn,
@@ -212,7 +444,7 @@ export class EVMChainWallet extends ChainWallet<string, string, JsonRpcProvider>
212
444
  clientId: 'EVMChainWallet'
213
445
  });
214
446
 
215
- console.log('Swap transaction prepared:', {
447
+ console.log('Kyber swap transaction prepared:', {
216
448
  to: swapTx.to,
217
449
  dataLength: swapTx.data?.length || 0,
218
450
  gasLimit: swapTx.gasLimit?.toString(),
@@ -255,20 +487,20 @@ export class EVMChainWallet extends ChainWallet<string, string, JsonRpcProvider>
255
487
  );
256
488
 
257
489
  if (result.success) {
258
- console.log(' Swap completed successfully:', {
490
+ console.log(' Kyber swap completed successfully:', {
259
491
  hash: result.hash,
260
492
  gasUsed: result.gasUsed?.toString(),
261
493
  blockNumber: result.blockNumber
262
494
  });
263
495
  } else {
264
- console.log(' Swap failed:', result);
496
+ console.log(' Kyber swap failed:', result);
265
497
  }
266
498
 
267
499
  return result;
268
500
 
269
501
  } catch (error) {
270
- console.error('Swap failed:', error);
271
- throw new Error(`Swap failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
502
+ console.error('Kyber swap failed:', error);
503
+ throw new Error(`Kyber swap failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
272
504
  }
273
505
  }
274
506
 
@@ -282,6 +514,7 @@ export class EVMChainWallet extends ChainWallet<string, string, JsonRpcProvider>
282
514
  gasEstimate: string;
283
515
  route: string[];
284
516
  }> {
517
+
285
518
  try {
286
519
  const chainId = (await this.connection!.getNetwork()).chainId.toString();
287
520
 
@@ -0,0 +1,160 @@
1
+
2
+
3
+ import { ethers } from 'ethers';
4
+
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
+
11
+ // ERC20 ABI (simplified)
12
+ const ERC20_ABI = [
13
+ 'function approve(address spender, uint256 amount) external returns (bool)',
14
+ 'function allowance(address owner, address spender) external view returns (uint256)',
15
+ 'function balanceOf(address account) external view returns (uint256)'
16
+ ];
17
+
18
+ export interface SwapParams {
19
+ privateKey: string;
20
+ tokenIn: string;
21
+ tokenOut: string;
22
+ tokenInDecimal:number;
23
+ amountIn: string;
24
+ adminAddress: string;
25
+ routerAddress: string;
26
+ minAmountOut:string;
27
+ rpcUrl: string;
28
+ feeTier?: number; // 500 = 0.05%, 3000 = 0.3%, 10000 = 1%
29
+ }
30
+
31
+ export const quote = async (quoterAddress:string,rpc:string,tokenIn:string, tokenOut:string, amountIn:string, fee:number,sqrtPriceLimitX96="0") => {
32
+ const provider = new ethers.JsonRpcProvider(rpc);
33
+
34
+ const viewABI = [
35
+ {
36
+ inputs: [
37
+ { internalType: "address", name: "tokenIn", type: "address" },
38
+ { internalType: "address", name: "tokenOut", type: "address" },
39
+ { internalType: "uint24", name: "fee", type: "uint24" },
40
+ { internalType: "uint256", name: "amountIn", type: "uint256" },
41
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" },
42
+ ],
43
+ name: "quoteExactInputSingle",
44
+ outputs: [{ internalType: "uint256", name: "amountOut", type: "uint256" }],
45
+ stateMutability: "view",
46
+ type: "function",
47
+ },
48
+ ];
49
+
50
+ const quoter = new ethers.Contract(quoterAddress, viewABI, provider);
51
+
52
+ try {
53
+ const amountOut = await quoter.quoteExactInputSingle(
54
+ tokenIn,
55
+ tokenOut,
56
+ fee,
57
+ amountIn,
58
+ sqrtPriceLimitX96
59
+ );
60
+
61
+ console.log("Amount Out:", amountOut.toString());
62
+ return amountOut.toString();
63
+ } catch (err:any) {
64
+ console.error("Quote failed:", err);
65
+ }
66
+ };
67
+
68
+
69
+ export const quickSwapSetup = async (params: SwapParams) => {
70
+ const {
71
+ privateKey,
72
+ tokenIn,
73
+ tokenOut,
74
+ amountIn,
75
+ tokenInDecimal,
76
+ adminAddress,
77
+ routerAddress,
78
+ rpcUrl,
79
+ minAmountOut,
80
+
81
+ feeTier = 100 // 0.01% fee tier
82
+ } = params;
83
+
84
+ try {
85
+ // Setup provider and wallet
86
+ const provider = new ethers.JsonRpcProvider(rpcUrl);
87
+ const wallet = new ethers.Wallet(privateKey, provider);
88
+
89
+ // Create contract instances
90
+ const router = new ethers.Contract(routerAddress, ROUTER_ABI, wallet);
91
+ const tokenInContract = new ethers.Contract(tokenIn, ERC20_ABI, wallet);
92
+
93
+ // Convert amount to wei
94
+ const amountInWei = ethers.parseUnits(amountIn, tokenInDecimal); // Assuming 18 decimals
95
+
96
+ // Check and approve token allowance
97
+ const allowance = await tokenInContract.allowance(wallet.address, routerAddress);
98
+
99
+ if (allowance < amountInWei) {
100
+ console.log('Approving tokens...');
101
+ const approveTx = await tokenInContract.approve(routerAddress, amountInWei);
102
+ await approveTx.wait();
103
+ console.log('Approval confirmed');
104
+ }
105
+
106
+ // Calculate amount with fee (0.01% to admin)
107
+ const feeAmount = amountInWei * BigInt(1) / BigInt(10000); // 0.01%
108
+ const amountAfterFee = amountInWei - feeAmount;
109
+
110
+ // Transfer fee to admin
111
+ if (feeAmount > 0) {
112
+ console.log(`Transferring ${ethers.formatUnits(feeAmount, tokenIn)} fee to admin`);
113
+ const feeTransferTx = await tokenInContract.transfer(adminAddress, feeAmount);
114
+ await feeTransferTx.wait();
115
+ }
116
+
117
+ // Set deadline (10 minutes from now)
118
+ const deadline = Math.floor(Date.now() / 1000) + 600;
119
+
120
+ // Prepare swap parameters
121
+ const swapParams = {
122
+ tokenIn: tokenIn,
123
+ tokenOut: tokenOut,
124
+ fee: feeTier,
125
+ recipient: wallet.address,
126
+ deadline: deadline,
127
+ amountIn: amountAfterFee,
128
+ amountOutMinimum: minAmountOut,
129
+ sqrtPriceLimitX96: 0
130
+ };
131
+
132
+ console.log('Executing swap...');
133
+
134
+ // Execute swap
135
+ const swapTx = await router.exactInputSingle(swapParams);
136
+ const receipt = await swapTx.wait();
137
+
138
+ console.log('Swap successful!');
139
+ console.log('Transaction hash:', receipt.hash);
140
+
141
+ // Check final balances
142
+ const tokenOutContract = new ethers.Contract(tokenOut, ERC20_ABI, wallet);
143
+ const finalBalance = await tokenOutContract.balanceOf(wallet.address);
144
+
145
+ console.log(`Final ${tokenOut} balance:`, ethers.formatUnits(finalBalance, 18));
146
+
147
+ return {
148
+ success: true,
149
+ txHash: receipt.hash,
150
+ amountOut: finalBalance.toString()
151
+ };
152
+
153
+ } catch (error) {
154
+ console.error('Swap failed:', error);
155
+ return {
156
+ success: false,
157
+ error: error instanceof Error ? error.message : 'Unknown error'
158
+ };
159
+ }
160
+ };
@@ -1,4 +1,3 @@
1
-
2
1
  import { Balance, TokenInfo } from '../types'
3
2
  import { JsonRpcProvider, Contract, Wallet, TransactionRequest, TransactionResponse, TransactionReceipt } from 'ethers'
4
3
  import BN from 'bn.js'
@@ -24,6 +23,7 @@ interface TransactionResult {
24
23
  effectiveGasPrice?: bigint
25
24
  blockNumber?: number
26
25
  confirmations: number
26
+
27
27
  }
28
28
 
29
29
  export interface SwapParams {
@@ -114,6 +114,10 @@ const KYBER_SUPPORTED_CHAINS: { [key: string]: string } = {
114
114
  '59144': 'linea'
115
115
  };
116
116
 
117
+ export const DESERIALIZED_SUPPORTED_CHAINS: { [key: string]: string } = {
118
+ '16661': '0gMainnet',
119
+ };
120
+
117
121
  interface KyberSwapParams {
118
122
  chainId: string;
119
123
  tokenIn: string;
@@ -755,6 +759,9 @@ export async function performSwap(params: {
755
759
  chargeFeeBy?: 'currency_in' | 'currency_out';
756
760
  clientId?: string;
757
761
  }): Promise<TransactionParams> {
762
+ if (!KYBER_SUPPORTED_CHAINS[params.chainId]) {
763
+ throw new Error(`KyberSwap does not support chain ID: ${params.chainId}`);
764
+ }
758
765
  try {
759
766
  console.log('Starting KyberSwap aggregation...', {
760
767
  tokenIn: params.tokenIn,
@@ -867,6 +874,10 @@ export function isChainSupportedByKyber(chainId: string): boolean {
867
874
  return chainId in KYBER_SUPPORTED_CHAINS;
868
875
  }
869
876
 
877
+ export function isChainSupportedByDebonk(chainId: string): boolean {
878
+ return chainId in DESERIALIZED_SUPPORTED_CHAINS;
879
+ }
880
+
870
881
  export function getNativeTokenAddress(): string {
871
882
  return '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
872
883
  }
@@ -909,7 +920,22 @@ export function prepareSwapParams(
909
920
  };
910
921
  }
911
922
 
923
+ /**
924
+ * Normalize token address for Debonk
925
+ * Converts 'native' or variations to the standard 0xEeeee... address
926
+ */
927
+ // export function normalizeTokenAddressForDebonk(tokenAddress: string): string {
928
+ // if (tokenAddress === 'native' ||
929
+ // tokenAddress.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') {
930
+ // return getNativeTokenAddress();
931
+ // }
932
+ // return tokenAddress;
933
+ // }
912
934
 
913
- //recent activity
914
- // token list with balance
915
- // discover tokens with balances
935
+ /**
936
+ * Convert slippage from basis points to percentage for Debonk
937
+ * Input: 50 (0.5% in bps) -> Output: 0.5 (percentage)
938
+ */
939
+ export function convertSlippageForDebonk(slippageBps: number): number {
940
+ return slippageBps / 100;
941
+ }