aftermath-ts-sdk 0.0.159 → 0.0.162
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/packages/router/api/routerApiHelpers.d.ts.map +1 -1
- package/dist/packages/router/api/routerApiHelpers.js +8 -4
- package/dist/packages/router/utils/synchronous/routerGraph.d.ts +1 -3
- package/dist/packages/router/utils/synchronous/routerGraph.d.ts.map +1 -1
- package/dist/packages/router/utils/synchronous/routerGraph.js +7 -20
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerApiHelpers.d.ts","sourceRoot":"","sources":["../../../../src/packages/router/api/routerApiHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EACN,OAAO,EACP,QAAQ,EAER,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,QAAQ,EACR,UAAU,EACV,GAAG,EAEH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,qBAAa,gBAAgB;IAsBhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjBrC,gBAAuB,SAAS;;;;MAI9B;IAMF,SAAgB,kBAAkB,8BAAC;IACnC,SAAgB,YAAY,wBAAC;gBAMA,QAAQ,EAAE,YAAY;IAe5C,sBAAsB,WAAkB;QAC9C,SAAS,EAAE,kBAAkB,EAAE,CAAC;KAChC,8CAGC;IAMK,oCAAoC,WAAkB;QAC5D,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,OAAO,EAAE,UAAU,GAAG,GAAG,CAAC;QAC1B,KAAK,EAAE,+BAA+B,CAAC;QACvC,UAAU,EAAE,QAAQ,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,QAAQ,CAAC;QACtB,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,WAAW,CAAC,EAAE,iBAAiB,CAAC;KAGhC,KAAG,QAAQ,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"routerApiHelpers.d.ts","sourceRoot":"","sources":["../../../../src/packages/router/api/routerApiHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EACN,OAAO,EACP,QAAQ,EAER,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,QAAQ,EACR,UAAU,EACV,GAAG,EAEH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,qBAAa,gBAAgB;IAsBhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjBrC,gBAAuB,SAAS;;;;MAI9B;IAMF,SAAgB,kBAAkB,8BAAC;IACnC,SAAgB,YAAY,wBAAC;gBAMA,QAAQ,EAAE,YAAY;IAe5C,sBAAsB,WAAkB;QAC9C,SAAS,EAAE,kBAAkB,EAAE,CAAC;KAChC,8CAGC;IAMK,oCAAoC,WAAkB;QAC5D,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,OAAO,EAAE,UAAU,GAAG,GAAG,CAAC;QAC1B,KAAK,EAAE,+BAA+B,CAAC;QACvC,UAAU,EAAE,QAAQ,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,QAAQ,CAAC;QACtB,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,WAAW,CAAC,EAAE,iBAAiB,CAAC;KAGhC,KAAG,QAAQ,wBAAwB,CAAC,CAyEnC;IAEF,OAAO,CAAC,6CAA6C,CA4DnD;IAmDW,qCAAqC,CAAC,MAAM,EAAE;QAC1D,aAAa,EAAE,UAAU,CAAC;QAC1B,aAAa,EAAE,wBAAwB,CAAC;QACxC,QAAQ,EAAE,QAAQ,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAc7B,OAAc,uBAAuB,WAAY;QAChD,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,KAAG,OAAO,EAAE,CAqBX;IAUF,OAAO,CAAC,MAAM,CAAC,uCAAuC,CA2CpD;CACF"}
|
|
@@ -64,7 +64,7 @@ class RouterApiHelpers {
|
|
|
64
64
|
completeRoutes: completeRoutes.length <= 0 ? undefined : completeRoutes,
|
|
65
65
|
coinInAmounts,
|
|
66
66
|
});
|
|
67
|
-
return result;
|
|
67
|
+
return Object.assign(Object.assign({}, result), { coinIn: Object.assign(Object.assign({}, result.coinIn), { amount: coinInAmount }) });
|
|
68
68
|
});
|
|
69
69
|
this.fetchCompleteTradeRoutesForLastRouteAsyncPool = (inputs) => __awaiter(this, void 0, void 0, function* () {
|
|
70
70
|
const { routerGraph } = inputs;
|
|
@@ -77,6 +77,7 @@ class RouterApiHelpers {
|
|
|
77
77
|
});
|
|
78
78
|
routerGraph.updateOptions({
|
|
79
79
|
// maxRouteLength: 2,
|
|
80
|
+
tradePartitionCount: 2,
|
|
80
81
|
maxGasCost: BigInt(333333333), // 0.333 SUI
|
|
81
82
|
});
|
|
82
83
|
const synchronousCompleteRoutes = routerGraph.getCompleteRoutesGivenAmountIns(Object.assign(Object.assign({}, inputs), { coinOutType: lastPoolCoinInType }));
|
|
@@ -180,11 +181,14 @@ RouterApiHelpers.amountsInForRouterTrade = (inputs) => {
|
|
|
180
181
|
RouterApiHelpers.addFinalRouterCompleteTradeRouteToRoute = (inputs) => {
|
|
181
182
|
const { startCompleteRoute, endCompleteRoute } = inputs;
|
|
182
183
|
const totalEndRouteAmountIn = endCompleteRoute.coinIn.amount;
|
|
183
|
-
return Object.assign(Object.assign({}, startCompleteRoute), { routes: startCompleteRoute.routes.map((route) => {
|
|
184
|
+
return Object.assign(Object.assign({}, startCompleteRoute), { routes: startCompleteRoute.routes.map((route, index) => {
|
|
184
185
|
const finalRoute = endCompleteRoute.routes[0];
|
|
185
186
|
const finalPath = finalRoute.paths[0];
|
|
186
|
-
|
|
187
|
-
const finalCoinOutAmountForRoute =
|
|
187
|
+
const routesLength = startCompleteRoute.routes.length;
|
|
188
|
+
const finalCoinOutAmountForRoute = index === routesLength - 1
|
|
189
|
+
? route.coinOut.amount -
|
|
190
|
+
totalEndRouteAmountIn * BigInt(routesLength - 1)
|
|
191
|
+
: route.coinOut.amount / totalEndRouteAmountIn;
|
|
188
192
|
const spotPrice = Number(route.coinIn.amount) /
|
|
189
193
|
Number(finalCoinOutAmountForRoute);
|
|
190
194
|
return {
|
|
@@ -15,7 +15,7 @@ type TradeInfo = RouterTradeInfo & {
|
|
|
15
15
|
};
|
|
16
16
|
export declare class RouterGraph {
|
|
17
17
|
static readonly defaultOptions: RouterOptions;
|
|
18
|
-
readonly
|
|
18
|
+
readonly graph: RouterCompleteGraph;
|
|
19
19
|
private constants;
|
|
20
20
|
constructor(network: SuiNetwork | Url, graph: RouterSerializableCompleteGraph, options?: RouterOptions);
|
|
21
21
|
updateOptions(partialOptions: Partial<RouterOptions>): void;
|
|
@@ -39,8 +39,6 @@ export declare class RouterGraph {
|
|
|
39
39
|
static graphFromSerializable(inputs: {
|
|
40
40
|
graph: RouterSerializableCompleteGraph;
|
|
41
41
|
network: SuiNetwork | Url;
|
|
42
|
-
isTotal?: boolean;
|
|
43
|
-
isAsync?: boolean;
|
|
44
42
|
}): RouterCompleteGraph;
|
|
45
43
|
static supportedCoinPathsFromGraph: (inputs: {
|
|
46
44
|
graph: RouterSerializableCompleteGraph;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerGraph.d.ts","sourceRoot":"","sources":["../../../../../src/packages/router/utils/synchronous/routerGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EACN,OAAO,EACP,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,aAAa,EACb,+BAA+B,EAE/B,wBAAwB,EAExB,eAAe,EAIf,UAAU,EACV,QAAQ,EACR,GAAG,EAIH,sBAAsB,EACtB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAO5C,KAAK,kBAAkB,GAAG;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;CACrB,GAAG,SAAS,CAAC;AAEd,KAAK,UAAU,GAAG;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;CACnB,GAAG,SAAS,CAAC;AAEd,KAAK,SAAS,GAAG,SAAS,GAAG;IAC5B,OAAO,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,KAAK,SAAS,GAAG,eAAe,GAAG;IAClC,gBAAgB,EAAE,OAAO,CAAC;CAC1B,CAAC;AAMF,qBAAa,WAAW;IAKvB,gBAAuB,cAAc,EAAE,aAAa,CAKlD;
|
|
1
|
+
{"version":3,"file":"routerGraph.d.ts","sourceRoot":"","sources":["../../../../../src/packages/router/utils/synchronous/routerGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -183,17 +183,7 @@ class RouterGraph {
|
|
|
183
183
|
return undefined;
|
|
184
184
|
}
|
|
185
185
|
};
|
|
186
|
-
|
|
187
|
-
// graph,
|
|
188
|
-
// network,
|
|
189
|
-
// isTotal: true,
|
|
190
|
-
// });
|
|
191
|
-
this.syncGraph = RouterGraph.graphFromSerializable({ graph, network });
|
|
192
|
-
// this.asyncGraph = RouterGraph.graphFromSerializable({
|
|
193
|
-
// graph,
|
|
194
|
-
// network,
|
|
195
|
-
// isAsync: true,
|
|
196
|
-
// });
|
|
186
|
+
this.graph = RouterGraph.graphFromSerializable({ graph, network });
|
|
197
187
|
this.constants = Object.assign(Object.assign({}, RouterGraph.defaultOptions), options);
|
|
198
188
|
}
|
|
199
189
|
/////////////////////////////////////////////////////////////////////
|
|
@@ -274,15 +264,12 @@ class RouterGraph {
|
|
|
274
264
|
return graph;
|
|
275
265
|
}
|
|
276
266
|
static graphFromSerializable(inputs) {
|
|
277
|
-
const { isTotal, isAsync } = inputs;
|
|
278
267
|
const pools = Object.entries(inputs.graph.pools).reduce((acc, [uid, pool]) => {
|
|
279
268
|
const poolClass = (0, routerPoolInterface_1.createRouterPool)({
|
|
280
269
|
pool,
|
|
281
270
|
network: inputs.network,
|
|
282
271
|
});
|
|
283
|
-
if (
|
|
284
|
-
((isAsync && !poolClass.noHopsAllowed) ||
|
|
285
|
-
(!isAsync && poolClass.noHopsAllowed)))
|
|
272
|
+
if (poolClass.noHopsAllowed)
|
|
286
273
|
return acc;
|
|
287
274
|
return Object.assign(Object.assign({}, acc), { [uid]: poolClass });
|
|
288
275
|
}, {});
|
|
@@ -316,20 +303,20 @@ class RouterGraph {
|
|
|
316
303
|
//// Private Methods
|
|
317
304
|
/////////////////////////////////////////////////////////////////////
|
|
318
305
|
getCompleteRoute(inputs) {
|
|
319
|
-
if (Object.keys(this.
|
|
306
|
+
if (Object.keys(this.graph).length <= 0)
|
|
320
307
|
throw new Error("empty graphs");
|
|
321
308
|
const { coinInType, coinInAmount, coinOutType, referrer, externalFee, isGivenAmountOut, } = inputs;
|
|
322
309
|
if (externalFee &&
|
|
323
310
|
externalFee.feePercentage >=
|
|
324
311
|
router_1.Router.constants.maxExternalFeePercentage)
|
|
325
312
|
throw new Error(`external fee percentage exceeds max of ${router_1.Router.constants.maxExternalFeePercentage}`);
|
|
326
|
-
const routes = RouterGraph.findRoutes(helpers_1.Helpers.deepCopy(this.
|
|
327
|
-
const routesAfterTrades = this.splitTradeBetweenRoutes(helpers_1.Helpers.deepCopy(this.
|
|
313
|
+
const routes = RouterGraph.findRoutes(helpers_1.Helpers.deepCopy(this.graph), coinInType, coinOutType, this.constants.maxRouteLength, isGivenAmountOut);
|
|
314
|
+
const routesAfterTrades = this.splitTradeBetweenRoutes(helpers_1.Helpers.deepCopy(this.graph), routes, coinInAmount, isGivenAmountOut, referrer);
|
|
328
315
|
const completeRoute = RouterGraph.completeRouteFromRoutes(routesAfterTrades, coinInType, coinInAmount, coinOutType);
|
|
329
316
|
const transformedRoute = isGivenAmountOut
|
|
330
317
|
? RouterGraph.transformCompleteRouteIfGivenAmountOut(completeRoute)
|
|
331
318
|
: completeRoute;
|
|
332
|
-
const completeTradeRoute = RouterGraph.routerCompleteTradeRouteFromCompleteTradeRoute(transformedRoute, this.
|
|
319
|
+
const completeTradeRoute = RouterGraph.routerCompleteTradeRouteFromCompleteTradeRoute(transformedRoute, this.graph.pools, referrer, externalFee);
|
|
333
320
|
return completeTradeRoute;
|
|
334
321
|
}
|
|
335
322
|
}
|
|
@@ -430,7 +417,7 @@ RouterGraph.updateCoinNodesFromPool = (coinNodes, pool) => {
|
|
|
430
417
|
/////////////////////////////////////////////////////////////////////
|
|
431
418
|
//// Route Finding
|
|
432
419
|
/////////////////////////////////////////////////////////////////////
|
|
433
|
-
RouterGraph.findRoutes = (syncGraph,
|
|
420
|
+
RouterGraph.findRoutes = (syncGraph, coinIn, coinOut, maxRouteLength, isGivenAmountOut) => {
|
|
434
421
|
const syncCoinInEdges = syncGraph.coinNodes[coinIn].coinOutThroughPoolEdges;
|
|
435
422
|
const startingRoutes = _a.createStartingRoutes(syncGraph.pools, syncCoinInEdges, coinIn, coinOut, false);
|
|
436
423
|
const routes = _a.findCompleteRoutes(syncGraph, startingRoutes, coinOut, maxRouteLength, isGivenAmountOut);
|