@kasarlabs/fibrous-mcp 0.1.4 → 0.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.
@@ -1,2 +1,2 @@
1
- export declare const SLIPPAGE_PERCENTAGE = 0.5;
1
+ export declare const DEFAULT_SLIPPAGE_PERCENTAGE = 1;
2
2
  export declare const DEFAULT_QUOTE_SIZE = 1;
@@ -1,3 +1,3 @@
1
- export const SLIPPAGE_PERCENTAGE = 0.5;
1
+ export const DEFAULT_SLIPPAGE_PERCENTAGE = 1;
2
2
  export const DEFAULT_QUOTE_SIZE = 1;
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
@@ -4,11 +4,13 @@ export interface SwapParams {
4
4
  sellTokenSymbol: string;
5
5
  buyTokenSymbol: string;
6
6
  sellAmount: number;
7
+ slippage?: number;
7
8
  }
8
9
  export interface BatchSwapParams {
9
10
  sellTokenSymbols: string[];
10
11
  buyTokenSymbols: string[];
11
12
  sellAmounts: number[] | BigNumber[];
13
+ slippage?: number;
12
14
  }
13
15
  export interface Token {
14
16
  name: string;
@@ -0,0 +1,2 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ export declare function formatToBaseUnits(amount: number | string | BigNumber, decimals: number): string;
@@ -0,0 +1,12 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ export function formatToBaseUnits(amount, decimals) {
3
+ if (BigNumber.isBigNumber(amount)) {
4
+ return amount.toString();
5
+ }
6
+ const value = amount.toString();
7
+ const [whole, fraction = ''] = value.split('.');
8
+ const paddedFraction = fraction.padEnd(decimals, '0').slice(0, decimals);
9
+ const combined = `${whole}${paddedFraction}`;
10
+ return combined.replace(/^(-?)0+(?=\d)/, '$1') || '0';
11
+ }
12
+ //# sourceMappingURL=amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../../src/lib/utils/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAUrD,MAAM,UAAU,iBAAiB,CAC/B,MAAmC,EACnC,QAAgB;IAEhB,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,GAAG,KAAK,GAAG,cAAc,EAAE,CAAC;IAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;AACxD,CAAC"}
@@ -94,17 +94,24 @@ export class ContractInteractor {
94
94
  throw new Error('Contract must be connected to an account to estimate fees');
95
95
  }
96
96
  try {
97
- return await contract.estimate(method, args);
97
+ const estimate = await contract.estimate(method, args);
98
+ if ('overall_fee' in estimate) {
99
+ return estimate;
100
+ }
101
+ throw new Error('Unexpected estimate response format');
98
102
  }
99
103
  catch (error) {
100
104
  throw new Error(`Failed to estimate contract write: ${error.message}`);
101
105
  }
102
106
  }
103
107
  formatTokenAmount(amount, decimals = 18) {
108
+ if (decimals < 0) {
109
+ throw new Error('Decimals must be non-negative');
110
+ }
104
111
  const value = typeof amount === 'string' ? amount : amount.toString();
105
112
  const [whole, fraction = ''] = value.split('.');
106
- const paddedFraction = fraction.padEnd(decimals, '0');
107
- return whole + paddedFraction;
113
+ const truncatedFraction = fraction.slice(0, decimals).padEnd(decimals, '0');
114
+ return whole + truncatedFraction;
108
115
  }
109
116
  parseTokenAmount(amount, decimals = 18) {
110
117
  const amountBigInt = BigInt(amount);
@@ -1 +1 @@
1
- {"version":3,"file":"contractInteractor.js","sourceRoot":"","sources":["../../../src/lib/utils/contractInteractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractInteractor.js","sourceRoot":"","sources":["../../../src/lib/utils/contractInteractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Router } from 'fibrous-router-sdk';
2
+ export type FibrousRouterCtor = typeof Router;
3
+ export declare function getFibrousRouterCtor(): FibrousRouterCtor;
@@ -0,0 +1,12 @@
1
+ import { createRequire } from 'node:module';
2
+ export function getFibrousRouterCtor() {
3
+ const require = createRequire(import.meta.url);
4
+ const sdk = require('fibrous-router-sdk');
5
+ const m = sdk;
6
+ const RouterCtor = m.Router ?? m.default?.Router;
7
+ if (!RouterCtor) {
8
+ throw new Error('fibrous-router-sdk: Router export not found (ESM/CJS interop issue)');
9
+ }
10
+ return RouterCtor;
11
+ }
12
+ //# sourceMappingURL=fibrousRouterSdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fibrousRouterSdk.js","sourceRoot":"","sources":["../../../src/lib/utils/fibrousRouterSdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,MAAM,UAAU,oBAAoB;IAGlC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAY,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,GAA2D,CAAC;IACtE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,UAA+B,CAAC;AACzC,CAAC"}
@@ -3,20 +3,25 @@ export declare const swapSchema: z.ZodObject<{
3
3
  sellTokenSymbol: z.ZodString;
4
4
  buyTokenSymbol: z.ZodString;
5
5
  sellAmount: z.ZodNumber;
6
+ slippage: z.ZodDefault<z.ZodNumber>;
6
7
  }, "strip", z.ZodTypeAny, {
7
8
  sellTokenSymbol: string;
8
9
  buyTokenSymbol: string;
9
10
  sellAmount: number;
11
+ slippage: number;
10
12
  }, {
11
13
  sellTokenSymbol: string;
12
14
  buyTokenSymbol: string;
13
15
  sellAmount: number;
16
+ slippage?: number | undefined;
14
17
  }>;
15
18
  export declare const batchSwapSchema: z.ZodObject<{
16
19
  sellTokenSymbols: z.ZodArray<z.ZodString, "many">;
17
20
  buyTokenSymbols: z.ZodArray<z.ZodString, "many">;
18
21
  sellAmounts: z.ZodArray<z.ZodNumber, "many">;
22
+ slippage: z.ZodDefault<z.ZodNumber>;
19
23
  }, "strip", z.ZodTypeAny, {
24
+ slippage: number;
20
25
  sellTokenSymbols: string[];
21
26
  buyTokenSymbols: string[];
22
27
  sellAmounts: number[];
@@ -24,6 +29,7 @@ export declare const batchSwapSchema: z.ZodObject<{
24
29
  sellTokenSymbols: string[];
25
30
  buyTokenSymbols: string[];
26
31
  sellAmounts: number[];
32
+ slippage?: number | undefined;
27
33
  }>;
28
34
  export declare const routeSchema: z.ZodObject<{
29
35
  sellTokenSymbol: z.ZodString;
@@ -7,11 +7,23 @@ export const swapSchema = z.object({
7
7
  .string()
8
8
  .describe("Symbol of the token to buy (e.g., 'ETH', 'USDC')"),
9
9
  sellAmount: z.number().min(0.000001).describe('Amount of tokens to sell'),
10
+ slippage: z
11
+ .number()
12
+ .min(0)
13
+ .max(100)
14
+ .default(1)
15
+ .describe('Slippage tolerance in percentage (default: 1)'),
10
16
  });
11
17
  export const batchSwapSchema = z.object({
12
18
  sellTokenSymbols: z.array(z.string()).describe('Symbols of tokens to sell'),
13
19
  buyTokenSymbols: z.array(z.string()).describe('Symbols of tokens to buy'),
14
20
  sellAmounts: z.array(z.number()).describe('Amounts of tokens to sell'),
21
+ slippage: z
22
+ .number()
23
+ .min(0)
24
+ .max(100)
25
+ .default(1)
26
+ .describe('Slippage tolerance in percentage (default: 1)'),
15
27
  });
16
28
  export const routeSchema = z.object({
17
29
  sellTokenSymbol: z
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3E,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACvE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC1E,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3E,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACtE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC1E,CAAC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { Contract } from 'starknet';
2
- import { ERC20_ABI } from '../lib/abis/erc20Abi.js';
3
- import { Router } from 'fibrous-router-sdk';
4
- import { BigNumber } from '@ethersproject/bignumber';
2
+ import { ERC20_ABI } from '@kasarlabs/ask-starknet-core';
3
+ import { getFibrousRouterCtor } from '../lib/utils/fibrousRouterSdk.js';
4
+ const FibrousRouterCtor = getFibrousRouterCtor();
5
5
  export class ApprovalService {
6
6
  constructor() {
7
- this.fibrous = new Router();
7
+ this.fibrous = new FibrousRouterCtor();
8
8
  }
9
9
  async checkAndGetApproveToken(account, tokenAddress, spenderAddress, amount) {
10
10
  try {
@@ -28,7 +28,7 @@ export class ApprovalService {
28
28
  }
29
29
  const requiredAmount = BigInt(amount);
30
30
  if (currentAllowance < requiredAmount) {
31
- const calldata = await this.fibrous.buildApproveStarknet(BigNumber.from(amount), tokenAddress);
31
+ const calldata = await this.fibrous.buildApproveStarknet(BigInt(amount), tokenAddress);
32
32
  return calldata;
33
33
  }
34
34
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,OAAO,eAAe;IAE1B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,OAAgB,EAChB,YAAoB,EACpB,cAAsB,EACtB,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC5B,GAAG,EAAE,SAAS;gBACd,OAAO,EAAE,YAAY;gBACrB,iBAAiB,EAAE,OAAO;aAC3B,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,SAAS,CAC9C,OAAO,CAAC,OAAO,EACf,cAAc,CACf,CAAC;YAEF,IAAI,gBAAwB,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,IACL,OAAO,eAAe,KAAK,QAAQ;gBACnC,eAAe,KAAK,IAAI,EACxB,CAAC;gBACD,MAAM,KAAK,GAAQ,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,gBAAgB,GAAG,cAAc,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CACtD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EACtB,YAAY,CACb,CAAC;gBAEF,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AAEjD,MAAM,OAAO,eAAe;IAE1B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,OAAgB,EAChB,YAAoB,EACpB,cAAsB,EACtB,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC5B,GAAG,EAAE,SAAS;gBACd,OAAO,EAAE,YAAY;gBACrB,iBAAiB,EAAE,OAAO;aAC3B,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,SAAS,CAC9C,OAAO,CAAC,OAAO,EACf,cAAc,CACf,CAAC;YAEF,IAAI,gBAAwB,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,IACL,OAAO,eAAe,KAAK,QAAQ;gBACnC,eAAe,KAAK,IAAI,EACxB,CAAC;gBACD,MAAM,KAAK,GAAQ,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,gBAAgB,GAAG,cAAc,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CACtD,MAAM,CAAC,MAAM,CAAC,EACd,YAAY,CACb,CAAC;gBAEF,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
- import { Router as FibrousRouter } from 'fibrous-router-sdk';
2
- import { BigNumber } from '@ethersproject/bignumber';
1
+ import type { Router as FibrousRouter } from 'fibrous-router-sdk';
3
2
  import { BatchSwapParams } from '../lib/types/index.js';
4
3
  import { onchainWrite, toolResult } from '@kasarlabs/ask-starknet-core';
5
4
  export declare class BatchSwapService {
@@ -13,13 +12,13 @@ export declare class BatchSwapService {
13
12
  extractBatchSwapParams(params: BatchSwapParams): {
14
13
  sellTokenAddresses: string[];
15
14
  buyTokenAddresses: string[];
16
- sellAmounts: BigNumber[];
15
+ sellAmounts: string[];
17
16
  };
18
17
  executeSwapTransaction(params: BatchSwapParams): Promise<{
19
18
  status: string;
20
19
  message: string;
21
20
  transactionHash: string;
22
- sellAmounts: number[] | BigNumber[];
21
+ sellAmounts: number[] | import("@ethersproject/bignumber").BigNumber[];
23
22
  sellTokenSymbols: string[];
24
23
  buyTokenSymbols: string[];
25
24
  receipt: import("starknet").TransactionReceipt;
@@ -1,18 +1,19 @@
1
1
  import { Account } from 'starknet';
2
2
  import { ApprovalService } from './approval.js';
3
3
  import { TokenService } from './fetchTokens.js';
4
- import { Router as FibrousRouter } from 'fibrous-router-sdk';
5
- import { BigNumber } from '@ethersproject/bignumber';
6
4
  import { getV3DetailsPayload } from '../lib/utils/utils.js';
7
5
  import { TransactionMonitor } from '../lib/utils/transactionMonitor.js';
8
- import { SLIPPAGE_PERCENTAGE } from '../lib/constants/index.js';
6
+ import { DEFAULT_SLIPPAGE_PERCENTAGE } from '../lib/constants/index.js';
7
+ import { formatToBaseUnits } from '../lib/utils/amount.js';
8
+ import { getFibrousRouterCtor } from '../lib/utils/fibrousRouterSdk.js';
9
+ const FibrousRouterCtor = getFibrousRouterCtor();
9
10
  export class BatchSwapService {
10
11
  constructor(env, walletAddress, routerInstance) {
11
12
  this.env = env;
12
13
  this.walletAddress = walletAddress;
13
14
  this.tokenService = new TokenService();
14
15
  this.approvalService = new ApprovalService();
15
- this.router = routerInstance || new FibrousRouter();
16
+ this.router = routerInstance || new FibrousRouterCtor();
16
17
  }
17
18
  async initialize() {
18
19
  await this.tokenService.initializeTokens();
@@ -23,7 +24,7 @@ export class BatchSwapService {
23
24
  const sellAmounts = [];
24
25
  for (let i = 0; i < params.sellTokenSymbols.length; i++) {
25
26
  const { sellToken, buyToken } = this.tokenService.validateTokenPair(params.sellTokenSymbols[i], params.buyTokenSymbols[i]);
26
- const sellAmount = BigNumber.from(params.sellAmounts[i]);
27
+ const sellAmount = formatToBaseUnits(params.sellAmounts[i], Number(sellToken.decimals));
27
28
  sellTokens.push(sellToken.address);
28
29
  buyTokens.push(buyToken.address);
29
30
  sellAmounts.push(sellAmount);
@@ -44,36 +45,35 @@ export class BatchSwapService {
44
45
  signer: this.env.account.signer,
45
46
  });
46
47
  const swapParams = this.extractBatchSwapParams(params);
47
- const routes = [];
48
- for (let i = 0; i < swapParams.sellAmounts.length; i++) {
49
- const route = await this.router.getBestRoute(swapParams.sellAmounts[i], swapParams.sellTokenAddresses[i], swapParams.buyTokenAddresses[i], 'starknet');
50
- routes.push(route);
51
- }
52
- for (let i = 0; i < routes.length; i++) {
53
- console.error(`${i}. Route information: `, {
54
- sellToken: params.sellTokenSymbols[i],
55
- buyToken: params.buyTokenSymbols[i],
56
- sellAmount: params.sellAmounts[i],
57
- buyAmount: routes[i] && routes[i].success
58
- ? routes[i].outputAmount
59
- : 'N/A',
60
- });
61
- }
62
48
  const destinationAddress = account.address;
63
- const swapCalls = await this.router.buildBatchTransaction(swapParams.sellAmounts, swapParams.sellTokenAddresses, swapParams.buyTokenAddresses, SLIPPAGE_PERCENTAGE, destinationAddress, 'starknet');
64
- if (!swapCalls) {
49
+ const swapCalls = await this.router.buildBatchTransaction({
50
+ inputAmounts: swapParams.sellAmounts,
51
+ tokenInAddresses: swapParams.sellTokenAddresses,
52
+ tokenOutAddresses: swapParams.buyTokenAddresses,
53
+ slippage: params.slippage ?? DEFAULT_SLIPPAGE_PERCENTAGE,
54
+ destination: destinationAddress,
55
+ chainName: 'starknet',
56
+ });
57
+ if (!swapCalls || !Array.isArray(swapCalls)) {
65
58
  throw new Error('Calldata not available for this swap');
66
59
  }
60
+ const approvalsByToken = new Map();
61
+ for (let i = 0; i < swapParams.sellTokenAddresses.length; i++) {
62
+ const tokenAddr = swapParams.sellTokenAddresses[i];
63
+ const amount = BigInt(swapParams.sellAmounts[i]);
64
+ approvalsByToken.set(tokenAddr, (approvalsByToken.get(tokenAddr) || 0n) + amount);
65
+ }
66
+ const routerAddress = await this.router.getRouterAddress('starknet');
67
67
  let calldata = [];
68
- for (let i = 0; i < swapCalls.length; i++) {
69
- const approveCall = await this.approvalService.checkAndGetApproveToken(account, swapParams.sellTokenAddresses[i], this.router.STARKNET_ROUTER_ADDRESS, swapParams.sellAmounts[i].toString());
68
+ for (const [tokenAddr, totalAmount] of approvalsByToken) {
69
+ const approveCall = await this.approvalService.checkAndGetApproveToken(account, tokenAddr, routerAddress, totalAmount.toString());
70
70
  if (approveCall) {
71
- calldata = [approveCall, swapCalls[i]];
72
- }
73
- else {
74
- calldata = [swapCalls[i]];
71
+ calldata.push(approveCall);
75
72
  }
76
73
  }
74
+ for (const swapCall of swapCalls) {
75
+ calldata.push(swapCall);
76
+ }
77
77
  const swapResult = await account.execute(calldata, getV3DetailsPayload());
78
78
  const { receipt, events } = await this.monitorSwapStatus(swapResult.transaction_hash);
79
79
  return {
@@ -96,7 +96,7 @@ export class BatchSwapService {
96
96
  }
97
97
  async monitorSwapStatus(txHash) {
98
98
  const transactionMonitor = new TransactionMonitor(this.env.provider);
99
- const receipt = await transactionMonitor.waitForTransaction(txHash, (status) => console.error('Swap status:', status));
99
+ const receipt = await transactionMonitor.waitForTransaction(txHash, (status) => console.info('Swap status:', status));
100
100
  const events = await transactionMonitor.getTransactionEvents(txHash);
101
101
  return { receipt, events };
102
102
  }
@@ -108,18 +108,14 @@ export const createSwapService = (env, walletAddress) => {
108
108
  return new BatchSwapService(env, walletAddress);
109
109
  };
110
110
  export const batchSwapTokens = async (env, params) => {
111
- return {
112
- status: 'failure',
113
- error: 'This tool is currently under maintenance. ',
114
- };
115
111
  const accountAddress = env.account?.address;
116
112
  try {
117
113
  const swapService = createSwapService(env, accountAddress);
118
114
  const result = await swapService.executeSwapTransaction(params);
119
- return {
120
- status: 'success',
121
- data: result,
122
- };
115
+ if (result.status === 'failure') {
116
+ return { status: 'failure', error: result.error ?? 'Batch swap failed' };
117
+ }
118
+ return { status: 'success', data: result };
123
119
  }
124
120
  catch (error) {
125
121
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"batchSwap.js","sourceRoot":"","sources":["../../src/tools/batchSwap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,MAAM,OAAO,gBAAgB;IAK3B,YACU,GAAiB,EACjB,aAAqB,EAC7B,cAA8B;QAFtB,QAAG,GAAH,GAAG,CAAc;QACjB,kBAAa,GAAb,aAAa,CAAQ;QAG7B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,cAAc,IAAI,IAAI,aAAa,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED,sBAAsB,CAAC,MAAuB;QAK5C,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACjE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC1B,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAC1B,CAAC;YAEF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO;YACL,kBAAkB,EAAE,UAAU;YAC9B,iBAAiB,EAAE,SAAS;YAC5B,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAuB;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;gBAC1B,QAAQ;gBACR,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;aAChC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAGvD,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAC1C,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EACzB,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAC/B,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE;oBACzC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACrC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;oBACnC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;oBACjC,SAAS,EACP,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC5B,CAAC,CAAE,MAAM,CAAC,CAAC,CAAkB,CAAC,YAAY;wBAC1C,CAAC,CAAC,KAAK;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;YAE3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CACvD,UAAU,CAAC,WAA0B,EACrC,UAAU,CAAC,kBAAkB,EAC7B,UAAU,CAAC,iBAAiB,EAC5B,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,CACX,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,QAAQ,GAAW,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CACpE,OAAO,EACP,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EACnC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CACrC,CAAC;gBACF,IAAI,WAAW,EAAE,CAAC;oBAChB,QAAQ,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC1E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACtD,UAAU,CAAC,gBAAgB,CAC5B,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,wBAAwB,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,gBAAgB,QAAQ,MAAM,CAAC,eAAe,EAAE;gBAC9G,eAAe,EAAE,UAAU,CAAC,gBAAgB;gBAC5C,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,OAAO;gBACP,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAC5C,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CACzD,MAAM,EACN,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAClD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAiB,EACjB,aAAsB,EACJ,EAAE;IACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAiB,EACjB,MAAuB,EACF,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,4CAA4C;KACpD,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"batchSwap.js","sourceRoot":"","sources":["../../src/tools/batchSwap.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RouteResponse } from 'fibrous-router-sdk';
1
+ import type { RouteResponse } from 'fibrous-router-sdk';
2
2
  import { RouteSchemaType } from '../schemas/index.js';
3
3
  export interface RouteResult {
4
4
  status: 'success' | 'failure';
@@ -1,10 +1,11 @@
1
1
  import { TokenService } from './fetchTokens.js';
2
- import { Router as FibrousRouter } from 'fibrous-router-sdk';
3
- import { BigNumber } from '@ethersproject/bignumber';
2
+ import { formatToBaseUnits } from '../lib/utils/amount.js';
3
+ import { getFibrousRouterCtor } from '../lib/utils/fibrousRouterSdk.js';
4
+ const FibrousRouterCtor = getFibrousRouterCtor();
4
5
  export class RouteFetchService {
5
6
  constructor() {
6
7
  this.tokenService = new TokenService();
7
- this.router = new FibrousRouter();
8
+ this.router = new FibrousRouterCtor();
8
9
  }
9
10
  async initialize() {
10
11
  await this.tokenService.initializeTokens();
@@ -13,20 +14,19 @@ export class RouteFetchService {
13
14
  try {
14
15
  await this.initialize();
15
16
  const { sellToken, buyToken } = this.tokenService.validateTokenPair(params.sellTokenSymbol, params.buyTokenSymbol);
16
- const formattedAmount = BigInt(params.sellAmount.toString());
17
- const route = await this.router.getBestRoute(BigNumber.from(formattedAmount.toString()), sellToken.address, buyToken.address, 'starknet');
17
+ const formattedAmount = formatToBaseUnits(params.sellAmount, Number(sellToken.decimals));
18
+ const route = await this.router.getBestRoute({
19
+ amount: formattedAmount,
20
+ tokenInAddress: sellToken.address,
21
+ tokenOutAddress: buyToken.address,
22
+ chainName: 'starknet',
23
+ });
18
24
  if (!route?.success) {
19
25
  return {
20
26
  status: 'failure',
21
27
  error: 'No routes available for this swap',
22
28
  };
23
29
  }
24
- if (!route) {
25
- return {
26
- status: 'failure',
27
- error: 'No valid route found in quote',
28
- };
29
- }
30
30
  return {
31
31
  status: 'success',
32
32
  route,
@@ -42,12 +42,6 @@ export class RouteFetchService {
42
42
  }
43
43
  export const getRouteFibrous = async (params) => {
44
44
  try {
45
- return {
46
- status: 'failure',
47
- error: 'This tool is currently under maintenance. ',
48
- };
49
- const tokenService = new TokenService();
50
- await tokenService.initializeTokens();
51
45
  const routeService = new RouteFetchService();
52
46
  return routeService.fetchRoute(params);
53
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetchRoute.js","sourceRoot":"","sources":["../../src/tools/fetchRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAiB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AASrD,MAAM,OAAO,iBAAiB;IAI5B;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAuB;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACjE,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,cAAc,CACtB,CAAC;YAEF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAC1C,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAC1C,SAAS,CAAC,OAAO,EACjB,QAAQ,CAAC,OAAO,EAChB,UAAU,CACX,CAAC;YAEF,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,mCAAmC;iBAC3C,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,+BAA+B;iBACvC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK;aACN,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,MAAuB,EACD,EAAE;IACxB,IAAI,CAAC;QACH,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,4CAA4C;SACpD,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"fetchRoute.js","sourceRoot":"","sources":["../../src/tools/fetchRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AAQjD,MAAM,OAAO,iBAAiB;IAI5B;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAuB;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACjE,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,cAAc,CACtB,CAAC;YAGF,MAAM,eAAe,GAAG,iBAAiB,CACvC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC3B,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC3C,MAAM,EAAE,eAAe;gBACvB,cAAc,EAAE,SAAS,CAAC,OAAO;gBACjC,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,mCAAmC;iBAC3C,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK;aACN,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,MAAuB,EACD,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
- import { Token } from 'fibrous-router-sdk';
1
+ import type { Token } from 'fibrous-router-sdk';
2
2
  export declare class TokenService {
3
3
  private tokens;
4
+ private readonly aliases;
4
5
  initializeTokens(): Promise<void>;
5
6
  getToken(symbol: string): Token | undefined;
6
7
  validateTokenPair(sellSymbol: string, buySymbol: string): {
@@ -1,17 +1,27 @@
1
- import { Router as FibrousRouter } from 'fibrous-router-sdk';
1
+ import { getFibrousRouterCtor } from '../lib/utils/fibrousRouterSdk.js';
2
+ const FibrousRouterCtor = getFibrousRouterCtor();
2
3
  export class TokenService {
4
+ constructor() {
5
+ this.aliases = {
6
+ usdc: 'usdc.e',
7
+ };
8
+ }
3
9
  async initializeTokens() {
4
10
  try {
5
- const fibrous = new FibrousRouter();
6
- const tokensRecord = await fibrous.supportedTokens('starknet');
7
- this.tokens = new Map(Object.entries(tokensRecord));
11
+ const fibrous = new FibrousRouterCtor();
12
+ const tokens = await fibrous.supportedTokens('starknet');
13
+ this.tokens =
14
+ tokens instanceof Map
15
+ ? tokens
16
+ : new Map(Object.entries(tokens));
8
17
  }
9
18
  catch (error) {
10
19
  throw new Error(`Failed to initialize tokens: ${error.message}`);
11
20
  }
12
21
  }
13
22
  getToken(symbol) {
14
- return this.tokens.get(symbol.toLowerCase());
23
+ const key = symbol.toLowerCase();
24
+ return this.tokens.get(key) ?? this.tokens.get(this.aliases[key]);
15
25
  }
16
26
  validateTokenPair(sellSymbol, buySymbol) {
17
27
  const sellToken = this.getToken(sellSymbol);
@@ -1 +1 @@
1
- {"version":3,"file":"fetchTokens.js","sourceRoot":"","sources":["../../src/tools/fetchTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,OAAO,YAAY;IAGvB,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB,CACf,UAAkB,EAClB,SAAiB;QAKjB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,gBAAgB,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,gBAAgB,CAAC,CAAC;QAEvE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"fetchTokens.js","sourceRoot":"","sources":["../../src/tools/fetchTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AAEjD,MAAM,OAAO,YAAY;IAAzB;QAEmB,YAAO,GAA2B;YAEjD,IAAI,EAAE,QAAQ;SACf,CAAC;IAmCJ,CAAC;IAjCC,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAkB,IAAI,iBAAiB,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM;gBACT,MAAM,YAAY,GAAG;oBACnB,CAAC,CAAE,MAA6B;oBAChC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,iBAAiB,CACf,UAAkB,EAClB,SAAiB;QAKjB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,gBAAgB,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,gBAAgB,CAAC,CAAC;QAEvE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { onchainWrite, toolResult } from '@kasarlabs/ask-starknet-core';
2
- import { Router as FibrousRouter } from 'fibrous-router-sdk';
2
+ import type { Router as FibrousRouter } from 'fibrous-router-sdk';
3
3
  import { SwapResult, SwapParams } from '../lib/types/index.js';
4
4
  export declare class SwapService {
5
5
  private env;
@@ -1,12 +1,12 @@
1
1
  import { Account } from 'starknet';
2
2
  import { ApprovalService } from './approval.js';
3
- import { SLIPPAGE_PERCENTAGE } from '../lib/constants/index.js';
3
+ import { DEFAULT_SLIPPAGE_PERCENTAGE } from '../lib/constants/index.js';
4
4
  import { TokenService } from './fetchTokens.js';
5
- import { Router as FibrousRouter } from 'fibrous-router-sdk';
6
- import { BigNumber } from '@ethersproject/bignumber';
7
5
  import { getV3DetailsPayload } from '../lib/utils/utils.js';
8
- import { ContractInteractor } from '../lib/utils/contractInteractor.js';
9
6
  import { TransactionMonitor } from '../lib/utils/transactionMonitor.js';
7
+ import { formatToBaseUnits } from '../lib/utils/amount.js';
8
+ import { getFibrousRouterCtor } from '../lib/utils/fibrousRouterSdk.js';
9
+ const FibrousRouterCtor = getFibrousRouterCtor();
10
10
  export class SwapService {
11
11
  constructor(env, walletAddress, router) {
12
12
  this.env = env;
@@ -14,7 +14,6 @@ export class SwapService {
14
14
  this.router = router;
15
15
  this.tokenService = new TokenService();
16
16
  this.approvalService = new ApprovalService();
17
- this.router = new FibrousRouter();
18
17
  }
19
18
  async initialize() {
20
19
  await this.tokenService.initializeTokens();
@@ -23,24 +22,30 @@ export class SwapService {
23
22
  try {
24
23
  await this.initialize();
25
24
  const provider = this.env.provider;
26
- const contractInteractor = new ContractInteractor(provider);
27
25
  const account = new Account({
28
26
  provider,
29
27
  address: this.walletAddress,
30
28
  signer: this.env.account.signer,
31
29
  });
32
30
  const { sellToken, buyToken } = this.tokenService.validateTokenPair(params.sellTokenSymbol, params.buyTokenSymbol);
33
- const formattedAmount = BigNumber.from(contractInteractor.formatTokenAmount(params.sellAmount.toString(), sellToken.decimals));
34
- const route = await this.router.getBestRoute(BigNumber.from(formattedAmount.toString()), sellToken.address, buyToken.address, 'starknet');
35
- if (!route?.success) {
36
- throw new Error('No routes available for this swap');
37
- }
31
+ const inputAmount = formatToBaseUnits(params.sellAmount, Number(sellToken.decimals));
38
32
  const destinationAddress = account.address;
39
- const swapCall = await this.router.buildTransaction(formattedAmount, sellToken.address, buyToken.address, SLIPPAGE_PERCENTAGE, destinationAddress, 'starknet');
33
+ const batchCalls = await this.router.buildBatchTransaction({
34
+ inputAmounts: [inputAmount],
35
+ tokenInAddresses: [sellToken.address],
36
+ tokenOutAddresses: [buyToken.address],
37
+ slippage: params.slippage ?? DEFAULT_SLIPPAGE_PERCENTAGE,
38
+ destination: destinationAddress,
39
+ chainName: 'starknet',
40
+ });
41
+ const swapCall = Array.isArray(batchCalls)
42
+ ? batchCalls[0]
43
+ : null;
40
44
  if (!swapCall) {
41
45
  throw new Error('Calldata not available for this swap');
42
46
  }
43
- const approveCalldata = await this.approvalService.checkAndGetApproveToken(account, sellToken.address, this.router.STARKNET_ROUTER_ADDRESS, formattedAmount.toString());
47
+ const routerAddress = await this.router.getRouterAddress('starknet');
48
+ const approveCalldata = await this.approvalService.checkAndGetApproveToken(account, sellToken.address, routerAddress, inputAmount);
44
49
  let calldata = [];
45
50
  if (approveCalldata) {
46
51
  calldata = [approveCalldata, swapCall];
@@ -76,7 +81,7 @@ export class SwapService {
76
81
  }
77
82
  async monitorSwapStatus(txHash) {
78
83
  const transactionMonitor = new TransactionMonitor(this.env.provider);
79
- const receipt = await transactionMonitor.waitForTransaction(txHash, (status) => console.error('Swap status:', status));
84
+ const receipt = await transactionMonitor.waitForTransaction(txHash, (status) => console.info('Swap status:', status));
80
85
  const events = await transactionMonitor.getTransactionEvents(txHash);
81
86
  return { receipt, events };
82
87
  }
@@ -85,13 +90,9 @@ export const createSwapService = (env, walletAddress) => {
85
90
  if (!walletAddress) {
86
91
  throw new Error('Wallet address not configured');
87
92
  }
88
- return new SwapService(env, walletAddress, new FibrousRouter());
93
+ return new SwapService(env, walletAddress, new FibrousRouterCtor());
89
94
  };
90
95
  export const swapTokensFibrous = async (env, params) => {
91
- return {
92
- status: 'failure',
93
- error: 'This tool is currently under maintenance. ',
94
- };
95
96
  const accountAddress = env.account?.address;
96
97
  try {
97
98
  const swapService = createSwapService(env, accountAddress);
@@ -1 +1 @@
1
- {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/tools/swap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/tools/swap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kasarlabs/fibrous-mcp",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,24 +10,30 @@
10
10
  "build": "tsc && chmod 755 build/index.js",
11
11
  "clean": "rm -rf build",
12
12
  "clean:all": "rm -rf build node_modules",
13
- "start": "node build/index.js"
13
+ "start": "node build/index.js",
14
+ "test": "NODE_OPTIONS=--experimental-vm-modules jest",
15
+ "test:e2e": "NODE_OPTIONS=--experimental-vm-modules jest __tests__/e2e"
14
16
  },
15
17
  "files": [
16
18
  "build"
17
19
  ],
18
20
  "dependencies": {
19
21
  "@ethersproject/bignumber": "^5.7.0",
20
- "@kasarlabs/ask-starknet-core": "0.1.3",
22
+ "@kasarlabs/ask-starknet-core": "0.1.4",
21
23
  "@langchain/core": "^0.3.42",
22
24
  "@modelcontextprotocol/sdk": "1.22.0",
23
25
  "dotenv": "^16.4.7",
24
- "fibrous-router-sdk": "0.4.3",
25
- "starknet": "8.6.0",
26
+ "fibrous-router-sdk": "^1.0.1",
27
+ "starknet": "~8.9.0",
26
28
  "winston": "^3.17.0",
27
29
  "zod": "^3.24.2"
28
30
  },
29
31
  "devDependencies": {
32
+ "@jest/globals": "^29.7.0",
33
+ "@types/jest": "^29.5.12",
30
34
  "@types/node": "^22.13.10",
35
+ "jest": "^29.7.0",
36
+ "ts-jest": "^29.1.2",
31
37
  "typescript": "^5.8.2"
32
38
  },
33
39
  "keywords": [
@@ -41,5 +47,5 @@
41
47
  "publishConfig": {
42
48
  "access": "public"
43
49
  },
44
- "gitHead": "bfb4d4b055bbfa15b8e745d414adf52ac5e158fb"
50
+ "gitHead": "0799e2b085e950e5d102822d71a6b122290e8c38"
45
51
  }
@@ -1,89 +0,0 @@
1
- export declare const ERC20_ABI: readonly [{
2
- readonly type: "function";
3
- readonly name: "name";
4
- readonly inputs: readonly [];
5
- readonly outputs: readonly [{
6
- readonly type: "core::felt252";
7
- }];
8
- readonly state_mutability: "view";
9
- }, {
10
- readonly type: "function";
11
- readonly name: "symbol";
12
- readonly inputs: readonly [];
13
- readonly outputs: readonly [{
14
- readonly type: "core::felt252";
15
- }];
16
- readonly state_mutability: "view";
17
- }, {
18
- readonly type: "function";
19
- readonly name: "decimals";
20
- readonly inputs: readonly [];
21
- readonly outputs: readonly [{
22
- readonly type: "core::integer::u8";
23
- }];
24
- readonly state_mutability: "view";
25
- }, {
26
- readonly type: "function";
27
- readonly name: "balance_of";
28
- readonly inputs: readonly [{
29
- readonly name: "account";
30
- readonly type: "core::starknet::contract_address::ContractAddress";
31
- }];
32
- readonly outputs: readonly [{
33
- readonly type: "core::integer::u256";
34
- }];
35
- readonly state_mutability: "view";
36
- }, {
37
- readonly type: "function";
38
- readonly name: "balanceOf";
39
- readonly inputs: readonly [{
40
- readonly name: "account";
41
- readonly type: "core::starknet::contract_address::ContractAddress";
42
- }];
43
- readonly outputs: readonly [{
44
- readonly type: "core::integer::u256";
45
- }];
46
- readonly state_mutability: "view";
47
- }, {
48
- readonly type: "function";
49
- readonly name: "allowance";
50
- readonly inputs: readonly [{
51
- readonly name: "owner";
52
- readonly type: "core::starknet::contract_address::ContractAddress";
53
- }, {
54
- readonly name: "spender";
55
- readonly type: "core::starknet::contract_address::ContractAddress";
56
- }];
57
- readonly outputs: readonly [{
58
- readonly type: "core::integer::u256";
59
- }];
60
- readonly state_mutability: "view";
61
- }, {
62
- readonly type: "function";
63
- readonly name: "approve";
64
- readonly inputs: readonly [{
65
- readonly name: "spender";
66
- readonly type: "core::starknet::contract_address::ContractAddress";
67
- }, {
68
- readonly name: "amount";
69
- readonly type: "core::integer::u256";
70
- }];
71
- readonly outputs: readonly [{
72
- readonly type: "core::bool";
73
- }];
74
- readonly state_mutability: "external";
75
- }, {
76
- readonly type: "function";
77
- readonly name: "transfer";
78
- readonly inputs: readonly [{
79
- readonly name: "recipient";
80
- readonly type: "core::starknet::contract_address::ContractAddress";
81
- }, {
82
- readonly name: "amount";
83
- readonly type: "core::integer::u256";
84
- }];
85
- readonly outputs: readonly [{
86
- readonly type: "core::bool";
87
- }];
88
- readonly state_mutability: "external";
89
- }];
@@ -1,128 +0,0 @@
1
- export const ERC20_ABI = [
2
- {
3
- type: 'function',
4
- name: 'name',
5
- inputs: [],
6
- outputs: [
7
- {
8
- type: 'core::felt252',
9
- },
10
- ],
11
- state_mutability: 'view',
12
- },
13
- {
14
- type: 'function',
15
- name: 'symbol',
16
- inputs: [],
17
- outputs: [
18
- {
19
- type: 'core::felt252',
20
- },
21
- ],
22
- state_mutability: 'view',
23
- },
24
- {
25
- type: 'function',
26
- name: 'decimals',
27
- inputs: [],
28
- outputs: [
29
- {
30
- type: 'core::integer::u8',
31
- },
32
- ],
33
- state_mutability: 'view',
34
- },
35
- {
36
- type: 'function',
37
- name: 'balance_of',
38
- inputs: [
39
- {
40
- name: 'account',
41
- type: 'core::starknet::contract_address::ContractAddress',
42
- },
43
- ],
44
- outputs: [
45
- {
46
- type: 'core::integer::u256',
47
- },
48
- ],
49
- state_mutability: 'view',
50
- },
51
- {
52
- type: 'function',
53
- name: 'balanceOf',
54
- inputs: [
55
- {
56
- name: 'account',
57
- type: 'core::starknet::contract_address::ContractAddress',
58
- },
59
- ],
60
- outputs: [
61
- {
62
- type: 'core::integer::u256',
63
- },
64
- ],
65
- state_mutability: 'view',
66
- },
67
- {
68
- type: 'function',
69
- name: 'allowance',
70
- inputs: [
71
- {
72
- name: 'owner',
73
- type: 'core::starknet::contract_address::ContractAddress',
74
- },
75
- {
76
- name: 'spender',
77
- type: 'core::starknet::contract_address::ContractAddress',
78
- },
79
- ],
80
- outputs: [
81
- {
82
- type: 'core::integer::u256',
83
- },
84
- ],
85
- state_mutability: 'view',
86
- },
87
- {
88
- type: 'function',
89
- name: 'approve',
90
- inputs: [
91
- {
92
- name: 'spender',
93
- type: 'core::starknet::contract_address::ContractAddress',
94
- },
95
- {
96
- name: 'amount',
97
- type: 'core::integer::u256',
98
- },
99
- ],
100
- outputs: [
101
- {
102
- type: 'core::bool',
103
- },
104
- ],
105
- state_mutability: 'external',
106
- },
107
- {
108
- type: 'function',
109
- name: 'transfer',
110
- inputs: [
111
- {
112
- name: 'recipient',
113
- type: 'core::starknet::contract_address::ContractAddress',
114
- },
115
- {
116
- name: 'amount',
117
- type: 'core::integer::u256',
118
- },
119
- ],
120
- outputs: [
121
- {
122
- type: 'core::bool',
123
- },
124
- ],
125
- state_mutability: 'external',
126
- },
127
- ];
128
- //# sourceMappingURL=erc20Abi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20Abi.js","sourceRoot":"","sources":["../../../src/lib/abis/erc20Abi.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IAEvB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,eAAe;aACtB;SACF;QACD,gBAAgB,EAAE,MAAM;KACzB;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,eAAe;aACtB;SACF;QACD,gBAAgB,EAAE,MAAM;KACzB;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,mBAAmB;aAC1B;SACF;QACD,gBAAgB,EAAE,MAAM;KACzB;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mDAAmD;aAC1D;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,qBAAqB;aAC5B;SACF;QACD,gBAAgB,EAAE,MAAM;KACzB;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mDAAmD;aAC1D;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,qBAAqB;aAC5B;SACF;QACD,gBAAgB,EAAE,MAAM;KACzB;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,mDAAmD;aAC1D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mDAAmD;aAC1D;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,qBAAqB;aAC5B;SACF;QACD,gBAAgB,EAAE,MAAM;KACzB;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mDAAmD;aAC1D;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,qBAAqB;aAC5B;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,YAAY;aACnB;SACF;QACD,gBAAgB,EAAE,UAAU;KAC7B;IAED;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,mDAAmD;aAC1D;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,qBAAqB;aAC5B;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,YAAY;aACnB;SACF;QACD,gBAAgB,EAAE,UAAU;KAC7B;CACO,CAAC"}