@keetanetwork/anchor 0.0.62 → 0.0.63
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/anchor-metadata-server.d.ts +54 -0
- package/lib/anchor-metadata-server.d.ts.map +1 -0
- package/lib/anchor-metadata-server.js +62 -0
- package/lib/anchor-metadata-server.js.map +1 -0
- package/lib/error.d.ts +35 -0
- package/lib/error.d.ts.map +1 -1
- package/lib/error.generated.d.ts +3 -0
- package/lib/error.generated.d.ts.map +1 -0
- package/lib/error.generated.js +104 -0
- package/lib/error.generated.js.map +1 -0
- package/lib/error.js +66 -1
- package/lib/error.js.map +1 -1
- package/lib/http-server/common.d.ts +20 -2
- package/lib/http-server/common.d.ts.map +1 -1
- package/lib/http-server/common.js +47 -0
- package/lib/http-server/common.js.map +1 -1
- package/lib/http-server/index.d.ts +22 -0
- package/lib/http-server/index.d.ts.map +1 -1
- package/lib/http-server/index.js +23 -0
- package/lib/http-server/index.js.map +1 -1
- package/lib/metadata.types.d.ts +40 -0
- package/lib/metadata.types.d.ts.map +1 -1
- package/lib/metadata.types.js.map +1 -1
- package/lib/resolver.d.ts +19 -20
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +1420 -681
- package/lib/resolver.js.map +1 -1
- package/lib/utils/certificate-network.d.ts +84 -0
- package/lib/utils/certificate-network.d.ts.map +1 -0
- package/lib/utils/certificate-network.js +104 -0
- package/lib/utils/certificate-network.js.map +1 -0
- package/lib/utils/signing.d.ts +12 -0
- package/lib/utils/signing.d.ts.map +1 -1
- package/lib/utils/signing.js +145 -2
- package/lib/utils/signing.js.map +1 -1
- package/npm-shrinkwrap.json +4 -4
- package/package.json +1 -1
- package/services/asset-movement/common.d.ts.map +1 -1
- package/services/asset-movement/common.js +7 -53
- package/services/asset-movement/common.js.map +1 -1
- package/services/asset-movement/server.d.ts +6 -4
- package/services/asset-movement/server.d.ts.map +1 -1
- package/services/asset-movement/server.js +3 -3
- package/services/asset-movement/server.js.map +1 -1
- package/services/fx/common.js +7 -7
- package/services/fx/server.d.ts +9 -7
- package/services/fx/server.d.ts.map +1 -1
- package/services/fx/server.js +5 -5
- package/services/fx/server.js.map +1 -1
- package/services/kyc/server.d.ts +6 -4
- package/services/kyc/server.d.ts.map +1 -1
- package/services/kyc/server.js +3 -3
- package/services/kyc/server.js.map +1 -1
- package/services/notification/common.d.ts +2 -1
- package/services/notification/common.d.ts.map +1 -1
- package/services/notification/common.generated.js +20 -20
- package/services/notification/common.js +3 -2
- package/services/notification/common.js.map +1 -1
- package/services/notification/server.d.ts +7 -6
- package/services/notification/server.d.ts.map +1 -1
- package/services/notification/server.js +25 -62
- package/services/notification/server.js.map +1 -1
- package/services/storage/common.d.ts +2 -1
- package/services/storage/common.d.ts.map +1 -1
- package/services/storage/common.js +7 -2
- package/services/storage/common.js.map +1 -1
- package/services/storage/server.d.ts +7 -5
- package/services/storage/server.d.ts.map +1 -1
- package/services/storage/server.js +29 -99
- package/services/storage/server.js.map +1 -1
- package/services/username/common.d.ts +2 -1
- package/services/username/common.d.ts.map +1 -1
- package/services/username/common.generated.js +14 -48
- package/services/username/common.generated.js.map +1 -1
- package/services/username/common.js +3 -2
- package/services/username/common.js.map +1 -1
- package/services/username/server.d.ts +7 -6
- package/services/username/server.d.ts.map +1 -1
- package/services/username/server.js +38 -46
- package/services/username/server.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/services/asset-movement/server.ts"],"names":[],"mappings":"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","sourcesContent":["import * as KeetaAnchorHTTPServer from '../../lib/http-server/index.js';\nimport { KeetaNet } from '../../client/index.js';\nimport {\n\tKeetaAnchorUserError\n} from '../../lib/error.js';\nimport type {\n\tKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tKeetaAssetMovementAnchorInitiateTransferRequest,\n\tKeetaAssetMovementAnchorInitiateTransferResponse,\n\tKeetaAssetMovementAnchorGetTransferStatusResponse,\n\tKeetaAssetMovementAnchorlistTransactionsRequest,\n\tKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\tKeetaAssetMovementAnchorListPersistentForwardingRequest,\n\tKeetaAssetMovementAnchorListPersistentForwardingResponse,\n\tKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest,\n\tKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest,\n\tKeetaAssetMovementAnchorListForwardingAddressTemplateRequest,\n\tKeetaAssetMovementAnchorListForwardingAddressTemplateResponse,\n\tKeetaAssetMovementAnchorShareKYCRequest,\n\tKeetaAssetMovementAnchorShareKYCResponse,\n\tKeetaAssetMovementAnchorExecuteTransferRequest,\n\tKeetaAssetMovementAnchorExecuteTransferResponse,\n\tKeetaAssetMovementAnchorSimulateTransferRequest,\n\tKeetaAssetMovementAnchorSimulateTransferResponse\n} from './common.ts';\nimport {\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tassertKeetaAssetMovementAnchorInitiateTransferRequest,\n\tassertKeetaAssetMovementAnchorInitiateTransferResponse,\n\tassertKeetaAssetMovementAnchorGetTransferStatusResponse,\n\tassertKeetaAssetMovementAnchorlistTransactionsRequest,\n\tassertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\tassertKeetaAssetMovementAnchorListPersistentForwardingRequest,\n\tassertKeetaAssetMovementAnchorListPersistentForwardingResponse,\n\tassertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest,\n\tassertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse,\n\tgetKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData,\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest,\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse,\n\tgetKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData,\n\tassertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest,\n\tassertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse,\n\tgetKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData,\n\tgetKeetaAssetMovementAnchorGetTransferStatusRequestSigningData,\n\tgetKeetaAssetMovementAnchorInitiateTransferRequestSigningData,\n\tassertKeetaAssetMovementAnchorShareKYCResponse,\n\tassertKeetaAssetMovementAnchorShareKYCRequest,\n\tgetKeetaAssetMovementAnchorShareKYCRequestSigningData,\n\tconvertAssetLocationToString,\n\tcommonJSONStringify,\n\tgetKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData,\n\tgetKeetaAssetMovementAnchorlistTransactionsRequestSigningData,\n\tgetKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData,\n\tgetKeetaAssetMovementAnchorExecuteTransferRequestSigningData,\n\tassertKeetaAssetMovementAnchorExecuteTransferRequest,\n\tassertKeetaAssetMovementAnchorExecuteTransferResponse,\n\tgetKeetaAssetMovementAnchorSimulateTransferRequestSigningData,\n\tassertKeetaAssetMovementAnchorSimulateTransferRequest,\n\tassertKeetaAssetMovementAnchorSimulateTransferResponse\n} from './common.js';\nimport type { ServiceMetadata } from '../../lib/resolver.ts';\nimport type { Signable } from '../../lib/utils/signing.js';\nimport { VerifySignedData } from '../../lib/utils/signing.js';\nimport type Account from '@keetanetwork/keetanet-client/lib/account.js';\nimport type { ExtractOk, HTTPSignedFieldURLParameters } from '../../lib/http-server/common.js';\nimport { assertHTTPSignedField, parseSignatureFromURL } from '../../lib/http-server/common.js';\nimport type { JSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nimport type { SharedAnchorMetadataLegalExtension } from '../../lib/metadata.types.js';\n\ntype AssetMovementServiceMetadata = NonNullable<ServiceMetadata['services']['assetMovement']>[string];\n\nexport interface KeetaAnchorAssetMovementServerConfig extends KeetaAnchorHTTPServer.KeetaAnchorHTTPServerConfig {\n\t/**\n\t * The data to use for the index page (optional)\n\t */\n\thomepage?: string | (() => Promise<string> | string);\n\n\t/**\n\t * Configuration for asset movement operations\n\t */\n\tassetMovement: SharedAnchorMetadataLegalExtension & Pick<AssetMovementServiceMetadata, 'supportedAssets' | 'locationMetadata'> & {\n\t\tauthenticationRequired?: boolean;\n\n\t\t/**\n\t\t * Method to initiate the two-step creation of a persistent forwarding address template.\n\t\t * Returns a session ID and provider-specific data (e.g. a Plaid link token) for the client to complete.\n\t\t */\n\t\tinitiatePersistentForwardingTemplate?: (request: KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse>>;\n\n\t\t/**\n\t\t * Method to create a persistent forwarding address template.\n\t\t * Accepts either a direct resolved address or a session completion payload (e.g. Plaid public token).\n\t\t */\n\t\tcreatePersistentForwardingTemplate?: (request: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>>;\n\n\t\t/**\n\t\t * Method to list persistent forwarding address templates\n\t\t */\n\t\tlistPersistentForwardingTemplate?: (request: KeetaAssetMovementAnchorListForwardingAddressTemplateRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>>;\n\n\t\t/**\n\t\t * Method to create a persistent forwarding address\n\t\t */\n\t\tcreatePersistentForwarding?: (request: KeetaAssetMovementAnchorCreatePersistentForwardingRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;\n\n\t\t/**\n\t\t * Method to list persistent forwarding addresses\n\t\t */\n\t\tlistPersistentForwarding?: (request: KeetaAssetMovementAnchorListPersistentForwardingRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorListPersistentForwardingResponse>>;\n\n\t\t/**\n\t\t * Method to initiate a transfer\n\t\t */\n\t\tinitiateTransfer?: (request: KeetaAssetMovementAnchorInitiateTransferRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorInitiateTransferResponse>>;\n\n\t\t/**\n\t\t * Method to initiate a transfer\n\t\t */\n\t\tsimulateTransfer?: (request: KeetaAssetMovementAnchorSimulateTransferRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorSimulateTransferResponse>>;\n\n\t\t/**\n\t\t * Method to get the status of a transfer\n\t\t */\n\t\tgetTransferStatus?: (id: string, account: Account.Account | null) => Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;\n\n\t\t/**\n\t\t * Method to list transactions\n\t\t */\n\t\tlistTransactions?: (request: KeetaAssetMovementAnchorlistTransactionsRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>>;\n\n\t\t/**\n\t\t * Method to share KYC (Know Your Customer) information\n\t\t */\n\t\tshareKYC?: (request: KeetaAssetMovementAnchorShareKYCRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorShareKYCResponse>>;\n\n\t\t/**\n\t\t * Method to execute a transfer instruction, used for pull based transactions\n\t\t */\n\t\texecuteTransfer?: (request: KeetaAssetMovementAnchorExecuteTransferRequest & { id: string; }) => Promise<ExtractOk<KeetaAssetMovementAnchorExecuteTransferResponse>>;\n\t}\n};\n\nfunction serializeTransactionResponse(transaction: ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>['transaction']): ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>['transaction'] {\n\treturn({\n\t\t...transaction,\n\t\tfrom: {\n\t\t\t...transaction.from,\n\t\t\tlocation: convertAssetLocationToString(transaction.from.location)\n\t\t},\n\t\tto: {\n\t\t\t...transaction.to,\n\t\t\tlocation: convertAssetLocationToString(transaction.to.location)\n\t\t}\n\t});\n}\n\nfunction serializePersistentAddressTemplateResponse(template: ExtractOk<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>['templates'][number]): ExtractOk<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>['templates'][number] {\n\treturn({\n\t\t...template,\n\t\tlocation: convertAssetLocationToString(template.location)\n\t});\n}\n\nexport class KeetaNetAssetMovementAnchorHTTPServer extends KeetaAnchorHTTPServer.KeetaNetAnchorHTTPServer<KeetaAnchorAssetMovementServerConfig> implements Required<KeetaAnchorAssetMovementServerConfig> {\n\treadonly homepage: NonNullable<KeetaAnchorAssetMovementServerConfig['homepage']>;\n\treadonly assetMovement: NonNullable<KeetaAnchorAssetMovementServerConfig['assetMovement']>;\n\n\tconstructor(config: KeetaAnchorAssetMovementServerConfig) {\n\t\tsuper(config);\n\n\t\tthis.homepage = config.homepage ?? '';\n\t\tthis.assetMovement = config.assetMovement;\n\t}\n\n\tprotected async initRoutes(config: KeetaAnchorAssetMovementServerConfig): Promise<KeetaAnchorHTTPServer.Routes> {\n\t\tconst routes: KeetaAnchorHTTPServer.Routes = {};\n\n\t\t/**\n\t\t * If a homepage is provided, setup the route for it\n\t\t */\n\t\tif ('homepage' in config) {\n\t\t\troutes['GET /'] = async function() {\n\t\t\t\tlet homepageData: string;\n\t\t\t\tif (typeof config.homepage === 'string') {\n\t\t\t\t\thomepageData = config.homepage;\n\t\t\t\t} else {\n\t\t\t\t\tif (!config.homepage) {\n\t\t\t\t\t\tthrow(new Error('internal error: No homepage function provided'));\n\t\t\t\t\t}\n\n\t\t\t\t\thomepageData = await config.homepage();\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\toutput: homepageData,\n\t\t\t\t\tcontentType: 'text/html'\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction addRoute<\n\t\t\tHandlerName extends keyof KeetaAnchorAssetMovementServerConfig['assetMovement'],\n\t\t\tSerializedRequest extends { [key: string]: unknown } | undefined,\n\t\t\tResponse\n\t\t>(input: {\n\t\t\tmethod: 'GET' | 'POST';\n\t\t\thandlerName: HandlerName;\n\t\t\tpathName?: string;\n\t\t\toverrideAllowUnauthenticated?: boolean;\n\t\t\tassertRequest?: (data: unknown) => SerializedRequest;\n\t\t\tserializeResponse?: (data: ExtractOk<Response>) => unknown;\n\t\t\tassertResponse: (data: unknown) => Response;\n\t\t\tgetSigningData?: (data: SerializedRequest, params: Map<string, string>) => Signable;\n\t\t\tparseRequestToArgs?: (params: {\n\t\t\t\tparams: Map<string, string>;\n\t\t\t\tbody: SerializedRequest | undefined,\n\t\t\t\turl: URL,\n\t\t\t\taccount: Account.Account | null\n\t\t\t\t// Typescript needs any here, but eslint does not like it\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t}) => NonNullable<KeetaAnchorAssetMovementServerConfig['assetMovement'][HandlerName]> extends (...args: infer R extends any[]) => any ? R : never;\n\t\t\tgetSignatureFieldAccountFromRequest?: (params: { body: JSONSerializable | undefined, url: URL }) => Partial<HTTPSignedFieldURLParameters>;\n\t\t}) {\n\t\t\tconst handler = config.assetMovement[input.handlerName];\n\t\t\tif (handler === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof handler !== 'function') {\n\t\t\t\tthrow(new Error(`internal error: handler for ${String(input.handlerName)} is not a function`));\n\t\t\t}\n\n\t\t\tconst authenticationRequired = config.assetMovement.authenticationRequired === true && (input.overrideAllowUnauthenticated !== true);\n\n\t\t\troutes[`${input.method} /api/${input.pathName ?? input.handlerName}`] = async function(params, postData, _ignore_headers, url) {\n\t\t\t\tlet request: SerializedRequest;\n\t\t\t\tif (input.method === 'GET') {\n\t\t\t\t\t// For GET requests, we do not expect a body\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t\trequest = undefined as SerializedRequest;\n\t\t\t\t} else {\n\t\t\t\t\tif (!input.assertRequest) {\n\t\t\t\t\t\tthrow(new Error('input.assertRequest is required when method = POST'));\n\t\t\t\t\t}\n\t\t\t\t\trequest = input.assertRequest(postData);\n\t\t\t\t}\n\n\t\t\t\tlet account: Account.Account | null = null;\n\t\t\t\tif (authenticationRequired || (request !== undefined && 'signed' in request)) {\n\t\t\t\t\tlet signed;\n\t\t\t\t\tif (input.getSignatureFieldAccountFromRequest !== undefined) {\n\t\t\t\t\t\tconst parsed = input.getSignatureFieldAccountFromRequest({ body: postData, url });\n\n\t\t\t\t\t\tif (!parsed.account || !parsed.signedField) {\n\t\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing authentication information'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taccount = parsed.account;\n\t\t\t\t\t\tsigned = parsed.signedField;\n\t\t\t\t\t} else if (request) {\n\t\t\t\t\t\tif (!('account' in request) || !('signed' in request)) {\n\t\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing authentication information'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof request.account !== 'string') {\n\t\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Invalid account public key'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taccount = KeetaNet.lib.Account.fromPublicKeyString(request.account).assertAccount();\n\t\t\t\t\t\tsigned = assertHTTPSignedField(request.signed);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow(new Error('when request is not defined, getSignatureFieldAccountFromRequest must be provided'));\n\t\t\t\t\t}\n\n\t\t\t\t\tconst signable = input.getSigningData ? input.getSigningData(request, params) : [];\n\n\t\t\t\t\tconst valid = await VerifySignedData(account, signable, signed);\n\n\t\t\t\t\tif (!valid) {\n\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Invalid signature'));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tlet parsedRequest: any[];\n\t\t\t\tif (input.parseRequestToArgs) {\n\t\t\t\t\tparsedRequest = input.parseRequestToArgs({ body: request, params, url, account: account ?? null });\n\t\t\t\t} else {\n\t\t\t\t\tparsedRequest = [ request, account ];\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\t\tconst result = await handler(...parsedRequest);\n\n\t\t\t\tif ('ok' in result && (result.ok !== undefined && result.ok !== true)) {\n\t\t\t\t\tthrow(new Error('internal error: response serialization must not have ok field'));\n\t\t\t\t}\n\n\t\t\t\tconst resp = input.assertResponse({ ...result, ok: true });\n\n\t\t\t\tlet serialized;\n\t\t\t\tif (input.serializeResponse) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t\tserialized = input.serializeResponse(resp as ExtractOk<Response>);\n\t\t\t\t} else {\n\t\t\t\t\tserialized = resp;\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\toutput: commonJSONStringify(serialized)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'createPersistentForwarding',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\tsourceLocation: data.sourceLocation ? convertAssetLocationToString(data.sourceLocation) : undefined,\n\t\t\t\t\tdestinationLocation: data.destinationLocation ? convertAssetLocationToString(data.destinationLocation) : undefined\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'listPersistentForwarding',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorListPersistentForwardingRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorListPersistentForwardingResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\taddresses: data.addresses.map(addr => ({\n\t\t\t\t\t\t...addr,\n\t\t\t\t\t\tsourceLocation: addr.sourceLocation ? convertAssetLocationToString(addr.sourceLocation) : undefined,\n\t\t\t\t\t\tdestinationLocation: addr.destinationLocation ? convertAssetLocationToString(addr.destinationLocation) : undefined\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'initiateTransfer',\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorInitiateTransferRequestSigningData,\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorInitiateTransferRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorInitiateTransferResponse,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\tinstructionChoices: data.instructionChoices.map(function(choice) {\n\t\t\t\t\t\tconst ret = { ...choice };\n\t\t\t\t\t\tif ('location' in ret) {\n\t\t\t\t\t\t\tret.location = convertAssetLocationToString(ret.location);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(ret);\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'simulateTransfer',\n\t\t\toverrideAllowUnauthenticated: true,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorSimulateTransferRequestSigningData,\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorSimulateTransferRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorSimulateTransferResponse,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\tinstructionChoices: data.instructionChoices.map(function(choice) {\n\t\t\t\t\t\tconst ret = { ...choice };\n\t\t\t\t\t\tif ('location' in ret) {\n\t\t\t\t\t\t\tret.location = convertAssetLocationToString(ret.location);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(ret);\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'executeTransfer',\n\t\t\tpathName: 'executeTransfer/:id',\n\t\t\tgetSigningData: function(data, params) {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\t\t\t\treturn(getKeetaAssetMovementAnchorExecuteTransferRequestSigningData({\n\t\t\t\t\tid: id,\n\t\t\t\t\t...data\n\t\t\t\t}));\n\t\t\t},\n\t\t\tparseRequestToArgs: ({ body, params }) => {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\n\t\t\t\tif (!body) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid request body'));\n\t\t\t\t}\n\n\t\t\t\treturn([ { id, ...body } ] as const);\n\t\t\t},\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorExecuteTransferRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorExecuteTransferResponse,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttransaction: serializeTransactionResponse(data.transaction)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'GET',\n\t\t\thandlerName: 'getTransferStatus',\n\t\t\tpathName: 'getTransferStatus/:id',\n\t\t\tassertRequest: (input) => {\n\t\t\t\tif (input !== undefined) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('No body expected for getTransferStatus'));\n\t\t\t\t}\n\n\t\t\t\treturn(undefined);\n\t\t\t},\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorGetTransferStatusResponse,\n\t\t\tgetSignatureFieldAccountFromRequest: ({ url }) => parseSignatureFromURL(url),\n\t\t\tparseRequestToArgs: ({ params, account }) => {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\n\t\t\t\treturn([ id, account ] as const);\n\t\t\t},\n\t\t\tgetSigningData(_ignore_request, params) {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\n\t\t\t\treturn(getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData({ id }));\n\t\t\t},\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttransaction: serializeTransactionResponse(data.transaction)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'listTransactions',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorlistTransactionsRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorlistTransactionsRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttransactions: data.transactions.map(tx => serializeTransactionResponse(tx))\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'initiatePersistentForwardingTemplate',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'createPersistentForwardingTemplate',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\t...(serializePersistentAddressTemplateResponse(data))\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'listPersistentForwardingTemplate',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttemplates: data.templates.map(template => serializePersistentAddressTemplateResponse(template))\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'shareKYC',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorShareKYCRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorShareKYCResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorShareKYCRequestSigningData\n\t\t});\n\n\t\treturn(routes);\n\t}\n\n\tasync serviceMetadata(): Promise<NonNullable<ServiceMetadata['services']['assetMovement']>[string]> {\n\t\tconst operations: NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'] = {};\n\n\t\tconst routes = [\n\t\t\t'initiateTransfer',\n\t\t\t'simulateTransfer',\n\t\t\t'listTransactions',\n\t\t\t'initiatePersistentForwardingTemplate',\n\t\t\t'createPersistentForwardingTemplate',\n\t\t\t'listPersistentForwardingTemplate',\n\t\t\t'createPersistentForwarding',\n\t\t\t'listPersistentForwarding',\n\t\t\t'shareKYC',\n\t\t\t[ 'getTransferStatus', 'getTransferStatus/{id}' ],\n\t\t\t[ 'executeTransfer', 'executeTransfer/{id}' ]\n\t\t] as const satisfies ((keyof typeof operations) | [ keyof typeof operations, string ])[];\n\n\t\tfor (const routeInput of routes) {\n\t\t\tlet op;\n\t\t\tlet url;\n\t\t\tif (Array.isArray(routeInput)) {\n\t\t\t\top = routeInput[0];\n\t\t\t\turl = routeInput[1];\n\t\t\t} else {\n\t\t\t\top = routeInput;\n\t\t\t\turl = routeInput;\n\t\t\t}\n\n\t\t\tif (this.assetMovement[op] !== undefined) {\n\t\t\t\tconst computedURL = (new URL(`/api/${url}`, this.url)).toString();\n\t\t\t\tif (this.assetMovement.authenticationRequired) {\n\t\t\t\t\toperations[op] = {\n\t\t\t\t\t\turl: computedURL,\n\t\t\t\t\t\toptions: { authentication: { method: 'keeta-account', type: 'required' }}\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\toperations[op] = computedURL;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(operations).length === 0) {\n\t\t\tthrow(new KeetaAnchorUserError('No operations are supported on this server'));\n\t\t}\n\t\treturn({\n\t\t\t...(this.assetMovement.legal ? { legal: this.assetMovement.legal } : {}),\n\t\t\t...(this.assetMovement.locationMetadata ? { locationMetadata: this.assetMovement.locationMetadata } : {}),\n\t\t\toperations: operations,\n\t\t\tsupportedAssets: this.assetMovement.supportedAssets\n\t\t});\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/services/asset-movement/server.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as KeetaAnchorHTTPServer from '../../lib/http-server/index.js';\nimport { KeetaAnchorMetadataServer } from '../../lib/anchor-metadata-server.js';\nimport type { KeetaAnchorMetadataServerConfig } from '../../lib/anchor-metadata-server.js';\nimport { KeetaNet } from '../../client/index.js';\nimport {\n\tKeetaAnchorUserError\n} from '../../lib/error.js';\nimport type {\n\tKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tKeetaAssetMovementAnchorInitiateTransferRequest,\n\tKeetaAssetMovementAnchorInitiateTransferResponse,\n\tKeetaAssetMovementAnchorGetTransferStatusResponse,\n\tKeetaAssetMovementAnchorlistTransactionsRequest,\n\tKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\tKeetaAssetMovementAnchorListPersistentForwardingRequest,\n\tKeetaAssetMovementAnchorListPersistentForwardingResponse,\n\tKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest,\n\tKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest,\n\tKeetaAssetMovementAnchorListForwardingAddressTemplateRequest,\n\tKeetaAssetMovementAnchorListForwardingAddressTemplateResponse,\n\tKeetaAssetMovementAnchorShareKYCRequest,\n\tKeetaAssetMovementAnchorShareKYCResponse,\n\tKeetaAssetMovementAnchorExecuteTransferRequest,\n\tKeetaAssetMovementAnchorExecuteTransferResponse,\n\tKeetaAssetMovementAnchorSimulateTransferRequest,\n\tKeetaAssetMovementAnchorSimulateTransferResponse\n} from './common.ts';\nimport {\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tassertKeetaAssetMovementAnchorInitiateTransferRequest,\n\tassertKeetaAssetMovementAnchorInitiateTransferResponse,\n\tassertKeetaAssetMovementAnchorGetTransferStatusResponse,\n\tassertKeetaAssetMovementAnchorlistTransactionsRequest,\n\tassertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\tassertKeetaAssetMovementAnchorListPersistentForwardingRequest,\n\tassertKeetaAssetMovementAnchorListPersistentForwardingResponse,\n\tassertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest,\n\tassertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse,\n\tgetKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData,\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest,\n\tassertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse,\n\tgetKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData,\n\tassertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest,\n\tassertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse,\n\tgetKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData,\n\tgetKeetaAssetMovementAnchorGetTransferStatusRequestSigningData,\n\tgetKeetaAssetMovementAnchorInitiateTransferRequestSigningData,\n\tassertKeetaAssetMovementAnchorShareKYCResponse,\n\tassertKeetaAssetMovementAnchorShareKYCRequest,\n\tgetKeetaAssetMovementAnchorShareKYCRequestSigningData,\n\tconvertAssetLocationToString,\n\tcommonJSONStringify,\n\tgetKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData,\n\tgetKeetaAssetMovementAnchorlistTransactionsRequestSigningData,\n\tgetKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData,\n\tgetKeetaAssetMovementAnchorExecuteTransferRequestSigningData,\n\tassertKeetaAssetMovementAnchorExecuteTransferRequest,\n\tassertKeetaAssetMovementAnchorExecuteTransferResponse,\n\tgetKeetaAssetMovementAnchorSimulateTransferRequestSigningData,\n\tassertKeetaAssetMovementAnchorSimulateTransferRequest,\n\tassertKeetaAssetMovementAnchorSimulateTransferResponse\n} from './common.js';\nimport type { ServiceMetadata } from '../../lib/resolver.ts';\nimport type { Signable } from '../../lib/utils/signing.js';\nimport { VerifySignedData } from '../../lib/utils/signing.js';\nimport type Account from '@keetanetwork/keetanet-client/lib/account.js';\nimport type { ExtractOk, HTTPSignedFieldURLParameters } from '../../lib/http-server/common.js';\nimport { assertHTTPSignedField, parseSignatureFromURL } from '../../lib/http-server/common.js';\nimport type { JSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nimport type { SharedAnchorMetadataLegalExtension } from '../../lib/metadata.types.js';\n\ntype AssetMovementServiceMetadata = NonNullable<ServiceMetadata['services']['assetMovement']>[string];\n\nexport interface KeetaAnchorAssetMovementServerConfig extends KeetaAnchorMetadataServerConfig {\n\t/**\n\t * The data to use for the index page (optional)\n\t */\n\thomepage?: string | (() => Promise<string> | string);\n\n\t/**\n\t * Configuration for asset movement operations\n\t */\n\tassetMovement: SharedAnchorMetadataLegalExtension & Pick<AssetMovementServiceMetadata, 'supportedAssets' | 'locationMetadata'> & {\n\t\tauthenticationRequired?: boolean;\n\n\t\t/**\n\t\t * Method to initiate the two-step creation of a persistent forwarding address template.\n\t\t * Returns a session ID and provider-specific data (e.g. a Plaid link token) for the client to complete.\n\t\t */\n\t\tinitiatePersistentForwardingTemplate?: (request: KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse>>;\n\n\t\t/**\n\t\t * Method to create a persistent forwarding address template.\n\t\t * Accepts either a direct resolved address or a session completion payload (e.g. Plaid public token).\n\t\t */\n\t\tcreatePersistentForwardingTemplate?: (request: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>>;\n\n\t\t/**\n\t\t * Method to list persistent forwarding address templates\n\t\t */\n\t\tlistPersistentForwardingTemplate?: (request: KeetaAssetMovementAnchorListForwardingAddressTemplateRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>>;\n\n\t\t/**\n\t\t * Method to create a persistent forwarding address\n\t\t */\n\t\tcreatePersistentForwarding?: (request: KeetaAssetMovementAnchorCreatePersistentForwardingRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;\n\n\t\t/**\n\t\t * Method to list persistent forwarding addresses\n\t\t */\n\t\tlistPersistentForwarding?: (request: KeetaAssetMovementAnchorListPersistentForwardingRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorListPersistentForwardingResponse>>;\n\n\t\t/**\n\t\t * Method to initiate a transfer\n\t\t */\n\t\tinitiateTransfer?: (request: KeetaAssetMovementAnchorInitiateTransferRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorInitiateTransferResponse>>;\n\n\t\t/**\n\t\t * Method to initiate a transfer\n\t\t */\n\t\tsimulateTransfer?: (request: KeetaAssetMovementAnchorSimulateTransferRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorSimulateTransferResponse>>;\n\n\t\t/**\n\t\t * Method to get the status of a transfer\n\t\t */\n\t\tgetTransferStatus?: (id: string, account: Account.Account | null) => Promise<ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>>;\n\n\t\t/**\n\t\t * Method to list transactions\n\t\t */\n\t\tlistTransactions?: (request: KeetaAssetMovementAnchorlistTransactionsRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>>;\n\n\t\t/**\n\t\t * Method to share KYC (Know Your Customer) information\n\t\t */\n\t\tshareKYC?: (request: KeetaAssetMovementAnchorShareKYCRequest) => Promise<ExtractOk<KeetaAssetMovementAnchorShareKYCResponse>>;\n\n\t\t/**\n\t\t * Method to execute a transfer instruction, used for pull based transactions\n\t\t */\n\t\texecuteTransfer?: (request: KeetaAssetMovementAnchorExecuteTransferRequest & { id: string; }) => Promise<ExtractOk<KeetaAssetMovementAnchorExecuteTransferResponse>>;\n\t}\n};\n\nfunction serializeTransactionResponse(transaction: ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>['transaction']): ExtractOk<KeetaAssetMovementAnchorGetTransferStatusResponse>['transaction'] {\n\treturn({\n\t\t...transaction,\n\t\tfrom: {\n\t\t\t...transaction.from,\n\t\t\tlocation: convertAssetLocationToString(transaction.from.location)\n\t\t},\n\t\tto: {\n\t\t\t...transaction.to,\n\t\t\tlocation: convertAssetLocationToString(transaction.to.location)\n\t\t}\n\t});\n}\n\nfunction serializePersistentAddressTemplateResponse(template: ExtractOk<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>['templates'][number]): ExtractOk<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>['templates'][number] {\n\treturn({\n\t\t...template,\n\t\tlocation: convertAssetLocationToString(template.location)\n\t});\n}\n\nexport class KeetaNetAssetMovementAnchorHTTPServer extends KeetaAnchorMetadataServer<NonNullable<ServiceMetadata['services']['assetMovement']>[string], KeetaAnchorAssetMovementServerConfig> implements Omit<Required<KeetaAnchorAssetMovementServerConfig>, 'metadataSigner'> {\n\treadonly homepage: NonNullable<KeetaAnchorAssetMovementServerConfig['homepage']>;\n\treadonly assetMovement: NonNullable<KeetaAnchorAssetMovementServerConfig['assetMovement']>;\n\n\tconstructor(config: KeetaAnchorAssetMovementServerConfig) {\n\t\tsuper(config);\n\n\t\tthis.homepage = config.homepage ?? '';\n\t\tthis.assetMovement = config.assetMovement;\n\t}\n\n\tprotected async initRoutes(config: KeetaAnchorAssetMovementServerConfig): Promise<KeetaAnchorHTTPServer.Routes> {\n\t\tconst routes: KeetaAnchorHTTPServer.Routes = {};\n\n\t\t/**\n\t\t * If a homepage is provided, setup the route for it\n\t\t */\n\t\tif ('homepage' in config) {\n\t\t\troutes['GET /'] = async function() {\n\t\t\t\tlet homepageData: string;\n\t\t\t\tif (typeof config.homepage === 'string') {\n\t\t\t\t\thomepageData = config.homepage;\n\t\t\t\t} else {\n\t\t\t\t\tif (!config.homepage) {\n\t\t\t\t\t\tthrow(new Error('internal error: No homepage function provided'));\n\t\t\t\t\t}\n\n\t\t\t\t\thomepageData = await config.homepage();\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\toutput: homepageData,\n\t\t\t\t\tcontentType: 'text/html'\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction addRoute<\n\t\t\tHandlerName extends keyof KeetaAnchorAssetMovementServerConfig['assetMovement'],\n\t\t\tSerializedRequest extends { [key: string]: unknown } | undefined,\n\t\t\tResponse\n\t\t>(input: {\n\t\t\tmethod: 'GET' | 'POST';\n\t\t\thandlerName: HandlerName;\n\t\t\tpathName?: string;\n\t\t\toverrideAllowUnauthenticated?: boolean;\n\t\t\tassertRequest?: (data: unknown) => SerializedRequest;\n\t\t\tserializeResponse?: (data: ExtractOk<Response>) => unknown;\n\t\t\tassertResponse: (data: unknown) => Response;\n\t\t\tgetSigningData?: (data: SerializedRequest, params: Map<string, string>) => Signable;\n\t\t\tparseRequestToArgs?: (params: {\n\t\t\t\tparams: Map<string, string>;\n\t\t\t\tbody: SerializedRequest | undefined,\n\t\t\t\turl: URL,\n\t\t\t\taccount: Account.Account | null\n\t\t\t\t// Typescript needs any here, but eslint does not like it\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t}) => NonNullable<KeetaAnchorAssetMovementServerConfig['assetMovement'][HandlerName]> extends (...args: infer R extends any[]) => any ? R : never;\n\t\t\tgetSignatureFieldAccountFromRequest?: (params: { body: JSONSerializable | undefined, url: URL }) => Partial<HTTPSignedFieldURLParameters>;\n\t\t}) {\n\t\t\tconst handler = config.assetMovement[input.handlerName];\n\t\t\tif (handler === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof handler !== 'function') {\n\t\t\t\tthrow(new Error(`internal error: handler for ${String(input.handlerName)} is not a function`));\n\t\t\t}\n\n\t\t\tconst authenticationRequired = config.assetMovement.authenticationRequired === true && (input.overrideAllowUnauthenticated !== true);\n\n\t\t\troutes[`${input.method} /api/${input.pathName ?? input.handlerName}`] = async function(params, postData, _ignore_headers, url) {\n\t\t\t\tlet request: SerializedRequest;\n\t\t\t\tif (input.method === 'GET') {\n\t\t\t\t\t// For GET requests, we do not expect a body\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t\trequest = undefined as SerializedRequest;\n\t\t\t\t} else {\n\t\t\t\t\tif (!input.assertRequest) {\n\t\t\t\t\t\tthrow(new Error('input.assertRequest is required when method = POST'));\n\t\t\t\t\t}\n\t\t\t\t\trequest = input.assertRequest(postData);\n\t\t\t\t}\n\n\t\t\t\tlet account: Account.Account | null = null;\n\t\t\t\tif (authenticationRequired || (request !== undefined && 'signed' in request)) {\n\t\t\t\t\tlet signed;\n\t\t\t\t\tif (input.getSignatureFieldAccountFromRequest !== undefined) {\n\t\t\t\t\t\tconst parsed = input.getSignatureFieldAccountFromRequest({ body: postData, url });\n\n\t\t\t\t\t\tif (!parsed.account || !parsed.signedField) {\n\t\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing authentication information'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taccount = parsed.account;\n\t\t\t\t\t\tsigned = parsed.signedField;\n\t\t\t\t\t} else if (request) {\n\t\t\t\t\t\tif (!('account' in request) || !('signed' in request)) {\n\t\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing authentication information'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof request.account !== 'string') {\n\t\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Invalid account public key'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taccount = KeetaNet.lib.Account.fromPublicKeyString(request.account).assertAccount();\n\t\t\t\t\t\tsigned = assertHTTPSignedField(request.signed);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow(new Error('when request is not defined, getSignatureFieldAccountFromRequest must be provided'));\n\t\t\t\t\t}\n\n\t\t\t\t\tconst signable = input.getSigningData ? input.getSigningData(request, params) : [];\n\n\t\t\t\t\tconst valid = await VerifySignedData(account, signable, signed);\n\n\t\t\t\t\tif (!valid) {\n\t\t\t\t\t\tthrow(new KeetaAnchorUserError('Invalid signature'));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tlet parsedRequest: any[];\n\t\t\t\tif (input.parseRequestToArgs) {\n\t\t\t\t\tparsedRequest = input.parseRequestToArgs({ body: request, params, url, account: account ?? null });\n\t\t\t\t} else {\n\t\t\t\t\tparsedRequest = [ request, account ];\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\t\tconst result = await handler(...parsedRequest);\n\n\t\t\t\tif ('ok' in result && (result.ok !== undefined && result.ok !== true)) {\n\t\t\t\t\tthrow(new Error('internal error: response serialization must not have ok field'));\n\t\t\t\t}\n\n\t\t\t\tconst resp = input.assertResponse({ ...result, ok: true });\n\n\t\t\t\tlet serialized;\n\t\t\t\tif (input.serializeResponse) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t\tserialized = input.serializeResponse(resp as ExtractOk<Response>);\n\t\t\t\t} else {\n\t\t\t\t\tserialized = resp;\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\toutput: commonJSONStringify(serialized)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'createPersistentForwarding',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\tsourceLocation: data.sourceLocation ? convertAssetLocationToString(data.sourceLocation) : undefined,\n\t\t\t\t\tdestinationLocation: data.destinationLocation ? convertAssetLocationToString(data.destinationLocation) : undefined\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'listPersistentForwarding',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorListPersistentForwardingRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorListPersistentForwardingResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\taddresses: data.addresses.map(addr => ({\n\t\t\t\t\t\t...addr,\n\t\t\t\t\t\tsourceLocation: addr.sourceLocation ? convertAssetLocationToString(addr.sourceLocation) : undefined,\n\t\t\t\t\t\tdestinationLocation: addr.destinationLocation ? convertAssetLocationToString(addr.destinationLocation) : undefined\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'initiateTransfer',\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorInitiateTransferRequestSigningData,\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorInitiateTransferRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorInitiateTransferResponse,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\tinstructionChoices: data.instructionChoices.map(function(choice) {\n\t\t\t\t\t\tconst ret = { ...choice };\n\t\t\t\t\t\tif ('location' in ret) {\n\t\t\t\t\t\t\tret.location = convertAssetLocationToString(ret.location);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(ret);\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'simulateTransfer',\n\t\t\toverrideAllowUnauthenticated: true,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorSimulateTransferRequestSigningData,\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorSimulateTransferRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorSimulateTransferResponse,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\tinstructionChoices: data.instructionChoices.map(function(choice) {\n\t\t\t\t\t\tconst ret = { ...choice };\n\t\t\t\t\t\tif ('location' in ret) {\n\t\t\t\t\t\t\tret.location = convertAssetLocationToString(ret.location);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(ret);\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'executeTransfer',\n\t\t\tpathName: 'executeTransfer/:id',\n\t\t\tgetSigningData: function(data, params) {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\t\t\t\treturn(getKeetaAssetMovementAnchorExecuteTransferRequestSigningData({\n\t\t\t\t\tid: id,\n\t\t\t\t\t...data\n\t\t\t\t}));\n\t\t\t},\n\t\t\tparseRequestToArgs: ({ body, params }) => {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\n\t\t\t\tif (!body) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid request body'));\n\t\t\t\t}\n\n\t\t\t\treturn([ { id, ...body } ] as const);\n\t\t\t},\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorExecuteTransferRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorExecuteTransferResponse,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttransaction: serializeTransactionResponse(data.transaction)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'GET',\n\t\t\thandlerName: 'getTransferStatus',\n\t\t\tpathName: 'getTransferStatus/:id',\n\t\t\tassertRequest: (input) => {\n\t\t\t\tif (input !== undefined) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('No body expected for getTransferStatus'));\n\t\t\t\t}\n\n\t\t\t\treturn(undefined);\n\t\t\t},\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorGetTransferStatusResponse,\n\t\t\tgetSignatureFieldAccountFromRequest: ({ url }) => parseSignatureFromURL(url),\n\t\t\tparseRequestToArgs: ({ params, account }) => {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\n\t\t\t\treturn([ id, account ] as const);\n\t\t\t},\n\t\t\tgetSigningData(_ignore_request, params) {\n\t\t\t\tconst id = params.get('id');\n\t\t\t\tif (typeof id !== 'string' || id.length === 0) {\n\t\t\t\t\tthrow(new KeetaAnchorUserError('Missing or invalid id parameter'));\n\t\t\t\t}\n\n\t\t\t\treturn(getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData({ id }));\n\t\t\t},\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttransaction: serializeTransactionResponse(data.transaction)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'listTransactions',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorlistTransactionsRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorlistTransactionsRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttransactions: data.transactions.map(tx => serializeTransactionResponse(tx))\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'initiatePersistentForwardingTemplate',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorInitiatePersistentForwardingAddressTemplateRequestSigningData\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'createPersistentForwardingTemplate',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\t...(serializePersistentAddressTemplateResponse(data))\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'listPersistentForwardingTemplate',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData,\n\t\t\tserializeResponse(data) {\n\t\t\t\treturn({\n\t\t\t\t\t...data,\n\t\t\t\t\ttemplates: data.templates.map(template => serializePersistentAddressTemplateResponse(template))\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\taddRoute({\n\t\t\tmethod: 'POST',\n\t\t\thandlerName: 'shareKYC',\n\t\t\tassertRequest: assertKeetaAssetMovementAnchorShareKYCRequest,\n\t\t\tassertResponse: assertKeetaAssetMovementAnchorShareKYCResponse,\n\t\t\tgetSigningData: getKeetaAssetMovementAnchorShareKYCRequestSigningData\n\t\t});\n\n\t\treturn(routes);\n\t}\n\n\tprotected async buildServiceMetadata(): Promise<NonNullable<ServiceMetadata['services']['assetMovement']>[string]> {\n\t\tconst operations: NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'] = {};\n\n\t\tconst routes = [\n\t\t\t'initiateTransfer',\n\t\t\t'simulateTransfer',\n\t\t\t'listTransactions',\n\t\t\t'initiatePersistentForwardingTemplate',\n\t\t\t'createPersistentForwardingTemplate',\n\t\t\t'listPersistentForwardingTemplate',\n\t\t\t'createPersistentForwarding',\n\t\t\t'listPersistentForwarding',\n\t\t\t'shareKYC',\n\t\t\t[ 'getTransferStatus', 'getTransferStatus/{id}' ],\n\t\t\t[ 'executeTransfer', 'executeTransfer/{id}' ]\n\t\t] as const satisfies ((keyof typeof operations) | [ keyof typeof operations, string ])[];\n\n\t\tfor (const routeInput of routes) {\n\t\t\tlet op;\n\t\t\tlet url;\n\t\t\tif (Array.isArray(routeInput)) {\n\t\t\t\top = routeInput[0];\n\t\t\t\turl = routeInput[1];\n\t\t\t} else {\n\t\t\t\top = routeInput;\n\t\t\t\turl = routeInput;\n\t\t\t}\n\n\t\t\tif (this.assetMovement[op] !== undefined) {\n\t\t\t\tconst computedURL = (new URL(`/api/${url}`, this.url)).toString();\n\t\t\t\tif (this.assetMovement.authenticationRequired) {\n\t\t\t\t\toperations[op] = {\n\t\t\t\t\t\turl: computedURL,\n\t\t\t\t\t\toptions: { authentication: { method: 'keeta-account', type: 'required' }}\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\toperations[op] = computedURL;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(operations).length === 0) {\n\t\t\tthrow(new KeetaAnchorUserError('No operations are supported on this server'));\n\t\t}\n\t\treturn({\n\t\t\t...(this.assetMovement.legal ? { legal: this.assetMovement.legal } : {}),\n\t\t\t...(this.assetMovement.locationMetadata ? { locationMetadata: this.assetMovement.locationMetadata } : {}),\n\t\t\toperations: operations,\n\t\t\tsupportedAssets: this.assetMovement.supportedAssets\n\t\t});\n\t}\n}\n"]}
|
package/services/fx/common.js
CHANGED
|
@@ -115,12 +115,12 @@ export const assertKeetaFXAnchorClientCreateExchangeRequestJSON = (() => { const
|
|
|
115
115
|
}, _errorFactory)) && (("object" === typeof input.quote && null !== input.quote || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
116
116
|
method: "createAssert",
|
|
117
117
|
path: _path + ".quote",
|
|
118
|
-
expected: "{ request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { preferredCostAsset?: TokenPublicKeyString; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed:
|
|
118
|
+
expected: "{ request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { preferredCostAsset?: TokenPublicKeyString; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed: HTTPSignedField; } & {}",
|
|
119
119
|
value: input.quote
|
|
120
120
|
}, _errorFactory)) && _ao1(input.quote, _path + ".quote", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
121
121
|
method: "createAssert",
|
|
122
122
|
path: _path + ".quote",
|
|
123
|
-
expected: "{ request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { preferredCostAsset?: TokenPublicKeyString; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed:
|
|
123
|
+
expected: "{ request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { preferredCostAsset?: TokenPublicKeyString; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed: HTTPSignedField; } & {}",
|
|
124
124
|
value: input.quote
|
|
125
125
|
}, _errorFactory)) && ((null !== input.request || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
126
126
|
method: "createAssert",
|
|
@@ -165,12 +165,12 @@ export const assertKeetaFXAnchorClientCreateExchangeRequestJSON = (() => { const
|
|
|
165
165
|
}, _errorFactory)) && (("object" === typeof input.signed && null !== input.signed || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
166
166
|
method: "createAssert",
|
|
167
167
|
path: _path + ".signed",
|
|
168
|
-
expected: "
|
|
168
|
+
expected: "HTTPSignedField",
|
|
169
169
|
value: input.signed
|
|
170
170
|
}, _errorFactory)) && _ao4(input.signed, _path + ".signed", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
171
171
|
method: "createAssert",
|
|
172
172
|
path: _path + ".signed",
|
|
173
|
-
expected: "
|
|
173
|
+
expected: "HTTPSignedField",
|
|
174
174
|
value: input.signed
|
|
175
175
|
}, _errorFactory)); const _ao2 = (input, _path, _exceptionable = true) => ("string" === typeof input.from && (RegExp(/^keeta_am(.*)/).test(input.from) || RegExp(/^keeta_an(.*)/).test(input.from) || RegExp(/^keeta_ao(.*)/).test(input.from) || RegExp(/^keeta_ap(.*)/).test(input.from) || RegExp(/^tyblocks_am(.*)/).test(input.from) || RegExp(/^tyblocks_an(.*)/).test(input.from) || RegExp(/^tyblocks_ao(.*)/).test(input.from) || RegExp(/^tyblocks_ap(.*)/).test(input.from)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
176
176
|
method: "createAssert",
|
|
@@ -281,7 +281,7 @@ export const assertKeetaFXAnchorClientCreateExchangeRequestJSON = (() => { const
|
|
|
281
281
|
return __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
282
282
|
method: "createAssert",
|
|
283
283
|
path: _path,
|
|
284
|
-
expected: "({ block: string; } & { quote?: undefined; request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; } | { block: string; } & { quote: { request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed:
|
|
284
|
+
expected: "({ block: string; } & { quote?: undefined; request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; } | { block: string; } & { quote: { request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed: HTTPSignedField; } & {}; request?: un...)",
|
|
285
285
|
value: input
|
|
286
286
|
}, _errorFactory);
|
|
287
287
|
})(); const __is = input => "object" === typeof input && null !== input && _iu0(input); let _errorFactory; return (input, errorFactory) => {
|
|
@@ -290,12 +290,12 @@ export const assertKeetaFXAnchorClientCreateExchangeRequestJSON = (() => { const
|
|
|
290
290
|
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || __typia_transform__assertGuard._assertGuard(true, {
|
|
291
291
|
method: "createAssert",
|
|
292
292
|
path: _path + "",
|
|
293
|
-
expected: "({ block: string; } & { quote: { request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed:
|
|
293
|
+
expected: "({ block: string; } & { quote: { request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed: HTTPSignedField; } & {}; request?: un... | { block: string; } & { quote?: undefined; request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; })",
|
|
294
294
|
value: input
|
|
295
295
|
}, _errorFactory)) && _au0(input, _path + "", true) || __typia_transform__assertGuard._assertGuard(true, {
|
|
296
296
|
method: "createAssert",
|
|
297
297
|
path: _path + "",
|
|
298
|
-
expected: "({ block: string; } & { quote: { request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed:
|
|
298
|
+
expected: "({ block: string; } & { quote: { request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; account: TokenPublicKeyString | ... 5 more ... | MultisigPublicKeyString; convertedAmount: string; cost: { ...; } & {}; signed: HTTPSignedField; } & {}; request?: un... | { block: string; } & { quote?: undefined; request: { from: TokenPublicKeyString; to: TokenPublicKeyString; amount: string; affinity: \"from\" | \"to\"; } & { ...; }; })",
|
|
299
299
|
value: input
|
|
300
300
|
}, _errorFactory))(input, "$input", true);
|
|
301
301
|
}
|
package/services/fx/server.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import * as KeetaAnchorHTTPServer from '../../lib/http-server/index.js';
|
|
1
|
+
import type * as KeetaAnchorHTTPServer from '../../lib/http-server/index.js';
|
|
2
|
+
import type { KeetaAnchorMetadataServerConfig } from '../../lib/anchor-metadata-server.js';
|
|
3
|
+
import { KeetaAnchorMetadataServer } from '../../lib/anchor-metadata-server.js';
|
|
2
4
|
import { KeetaNet } from '../../client/index.js';
|
|
3
5
|
import type { ConversionInputCanonicalJSON, KeetaFXAnchorEstimate, KeetaFXAnchorQuote, KeetaFXAnchorQuoteJSON, KeetaNetAccount } from './common.ts';
|
|
4
6
|
import * as Signing from '../../lib/utils/signing.js';
|
|
@@ -27,7 +29,7 @@ export type GetConversionRateAndFeeContext = {
|
|
|
27
29
|
*/
|
|
28
30
|
request: KeetaFXAnchorQueueStage1Request;
|
|
29
31
|
};
|
|
30
|
-
export interface KeetaAnchorFXServerConfig extends
|
|
32
|
+
export interface KeetaAnchorFXServerConfig extends KeetaAnchorMetadataServerConfig {
|
|
31
33
|
/**
|
|
32
34
|
* The data to use for the index page (optional)
|
|
33
35
|
*/
|
|
@@ -242,8 +244,8 @@ declare class KeetaFXAnchorQueuePipeline extends KeetaAnchorQueuePipelineAdvance
|
|
|
242
244
|
maintain(): Promise<void>;
|
|
243
245
|
destroy(): Promise<void>;
|
|
244
246
|
}
|
|
245
|
-
type SharedHTTPServerConfigType = Pick<KeetaAnchorFXServerConfig, 'fx' | 'homepage' | keyof
|
|
246
|
-
declare abstract class BaseKeetaNetFXAnchorHTTPServer<ConfigType extends SharedHTTPServerConfigType> extends
|
|
247
|
+
type SharedHTTPServerConfigType = Pick<KeetaAnchorFXServerConfig, 'fx' | 'homepage' | keyof KeetaAnchorMetadataServerConfig>;
|
|
248
|
+
declare abstract class BaseKeetaNetFXAnchorHTTPServer<ConfigType extends SharedHTTPServerConfigType> extends KeetaAnchorMetadataServer<NonNullable<ServiceMetadata['services']['fx']>[string], ConfigType> implements Omit<Required<KeetaAnchorFXServerConfig>, 'storage' | 'queueRunnerExtensions' | 'accounts' | 'account' | 'signer' | 'client' | 'quoteSigner' | 'quoteConfiguration' | 'metadataSigner'> {
|
|
247
249
|
readonly homepage: NonNullable<KeetaAnchorFXServerConfig['homepage']>;
|
|
248
250
|
readonly fx: KeetaAnchorFXServerConfig['fx'];
|
|
249
251
|
readonly canPerformExchanges: boolean;
|
|
@@ -256,13 +258,13 @@ declare abstract class BaseKeetaNetFXAnchorHTTPServer<ConfigType extends SharedH
|
|
|
256
258
|
/**
|
|
257
259
|
* Return the servers endpoints and possible currency conversions metadata
|
|
258
260
|
*/
|
|
259
|
-
|
|
261
|
+
protected buildServiceMetadata(): Promise<NonNullable<ServiceMetadata['services']['fx']>[string]>;
|
|
260
262
|
}
|
|
261
263
|
export declare class KeetaNetFXAnchorEstimateHTTPServer extends BaseKeetaNetFXAnchorHTTPServer<SharedHTTPServerConfigType> {
|
|
262
264
|
protected quoteConfiguration: null;
|
|
263
265
|
constructor(config: SharedHTTPServerConfigType);
|
|
264
266
|
}
|
|
265
|
-
export declare class KeetaNetFXAnchorHTTPServer extends BaseKeetaNetFXAnchorHTTPServer<KeetaAnchorFXServerConfig> implements Omit<Required<KeetaAnchorFXServerConfig>, 'storage' | 'queueRunnerExtensions'> {
|
|
267
|
+
export declare class KeetaNetFXAnchorHTTPServer extends BaseKeetaNetFXAnchorHTTPServer<KeetaAnchorFXServerConfig> implements Omit<Required<KeetaAnchorFXServerConfig>, 'storage' | 'queueRunnerExtensions' | 'metadataSigner'> {
|
|
266
268
|
readonly client: KeetaAnchorFXServerConfig['client'];
|
|
267
269
|
readonly accounts: NonNullable<KeetaAnchorFXServerConfig['accounts']>;
|
|
268
270
|
readonly account: KeetaAnchorFXServerConfig['account'];
|
|
@@ -275,7 +277,7 @@ export declare class KeetaNetFXAnchorHTTPServer extends BaseKeetaNetFXAnchorHTTP
|
|
|
275
277
|
protected autoRunRunning: boolean;
|
|
276
278
|
constructor(config: KeetaAnchorFXServerConfig);
|
|
277
279
|
protected initRoutes(config: KeetaAnchorFXServerConfig): Promise<KeetaAnchorHTTPServer.Routes>;
|
|
278
|
-
|
|
280
|
+
protected buildServiceMetadata(): Promise<NonNullable<ServiceMetadata['services']['fx']>[string]>;
|
|
279
281
|
stop(): Promise<void>;
|
|
280
282
|
}
|
|
281
283
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/services/fx/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/services/fx/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUjD,OAAO,KAAK,EACX,4BAA4B,EAC5B,qBAAqB,EAGrB,kBAAkB,EAClB,sBAAsB,EAEtB,eAAe,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAuC,MAAM,0BAA0B,CAAC;AACvG,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,yCAAyC,EAAE,MAAM,0BAA0B,CAAC;AACpJ,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AActF,MAAM,MAAM,8BAA8B,GAAG;IAC5C;;;;OAIG;IACH,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC;CAC9B,GAAG;IACH;;;OAGG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,+BAA+B,CAAC;CACzC,CAAA;AAED,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IACjF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IAErD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEzD;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAEhE;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,4BAA4B,KAAK,OAAO,CAAC,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjM;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,kBAAkB,CAAC,EAAE;QACpB,aAAa,EAAE,IAAI,CAAC;KACpB,GAAG;QACH,aAAa,EAAE,KAAK,CAAC;QAErB;;WAEG;QACH,2BAA2B,EAAE,OAAO,CAAC;QAErC;;WAEG;QACH,WAAW,EAAE,OAAO,CAAC;KACrB,CAAC;IAEF;;OAEG;IACH,EAAE,EAAE,kCAAkC,GAAG;QACxC;;WAEG;QACH,IAAI,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QAEtE;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAElG;;;;;;;;WAQG;QACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;KAC9E,GAAG,CAAC;QACJ,gBAAgB,CAAC,EAAE,IAAI,CAAC;QAExB;;;;WAIG;QACH,uBAAuB,EAAE,CAAC,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;KAChJ,GAAG;QACH,gBAAgB,EAAE,KAAK,CAAC;QAExB;;;WAGG;QACH,kBAAkB,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,OAAO,CAAC,4BAA4B,CAAC,CAAC;KACrG,CAAC,CAAC;IAEH;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACT;;;WAGG;QACH,KAAK,EAAE,6BAA6B,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACzE;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IAEF;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,oCAAoC,CAAC;IAE7D;;OAEG;IACH,MAAM,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;CAC9I;AAyFD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;AAC7I,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AACtF,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,yBAAyB,CAAC,CAAC,CAAC;AAEpI,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,kBAAkB,GAAG,sBAAsB,CA4B3I;AAID,KAAK,+BAA+B,GAAG;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/E,OAAO,EAAE,4BAA4B,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;KAAE,CAAC,GAAG,IAAI,CAAC;CACvJ,CAAC;AAaF,KAAK,gCAAgC,GAAG;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC;AAmEF,cAAM,gCAAiC,SAAQ,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,CAAC;IACvI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IAC3D,SAAS,CAAC,UAAU,UAAQ;IAE5B;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,CAAa;gBAEjC,MAAM,EAAE,qBAAqB,CAAC,OAAO,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,YAAY,EAAE,yBAAyB,CAAC;KAAE;IAO7L;;;;;;OAMG;cACa,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAOpT;;;;;OAKG;cACa,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,CAAC,CAAC,WAAW,CAAC,CAAC;IAsN3Q,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,+BAA+B,GAAG,gBAAgB;IAInF,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,gCAAgC,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI;IAIpG,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,+BAA+B;IAInF,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,GAAG,gCAAgC,GAAG,IAAI;CAKpG;AAED,KAAK,yBAAyB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;CACzD,GAAG,yCAAyC,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AAE/F,KAAK,oCAAoC,GAAG;IAC3C,OAAO,CAAC,EAAE,yBAAyB,CAAC,gCAAgC,EAAE,gCAAgC,CAAC,CAAC;IACxG,OAAO,CAAC,EAAE,yBAAyB,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,CAAC;CACvF,CAAA;AAED,KAAK,0CAA0C,GAAG;IACjD,YAAY,EAAE,yBAAyB,CAAC;IACxC,QAAQ,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,oCAAoC,GAAG,SAAS,CAAC;CAC9D,CAAA;AAED,cAAM,0BAA2B,SAAQ,gCAAgC,CAAC,+BAA+B,EAAE,gCAAgC,CAAC;;IAC3I,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,OAAO,CAAwH;IAEvI,OAAO,CAAC,UAAU,CAAC,CAAmD;IAEtE,OAAO,CAAC,kBAAkB,CAA2G;IACrI,OAAO,CAAC,kBAAkB,CAA0F;gBAGnH,OAAO,EACN,qBAAqB,CAAC,OAAO,gCAAgC,CAAC,+BAA+B,EAAE,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,GACpI,0CAA0C;cAS5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAgH/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,gCAAgC,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,gCAAgC,CAAC,OAAO,CAAC,IAAI,GAAG,gCAAgC;IAKrK,GAAG,CAAC,OAAO,EAAE,+BAA+B,GAAG,UAAU,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAaxG;;;;;;;OAOG;IACG,GAAG,CAAC,EAAE,EAAE,yBAAyB,GAAG,UAAU,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;IA0EvF,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAgB1H,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAUzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9B;AAED,KAAK,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,+BAA+B,CAAC,CAAC;AAC7H,uBAAe,8BAA8B,CAAC,UAAU,SAAS,0BAA0B,CAAE,SAAQ,yBAAyB,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAE,YAAW,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,GAAG,uBAAuB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;IACpY,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,EAAE,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;IAElH,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;gBAEpE,MAAM,EAAE,UAAU;cAWd,oBAAoB,CAAC,UAAU,EAAE,4BAA4B,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,4BAA4B,GAAG,yBAAyB,CAAC;cACtJ,oBAAoB,CAAC,UAAU,EAAE,4BAA4B,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC;cA0CpH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC;IAiGrF;;OAEG;cACa,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAoBvG;AAED,qBAAa,kCAAmC,SAAQ,8BAA8B,CAAC,0BAA0B,CAAC;IACjH,SAAS,CAAC,kBAAkB,OAAQ;gBAExB,MAAM,EAAE,0BAA0B;CAO9C;AAED,qBAAa,0BAA2B,SAAQ,8BAA8B,CAAC,yBAAyB,CAAE,YAAW,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,GAAG,uBAAuB,GAAG,gBAAgB,CAAC;IACrN,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAa;IACnE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;IAEjG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,cAAc,UAAS;gBAErB,MAAM,EAAE,yBAAyB;cAqE7B,UAAU,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC;cAwS3E,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAa1G,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B"}
|
package/services/fx/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __addDisposableResource, __disposeResources } from "tslib";
|
|
2
2
|
import * as __typia_transform__assertGuard from "typia/lib/internal/_assertGuard.js";
|
|
3
|
-
import
|
|
3
|
+
import { KeetaAnchorMetadataServer } from '../../lib/anchor-metadata-server.js';
|
|
4
4
|
import { KeetaNet } from '../../client/index.js';
|
|
5
5
|
import { KeetaAnchorError, KeetaAnchorUserError } from '../../lib/error.js';
|
|
6
6
|
import { assertConversionInputCanonicalJSON, assertKeetaFXAnchorClientCreateExchangeRequestJSON, Errors } from './common.js';
|
|
@@ -630,7 +630,7 @@ class KeetaFXAnchorQueuePipeline extends KeetaAnchorQueuePipelineAdvanced {
|
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
}
|
|
633
|
-
class BaseKeetaNetFXAnchorHTTPServer extends
|
|
633
|
+
class BaseKeetaNetFXAnchorHTTPServer extends KeetaAnchorMetadataServer {
|
|
634
634
|
homepage;
|
|
635
635
|
fx;
|
|
636
636
|
canPerformExchanges;
|
|
@@ -766,7 +766,7 @@ class BaseKeetaNetFXAnchorHTTPServer extends KeetaAnchorHTTPServer.KeetaNetAncho
|
|
|
766
766
|
/**
|
|
767
767
|
* Return the servers endpoints and possible currency conversions metadata
|
|
768
768
|
*/
|
|
769
|
-
async
|
|
769
|
+
async buildServiceMetadata() {
|
|
770
770
|
const operations = {
|
|
771
771
|
getEstimate: (new URL('/api/getEstimate', this.url)).toString()
|
|
772
772
|
};
|
|
@@ -1137,8 +1137,8 @@ export class KeetaNetFXAnchorHTTPServer extends BaseKeetaNetFXAnchorHTTPServer {
|
|
|
1137
1137
|
};
|
|
1138
1138
|
return (routes);
|
|
1139
1139
|
}
|
|
1140
|
-
async
|
|
1141
|
-
const baseMetadata = await super.
|
|
1140
|
+
async buildServiceMetadata() {
|
|
1141
|
+
const baseMetadata = await super.buildServiceMetadata();
|
|
1142
1142
|
if (this.quoteConfiguration.requiresQuote || this.quoteConfiguration.issueQuotes) {
|
|
1143
1143
|
baseMetadata.operations.getQuote = (new URL('/api/getQuote', this.url)).toString();
|
|
1144
1144
|
}
|