@mento-protocol/mento-sdk 3.0.0-beta.14 → 3.0.0-beta.15

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.
@@ -88,24 +88,6 @@ export declare const FPMM_ABI: readonly [{
88
88
  }, {
89
89
  readonly type: "uint256";
90
90
  }];
91
- }, {
92
- readonly name: "getPrices";
93
- readonly type: "function";
94
- readonly stateMutability: "view";
95
- readonly inputs: readonly [];
96
- readonly outputs: readonly [{
97
- readonly type: "uint256";
98
- }, {
99
- readonly type: "uint256";
100
- }, {
101
- readonly type: "uint256";
102
- }, {
103
- readonly type: "uint256";
104
- }, {
105
- readonly type: "uint256";
106
- }, {
107
- readonly type: "bool";
108
- }];
109
91
  }, {
110
92
  readonly name: "decimals0";
111
93
  readonly type: "function";
@@ -156,5 +138,25 @@ export declare const FPMM_ABI: readonly [{
156
138
  readonly outputs: readonly [{
157
139
  readonly type: "bool";
158
140
  }];
141
+ }, {
142
+ readonly name: "getRebalancingState";
143
+ readonly type: "function";
144
+ readonly stateMutability: "view";
145
+ readonly inputs: readonly [];
146
+ readonly outputs: readonly [{
147
+ readonly type: "uint256";
148
+ }, {
149
+ readonly type: "uint256";
150
+ }, {
151
+ readonly type: "uint256";
152
+ }, {
153
+ readonly type: "uint256";
154
+ }, {
155
+ readonly type: "bool";
156
+ }, {
157
+ readonly type: "uint16";
158
+ }, {
159
+ readonly type: "uint256";
160
+ }];
159
161
  }];
160
162
  //# sourceMappingURL=fpmm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fpmm.d.ts","sourceRoot":"","sources":["../../../src/core/abis/fpmm.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenB,CAAA"}
1
+ {"version":3,"file":"fpmm.d.ts","sourceRoot":"","sources":["../../../src/core/abis/fpmm.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenB,CAAA"}
@@ -10,12 +10,12 @@ exports.FPMM_ABI = (0, viem_1.parseAbi)([
10
10
  'function referenceRateFeedID() view returns (address)',
11
11
  'function getTradingLimits(address token) view returns ((int120 limit0, int120 limit1, uint8 decimals) config, (uint32 lastUpdated0, uint32 lastUpdated1, int96 netflow0, int96 netflow1) state)',
12
12
  'function getReserves() view returns (uint256, uint256, uint256)',
13
- 'function getPrices() view returns (uint256, uint256, uint256, uint256, uint256, bool)',
14
13
  'function decimals0() view returns (uint256)',
15
14
  'function decimals1() view returns (uint256)',
16
15
  'function rebalanceIncentive() view returns (uint256)',
17
16
  'function rebalanceThresholdAbove() view returns (uint256)',
18
17
  'function rebalanceThresholdBelow() view returns (uint256)',
19
18
  'function liquidityStrategy(address) view returns (bool)',
19
+ 'function getRebalancingState() view returns (uint256, uint256, uint256, uint256, bool, uint16, uint256)',
20
20
  ]);
21
21
  //# sourceMappingURL=fpmm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fpmm.js","sourceRoot":"","sources":["../../../src/core/abis/fpmm.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,QAAQ,GAAG,IAAA,eAAQ,EAAC;IAC/B,0CAA0C;IAC1C,0CAA0C;IAC1C,yCAAyC;IACzC,+CAA+C;IAC/C,uDAAuD;IACvD,iMAAiM;IACjM,iEAAiE;IACjE,uFAAuF;IACvF,6CAA6C;IAC7C,6CAA6C;IAC7C,sDAAsD;IACtD,2DAA2D;IAC3D,2DAA2D;IAC3D,yDAAyD;CAC1D,CAAC,CAAA"}
1
+ {"version":3,"file":"fpmm.js","sourceRoot":"","sources":["../../../src/core/abis/fpmm.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,QAAQ,GAAG,IAAA,eAAQ,EAAC;IAC/B,0CAA0C;IAC1C,0CAA0C;IAC1C,yCAAyC;IACzC,+CAA+C;IAC/C,uDAAuD;IACvD,iMAAiM;IACjM,iEAAiE;IACjE,6CAA6C;IAC7C,6CAA6C;IAC7C,sDAAsD;IACtD,2DAA2D;IAC3D,2DAA2D;IAC3D,yDAAyD;IACzD,yGAAyG;CAC1G,CAAC,CAAA"}
@@ -36,5 +36,15 @@ export declare const VIRTUAL_POOL_ABI: readonly [{
36
36
  }, {
37
37
  readonly type: "address";
38
38
  }];
39
+ }, {
40
+ readonly name: "tokens";
41
+ readonly type: "function";
42
+ readonly stateMutability: "view";
43
+ readonly inputs: readonly [];
44
+ readonly outputs: readonly [{
45
+ readonly type: "address";
46
+ }, {
47
+ readonly type: "address";
48
+ }];
39
49
  }];
40
50
  //# sourceMappingURL=virtualPool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtualPool.d.ts","sourceRoot":"","sources":["../../../src/core/abis/virtualPool.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3B,CAAA"}
1
+ {"version":3,"file":"virtualPool.d.ts","sourceRoot":"","sources":["../../../src/core/abis/virtualPool.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAA"}
@@ -6,5 +6,6 @@ exports.VIRTUAL_POOL_ABI = (0, viem_1.parseAbi)([
6
6
  'function protocolFee() view returns (uint256)',
7
7
  'function getReserves() view returns (uint256, uint256, uint256)',
8
8
  'function metadata() view returns (uint256, uint256, uint256, uint256, address, address)',
9
+ 'function tokens() view returns (address, address)',
9
10
  ]);
10
11
  //# sourceMappingURL=virtualPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtualPool.js","sourceRoot":"","sources":["../../../src/core/abis/virtualPool.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,gBAAgB,GAAG,IAAA,eAAQ,EAAC;IACvC,+CAA+C;IAC/C,iEAAiE;IACjE,yFAAyF;CAC1F,CAAC,CAAA"}
1
+ {"version":3,"file":"virtualPool.js","sourceRoot":"","sources":["../../../src/core/abis/virtualPool.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,gBAAgB,GAAG,IAAA,eAAQ,EAAC;IACvC,+CAA+C;IAC/C,iEAAiE;IACjE,yFAAyF;IACzF,mDAAmD;CACpD,CAAC,CAAA"}
@@ -23,5 +23,13 @@ export declare const VIRTUAL_POOL_FACTORY_ABI: readonly [{
23
23
  readonly outputs: readonly [{
24
24
  readonly type: "bool";
25
25
  }];
26
+ }, {
27
+ readonly name: "getAllPools";
28
+ readonly type: "function";
29
+ readonly stateMutability: "view";
30
+ readonly inputs: readonly [];
31
+ readonly outputs: readonly [{
32
+ readonly type: "address[]";
33
+ }];
26
34
  }];
27
35
  //# sourceMappingURL=virtualPoolFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtualPoolFactory.d.ts","sourceRoot":"","sources":["../../../src/core/abis/virtualPoolFactory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;EAGnC,CAAA"}
1
+ {"version":3,"file":"virtualPoolFactory.d.ts","sourceRoot":"","sources":["../../../src/core/abis/virtualPoolFactory.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAA"}
@@ -5,5 +5,6 @@ const viem_1 = require("viem");
5
5
  exports.VIRTUAL_POOL_FACTORY_ABI = (0, viem_1.parseAbi)([
6
6
  'function getOrPrecomputeProxyAddress(address token0, address token1) view returns (address)',
7
7
  'function isPool(address pool) view returns (bool)',
8
+ 'function getAllPools() view returns (address[])',
8
9
  ]);
9
10
  //# sourceMappingURL=virtualPoolFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtualPoolFactory.js","sourceRoot":"","sources":["../../../src/core/abis/virtualPoolFactory.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,wBAAwB,GAAG,IAAA,eAAQ,EAAC;IAC/C,6FAA6F;IAC7F,mDAAmD;CACpD,CAAC,CAAA"}
1
+ {"version":3,"file":"virtualPoolFactory.js","sourceRoot":"","sources":["../../../src/core/abis/virtualPoolFactory.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,wBAAwB,GAAG,IAAA,eAAQ,EAAC;IAC/C,6FAA6F;IAC7F,mDAAmD;IACnD,iDAAiD;CAClD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,OAAO;IACR,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IARpC,OAAO;IAWP;;;;;OAKG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsB5E;;;;OAIG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,MAAM;CAGzE;AAED,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,OAAO;IACR,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IARpC,OAAO;IAWP;;;;;OAKG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsB5E;;;;OAIG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,MAAM;CAGzE;AAED,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -25,6 +25,7 @@ const quotes_1 = require("./services/quotes");
25
25
  const swap_1 = require("./services/swap");
26
26
  const trading_1 = require("./services/trading");
27
27
  const liquidity_1 = require("./services/liquidity");
28
+ // TODO: Ensure there are no silent errors in the codebase
28
29
  /**
29
30
  * @class Mento
30
31
  * @description The main class for the Mento SDK. Initializes a viem PublicClient internally
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAkE;AAGlE,0DAA+D;AAC/D,qDAAsE;AACtE,8CAAgD;AAChD,4CAA8C;AAC9C,8CAAgD;AAChD,8CAAgD;AAChD,0CAA6C;AAC7C,gDAAmD;AACnD,oDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAa,KAAK;IAChB,YACU,OAAe,EAChB,MAAoB,EACpB,KAAkB,EAClB,MAAoB,EACpB,MAAoB,EACpB,IAAiB,EACjB,OAAuB,EACvB,SAA2B;QAP1B,YAAO,GAAP,OAAO,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAa;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,WAAM,GAAN,MAAM,CAAc;QACpB,SAAI,GAAJ,IAAI,CAAa;QACjB,YAAO,GAAP,OAAO,CAAgB;QACvB,cAAS,GAAT,SAAS,CAAkB;IACjC,CAAC;IAEJ;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,MAAe;QACzD,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,MAAM,IAAI,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC,CAAA;QAE3D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACtC,KAAK,EAAE,IAAA,4BAAc,EAAC,OAAO,CAAC;YAC9B,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,WAAW,GAAG,IAAI,mBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QACzE,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QACtF,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC9E,MAAM,gBAAgB,GAAG,IAAI,4BAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;QAE/F,mBAAmB;QACnB,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACjI,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,YAAqC;QAC7D,OAAO,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;CACF;AAhDD,sBAgDC;AAED,mDAAgC;AAChC,gDAA6B;AAC7B,+CAA4B;AAC5B,8CAA2B;AAC3B,6CAA0B;AAC1B,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAkE;AAGlE,0DAA+D;AAC/D,qDAAsE;AACtE,8CAAgD;AAChD,4CAA8C;AAC9C,8CAAgD;AAChD,8CAAgD;AAChD,0CAA6C;AAC7C,gDAAmD;AACnD,oDAAuD;AAEvD,0DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAa,KAAK;IAChB,YACU,OAAe,EAChB,MAAoB,EACpB,KAAkB,EAClB,MAAoB,EACpB,MAAoB,EACpB,IAAiB,EACjB,OAAuB,EACvB,SAA2B;QAP1B,YAAO,GAAP,OAAO,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAa;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,WAAM,GAAN,MAAM,CAAc;QACpB,SAAI,GAAJ,IAAI,CAAa;QACjB,YAAO,GAAP,OAAO,CAAgB;QACvB,cAAS,GAAT,SAAS,CAAkB;IACjC,CAAC;IAEJ;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,MAAe;QACzD,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,MAAM,IAAI,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC,CAAA;QAE3D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACtC,KAAK,EAAE,IAAA,4BAAc,EAAC,OAAO,CAAC;YAC9B,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,WAAW,GAAG,IAAI,mBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QACzE,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QACtF,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC9E,MAAM,gBAAgB,GAAG,IAAI,4BAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;QAE/F,mBAAmB;QACnB,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACjI,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,YAAqC;QAC7D,OAAO,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;CACF;AAhDD,sBAgDC;AAED,mDAAgC;AAChC,gDAA6B;AAC7B,+CAA4B;AAC5B,8CAA2B;AAC3B,6CAA0B;AAC1B,0CAAuB"}
@@ -42,12 +42,12 @@ async function fetchFPMMPoolDetails(publicClient, chainId, pool) {
42
42
  let pricing = null;
43
43
  let inBand = null;
44
44
  try {
45
- const pricesResult = await publicClient.readContract({
45
+ const rebalancingStateResult = await publicClient.readContract({
46
46
  address,
47
47
  abi: abis_1.FPMM_ABI,
48
- functionName: 'getPrices',
48
+ functionName: 'getRebalancingState',
49
49
  });
50
- const [oraclePriceNum, oraclePriceDen, reservePriceNum, reservePriceDen, priceDifference, reservePriceAboveOraclePrice,] = pricesResult;
50
+ const [oraclePriceNum, oraclePriceDen, reservePriceNum, reservePriceDen, reservePriceAboveOraclePrice, rebalanceThreshold, priceDifference,] = rebalancingStateResult;
51
51
  pricing = {
52
52
  oraclePriceNum,
53
53
  oraclePriceDen,
@@ -59,11 +59,10 @@ async function fetchFPMMPoolDetails(publicClient, chainId, pool) {
59
59
  priceDifferencePercent: Number(priceDifference) / 100,
60
60
  reservePriceAboveOraclePrice,
61
61
  };
62
- const applicableThreshold = reservePriceAboveOraclePrice ? thresholdAboveBps : thresholdBelowBps;
63
- inBand = priceDifference < applicableThreshold;
62
+ inBand = priceDifference < BigInt(rebalanceThreshold);
64
63
  }
65
64
  catch {
66
- // getPrices() failed (likely FXMarketClosed) — pricing stays null
65
+ // getRebalancingState() failed (likely FXMarketClosed) — pricing stays null
67
66
  }
68
67
  return {
69
68
  ...pool,
@@ -1 +1 @@
1
- {"version":3,"file":"poolDetails.js","sourceRoot":"","sources":["../../../src/services/pools/poolDetails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolDetails.js","sourceRoot":"","sources":["../../../src/services/pools/poolDetails.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,8 @@ import { PublicClient } from 'viem';
5
5
  */
6
6
  export declare function fetchFPMMPools(publicClient: PublicClient, chainId: number): Promise<Pool[]>;
7
7
  /**
8
- * Fetches all Virtual pools by discovering them from BiPoolManager exchanges.
9
- * VirtualPoolFactory doesn't have an enumeration method,
10
- * so we have to derive pools from BiPoolManager.
8
+ * Fetches all active Virtual pools from the VirtualPoolFactory,
9
+ * then resolves token pairs and exchange IDs from each pool and BiPoolManager.
11
10
  */
12
11
  export declare function fetchVirtualPools(publicClient: PublicClient, chainId: number): Promise<Pool[]>;
13
12
  //# sourceMappingURL=poolDiscovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poolDiscovery.d.ts","sourceRoot":"","sources":["../../../src/services/pools/poolDiscovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAY,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAW,MAAM,MAAM,CAAA;AAG5C;;GAEG;AACH,wBAAsB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA8CjG;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAiEpG"}
1
+ {"version":3,"file":"poolDiscovery.d.ts","sourceRoot":"","sources":["../../../src/services/pools/poolDiscovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAY,MAAM,kBAAkB,CAAA;AAQjD,OAAO,EAAE,YAAY,EAAW,MAAM,MAAM,CAAA;AAG5C;;GAEG;AACH,wBAAsB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA8CjG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA8DpG"}
@@ -52,9 +52,8 @@ async function fetchFPMMPools(publicClient, chainId) {
52
52
  }
53
53
  }
54
54
  /**
55
- * Fetches all Virtual pools by discovering them from BiPoolManager exchanges.
56
- * VirtualPoolFactory doesn't have an enumeration method,
57
- * so we have to derive pools from BiPoolManager.
55
+ * Fetches all active Virtual pools from the VirtualPoolFactory,
56
+ * then resolves token pairs and exchange IDs from each pool and BiPoolManager.
58
57
  */
59
58
  async function fetchVirtualPools(publicClient, chainId) {
60
59
  const virtualPoolFactoryAddress = (0, constants_1.getContractAddress)(chainId, 'VirtualPoolFactory');
@@ -63,50 +62,50 @@ async function fetchVirtualPools(publicClient, chainId) {
63
62
  return [];
64
63
  }
65
64
  try {
66
- // TODO: When the latest virtual pool factory contract is deployed
67
- // we can simplify this by using VirtualPoolFactory.getAllPools() returns(address[])
68
- // Get all exchanges from BiPoolManager
69
- const exchangesData = (await publicClient.readContract({
70
- address: biPoolManagerAddress,
71
- abi: abis_1.BIPOOL_MANAGER_ABI,
72
- functionName: 'getExchanges',
73
- }));
74
- if (exchangesData.length === 0) {
65
+ // Fetch active pool addresses and all exchanges in parallel
66
+ const [poolAddresses, exchangesData] = await Promise.all([
67
+ publicClient.readContract({
68
+ address: virtualPoolFactoryAddress,
69
+ abi: abis_1.VIRTUAL_POOL_FACTORY_ABI,
70
+ functionName: 'getAllPools',
71
+ }),
72
+ publicClient.readContract({
73
+ address: biPoolManagerAddress,
74
+ abi: abis_1.BIPOOL_MANAGER_ABI,
75
+ functionName: 'getExchanges',
76
+ }),
77
+ ]);
78
+ if (poolAddresses.length === 0) {
75
79
  return [];
76
80
  }
77
- // For each exchange, check if a virtual pool exists, and if so, return the pool address.
78
- const poolPromises = exchangesData.map(async (exchange) => {
79
- if (exchange.assets.length !== 2) {
80
- return null;
81
+ // Build a lookup from sorted token pair to exchangeId
82
+ const tokenPairToExchangeId = new Map();
83
+ for (const exchange of exchangesData) {
84
+ if (exchange.assets.length === 2) {
85
+ const [t0, t1] = (0, sortUtils_1.sortTokenAddresses)(exchange.assets[0], exchange.assets[1]);
86
+ tokenPairToExchangeId.set(`${t0}:${t1}`, exchange.exchangeId);
81
87
  }
82
- const [token0, token1] = (0, sortUtils_1.sortTokenAddresses)(exchange.assets[0], exchange.assets[1]);
83
- const poolAddress = (await publicClient.readContract({
84
- address: virtualPoolFactoryAddress,
85
- abi: abis_1.VIRTUAL_POOL_FACTORY_ABI,
86
- functionName: 'getOrPrecomputeProxyAddress',
87
- args: [token0, token1],
88
- }));
89
- const isDeployed = (await publicClient.readContract({
90
- address: virtualPoolFactoryAddress,
91
- abi: abis_1.VIRTUAL_POOL_FACTORY_ABI,
92
- functionName: 'isPool',
93
- args: [poolAddress],
88
+ }
89
+ // For each pool, read its token pair and match to an exchangeId
90
+ const poolPromises = poolAddresses.map(async (poolAddress) => {
91
+ const [token0, token1] = (await publicClient.readContract({
92
+ address: poolAddress,
93
+ abi: abis_1.VIRTUAL_POOL_ABI,
94
+ functionName: 'tokens',
94
95
  }));
95
- if (!isDeployed) {
96
- return null;
97
- }
96
+ const [sorted0, sorted1] = (0, sortUtils_1.sortTokenAddresses)(token0, token1);
97
+ const exchangeId = tokenPairToExchangeId.get(`${sorted0}:${sorted1}`);
98
98
  const pool = {
99
99
  factoryAddr: virtualPoolFactoryAddress,
100
100
  poolAddr: poolAddress,
101
- token0: token0,
102
- token1: token1,
101
+ token0: sorted0,
102
+ token1: sorted1,
103
103
  poolType: types_1.PoolType.Virtual,
104
- exchangeId: exchange.exchangeId,
104
+ exchangeId,
105
105
  };
106
106
  return pool;
107
107
  });
108
- const results = await Promise.all(poolPromises);
109
- return results.filter((pool) => pool !== null);
108
+ return await Promise.all(poolPromises);
110
109
  }
111
110
  catch (error) {
112
111
  throw new Error(`Failed to fetch Virtual pools: ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"poolDiscovery.js","sourceRoot":"","sources":["../../../src/services/pools/poolDiscovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolDiscovery.js","sourceRoot":"","sources":["../../../src/services/pools/poolDiscovery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mento-protocol/mento-sdk",
3
3
  "description": "Official SDK for interacting with the Mento Protocol",
4
- "version": "3.0.0-beta.14",
4
+ "version": "3.0.0-beta.15",
5
5
  "license": "MIT",
6
6
  "author": "Mento Labs",
7
7
  "keywords": [