@keetanetwork/anchor 0.0.53 → 0.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/lib/asset.d.ts +18 -4
  2. package/lib/asset.d.ts.map +1 -1
  3. package/lib/asset.js +18 -0
  4. package/lib/asset.js.map +1 -1
  5. package/lib/chaining-graph.cli.d.ts +2 -0
  6. package/lib/chaining-graph.cli.d.ts.map +1 -0
  7. package/lib/chaining-graph.cli.js +257 -0
  8. package/lib/chaining-graph.cli.js.map +1 -0
  9. package/lib/chaining.d.ts +247 -0
  10. package/lib/chaining.d.ts.map +1 -0
  11. package/lib/chaining.js +1187 -0
  12. package/lib/chaining.js.map +1 -0
  13. package/lib/metadata.types.d.ts +28 -0
  14. package/lib/metadata.types.d.ts.map +1 -0
  15. package/lib/metadata.types.generated.d.ts +3 -0
  16. package/lib/metadata.types.generated.d.ts.map +1 -0
  17. package/lib/metadata.types.generated.js +15 -0
  18. package/lib/metadata.types.generated.js.map +1 -0
  19. package/lib/metadata.types.js +50 -0
  20. package/lib/metadata.types.js.map +1 -0
  21. package/lib/resolver.d.ts +15 -19
  22. package/lib/resolver.d.ts.map +1 -1
  23. package/lib/resolver.js +1101 -469
  24. package/lib/resolver.js.map +1 -1
  25. package/npm-shrinkwrap.json +2 -2
  26. package/package.json +1 -1
  27. package/services/asset-movement/client.d.ts +12 -5
  28. package/services/asset-movement/client.d.ts.map +1 -1
  29. package/services/asset-movement/client.js +190 -9
  30. package/services/asset-movement/client.js.map +1 -1
  31. package/services/asset-movement/common.d.ts +119 -60
  32. package/services/asset-movement/common.d.ts.map +1 -1
  33. package/services/asset-movement/common.generated.d.ts +48 -0
  34. package/services/asset-movement/common.generated.d.ts.map +1 -0
  35. package/services/asset-movement/common.generated.js +37425 -0
  36. package/services/asset-movement/common.generated.js.map +1 -0
  37. package/services/asset-movement/common.js +22 -35368
  38. package/services/asset-movement/common.js.map +1 -1
  39. package/services/asset-movement/lib/location.d.ts +10 -1
  40. package/services/asset-movement/lib/location.d.ts.map +1 -1
  41. package/services/asset-movement/lib/location.generated.d.ts +2 -1
  42. package/services/asset-movement/lib/location.generated.d.ts.map +1 -1
  43. package/services/asset-movement/lib/location.generated.js +23 -0
  44. package/services/asset-movement/lib/location.generated.js.map +1 -1
  45. package/services/asset-movement/lib/location.js +3 -0
  46. package/services/asset-movement/lib/location.js.map +1 -1
  47. package/services/asset-movement/server.d.ts +17 -6
  48. package/services/asset-movement/server.d.ts.map +1 -1
  49. package/services/asset-movement/server.js +47 -2
  50. package/services/asset-movement/server.js.map +1 -1
  51. package/services/fx/client.d.ts +3 -2
  52. package/services/fx/client.d.ts.map +1 -1
  53. package/services/fx/client.js +8 -3
  54. package/services/fx/client.js.map +1 -1
  55. package/services/fx/server.d.ts +2 -1
  56. package/services/fx/server.d.ts.map +1 -1
  57. package/services/fx/server.js +3 -0
  58. package/services/fx/server.js.map +1 -1
  59. package/services/storage/clients/contacts.generated.js +142 -90
  60. package/services/storage/clients/contacts.generated.js.map +1 -1
  61. package/services/storage/common.d.ts +7 -1
  62. package/services/storage/common.d.ts.map +1 -1
  63. package/services/storage/common.js.map +1 -1
  64. package/services/storage/server.js +1 -1
  65. package/services/storage/server.js.map +1 -1
  66. package/services/storage/test-utils.d.ts +1 -0
  67. package/services/storage/test-utils.d.ts.map +1 -1
  68. package/services/storage/test-utils.js +3 -0
  69. package/services/storage/test-utils.js.map +1 -1
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@keetanetwork/anchor",
3
- "version": "0.0.53",
3
+ "version": "0.0.58",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@keetanetwork/anchor",
9
- "version": "0.0.53",
9
+ "version": "0.0.58",
10
10
  "license": "SEE LICENSE IN LICENSE",
11
11
  "dependencies": {
12
12
  "@keetanetwork/currency-info": "1.2.5",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keetanetwork/anchor",
3
- "version": "0.0.53",
3
+ "version": "0.0.58",
4
4
  "description": "KeetaNetwork Network Anchor",
5
5
  "main": "client/index.js",
6
6
  "scripts": {
@@ -1,12 +1,14 @@
1
1
  import type { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';
2
2
  import { getDefaultResolver } from '../../config.js';
3
3
  import type { UserClient as KeetaNetUserClient } from '@keetanetwork/keetanet-client';
4
- import type { KeetaAssetMovementAnchorGetTransferStatusResponse, KeetaAssetMovementAnchorCreatePersistentForwardingResponse, SupportedAssetsMetadata, ProviderSearchInput, KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse, AssetTransferInstructions, KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest, KeetaAssetMovementAnchorInitiateTransferClientRequest, KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, KeetaAssetMovementAnchorlistTransactionsClientRequest, KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, PersistentAddressTemplateData, KeetaAssetMovementAnchorGetTransferStatusClientRequest, KeetaAssetMovementAnchorShareKYCClientRequest, KeetaAssetMovementAnchorListPersistentForwardingClientRequest, KeetaPersistentForwardingAddressDetails, KeetaAssetMovementAnchorInitiateTransferResponse } from './common.js';
4
+ import type { KeetaAssetMovementAnchorGetTransferStatusResponse, KeetaAssetMovementAnchorCreatePersistentForwardingResponse, SupportedAssetsMetadata, ProviderSearchInput, KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse, AssetTransferInstructions, KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest, KeetaAssetMovementAnchorInitiateTransferClientRequest, KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateClientRequest, KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse, KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, KeetaAssetMovementAnchorlistTransactionsClientRequest, KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, PersistentAddressTemplateData, KeetaAssetMovementAnchorGetTransferStatusClientRequest, KeetaAssetMovementAnchorShareKYCClientRequest, KeetaAssetMovementAnchorListPersistentForwardingClientRequest, KeetaPersistentForwardingAddressDetails, KeetaAssetMovementAnchorInitiateTransferResponse, KeetaAssetMovementAnchorExecuteTransferClientRequest, AnchorTokenLocationMetadata, AnchorCustomLocationMetadata, AssetLocationLike } from './common.js';
5
5
  import type { Logger } from '../../lib/log/index.ts';
6
6
  import Resolver from "../../lib/resolver.js";
7
- import type { ServiceMetadata, ServiceMetadataAuthenticationType } from '../../lib/resolver.ts';
7
+ import type { ServiceMetadata, ServiceMetadataAuthenticationType, SharedLookupCriteria } from '../../lib/resolver.ts';
8
8
  import type { BrandedString } from '../../lib/utils/brand.js';
9
9
  import type { ExtractOk } from '../../lib/http-server/common.js';
10
+ import { type SharedAnchorMetadataLegalExtension } from '../../lib/metadata.types.js';
11
+ import type { ExternalChainAsset } from '../../lib/asset.js';
10
12
  /**
11
13
  * The configuration options for the Asset Movement (Inbound/Outbound) Anchor client.
12
14
  */
@@ -61,12 +63,13 @@ type KeetaAssetMovementAnchorOperations = {
61
63
  /**
62
64
  * The service information for a KYC Anchor service.
63
65
  */
64
- type KeetaAssetMovementServiceInfo = {
66
+ interface KeetaAssetMovementServiceInfo extends SharedAnchorMetadataLegalExtension {
65
67
  operations: {
66
68
  [operation in keyof KeetaAssetMovementAnchorOperations]: Promise<KeetaAssetMovementAnchorOperations[operation]>;
67
69
  };
68
70
  supportedAssets: SupportedAssetsMetadata[];
69
- };
71
+ locationMetadata?: AnchorCustomLocationMetadata;
72
+ }
70
73
  interface KeetaAssetMovementAnchorBaseConfig {
71
74
  client: KeetaNetUserClient;
72
75
  logger?: Logger | undefined;
@@ -85,6 +88,7 @@ declare class KeetaAssetMovementTransfer {
85
88
  private transfer;
86
89
  constructor(provider: KeetaAssetMovementAnchorProvider, request: KeetaAssetMovementAnchorInitiateTransferClientRequest, transfer: ExtractOk<KeetaAssetMovementAnchorInitiateTransferResponse>);
87
90
  getTransferStatus(): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
91
+ executeTransfer(input: Omit<KeetaAssetMovementAnchorExecuteTransferClientRequest, 'id'>): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
88
92
  get transferId(): string;
89
93
  get instructions(): AssetTransferInstructions[];
90
94
  }
@@ -100,7 +104,9 @@ declare class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorB
100
104
  private readonly parent;
101
105
  constructor(serviceInfo: KeetaAssetMovementServiceInfo, providerID: ProviderID, parent: KeetaAssetMovementAnchorClient);
102
106
  initiateTransfer(request: KeetaAssetMovementAnchorInitiateTransferClientRequest): Promise<KeetaAssetMovementTransfer>;
107
+ executeTransfer(request: KeetaAssetMovementAnchorExecuteTransferClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
103
108
  getTransferStatus(request: KeetaAssetMovementAnchorGetTransferStatusClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
109
+ initiatePersistentForwardingTemplate(request: KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse>>;
104
110
  createPersistentForwardingTemplate(request: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;
105
111
  createPersistentForwardingAddress(request: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;
106
112
  listForwardingAddressTemplates(request: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest): Promise<{
@@ -113,13 +119,14 @@ declare class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorB
113
119
  }>;
114
120
  listTransactions(request: KeetaAssetMovementAnchorlistTransactionsClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>>;
115
121
  shareKYCAttributes(request: KeetaAssetMovementAnchorShareKYCClientRequest, awaitOptions?: AwaitPromiseURLOptions): Promise<void>;
122
+ getAssetMetadataForLocation(location: AssetLocationLike, asset: ExternalChainAsset): AnchorTokenLocationMetadata | null;
116
123
  }
117
124
  declare class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
118
125
  #private;
119
126
  readonly resolver: Resolver;
120
127
  readonly id: string;
121
128
  constructor(client: KeetaNetUserClient, config?: KeetaAssetMovementClientConfig);
122
- getProvidersForTransfer(request: ProviderSearchInput): Promise<KeetaAssetMovementAnchorProvider[] | null>;
129
+ getProvidersForTransfer(request: ProviderSearchInput, shared?: SharedLookupCriteria): Promise<KeetaAssetMovementAnchorProvider[] | null>;
123
130
  getProviderByID(providerID: string): Promise<KeetaAssetMovementAnchorProvider | null>;
124
131
  }
125
132
  export default KeetaAssetMovementAnchorClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as __typia_transform__assertGuard from "typia/lib/internal/_assertGuard.js";
2
2
  import * as __typia_transform__accessExpressionAsString from "typia/lib/internal/_accessExpressionAsString.js";
3
3
  import { getDefaultResolver } from '../../config.js';
4
- import { assertKeetaSupportedAssetsMetadata, convertAssetLocationToString, convertAssetOrPairSearchInputToCanonical, convertAssetSearchInputToCanonical, getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData, getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData, getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData, getKeetaAssetMovementAnchorInitiateTransferRequestSigningData, getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData, getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData, getKeetaAssetMovementAnchorlistTransactionsRequestSigningData, getKeetaAssetMovementAnchorShareKYCRequestSigningData, isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse, isKeetaAssetMovementAnchorCreatePersistentForwardingResponse, isKeetaAssetMovementAnchorGetExchangeStatusResponse, isKeetaAssetMovementAnchorInitiateTransferResponse, isKeetaAssetMovementAnchorListForwardingAddressTemplateResponse, isKeetaAssetMovementAnchorListPersistentForwardingResponse, isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse, isKeetaAssetMovementAnchorShareKYCResponse } from './common.js';
4
+ import { assertKeetaSupportedAssetsMetadataItem, convertAssetLocationToString, convertAssetOrPairSearchInputToCanonical, convertAssetSearchInputToCanonical, getKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData, isKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse, getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData, getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData, getKeetaAssetMovementAnchorExecuteTransferRequestSigningData, getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData, getKeetaAssetMovementAnchorInitiateTransferRequestSigningData, getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData, getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData, getKeetaAssetMovementAnchorlistTransactionsRequestSigningData, getKeetaAssetMovementAnchorShareKYCRequestSigningData, isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse, isKeetaAssetMovementAnchorCreatePersistentForwardingResponse, isKeetaAssetMovementAnchorExecuteTransferResponse, isKeetaAssetMovementAnchorGetExchangeStatusResponse, isKeetaAssetMovementAnchorInitiateTransferResponse, isKeetaAssetMovementAnchorListForwardingAddressTemplateResponse, isKeetaAssetMovementAnchorListPersistentForwardingResponse, isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse, isKeetaAssetMovementAnchorShareKYCResponse, toAssetLocationFromString, isExternalChainAsset, isAnchorTokenLocationMetadata } from './common.js';
5
5
  import Resolver from "../../lib/resolver.js";
6
6
  import crypto from '../../lib/utils/crypto.js';
7
7
  import { createAssertEquals } from 'typia';
@@ -9,6 +9,7 @@ import { addSignatureToURL } from '../../lib/http-server/common.js';
9
9
  import { SignData } from '../../lib/utils/signing.js';
10
10
  import { KeetaAnchorError } from '../../lib/error.js';
11
11
  import { KeetaNet } from '../../client/index.js';
12
+ import { resolveSharedAnchorMetadataLegalExtension } from '../../lib/metadata.types.js';
12
13
  /**
13
14
  * An opaque type that represents an Asset Movement Anchor request ID
14
15
  */
@@ -137,6 +138,7 @@ const assertServiceMetadataEndpoint = (() => { const _io0 = (input, _exceptionab
137
138
  }
138
139
  return input;
139
140
  }; })();
141
+ ;
140
142
  function validateURL(url) {
141
143
  if (url === undefined || url === null) {
142
144
  throw (new Error('Invalid URL: null or undefined'));
@@ -160,7 +162,112 @@ async function getEndpoints(resolver, request, shared, logger) {
160
162
  }
161
163
  const serviceInfoPromises = Object.entries(response).map(async function ([id, serviceInfo]) {
162
164
  const supportedAssetsMetadata = await Resolver.Metadata.fullyResolveValuizable(serviceInfo.supportedAssets);
163
- const supportedAssets = assertKeetaSupportedAssetsMetadata(supportedAssetsMetadata);
165
+ if (!Array.isArray(supportedAssetsMetadata)) {
166
+ throw (new Error('Invalid supportedAssets metadata: expected an array'));
167
+ }
168
+ const supportedAssets = [];
169
+ for (const item of supportedAssetsMetadata) {
170
+ try {
171
+ supportedAssets.push(assertKeetaSupportedAssetsMetadataItem(item));
172
+ }
173
+ catch (error) {
174
+ logger?.debug('getEndpoints', `Failed to resolve supportedAssets metadata item for provider ${id}`, error, item);
175
+ }
176
+ }
177
+ const locationMetadata = await (async () => {
178
+ let locationMetadataVal;
179
+ if (serviceInfo.locationMetadata) {
180
+ locationMetadataVal = await serviceInfo.locationMetadata('object');
181
+ }
182
+ if (!locationMetadataVal) {
183
+ return (undefined);
184
+ }
185
+ const chainsResult = await Promise.allSettled(Object.entries(locationMetadataVal).map(async ([location, assetsValue]) => {
186
+ const parsedLocation = toAssetLocationFromString(location);
187
+ if (parsedLocation.type !== 'chain') {
188
+ throw (new Error(`Invalid location type in AssetLocation string: ${parsedLocation.type}`));
189
+ }
190
+ if (parsedLocation.chain.type === 'keeta') {
191
+ throw (new Error('Keeta chain type is not supported in AssetLocation metadata'));
192
+ }
193
+ const chainType = parsedLocation.chain.type;
194
+ // We can assert here as we have validated the chain type in the parsing function
195
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
196
+ const locationString = convertAssetLocationToString(parsedLocation);
197
+ let resolvedAssetsObject = undefined;
198
+ if (assetsValue) {
199
+ resolvedAssetsObject = await assetsValue('object');
200
+ }
201
+ if (!resolvedAssetsObject) {
202
+ return (null);
203
+ }
204
+ let assets;
205
+ if (resolvedAssetsObject.assets) {
206
+ const assetsValue = await resolvedAssetsObject.assets('object');
207
+ const resolvedAssets = await Promise.allSettled(Object.entries(assetsValue).map(async ([assetId, assetMetadata]) => {
208
+ if (!isExternalChainAsset(assetId, chainType)) {
209
+ throw (new Error(`Invalid asset ID for chain type ${chainType}: ${assetId}`));
210
+ }
211
+ let assetMetadataVal;
212
+ if (assetMetadata) {
213
+ assetMetadataVal = await assetMetadata('object');
214
+ }
215
+ if (!assetMetadataVal) {
216
+ return (null);
217
+ }
218
+ const anchorTokenLocationMetadata = {
219
+ displayName: await assetMetadataVal.displayName?.('string'),
220
+ ticker: await assetMetadataVal.ticker?.('string'),
221
+ logoURI: await assetMetadataVal.logoURI?.('string'),
222
+ decimalPlaces: await assetMetadataVal.decimalPlaces?.('primitive')
223
+ };
224
+ if (!isAnchorTokenLocationMetadata(anchorTokenLocationMetadata)) {
225
+ throw (new Error(`Invalid asset metadata for asset ID ${assetId} in chain type ${chainType}`));
226
+ }
227
+ return [assetId, anchorTokenLocationMetadata];
228
+ }));
229
+ for (const result of resolvedAssets) {
230
+ if (result.status === 'rejected') {
231
+ logger?.debug('Failed to resolve asset metadata', result.reason);
232
+ continue;
233
+ }
234
+ if (!result.value) {
235
+ continue;
236
+ }
237
+ if (!assets) {
238
+ assets = {};
239
+ }
240
+ assets[result.value[0]] = result.value[1];
241
+ }
242
+ }
243
+ return [
244
+ locationString,
245
+ {
246
+ ...(assets ? { assets } : {})
247
+ }
248
+ ];
249
+ }));
250
+ let chains;
251
+ for (const result of chainsResult) {
252
+ if (result.status === 'rejected') {
253
+ logger?.debug('Failed to resolve location metadata', result.reason);
254
+ continue;
255
+ }
256
+ if (!result.value) {
257
+ continue;
258
+ }
259
+ if (!chains) {
260
+ chains = {};
261
+ }
262
+ // XXX:TODO Add comment
263
+ // @ts-ignore
264
+ chains[result.value[0]] = result.value[1];
265
+ }
266
+ if (!chains) {
267
+ return (undefined);
268
+ }
269
+ return (chains);
270
+ })();
164
271
  const operations = await serviceInfo.operations('object');
165
272
  const operationsFunctions = {};
166
273
  for (const [key, operation] of Object.entries(operations)) {
@@ -210,8 +317,10 @@ async function getEndpoints(resolver, request, shared, logger) {
210
317
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
211
318
  id,
212
319
  {
320
+ ...(await resolveSharedAnchorMetadataLegalExtension(serviceInfo.legal, { logger })),
213
321
  operations: operationsFunctions,
214
- supportedAssets: supportedAssets
322
+ supportedAssets: supportedAssets,
323
+ ...(locationMetadata ? { locationMetadata } : {})
215
324
  }
216
325
  ]);
217
326
  });
@@ -242,6 +351,10 @@ class KeetaAssetMovementTransfer {
242
351
  const account = this.request.account ? { account: this.request.account } : undefined;
243
352
  return (await this.provider.getTransferStatus({ id: this.transfer.id, ...account }));
244
353
  }
354
+ async executeTransfer(input) {
355
+ const account = this.request.account ? { account: this.request.account } : undefined;
356
+ return (await this.provider.executeTransfer({ id: this.transfer.id, ...input, ...account }));
357
+ }
245
358
  get transferId() {
246
359
  return (this.transfer.id);
247
360
  }
@@ -386,6 +499,23 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
386
499
  this.logger?.debug(`asset movement request successful, request ID ${requestInformationJSON.id}`);
387
500
  return (new KeetaAssetMovementTransfer(this, request, requestInformationJSON));
388
501
  }
502
+ async executeTransfer(request) {
503
+ this.logger?.debug(`Starting Asset Movement Transfer for provider ID: ${String(this.providerID)}`);
504
+ const { id, ...rest } = request;
505
+ const requestInformationJSON = await this.#makeRequest({
506
+ method: 'POST',
507
+ endpoint: 'executeTransfer',
508
+ params: { id: request.id },
509
+ account: request.account,
510
+ body: rest,
511
+ getSignedData: (body) => {
512
+ return (getKeetaAssetMovementAnchorExecuteTransferRequestSigningData({ id, ...body }));
513
+ },
514
+ isResponse: isKeetaAssetMovementAnchorExecuteTransferResponse
515
+ });
516
+ this.logger?.debug(`asset movement execute transfer successful, transaction ID ${requestInformationJSON.transaction.id}`);
517
+ return (requestInformationJSON);
518
+ }
389
519
  async getTransferStatus(request) {
390
520
  const requestInformationJSON = await this.#makeRequest({
391
521
  method: 'GET',
@@ -398,11 +528,11 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
398
528
  this.logger?.debug(`asset movement request successful, request ID ${request.id}`);
399
529
  return (requestInformationJSON);
400
530
  }
401
- async createPersistentForwardingTemplate(request) {
402
- this.logger?.debug(`Creating persistent forwarding for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);
403
- const requestInformationJSON = await this.#makeRequest({
531
+ async initiatePersistentForwardingTemplate(request) {
532
+ this.logger?.debug(`Initiating persistent forwarding template for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);
533
+ const result = await this.#makeRequest({
404
534
  method: 'POST',
405
- endpoint: 'createPersistentForwardingTemplate',
535
+ endpoint: 'initiatePersistentForwardingTemplate',
406
536
  account: request.account,
407
537
  serializeRequest(body) {
408
538
  const { account, ...rest } = body;
@@ -414,6 +544,36 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
414
544
  });
415
545
  },
416
546
  body: request,
547
+ getSignedData: getKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData,
548
+ isResponse: isKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse
549
+ });
550
+ this.logger?.debug(`initiate persistent forwarding template successful, session ID: ${result.id}`);
551
+ return (result);
552
+ }
553
+ async createPersistentForwardingTemplate(request) {
554
+ this.logger?.debug(`Creating persistent forwarding for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);
555
+ const requestInformationJSON = await this.#makeRequest({
556
+ method: 'POST',
557
+ endpoint: 'createPersistentForwardingTemplate',
558
+ account: request.account,
559
+ serializeRequest(body) {
560
+ const { account, ...rest } = body;
561
+ if ('data' in body) {
562
+ return ({
563
+ ...rest,
564
+ data: body.data
565
+ });
566
+ }
567
+ else {
568
+ return ({
569
+ ...rest,
570
+ location: convertAssetLocationToString(body.location),
571
+ asset: convertAssetOrPairSearchInputToCanonical(body.asset),
572
+ ...(account ? { account: account.assertAccount().publicKeyString.get() } : {})
573
+ });
574
+ }
575
+ },
576
+ body: request,
417
577
  getSignedData: getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData,
418
578
  isResponse: isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse
419
579
  });
@@ -629,6 +789,27 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
629
789
  }
630
790
  this.logger?.debug(`done sharing KYC attributes`);
631
791
  }
792
+ getAssetMetadataForLocation(location, asset) {
793
+ const locationMetadata = this.serviceInfo.locationMetadata;
794
+ if (!locationMetadata) {
795
+ return (null);
796
+ }
797
+ const locationString = convertAssetLocationToString(location);
798
+ if (!(locationString in locationMetadata)) {
799
+ return (null);
800
+ }
801
+ // We can assert here as we have validated the key is included above
802
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
803
+ const locationSpecificMetadata = locationMetadata[locationString];
804
+ if (!locationSpecificMetadata?.assets || !(asset in locationSpecificMetadata.assets)) {
805
+ return (null);
806
+ }
807
+ const assetMetadata = locationSpecificMetadata.assets[asset];
808
+ if (!assetMetadata) {
809
+ return (null);
810
+ }
811
+ return (assetMetadata);
812
+ }
632
813
  }
633
814
  class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
634
815
  resolver;
@@ -673,8 +854,8 @@ class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
673
854
  });
674
855
  return (providers);
675
856
  }
676
- async getProvidersForTransfer(request) {
677
- return (await this.#lookup(request));
857
+ async getProvidersForTransfer(request, shared) {
858
+ return (await this.#lookup(request, shared));
678
859
  }
679
860
  async getProviderByID(providerID) {
680
861
  const providers = await this.#lookup({}, { providerIDs: [providerID] });