@mento-protocol/mento-sdk 3.0.0-beta.1 → 3.0.0-beta.10

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.
Files changed (158) hide show
  1. package/README.md +34 -0
  2. package/dist/cache/routes.d.ts +13 -0
  3. package/dist/cache/routes.d.ts.map +1 -0
  4. package/dist/cache/routes.js +130 -0
  5. package/dist/cache/routes.js.map +1 -0
  6. package/dist/cache/tokens.d.ts +67 -0
  7. package/dist/cache/tokens.d.ts.map +1 -0
  8. package/dist/cache/tokens.js +379 -0
  9. package/dist/cache/tokens.js.map +1 -0
  10. package/dist/core/abis/breakerbox.d.ts +13 -0
  11. package/dist/core/abis/breakerbox.d.ts.map +1 -0
  12. package/dist/core/abis/breakerbox.js +8 -0
  13. package/dist/core/abis/breakerbox.js.map +1 -0
  14. package/dist/core/abis/erc20.d.ts +7 -0
  15. package/dist/core/abis/erc20.d.ts.map +1 -1
  16. package/dist/core/abis/erc20.js +7 -0
  17. package/dist/core/abis/erc20.js.map +1 -1
  18. package/dist/core/abis/fpmm.d.ts +126 -0
  19. package/dist/core/abis/fpmm.d.ts.map +1 -1
  20. package/dist/core/abis/fpmm.js +10 -0
  21. package/dist/core/abis/fpmm.js.map +1 -1
  22. package/dist/core/abis/index.d.ts +2 -0
  23. package/dist/core/abis/index.d.ts.map +1 -1
  24. package/dist/core/abis/index.js +2 -0
  25. package/dist/core/abis/index.js.map +1 -1
  26. package/dist/core/abis/virtualPool.d.ts +30 -0
  27. package/dist/core/abis/virtualPool.d.ts.map +1 -1
  28. package/dist/core/abis/virtualPool.js +5 -1
  29. package/dist/core/abis/virtualPool.js.map +1 -1
  30. package/dist/core/constants/aaveConfig.js +2 -2
  31. package/dist/core/constants/addresses.d.ts.map +1 -1
  32. package/dist/core/constants/addresses.js +9 -4
  33. package/dist/core/constants/addresses.js.map +1 -1
  34. package/dist/core/types/contractAddresses.d.ts +2 -0
  35. package/dist/core/types/contractAddresses.d.ts.map +1 -1
  36. package/dist/core/types/index.d.ts +3 -1
  37. package/dist/core/types/index.d.ts.map +1 -1
  38. package/dist/core/types/index.js +3 -1
  39. package/dist/core/types/index.js.map +1 -1
  40. package/dist/core/types/pool.d.ts +110 -0
  41. package/dist/core/types/pool.d.ts.map +1 -1
  42. package/dist/core/types/provider.d.ts.map +1 -1
  43. package/dist/core/types/provider.js +0 -1
  44. package/dist/core/types/provider.js.map +1 -1
  45. package/dist/core/types/route.d.ts +3 -3
  46. package/dist/core/types/route.d.ts.map +1 -1
  47. package/dist/core/types/token.d.ts +13 -3
  48. package/dist/core/types/token.d.ts.map +1 -1
  49. package/dist/core/types/tradingLimits.d.ts +91 -0
  50. package/dist/core/types/tradingLimits.d.ts.map +1 -0
  51. package/dist/core/types/tradingLimits.js +3 -0
  52. package/dist/core/types/tradingLimits.js.map +1 -0
  53. package/dist/core/types/tradingMode.d.ts +24 -0
  54. package/dist/core/types/tradingMode.d.ts.map +1 -0
  55. package/dist/core/types/tradingMode.js +31 -0
  56. package/dist/core/types/tradingMode.js.map +1 -0
  57. package/dist/core/types/transaction.d.ts +45 -0
  58. package/dist/core/types/transaction.d.ts.map +1 -0
  59. package/dist/core/types/transaction.js +3 -0
  60. package/dist/core/types/transaction.js.map +1 -0
  61. package/dist/index.d.ts +20 -8
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +23 -10
  64. package/dist/index.js.map +1 -1
  65. package/dist/services/index.d.ts +1 -0
  66. package/dist/services/index.d.ts.map +1 -1
  67. package/dist/services/index.js +1 -0
  68. package/dist/services/index.js.map +1 -1
  69. package/dist/services/pools/PoolService.d.ts +22 -10
  70. package/dist/services/pools/PoolService.d.ts.map +1 -1
  71. package/dist/services/pools/PoolService.js +44 -110
  72. package/dist/services/pools/PoolService.js.map +1 -1
  73. package/dist/services/pools/poolDetails.d.ts +11 -0
  74. package/dist/services/pools/poolDetails.d.ts.map +1 -0
  75. package/dist/services/pools/poolDetails.js +136 -0
  76. package/dist/services/pools/poolDetails.js.map +1 -0
  77. package/dist/services/pools/poolDiscovery.d.ts +13 -0
  78. package/dist/services/pools/poolDiscovery.d.ts.map +1 -0
  79. package/dist/services/pools/poolDiscovery.js +115 -0
  80. package/dist/services/pools/poolDiscovery.js.map +1 -0
  81. package/dist/services/quotes/QuoteService.d.ts +21 -12
  82. package/dist/services/quotes/QuoteService.d.ts.map +1 -1
  83. package/dist/services/quotes/QuoteService.js +23 -10
  84. package/dist/services/quotes/QuoteService.js.map +1 -1
  85. package/dist/services/routes/RouteService.d.ts +3 -3
  86. package/dist/services/routes/RouteService.d.ts.map +1 -1
  87. package/dist/services/routes/RouteService.js +3 -5
  88. package/dist/services/routes/RouteService.js.map +1 -1
  89. package/dist/services/swap/SwapService.d.ts +18 -14
  90. package/dist/services/swap/SwapService.d.ts.map +1 -1
  91. package/dist/services/swap/SwapService.js +31 -11
  92. package/dist/services/swap/SwapService.js.map +1 -1
  93. package/dist/services/tokens/supplyAdjustmentService.d.ts +0 -4
  94. package/dist/services/tokens/supplyAdjustmentService.d.ts.map +1 -1
  95. package/dist/services/tokens/supplyAdjustmentService.js +3 -8
  96. package/dist/services/tokens/supplyAdjustmentService.js.map +1 -1
  97. package/dist/services/tokens/tokenService.d.ts.map +1 -1
  98. package/dist/services/tokens/tokenService.js +2 -2
  99. package/dist/services/tokens/tokenService.js.map +1 -1
  100. package/dist/services/trading/TradingLimitsService.d.ts +38 -0
  101. package/dist/services/trading/TradingLimitsService.d.ts.map +1 -0
  102. package/dist/services/trading/TradingLimitsService.js +157 -0
  103. package/dist/services/trading/TradingLimitsService.js.map +1 -0
  104. package/dist/services/trading/TradingService.d.ts +110 -0
  105. package/dist/services/trading/TradingService.d.ts.map +1 -0
  106. package/dist/services/trading/TradingService.js +162 -0
  107. package/dist/services/trading/TradingService.js.map +1 -0
  108. package/dist/services/trading/index.d.ts +3 -0
  109. package/dist/services/trading/index.d.ts.map +1 -0
  110. package/dist/services/trading/index.js +19 -0
  111. package/dist/services/trading/index.js.map +1 -0
  112. package/dist/utils/costUtils.js +4 -4
  113. package/dist/utils/costUtils.js.map +1 -1
  114. package/dist/utils/index.d.ts +3 -0
  115. package/dist/utils/index.d.ts.map +1 -1
  116. package/dist/utils/index.js +3 -0
  117. package/dist/utils/index.js.map +1 -1
  118. package/dist/utils/pathEncoder.d.ts +3 -2
  119. package/dist/utils/pathEncoder.d.ts.map +1 -1
  120. package/dist/utils/pathEncoder.js +19 -3
  121. package/dist/utils/pathEncoder.js.map +1 -1
  122. package/dist/utils/rateFeed.d.ts +18 -0
  123. package/dist/utils/rateFeed.d.ts.map +1 -0
  124. package/dist/utils/rateFeed.js +27 -0
  125. package/dist/utils/rateFeed.js.map +1 -0
  126. package/dist/utils/routeUtils.d.ts +53 -53
  127. package/dist/utils/routeUtils.d.ts.map +1 -1
  128. package/dist/utils/routeUtils.js +41 -41
  129. package/dist/utils/routeUtils.js.map +1 -1
  130. package/dist/utils/routes.d.ts +2 -8
  131. package/dist/utils/routes.d.ts.map +1 -1
  132. package/dist/utils/routes.js +5 -46
  133. package/dist/utils/routes.js.map +1 -1
  134. package/dist/utils/tokens.d.ts +1 -77
  135. package/dist/utils/tokens.d.ts.map +1 -1
  136. package/dist/utils/tokens.js +10 -178
  137. package/dist/utils/tokens.js.map +1 -1
  138. package/dist/utils/tradingLimits.d.ts +41 -0
  139. package/dist/utils/tradingLimits.d.ts.map +1 -0
  140. package/dist/utils/tradingLimits.js +171 -0
  141. package/dist/utils/tradingLimits.js.map +1 -0
  142. package/dist/utils/validation.d.ts +19 -0
  143. package/dist/utils/validation.d.ts.map +1 -0
  144. package/dist/utils/validation.js +34 -0
  145. package/dist/utils/validation.js.map +1 -0
  146. package/package.json +1 -1
  147. package/dist/cache/routes.42220.d.ts +0 -3
  148. package/dist/cache/routes.42220.d.ts.map +0 -1
  149. package/dist/cache/routes.42220.js +0 -112
  150. package/dist/cache/routes.42220.js.map +0 -1
  151. package/dist/cache/tokens.11142220.d.ts +0 -3
  152. package/dist/cache/tokens.11142220.d.ts.map +0 -1
  153. package/dist/cache/tokens.11142220.js +0 -129
  154. package/dist/cache/tokens.11142220.js.map +0 -1
  155. package/dist/cache/tokens.42220.d.ts +0 -3
  156. package/dist/cache/tokens.42220.d.ts.map +0 -1
  157. package/dist/cache/tokens.42220.js +0 -129
  158. package/dist/cache/tokens.42220.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BREAKERBOX_ABI = void 0;
4
+ const viem_1 = require("viem");
5
+ exports.BREAKERBOX_ABI = (0, viem_1.parseAbi)([
6
+ 'function getRateFeedTradingMode(address rateFeedID) view returns (uint8)',
7
+ ]);
8
+ //# sourceMappingURL=breakerbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakerbox.js","sourceRoot":"","sources":["../../../src/core/abis/breakerbox.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,cAAc,GAAG,IAAA,eAAQ,EAAC;IACrC,0EAA0E;CAC3E,CAAC,CAAA"}
@@ -1,2 +1,9 @@
1
+ /**
2
+ * ERC20 ABI for standard token operations
3
+ *
4
+ * Note: `as any` is used because viem's parseAbi returns a complex readonly tuple type
5
+ * that can cause type verbosity. This doesn't compromise type safety - viem's
6
+ * readContract/writeContract still infer types correctly from the ABI at usage sites.
7
+ */
1
8
  export declare const ERC20_ABI: any;
2
9
  //# sourceMappingURL=erc20.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../../src/core/abis/erc20.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,EAQhB,GAAG,CAAA"}
1
+ {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../../src/core/abis/erc20.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAQhB,GAAG,CAAA"}
@@ -2,6 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ERC20_ABI = void 0;
4
4
  const viem_1 = require("viem");
5
+ /**
6
+ * ERC20 ABI for standard token operations
7
+ *
8
+ * Note: `as any` is used because viem's parseAbi returns a complex readonly tuple type
9
+ * that can cause type verbosity. This doesn't compromise type safety - viem's
10
+ * readContract/writeContract still infer types correctly from the ABI at usage sites.
11
+ */
5
12
  exports.ERC20_ABI = (0, viem_1.parseAbi)([
6
13
  'function name() view returns (string)',
7
14
  'function symbol() view returns (string)',
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../../src/core/abis/erc20.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,SAAS,GAAG,IAAA,eAAQ,EAAC;IAChC,uCAAuC;IACvC,yCAAyC;IACzC,0CAA0C;IAC1C,+CAA+C;IAC/C,oDAAoD;IACpD,kEAAkE;IAClE,2EAA2E;CAC5E,CAAQ,CAAA"}
1
+ {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../../src/core/abis/erc20.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B;;;;;;GAMG;AACU,QAAA,SAAS,GAAG,IAAA,eAAQ,EAAC;IAChC,uCAAuC;IACvC,yCAAyC;IACzC,0CAA0C;IAC1C,+CAA+C;IAC/C,oDAAoD;IACpD,kEAAkE;IAClE,2EAA2E;CAC5E,CAAQ,CAAA"}
@@ -30,5 +30,131 @@ export declare const FPMM_ABI: readonly [{
30
30
  readonly outputs: readonly [{
31
31
  readonly type: "uint256";
32
32
  }];
33
+ }, {
34
+ readonly name: "referenceRateFeedID";
35
+ readonly type: "function";
36
+ readonly stateMutability: "view";
37
+ readonly inputs: readonly [];
38
+ readonly outputs: readonly [{
39
+ readonly type: "address";
40
+ }];
41
+ }, {
42
+ readonly name: "getTradingLimits";
43
+ readonly type: "function";
44
+ readonly stateMutability: "view";
45
+ readonly inputs: readonly [{
46
+ readonly type: "address";
47
+ readonly name: "token";
48
+ }];
49
+ readonly outputs: readonly [{
50
+ readonly type: "tuple";
51
+ readonly components: readonly [{
52
+ readonly type: "int120";
53
+ readonly name: "limit0";
54
+ }, {
55
+ readonly type: "int120";
56
+ readonly name: "limit1";
57
+ }, {
58
+ readonly type: "uint8";
59
+ readonly name: "decimals";
60
+ }];
61
+ readonly name: "config";
62
+ }, {
63
+ readonly type: "tuple";
64
+ readonly components: readonly [{
65
+ readonly type: "uint32";
66
+ readonly name: "lastUpdated0";
67
+ }, {
68
+ readonly type: "uint32";
69
+ readonly name: "lastUpdated1";
70
+ }, {
71
+ readonly type: "int96";
72
+ readonly name: "netflow0";
73
+ }, {
74
+ readonly type: "int96";
75
+ readonly name: "netflow1";
76
+ }];
77
+ readonly name: "state";
78
+ }];
79
+ }, {
80
+ readonly name: "getReserves";
81
+ readonly type: "function";
82
+ readonly stateMutability: "view";
83
+ readonly inputs: readonly [];
84
+ readonly outputs: readonly [{
85
+ readonly type: "uint256";
86
+ }, {
87
+ readonly type: "uint256";
88
+ }, {
89
+ readonly type: "uint256";
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
+ }, {
110
+ readonly name: "decimals0";
111
+ readonly type: "function";
112
+ readonly stateMutability: "view";
113
+ readonly inputs: readonly [];
114
+ readonly outputs: readonly [{
115
+ readonly type: "uint256";
116
+ }];
117
+ }, {
118
+ readonly name: "decimals1";
119
+ readonly type: "function";
120
+ readonly stateMutability: "view";
121
+ readonly inputs: readonly [];
122
+ readonly outputs: readonly [{
123
+ readonly type: "uint256";
124
+ }];
125
+ }, {
126
+ readonly name: "rebalanceIncentive";
127
+ readonly type: "function";
128
+ readonly stateMutability: "view";
129
+ readonly inputs: readonly [];
130
+ readonly outputs: readonly [{
131
+ readonly type: "uint256";
132
+ }];
133
+ }, {
134
+ readonly name: "rebalanceThresholdAbove";
135
+ readonly type: "function";
136
+ readonly stateMutability: "view";
137
+ readonly inputs: readonly [];
138
+ readonly outputs: readonly [{
139
+ readonly type: "uint256";
140
+ }];
141
+ }, {
142
+ readonly name: "rebalanceThresholdBelow";
143
+ readonly type: "function";
144
+ readonly stateMutability: "view";
145
+ readonly inputs: readonly [];
146
+ readonly outputs: readonly [{
147
+ readonly type: "uint256";
148
+ }];
149
+ }, {
150
+ readonly name: "liquidityStrategy";
151
+ readonly type: "function";
152
+ readonly stateMutability: "view";
153
+ readonly inputs: readonly [{
154
+ readonly type: "address";
155
+ }];
156
+ readonly outputs: readonly [{
157
+ readonly type: "bool";
158
+ }];
33
159
  }];
34
160
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAA"}
1
+ {"version":3,"file":"fpmm.d.ts","sourceRoot":"","sources":["../../../src/core/abis/fpmm.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenB,CAAA"}
@@ -7,5 +7,15 @@ exports.FPMM_ABI = (0, viem_1.parseAbi)([
7
7
  'function token1() view returns (address)',
8
8
  'function lpFee() view returns (uint256)',
9
9
  'function protocolFee() view returns (uint256)',
10
+ 'function referenceRateFeedID() view returns (address)',
11
+ 'function getTradingLimits(address token) view returns ((int120 limit0, int120 limit1, uint8 decimals) config, (uint32 lastUpdated0, uint32 lastUpdated1, int96 netflow0, int96 netflow1) state)',
12
+ 'function getReserves() view returns (uint256, uint256, uint256)',
13
+ 'function getPrices() view returns (uint256, uint256, uint256, uint256, uint256, bool)',
14
+ 'function decimals0() view returns (uint256)',
15
+ 'function decimals1() view returns (uint256)',
16
+ 'function rebalanceIncentive() view returns (uint256)',
17
+ 'function rebalanceThresholdAbove() view returns (uint256)',
18
+ 'function rebalanceThresholdBelow() view returns (uint256)',
19
+ 'function liquidityStrategy(address) view returns (bool)',
10
20
  ]);
11
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;CAChD,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,uFAAuF;IACvF,6CAA6C;IAC7C,6CAA6C;IAC7C,sDAAsD;IACtD,2DAA2D;IAC3D,2DAA2D;IAC3D,yDAAyD;CAC1D,CAAC,CAAA"}
@@ -6,5 +6,7 @@ export * from './broker';
6
6
  export * from './fpmmFactory';
7
7
  export * from './fpmm';
8
8
  export * from './virtualPoolFactory';
9
+ export * from './virtualPool';
9
10
  export * from './router';
11
+ export * from './breakerbox';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/abis/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/abis/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
@@ -22,5 +22,7 @@ __exportStar(require("./broker"), exports);
22
22
  __exportStar(require("./fpmmFactory"), exports);
23
23
  __exportStar(require("./fpmm"), exports);
24
24
  __exportStar(require("./virtualPoolFactory"), exports);
25
+ __exportStar(require("./virtualPool"), exports);
25
26
  __exportStar(require("./router"), exports);
27
+ __exportStar(require("./breakerbox"), exports);
26
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/abis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,8CAA2B;AAC3B,2CAAwB;AACxB,gDAA6B;AAC7B,yCAAsB;AACtB,uDAAoC;AACpC,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/abis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,8CAA2B;AAC3B,2CAAwB;AACxB,gDAA6B;AAC7B,yCAAsB;AACtB,uDAAoC;AACpC,gDAA6B;AAC7B,2CAAwB;AACxB,+CAA4B"}
@@ -6,5 +6,35 @@ export declare const VIRTUAL_POOL_ABI: readonly [{
6
6
  readonly outputs: readonly [{
7
7
  readonly type: "uint256";
8
8
  }];
9
+ }, {
10
+ readonly name: "getReserves";
11
+ readonly type: "function";
12
+ readonly stateMutability: "view";
13
+ readonly inputs: readonly [];
14
+ readonly outputs: readonly [{
15
+ readonly type: "uint256";
16
+ }, {
17
+ readonly type: "uint256";
18
+ }, {
19
+ readonly type: "uint256";
20
+ }];
21
+ }, {
22
+ readonly name: "metadata";
23
+ readonly type: "function";
24
+ readonly stateMutability: "view";
25
+ readonly inputs: readonly [];
26
+ readonly outputs: readonly [{
27
+ readonly type: "uint256";
28
+ }, {
29
+ readonly type: "uint256";
30
+ }, {
31
+ readonly type: "uint256";
32
+ }, {
33
+ readonly type: "uint256";
34
+ }, {
35
+ readonly type: "address";
36
+ }, {
37
+ readonly type: "address";
38
+ }];
9
39
  }];
10
40
  //# 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;;;;;;;;EAA8D,CAAA"}
1
+ {"version":3,"file":"virtualPool.d.ts","sourceRoot":"","sources":["../../../src/core/abis/virtualPool.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3B,CAAA"}
@@ -2,5 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VIRTUAL_POOL_ABI = void 0;
4
4
  const viem_1 = require("viem");
5
- exports.VIRTUAL_POOL_ABI = (0, viem_1.parseAbi)(['function protocolFee() view returns (uint256)']);
5
+ exports.VIRTUAL_POOL_ABI = (0, viem_1.parseAbi)([
6
+ 'function protocolFee() view returns (uint256)',
7
+ 'function getReserves() view returns (uint256, uint256, uint256)',
8
+ 'function metadata() view returns (uint256, uint256, uint256, uint256, address, address)',
9
+ ]);
6
10
  //# 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,CAAC,+CAA+C,CAAC,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;CAC1F,CAAC,CAAA"}
@@ -9,9 +9,9 @@ const chainId_1 = require("./chainId");
9
9
  */
10
10
  exports.AAVE_TOKEN_MAPPINGS = {
11
11
  [chainId_1.ChainId.CELO]: {
12
- // cUSD -> aCelcUSD
12
+ // USDm -> aCelcUSD
13
13
  '0x765DE816845861e75A25fCA122bb6898B8B1282a': '0xBba98352628B0B0c4b40583F593fFCb630935a45',
14
- // cEUR -> aCelcEUR
14
+ // EURm -> aCelcEUR
15
15
  '0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73': '0x34c02571094e08E935B8cf8dC10F1Ad6795f1f81',
16
16
  // USDT -> aCelUSDT
17
17
  '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e': '0xDeE98402A302e4D707fB9bf2bac66fAEEc31e8Df',
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/core/constants/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEhE,eAAO,MAAM,SAAS,EAAE,kBAuDvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,UAAU,GACvB,MAAM,CAcR"}
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/core/constants/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEhE,eAAO,MAAM,SAAS,EAAE,kBA6DvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,GAAG,MAAM,CAYrF"}
@@ -17,8 +17,10 @@ exports.addresses = {
17
17
  ConstantSumPricingModule: '0xDebED1F6f6ce9F6e73AA25F95acBFFE2397550Fb',
18
18
  MentoRouter: '0xbe729350f8cdfc19db6866e8579841188ee57f67',
19
19
  Reserve: '0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9',
20
+ // TODO: Find and remove references to this. This should be replaced
21
+ // with the token cache
20
22
  // Stable Tokens
21
- StableToken: '0x765DE816845861e75A25fCA122bb6898B8B1282a', // cUSD
23
+ StableToken: '0x765DE816845861e75A25fCA122bb6898B8B1282a', // USDm
22
24
  // Governance
23
25
  Airgrab: '0x7D8E73deafDBAfc98fDBe7974168cFA6d8B9AE0C',
24
26
  Emission: '0x5C789592E2611df1873b46D394c69f75faB99778',
@@ -27,9 +29,12 @@ exports.addresses = {
27
29
  MentoToken: '0x7FF62f59e3e89EA34163EA1458EEBCc81177Cfb6',
28
30
  TimelockController: '0x890DB8A597940165901372Dd7DB61C9f246e2147',
29
31
  // V3
30
- FPMMFactory: '0x4d1568F2fEd9396941BB675714784934E77FbC52',
31
- VirtualPoolFactory: '0xa7Ce17dA712C10b1eDd97a91679E3717bC50F4a8',
32
- Router: '0xFEb8145E2282dCE82044E97Dbb665Da9068E7B58',
32
+ FPMMFactory: '0x65A67cb93a3e035C32f131e911A0d6b46a5f3Bd0',
33
+ VirtualPoolFactory: '0x6CE2dFC48b2688075A804835757a734e3316E0a2',
34
+ Router: '0xc04201c72A401373905A71DE3cE868b8583d0545',
35
+ // TODO: replace with deployed addresses
36
+ ReserveLiquidityStrategy: '0x0000000000000000000000000000000000000001',
37
+ CDPLiquidityStrategy: '0x0000000000000000000000000000000000000002',
33
38
  },
34
39
  [chainId_1.ChainId.CELO_SEPOLIA]: {
35
40
  // Oracles & Breakers
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/core/constants/addresses.ts"],"names":[],"mappings":";;;AAqEA,gDAiBC;AAtFD,uCAAmC;AAGtB,QAAA,SAAS,GAAuB;IAC3C,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE;QACd,qBAAqB;QACrB,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,aAAa,EAAE,4CAA4C;QAC3D,iBAAiB,EAAE,4CAA4C;QAE/D,MAAM;QACN,aAAa,EAAE,4CAA4C;QAC3D,MAAM,EAAE,4CAA4C;QACpD,4BAA4B,EAAE,4CAA4C;QAC1E,wBAAwB,EAAE,4CAA4C;QACtE,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,4CAA4C;QAErD,gBAAgB;QAChB,WAAW,EAAE,4CAA4C,EAAE,OAAO;QAElE,aAAa;QACb,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAE,4CAA4C;QACrD,aAAa,EAAE,4CAA4C;QAC3D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAEhE,KAAK;QACL,WAAW,EAAE,4CAA4C;QACzD,kBAAkB,EAAE,4CAA4C;QAChE,MAAM,EAAE,4CAA4C;KACrD;IAED,CAAC,iBAAO,CAAC,YAAY,CAAC,EAAE;QACtB,qBAAqB;QACrB,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,aAAa,EAAE,4CAA4C;QAC3D,iBAAiB,EAAE,4CAA4C;QAE/D,MAAM;QACN,aAAa,EAAE,4CAA4C;QAC3D,MAAM,EAAE,4CAA4C;QACpD,4BAA4B,EAAE,4CAA4C;QAC1E,wBAAwB,EAAE,4CAA4C;QACtE,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,4CAA4C;QAErD,aAAa;QACb,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAE,4CAA4C;QACrD,aAAa,EAAE,4CAA4C;QAC3D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;KACjE;CACF,CAAA;AAID;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,OAAgB,EAChB,YAAwB;IAExB,MAAM,iBAAiB,GAAG,iBAAS,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,kCAAkC,YAAY,gBAAgB,OAAO,EAAE,CACxE,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/core/constants/addresses.ts"],"names":[],"mappings":";;;AA2EA,gDAYC;AAvFD,uCAAmC;AAGtB,QAAA,SAAS,GAAuB;IAC3C,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE;QACd,qBAAqB;QACrB,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,aAAa,EAAE,4CAA4C;QAC3D,iBAAiB,EAAE,4CAA4C;QAE/D,MAAM;QACN,aAAa,EAAE,4CAA4C;QAC3D,MAAM,EAAE,4CAA4C;QACpD,4BAA4B,EAAE,4CAA4C;QAC1E,wBAAwB,EAAE,4CAA4C;QACtE,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,4CAA4C;QAErD,oEAAoE;QACpE,6BAA6B;QAC7B,gBAAgB;QAChB,WAAW,EAAE,4CAA4C,EAAE,OAAO;QAElE,aAAa;QACb,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAE,4CAA4C;QACrD,aAAa,EAAE,4CAA4C;QAC3D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAEhE,KAAK;QACL,WAAW,EAAE,4CAA4C;QACzD,kBAAkB,EAAE,4CAA4C;QAChE,MAAM,EAAE,4CAA4C;QAEpD,wCAAwC;QACxC,wBAAwB,EAAE,4CAA4C;QACtE,oBAAoB,EAAE,4CAA4C;KACnE;IAED,CAAC,iBAAO,CAAC,YAAY,CAAC,EAAE;QACtB,qBAAqB;QACrB,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,aAAa,EAAE,4CAA4C;QAC3D,iBAAiB,EAAE,4CAA4C;QAE/D,MAAM;QACN,aAAa,EAAE,4CAA4C;QAC3D,MAAM,EAAE,4CAA4C;QACpD,4BAA4B,EAAE,4CAA4C;QAC1E,wBAAwB,EAAE,4CAA4C;QACtE,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,4CAA4C;QAErD,aAAa;QACb,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAE,4CAA4C;QACrD,aAAa,EAAE,4CAA4C;QAC3D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;KACjE;CACF,CAAA;AAID;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,OAAgB,EAAE,YAAwB;IAC3E,MAAM,iBAAiB,GAAG,iBAAS,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,gBAAgB,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -28,6 +28,8 @@ export type ContractAddresses = {
28
28
  StableTokenBRL?: string;
29
29
  StableTokenXOF?: string;
30
30
  Router?: string;
31
+ ReserveLiquidityStrategy?: string;
32
+ CDPLiquidityStrategy?: string;
31
33
  };
32
34
  /**
33
35
  * Map of chain IDs to their contract addresses.
@@ -1 +1 @@
1
- {"version":3,"file":"contractAddresses.d.ts","sourceRoot":"","sources":["../../../src/core/types/contractAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;KAC9B,GAAG,IAAI,OAAO,GAAG,iBAAiB;CACpC,CAAA"}
1
+ {"version":3,"file":"contractAddresses.d.ts","sourceRoot":"","sources":["../../../src/core/types/contractAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;KAC9B,GAAG,IAAI,OAAO,GAAG,iBAAiB;CACpC,CAAA"}
@@ -1,6 +1,8 @@
1
1
  export * from './contractAddresses';
2
- export * from './provider';
2
+ export * from './transaction';
3
3
  export * from './token';
4
4
  export * from './route';
5
5
  export * from './pool';
6
+ export * from './tradingMode';
7
+ export * from './tradingLimits';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA"}
@@ -15,8 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./contractAddresses"), exports);
18
- __exportStar(require("./provider"), exports);
18
+ __exportStar(require("./transaction"), exports);
19
19
  __exportStar(require("./token"), exports);
20
20
  __exportStar(require("./route"), exports);
21
21
  __exportStar(require("./pool"), exports);
22
+ __exportStar(require("./tradingMode"), exports);
23
+ __exportStar(require("./tradingLimits"), exports);
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,6CAA0B;AAC1B,0CAAuB;AACvB,0CAAuB;AACvB,yCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,gDAA6B;AAC7B,0CAAuB;AACvB,0CAAuB;AACvB,yCAAsB;AACtB,gDAA6B;AAC7B,kDAA+B"}
@@ -31,5 +31,115 @@ export interface Pool {
31
31
  * The type of pool (FPMM or Virtual)
32
32
  */
33
33
  poolType: `${PoolType}`;
34
+ /**
35
+ * The exchange ID from BiPoolManager (Virtual pools only).
36
+ */
37
+ exchangeId?: string;
38
+ }
39
+ /**
40
+ * Pricing and oracle data for an FPMM pool
41
+ */
42
+ export interface FPMMPricing {
43
+ /** Raw oracle price numerator from contract */
44
+ oraclePriceNum: bigint;
45
+ /** Raw oracle price denominator from contract */
46
+ oraclePriceDen: bigint;
47
+ /** Oracle price as a decimal number (num / den) */
48
+ oraclePrice: number;
49
+ /** Raw reserve/pool price numerator from contract */
50
+ reservePriceNum: bigint;
51
+ /** Raw reserve/pool price denominator from contract */
52
+ reservePriceDen: bigint;
53
+ /** Reserve/pool price as a decimal number (num / den) */
54
+ reservePrice: number;
55
+ /** Price difference in basis points (raw from contract) */
56
+ priceDifferenceBps: bigint;
57
+ /** Price difference as a percentage (bps / 100, e.g. 12 bps → 0.12%) */
58
+ priceDifferencePercent: number;
59
+ /** Whether the reserve/pool price is above the oracle price */
60
+ reservePriceAboveOraclePrice: boolean;
34
61
  }
62
+ /**
63
+ * Fee configuration for an FPMM pool
64
+ */
65
+ export interface FPMMFees {
66
+ /** LP fee in basis points (raw) */
67
+ lpFeeBps: bigint;
68
+ /** LP fee as a percentage (e.g. 0.25 = 0.25%) */
69
+ lpFeePercent: number;
70
+ /** Protocol fee in basis points (raw) */
71
+ protocolFeeBps: bigint;
72
+ /** Protocol fee as a percentage */
73
+ protocolFeePercent: number;
74
+ /** Total fee (lpFee + protocolFee) as a percentage */
75
+ totalFeePercent: number;
76
+ }
77
+ /**
78
+ * Rebalancing state and configuration for an FPMM pool
79
+ */
80
+ export interface FPMMRebalancing {
81
+ /** Rebalance incentive in basis points (raw) */
82
+ rebalanceIncentiveBps: bigint;
83
+ /** Rebalance incentive as a percentage */
84
+ rebalanceIncentivePercent: number;
85
+ /** Threshold above oracle price in basis points (raw) */
86
+ rebalanceThresholdAboveBps: bigint;
87
+ /** Threshold above as a percentage */
88
+ rebalanceThresholdAbovePercent: number;
89
+ /** Threshold below oracle price in basis points (raw) */
90
+ rebalanceThresholdBelowBps: bigint;
91
+ /** Threshold below as a percentage */
92
+ rebalanceThresholdBelowPercent: number;
93
+ /** Whether the current price is within rebalancing thresholds */
94
+ inBand: boolean;
95
+ /** The active liquidity strategy address for this pool, or null if none */
96
+ liquidityStrategy: string | null;
97
+ }
98
+ /**
99
+ * Enriched details for an FPMM pool including pricing, fees, and rebalancing state
100
+ */
101
+ export interface FPMMPoolDetails extends Pool {
102
+ poolType: 'FPMM';
103
+ /** Scaling factor for token0 (10^tokenDecimals) */
104
+ decimals0: bigint;
105
+ /** Scaling factor for token1 (10^tokenDecimals) */
106
+ decimals1: bigint;
107
+ /** Reserve of token0 (raw) */
108
+ reserve0: bigint;
109
+ /** Reserve of token1 (raw) */
110
+ reserve1: bigint;
111
+ /** Block timestamp of last reserve update */
112
+ blockTimestampLast: bigint;
113
+ /** Pricing and oracle data */
114
+ pricing: FPMMPricing;
115
+ /** Fee configuration */
116
+ fees: FPMMFees;
117
+ /** Rebalancing state */
118
+ rebalancing: FPMMRebalancing;
119
+ }
120
+ /**
121
+ * Enriched details for a Virtual pool including reserves and spread
122
+ */
123
+ export interface VirtualPoolDetails extends Pool {
124
+ poolType: 'Virtual';
125
+ /** Scaling factor for token0 (10^tokenDecimals) */
126
+ decimals0: bigint;
127
+ /** Scaling factor for token1 (10^tokenDecimals) */
128
+ decimals1: bigint;
129
+ /** Reserve (bucket) of token0 (raw) */
130
+ reserve0: bigint;
131
+ /** Reserve (bucket) of token1 (raw) */
132
+ reserve1: bigint;
133
+ /** Block timestamp of last reserve update */
134
+ blockTimestampLast: bigint;
135
+ /** Spread/fee in basis points (raw) */
136
+ spreadBps: bigint;
137
+ /** Spread as a percentage (e.g. 0.5 = 0.5%) */
138
+ spreadPercent: number;
139
+ }
140
+ /**
141
+ * Discriminated union of enriched pool details.
142
+ * Use `poolType` to narrow the type.
143
+ */
144
+ export type PoolDetails = FPMMPoolDetails | VirtualPoolDetails;
35
145
  //# sourceMappingURL=pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/core/types/pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,gEAAgE;IAChE,IAAI,SAAS;IACb,gEAAgE;IAChE,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAA;CACxB"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/core/types/pool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/types/provider.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;CACd"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/types/provider.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;CACd"}
@@ -1,4 +1,3 @@
1
1
  "use strict";
2
- // TODO: Review and rename this file to something more descriptive
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/core/types/provider.ts"],"names":[],"mappings":";AAAA,kEAAkE"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/core/types/provider.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { Pool } from './pool';
2
- import { Token } from './token';
2
+ import { RouteToken } from './token';
3
3
  /**
4
4
  * Route identifier: sorted symbols joined with hyphen
5
5
  * Represents the two endpoint tokens regardless of the path taken
@@ -11,7 +11,7 @@ export type RouteID = `${string}-${string}`;
11
11
  export interface Route {
12
12
  /**
13
13
  * Canonical identifier: sorted symbols joined with hyphen
14
- * Always uses alphabetical order (e.g., 'cEUR-cUSD' not 'cUSD-cEUR')
14
+ * Always uses alphabetical order (e.g., 'EURm-USDm' not 'USDm-EURm')
15
15
  * Ensures consistent identification regardless of query direction
16
16
  */
17
17
  id: RouteID;
@@ -19,7 +19,7 @@ export interface Route {
19
19
  * The two tokens being traded, in alphabetical order by symbol
20
20
  * Always [symbolA, symbolB] where symbolA < symbolB alphabetically
21
21
  */
22
- tokens: [Token, Token];
22
+ tokens: [RouteToken, RouteToken];
23
23
  /**
24
24
  * Array of exchange hops needed to execute the trade
25
25
  * Length 1: Direct route (single pool)
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/types/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;;;OAIG;IACH,EAAE,EAAE,OAAO,CAAA;IAEX;;;OAGG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAEtB;;;;;OAKG;IACH,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C;;;OAGG;IACH,QAAQ,EAAE;QACR;;;;WAIG;QACH,gBAAgB,EAAE,MAAM,CAAA;QAExB;;;WAGG;QACH,IAAI,EAAE,KAAK,CAAC;YACV;;eAEG;YACH,WAAW,EAAE,MAAM,CAAA;YAEnB;;eAEG;YACH,WAAW,EAAE,MAAM,CAAA;SACpB,CAAC,CAAA;KACH,CAAA;CACF"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/core/types/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;;;OAIG;IACH,EAAE,EAAE,OAAO,CAAA;IAEX;;;OAGG;IACH,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAEhC;;;;;OAKG;IACH,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C;;;OAGG;IACH,QAAQ,EAAE;QACR;;;;WAIG;QACH,gBAAgB,EAAE,MAAM,CAAA;QAExB;;;WAGG;QACH,IAAI,EAAE,KAAK,CAAC;YACV;;eAEG;YACH,WAAW,EAAE,MAAM,CAAA;YAEnB;;eAEG;YACH,WAAW,EAAE,MAAM,CAAA;SACpB,CAAC,CAAA;KACH,CAAA;CACF"}
@@ -1,9 +1,19 @@
1
1
  import { ISupplyCalculator } from '../../services';
2
- export interface Token {
2
+ /**
3
+ * Minimal token info for routing purposes.
4
+ * Contains only the fields needed to identify and route between tokens.
5
+ */
6
+ export interface RouteToken {
3
7
  address: string;
4
8
  symbol: string;
5
- name?: string;
6
- decimals?: number;
9
+ }
10
+ /**
11
+ * Full token info for consumer-facing operations.
12
+ * Extends RouteToken with display and transaction fields.
13
+ */
14
+ export interface Token extends RouteToken {
15
+ name: string;
16
+ decimals: number;
7
17
  }
8
18
  export interface StableToken extends Token {
9
19
  totalSupply: string;
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/core/types/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,CAAA;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAAA;CACnD"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/core/types/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,KAAM,SAAQ,UAAU;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,CAAA;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAAA;CACnD"}