aftermath-ts-sdk 0.0.157 → 0.0.161
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/general/types/configTypes.d.ts +4 -0
- package/dist/general/types/configTypes.d.ts.map +1 -1
- package/dist/packages/pools/api/poolsApiHelpers.js +4 -4
- package/dist/packages/router/api/routerApiHelpers.d.ts.map +1 -1
- package/dist/packages/router/api/routerApiHelpers.js +6 -0
- package/dist/packages/router/utils/synchronous/routerGraph.d.ts +3 -4
- package/dist/packages/router/utils/synchronous/routerGraph.d.ts.map +1 -1
- package/dist/packages/router/utils/synchronous/routerGraph.js +10 -20
- package/package.json +1 -1
|
@@ -38,6 +38,7 @@ export interface PoolsAddresses {
|
|
|
38
38
|
packages: {
|
|
39
39
|
amm: SuiAddress;
|
|
40
40
|
ammInterface: SuiAddress;
|
|
41
|
+
events: SuiAddress;
|
|
41
42
|
};
|
|
42
43
|
objects: {
|
|
43
44
|
poolRegistry: ObjectId;
|
|
@@ -46,6 +47,9 @@ export interface PoolsAddresses {
|
|
|
46
47
|
insuranceFund: ObjectId;
|
|
47
48
|
lpCoinsTable: ObjectId;
|
|
48
49
|
};
|
|
50
|
+
other: {
|
|
51
|
+
createLpCoinPackageCompilation: string;
|
|
52
|
+
};
|
|
49
53
|
}
|
|
50
54
|
export interface UtilitiesAddresses {
|
|
51
55
|
packages: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configTypes.d.ts","sourceRoot":"","sources":["../../../src/general/types/configTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMtD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAMjC,MAAM,MAAM,eAAe,GAAG,uBAAuB,GACpD,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAElC,UAAU,uBAAuB;CAAG;AAEpC,UAAU,uBAAuB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACjD,aAAa,EAAE,sBAAsB,CAAC;CACtC;AAMD,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE;QACT,MAAM,EAAE,UAAU,CAAC;KACnB,CAAC;IACF,OAAO,EAAE;QACR,MAAM,EAAE,QAAQ,CAAC;QACjB,cAAc,EAAE,QAAQ,CAAC;KACzB,CAAC;CACF;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE;QACT,GAAG,EAAE,UAAU,CAAC;QAChB,KAAK,EAAE,UAAU,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACR,OAAO,EAAE,QAAQ,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACT,GAAG,EAAE,UAAU,CAAC;KAChB,CAAC;CACF;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE;QACT,GAAG,EAAE,UAAU,CAAC;QAChB,YAAY,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"configTypes.d.ts","sourceRoot":"","sources":["../../../src/general/types/configTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,7 +165,7 @@ class PoolsApiHelpers {
|
|
|
165
165
|
};
|
|
166
166
|
this.publishLpCoinTx = (inputs) => {
|
|
167
167
|
const { tx } = inputs;
|
|
168
|
-
const compiledModulesAndDeps = JSON.parse(
|
|
168
|
+
const compiledModulesAndDeps = JSON.parse(this.addresses.pools.other.createLpCoinPackageCompilation);
|
|
169
169
|
return tx.publish({
|
|
170
170
|
modules: compiledModulesAndDeps.modules.map((m) => Array.from((0, sui_js_1.fromB64)(m))),
|
|
171
171
|
dependencies: compiledModulesAndDeps.dependencies.map((addr) => (0, sui_js_1.normalizeSuiObjectId)(addr)),
|
|
@@ -469,9 +469,9 @@ class PoolsApiHelpers {
|
|
|
469
469
|
/////////////////////////////////////////////////////////////////////
|
|
470
470
|
//// Event Types
|
|
471
471
|
/////////////////////////////////////////////////////////////////////
|
|
472
|
-
this.tradeEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.pools.packages.
|
|
473
|
-
this.depositEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.pools.packages.
|
|
474
|
-
this.withdrawEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.pools.packages.
|
|
472
|
+
this.tradeEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.pools.packages.events, PoolsApiHelpers.constants.moduleNames.events, PoolsApiHelpers.constants.eventNames.swap);
|
|
473
|
+
this.depositEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.pools.packages.events, PoolsApiHelpers.constants.moduleNames.events, PoolsApiHelpers.constants.eventNames.deposit);
|
|
474
|
+
this.withdrawEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.pools.packages.events, PoolsApiHelpers.constants.moduleNames.events, PoolsApiHelpers.constants.eventNames.withdraw);
|
|
475
475
|
const addresses = {
|
|
476
476
|
pools: this.Provider.addresses.pools,
|
|
477
477
|
referralVault: this.Provider.addresses.referralVault,
|
|
@@ -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,CAmEnC;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,CAwCpD;CACF"}
|
|
@@ -52,6 +52,7 @@ class RouterApiHelpers {
|
|
|
52
52
|
coinInAmounts,
|
|
53
53
|
lastPool })))),
|
|
54
54
|
]);
|
|
55
|
+
routerGraph.updateOptions(routerGraph_1.RouterGraph.defaultOptions);
|
|
55
56
|
const synchronousCompleteRoutes = routerGraph.getCompleteRoutesGivenAmountIns(Object.assign(Object.assign({}, inputs), { coinInAmounts }));
|
|
56
57
|
const allCompleteRoutes = [
|
|
57
58
|
...completeRoutesForLastPoolAsync,
|
|
@@ -74,6 +75,11 @@ class RouterApiHelpers {
|
|
|
74
75
|
coinType: inputs.coinOutType,
|
|
75
76
|
pool: inputs.lastPool,
|
|
76
77
|
});
|
|
78
|
+
routerGraph.updateOptions({
|
|
79
|
+
// maxRouteLength: 2,
|
|
80
|
+
tradePartitionCount: 2,
|
|
81
|
+
maxGasCost: BigInt(333333333), // 0.333 SUI
|
|
82
|
+
});
|
|
77
83
|
const synchronousCompleteRoutes = routerGraph.getCompleteRoutesGivenAmountIns(Object.assign(Object.assign({}, inputs), { coinOutType: lastPoolCoinInType }));
|
|
78
84
|
const lastPoolCoinInAmounts = synchronousCompleteRoutes.map((route) => route.coinOut.amount);
|
|
79
85
|
const tradeResults = yield this.AsyncHelpers.fetchTradeResults(Object.assign(Object.assign({}, inputs), { coinInType: lastPoolCoinInType, pools: [inputs.lastPool], coinInAmounts: lastPoolCoinInAmounts }));
|
|
@@ -15,9 +15,10 @@ type TradeInfo = RouterTradeInfo & {
|
|
|
15
15
|
};
|
|
16
16
|
export declare class RouterGraph {
|
|
17
17
|
static readonly defaultOptions: RouterOptions;
|
|
18
|
-
readonly
|
|
19
|
-
|
|
18
|
+
readonly graph: RouterCompleteGraph;
|
|
19
|
+
private constants;
|
|
20
20
|
constructor(network: SuiNetwork | Url, graph: RouterSerializableCompleteGraph, options?: RouterOptions);
|
|
21
|
+
updateOptions(partialOptions: Partial<RouterOptions>): void;
|
|
21
22
|
getCompleteRouteGivenAmountIn(inputs: {
|
|
22
23
|
coinInType: CoinType;
|
|
23
24
|
coinInAmount: Balance;
|
|
@@ -38,8 +39,6 @@ export declare class RouterGraph {
|
|
|
38
39
|
static graphFromSerializable(inputs: {
|
|
39
40
|
graph: RouterSerializableCompleteGraph;
|
|
40
41
|
network: SuiNetwork | Url;
|
|
41
|
-
isTotal?: boolean;
|
|
42
|
-
isAsync?: boolean;
|
|
43
42
|
}): RouterCompleteGraph;
|
|
44
43
|
static supportedCoinPathsFromGraph: (inputs: {
|
|
45
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,22 +183,15 @@ 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
|
/////////////////////////////////////////////////////////////////////
|
|
200
190
|
//// Public Methods
|
|
201
191
|
/////////////////////////////////////////////////////////////////////
|
|
192
|
+
updateOptions(partialOptions) {
|
|
193
|
+
this.constants = Object.assign(Object.assign({}, this.constants), partialOptions);
|
|
194
|
+
}
|
|
202
195
|
getCompleteRouteGivenAmountIn(inputs) {
|
|
203
196
|
const result = this.getCompleteRoute(Object.assign(Object.assign({}, inputs), { isGivenAmountOut: false }));
|
|
204
197
|
return result;
|
|
@@ -271,15 +264,12 @@ class RouterGraph {
|
|
|
271
264
|
return graph;
|
|
272
265
|
}
|
|
273
266
|
static graphFromSerializable(inputs) {
|
|
274
|
-
const { isTotal, isAsync } = inputs;
|
|
275
267
|
const pools = Object.entries(inputs.graph.pools).reduce((acc, [uid, pool]) => {
|
|
276
268
|
const poolClass = (0, routerPoolInterface_1.createRouterPool)({
|
|
277
269
|
pool,
|
|
278
270
|
network: inputs.network,
|
|
279
271
|
});
|
|
280
|
-
if (
|
|
281
|
-
((isAsync && !poolClass.noHopsAllowed) ||
|
|
282
|
-
(!isAsync && poolClass.noHopsAllowed)))
|
|
272
|
+
if (poolClass.noHopsAllowed)
|
|
283
273
|
return acc;
|
|
284
274
|
return Object.assign(Object.assign({}, acc), { [uid]: poolClass });
|
|
285
275
|
}, {});
|
|
@@ -313,20 +303,20 @@ class RouterGraph {
|
|
|
313
303
|
//// Private Methods
|
|
314
304
|
/////////////////////////////////////////////////////////////////////
|
|
315
305
|
getCompleteRoute(inputs) {
|
|
316
|
-
if (Object.keys(this.
|
|
306
|
+
if (Object.keys(this.graph).length <= 0)
|
|
317
307
|
throw new Error("empty graphs");
|
|
318
308
|
const { coinInType, coinInAmount, coinOutType, referrer, externalFee, isGivenAmountOut, } = inputs;
|
|
319
309
|
if (externalFee &&
|
|
320
310
|
externalFee.feePercentage >=
|
|
321
311
|
router_1.Router.constants.maxExternalFeePercentage)
|
|
322
312
|
throw new Error(`external fee percentage exceeds max of ${router_1.Router.constants.maxExternalFeePercentage}`);
|
|
323
|
-
const routes = RouterGraph.findRoutes(helpers_1.Helpers.deepCopy(this.
|
|
324
|
-
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);
|
|
325
315
|
const completeRoute = RouterGraph.completeRouteFromRoutes(routesAfterTrades, coinInType, coinInAmount, coinOutType);
|
|
326
316
|
const transformedRoute = isGivenAmountOut
|
|
327
317
|
? RouterGraph.transformCompleteRouteIfGivenAmountOut(completeRoute)
|
|
328
318
|
: completeRoute;
|
|
329
|
-
const completeTradeRoute = RouterGraph.routerCompleteTradeRouteFromCompleteTradeRoute(transformedRoute, this.
|
|
319
|
+
const completeTradeRoute = RouterGraph.routerCompleteTradeRouteFromCompleteTradeRoute(transformedRoute, this.graph.pools, referrer, externalFee);
|
|
330
320
|
return completeTradeRoute;
|
|
331
321
|
}
|
|
332
322
|
}
|
|
@@ -427,7 +417,7 @@ RouterGraph.updateCoinNodesFromPool = (coinNodes, pool) => {
|
|
|
427
417
|
/////////////////////////////////////////////////////////////////////
|
|
428
418
|
//// Route Finding
|
|
429
419
|
/////////////////////////////////////////////////////////////////////
|
|
430
|
-
RouterGraph.findRoutes = (syncGraph,
|
|
420
|
+
RouterGraph.findRoutes = (syncGraph, coinIn, coinOut, maxRouteLength, isGivenAmountOut) => {
|
|
431
421
|
const syncCoinInEdges = syncGraph.coinNodes[coinIn].coinOutThroughPoolEdges;
|
|
432
422
|
const startingRoutes = _a.createStartingRoutes(syncGraph.pools, syncCoinInEdges, coinIn, coinOut, false);
|
|
433
423
|
const routes = _a.findCompleteRoutes(syncGraph, startingRoutes, coinOut, maxRouteLength, isGivenAmountOut);
|