@keetanetwork/anchor 0.0.53 → 0.0.60
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/queue/drivers/queue_postgres.d.ts +20 -3
- package/lib/queue/drivers/queue_postgres.d.ts.map +1 -1
- package/lib/queue/drivers/queue_postgres.js +152 -40
- package/lib/queue/drivers/queue_postgres.js.map +1 -1
- package/lib/resolver.d.ts +15 -19
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +1106 -504
- 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 +31 -12
- package/services/asset-movement/client.d.ts.map +1 -1
- package/services/asset-movement/client.js +247 -25
- package/services/asset-movement/client.js.map +1 -1
- package/services/asset-movement/common.d.ts +142 -62
- package/services/asset-movement/common.d.ts.map +1 -1
- package/services/asset-movement/common.generated.d.ts +51 -0
- package/services/asset-movement/common.generated.d.ts.map +1 -0
- package/services/asset-movement/common.generated.js +54492 -0
- package/services/asset-movement/common.generated.js.map +1 -0
- package/services/asset-movement/common.js +25 -35368
- package/services/asset-movement/common.js.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/ca.d.ts +4 -0
- package/services/asset-movement/lib/data/addresses/bank-account/ca.d.ts.map +1 -0
- package/services/asset-movement/lib/data/addresses/bank-account/ca.js +49 -0
- package/services/asset-movement/lib/data/addresses/bank-account/ca.js.map +1 -0
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.d.ts +4 -0
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.d.ts.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.js +4 -0
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.js.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/interac.d.ts.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/interac.js +9 -20
- package/services/asset-movement/lib/data/addresses/bank-account/interac.js.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/pix.d.ts.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/pix.js +3 -2
- package/services/asset-movement/lib/data/addresses/bank-account/pix.js.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/uae.d.ts +4 -0
- package/services/asset-movement/lib/data/addresses/bank-account/uae.d.ts.map +1 -0
- package/services/asset-movement/lib/data/addresses/bank-account/uae.js +45 -0
- package/services/asset-movement/lib/data/addresses/bank-account/uae.js.map +1 -0
- package/services/asset-movement/lib/data/addresses/types.generated.d.ts +260 -52
- package/services/asset-movement/lib/data/addresses/types.generated.d.ts.map +1 -1
- package/services/asset-movement/lib/data/addresses/types.generated.js +252 -35
- package/services/asset-movement/lib/data/addresses/types.generated.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 +25 -2
- 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 +21 -6
- package/services/asset-movement/server.d.ts.map +1 -1
- package/services/asset-movement/server.js +69 -3
- 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 +686 -310
- 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.60",
|
|
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.60",
|
|
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,
|
|
4
|
+
import type { KeetaAssetMovementAnchorGetTransferStatusResponse, KeetaAssetMovementAnchorCreatePersistentForwardingResponse, SupportedAssetsMetadata, ProviderSearchInput, KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse, KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest, KeetaAssetMovementAnchorInitiateTransferClientRequest, KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateClientRequest, KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse, KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, KeetaAssetMovementAnchorlistTransactionsClientRequest, KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, PersistentAddressTemplateData, KeetaAssetMovementAnchorGetTransferStatusClientRequest, KeetaAssetMovementAnchorShareKYCClientRequest, KeetaAssetMovementAnchorListPersistentForwardingClientRequest, KeetaPersistentForwardingAddressDetails, KeetaAssetMovementAnchorInitiateTransferResponse, KeetaAssetMovementAnchorExecuteTransferClientRequest, AnchorTokenLocationMetadata, AnchorCustomLocationMetadata, AssetLocationLike, KeetaAssetMovementAnchorSimulateTransferResponse, KeetaAssetMovementAnchorSimulateTransferClientRequest } 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;
|
|
@@ -76,17 +79,29 @@ declare class KeetaAssetMovementAnchorBase {
|
|
|
76
79
|
protected readonly client: KeetaNetUserClient;
|
|
77
80
|
constructor(config: KeetaAssetMovementAnchorBaseConfig);
|
|
78
81
|
}
|
|
82
|
+
type SimulationOrTransferResponse = ExtractOk<KeetaAssetMovementAnchorInitiateTransferResponse> | ExtractOk<KeetaAssetMovementAnchorSimulateTransferResponse>;
|
|
83
|
+
interface BaseKeetaAssetMovementTransferConstructorArguments<Transfer extends SimulationOrTransferResponse> {
|
|
84
|
+
provider: KeetaAssetMovementAnchorProvider;
|
|
85
|
+
request: KeetaAssetMovementAnchorInitiateTransferClientRequest;
|
|
86
|
+
transfer: Transfer;
|
|
87
|
+
}
|
|
88
|
+
declare class BaseKeetaAssetMovementTransfer<Transfer extends SimulationOrTransferResponse> {
|
|
89
|
+
readonly provider: KeetaAssetMovementAnchorProvider;
|
|
90
|
+
readonly request: KeetaAssetMovementAnchorInitiateTransferClientRequest;
|
|
91
|
+
readonly transfer: Transfer;
|
|
92
|
+
constructor({ request, transfer, provider }: BaseKeetaAssetMovementTransferConstructorArguments<Transfer>);
|
|
93
|
+
get instructions(): Transfer['instructionChoices'];
|
|
94
|
+
}
|
|
79
95
|
/**
|
|
80
96
|
* Represents an in-progress Asset Movement request.
|
|
81
97
|
*/
|
|
82
|
-
declare class KeetaAssetMovementTransfer {
|
|
83
|
-
private readonly provider;
|
|
84
|
-
private request;
|
|
85
|
-
private transfer;
|
|
86
|
-
constructor(provider: KeetaAssetMovementAnchorProvider, request: KeetaAssetMovementAnchorInitiateTransferClientRequest, transfer: ExtractOk<KeetaAssetMovementAnchorInitiateTransferResponse>);
|
|
87
|
-
getTransferStatus(): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
|
|
98
|
+
declare class KeetaAssetMovementTransfer extends BaseKeetaAssetMovementTransfer<ExtractOk<KeetaAssetMovementAnchorInitiateTransferResponse>> {
|
|
88
99
|
get transferId(): string;
|
|
89
|
-
|
|
100
|
+
getTransferStatus(): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
|
|
101
|
+
executeTransfer(input: Omit<KeetaAssetMovementAnchorExecuteTransferClientRequest, 'id'>): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
|
|
102
|
+
}
|
|
103
|
+
declare class KeetaAssetMovementSimulatedTransfer extends BaseKeetaAssetMovementTransfer<ExtractOk<KeetaAssetMovementAnchorSimulateTransferResponse>> {
|
|
104
|
+
createTransfer(): Promise<KeetaAssetMovementTransfer>;
|
|
90
105
|
}
|
|
91
106
|
interface AwaitPromiseURLOptions {
|
|
92
107
|
defaultPollIntervalMs?: number;
|
|
@@ -100,7 +115,10 @@ declare class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorB
|
|
|
100
115
|
private readonly parent;
|
|
101
116
|
constructor(serviceInfo: KeetaAssetMovementServiceInfo, providerID: ProviderID, parent: KeetaAssetMovementAnchorClient);
|
|
102
117
|
initiateTransfer(request: KeetaAssetMovementAnchorInitiateTransferClientRequest): Promise<KeetaAssetMovementTransfer>;
|
|
118
|
+
simulateTransfer(request: KeetaAssetMovementAnchorSimulateTransferClientRequest): Promise<KeetaAssetMovementSimulatedTransfer>;
|
|
119
|
+
executeTransfer(request: KeetaAssetMovementAnchorExecuteTransferClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
|
|
103
120
|
getTransferStatus(request: KeetaAssetMovementAnchorGetTransferStatusClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;
|
|
121
|
+
initiatePersistentForwardingTemplate(request: KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse>>;
|
|
104
122
|
createPersistentForwardingTemplate(request: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;
|
|
105
123
|
createPersistentForwardingAddress(request: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;
|
|
106
124
|
listForwardingAddressTemplates(request: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest): Promise<{
|
|
@@ -113,13 +131,14 @@ declare class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorB
|
|
|
113
131
|
}>;
|
|
114
132
|
listTransactions(request: KeetaAssetMovementAnchorlistTransactionsClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>>;
|
|
115
133
|
shareKYCAttributes(request: KeetaAssetMovementAnchorShareKYCClientRequest, awaitOptions?: AwaitPromiseURLOptions): Promise<void>;
|
|
134
|
+
getAssetMetadataForLocation(location: AssetLocationLike, asset: ExternalChainAsset): AnchorTokenLocationMetadata | null;
|
|
116
135
|
}
|
|
117
136
|
declare class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
|
|
118
137
|
#private;
|
|
119
138
|
readonly resolver: Resolver;
|
|
120
139
|
readonly id: string;
|
|
121
140
|
constructor(client: KeetaNetUserClient, config?: KeetaAssetMovementClientConfig);
|
|
122
|
-
getProvidersForTransfer(request: ProviderSearchInput): Promise<KeetaAssetMovementAnchorProvider[] | null>;
|
|
141
|
+
getProvidersForTransfer(request: ProviderSearchInput, shared?: SharedLookupCriteria): Promise<KeetaAssetMovementAnchorProvider[] | null>;
|
|
123
142
|
getProviderByID(providerID: string): Promise<KeetaAssetMovementAnchorProvider | null>;
|
|
124
143
|
}
|
|
125
144
|
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
|
|
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, isKeetaAssetMovementAnchorSimulateTransferResponse, getKeetaAssetMovementAnchorSimulateTransferRequestSigningData } 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
|
});
|
|
@@ -226,27 +335,38 @@ class KeetaAssetMovementAnchorBase {
|
|
|
226
335
|
this.logger = config.logger;
|
|
227
336
|
}
|
|
228
337
|
}
|
|
229
|
-
|
|
230
|
-
* Represents an in-progress Asset Movement request.
|
|
231
|
-
*/
|
|
232
|
-
class KeetaAssetMovementTransfer {
|
|
338
|
+
class BaseKeetaAssetMovementTransfer {
|
|
233
339
|
provider;
|
|
234
340
|
request;
|
|
235
341
|
transfer;
|
|
236
|
-
constructor(
|
|
342
|
+
constructor({ request, transfer, provider }) {
|
|
237
343
|
this.provider = provider;
|
|
238
344
|
this.request = request;
|
|
239
345
|
this.transfer = transfer;
|
|
240
346
|
}
|
|
347
|
+
get instructions() {
|
|
348
|
+
return (this.transfer.instructionChoices);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Represents an in-progress Asset Movement request.
|
|
353
|
+
*/
|
|
354
|
+
class KeetaAssetMovementTransfer extends BaseKeetaAssetMovementTransfer {
|
|
355
|
+
get transferId() {
|
|
356
|
+
return (this.transfer.id);
|
|
357
|
+
}
|
|
241
358
|
async getTransferStatus() {
|
|
242
359
|
const account = this.request.account ? { account: this.request.account } : undefined;
|
|
243
360
|
return (await this.provider.getTransferStatus({ id: this.transfer.id, ...account }));
|
|
244
361
|
}
|
|
245
|
-
|
|
246
|
-
|
|
362
|
+
async executeTransfer(input) {
|
|
363
|
+
const account = this.request.account ? { account: this.request.account } : undefined;
|
|
364
|
+
return (await this.provider.executeTransfer({ id: this.transfer.id, ...input, ...account }));
|
|
247
365
|
}
|
|
248
|
-
|
|
249
|
-
|
|
366
|
+
}
|
|
367
|
+
class KeetaAssetMovementSimulatedTransfer extends BaseKeetaAssetMovementTransfer {
|
|
368
|
+
async createTransfer() {
|
|
369
|
+
return (await this.provider.initiateTransfer(this.request));
|
|
250
370
|
}
|
|
251
371
|
}
|
|
252
372
|
class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
@@ -357,11 +477,11 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
357
477
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
358
478
|
return requestInformationJSON;
|
|
359
479
|
}
|
|
360
|
-
async
|
|
480
|
+
async #initiateOrSimulateTransfer(simulate, request) {
|
|
361
481
|
this.logger?.debug(`Starting Asset Movement Transfer for provider ID: ${String(this.providerID)}`);
|
|
362
482
|
const requestInformationJSON = await this.#makeRequest({
|
|
363
483
|
method: 'POST',
|
|
364
|
-
endpoint: 'initiateTransfer',
|
|
484
|
+
endpoint: simulate ? 'simulateTransfer' : 'initiateTransfer',
|
|
365
485
|
account: request.account,
|
|
366
486
|
serializeRequest(body) {
|
|
367
487
|
const { account, ...rest } = body;
|
|
@@ -369,7 +489,8 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
369
489
|
...rest,
|
|
370
490
|
value: String(body.value),
|
|
371
491
|
from: {
|
|
372
|
-
location: convertAssetLocationToString(body.from.location)
|
|
492
|
+
location: convertAssetLocationToString(body.from.location),
|
|
493
|
+
...(request.from.source ? { source: request.from.source } : {})
|
|
373
494
|
},
|
|
374
495
|
to: {
|
|
375
496
|
location: convertAssetLocationToString(body.to.location),
|
|
@@ -380,11 +501,58 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
380
501
|
});
|
|
381
502
|
},
|
|
382
503
|
body: request,
|
|
383
|
-
getSignedData: getKeetaAssetMovementAnchorInitiateTransferRequestSigningData,
|
|
384
|
-
isResponse
|
|
504
|
+
getSignedData: simulate ? getKeetaAssetMovementAnchorSimulateTransferRequestSigningData : getKeetaAssetMovementAnchorInitiateTransferRequestSigningData,
|
|
505
|
+
isResponse(data) {
|
|
506
|
+
if (simulate) {
|
|
507
|
+
return (isKeetaAssetMovementAnchorSimulateTransferResponse(data));
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
return (isKeetaAssetMovementAnchorInitiateTransferResponse(data));
|
|
511
|
+
}
|
|
512
|
+
}
|
|
385
513
|
});
|
|
386
|
-
|
|
387
|
-
|
|
514
|
+
if (simulate) {
|
|
515
|
+
this.logger?.debug(`asset movement simulation request successful`);
|
|
516
|
+
return (new KeetaAssetMovementSimulatedTransfer({
|
|
517
|
+
provider: this,
|
|
518
|
+
request,
|
|
519
|
+
transfer: requestInformationJSON
|
|
520
|
+
}));
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
if (!('id' in requestInformationJSON)) {
|
|
524
|
+
throw (new Error('expected provider to return id but did not'));
|
|
525
|
+
}
|
|
526
|
+
this.logger?.debug(`asset movement transfer request successful, request ID ${requestInformationJSON.id}`);
|
|
527
|
+
return (new KeetaAssetMovementTransfer({
|
|
528
|
+
provider: this,
|
|
529
|
+
request,
|
|
530
|
+
transfer: requestInformationJSON
|
|
531
|
+
}));
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
async initiateTransfer(request) {
|
|
535
|
+
return (await this.#initiateOrSimulateTransfer(false, request));
|
|
536
|
+
}
|
|
537
|
+
async simulateTransfer(request) {
|
|
538
|
+
return (await this.#initiateOrSimulateTransfer(true, request));
|
|
539
|
+
}
|
|
540
|
+
async executeTransfer(request) {
|
|
541
|
+
this.logger?.debug(`Starting Asset Movement Transfer for provider ID: ${String(this.providerID)}`);
|
|
542
|
+
const { id, ...rest } = request;
|
|
543
|
+
const requestInformationJSON = await this.#makeRequest({
|
|
544
|
+
method: 'POST',
|
|
545
|
+
endpoint: 'executeTransfer',
|
|
546
|
+
params: { id: request.id },
|
|
547
|
+
account: request.account,
|
|
548
|
+
body: rest,
|
|
549
|
+
getSignedData: (body) => {
|
|
550
|
+
return (getKeetaAssetMovementAnchorExecuteTransferRequestSigningData({ id, ...body }));
|
|
551
|
+
},
|
|
552
|
+
isResponse: isKeetaAssetMovementAnchorExecuteTransferResponse
|
|
553
|
+
});
|
|
554
|
+
this.logger?.debug(`asset movement execute transfer successful, transaction ID ${requestInformationJSON.transaction.id}`);
|
|
555
|
+
return (requestInformationJSON);
|
|
388
556
|
}
|
|
389
557
|
async getTransferStatus(request) {
|
|
390
558
|
const requestInformationJSON = await this.#makeRequest({
|
|
@@ -398,11 +566,11 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
398
566
|
this.logger?.debug(`asset movement request successful, request ID ${request.id}`);
|
|
399
567
|
return (requestInformationJSON);
|
|
400
568
|
}
|
|
401
|
-
async
|
|
402
|
-
this.logger?.debug(`
|
|
403
|
-
const
|
|
569
|
+
async initiatePersistentForwardingTemplate(request) {
|
|
570
|
+
this.logger?.debug(`Initiating persistent forwarding template for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);
|
|
571
|
+
const result = await this.#makeRequest({
|
|
404
572
|
method: 'POST',
|
|
405
|
-
endpoint: '
|
|
573
|
+
endpoint: 'initiatePersistentForwardingTemplate',
|
|
406
574
|
account: request.account,
|
|
407
575
|
serializeRequest(body) {
|
|
408
576
|
const { account, ...rest } = body;
|
|
@@ -414,6 +582,39 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
414
582
|
});
|
|
415
583
|
},
|
|
416
584
|
body: request,
|
|
585
|
+
getSignedData: getKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData,
|
|
586
|
+
isResponse: isKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse
|
|
587
|
+
});
|
|
588
|
+
this.logger?.debug(`initiate persistent forwarding template successful, session ID: ${result.id}`);
|
|
589
|
+
return (result);
|
|
590
|
+
}
|
|
591
|
+
async createPersistentForwardingTemplate(request) {
|
|
592
|
+
this.logger?.debug(`Creating persistent forwarding for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);
|
|
593
|
+
const requestInformationJSON = await this.#makeRequest({
|
|
594
|
+
method: 'POST',
|
|
595
|
+
endpoint: 'createPersistentForwardingTemplate',
|
|
596
|
+
account: request.account,
|
|
597
|
+
serializeRequest(body) {
|
|
598
|
+
const { account, ...rest } = body;
|
|
599
|
+
const sharedFields = {
|
|
600
|
+
...rest,
|
|
601
|
+
...(account ? { account: account.assertAccount().publicKeyString.get() } : {})
|
|
602
|
+
};
|
|
603
|
+
if ('data' in body) {
|
|
604
|
+
return ({
|
|
605
|
+
...sharedFields,
|
|
606
|
+
data: body.data
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
else {
|
|
610
|
+
return ({
|
|
611
|
+
...sharedFields,
|
|
612
|
+
location: convertAssetLocationToString(body.location),
|
|
613
|
+
asset: convertAssetOrPairSearchInputToCanonical(body.asset)
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
body: request,
|
|
417
618
|
getSignedData: getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData,
|
|
418
619
|
isResponse: isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse
|
|
419
620
|
});
|
|
@@ -629,6 +830,27 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
629
830
|
}
|
|
630
831
|
this.logger?.debug(`done sharing KYC attributes`);
|
|
631
832
|
}
|
|
833
|
+
getAssetMetadataForLocation(location, asset) {
|
|
834
|
+
const locationMetadata = this.serviceInfo.locationMetadata;
|
|
835
|
+
if (!locationMetadata) {
|
|
836
|
+
return (null);
|
|
837
|
+
}
|
|
838
|
+
const locationString = convertAssetLocationToString(location);
|
|
839
|
+
if (!(locationString in locationMetadata)) {
|
|
840
|
+
return (null);
|
|
841
|
+
}
|
|
842
|
+
// We can assert here as we have validated the key is included above
|
|
843
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
844
|
+
const locationSpecificMetadata = locationMetadata[locationString];
|
|
845
|
+
if (!locationSpecificMetadata?.assets || !(asset in locationSpecificMetadata.assets)) {
|
|
846
|
+
return (null);
|
|
847
|
+
}
|
|
848
|
+
const assetMetadata = locationSpecificMetadata.assets[asset];
|
|
849
|
+
if (!assetMetadata) {
|
|
850
|
+
return (null);
|
|
851
|
+
}
|
|
852
|
+
return (assetMetadata);
|
|
853
|
+
}
|
|
632
854
|
}
|
|
633
855
|
class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
|
|
634
856
|
resolver;
|
|
@@ -673,8 +895,8 @@ class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
|
|
|
673
895
|
});
|
|
674
896
|
return (providers);
|
|
675
897
|
}
|
|
676
|
-
async getProvidersForTransfer(request) {
|
|
677
|
-
return (await this.#lookup(request));
|
|
898
|
+
async getProvidersForTransfer(request, shared) {
|
|
899
|
+
return (await this.#lookup(request, shared));
|
|
678
900
|
}
|
|
679
901
|
async getProviderByID(providerID) {
|
|
680
902
|
const providers = await this.#lookup({}, { providerIDs: [providerID] });
|