@mento-protocol/mento-sdk 3.0.0-beta.4 → 3.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/routes.d.ts.map +1 -1
- package/dist/cache/routes.js +2 -3
- package/dist/cache/routes.js.map +1 -1
- package/dist/cache/tokens.js +5 -5
- package/dist/cache/tokens.js.map +1 -1
- package/dist/core/abis/breakerbox.d.ts +13 -0
- package/dist/core/abis/breakerbox.d.ts.map +1 -0
- package/dist/core/abis/breakerbox.js +8 -0
- package/dist/core/abis/breakerbox.js.map +1 -0
- package/dist/core/abis/fpmm.d.ts +8 -0
- package/dist/core/abis/fpmm.d.ts.map +1 -1
- package/dist/core/abis/fpmm.js +1 -0
- package/dist/core/abis/fpmm.js.map +1 -1
- package/dist/core/abis/index.d.ts +1 -0
- package/dist/core/abis/index.d.ts.map +1 -1
- package/dist/core/abis/index.js +1 -0
- package/dist/core/abis/index.js.map +1 -1
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +1 -0
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/tradingMode.d.ts +24 -0
- package/dist/core/types/tradingMode.d.ts.map +1 -0
- package/dist/core/types/tradingMode.js +31 -0
- package/dist/core/types/tradingMode.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/quotes/QuoteService.d.ts.map +1 -1
- package/dist/services/quotes/QuoteService.js +1 -0
- package/dist/services/quotes/QuoteService.js.map +1 -1
- package/dist/services/swap/SwapService.d.ts.map +1 -1
- package/dist/services/swap/SwapService.js +3 -0
- package/dist/services/swap/SwapService.js.map +1 -1
- package/dist/services/trading/TradingService.d.ts +76 -0
- package/dist/services/trading/TradingService.d.ts.map +1 -0
- package/dist/services/trading/TradingService.js +110 -0
- package/dist/services/trading/TradingService.js.map +1 -0
- package/dist/services/trading/index.d.ts +2 -0
- package/dist/services/trading/index.d.ts.map +1 -0
- package/dist/services/trading/index.js +18 -0
- package/dist/services/trading/index.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/rateFeed.d.ts +18 -0
- package/dist/utils/rateFeed.d.ts.map +1 -0
- package/dist/utils/rateFeed.js +27 -0
- package/dist/utils/rateFeed.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/cache/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/cache/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CA4GxD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAEhE"}
|
package/dist/cache/routes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// This file is auto-generated. Do not edit manually.
|
|
3
|
-
// Generated on 2025-12-
|
|
3
|
+
// Generated on 2025-12-18T14:21:57.284Z
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.cachedRoutes = void 0;
|
|
6
6
|
exports.getCachedRoutes = getCachedRoutes;
|
|
@@ -9,6 +9,7 @@ exports.getCachedRoutes = getCachedRoutes;
|
|
|
9
9
|
* Routes that don't exist for a chain will return an empty array
|
|
10
10
|
*/
|
|
11
11
|
exports.cachedRoutes = {
|
|
12
|
+
// Chain 42220
|
|
12
13
|
42220: [
|
|
13
14
|
{
|
|
14
15
|
"id": "KESm-USDm",
|
|
@@ -115,8 +116,6 @@ exports.cachedRoutes = {
|
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
],
|
|
118
|
-
// Celo Sepolia testnet - no routes cached yet
|
|
119
|
-
11142220: []
|
|
120
119
|
};
|
|
121
120
|
/**
|
|
122
121
|
* Get cached routes for a specific chain
|
package/dist/cache/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/cache/routes.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,wCAAwC;;;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/cache/routes.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,wCAAwC;;;AA2HxC,0CAEC;AAzHD;;;GAGG;AACU,QAAA,YAAY,GAAoC;IAC3D,cAAc;IACd,KAAK,EAAE;QACL;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;gBACR;oBACE,SAAS,EAAE,4CAA4C;oBACvD,QAAQ,EAAE,MAAM;iBACjB;gBACD;oBACE,SAAS,EAAE,4CAA4C;oBACvD,QAAQ,EAAE,MAAM;iBACjB;aACF;YACD,MAAM,EAAE;gBACN;oBACE,aAAa,EAAE,4CAA4C;oBAC3D,UAAU,EAAE,4CAA4C;oBACxD,QAAQ,EAAE,4CAA4C;oBACtD,QAAQ,EAAE,4CAA4C;oBACtD,UAAU,EAAE,MAAM;iBACnB;aACF;YACD,UAAU,EAAE;gBACV,kBAAkB,EAAE,GAAG;gBACvB,MAAM,EAAE;oBACN;wBACE,aAAa,EAAE,4CAA4C;wBAC3D,aAAa,EAAE,GAAG;qBACnB;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;gBACR;oBACE,SAAS,EAAE,4CAA4C;oBACvD,QAAQ,EAAE,MAAM;iBACjB;gBACD;oBACE,SAAS,EAAE,4CAA4C;oBACvD,QAAQ,EAAE,MAAM;iBACjB;aACF;YACD,MAAM,EAAE;gBACN;oBACE,aAAa,EAAE,4CAA4C;oBAC3D,UAAU,EAAE,4CAA4C;oBACxD,QAAQ,EAAE,4CAA4C;oBACtD,QAAQ,EAAE,4CAA4C;oBACtD,UAAU,EAAE,SAAS;iBACtB;aACF;YACD,UAAU,EAAE;gBACV,kBAAkB,EAAE,CAAC;gBACrB,MAAM,EAAE;oBACN;wBACE,aAAa,EAAE,4CAA4C;wBAC3D,aAAa,EAAE,CAAC;qBACjB;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;gBACR;oBACE,SAAS,EAAE,4CAA4C;oBACvD,QAAQ,EAAE,MAAM;iBACjB;gBACD;oBACE,SAAS,EAAE,4CAA4C;oBACvD,QAAQ,EAAE,MAAM;iBACjB;aACF;YACD,MAAM,EAAE;gBACN;oBACE,aAAa,EAAE,4CAA4C;oBAC3D,UAAU,EAAE,4CAA4C;oBACxD,QAAQ,EAAE,4CAA4C;oBACtD,QAAQ,EAAE,4CAA4C;oBACtD,UAAU,EAAE,MAAM;iBACnB;gBACD;oBACE,aAAa,EAAE,4CAA4C;oBAC3D,UAAU,EAAE,4CAA4C;oBACxD,QAAQ,EAAE,4CAA4C;oBACtD,QAAQ,EAAE,4CAA4C;oBACtD,UAAU,EAAE,SAAS;iBACtB;aACF;YACD,UAAU,EAAE;gBACV,kBAAkB,EAAE,KAAK;gBACzB,MAAM,EAAE;oBACN;wBACE,aAAa,EAAE,4CAA4C;wBAC3D,aAAa,EAAE,GAAG;qBACnB;oBACD;wBACE,aAAa,EAAE,4CAA4C;wBAC3D,aAAa,EAAE,CAAC;qBACjB;iBACF;aACF;SACF;KACF;CACF,CAAA;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,oBAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC"}
|
package/dist/cache/tokens.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// This file is auto-generated. Do not edit manually.
|
|
3
|
-
// Generated on 2025-12-
|
|
3
|
+
// Generated on 2025-12-18T14:22:08.063Z
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.TOKEN_ADDRESSES_BY_CHAIN = exports.cachedTokens = exports.TokenSymbol = void 0;
|
|
6
6
|
exports.getCachedTokens = getCachedTokens;
|
|
@@ -37,7 +37,7 @@ var TokenSymbol;
|
|
|
37
37
|
* Cached tokens indexed by chain ID
|
|
38
38
|
*/
|
|
39
39
|
exports.cachedTokens = {
|
|
40
|
-
//
|
|
40
|
+
// Chain 42220
|
|
41
41
|
42220: [
|
|
42
42
|
{
|
|
43
43
|
address: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
|
|
@@ -158,9 +158,9 @@ exports.cachedTokens = {
|
|
|
158
158
|
symbol: TokenSymbol.USD_,
|
|
159
159
|
name: 'Tether USD',
|
|
160
160
|
decimals: 6,
|
|
161
|
-
}
|
|
161
|
+
}
|
|
162
162
|
],
|
|
163
|
-
//
|
|
163
|
+
// Chain 11142220
|
|
164
164
|
11142220: [
|
|
165
165
|
{
|
|
166
166
|
address: '0xdE9e4C3ce781b4bA68120d6261cbad65ce0aB00b',
|
|
@@ -281,7 +281,7 @@ exports.cachedTokens = {
|
|
|
281
281
|
symbol: TokenSymbol.USDC,
|
|
282
282
|
name: 'USDC',
|
|
283
283
|
decimals: 6,
|
|
284
|
-
}
|
|
284
|
+
}
|
|
285
285
|
],
|
|
286
286
|
};
|
|
287
287
|
/**
|
package/dist/cache/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/cache/tokens.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,wCAAwC;;;AAoVxC,0CAEC;AAQD,kDAMC;AAQD,0CAKC;AAQD,8CAOC;AA5XD;;GAEG;AACH,IAAY,WAqBX;AArBD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,iCAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;AACrB,CAAC,EArBW,WAAW,2BAAX,WAAW,QAqBtB;AAED;;GAEG;AACU,QAAA,YAAY,GAAqC;IAC5D,
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/cache/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const BREAKERBOX_ABI: readonly [{
|
|
2
|
+
readonly name: "getRateFeedTradingMode";
|
|
3
|
+
readonly type: "function";
|
|
4
|
+
readonly stateMutability: "view";
|
|
5
|
+
readonly inputs: readonly [{
|
|
6
|
+
readonly type: "address";
|
|
7
|
+
readonly name: "rateFeedID";
|
|
8
|
+
}];
|
|
9
|
+
readonly outputs: readonly [{
|
|
10
|
+
readonly type: "uint8";
|
|
11
|
+
}];
|
|
12
|
+
}];
|
|
13
|
+
//# sourceMappingURL=breakerbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breakerbox.d.ts","sourceRoot":"","sources":["../../../src/core/abis/breakerbox.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;EAEzB,CAAA"}
|
|
@@ -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"}
|
package/dist/core/abis/fpmm.d.ts
CHANGED
|
@@ -30,5 +30,13 @@ 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
|
+
}];
|
|
33
41
|
}];
|
|
34
42
|
//# 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
|
|
1
|
+
{"version":3,"file":"fpmm.d.ts","sourceRoot":"","sources":["../../../src/core/abis/fpmm.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnB,CAAA"}
|
package/dist/core/abis/fpmm.js
CHANGED
|
@@ -7,5 +7,6 @@ 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)',
|
|
10
11
|
]);
|
|
11
12
|
//# 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;
|
|
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;CACxD,CAAC,CAAA"}
|
|
@@ -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,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
|
package/dist/core/abis/index.js
CHANGED
|
@@ -23,4 +23,5 @@ __exportStar(require("./fpmmFactory"), exports);
|
|
|
23
23
|
__exportStar(require("./fpmm"), exports);
|
|
24
24
|
__exportStar(require("./virtualPoolFactory"), exports);
|
|
25
25
|
__exportStar(require("./router"), exports);
|
|
26
|
+
__exportStar(require("./breakerbox"), exports);
|
|
26
27
|
//# 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,2CAAwB;AACxB,+CAA4B"}
|
|
@@ -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,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA"}
|
package/dist/core/types/index.js
CHANGED
|
@@ -19,4 +19,5 @@ __exportStar(require("./provider"), exports);
|
|
|
19
19
|
__exportStar(require("./token"), exports);
|
|
20
20
|
__exportStar(require("./route"), exports);
|
|
21
21
|
__exportStar(require("./pool"), exports);
|
|
22
|
+
__exportStar(require("./tradingMode"), exports);
|
|
22
23
|
//# 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,6CAA0B;AAC1B,0CAAuB;AACvB,0CAAuB;AACvB,yCAAsB;AACtB,gDAA6B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trading modes for rate feeds in the BreakerBox circuit breaker.
|
|
3
|
+
*
|
|
4
|
+
* The BreakerBox uses a bitmask approach where multiple breakers can
|
|
5
|
+
* contribute to the final trading mode. In practice:
|
|
6
|
+
* - 0 = Bidirectional (trading enabled)
|
|
7
|
+
* - Any non-zero value = Trading suspended
|
|
8
|
+
*
|
|
9
|
+
* For SDK consumers, use isTradingEnabled() helper to check if trading
|
|
10
|
+
* is allowed.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum TradingMode {
|
|
13
|
+
/** Bidirectional trading is enabled (normal operation) */
|
|
14
|
+
BIDIRECTIONAL = 0,
|
|
15
|
+
/** Trading is suspended (circuit breaker tripped) - any non-zero value */
|
|
16
|
+
SUSPENDED = 1
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if trading is enabled for a given trading mode.
|
|
20
|
+
* @param mode - The trading mode value from BreakerBox
|
|
21
|
+
* @returns true if trading is enabled (mode === 0)
|
|
22
|
+
*/
|
|
23
|
+
export declare function isTradingEnabled(mode: number): boolean;
|
|
24
|
+
//# sourceMappingURL=tradingMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tradingMode.d.ts","sourceRoot":"","sources":["../../../src/core/types/tradingMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,oBAAY,WAAW;IACrB,0DAA0D;IAC1D,aAAa,IAAI;IACjB,0EAA0E;IAC1E,SAAS,IAAI;CACd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TradingMode = void 0;
|
|
4
|
+
exports.isTradingEnabled = isTradingEnabled;
|
|
5
|
+
/**
|
|
6
|
+
* Trading modes for rate feeds in the BreakerBox circuit breaker.
|
|
7
|
+
*
|
|
8
|
+
* The BreakerBox uses a bitmask approach where multiple breakers can
|
|
9
|
+
* contribute to the final trading mode. In practice:
|
|
10
|
+
* - 0 = Bidirectional (trading enabled)
|
|
11
|
+
* - Any non-zero value = Trading suspended
|
|
12
|
+
*
|
|
13
|
+
* For SDK consumers, use isTradingEnabled() helper to check if trading
|
|
14
|
+
* is allowed.
|
|
15
|
+
*/
|
|
16
|
+
var TradingMode;
|
|
17
|
+
(function (TradingMode) {
|
|
18
|
+
/** Bidirectional trading is enabled (normal operation) */
|
|
19
|
+
TradingMode[TradingMode["BIDIRECTIONAL"] = 0] = "BIDIRECTIONAL";
|
|
20
|
+
/** Trading is suspended (circuit breaker tripped) - any non-zero value */
|
|
21
|
+
TradingMode[TradingMode["SUSPENDED"] = 1] = "SUSPENDED";
|
|
22
|
+
})(TradingMode || (exports.TradingMode = TradingMode = {}));
|
|
23
|
+
/**
|
|
24
|
+
* Check if trading is enabled for a given trading mode.
|
|
25
|
+
* @param mode - The trading mode value from BreakerBox
|
|
26
|
+
* @returns true if trading is enabled (mode === 0)
|
|
27
|
+
*/
|
|
28
|
+
function isTradingEnabled(mode) {
|
|
29
|
+
return mode === TradingMode.BIDIRECTIONAL;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=tradingMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tradingMode.js","sourceRoot":"","sources":["../../../src/core/types/tradingMode.ts"],"names":[],"mappings":";;;AAuBA,4CAEC;AAzBD;;;;;;;;;;GAUG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,0DAA0D;IAC1D,+DAAiB,CAAA;IACjB,0EAA0E;IAC1E,uDAAa,CAAA;AACf,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,KAAK,WAAW,CAAC,aAAa,CAAA;AAC3C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PoolService } from './services/pools';
|
|
|
4
4
|
import { RouteService } from './services/routes';
|
|
5
5
|
import { QuoteService } from './services/quotes';
|
|
6
6
|
import { SwapService } from './services/swap';
|
|
7
|
+
import { TradingService } from './services/trading';
|
|
7
8
|
/**
|
|
8
9
|
* @class Mento
|
|
9
10
|
* @description The main class for the Mento SDK. Initializes a viem PublicClient internally
|
|
@@ -30,6 +31,9 @@ import { SwapService } from './services/swap';
|
|
|
30
31
|
*
|
|
31
32
|
* // Build swap parameters
|
|
32
33
|
* const swapDetails = await mento.swap.buildSwapParams(cUSD, CELO, amountIn, { slippageTolerance: 0.5 });
|
|
34
|
+
*
|
|
35
|
+
* // Check if a pair is tradable (circuit breaker check)
|
|
36
|
+
* const isTradable = await mento.trading.isPairTradable(cUSD, CELO);
|
|
33
37
|
*/
|
|
34
38
|
export declare class Mento {
|
|
35
39
|
private chainId;
|
|
@@ -38,6 +42,7 @@ export declare class Mento {
|
|
|
38
42
|
routes: RouteService;
|
|
39
43
|
quotes: QuoteService;
|
|
40
44
|
swap: SwapService;
|
|
45
|
+
trading: TradingService;
|
|
41
46
|
private constructor();
|
|
42
47
|
/**
|
|
43
48
|
* Create a new Mento SDK instance
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;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;IAPhC,OAAO;IAUP;;;;;OAKG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAqB5E;;;;OAIG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,MAAM;CAGzE;AAED,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const pools_1 = require("./services/pools");
|
|
|
23
23
|
const routes_1 = require("./services/routes");
|
|
24
24
|
const quotes_1 = require("./services/quotes");
|
|
25
25
|
const swap_1 = require("./services/swap");
|
|
26
|
+
const trading_1 = require("./services/trading");
|
|
26
27
|
/**
|
|
27
28
|
* @class Mento
|
|
28
29
|
* @description The main class for the Mento SDK. Initializes a viem PublicClient internally
|
|
@@ -49,15 +50,19 @@ const swap_1 = require("./services/swap");
|
|
|
49
50
|
*
|
|
50
51
|
* // Build swap parameters
|
|
51
52
|
* const swapDetails = await mento.swap.buildSwapParams(cUSD, CELO, amountIn, { slippageTolerance: 0.5 });
|
|
53
|
+
*
|
|
54
|
+
* // Check if a pair is tradable (circuit breaker check)
|
|
55
|
+
* const isTradable = await mento.trading.isPairTradable(cUSD, CELO);
|
|
52
56
|
*/
|
|
53
57
|
class Mento {
|
|
54
|
-
constructor(chainId, tokens, pools, routes, quotes, swap) {
|
|
58
|
+
constructor(chainId, tokens, pools, routes, quotes, swap, trading) {
|
|
55
59
|
this.chainId = chainId;
|
|
56
60
|
this.tokens = tokens;
|
|
57
61
|
this.pools = pools;
|
|
58
62
|
this.routes = routes;
|
|
59
63
|
this.quotes = quotes;
|
|
60
64
|
this.swap = swap;
|
|
65
|
+
this.trading = trading;
|
|
61
66
|
}
|
|
62
67
|
/**
|
|
63
68
|
* Create a new Mento SDK instance
|
|
@@ -78,8 +83,9 @@ class Mento {
|
|
|
78
83
|
const routeService = new routes_1.RouteService(publicClient, chainId, poolService);
|
|
79
84
|
const quoteService = new quotes_1.QuoteService(publicClient, chainId, routeService);
|
|
80
85
|
const swapService = new swap_1.SwapService(publicClient, chainId, routeService, quoteService);
|
|
86
|
+
const tradingService = new trading_1.TradingService(publicClient, chainId, routeService);
|
|
81
87
|
// Return new mento
|
|
82
|
-
return new Mento(chainId, tokenService, poolService, routeService, quoteService, swapService);
|
|
88
|
+
return new Mento(chainId, tokenService, poolService, routeService, quoteService, swapService, tradingService);
|
|
83
89
|
}
|
|
84
90
|
/**
|
|
85
91
|
* Get the address of a contract for the current chain
|
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;
|
|
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;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,KAAK;IAChB,YACU,OAAe,EAChB,MAAoB,EACpB,KAAkB,EAClB,MAAoB,EACpB,MAAoB,EACpB,IAAiB,EACjB,OAAuB;QANtB,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;IAC7B,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;QAE9E,mBAAmB;QACnB,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;IAC/G,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,YAAqC;QAC7D,OAAO,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;CACF;AA9CD,sBA8CC;AAED,mDAAgC;AAChC,+CAA4B;AAC5B,8CAA2B;AAC3B,6CAA0B;AAC1B,0CAAuB"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
|
package/dist/services/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAgD;AAChD,kDAA+B;AAC/B,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,yCAAsB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAgD;AAChD,kDAA+B;AAC/B,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,yCAAsB;AACtB,4CAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuoteService.d.ts","sourceRoot":"","sources":["../../../src/services/quotes/QuoteService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAKxC;;;GAGG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;gBAFZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"QuoteService.d.ts","sourceRoot":"","sources":["../../../src/services/quotes/QuoteService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAKxC;;;GAGG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;gBAFZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY;IAIpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;CAmB1G"}
|
|
@@ -14,6 +14,7 @@ class QuoteService {
|
|
|
14
14
|
this.chainId = chainId;
|
|
15
15
|
this.routeService = routeService;
|
|
16
16
|
}
|
|
17
|
+
// TODO: Go through codebase and update token/symbol/name references to the old ones.
|
|
17
18
|
/**
|
|
18
19
|
* Calculates the expected output amount for a swap between two tokens.
|
|
19
20
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuoteService.js","sourceRoot":"","sources":["../../../src/services/quotes/QuoteService.ts"],"names":[],"mappings":";;;AAGA,0CAA4C;AAC5C,oDAAkE;AAClE,yDAAyD;AAEzD;;;GAGG;AACH,MAAa,YAAY;IACvB,YACU,YAA0B,EAC1B,OAAe,EACf,YAA0B;QAF1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,QAAiB,EAAE,QAAgB,EAAE,KAAa;QACrF,wEAAwE;QACxE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC9D,CAAC;QAED,yDAAyD;QACzD,MAAM,YAAY,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;QAE3E,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACpD,OAAO,EAAE,aAA8B;YACvC,GAAG,EAAE,iBAAU;YACf,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC/B,CAAC,CAAa,CAAA;QAEf,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"QuoteService.js","sourceRoot":"","sources":["../../../src/services/quotes/QuoteService.ts"],"names":[],"mappings":";;;AAGA,0CAA4C;AAC5C,oDAAkE;AAClE,yDAAyD;AAEzD;;;GAGG;AACH,MAAa,YAAY;IACvB,YACU,YAA0B,EAC1B,OAAe,EACf,YAA0B;QAF1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,qFAAqF;IACrF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,QAAiB,EAAE,QAAgB,EAAE,KAAa;QACrF,wEAAwE;QACxE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC9D,CAAC;QAED,yDAAyD;QACzD,MAAM,YAAY,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;QAE3E,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACpD,OAAO,EAAE,aAA8B;YACvC,GAAG,EAAE,iBAAU;YACf,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC/B,CAAC,CAAa,CAAA;QAEf,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;CACF;AArDD,oCAqDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwapService.d.ts","sourceRoot":"","sources":["../../../src/services/swap/SwapService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAsB,MAAM,MAAM,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGpD,OAAO,EAAmB,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAA;IACZ;;OAEG;IACH,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;CAClB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;gBAHZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"SwapService.d.ts","sourceRoot":"","sources":["../../../src/services/swap/SwapService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAsB,MAAM,MAAM,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGpD,OAAO,EAAmB,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAA;IACZ;;OAEG;IACH,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;CAClB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;gBAHZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,eAAe,CAAC;IAe3B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,WAAW,EACpB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,WAAW,CAAC;IA+BvB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;YACW,YAAY;IAU1B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACH,OAAO,CAAC,cAAc;CAavB"}
|
|
@@ -57,6 +57,9 @@ class SwapService {
|
|
|
57
57
|
const approval = currentAllowance < amountIn ? this.buildApprovalParams(tokenIn, amountIn) : null;
|
|
58
58
|
return { approval, swap };
|
|
59
59
|
}
|
|
60
|
+
// TODO: Do not use viem.Address on public interface functions.
|
|
61
|
+
// Instead use a string and validate it is a valid address.
|
|
62
|
+
// This prevents consumers from having to do any weird casting or importing viem.address
|
|
60
63
|
/**
|
|
61
64
|
* Builds swap transaction parameters without executing the transaction.
|
|
62
65
|
* Does NOT check or handle token approval - use buildSwapTransaction for that.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwapService.js","sourceRoot":"","sources":["../../../src/services/swap/SwapService.ts"],"names":[],"mappings":";;;AAAA,+BAAgE;AAIhE,0CAAuD;AACvD,oDAAkE;AAClE,yDAAsE;AAiEtE;;;GAGG;AACH,MAAa,WAAW;IACtB,YACU,YAA0B,EAC1B,OAAe,EACf,YAA0B,EAC1B,YAA0B;QAH1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,SAAkB,EAClB,KAAc,EACd,OAAoB,EACpB,KAAa;QAEb,0BAA0B;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAE/F,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEjG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,eAAe,CACnB,OAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,SAAkB,EAClB,OAAoB,EACpB,KAAa;QAEb,6BAA6B;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClG,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAE7F,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QAEpF,MAAM,YAAY,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAE3F,OAAO;YACL,MAAM,EAAE;gBACN,EAAE,EAAE,aAAa;gBACjB,IAAI;gBACJ,KAAK,EAAE,GAAG;aACX;YACD,KAAK;YACL,YAAY;YACZ,QAAQ;YACR,YAAY;YACZ,iBAAiB;YACjB,QAAQ;SACT,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,OAAgB,EAAE,MAAc;QAC1D,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAG,IAAA,yBAAkB,EAAC;YAC9B,GAAG,EAAE,gBAAS;YACd,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;SAC9B,CAAC,CAAA;QACF,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,KAAc;QACzD,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACpC,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,gBAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC;SAC7B,CAAoB,CAAA;IACvB,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,SAAiB,EAAE,iBAAyB;QACxE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAA;QAC/D,MAAM,kBAAkB,GAAG,MAAM,GAAG,WAAW,CAAA;QAC/C,OAAO,CAAC,SAAS,GAAG,kBAAkB,CAAC,GAAG,MAAM,CAAA;IAClD,CAAC;IAED;;;OAGG;IACK,cAAc,CACpB,QAAgB,EAChB,YAAoB,EACpB,MAAqB,EACrB,SAAkB,EAClB,QAAgB;QAEhB,OAAO,IAAA,yBAAkB,EAAC;YACxB,GAAG,EAAE,iBAAU;YACf,YAAY,EAAE,0BAA0B;YACxC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"SwapService.js","sourceRoot":"","sources":["../../../src/services/swap/SwapService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { Route } from '../../core/types';
|
|
3
|
+
import { RouteService } from '../routes';
|
|
4
|
+
/**
|
|
5
|
+
* Service for checking trading status and circuit breaker state in the Mento protocol.
|
|
6
|
+
* Provides methods to query whether trading is enabled for specific rate feeds,
|
|
7
|
+
* token pairs, or routes.
|
|
8
|
+
*/
|
|
9
|
+
export declare class TradingService {
|
|
10
|
+
private publicClient;
|
|
11
|
+
private chainId;
|
|
12
|
+
private routeService;
|
|
13
|
+
constructor(publicClient: PublicClient, chainId: number, routeService: RouteService);
|
|
14
|
+
/**
|
|
15
|
+
* Returns the current trading mode for a given rate feed.
|
|
16
|
+
*
|
|
17
|
+
* The BreakerBox uses a bitmask approach where 0 means bidirectional trading
|
|
18
|
+
* is enabled, and any non-zero value means trading is suspended.
|
|
19
|
+
*
|
|
20
|
+
* @param rateFeedId - The address of the rate feed
|
|
21
|
+
* @returns The raw trading mode value from BreakerBox (0 = enabled, non-zero = suspended)
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const mode = await tradingService.getRateFeedTradingMode(rateFeedId)
|
|
26
|
+
* if (mode === TradingMode.BIDIRECTIONAL) {
|
|
27
|
+
* console.log('Trading is enabled')
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
getRateFeedTradingMode(rateFeedId: string): Promise<number>;
|
|
32
|
+
/**
|
|
33
|
+
* Checks if a trading pair is currently tradable.
|
|
34
|
+
* For multi-hop routes (e.g., CELO → USDm → USDT), checks that ALL
|
|
35
|
+
* intermediate rate feeds are in BIDIRECTIONAL mode.
|
|
36
|
+
*
|
|
37
|
+
* @param tokenIn - Input token address
|
|
38
|
+
* @param tokenOut - Output token address
|
|
39
|
+
* @returns true if the pair is tradable (all rate feeds BIDIRECTIONAL), false otherwise
|
|
40
|
+
* @throws {RouteNotFoundError} If no route exists between the token pair
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const isTradable = await tradingService.isPairTradable(cUSD, CELO)
|
|
45
|
+
* if (!isTradable) {
|
|
46
|
+
* console.log('Trading is currently suspended for this pair')
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
isPairTradable(tokenIn: string, tokenOut: string): Promise<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* Checks if a route is currently tradable.
|
|
53
|
+
* Verifies that all pools in the route's path have their rate feeds
|
|
54
|
+
* in BIDIRECTIONAL mode.
|
|
55
|
+
*
|
|
56
|
+
* @param route - The route to check
|
|
57
|
+
* @returns true if all pools in the route are tradable, false otherwise
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const route = await routeService.findRoute(tokenIn, tokenOut)
|
|
62
|
+
* const isRouteTradable = await tradingService.isRouteTradable(route)
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
isRouteTradable(route: Route): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Get the reference rate feed ID for a pool.
|
|
68
|
+
* Both FPMM and Virtual pools expose this via the referenceRateFeedID() view function.
|
|
69
|
+
*
|
|
70
|
+
* @param pool - The pool to get rate feed ID for
|
|
71
|
+
* @returns The rate feed ID address
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
private getPoolRateFeedId;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=TradingService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TradingService.d.ts","sourceRoot":"","sources":["../../../src/services/trading/TradingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAiC,KAAK,EAAQ,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAMxC;;;;GAIG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;gBAFZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY;IAGpC;;;;;;;;;;;;;;;;OAgBG;IACG,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAajE;;;;;;;;;;;;;;;;;OAiBG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAcrD;;;;;;;OAOG;YACW,iBAAiB;CAShC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TradingService = void 0;
|
|
4
|
+
const types_1 = require("../../core/types");
|
|
5
|
+
const abis_1 = require("../../core/abis");
|
|
6
|
+
const constants_1 = require("../../core/constants");
|
|
7
|
+
// TODO: Could be expanded to include trading limit checks
|
|
8
|
+
/**
|
|
9
|
+
* Service for checking trading status and circuit breaker state in the Mento protocol.
|
|
10
|
+
* Provides methods to query whether trading is enabled for specific rate feeds,
|
|
11
|
+
* token pairs, or routes.
|
|
12
|
+
*/
|
|
13
|
+
class TradingService {
|
|
14
|
+
constructor(publicClient, chainId, routeService) {
|
|
15
|
+
this.publicClient = publicClient;
|
|
16
|
+
this.chainId = chainId;
|
|
17
|
+
this.routeService = routeService;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns the current trading mode for a given rate feed.
|
|
21
|
+
*
|
|
22
|
+
* The BreakerBox uses a bitmask approach where 0 means bidirectional trading
|
|
23
|
+
* is enabled, and any non-zero value means trading is suspended.
|
|
24
|
+
*
|
|
25
|
+
* @param rateFeedId - The address of the rate feed
|
|
26
|
+
* @returns The raw trading mode value from BreakerBox (0 = enabled, non-zero = suspended)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const mode = await tradingService.getRateFeedTradingMode(rateFeedId)
|
|
31
|
+
* if (mode === TradingMode.BIDIRECTIONAL) {
|
|
32
|
+
* console.log('Trading is enabled')
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
async getRateFeedTradingMode(rateFeedId) {
|
|
37
|
+
const breakerBoxAddr = (0, constants_1.getContractAddress)(this.chainId, 'BreakerBox');
|
|
38
|
+
const mode = await this.publicClient.readContract({
|
|
39
|
+
address: breakerBoxAddr,
|
|
40
|
+
abi: abis_1.BREAKERBOX_ABI,
|
|
41
|
+
functionName: 'getRateFeedTradingMode',
|
|
42
|
+
args: [rateFeedId],
|
|
43
|
+
});
|
|
44
|
+
return Number(mode);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Checks if a trading pair is currently tradable.
|
|
48
|
+
* For multi-hop routes (e.g., CELO → USDm → USDT), checks that ALL
|
|
49
|
+
* intermediate rate feeds are in BIDIRECTIONAL mode.
|
|
50
|
+
*
|
|
51
|
+
* @param tokenIn - Input token address
|
|
52
|
+
* @param tokenOut - Output token address
|
|
53
|
+
* @returns true if the pair is tradable (all rate feeds BIDIRECTIONAL), false otherwise
|
|
54
|
+
* @throws {RouteNotFoundError} If no route exists between the token pair
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const isTradable = await tradingService.isPairTradable(cUSD, CELO)
|
|
59
|
+
* if (!isTradable) {
|
|
60
|
+
* console.log('Trading is currently suspended for this pair')
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
async isPairTradable(tokenIn, tokenOut) {
|
|
65
|
+
const route = await this.routeService.findRoute(tokenIn, tokenOut);
|
|
66
|
+
return this.isRouteTradable(route);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Checks if a route is currently tradable.
|
|
70
|
+
* Verifies that all pools in the route's path have their rate feeds
|
|
71
|
+
* in BIDIRECTIONAL mode.
|
|
72
|
+
*
|
|
73
|
+
* @param route - The route to check
|
|
74
|
+
* @returns true if all pools in the route are tradable, false otherwise
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const route = await routeService.findRoute(tokenIn, tokenOut)
|
|
79
|
+
* const isRouteTradable = await tradingService.isRouteTradable(route)
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
async isRouteTradable(route) {
|
|
83
|
+
// Get rate feed IDs for each pool in the path and check trading modes
|
|
84
|
+
const rateFeedChecks = await Promise.all(route.path.map(async (pool) => {
|
|
85
|
+
const rateFeedId = await this.getPoolRateFeedId(pool);
|
|
86
|
+
const tradingMode = await this.getRateFeedTradingMode(rateFeedId);
|
|
87
|
+
return (0, types_1.isTradingEnabled)(tradingMode);
|
|
88
|
+
}));
|
|
89
|
+
// All rate feeds must have trading enabled for the route to be tradable
|
|
90
|
+
return rateFeedChecks.every((isEnabled) => isEnabled);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the reference rate feed ID for a pool.
|
|
94
|
+
* Both FPMM and Virtual pools expose this via the referenceRateFeedID() view function.
|
|
95
|
+
*
|
|
96
|
+
* @param pool - The pool to get rate feed ID for
|
|
97
|
+
* @returns The rate feed ID address
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
async getPoolRateFeedId(pool) {
|
|
101
|
+
const rateFeedId = await this.publicClient.readContract({
|
|
102
|
+
address: pool.poolAddr,
|
|
103
|
+
abi: abis_1.FPMM_ABI,
|
|
104
|
+
functionName: 'referenceRateFeedID',
|
|
105
|
+
});
|
|
106
|
+
return rateFeedId;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.TradingService = TradingService;
|
|
110
|
+
//# sourceMappingURL=TradingService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TradingService.js","sourceRoot":"","sources":["../../../src/services/trading/TradingService.ts"],"names":[],"mappings":";;;AACA,4CAA6E;AAE7E,0CAA0D;AAC1D,oDAAkE;AAElE,0DAA0D;AAE1D;;;;GAIG;AACH,MAAa,cAAc;IACzB,YACU,YAA0B,EAC1B,OAAe,EACf,YAA0B;QAF1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,sBAAsB,CAAC,UAAkB;QAC7C,MAAM,cAAc,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,YAAY,CAAC,CAAA;QAEhF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,cAA+B;YACxC,GAAG,EAAE,qBAAc;YACnB,YAAY,EAAE,wBAAwB;YACtC,IAAI,EAAE,CAAC,UAA2B,CAAC;SACpC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,QAAgB;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CAAC,KAAY;QAChC,sEAAsE;QACtE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAA;YACjE,OAAO,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAA;QACtC,CAAC,CAAC,CACH,CAAA;QAED,wEAAwE;QACxE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,iBAAiB,CAAC,IAAU;QACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACtD,OAAO,EAAE,IAAI,CAAC,QAAyB;YACvC,GAAG,EAAE,eAAQ;YACb,YAAY,EAAE,qBAAqB;SACpC,CAAC,CAAA;QAEF,OAAO,UAAoB,CAAA;IAC7B,CAAC;CACF;AAzGD,wCAyGC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/trading/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./TradingService"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/trading/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -20,4 +20,5 @@ __exportStar(require("./routes"), exports);
|
|
|
20
20
|
__exportStar(require("./sortUtils"), exports);
|
|
21
21
|
__exportStar(require("./pathEncoder"), exports);
|
|
22
22
|
__exportStar(require("./tokens"), exports);
|
|
23
|
+
__exportStar(require("./rateFeed"), exports);
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,gDAA6B;AAC7B,2CAAwB;AACxB,8CAA2B;AAC3B,gDAA6B;AAC7B,2CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,gDAA6B;AAC7B,2CAAwB;AACxB,8CAA2B;AAC3B,gDAA6B;AAC7B,2CAAwB;AACxB,6CAA0B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Computes the rate feed ID from a rate feed identifier string.
|
|
3
|
+
* Follows the Solidity formula: address(uint160(uint256(keccak256(abi.encodePacked(rateFeed)))))
|
|
4
|
+
*
|
|
5
|
+
* @param rateFeed - The rate feed identifier string (e.g., "EURUSD", "relayed:COPUSD")
|
|
6
|
+
* @returns The computed rate feed address as a hex string
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const rateFeedId = toRateFeedId('EURUSD')
|
|
11
|
+
* // Returns the computed address for the EURUSD rate feed
|
|
12
|
+
*
|
|
13
|
+
* const relayedRateFeedId = toRateFeedId('relayed:COPUSD')
|
|
14
|
+
* // Returns the computed address for the relayed COPUSD rate feed
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function toRateFeedId(rateFeed: string): `0x${string}`;
|
|
18
|
+
//# sourceMappingURL=rateFeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateFeed.d.ts","sourceRoot":"","sources":["../../src/utils/rateFeed.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAM5D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toRateFeedId = toRateFeedId;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
/**
|
|
6
|
+
* Computes the rate feed ID from a rate feed identifier string.
|
|
7
|
+
* Follows the Solidity formula: address(uint160(uint256(keccak256(abi.encodePacked(rateFeed)))))
|
|
8
|
+
*
|
|
9
|
+
* @param rateFeed - The rate feed identifier string (e.g., "EURUSD", "relayed:COPUSD")
|
|
10
|
+
* @returns The computed rate feed address as a hex string
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const rateFeedId = toRateFeedId('EURUSD')
|
|
15
|
+
* // Returns the computed address for the EURUSD rate feed
|
|
16
|
+
*
|
|
17
|
+
* const relayedRateFeedId = toRateFeedId('relayed:COPUSD')
|
|
18
|
+
* // Returns the computed address for the relayed COPUSD rate feed
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
function toRateFeedId(rateFeed) {
|
|
22
|
+
const hashedBytes = (0, viem_1.keccak256)((0, viem_1.toBytes)(rateFeed));
|
|
23
|
+
const hashAsBigInt = BigInt(hashedBytes);
|
|
24
|
+
const maskedToUint160 = hashAsBigInt & ((1n << 160n) - 1n);
|
|
25
|
+
return `0x${maskedToUint160.toString(16).padStart(40, '0')}`;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=rateFeed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateFeed.js","sourceRoot":"","sources":["../../src/utils/rateFeed.ts"],"names":[],"mappings":";;AAkBA,oCAMC;AAxBD,+BAAyC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,YAAY,CAAC,QAAgB;IAC3C,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAE1D,OAAO,KAAK,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAA;AAC9D,CAAC"}
|