@keetanetwork/anchor 0.0.66 → 0.0.67
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/lib/chaining.d.ts +19 -2
- package/lib/chaining.d.ts.map +1 -1
- package/lib/chaining.js +102 -9
- package/lib/chaining.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/services/asset-movement/client.d.ts +1 -1
- package/services/asset-movement/client.d.ts.map +1 -1
- package/services/asset-movement/client.js +1 -1
- package/services/asset-movement/client.js.map +1 -1
- package/services/asset-movement/server.js +1 -1
- package/services/asset-movement/server.js.map +1 -1
package/lib/chaining.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';
|
|
2
2
|
import { KeetaNet } from "../client/index.js";
|
|
3
|
-
import type { AssetLocationLike, AssetTransferInstructions, PickChainLocation, Rail, RecipientResolved } from "../services/asset-movement/common.js";
|
|
3
|
+
import type { AnchorTokenLocationMetadata, AssetLocationLike, AssetTransferInstructions, PickChainLocation, Rail, RecipientResolved } from "../services/asset-movement/common.js";
|
|
4
4
|
import type { Resolver } from "./index.js";
|
|
5
5
|
import type { ISOCurrencyCode } from '@keetanetwork/currency-info';
|
|
6
6
|
import type { Account, GenericAccount, TokenAddress } from '@keetanetwork/keetanet-client/lib/account.js';
|
|
@@ -184,6 +184,16 @@ export interface AnchorChainingAssetInfo {
|
|
|
184
184
|
pathLength: number;
|
|
185
185
|
} | null;
|
|
186
186
|
}
|
|
187
|
+
type AnchorChainingAssetInfoWithMetadata = AnchorChainingAssetInfo & {
|
|
188
|
+
metadata?: AnchorTokenLocationMetadata;
|
|
189
|
+
};
|
|
190
|
+
interface AnchorChainingResolveAssetsWithMetadataResult {
|
|
191
|
+
from: AnchorChainingAssetInfoWithMetadata[];
|
|
192
|
+
to: AnchorChainingAssetInfoWithMetadata[];
|
|
193
|
+
}
|
|
194
|
+
type AnchorChainingWithMetadataOptions = {
|
|
195
|
+
providerID?: string;
|
|
196
|
+
};
|
|
187
197
|
type GetAccountForActionPayload = {
|
|
188
198
|
type: 'assetMovement';
|
|
189
199
|
providerMethod: 'initiateTransfer';
|
|
@@ -207,10 +217,17 @@ declare class AnchorGraph {
|
|
|
207
217
|
resolver: Resolver;
|
|
208
218
|
logger?: Logger | undefined;
|
|
209
219
|
});
|
|
220
|
+
getAssetMovementProvidersForAsset(asset: AnchorChainingAsset, location: AssetLocationLike): Promise<null | {
|
|
221
|
+
[providerID: string]: {
|
|
222
|
+
provider: AssetMovementProvider;
|
|
223
|
+
};
|
|
224
|
+
}>;
|
|
210
225
|
computeGraphNodes(): Promise<GraphNodeLike[]>;
|
|
211
226
|
findPaths(input: AnchorChainingPathInput): Promise<GraphNodeLike[][]>;
|
|
212
227
|
resolveAssets(filter?: AnchorChainingResolveAssetsFilter): Promise<AnchorChainingResolveAssetsResult>;
|
|
213
228
|
listAssets(filter?: AnchorChainingListAssetsFilter): Promise<AnchorChainingAssetInfo[]>;
|
|
229
|
+
resolveAssetsWithMetadata(filter?: AnchorChainingResolveAssetsFilter, options?: AnchorChainingWithMetadataOptions): Promise<AnchorChainingResolveAssetsWithMetadataResult>;
|
|
230
|
+
listAssetsWithMetadata(filter?: AnchorChainingListAssetsFilter, options?: AnchorChainingWithMetadataOptions): Promise<AnchorChainingAssetInfoWithMetadata[]>;
|
|
214
231
|
}
|
|
215
232
|
export interface ComputePlanOptions {
|
|
216
233
|
overrides?: AnchorChainingAccountOverrides;
|
package/lib/chaining.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chaining.d.ts","sourceRoot":"","sources":["../../src/lib/chaining.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chaining.d.ts","sourceRoot":"","sources":["../../src/lib/chaining.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,yBAAyB,EAA8D,iBAAiB,EAAE,IAAI,EAAiC,iBAAiB,EAAsC,MAAM,sCAAsC,CAAC;AAEjT,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAK1G,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAElF,KAAK,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/G,KAAK,qBAAqB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACjI,KAAK,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC5F,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE3E,UAAU,uBAAuB,CAAC,IAAI,SAAS,IAAI,GAAG,eAAe,GAAG,WAAW;IAClF,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,SAAS,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,UAAU,qBAAsB,SAAQ,uBAAuB,CAAC,IAAI,CAAC;IACpE,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;CAC1B;AAED,KAAK,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAEhE,UAAU,gCAAiC,SAAQ,uBAAuB,CAAC,eAAe,CAAC;IAC1F,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,qBAAqB,CAAC;CAChC;AAED,UAAU,4BAA6B,SAAQ,uBAAuB,CAAC,WAAW,CAAC;IAClF,gBAAgB,EAAE,OAAO,CAAC,yBAAyB,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,gCAAgC,GAAG,4BAA4B,CAAC;AAE1H,KAAK,8BAA8B,GAAG;IACrC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,cAAc,GAAG;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,gCAAgC,CAAC;CACvC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,4BAA4B,CAAC;CACnC,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,yBAAyB,GAAG,qBAAqB,CAAC;AAE9F,MAAM,MAAM,+BAA+B,GAAG;IAC7C,KAAK,EAAE,YAAY,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAChC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,YAAY,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,+BAA+B,CAAA;CAAE,GAChE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,cAAc,EAAE,YAAY,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,UAAU,gCAAgC,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE;IACrH,IAAI,EAAE,UAAU,CAAC;IAEjB,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnD,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEtC,MAAM,EAAE,aAAa,CAAC;CACtB;AAGD,UAAU,kCAAmC,SAAQ,gCAAgC,CAAC,oCAAoC,EAAE;IAAE,qBAAqB,EAAE,qBAAqB,CAAC;CAAE,EAAE,EAAE,CAAC;CAAG;AAGrL,UAAU,8BAA+B,SAAQ,gCAAgC,CAAC,uBAAuB,EAAE;IAC1G,aAAa,EAAE,cAAc,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,EAAE,CAAE;IAAE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAAE,CAAC,CAAC;CAAG;AAExC,KAAK,4BAA4B,GAAG,8BAA8B,GAAG,kCAAkC,CAAC;AAExG,KAAK,0BAA0B,GAAG;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;IACrD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAClF,eAAe,EAAE,CAAC,4BAA4B,CAAC,CAAC;CAChD,CAAA;AAED,UAAU,8BAA8B,CAAC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAAE,QAAQ,SAAS,iBAAiB,GAAG,iBAAiB;IAC3J,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAEf;AAED,UAAU,yBAA0B,SAAQ,8BAA8B;IACzE,SAAS,EAAE,iBAAiB,CAAC;CAC7B;AAED,UAAU,uBAAuB;IAChC,MAAM,EAAE,8BAA8B,CAAC;IACvC,WAAW,EAAE,yBAAyB,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB,CAAC,IAAI,SAAS,IAAI,GAAG,eAAe,EAAE,SAAS,SAAS,mBAAmB;IACrG,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAChD,EAAE,EAAE,8BAA8B,CAAC,SAAS,CAAC,CAAC;CAC9C;AAGD,UAAU,WAAY,SAAQ,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;CAAG;AAE1G,UAAU,sBAAuB,SAAQ,iBAAiB,CAAC,eAAe,EAAE,mBAAmB,CAAC;CAAG;AACnG,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,sBAAsB,CAAC;AAEjE,KAAK,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,eAAe,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC1G,UAAU,iBAAiB;IAC1B,IAAI,EAAE,WAAW,CAAC;IAElB,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB,IAAI,EAAE,8BAA8B,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAC7E,EAAE,EAAE,8BAA8B,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;CAC3E;AAED,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAgEtF,MAAM,MAAM,kCAAkC,GAAG;IAChD,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,KAAK,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACxB,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GACvC,CAAC;IAAE,IAAI,EAAE,kCAAkC,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,8BAA8B,CAAC,GAC3F,CAAC;IAAE,EAAE,EAAE,kCAAkC,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,8BAA8B,CAAC,GAC3F,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,8BAA8B,CAAC,CAAC;AAEnE,MAAM,MAAM,iCAAiC,GAAG;IAC/C,IAAI,CAAC,EAAE,kCAAkC,CAAC;IAC1C,EAAE,CAAC,EAAE,kCAAkC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,iCAAiC;IACjD,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAChC,EAAE,EAAE,uBAAuB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE;QACN,OAAO,EAAE,IAAI,EAAE,CAAC;QAChB,QAAQ,EAAE,IAAI,EAAE,CAAC;KACjB,CAAC;IAEF,QAAQ,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI,CAAC;CACT;AAED,KAAK,mCAAmC,GAAG,uBAAuB,GAAG;IACpE,QAAQ,CAAC,EAAE,2BAA2B,CAAC;CACvC,CAAA;AAED,UAAU,6CAA6C;IACtD,IAAI,EAAE,mCAAmC,EAAE,CAAC;IAC5C,EAAE,EAAE,mCAAmC,EAAE,CAAC;CAC1C;AAED,KAAK,iCAAiC,GAAG;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,qBAAqB,CAAC;CACtC,CAAA;AAED,KAAK,WAAW,GAAG,YAAY,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,qBAAqB,EAAE,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAC9J,UAAU,8BAA8B;IACvC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,WAAW;;IAChB,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAOhB,IAAI,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAAE;IAyB7F,iCAAiC,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,GAAG;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG;YAAE,QAAQ,EAAE,qBAAqB,CAAC;SAAE,CAAA;KAAC,CAAC;IAsRzK,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAe7C,SAAS,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;IAoFrE,aAAa,CAAC,MAAM,GAAE,iCAAsC,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAyNzG,UAAU,CAAC,MAAM,GAAE,8BAAmC,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAsD3F,yBAAyB,CAC9B,MAAM,GAAE,iCAAsC,EAC9C,OAAO,CAAC,EAAE,iCAAiC,GACzC,OAAO,CAAC,6CAA6C,CAAC;IAWnD,sBAAsB,CAC3B,MAAM,GAAE,8BAAmC,EAC3C,OAAO,CAAC,EAAE,iCAAiC,GACzC,OAAO,CAAC,mCAAmC,EAAE,CAAC;CAWjD;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC3C;AAED,qBAAa,kBAAkB;IAC9B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,KAAK,EAAE;QAClB,OAAO,EAAE,uBAAuB,CAAC;QACjC,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC/B,MAAM,EAAE,cAAc,CAAC;KACvB;cAMe,cAAc,CAAC,MAAM,EAAE,0BAA0B,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;cAwB7H,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,YAAY,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAQtO;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB;;IAQzD,OAAO;IAKP,IAAI,IAAI,IAAI,8BAA8B,CAMzC;WA0VY,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMxG,IAAI,KAAK,IAAI,uBAAuB,CAEnC;IAED,EAAE,CAAC,CAAC,SAAS,MAAM,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAS1H,GAAG,CAAC,CAAC,SAAS,MAAM,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAS3H,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAoIK,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,+BAA+B,CAAC;CAkHhG;AAED,KAAK,4BAA4B,GAAG,CAAC,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAC;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;CAAE,CAAC,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;CAAE,CAAC,CAAC;AAE3J,qBAAa,cAAc;IAC1B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,EAAE,oBAAoB;IAalC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAyC9E,QAAQ,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG;QAAE,gBAAgB,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAC3I,QAAQ,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,kBAAkB,GAAG;QAAE,gBAAgB,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,4BAA4B,EAAE,GAAG,IAAI,CAAC;CAuCxJ"}
|
package/lib/chaining.js
CHANGED
|
@@ -64,12 +64,54 @@ class AnchorGraph {
|
|
|
64
64
|
client;
|
|
65
65
|
resolver;
|
|
66
66
|
logger;
|
|
67
|
+
#assetMovementClient;
|
|
68
|
+
#assetMovementProviderCache = new Map();
|
|
67
69
|
#assetNameCache = new Map();
|
|
68
70
|
#graphNodePromise = null;
|
|
69
71
|
constructor(args) {
|
|
70
72
|
this.resolver = args.resolver;
|
|
71
73
|
this.client = args.client;
|
|
72
74
|
this.logger = args.logger;
|
|
75
|
+
this.#assetMovementClient = new KeetaAssetMovementAnchorClient(this.client, {
|
|
76
|
+
resolver: this.resolver,
|
|
77
|
+
...(this.logger ? { logger: this.logger } : {})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
#assetLocationKey = (side) => {
|
|
81
|
+
return (`${convertAssetSearchInputToCanonical(side.asset)}@${convertAssetLocationToString(side.location)}`);
|
|
82
|
+
};
|
|
83
|
+
async #getAssetMovementProviderById(providerID) {
|
|
84
|
+
let provider = this.#assetMovementProviderCache.get(providerID);
|
|
85
|
+
if (provider === undefined) {
|
|
86
|
+
provider = await this.#assetMovementClient.getProviderByID(providerID);
|
|
87
|
+
}
|
|
88
|
+
this.#assetMovementProviderCache.set(providerID, provider);
|
|
89
|
+
return (provider);
|
|
90
|
+
}
|
|
91
|
+
async getAssetMovementProvidersForAsset(asset, location) {
|
|
92
|
+
let retval = null;
|
|
93
|
+
for (const node of await this.computeGraphNodes()) {
|
|
94
|
+
if (node.type !== 'assetMovement') {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
for (const side of [node.from, node.to]) {
|
|
98
|
+
if (!isAnchorChainingAssetEqual(side.asset, asset) || convertAssetLocationToString(side.location) !== convertAssetLocationToString(location)) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (!retval) {
|
|
102
|
+
retval = {};
|
|
103
|
+
}
|
|
104
|
+
if (!retval[node.providerID]) {
|
|
105
|
+
const provider = await this.#getAssetMovementProviderById(node.providerID);
|
|
106
|
+
if (!provider) {
|
|
107
|
+
this.logger?.debug('AnchorGraph::getAssetMovementProvidersForAsset', `No provider found for providerID ${node.providerID}, although provider was previously known to exist in the graph nodes`);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
retval[node.providerID] = { provider };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return (retval);
|
|
73
115
|
}
|
|
74
116
|
async #computeFXNodes() {
|
|
75
117
|
const fxServices = await this.resolver.lookup('fx', {});
|
|
@@ -369,9 +411,6 @@ class AnchorGraph {
|
|
|
369
411
|
}
|
|
370
412
|
}
|
|
371
413
|
}
|
|
372
|
-
const assetLocationKey = (side) => {
|
|
373
|
-
return (`${convertAssetSearchInputToCanonical(side.asset)}@${convertAssetLocationToString(side.location)}`);
|
|
374
|
-
};
|
|
375
414
|
const sideMatchesFilter = (side, f) => {
|
|
376
415
|
if (f.location !== undefined && convertAssetLocationToString(side.location) !== convertAssetLocationToString(f.location)) {
|
|
377
416
|
return (false);
|
|
@@ -390,7 +429,7 @@ class AnchorGraph {
|
|
|
390
429
|
const toReachable = new Set();
|
|
391
430
|
const toDistances = new Map();
|
|
392
431
|
const makeMarkFn = (reachable, distances) => (side, depth) => {
|
|
393
|
-
const key = assetLocationKey(side);
|
|
432
|
+
const key = this.#assetLocationKey(side);
|
|
394
433
|
reachable.add(key);
|
|
395
434
|
if (depth !== undefined) {
|
|
396
435
|
const existing = distances.get(key);
|
|
@@ -459,7 +498,7 @@ class AnchorGraph {
|
|
|
459
498
|
const buildResultMap = (reachable, distances) => {
|
|
460
499
|
const resultMap = new Map();
|
|
461
500
|
const getOrCreate = (side) => {
|
|
462
|
-
const key = assetLocationKey(side);
|
|
501
|
+
const key = this.#assetLocationKey(side);
|
|
463
502
|
let resultObj = resultMap.get(key);
|
|
464
503
|
if (!resultObj) {
|
|
465
504
|
const distanceValue = distances.get(key);
|
|
@@ -477,13 +516,13 @@ class AnchorGraph {
|
|
|
477
516
|
if (onlyAllowFXLike && !isFXLikeNode(node)) {
|
|
478
517
|
continue;
|
|
479
518
|
}
|
|
480
|
-
if (reachable.has(assetLocationKey(node.to))) {
|
|
519
|
+
if (reachable.has(this.#assetLocationKey(node.to))) {
|
|
481
520
|
const entry = getOrCreate(node.to);
|
|
482
521
|
if (!entry.rails.inbound.includes(node.to.rail)) {
|
|
483
522
|
entry.rails.inbound.push(node.to.rail);
|
|
484
523
|
}
|
|
485
524
|
}
|
|
486
|
-
if (reachable.has(assetLocationKey(node.from))) {
|
|
525
|
+
if (reachable.has(this.#assetLocationKey(node.from))) {
|
|
487
526
|
const entry = getOrCreate(node.from);
|
|
488
527
|
if (!entry.rails.outbound.includes(node.from.rail)) {
|
|
489
528
|
entry.rails.outbound.push(node.from.rail);
|
|
@@ -498,10 +537,10 @@ class AnchorGraph {
|
|
|
498
537
|
// "what can USDC be swapped to?" doesn't include USDC itself via a round-trip.
|
|
499
538
|
if (onlyAllowFXLike) {
|
|
500
539
|
if (fromFilter?.asset !== undefined) {
|
|
501
|
-
toResultMap.delete(assetLocationKey({ asset: fromFilter.asset, location: fromFilter.location ?? keetaNetworkLocation }));
|
|
540
|
+
toResultMap.delete(this.#assetLocationKey({ asset: fromFilter.asset, location: fromFilter.location ?? keetaNetworkLocation }));
|
|
502
541
|
}
|
|
503
542
|
if (toFilter?.asset !== undefined) {
|
|
504
|
-
fromResultMap.delete(assetLocationKey({ asset: toFilter.asset, location: toFilter.location ?? keetaNetworkLocation }));
|
|
543
|
+
fromResultMap.delete(this.#assetLocationKey({ asset: toFilter.asset, location: toFilter.location ?? keetaNetworkLocation }));
|
|
505
544
|
}
|
|
506
545
|
}
|
|
507
546
|
const filterMap = (map, f, railSide) => Array.from(map.values()).filter(info => {
|
|
@@ -536,6 +575,60 @@ class AnchorGraph {
|
|
|
536
575
|
return (result.to);
|
|
537
576
|
}
|
|
538
577
|
}
|
|
578
|
+
async #attachMetadata(assetInfo, options) {
|
|
579
|
+
if (!isExternalChainAsset(assetInfo.asset)) {
|
|
580
|
+
return (assetInfo);
|
|
581
|
+
}
|
|
582
|
+
const providers = await this.getAssetMovementProvidersForAsset(assetInfo.asset, assetInfo.location);
|
|
583
|
+
if (!providers) {
|
|
584
|
+
return (assetInfo);
|
|
585
|
+
}
|
|
586
|
+
if (options?.providerID) {
|
|
587
|
+
const found = providers[options.providerID];
|
|
588
|
+
if (!found) {
|
|
589
|
+
return (assetInfo);
|
|
590
|
+
}
|
|
591
|
+
const metadata = found.provider.getAssetMetadataForLocation(assetInfo.location, assetInfo.asset);
|
|
592
|
+
if (!metadata) {
|
|
593
|
+
return (assetInfo);
|
|
594
|
+
}
|
|
595
|
+
return ({
|
|
596
|
+
...assetInfo,
|
|
597
|
+
metadata
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
for (const { provider } of Object.values(providers)) {
|
|
601
|
+
const metadata = provider.getAssetMetadataForLocation(assetInfo.location, assetInfo.asset);
|
|
602
|
+
if (!metadata) {
|
|
603
|
+
continue;
|
|
604
|
+
}
|
|
605
|
+
return ({
|
|
606
|
+
...assetInfo,
|
|
607
|
+
metadata
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
return (assetInfo);
|
|
611
|
+
}
|
|
612
|
+
async resolveAssetsWithMetadata(filter = {}, options) {
|
|
613
|
+
const result = await this.resolveAssets(filter);
|
|
614
|
+
const [from, to] = await Promise.all([
|
|
615
|
+
Promise.all(result.from.map((info) => this.#attachMetadata(info, options))),
|
|
616
|
+
Promise.all(result.to.map((info) => this.#attachMetadata(info, options)))
|
|
617
|
+
]);
|
|
618
|
+
return ({ from, to });
|
|
619
|
+
}
|
|
620
|
+
async listAssetsWithMetadata(filter = {}, options) {
|
|
621
|
+
const result = await this.resolveAssetsWithMetadata(filter, options);
|
|
622
|
+
if (filter.from) {
|
|
623
|
+
return (result.to);
|
|
624
|
+
}
|
|
625
|
+
else if (filter.to) {
|
|
626
|
+
return (result.from);
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
return (result.to);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
539
632
|
}
|
|
540
633
|
export class AnchorChainingPath {
|
|
541
634
|
request;
|