@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.
- package/lib/asset.d.ts +18 -4
- package/lib/asset.d.ts.map +1 -1
- package/lib/asset.js +18 -0
- package/lib/asset.js.map +1 -1
- package/lib/chaining-graph.cli.d.ts +2 -0
- package/lib/chaining-graph.cli.d.ts.map +1 -0
- package/lib/chaining-graph.cli.js +257 -0
- package/lib/chaining-graph.cli.js.map +1 -0
- package/lib/chaining.d.ts +247 -0
- package/lib/chaining.d.ts.map +1 -0
- package/lib/chaining.js +1187 -0
- package/lib/chaining.js.map +1 -0
- package/lib/metadata.types.d.ts +28 -0
- package/lib/metadata.types.d.ts.map +1 -0
- package/lib/metadata.types.generated.d.ts +3 -0
- package/lib/metadata.types.generated.d.ts.map +1 -0
- package/lib/metadata.types.generated.js +15 -0
- package/lib/metadata.types.generated.js.map +1 -0
- package/lib/metadata.types.js +50 -0
- package/lib/metadata.types.js.map +1 -0
- package/lib/resolver.d.ts +15 -19
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +1101 -469
- package/lib/resolver.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/services/asset-movement/client.d.ts +12 -5
- package/services/asset-movement/client.d.ts.map +1 -1
- package/services/asset-movement/client.js +190 -9
- package/services/asset-movement/client.js.map +1 -1
- package/services/asset-movement/common.d.ts +119 -60
- package/services/asset-movement/common.d.ts.map +1 -1
- package/services/asset-movement/common.generated.d.ts +48 -0
- package/services/asset-movement/common.generated.d.ts.map +1 -0
- package/services/asset-movement/common.generated.js +37425 -0
- package/services/asset-movement/common.generated.js.map +1 -0
- package/services/asset-movement/common.js +22 -35368
- package/services/asset-movement/common.js.map +1 -1
- package/services/asset-movement/lib/location.d.ts +10 -1
- package/services/asset-movement/lib/location.d.ts.map +1 -1
- package/services/asset-movement/lib/location.generated.d.ts +2 -1
- package/services/asset-movement/lib/location.generated.d.ts.map +1 -1
- package/services/asset-movement/lib/location.generated.js +23 -0
- package/services/asset-movement/lib/location.generated.js.map +1 -1
- package/services/asset-movement/lib/location.js +3 -0
- package/services/asset-movement/lib/location.js.map +1 -1
- package/services/asset-movement/server.d.ts +17 -6
- package/services/asset-movement/server.d.ts.map +1 -1
- package/services/asset-movement/server.js +47 -2
- package/services/asset-movement/server.js.map +1 -1
- package/services/fx/client.d.ts +3 -2
- package/services/fx/client.d.ts.map +1 -1
- package/services/fx/client.js +8 -3
- package/services/fx/client.js.map +1 -1
- package/services/fx/server.d.ts +2 -1
- package/services/fx/server.d.ts.map +1 -1
- package/services/fx/server.js +3 -0
- package/services/fx/server.js.map +1 -1
- package/services/storage/clients/contacts.generated.js +142 -90
- package/services/storage/clients/contacts.generated.js.map +1 -1
- package/services/storage/common.d.ts +7 -1
- package/services/storage/common.d.ts.map +1 -1
- package/services/storage/common.js.map +1 -1
- package/services/storage/server.js +1 -1
- package/services/storage/server.js.map +1 -1
- package/services/storage/test-utils.d.ts +1 -0
- package/services/storage/test-utils.d.ts.map +1 -1
- package/services/storage/test-utils.js +3 -0
- package/services/storage/test-utils.js.map +1 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keetanetwork/anchor",
|
|
3
|
-
"version": "0.0.
|
|
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.
|
|
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,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
|
-
|
|
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":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EACX,UAAU,IAAI,kBAAkB,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACX,iDAAiD,EAEjD,0DAA0D,EAC1D,uBAAuB,EACvB,mBAAmB,EAEnB,oEAAoE,EACpE,yBAAyB,EACzB,+DAA+D,EAC/D,qDAAqD,EAErD,8EAA8E,EAG9E,qDAAqD,EACrD,kEAAkE,EAClE,6BAA6B,EAC7B,sDAAsD,EACtD,6CAA6C,EAG7C,6DAA6D,EAC7D,uCAAuC,EACvC,gDAAgD,EAChD,MAAM,aAAa,CAAC;
|
|
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 {
|
|
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
|
-
|
|
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
|
|
402
|
-
this.logger?.debug(`
|
|
403
|
-
const
|
|
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: '
|
|
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] });
|