@keetanetwork/anchor 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/config.d.ts +1 -1
  2. package/config.d.ts.map +1 -1
  3. package/config.js +1 -1
  4. package/config.js.map +1 -1
  5. package/lib/certificates.d.ts +4 -1
  6. package/lib/certificates.d.ts.map +1 -1
  7. package/lib/certificates.js +148 -14
  8. package/lib/certificates.js.map +1 -1
  9. package/lib/error.d.ts +35 -0
  10. package/lib/error.d.ts.map +1 -1
  11. package/lib/error.js +203 -7
  12. package/lib/error.js.map +1 -1
  13. package/lib/http-server/common.d.ts +6 -0
  14. package/lib/http-server/common.d.ts.map +1 -0
  15. package/lib/http-server/common.js +2 -0
  16. package/lib/http-server/common.js.map +1 -0
  17. package/lib/{http-server.d.ts → http-server/index.d.ts} +30 -12
  18. package/lib/http-server/index.d.ts.map +1 -0
  19. package/lib/{http-server.js → http-server/index.js} +107 -46
  20. package/lib/http-server/index.js.map +1 -0
  21. package/lib/resolver.d.ts +5 -2
  22. package/lib/resolver.d.ts.map +1 -1
  23. package/lib/resolver.js +15 -2
  24. package/lib/resolver.js.map +1 -1
  25. package/lib/utils/asn1.d.ts +0 -13
  26. package/lib/utils/asn1.d.ts.map +1 -1
  27. package/lib/utils/asn1.js +0 -1498
  28. package/lib/utils/asn1.js.map +1 -1
  29. package/lib/utils/external.d.ts.map +1 -1
  30. package/lib/utils/external.js +9 -2
  31. package/lib/utils/external.js.map +1 -1
  32. package/npm-shrinkwrap.json +5 -5
  33. package/package.json +2 -2
  34. package/services/asset-movement/client.d.ts +1 -0
  35. package/services/asset-movement/client.d.ts.map +1 -1
  36. package/services/asset-movement/client.js +13 -9
  37. package/services/asset-movement/client.js.map +1 -1
  38. package/services/asset-movement/common.d.ts +1 -1
  39. package/services/asset-movement/common.d.ts.map +1 -1
  40. package/services/asset-movement/common.js.map +1 -1
  41. package/services/asset-movement/server.d.ts +1 -1
  42. package/services/asset-movement/server.d.ts.map +1 -1
  43. package/services/asset-movement/server.js +1 -1
  44. package/services/asset-movement/server.js.map +1 -1
  45. package/services/fx/common.d.ts +15 -5
  46. package/services/fx/common.d.ts.map +1 -1
  47. package/services/fx/common.js +29 -0
  48. package/services/fx/common.js.map +1 -1
  49. package/services/fx/server.d.ts +12 -2
  50. package/services/fx/server.d.ts.map +1 -1
  51. package/services/fx/server.js +9 -2
  52. package/services/fx/server.js.map +1 -1
  53. package/services/kyc/common.d.ts +3 -5
  54. package/services/kyc/common.d.ts.map +1 -1
  55. package/services/kyc/common.generated.js +2 -2
  56. package/services/kyc/common.js +1 -0
  57. package/services/kyc/common.js.map +1 -1
  58. package/services/kyc/iso20022.generated.js +54 -54
  59. package/services/kyc/iso20022.generated.js.map +1 -1
  60. package/services/kyc/server.d.ts +1 -1
  61. package/services/kyc/server.d.ts.map +1 -1
  62. package/services/kyc/server.js +1 -1
  63. package/services/kyc/server.js.map +1 -1
  64. package/services/kyc/utils/generate-kyc-schema.js +34 -6
  65. package/services/kyc/utils/generate-kyc-schema.js.map +1 -1
  66. package/lib/http-server.d.ts.map +0 -1
  67. package/lib/http-server.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"asn1.js","sourceRoot":"","sources":["../../../src/lib/utils/asn1.ts"],"names":[],"mappings":"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","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport type * as ASN1Types from '@keetanetwork/keetanet-client/lib/utils/asn1.ts';\nimport { isReferenceSchema } from './asn1.generated.js';\nimport { EncryptedContainer } from '../encrypted-container.js';\nimport { Buffer, bufferToArrayBuffer } from './buffer.js';\nimport { checkHashWithOID } from './external.js';\n\n/* ENUM */\ntype AccountKeyAlgorithm = InstanceType<typeof KeetaNetLib.Account>['keyType'];\n\n/**\n * An alias for the KeetaNetAccount type\n */\ntype KeetaNetAccount = ReturnType<typeof KeetaNetLib.Account.fromSeed<AccountKeyAlgorithm>>;\nconst KeetaNetAccount: typeof KeetaNetLib.Account = KeetaNetLib.Account;\n\n/*\n * We import this file to make sure that the `asn1js` types are\n * defined, since they are required by the `ASN1toJS` and `JStoASN1`\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type * as _ignored_asn1js from 'asn1js';\n\nimport { assert, createAssert, createIs } from 'typia';\n\nconst ASN1: typeof KeetaNetLib.Utils.ASN1 = KeetaNetLib.Utils.ASN1;\n\nconst ASN1toJS: typeof ASN1.ASN1toJS = ASN1.ASN1toJS;\nconst JStoASN1: typeof ASN1.JStoASN1 = ASN1.JStoASN1;\nconst BufferStorageASN1: typeof ASN1.BufferStorageASN1 = ASN1.BufferStorageASN1;\nconst ValidateASN1: typeof ASN1.ValidateASN1 = ASN1.ValidateASN1;\nconst ASN1CheckUtilities: typeof ASN1.ASN1CheckUtilities = ASN1.ASN1CheckUtilities;\n\nconst { isASN1ContextTag, isASN1Struct, isASN1String, isASN1Date, isASN1BitString, isASN1Set } = ASN1CheckUtilities;\n\ntype ASN1AnyJS = ASN1Types.ASN1AnyJS;\ntype ASN1OID = ASN1Types.ASN1OID;\ntype ASN1ContextTag = ASN1Types.ASN1ContextTag;\ntype Schema = ASN1Types.ValidateASN1.Schema;\ntype SchemaMap<T extends Schema> = ASN1Types.ValidateASN1.SchemaMap<T>;\ntype StructFieldSchema = Schema | { optional: Schema };\ntype StructSchema = Extract<Schema, { type: 'struct' }>;\ntype StructFieldSchemaMap = { [field: string]: StructFieldSchema };\ntype SchemaPreparer = (schema: Schema, value: unknown) => unknown;\n\ntype EncodeOptions = {\n\tattributeName?: string;\n\tvaluePrinter?: (value: unknown) => string;\n};\n\nconst assertStructFieldSchemaMap = createAssert<StructFieldSchemaMap>();\nconst structSchemaGuard = createIs<StructSchema>();\n\nconst structSchemaCache = new WeakMap<StructSchema, Schema>();\n\nfunction defaultPrintValue(value: unknown): string {\n\ttry {\n\t\treturn(JSON.stringify(value));\n\t} catch {\n\t\treturn(String(value));\n\t}\n}\n\nfunction isOptionalSchema(candidate: unknown): candidate is { optional: Schema } {\n\treturn(typeof candidate === 'object' && candidate !== null && 'optional' in candidate);\n}\n\nfunction isStructSchema(candidate: Schema): candidate is StructSchema {\n\treturn(structSchemaGuard(candidate));\n}\n\nfunction ensureStructContains(schema: StructSchema): StructFieldSchemaMap {\n\tif (!schema.contains) {\n\t\treturn({});\n\t}\n\treturn(assertStructFieldSchemaMap(schema.contains));\n}\n\nfunction isPlainObject(value: unknown): value is { [key: string]: unknown } {\n\treturn(typeof value === 'object' && value !== null && !Array.isArray(value));\n}\n\nfunction getFieldNames(schema: StructSchema): string[] {\n\treturn(Array.isArray(schema.fieldNames) && schema.fieldNames.length > 0\n\t\t? [...schema.fieldNames]\n\t\t: Object.keys(ensureStructContains(schema)));\n}\n\nexport function contextualizeStructSchema(schema: Schema): Schema {\n\tif (!isStructSchema(schema)) {\n\t\treturn(schema);\n\t}\n\n\tconst cached = structSchemaCache.get(schema);\n\tif (cached) {\n\t\treturn(cached);\n\t}\n\n\tconst fieldNames = getFieldNames(schema);\n\tconst structContains = ensureStructContains(schema);\n\tconst contextualizedContains: StructFieldSchemaMap = {};\n\n\tfunction wrapWithExplicitContext(index: number, innerSchema: Schema): Schema {\n\t\tif (typeof innerSchema === 'object' && innerSchema !== null && 'type' in innerSchema && innerSchema.type === 'context') {\n\t\t\treturn(innerSchema);\n\t\t}\n\t\treturn({\n\t\t\ttype: 'context',\n\t\t\tkind: 'explicit',\n\t\t\tvalue: index,\n\t\t\tcontains: contextualizeStructSchema(innerSchema)\n\t\t});\n\t}\n\n\tfor (const [index, fieldName] of fieldNames.entries()) {\n\t\tconst fieldSchema = structContains[fieldName];\n\t\tif (!fieldSchema) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (isOptionalSchema(fieldSchema)) {\n\t\t\tcontextualizedContains[fieldName] = {\n\t\t\t\toptional: wrapWithExplicitContext(index, fieldSchema.optional)\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\tcontextualizedContains[fieldName] = wrapWithExplicitContext(index, fieldSchema);\n\t}\n\n\tconst contextualized: Schema = {\n\t\ttype: 'struct',\n\t\tfieldNames,\n\t\tcontains: contextualizedContains\n\t};\n\n\tstructSchemaCache.set(schema, contextualized);\n\treturn(contextualized);\n}\n\nfunction resolveSchema(schema: Schema): Schema {\n\tlet current: Schema = schema;\n\twhile (typeof current === 'function') {\n\t\tcurrent = current();\n\t}\n\treturn(current);\n}\n\nfunction prepareContextValue(schema: Extract<Schema, { type: 'context' }>, value: unknown, prepare: SchemaPreparer): unknown {\n\tif (value === undefined) {\n\t\treturn(value);\n\t}\n\tif (isASN1ContextTag(value)) {\n\t\tconst preparedContains = prepare(schema.contains, value.contains);\n\t\tif (preparedContains !== value.contains) {\n\t\t\treturn({\n\t\t\t\ttype: 'context',\n\t\t\t\tkind: value.kind,\n\t\t\t\tvalue: value.value,\n\t\t\t\tcontains: preparedContains\n\t\t\t});\n\t\t}\n\t\treturn(value);\n\t}\n\tconst contains = prepare(schema.contains, value);\n\treturn({\n\t\ttype: 'context',\n\t\tkind: schema.kind,\n\t\tvalue: schema.value,\n\t\tcontains\n\t});\n}\n\nfunction prepareStructValue(schema: StructSchema, value: unknown): unknown {\n\tconst structContains = schema.contains ?? {};\n\tconst fieldNames = getFieldNames(schema);\n\n\tif (isASN1Struct(value)) {\n\t\tconst preparedContains: { [key: string]: unknown } = {};\n\t\tfor (const [fieldName, fieldValue] of Object.entries(value.contains ?? {})) {\n\t\t\tconst fieldSchema = structContains[fieldName];\n\t\t\tif (!fieldSchema) {\n\t\t\t\tpreparedContains[fieldName] = fieldValue;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst innerSchema = isOptionalSchema(fieldSchema) ? fieldSchema.optional : fieldSchema;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tpreparedContains[fieldName] = prepareValueForSchema(innerSchema, fieldValue);\n\t\t}\n\t\treturn({\n\t\t\ttype: 'struct',\n\t\t\tfieldNames: value.fieldNames ?? fieldNames,\n\t\t\tcontains: preparedContains\n\t\t});\n\t}\n\n\tif (!isPlainObject(value)) {\n\t\treturn(value);\n\t}\n\n\tconst preparedContains: { [key: string]: unknown } = {};\n\tfor (const fieldName of fieldNames) {\n\t\tconst fieldSchema = structContains[fieldName];\n\t\tif (!fieldSchema) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldValue = value[fieldName];\n\t\tif (fieldValue === undefined) {\n\t\t\tif (!isOptionalSchema(fieldSchema)) {\n\t\t\t\tpreparedContains[fieldName] = fieldValue;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst innerSchema = isOptionalSchema(fieldSchema) ? fieldSchema.optional : fieldSchema;\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tpreparedContains[fieldName] = prepareValueForSchema(innerSchema, fieldValue);\n\t}\n\n\treturn({\n\t\ttype: 'struct',\n\t\tfieldNames,\n\t\tcontains: preparedContains\n\t});\n}\n\nfunction prepareValueForSchema(schema: Schema, value: unknown): unknown {\n\tconst resolved = resolveSchema(schema);\n\n\tif (value === undefined || value === null) {\n\t\treturn(value);\n\t}\n\n\tif (Array.isArray(resolved)) {\n\t\tif (!Array.isArray(value)) {\n\t\t\treturn(value);\n\t\t}\n\t\tconst result = [];\n\t\tfor (let i = 0; i < resolved.length; i++) {\n\t\t\tresult.push(prepareValueForSchema(assert<Schema>(resolved[i]), value[i]));\n\t\t}\n\t\treturn(result);\n\t}\tif (typeof resolved === 'object' && resolved !== null) {\n\t\tif ('optional' in resolved) {\n\t\t\tif (value === undefined) {\n\t\t\t\treturn(undefined);\n\t\t\t}\n\t\t\treturn(prepareValueForSchema(resolved.optional, value));\n\t\t}\n\t\tif ('sequenceOf' in resolved) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\treturn(value);\n\t\t\t}\n\t\t\treturn(value.map(item => prepareValueForSchema(resolved.sequenceOf, item)));\n\t\t}\n\t\tif ('choice' in resolved) {\n\t\t\tconst choices = Array.isArray(resolved.choice)\n\t\t\t\t? resolved.choice\n\t\t\t\t: Array.from(resolved.choice);\n\t\t\tfor (const choiceSchema of choices) {\n\t\t\t\tconst preparedChoice = prepareValueForSchema(choiceSchema, value);\n\t\t\t\tif (preparedChoice !== value) {\n\t\t\t\t\treturn(preparedChoice);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn(value);\n\t\t}\n\t\tif ('type' in resolved) {\n\t\t\tswitch (resolved.type) {\n\t\t\t\tcase 'context':\n\t\t\t\t\treturn(prepareContextValue(resolved, value, prepareValueForSchema));\n\t\t\t\tcase 'struct':\n\t\t\t\t\treturn(prepareStructValue(resolved, value));\n\t\t\t\tdefault:\n\t\t\t\t\treturn(value);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn(value);\n}\n\nexport function encodeValueBySchema(schema: Schema, value: unknown, options?: EncodeOptions): ASN1AnyJS {\n\tconst contextualized = contextualizeStructSchema(schema);\n\ttry {\n\t\tconst preparedUnknown = prepareValueForSchema(contextualized, value);\n\t\t// XXX:TODO Fix depth issue\n\t\t// @ts-ignore\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/consistent-type-assertions\n\t\treturn(ValidateASN1.againstSchema(preparedUnknown as ASN1AnyJS, contextualized));\n\t} catch (err) {\n\t\tconst printer = options?.valuePrinter ?? defaultPrintValue;\n\t\tconst prefix = options?.attributeName ? `Attribute ${options.attributeName}: ` : '';\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\n\t\tthrow(new Error(`${prefix}${message} (value: ${printer(value)})`));\n\t}\n}\n\nexport function normalizeDecodedASN1(input: unknown, principals: KeetaNetAccount[]): unknown {\n\tif (input === undefined || input === null) {\n\t\treturn(input);\n\t}\n\tif (Array.isArray(input)) {\n\t\treturn(input.map(function(childInput) {\n\t\t\treturn(normalizeDecodedASN1(childInput, principals));\n\t\t}));\n\t}\n\tif (input instanceof Date) {\n\t\treturn(input);\n\t}\n\tif (Buffer.isBuffer(input) || input instanceof ArrayBuffer) {\n\t\treturn(input);\n\t}\n\tif (isASN1ContextTag(input)) {\n\t\treturn(normalizeDecodedASN1(input.contains, principals));\n\t}\n\tif (isASN1String(input)) {\n\t\treturn(normalizeDecodedASN1(input.value, principals));\n\t}\n\tif (isASN1Date(input)) {\n\t\treturn(input.date);\n\t}\n\tif (isASN1BitString(input)) {\n\t\treturn(input.value);\n\t}\n\tif (isASN1Struct(input)) {\n\t\tconst contains = input.contains ?? {};\n\t\tconst orderedNames = Array.isArray(input.fieldNames) && input.fieldNames.length > 0\n\t\t\t? input.fieldNames\n\t\t\t: Object.keys(contains);\n\t\tconst result: { [key: string]: unknown } = {};\n\t\tfor (const fieldName of orderedNames) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(contains, fieldName)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fieldValue = contains[fieldName];\n\t\t\tif (fieldValue !== undefined) {\n\t\t\t\tresult[fieldName] = normalizeDecodedASN1(fieldValue, principals);\n\t\t\t}\n\t\t}\n\n\t\tif (isReferenceSchema(input)) {\n\t\t\tconst url = input.contains.external.contains.url.value;\n\t\t\tconst mimeType = input.contains.external.contains.contentType.value;\n\t\t\tconst encryptionAlgoOID = input.contains.encryptionAlgorithm?.oid;\n\t\t\tconst digestInfo = input.contains.digest.contains;\n\t\t\tlet cachedValue: Blob | null = null;\n\t\t\tresult['$blob'] = async function(additionalPrincipals?: ConstructorParameters<typeof EncryptedContainer>[0]): Promise<Blob> {\n\t\t\t\t/*\n\t\t\t\t * If we already have the cached value, return it\n\t\t\t\t */\n\t\t\t\tif (cachedValue) {\n\t\t\t\t\treturn(cachedValue);\n\t\t\t\t}\n\t\t\t\t/*\n\t\t\t\t * Fetch the remote data\n\t\t\t\t */\n\t\t\t\tconst result = await fetch(url);\n\t\t\t\tif (!result.ok) {\n\t\t\t\t\tthrow(new Error(`Failed to fetch remote data from ${url}: ${result.status} ${result.statusText}`));\n\t\t\t\t}\n\n\t\t\t\tconst dataBlob = await result.blob();\n\t\t\t\tlet data = await dataBlob.arrayBuffer();\n\n\t\t\t\t/*\n\t\t\t\t * Sometimes people like to encode the data\n\t\t\t\t * in a JSON base64 string, check to see if\n\t\t\t\t * that's the case -- hopefully this doesn't\n\t\t\t\t * conflict with any legitimate use case\n\t\t\t\t */\n\t\t\t\tif (dataBlob.type === 'application/json') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst asJSON: unknown = JSON.parse(Buffer.from(data).toString('utf-8'));\n\t\t\t\t\t\tif (isPlainObject(asJSON)) {\n\t\t\t\t\t\t\tif (Object.keys(asJSON).length === 2) {\n\t\t\t\t\t\t\t\tif ('data' in asJSON && typeof asJSON.data === 'string' && 'mimeType' in asJSON && typeof asJSON.mimeType === 'string') {\n\t\t\t\t\t\t\t\t\tdata = bufferToArrayBuffer(Buffer.from(asJSON.data, 'base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t/* Ignored */\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Decrypt the data, if encrypted\n\t\t\t\t */\n\t\t\t\tif (encryptionAlgoOID) {\n\t\t\t\t\tswitch (encryptionAlgoOID) {\n\t\t\t\t\t\tcase '1.3.6.1.4.1.62675.2':\n\t\t\t\t\t\tcase 'KeetaEncryptedContainerV1': {\n\t\t\t\t\t\t\tconst container = EncryptedContainer.fromEncryptedBuffer(data, [\n\t\t\t\t\t\t\t\t...principals,\n\t\t\t\t\t\t\t\t...(additionalPrincipals ?? [])\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tdata = await container.getPlaintext();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthrow(new Error(`Unsupported encryption algorithm OID: ${encryptionAlgoOID}`));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Compute and verify the hash (of the plain text)\n\t\t\t\t */\n\t\t\t\tif (!Buffer.isBuffer(digestInfo.digest)) {\n\t\t\t\t\tthrow(new TypeError('Digest value is not a buffer'));\n\t\t\t\t}\n\t\t\t\tconst validHash = await checkHashWithOID(data, {\n\t\t\t\t\tdigest: digestInfo.digest,\n\t\t\t\t\tdigestAlgorithm: digestInfo.digestAlgorithm\n\t\t\t\t});\n\t\t\t\tif (validHash !== true) {\n\t\t\t\t\tthrow(validHash);\n\t\t\t\t}\n\n\t\t\t\tconst blob = new Blob([data], { type: mimeType });\n\t\t\t\tcachedValue = blob;\n\t\t\t\treturn(blob);\n\t\t\t}\n\t\t}\n\t\treturn(result);\n\t}\n\tif (isASN1Set(input)) {\n\t\treturn({\n\t\t\tname: normalizeDecodedASN1(input.name, principals),\n\t\t\tvalue: normalizeDecodedASN1(input.value, principals)\n\t\t});\n\t}\n\tif (isPlainObject(input)) {\n\t\tconst result: { [key: string]: unknown } = {};\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tresult[key] = normalizeDecodedASN1(value, principals);\n\t\t}\n\t\treturn(result);\n\t}\n\n\treturn(input);\n}\n\nexport type {\n\tASN1AnyJS,\n\tASN1OID,\n\tASN1ContextTag,\n\tSchema,\n\tSchemaMap\n};\n\nexport {\n\tASN1toJS,\n\tJStoASN1,\n\tBufferStorageASN1,\n\tValidateASN1\n};\n"]}
1
+ {"version":3,"file":"asn1.js","sourceRoot":"","sources":["../../../src/lib/utils/asn1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGnE,MAAM,IAAI,GAAkC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;AAEnE,MAAM,QAAQ,GAAyB,IAAI,CAAC,QAAQ,CAAC;AACrD,MAAM,QAAQ,GAAyB,IAAI,CAAC,QAAQ,CAAC;AACrD,MAAM,iBAAiB,GAAkC,IAAI,CAAC,iBAAiB,CAAC;AAChF,MAAM,YAAY,GAA6B,IAAI,CAAC,YAAY,CAAC;AAgBjE,OAAO,EACN,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,CAAC","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport type * as ASN1Types from '@keetanetwork/keetanet-client/lib/utils/asn1.ts';\n\nconst ASN1: typeof KeetaNetLib.Utils.ASN1 = KeetaNetLib.Utils.ASN1;\n\nconst ASN1toJS: typeof ASN1.ASN1toJS = ASN1.ASN1toJS;\nconst JStoASN1: typeof ASN1.JStoASN1 = ASN1.JStoASN1;\nconst BufferStorageASN1: typeof ASN1.BufferStorageASN1 = ASN1.BufferStorageASN1;\nconst ValidateASN1: typeof ASN1.ValidateASN1 = ASN1.ValidateASN1;\n\ntype ASN1AnyJS = ASN1Types.ASN1AnyJS;\ntype ASN1OID = ASN1Types.ASN1OID;\ntype ASN1ContextTag = ASN1Types.ASN1ContextTag;\ntype Schema = ASN1Types.ValidateASN1.Schema;\ntype SchemaMap<T extends Schema> = ASN1Types.ValidateASN1.SchemaMap<T>;\n\nexport type {\n\tASN1AnyJS,\n\tASN1OID,\n\tASN1ContextTag,\n\tSchema,\n\tSchemaMap\n};\n\nexport {\n\tASN1toJS,\n\tJStoASN1,\n\tBufferStorageASN1,\n\tValidateASN1\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/external.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAqB,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAEzG,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAE1D;;;;;;;GAOG;AACH,qBAAa,wBAAwB;;IAMpC;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAK5C;;;;;OAKG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK5C;;;;;OAKG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKhD;;;;;OAKG;IACH,KAAK,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS;CA4EzC;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAEjH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AA2C9G,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/external.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAqB,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAEzG,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAE1D;;;;;;;GAOG;AACH,qBAAa,wBAAwB;;IAMpC;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAK5C;;;;;OAKG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK5C;;;;;OAKG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKhD;;;;;OAKG;IACH,KAAK,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS;CA4EzC;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAEjH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAiD9G,eAAe,wBAAwB,CAAC"}
@@ -120,10 +120,17 @@ export async function checkHashWithOID(input, expected) {
120
120
  if (typeof expected !== 'object' || expected === null || !('digestAlgorithm' in expected) || !('digest' in expected)) {
121
121
  return (new Error('Invalid expected DigestInfo structure'));
122
122
  }
123
- if (typeof expected.digestAlgorithm !== 'object' || expected.digestAlgorithm === null || !('oid' in expected.digestAlgorithm)) {
123
+ // digestAlgorithm can be either a string (OID) or an object {oid: string}
124
+ let hashAlgoOID;
125
+ if (typeof expected.digestAlgorithm === 'string') {
126
+ hashAlgoOID = expected.digestAlgorithm;
127
+ }
128
+ else if (typeof expected.digestAlgorithm === 'object' && expected.digestAlgorithm !== null && 'oid' in expected.digestAlgorithm && typeof expected.digestAlgorithm.oid === 'string') {
129
+ hashAlgoOID = expected.digestAlgorithm.oid;
130
+ }
131
+ else {
124
132
  return (new Error('Invalid digestAlgorithm in expected DigestInfo'));
125
133
  }
126
- const hashAlgoOID = expected.digestAlgorithm.oid;
127
134
  const hashValue = expected.digest;
128
135
  switch (hashAlgoOID) {
129
136
  case '2.16.840.1.101.3.4.2.8':
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/lib/utils/external.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from './crypto.js';\nimport type { Reference, ExternalReference, DigestInfo } from '../../services/kyc/iso20022.generated.js';\nimport type { ASN1OID } from './asn1.js';\nimport { Buffer, arrayBufferToBuffer } from './buffer.js';\n\n/**\n * Builder for Reference structures\n *\n * Creates a Reference containing:\n * - ExternalReference: URL and content type\n * - DigestInfo: Hash algorithm OID and digest\n * - Encryption algorithm OID\n */\nexport class ExternalReferenceBuilder {\n\t#url: string;\n\t#contentType: string;\n\t#digestAlgorithm = 'sha3-256';\n\t#encryptionAlgorithm = 'KeetaEncryptedContainerV1';\n\n\t/**\n\t * Create a new ExternalReferenceBuilder\n\t *\n\t * @param url - The URL where the document can be accessed\n\t * @param contentType - MIME type of the document (e.g., 'image/jpeg', 'application/pdf')\n\t */\n\tconstructor(url: string, contentType: string) {\n\t\tthis.#url = url;\n\t\tthis.#contentType = contentType;\n\t}\n\n\t/**\n\t * Set the digest algorithm (default: 'sha3-256')\n\t *\n\t * @param algorithm - Hash algorithm name (e.g., 'sha256', 'sha3-256')\n\t * @returns this builder for chaining\n\t */\n\twithDigestAlgorithm(algorithm: string): this {\n\t\tthis.#digestAlgorithm = algorithm;\n\t\treturn(this);\n\t}\n\n\t/**\n\t * Set the encryption algorithm (default: 'KeetaEncryptedContainerV1')\n\t *\n\t * @param algorithm - Encryption algorithm name\n\t * @returns this builder for chaining\n\t */\n\twithEncryptionAlgorithm(algorithm: string): this {\n\t\tthis.#encryptionAlgorithm = algorithm;\n\t\treturn(this);\n\t}\n\n\t/**\n\t * Build the Reference structure\n\t *\n\t * @param documentContent - The actual document content to hash\n\t * @returns The Reference structure\n\t */\n\tbuild(documentContent: Buffer): Reference {\n\t\t// Create the ExternalReference structure\n\t\tconst externalReference: ExternalReference = {\n\t\t\turl: this.#url,\n\t\t\tcontentType: this.#contentType\n\t\t};\n\n\t\t// Compute the digest of the actual document content\n\t\tconst hashAlgo = this.#digestAlgorithmToNodeAlgo(this.#digestAlgorithm);\n\t\tconst hash = crypto.createHash(hashAlgo);\n\t\thash.update(documentContent);\n\t\tconst digest = hash.digest();\n\n\t\t// Map algorithm names to OIDs\n\t\tconst digestAlgorithmOID = this.#algorithmToOID(this.#digestAlgorithm);\n\t\tconst encryptionAlgorithmOID = this.#algorithmToOID(this.#encryptionAlgorithm);\n\n\t\t// Create the RFC 3447 DigestInfo structure\n\t\tconst digestInfo: DigestInfo = {\n\t\t\tdigestAlgorithm: digestAlgorithmOID,\n\t\t\tdigest: digest\n\t\t};\n\n\t\t// Create the Reference structure\n\t\tconst reference: Reference = {\n\t\t\texternal: externalReference,\n\t\t\tdigest: digestInfo,\n\t\t\tencryptionAlgorithm: encryptionAlgorithmOID,\n\t\t\t$blob: async function() {\n\t\t\t\treturn(new Blob([documentContent], { type: this.external.contentType }));\n\t\t\t}\n\t\t};\n\n\t\treturn(reference);\n\t}\n\n\t/**\n\t * // XXX:TODO We can handle these better later\n\t * Map algorithm names to Node.js crypto algorithm names\n\t */\n\t#digestAlgorithmToNodeAlgo(algorithm: string): string {\n\t\tconst algoMap: { [key: string]: string } = {\n\t\t\t'sha256': 'sha256',\n\t\t\t'sha3-256': 'sha3-256',\n\t\t\t'sha2-256': 'sha256'\n\t\t};\n\n\t\tconst nodeAlgo = algoMap[algorithm.toLowerCase()];\n\t\tif (!nodeAlgo) {\n\t\t\tthrow(new Error(`Unsupported digest algorithm: ${algorithm}`));\n\t\t}\n\n\t\treturn(nodeAlgo);\n\t}\n\n\t/**\n\t * // XXX:TODO We can handle these better later\n\t * Map algorithm names to OIDs\n\t */\n\t#algorithmToOID(algorithm: string): ASN1OID {\n\t\tconst oidMap: { [key: string]: string } = {\n\t\t\t'sha256': '2.16.840.1.101.3.4.2.1',\n\t\t\t'sha2-256': '2.16.840.1.101.3.4.2.1',\n\t\t\t'sha3-256': '2.16.840.1.101.3.4.2.8',\n\t\t\t'aes-256-cbc': '2.16.840.1.101.3.4.1.42',\n\t\t\t'aes-256-gcm': '2.16.840.1.101.3.4.1.46',\n\t\t\t'keetaencryptedcontainerv1': '1.3.6.1.4.1.62675.2'\n\t\t};\n\n\t\tconst oid = oidMap[algorithm.toLowerCase()];\n\t\tif (!oid) {\n\t\t\tthrow(new Error(`Unsupported algorithm: ${algorithm}`));\n\t\t}\n\n\t\treturn({ type: 'oid', oid });\n\t}\n}\n\nexport async function checkHashWithOID(input: Buffer | ArrayBuffer, expected: DigestInfo): Promise<true | Error>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport async function checkHashWithOID(input: Buffer | ArrayBuffer, expected: unknown): Promise<true | Error>;\nexport async function checkHashWithOID(input: Buffer | ArrayBuffer, expected: unknown): Promise<true | Error> {\n\tlet hashAlgo: string;\n\tif (typeof expected !== 'object' || expected === null || !('digestAlgorithm' in expected) || !('digest' in expected)) {\n\t\treturn(new Error('Invalid expected DigestInfo structure'));\n\t}\n\tif (typeof expected.digestAlgorithm !== 'object' || expected.digestAlgorithm === null || !('oid' in expected.digestAlgorithm)) {\n\t\treturn(new Error('Invalid digestAlgorithm in expected DigestInfo'));\n\t}\n\n\tconst hashAlgoOID = expected.digestAlgorithm.oid;\n\tconst hashValue = expected.digest;\n\tswitch (hashAlgoOID) {\n\t\tcase '2.16.840.1.101.3.4.2.8':\n\t\tcase 'sha3-256':\n\t\t\thashAlgo = 'sha3-256';\n\t\t\tbreak;\n\t\tcase '2.16.840.1.101.3.4.2.1':\n\t\tcase 'sha256':\n\t\tcase 'sha2-256':\n\t\t\thashAlgo = 'sha256';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn(new Error(`Unsupported digest algorithm OID: ${hashAlgoOID}`));\n\t}\n\n\tconst checkHashBuilder = crypto.createHash(hashAlgo);\n\tif (Buffer.isBuffer(input)) {\n\t\tcheckHashBuilder.update(input);\n\t} else {\n\t\tcheckHashBuilder.update(arrayBufferToBuffer(input));\n\t}\n\tconst checkHash = checkHashBuilder.digest();\n\tif (!Buffer.isBuffer(hashValue)) {\n\t\treturn(new Error('internal error: Expected digest to be a Buffer'));\n\t}\n\tif (!checkHash.equals(hashValue)) {\n\t\treturn(new Error('Data integrity check failed: Hash mismatch'));\n\t}\n\n\treturn(true);\n}\n\nexport default ExternalReferenceBuilder;\n"]}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/lib/utils/external.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from './crypto.js';\nimport type { Reference, ExternalReference, DigestInfo } from '../../services/kyc/iso20022.generated.js';\nimport type { ASN1OID } from './asn1.js';\nimport { Buffer, arrayBufferToBuffer } from './buffer.js';\n\n/**\n * Builder for Reference structures\n *\n * Creates a Reference containing:\n * - ExternalReference: URL and content type\n * - DigestInfo: Hash algorithm OID and digest\n * - Encryption algorithm OID\n */\nexport class ExternalReferenceBuilder {\n\t#url: string;\n\t#contentType: string;\n\t#digestAlgorithm = 'sha3-256';\n\t#encryptionAlgorithm = 'KeetaEncryptedContainerV1';\n\n\t/**\n\t * Create a new ExternalReferenceBuilder\n\t *\n\t * @param url - The URL where the document can be accessed\n\t * @param contentType - MIME type of the document (e.g., 'image/jpeg', 'application/pdf')\n\t */\n\tconstructor(url: string, contentType: string) {\n\t\tthis.#url = url;\n\t\tthis.#contentType = contentType;\n\t}\n\n\t/**\n\t * Set the digest algorithm (default: 'sha3-256')\n\t *\n\t * @param algorithm - Hash algorithm name (e.g., 'sha256', 'sha3-256')\n\t * @returns this builder for chaining\n\t */\n\twithDigestAlgorithm(algorithm: string): this {\n\t\tthis.#digestAlgorithm = algorithm;\n\t\treturn(this);\n\t}\n\n\t/**\n\t * Set the encryption algorithm (default: 'KeetaEncryptedContainerV1')\n\t *\n\t * @param algorithm - Encryption algorithm name\n\t * @returns this builder for chaining\n\t */\n\twithEncryptionAlgorithm(algorithm: string): this {\n\t\tthis.#encryptionAlgorithm = algorithm;\n\t\treturn(this);\n\t}\n\n\t/**\n\t * Build the Reference structure\n\t *\n\t * @param documentContent - The actual document content to hash\n\t * @returns The Reference structure\n\t */\n\tbuild(documentContent: Buffer): Reference {\n\t\t// Create the ExternalReference structure\n\t\tconst externalReference: ExternalReference = {\n\t\t\turl: this.#url,\n\t\t\tcontentType: this.#contentType\n\t\t};\n\n\t\t// Compute the digest of the actual document content\n\t\tconst hashAlgo = this.#digestAlgorithmToNodeAlgo(this.#digestAlgorithm);\n\t\tconst hash = crypto.createHash(hashAlgo);\n\t\thash.update(documentContent);\n\t\tconst digest = hash.digest();\n\n\t\t// Map algorithm names to OIDs\n\t\tconst digestAlgorithmOID = this.#algorithmToOID(this.#digestAlgorithm);\n\t\tconst encryptionAlgorithmOID = this.#algorithmToOID(this.#encryptionAlgorithm);\n\n\t\t// Create the RFC 3447 DigestInfo structure\n\t\tconst digestInfo: DigestInfo = {\n\t\t\tdigestAlgorithm: digestAlgorithmOID,\n\t\t\tdigest: digest\n\t\t};\n\n\t\t// Create the Reference structure\n\t\tconst reference: Reference = {\n\t\t\texternal: externalReference,\n\t\t\tdigest: digestInfo,\n\t\t\tencryptionAlgorithm: encryptionAlgorithmOID,\n\t\t\t$blob: async function() {\n\t\t\t\treturn(new Blob([documentContent], { type: this.external.contentType }));\n\t\t\t}\n\t\t};\n\n\t\treturn(reference);\n\t}\n\n\t/**\n\t * // XXX:TODO We can handle these better later\n\t * Map algorithm names to Node.js crypto algorithm names\n\t */\n\t#digestAlgorithmToNodeAlgo(algorithm: string): string {\n\t\tconst algoMap: { [key: string]: string } = {\n\t\t\t'sha256': 'sha256',\n\t\t\t'sha3-256': 'sha3-256',\n\t\t\t'sha2-256': 'sha256'\n\t\t};\n\n\t\tconst nodeAlgo = algoMap[algorithm.toLowerCase()];\n\t\tif (!nodeAlgo) {\n\t\t\tthrow(new Error(`Unsupported digest algorithm: ${algorithm}`));\n\t\t}\n\n\t\treturn(nodeAlgo);\n\t}\n\n\t/**\n\t * // XXX:TODO We can handle these better later\n\t * Map algorithm names to OIDs\n\t */\n\t#algorithmToOID(algorithm: string): ASN1OID {\n\t\tconst oidMap: { [key: string]: string } = {\n\t\t\t'sha256': '2.16.840.1.101.3.4.2.1',\n\t\t\t'sha2-256': '2.16.840.1.101.3.4.2.1',\n\t\t\t'sha3-256': '2.16.840.1.101.3.4.2.8',\n\t\t\t'aes-256-cbc': '2.16.840.1.101.3.4.1.42',\n\t\t\t'aes-256-gcm': '2.16.840.1.101.3.4.1.46',\n\t\t\t'keetaencryptedcontainerv1': '1.3.6.1.4.1.62675.2'\n\t\t};\n\n\t\tconst oid = oidMap[algorithm.toLowerCase()];\n\t\tif (!oid) {\n\t\t\tthrow(new Error(`Unsupported algorithm: ${algorithm}`));\n\t\t}\n\n\t\treturn({ type: 'oid', oid });\n\t}\n}\n\nexport async function checkHashWithOID(input: Buffer | ArrayBuffer, expected: DigestInfo): Promise<true | Error>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport async function checkHashWithOID(input: Buffer | ArrayBuffer, expected: unknown): Promise<true | Error>;\nexport async function checkHashWithOID(input: Buffer | ArrayBuffer, expected: unknown): Promise<true | Error> {\n\tlet hashAlgo: string;\n\tif (typeof expected !== 'object' || expected === null || !('digestAlgorithm' in expected) || !('digest' in expected)) {\n\t\treturn(new Error('Invalid expected DigestInfo structure'));\n\t}\n\n\t// digestAlgorithm can be either a string (OID) or an object {oid: string}\n\tlet hashAlgoOID: string;\n\tif (typeof expected.digestAlgorithm === 'string') {\n\t\thashAlgoOID = expected.digestAlgorithm;\n\t} else if (typeof expected.digestAlgorithm === 'object' && expected.digestAlgorithm !== null && 'oid' in expected.digestAlgorithm && typeof expected.digestAlgorithm.oid === 'string') {\n\t\thashAlgoOID = expected.digestAlgorithm.oid;\n\t} else {\n\t\treturn(new Error('Invalid digestAlgorithm in expected DigestInfo'));\n\t}\n\n\tconst hashValue = expected.digest;\n\tswitch (hashAlgoOID) {\n\t\tcase '2.16.840.1.101.3.4.2.8':\n\t\tcase 'sha3-256':\n\t\t\thashAlgo = 'sha3-256';\n\t\t\tbreak;\n\t\tcase '2.16.840.1.101.3.4.2.1':\n\t\tcase 'sha256':\n\t\tcase 'sha2-256':\n\t\t\thashAlgo = 'sha256';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn(new Error(`Unsupported digest algorithm OID: ${hashAlgoOID}`));\n\t}\n\n\tconst checkHashBuilder = crypto.createHash(hashAlgo);\n\tif (Buffer.isBuffer(input)) {\n\t\tcheckHashBuilder.update(input);\n\t} else {\n\t\tcheckHashBuilder.update(arrayBufferToBuffer(input));\n\t}\n\tconst checkHash = checkHashBuilder.digest();\n\tif (!Buffer.isBuffer(hashValue)) {\n\t\treturn(new Error('internal error: Expected digest to be a Buffer'));\n\t}\n\tif (!checkHash.equals(hashValue)) {\n\t\treturn(new Error('Data integrity check failed: Hash mismatch'));\n\t}\n\n\treturn(true);\n}\n\nexport default ExternalReferenceBuilder;\n"]}
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@keetanetwork/anchor",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@keetanetwork/anchor",
9
- "version": "0.0.21",
9
+ "version": "0.0.23",
10
10
  "license": "SEE LICENSE IN LICENSE",
11
11
  "dependencies": {
12
12
  "@keetanetwork/currency-info": "1.2.5",
13
- "@keetanetwork/keetanet-client": "0.14.11",
13
+ "@keetanetwork/keetanet-client": "0.14.12",
14
14
  "typia": "9.5.0"
15
15
  },
16
16
  "engines": {
@@ -185,8 +185,8 @@
185
185
  "license": "ISC"
186
186
  },
187
187
  "node_modules/@keetanetwork/keetanet-client": {
188
- "version": "0.14.11",
189
- "integrity": "sha512-y2W4T/MO5Z7vhIEvC1H9XVCkXv7vuQG4bP18qoX7b+34h5vcevHA9rPnqdkyVuxxAhyVskJ9j/XrmrizNxEU9A==",
188
+ "version": "0.14.12",
189
+ "integrity": "sha512-9abaDfOZjaLoPlHSIFLuFm3plu+N551yXuNukSjIm/wkogftmVwT37fb3bvJEyBAxOkNll0zDGh1Pfgwq6nsaQ==",
190
190
  "license": "see LICENSE",
191
191
  "dependencies": {
192
192
  "secp256k1": "5.0.1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keetanetwork/anchor",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "KeetaNetwork Network Anchor",
5
5
  "main": "client/index.js",
6
6
  "scripts": {
@@ -23,7 +23,7 @@
23
23
  "sideEffects": false,
24
24
  "dependencies": {
25
25
  "@keetanetwork/currency-info": "1.2.5",
26
- "@keetanetwork/keetanet-client": "0.14.11",
26
+ "@keetanetwork/keetanet-client": "0.14.12",
27
27
  "typia": "9.5.0"
28
28
  },
29
29
  "engines": {
@@ -101,6 +101,7 @@ declare class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBas
101
101
  readonly id: string;
102
102
  constructor(client: KeetaNetUserClient, config?: KeetaAssetMovementClientConfig);
103
103
  getProvidersForTransfer(request: ProviderSearchInput): Promise<KeetaAssetMovementAnchorProvider[] | null>;
104
+ getProviderByID(providerID: string): Promise<KeetaAssetMovementAnchorProvider | null>;
104
105
  }
105
106
  export default KeetaAssetMovementAnchorClient;
106
107
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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"}
@@ -18,18 +18,15 @@ function validateURL(url) {
18
18
  const parsedURL = new URL(url);
19
19
  return (parsedURL);
20
20
  }
21
- async function getEndpoints(resolver, request) {
22
- const asset = request.asset ? convertAssetSearchInputToCanonical(request.asset) : undefined;
23
- if (asset === undefined) {
24
- throw (new Error('asset it required to lookup provider'));
25
- }
21
+ async function getEndpoints(resolver, request, shared) {
22
+ const asset = request.asset ? { asset: convertAssetSearchInputToCanonical(request.asset) } : undefined;
26
23
  const from = request.from ? { from: convertAssetLocationToString(request.from) } : {};
27
24
  const to = request.to ? { to: convertAssetLocationToString(request.to) } : {};
28
25
  const response = await resolver.lookup('assetMovement', {
29
- asset,
26
+ ...asset,
30
27
  ...from,
31
28
  ...to
32
- });
29
+ }, shared);
33
30
  if (response === undefined) {
34
31
  return (null);
35
32
  }
@@ -253,8 +250,8 @@ class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
253
250
  throw (new Error('KeetaAssetMovementAnchorClient requires an Account or a UserClient with an associated Account'));
254
251
  }
255
252
  }
256
- async getProvidersForTransfer(request) {
257
- const endpoints = await getEndpoints(this.resolver, request);
253
+ async #lookup(request, shared) {
254
+ const endpoints = await getEndpoints(this.resolver, request, shared);
258
255
  if (endpoints === null) {
259
256
  return (null);
260
257
  }
@@ -263,6 +260,13 @@ class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
263
260
  });
264
261
  return (providers);
265
262
  }
263
+ async getProvidersForTransfer(request) {
264
+ return (await this.#lookup(request));
265
+ }
266
+ async getProviderByID(providerID) {
267
+ const providers = await this.#lookup({}, { providerIDs: [providerID] });
268
+ return (providers?.[0] ?? null);
269
+ }
266
270
  /** @internal */
267
271
  _internals(accessToken) {
268
272
  if (accessToken !== KeetaAssetMovementAnchorClientAccessToken) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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","sourcesContent":["import type { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\n\nimport { getDefaultResolver } from '../../config.js';\n\nimport type {\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport type {\n\tKeetaAssetMovementAnchorInitiateTransferRequest,\n\tKeetaAssetMovementAnchorGetTransferStatusRequest,\n\tKeetaAssetMovementAnchorGetTransferStatusResponse,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tSupportedAssets,\n\tProviderSearchInput,\n\tKeetaAssetMovementAnchorlistTransactionsRequest,\n\tKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\tAssetTransferInstructions\n} from './common.js';\nimport {\n\tassertKeetaSupportedAssets,\n\tconvertAssetLocationToString,\n\tconvertAssetSearchInputToCanonical,\n\tisKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tisKeetaAssetMovementAnchorGetExchangeStatusResponse,\n\tisKeetaAssetMovementAnchorInitiateTransferResponse,\n\tisKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse\n} from './common.js';\nimport type { Logger } from '../../lib/log/index.ts';\nimport Resolver from \"../../lib/resolver.js\";\nimport type { ServiceMetadata } from '../../lib/resolver.ts';\nimport crypto from '../../lib/utils/crypto.js';\nimport type { BrandedString } from '../../lib/utils/brand.js';\n\n// const PARANOID = true;\n\n/**\n * The configuration options for the Asset Movement (Inbound/Outbound) Anchor client.\n */\nexport type KeetaAssetMovementClientConfig = {\n\t/**\n\t * The ID of the client. This is used to identify the client in logs.\n\t * If not provided, a random ID will be generated.\n\t */\n\tid?: string;\n\t/**\n\t * The logger to use for logging messages. If not provided, no logging\n\t * will be done.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * The resolver to use for resolving Asset Movement Anchor services. If not\n\t * provided, a default resolver will be created using the provided\n\t * client and network (if the network is also not provided and the\n\t * client is not a UserClient, an error occurs).\n\t */\n\tresolver?: Resolver;\n\t/**\n\t * The account to use for signing requests. If not provided, the\n\t * account associated with the provided client will be used. If there\n\t * is no account associated with the client, an error occurs.\n\t */\n\tsigner?: InstanceType<typeof KeetaNetLib.Account>;\n\t/**\n\t * Account to perform changes on. If not provided, the account\n\t * associated with the provided client will be used. If there is no\n\t * account associated with the client, an error occurs.\n\t */\n\taccount?: InstanceType<typeof KeetaNetLib.Account>;\n} & Omit<NonNullable<Parameters<typeof getDefaultResolver>[1]>, 'client'>;\n\n/**\n * An opaque type that represents a provider ID.\n */\ntype ProviderID = BrandedString<'AssetMovementProviderID'>;\n\n/**\n * An opaque type that represents an Asset Movement Anchor request ID\n */\n// type RequestID = BrandedString<'AssetMovementRequestID'>;\n\nconst KeetaAssetMovementAnchorClientAccessToken = Symbol('KeetaAssetMovementAnchorClientAccessToken');\n\nfunction typedAssetMovementServiceEntries<T extends object>(obj: T): [keyof T, T[keyof T]][] {\n\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\treturn(Object.entries(obj) as [keyof T, T[keyof T]][]);\n}\n\n/**\n * A list of operations that can be performed by the Asset Movement Anchor service.\n */\ntype KeetaAssetMovementAnchorOperations = {\n\t[operation in keyof NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations']]?: (params?: { [key: string]: string; }) => URL;\n};\n\n/**\n * The service information for a KYC Anchor service.\n */\ntype KeetaAssetMovementServiceInfo = {\n\toperations: {\n\t\t[operation in keyof KeetaAssetMovementAnchorOperations]: Promise<KeetaAssetMovementAnchorOperations[operation]>;\n\t};\n\n\tsupportedAssets: SupportedAssets[];\n};\n\n/**\n * For each matching KYC Anchor service, this type describes the\n * operations available and the country codes that the service supports.\n */\ntype GetEndpointsResult = {\n\t[id: ProviderID]: KeetaAssetMovementServiceInfo;\n};\n\nfunction validateURL(url: string | undefined): URL {\n\tif (url === undefined || url === null) {\n\t\tthrow(new Error('Invalid URL: null or undefined'));\n\t}\n\n\tconst parsedURL = new URL(url);\n\n\treturn(parsedURL);\n}\n\nasync function getEndpoints(resolver: Resolver, request: ProviderSearchInput): Promise<GetEndpointsResult | null> {\n\tconst asset = request.asset ? convertAssetSearchInputToCanonical(request.asset) : undefined;\n\tif (asset === undefined) {\n\t\tthrow(new Error('asset it required to lookup provider'));\n\t}\n\tconst from = request.from ? { from: convertAssetLocationToString(request.from) } : {};\n\tconst to = request.to ? { to: convertAssetLocationToString(request.to) } : {};\n\tconst response = await resolver.lookup('assetMovement', {\n\t\tasset,\n\t\t...from,\n\t\t...to\n\t});\n\n\tif (response === undefined) {\n\t\treturn(null);\n\t}\n\n\tconst serviceInfoPromises = Object.entries(response).map(async function([id, serviceInfo]): Promise<[ProviderID, KeetaAssetMovementServiceInfo]> {\n\t\tconst supportedAssetsMetadata = await Resolver.Metadata.fullyResolveValuizable(serviceInfo.supportedAssets);\n\t\tconst supportedAssets = assertKeetaSupportedAssets(supportedAssetsMetadata);\n\n\t\tconst operations = await serviceInfo.operations('object');\n\t\tconst operationsFunctions: KeetaAssetMovementServiceInfo['operations'] = {};\n\t\tfor (const [key, operation] of Object.entries(operations)) {\n\t\t\tif (operation === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tObject.defineProperty(operationsFunctions, key, {\n\t\t\t\tget: async function() {\n\t\t\t\t\tconst url = await operation('string');\n\t\t\t\t\treturn(function(params?: { [key: string]: string; }): URL {\n\t\t\t\t\t\tlet substitutedURL = url;\n\t\t\t\t\t\tfor (const [paramKey, paramValue] of Object.entries(params ?? {})) {\n\t\t\t\t\t\t\tsubstitutedURL = substitutedURL.replace(`{${paramKey}}`, encodeURIComponent(paramValue));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(validateURL(substitutedURL));\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\n\t\treturn([\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tid as unknown as ProviderID,\n\t\t\t{\n\t\t\t\toperations: operationsFunctions,\n\t\t\t\tsupportedAssets: supportedAssets\n\t\t\t}\n\t\t]);\n\t});\n\n\tconst retval = Object.fromEntries(await Promise.all(serviceInfoPromises));\n\n\treturn(retval);\n}\n\ninterface KeetaAssetMovementAnchorBaseConfig {\n\tclient: KeetaNetUserClient;\n\tlogger?: Logger | undefined;\n}\n\nclass KeetaAssetMovementAnchorBase {\n\tprotected readonly logger?: Logger | undefined;\n\tprotected readonly client: KeetaNetUserClient;\n\n\tconstructor(config: KeetaAssetMovementAnchorBaseConfig) {\n\t\tthis.client = config.client;\n\t\tthis.logger = config.logger;\n\t}\n}\n\n/**\n * Represents an in-progress Asset Movement request.\n */\nclass KeetaAssetMovementTransfer {\n\tprivate readonly provider: KeetaAssetMovementAnchorProvider;\n\tprivate request: KeetaAssetMovementAnchorInitiateTransferRequest;\n\tprivate transfer: { id: string, instructionChoices: AssetTransferInstructions[] }\n\n\tconstructor(provider: KeetaAssetMovementAnchorProvider, request: KeetaAssetMovementAnchorInitiateTransferRequest, transfer: { id: string, instructionChoices: AssetTransferInstructions[] }) {\n\t\tthis.provider = provider;\n\t\tthis.request = request;\n\t\tthis.transfer = transfer;\n\t}\n\n\tasync getTransferStatus(): Promise<KeetaAssetMovementAnchorGetTransferStatusResponse> {\n\t\treturn(await this.provider.getTransferStatus({ id: this.transfer.id }));\n\t}\n\n\tget transferId(): string {\n\t\treturn(this.transfer.id);\n\t}\n\n\tget instructions(): AssetTransferInstructions[] {\n\t\treturn(this.transfer.instructionChoices);\n\t}\n}\n\nclass KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {\n\treadonly serviceInfo: KeetaAssetMovementServiceInfo;\n\treadonly providerID: ProviderID;\n\tprivate readonly parent: KeetaAssetMovementAnchorClient;\n\n\tconstructor(serviceInfo: KeetaAssetMovementServiceInfo, providerID: ProviderID, parent: KeetaAssetMovementAnchorClient) {\n\t\tconst parentPrivate = parent._internals(KeetaAssetMovementAnchorClientAccessToken);\n\t\tsuper(parentPrivate);\n\n\t\tthis.serviceInfo = serviceInfo;\n\t\tthis.providerID = providerID;\n\t\tthis.parent = parent;\n\t}\n\n\tasync initiateTransfer(request: KeetaAssetMovementAnchorInitiateTransferRequest): Promise<KeetaAssetMovementTransfer> {\n\t\tthis.logger?.debug(`Starting Asset Movement Transfer for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);\n\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst initiateTransfer = await endpoints.initiateTransfer;\n\t\tif (initiateTransfer === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support initiateTransfer operation'));\n\t\t}\n\t\tconst initiateTransferURL = initiateTransfer();\n\t\tconst requestInformation = await fetch(initiateTransferURL, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\t...request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorInitiateTransferResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from asset movement service: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`asset movement request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`asset movement request successful, request ID ${requestInformationJSON.id}`);\n\n\t\tconst anchorTransfer = new KeetaAssetMovementTransfer(this, request, { id: requestInformationJSON.id, instructionChoices: requestInformationJSON.instructionChoices });\n\t\treturn(anchorTransfer);\n\t}\n\n\tasync getTransferStatus(request: KeetaAssetMovementAnchorGetTransferStatusRequest): Promise<KeetaAssetMovementAnchorGetTransferStatusResponse> {\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst getTransferStatus = await endpoints.getTransferStatus;\n\t\tif (getTransferStatus === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support getTransferStatus operation'));\n\t\t}\n\t\tconst getTransferURL = getTransferStatus({ id: request.id });\n\t\tconst requestInformation = await fetch(getTransferURL, {\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t}\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorGetExchangeStatusResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from asset movement service: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`asset movement request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`asset movement request successful, request ID ${request.id}`);\n\n\t\treturn(requestInformationJSON);\n\t}\n\n\tasync createPersistentForwardingAddress(request: KeetaAssetMovementAnchorCreatePersistentForwardingRequest): Promise<KeetaAssetMovementAnchorCreatePersistentForwardingResponse | null> {\n\t\tthis.logger?.debug(`Creating persistent forwarding for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);\n\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst createPersistentForwarding = await endpoints.createPersistentForwarding;\n\t\tif (createPersistentForwarding === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support createPersistentForwarding operation'));\n\t\t}\n\t\tconst createPersistentForwardingURL = createPersistentForwarding();\n\t\tconst requestInformation = await fetch(createPersistentForwardingURL, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\t...request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorCreatePersistentForwardingResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from create persistent forwarding request: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`create persistent forwarding request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`create persistent forwarding request successful, ${requestInformationJSON.address}`);\n\n\t\treturn(requestInformationJSON);\n\t}\n\n\tasync listTransactions(request: KeetaAssetMovementAnchorlistTransactionsRequest): Promise<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse | null> {\n\t\tthis.logger?.debug(`List persistent forwarding transactions provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);\n\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst listTransactions = await endpoints.listTransactions;\n\t\tif (listTransactions === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support listTransactions operation'));\n\t\t}\n\t\tconst listTransactionsURL = listTransactions();\n\t\tconst requestInformation = await fetch(listTransactionsURL, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\t...request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from list persistent transactions request: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`list persistent transactions request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`list persistent transactions request successful, ${requestInformationJSON.transactions}`);\n\n\t\treturn(requestInformationJSON);\n\t}\n}\n\nclass KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {\n\treadonly resolver: Resolver;\n\treadonly id: string;\n\t// eslint-disable-next-line no-unused-private-class-members\n\treadonly #signer: InstanceType<typeof KeetaNetLib.Account>;\n\t// eslint-disable-next-line no-unused-private-class-members\n\treadonly #account: InstanceType<typeof KeetaNetLib.Account>;\n\n\tconstructor(client: KeetaNetUserClient, config: KeetaAssetMovementClientConfig = {}) {\n\t\tsuper({ client, logger: config.logger });\n\t\tthis.resolver = config.resolver ?? getDefaultResolver(client, config);\n\t\tthis.id = config.id ?? crypto.randomUUID();\n\n\t\tif (config.signer) {\n\t\t\tthis.#signer = config.signer;\n\t\t} else if ('signer' in client && client.signer !== null) {\n\t\t\tthis.#signer = client.signer;\n\t\t} else if ('account' in client && client.account.hasPrivateKey) {\n\t\t\tthis.#signer = client.account;\n\t\t} else {\n\t\t\tthrow(new Error('KeetaAssetMovementAnchorClient requires a Signer or a UserClient with an associated Signer'));\n\t\t}\n\n\t\tif (config.account) {\n\t\t\tthis.#account = config.account;\n\t\t} else if ('account' in client) {\n\t\t\tthis.#account = client.account;\n\t\t} else {\n\t\t\tthrow(new Error('KeetaAssetMovementAnchorClient requires an Account or a UserClient with an associated Account'));\n\t\t}\n\t}\n\n\tasync getProvidersForTransfer(request: ProviderSearchInput): Promise<KeetaAssetMovementAnchorProvider[] | null> {\n\t\tconst endpoints = await getEndpoints(this.resolver, request);\n\t\tif (endpoints === null) {\n\t\t\treturn(null);\n\t\t}\n\n\t\tconst providers = typedAssetMovementServiceEntries(endpoints).map(([id, serviceInfo]) => {\n\t\t\treturn(new KeetaAssetMovementAnchorProvider(serviceInfo, id, this));\n\t\t});\n\n\t\treturn(providers);\n\t}\n\n\t/** @internal */\n\t_internals(accessToken: symbol) {\n\t\tif (accessToken !== KeetaAssetMovementAnchorClientAccessToken) {\n\t\t\tthrow(new Error('invalid access token'));\n\t\t}\n\n\t\treturn({\n\t\t\tresolver: this.resolver,\n\t\t\tlogger: this.logger,\n\t\t\tclient: this.client\n\t\t});\n\t}\n}\n\nexport default KeetaAssetMovementAnchorClient;\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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","sourcesContent":["import type { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\n\nimport { getDefaultResolver } from '../../config.js';\n\nimport type {\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport type {\n\tKeetaAssetMovementAnchorInitiateTransferRequest,\n\tKeetaAssetMovementAnchorGetTransferStatusRequest,\n\tKeetaAssetMovementAnchorGetTransferStatusResponse,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingRequest,\n\tKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tSupportedAssets,\n\tProviderSearchInput,\n\tKeetaAssetMovementAnchorlistTransactionsRequest,\n\tKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse,\n\tAssetTransferInstructions\n} from './common.js';\nimport {\n\tassertKeetaSupportedAssets,\n\tconvertAssetLocationToString,\n\tconvertAssetSearchInputToCanonical,\n\tisKeetaAssetMovementAnchorCreatePersistentForwardingResponse,\n\tisKeetaAssetMovementAnchorGetExchangeStatusResponse,\n\tisKeetaAssetMovementAnchorInitiateTransferResponse,\n\tisKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse\n} from './common.js';\nimport type { Logger } from '../../lib/log/index.ts';\nimport Resolver from \"../../lib/resolver.js\";\nimport type { ServiceMetadata, SharedLookupCriteria } from '../../lib/resolver.ts';\nimport crypto from '../../lib/utils/crypto.js';\nimport type { BrandedString } from '../../lib/utils/brand.js';\n\n// const PARANOID = true;\n\n/**\n * The configuration options for the Asset Movement (Inbound/Outbound) Anchor client.\n */\nexport type KeetaAssetMovementClientConfig = {\n\t/**\n\t * The ID of the client. This is used to identify the client in logs.\n\t * If not provided, a random ID will be generated.\n\t */\n\tid?: string;\n\t/**\n\t * The logger to use for logging messages. If not provided, no logging\n\t * will be done.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * The resolver to use for resolving Asset Movement Anchor services. If not\n\t * provided, a default resolver will be created using the provided\n\t * client and network (if the network is also not provided and the\n\t * client is not a UserClient, an error occurs).\n\t */\n\tresolver?: Resolver;\n\t/**\n\t * The account to use for signing requests. If not provided, the\n\t * account associated with the provided client will be used. If there\n\t * is no account associated with the client, an error occurs.\n\t */\n\tsigner?: InstanceType<typeof KeetaNetLib.Account>;\n\t/**\n\t * Account to perform changes on. If not provided, the account\n\t * associated with the provided client will be used. If there is no\n\t * account associated with the client, an error occurs.\n\t */\n\taccount?: InstanceType<typeof KeetaNetLib.Account>;\n} & Omit<NonNullable<Parameters<typeof getDefaultResolver>[1]>, 'client'>;\n\n/**\n * An opaque type that represents a provider ID.\n */\ntype ProviderID = BrandedString<'AssetMovementProviderID'>;\n\n/**\n * An opaque type that represents an Asset Movement Anchor request ID\n */\n// type RequestID = BrandedString<'AssetMovementRequestID'>;\n\nconst KeetaAssetMovementAnchorClientAccessToken = Symbol('KeetaAssetMovementAnchorClientAccessToken');\n\nfunction typedAssetMovementServiceEntries<T extends object>(obj: T): [keyof T, T[keyof T]][] {\n\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\treturn(Object.entries(obj) as [keyof T, T[keyof T]][]);\n}\n\n/**\n * A list of operations that can be performed by the Asset Movement Anchor service.\n */\ntype KeetaAssetMovementAnchorOperations = {\n\t[operation in keyof NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations']]?: (params?: { [key: string]: string; }) => URL;\n};\n\n/**\n * The service information for a KYC Anchor service.\n */\ntype KeetaAssetMovementServiceInfo = {\n\toperations: {\n\t\t[operation in keyof KeetaAssetMovementAnchorOperations]: Promise<KeetaAssetMovementAnchorOperations[operation]>;\n\t};\n\n\tsupportedAssets: SupportedAssets[];\n};\n\n/**\n * For each matching KYC Anchor service, this type describes the\n * operations available and the country codes that the service supports.\n */\ntype GetEndpointsResult = {\n\t[id: ProviderID]: KeetaAssetMovementServiceInfo;\n};\n\nfunction validateURL(url: string | undefined): URL {\n\tif (url === undefined || url === null) {\n\t\tthrow(new Error('Invalid URL: null or undefined'));\n\t}\n\n\tconst parsedURL = new URL(url);\n\n\treturn(parsedURL);\n}\n\nasync function getEndpoints(resolver: Resolver, request: ProviderSearchInput, shared?: SharedLookupCriteria): Promise<GetEndpointsResult | null> {\n\tconst asset = request.asset ? { asset: convertAssetSearchInputToCanonical(request.asset) } : undefined;\n\tconst from = request.from ? { from: convertAssetLocationToString(request.from) } : {};\n\tconst to = request.to ? { to: convertAssetLocationToString(request.to) } : {};\n\tconst response = await resolver.lookup('assetMovement', {\n\t\t...asset,\n\t\t...from,\n\t\t...to\n\t}, shared);\n\n\tif (response === undefined) {\n\t\treturn(null);\n\t}\n\n\tconst serviceInfoPromises = Object.entries(response).map(async function([id, serviceInfo]): Promise<[ProviderID, KeetaAssetMovementServiceInfo]> {\n\t\tconst supportedAssetsMetadata = await Resolver.Metadata.fullyResolveValuizable(serviceInfo.supportedAssets);\n\t\tconst supportedAssets = assertKeetaSupportedAssets(supportedAssetsMetadata);\n\n\t\tconst operations = await serviceInfo.operations('object');\n\t\tconst operationsFunctions: KeetaAssetMovementServiceInfo['operations'] = {};\n\t\tfor (const [key, operation] of Object.entries(operations)) {\n\t\t\tif (operation === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tObject.defineProperty(operationsFunctions, key, {\n\t\t\t\tget: async function() {\n\t\t\t\t\tconst url = await operation('string');\n\t\t\t\t\treturn(function(params?: { [key: string]: string; }): URL {\n\t\t\t\t\t\tlet substitutedURL = url;\n\t\t\t\t\t\tfor (const [paramKey, paramValue] of Object.entries(params ?? {})) {\n\t\t\t\t\t\t\tsubstitutedURL = substitutedURL.replace(`{${paramKey}}`, encodeURIComponent(paramValue));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(validateURL(substitutedURL));\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\n\t\treturn([\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tid as unknown as ProviderID,\n\t\t\t{\n\t\t\t\toperations: operationsFunctions,\n\t\t\t\tsupportedAssets: supportedAssets\n\t\t\t}\n\t\t]);\n\t});\n\n\tconst retval = Object.fromEntries(await Promise.all(serviceInfoPromises));\n\n\treturn(retval);\n}\n\ninterface KeetaAssetMovementAnchorBaseConfig {\n\tclient: KeetaNetUserClient;\n\tlogger?: Logger | undefined;\n}\n\nclass KeetaAssetMovementAnchorBase {\n\tprotected readonly logger?: Logger | undefined;\n\tprotected readonly client: KeetaNetUserClient;\n\n\tconstructor(config: KeetaAssetMovementAnchorBaseConfig) {\n\t\tthis.client = config.client;\n\t\tthis.logger = config.logger;\n\t}\n}\n\n/**\n * Represents an in-progress Asset Movement request.\n */\nclass KeetaAssetMovementTransfer {\n\tprivate readonly provider: KeetaAssetMovementAnchorProvider;\n\tprivate request: KeetaAssetMovementAnchorInitiateTransferRequest;\n\tprivate transfer: { id: string, instructionChoices: AssetTransferInstructions[] }\n\n\tconstructor(provider: KeetaAssetMovementAnchorProvider, request: KeetaAssetMovementAnchorInitiateTransferRequest, transfer: { id: string, instructionChoices: AssetTransferInstructions[] }) {\n\t\tthis.provider = provider;\n\t\tthis.request = request;\n\t\tthis.transfer = transfer;\n\t}\n\n\tasync getTransferStatus(): Promise<KeetaAssetMovementAnchorGetTransferStatusResponse> {\n\t\treturn(await this.provider.getTransferStatus({ id: this.transfer.id }));\n\t}\n\n\tget transferId(): string {\n\t\treturn(this.transfer.id);\n\t}\n\n\tget instructions(): AssetTransferInstructions[] {\n\t\treturn(this.transfer.instructionChoices);\n\t}\n}\n\nclass KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {\n\treadonly serviceInfo: KeetaAssetMovementServiceInfo;\n\treadonly providerID: ProviderID;\n\tprivate readonly parent: KeetaAssetMovementAnchorClient;\n\n\tconstructor(serviceInfo: KeetaAssetMovementServiceInfo, providerID: ProviderID, parent: KeetaAssetMovementAnchorClient) {\n\t\tconst parentPrivate = parent._internals(KeetaAssetMovementAnchorClientAccessToken);\n\t\tsuper(parentPrivate);\n\n\t\tthis.serviceInfo = serviceInfo;\n\t\tthis.providerID = providerID;\n\t\tthis.parent = parent;\n\t}\n\n\tasync initiateTransfer(request: KeetaAssetMovementAnchorInitiateTransferRequest): Promise<KeetaAssetMovementTransfer> {\n\t\tthis.logger?.debug(`Starting Asset Movement Transfer for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);\n\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst initiateTransfer = await endpoints.initiateTransfer;\n\t\tif (initiateTransfer === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support initiateTransfer operation'));\n\t\t}\n\t\tconst initiateTransferURL = initiateTransfer();\n\t\tconst requestInformation = await fetch(initiateTransferURL, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\t...request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorInitiateTransferResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from asset movement service: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`asset movement request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`asset movement request successful, request ID ${requestInformationJSON.id}`);\n\n\t\tconst anchorTransfer = new KeetaAssetMovementTransfer(this, request, { id: requestInformationJSON.id, instructionChoices: requestInformationJSON.instructionChoices });\n\t\treturn(anchorTransfer);\n\t}\n\n\tasync getTransferStatus(request: KeetaAssetMovementAnchorGetTransferStatusRequest): Promise<KeetaAssetMovementAnchorGetTransferStatusResponse> {\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst getTransferStatus = await endpoints.getTransferStatus;\n\t\tif (getTransferStatus === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support getTransferStatus operation'));\n\t\t}\n\t\tconst getTransferURL = getTransferStatus({ id: request.id });\n\t\tconst requestInformation = await fetch(getTransferURL, {\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t}\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorGetExchangeStatusResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from asset movement service: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`asset movement request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`asset movement request successful, request ID ${request.id}`);\n\n\t\treturn(requestInformationJSON);\n\t}\n\n\tasync createPersistentForwardingAddress(request: KeetaAssetMovementAnchorCreatePersistentForwardingRequest): Promise<KeetaAssetMovementAnchorCreatePersistentForwardingResponse | null> {\n\t\tthis.logger?.debug(`Creating persistent forwarding for provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);\n\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst createPersistentForwarding = await endpoints.createPersistentForwarding;\n\t\tif (createPersistentForwarding === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support createPersistentForwarding operation'));\n\t\t}\n\t\tconst createPersistentForwardingURL = createPersistentForwarding();\n\t\tconst requestInformation = await fetch(createPersistentForwardingURL, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\t...request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorCreatePersistentForwardingResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from create persistent forwarding request: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`create persistent forwarding request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`create persistent forwarding request successful, ${requestInformationJSON.address}`);\n\n\t\treturn(requestInformationJSON);\n\t}\n\n\tasync listTransactions(request: KeetaAssetMovementAnchorlistTransactionsRequest): Promise<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse | null> {\n\t\tthis.logger?.debug(`List persistent forwarding transactions provider ID: ${String(this.providerID)}, request: ${JSON.stringify(request)}`);\n\n\t\tconst endpoints = this.serviceInfo.operations;\n\t\tconst listTransactions = await endpoints.listTransactions;\n\t\tif (listTransactions === undefined) {\n\t\t\tthrow(new Error('Asset Movement service does not support listTransactions operation'));\n\t\t}\n\t\tconst listTransactionsURL = listTransactions();\n\t\tconst requestInformation = await fetch(listTransactionsURL, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\t...request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from list persistent transactions request: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`list persistent transactions request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\tthis.logger?.debug(`list persistent transactions request successful, ${requestInformationJSON.transactions}`);\n\n\t\treturn(requestInformationJSON);\n\t}\n}\n\nclass KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {\n\treadonly resolver: Resolver;\n\treadonly id: string;\n\t// eslint-disable-next-line no-unused-private-class-members\n\treadonly #signer: InstanceType<typeof KeetaNetLib.Account>;\n\t// eslint-disable-next-line no-unused-private-class-members\n\treadonly #account: InstanceType<typeof KeetaNetLib.Account>;\n\n\tconstructor(client: KeetaNetUserClient, config: KeetaAssetMovementClientConfig = {}) {\n\t\tsuper({ client, logger: config.logger });\n\t\tthis.resolver = config.resolver ?? getDefaultResolver(client, config);\n\t\tthis.id = config.id ?? crypto.randomUUID();\n\n\t\tif (config.signer) {\n\t\t\tthis.#signer = config.signer;\n\t\t} else if ('signer' in client && client.signer !== null) {\n\t\t\tthis.#signer = client.signer;\n\t\t} else if ('account' in client && client.account.hasPrivateKey) {\n\t\t\tthis.#signer = client.account;\n\t\t} else {\n\t\t\tthrow(new Error('KeetaAssetMovementAnchorClient requires a Signer or a UserClient with an associated Signer'));\n\t\t}\n\n\t\tif (config.account) {\n\t\t\tthis.#account = config.account;\n\t\t} else if ('account' in client) {\n\t\t\tthis.#account = client.account;\n\t\t} else {\n\t\t\tthrow(new Error('KeetaAssetMovementAnchorClient requires an Account or a UserClient with an associated Account'));\n\t\t}\n\t}\n\n\tasync #lookup(request: ProviderSearchInput, shared?: SharedLookupCriteria): Promise<KeetaAssetMovementAnchorProvider[] | null> {\n\t\tconst endpoints = await getEndpoints(this.resolver, request, shared);\n\t\tif (endpoints === null) {\n\t\t\treturn(null);\n\t\t}\n\n\t\tconst providers = typedAssetMovementServiceEntries(endpoints).map(([id, serviceInfo]) => {\n\t\t\treturn(new KeetaAssetMovementAnchorProvider(serviceInfo, id, this));\n\t\t});\n\n\t\treturn(providers);\n\t}\n\n\tasync getProvidersForTransfer(request: ProviderSearchInput): Promise<KeetaAssetMovementAnchorProvider[] | null> {\n\t\treturn(await this.#lookup(request));\n\t}\n\n\tasync getProviderByID(providerID: string): Promise<KeetaAssetMovementAnchorProvider | null> {\n\t\tconst providers = await this.#lookup({}, { providerIDs: [providerID] });\n\t\treturn(providers?.[0] ?? null);\n\t}\n\n\t/** @internal */\n\t_internals(accessToken: symbol) {\n\t\tif (accessToken !== KeetaAssetMovementAnchorClientAccessToken) {\n\t\t\tthrow(new Error('invalid access token'));\n\t\t}\n\n\t\treturn({\n\t\t\tresolver: this.resolver,\n\t\t\tlogger: this.logger,\n\t\t\tclient: this.client\n\t\t});\n\t}\n}\n\nexport default KeetaAssetMovementAnchorClient;\n"]}
@@ -15,7 +15,7 @@ export type AssetLocationInput = AssetLocation | AssetLocationString;
15
15
  export type AssetLocationCanonical = AssetLocationString;
16
16
  export type AssetMovementRail = unknown;
17
17
  export type ProviderSearchInput = {
18
- asset: MovableAsset;
18
+ asset?: MovableAsset;
19
19
  from?: AssetLocationInput;
20
20
  to?: AssetLocationInput;
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServiceMetadata } from '../../lib/resolver.ts';\nimport { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport * as CurrencyInfo from '@keetanetwork/currency-info';\nimport type { TokenAddress, TokenPublicKeyString } from '@keetanetwork/keetanet-client/lib/account.js';\nimport { createAssert, createAssertEquals, createIs } from 'typia';\n\ntype HexString = `0x${string}`;\n\nexport type KeetaNetTokenPublicKeyString = ReturnType<InstanceType<typeof KeetaNetLib.Account<typeof KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN>>['publicKeyString']['get']>;\n\ntype CurrencySearchInput = CurrencyInfo.ISOCurrencyCode | CurrencyInfo.ISOCurrencyNumber | CurrencyInfo.Currency;\ntype CurrencySearchCanonical = CurrencyInfo.ISOCurrencyCode; /* XXX:TODO */\n\ntype TokenSearchInput = TokenAddress | TokenPublicKeyString;\ntype TokenSearchCanonical = TokenPublicKeyString;\n\nexport type MovableAssetSearchInput = CurrencySearchInput | TokenSearchInput;\nexport type MovableAssetSearchCanonical = CurrencySearchCanonical | TokenSearchCanonical;\nexport type MovableAsset = TokenAddress | TokenPublicKeyString | CurrencyInfo.Currency;\n\nexport type AssetLocationInput = AssetLocation | AssetLocationString;\nexport type AssetLocationCanonical = AssetLocationString;\n\nexport type AssetMovementRail = unknown;\n\nexport type ProviderSearchInput = {\n\tasset: MovableAsset,\n\tfrom?: AssetLocationInput,\n\tto?: AssetLocationInput\n}\n/**\n * Defines the chain and id for a supported asset location\n */\nexport type AssetLocation = {\n\ttype: 'chain';\n\tchain: {\n\t\ttype: 'keeta';\n\t\tnetworkId: bigint;\n\t} | {\n\t\ttype: 'evm';\n\t\tchainId: bigint;\n\t}\n} | {\n\ttype: 'bank-account';\n\tworkInProgress?: never;\n}\n\n// Disable bank-account until it's implemented\nexport type AssetLocationString =\n\t`chain:${'keeta' | 'evm'}:${bigint}` |\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n\t`bank-account:${never}`;\n\nexport type AssetLocationLike = AssetLocation | AssetLocationString;\n\n// A given asset should have a location and ID for the contract or public key for that asset\nexport interface Asset {\n\tlocation?: AssetLocationString;\n\tid: string; // keeta token pub or evm contract address or currency code\n}\n\nexport type Rail = 'ACH_SEND' | 'ACH_DEBIT' | 'KEETA_SEND' | 'EVM_SEND' | 'EVM_CALL';\n\n// Rails can be inbound, outbound or common (inbound and outbound)\nexport interface AssetWithRails extends Asset {\n\trails: (({\n\t\tinbound: Rail[];\n\t\toutbound?: Rail[];\n\t} | {\n\t\tinbound?: Rail[];\n\t\toutbound: Rail[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: Rail[];\n\t});\n};\n\n// A given asset path should consist of exactly one tuple of locations\nexport interface AssetPath {\n\tpair: [ AssetWithRails, AssetWithRails ];\n\tkycProviders?: string[];\n};\n\nexport interface SupportedAssets {\n\tasset: TokenPublicKeyString,\n\tpaths: AssetPath[]\n}\n\nexport interface AssetWithRailsMetadata {\n\tlocation: string;\n\tid: string;\n\trails: (({\n\t\tinbound: string[];\n\t\toutbound?: string[];\n\t} | {\n\t\tinbound?: string[];\n\t\toutbound: string[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: string[];\n\t})\n}\n\n\n// Example Asset Paths\n// paths: [\n// \t{\n// \t\tpair: [\n// \t\t\t{ location: 'chain:keeta:123', id: 'keeta_KT1EXmXoG7fV8b2c5rYkUu4j3t6b3v6v5X8m', rails: { common: [ 'KEETA_SEND' ] } },\n// \t\t\t{ location: 'chain:evm:100', id: '0xc0634090F2Fe6c6d75e61Be2b949464aBB498973', rails: { common: [ 'EVM_SEND' ], inbound: [ 'EVM_CALL' ] } }\n// \t\t]\n// \t},\n// \t{\n// \t\tpair: [\n// \t\t\t{ location: 'chain:keeta:123', id: 'keeta_USDCPUB', rails: ['KEETA_SEND'] },\n// \t\t\t{ location: 'bank-account:US', id: 'USD', rails: { common: ['ACH_SEND'], inbound: ['ACH_DEBIT'] } }\n// \t\t]\n// \t},\n// \t{\n// \t\tpair: [\n// \t\t\t{ location: 'bank-account:EU', id: 'EUR', rails: { inbound: [ 'WIRE_SEND' }] },\n// \t\t\t{ location: 'chain:keeta:123', id: 'keeta_EURCPUB', rails: { outbound: [ 'KEETA_SEND' ]} }\n// \t\t]\n// \t}\n// ];\n\nexport function convertAssetLocationToString(input: AssetLocationLike): AssetLocationString {\n\tif (typeof input === 'string') {\n\t\treturn(input);\n\t}\n\n\tif (input.type === 'chain') {\n\t\tif (input.chain.type === 'keeta') {\n\t\t\treturn(`chain:keeta:${input.chain.networkId}`);\n\t\t} else if (input.chain.type === 'evm') {\n\t\t\treturn(`chain:evm:${input.chain.chainId}`);\n\t\t}\n\t} else if (input.type === 'bank-account') {\n\t\tthrow(new Error('Cannot convert bank-account AssetLocation to string'));\n\t}\n\n\tthrow(new Error(`Invalid AssetLocation type: ${JSON.stringify(input)}`));\n}\n\nexport function toAssetLocationFromString(input: string): AssetLocation {\n\tconst parts = input.split(':');\n\n\tif (parts.length === 3 && parts[0] === 'chain') {\n\t\tconst chainType = parts[1];\n\t\tif (!parts[2] || typeof parts[2] !== 'string') {\n\t\t\tthrow(new Error('Invalid chain id in AssetLocation string'));\n\t\t}\n\n\t\tconst chainId = BigInt(parts[2]);\n\n\t\treturn({\n\t\t\ttype: 'chain',\n\t\t\tchain: (() => {\n\t\t\t\tif (chainType === 'keeta') {\n\t\t\t\t\treturn({\n\t\t\t\t\t\ttype: 'keeta',\n\t\t\t\t\t\tnetworkId: chainId\n\t\t\t\t\t});\n\t\t\t\t} else if (chainType === 'evm') {\n\t\t\t\t\treturn({\n\t\t\t\t\t\ttype: 'evm',\n\t\t\t\t\t\tchainId: chainId\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthrow(new Error(`Invalid chain type in AssetLocation string: ${chainType}`));\n\t\t\t\t}\n\t\t\t})()\n\t\t});\n\t}\n\n\tthrow(new Error('unsupported AssetLocation string format'));\n}\n\nexport function convertAssetLocationInputToCanonical(input: AssetLocationInput): AssetLocationCanonical {\n\tif (typeof input === 'string') {\n\t\treturn(input);\n\t} else if (typeof input === 'object' && input !== null) {\n\t\treturn(convertAssetLocationToString(input));\n\t}\n\n\tthrow(new Error(`Invalid AssetLocationInput type: ${typeof input}`));\n}\n\n\nexport function toAssetLocation(input: AssetLocationInput): AssetLocation {\n\tif (typeof input === 'string') {\n\t\treturn(toAssetLocationFromString(input));\n\t} else {\n\t\treturn(input);\n\t}\n}\n\n\nexport function convertAssetSearchInputToCanonical(input: MovableAssetSearchInput): MovableAssetSearchCanonical {\n\tif (input instanceof CurrencyInfo.Currency || CurrencyInfo.Currency.isCurrencyCode(input) || CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\tif (CurrencyInfo.Currency.isCurrencyCode(input)) {\n\t\t\treturn(input);\n\t\t} else if (CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\t\tinput = new CurrencyInfo.Currency(input);\n\t\t}\n\n\t\treturn(input.code);\n\t} else {\n\t\tif (typeof input === 'string') {\n\t\t\treturn(input);\n\t\t}\n\n\t\tinput.assertKeyType(KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN);\n\t\treturn(input.publicKeyString.get());\n\t}\n}\n\nexport type Operations = NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'];\nexport type OperationNames = keyof Operations;\n\nexport type KeetaAssetMovementAnchorInitiateTransferRequest = {\n\tasset: MovableAsset;\n\tfrom: { location: AssetLocationLike };\n\tto: { location: AssetLocationLike; recipient: string; };\n\tvalue: string;\n\tallowedRails?: AssetMovementRail[];\n}\n\nexport type AssetTransferInstructions = ({\n\ttype: 'KEETA_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: string;\n\n\texternal?: string;\n} | {\n\ttype: 'EVM_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: HexString;\n} | {\n\ttype: 'EVM_CALL';\n\tlocation: AssetLocationLike;\n\n\tcontractAddress: string;\n\tcontractMethodName: string;\n\tcontractMethodArgs: string[];\n}) & ({\n\tassetFee: string;\n});\n\nexport type KeetaAssetMovementAnchorInitiateTransferResponse = ({\n\tok: true;\n\tid: string;\n\tinstructionChoices: AssetTransferInstructions[];\n}) | ({\n\tok: false;\n\terror: string;\n})\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusRequest {\n\tid: string;\n}\n\ntype TransactionStatus = string;\n\nexport type TransactionId = {\n\tid: string;\n\tnonce: string;\n};\n\ntype TransactionIds<T extends string> = {\n\t[type in T]: TransactionId | null;\n};\n\nexport type KeetaAssetMovementTransaction = {\n\tid: string;\n\tstatus: TransactionStatus;\n\tasset: MovableAsset;\n\n\tfrom: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'persistentForwarding' | 'deposit' | 'finalization'>;\n\t};\n\n\tto: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'withdraw'>;\n\t};\n\n\tfee: {\n\t\tasset: MovableAsset;\n\t\tvalue: string;\n\t} | null;\n\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport type KeetaAssetMovementAnchorGetTransferStatusResponse = ({\n\tok: true;\n\ttransaction: KeetaAssetMovementTransaction;\n} | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingRequest = {\n\tasset: MovableAsset;\n\tdestinationLocation: AssetLocationLike;\n\tdestinationAddress: string;\n\tsourceLocation: AssetLocationLike;\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingResponse = ({\n\tok: true;\n\taddress: string;\n} | {\n\tok: false;\n\terror: string;\n});\n\ntype PaginationQuery = {\n\tlimit?: number;\n\toffset?: number;\n}\n\ntype PaginationResponseInformation = {\n\ttotal: string;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsRequest = {\n\tpersistentAddresses?: { location: AssetLocationLike; persistentAddress: string; }[];\n\tfrom?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tto?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = (({\n\tok: true;\n\ttransactions: KeetaAssetMovementTransaction[] ;\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport const assertKeetaSupportedAssets: (input: unknown) => SupportedAssets[] = createAssert<SupportedAssets[]>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferRequest = createAssert<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferResponse = createAssertEquals<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusRequest = createAssert<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusResponse: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusResponse = createAssertEquals<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const assertKeetaAssetMovementAnchorlistTransactionsRequest: (input: unknown) => KeetaAssetMovementAnchorlistTransactionsRequest = createAssert<KeetaAssetMovementAnchorlistTransactionsRequest>();\nexport const assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createAssertEquals<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\n\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const isKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferResponse = createIs<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const isKeetaAssetMovementAnchorGetExchangeStatusResponse: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusResponse = createIs<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => input is KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createIs<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAyElE,CAAC;AAMD,CAAC;AAyBF,sBAAsB;AACtB,WAAW;AACX,KAAK;AACL,YAAY;AACZ,6HAA6H;AAC7H,iJAAiJ;AACjJ,MAAM;AACN,MAAM;AACN,KAAK;AACL,YAAY;AACZ,kFAAkF;AAClF,yGAAyG;AACzG,MAAM;AACN,MAAM;AACN,KAAK;AACL,YAAY;AACZ,qFAAqF;AACrF,gGAAgG;AAChG,MAAM;AACN,KAAK;AACL,KAAK;AAEL,MAAM,UAAU,4BAA4B,CAAC,KAAwB;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,OAAM,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACvC,OAAM,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC1C,MAAK,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAK,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAK,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjC,OAAM,CAAC;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,GAAG,EAAE;gBACZ,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oBAC3B,OAAM,CAAC;wBACN,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACJ,CAAC;qBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oBAChC,OAAM,CAAC;wBACN,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,OAAO;qBAChB,CAAC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACP,MAAK,CAAC,IAAI,KAAK,CAAC,+CAA+C,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACF,CAAC,CAAC,EAAE;SACJ,CAAC,CAAC;IACJ,CAAC;IAED,MAAK,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,KAAyB;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxD,OAAM,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAK,CAAC,IAAI,KAAK,CAAC,oCAAoC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,KAAyB;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACP,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;AACF,CAAC;AAGD,MAAM,UAAU,kCAAkC,CAAC,KAA8B;IAChF,IAAI,KAAK,YAAY,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/I,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,KAAK,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,OAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACP,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACnE,OAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;AACF,CAAC;AAyID,MAAM,CAAC,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2E,CAAC;AACnH,MAAM,CAAC,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2J,CAAC;AACxO,MAAM,CAAC,MAAM,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmK,CAAC;AACjP,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+I,CAAC;AACnN,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;OAAyI,CAAC;AAC7M,MAAM,CAAC,MAAM,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiJ,CAAC;AACtN,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuL,CAAC;AAE/Q,MAAM,CAAC,MAAM,4DAA4D;;;;;;;sFAAkK,CAAC;AAC5O,MAAM,CAAC,MAAM,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAA8I,CAAC;AAC9M,MAAM,CAAC,MAAM,mDAAmD;;;;;;;;;;;;sFAAgJ,CAAC;AACjN,MAAM,CAAC,MAAM,sEAAsE;;;;;;;;;;;;sFAAsL,CAAC","sourcesContent":["import type { ServiceMetadata } from '../../lib/resolver.ts';\nimport { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport * as CurrencyInfo from '@keetanetwork/currency-info';\nimport type { TokenAddress, TokenPublicKeyString } from '@keetanetwork/keetanet-client/lib/account.js';\nimport { createAssert, createAssertEquals, createIs } from 'typia';\n\ntype HexString = `0x${string}`;\n\nexport type KeetaNetTokenPublicKeyString = ReturnType<InstanceType<typeof KeetaNetLib.Account<typeof KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN>>['publicKeyString']['get']>;\n\ntype CurrencySearchInput = CurrencyInfo.ISOCurrencyCode | CurrencyInfo.ISOCurrencyNumber | CurrencyInfo.Currency;\ntype CurrencySearchCanonical = CurrencyInfo.ISOCurrencyCode; /* XXX:TODO */\n\ntype TokenSearchInput = TokenAddress | TokenPublicKeyString;\ntype TokenSearchCanonical = TokenPublicKeyString;\n\nexport type MovableAssetSearchInput = CurrencySearchInput | TokenSearchInput;\nexport type MovableAssetSearchCanonical = CurrencySearchCanonical | TokenSearchCanonical;\nexport type MovableAsset = TokenAddress | TokenPublicKeyString | CurrencyInfo.Currency;\n\nexport type AssetLocationInput = AssetLocation | AssetLocationString;\nexport type AssetLocationCanonical = AssetLocationString;\n\nexport type AssetMovementRail = unknown;\n\nexport type ProviderSearchInput = {\n\tasset?: MovableAsset,\n\tfrom?: AssetLocationInput,\n\tto?: AssetLocationInput\n}\n/**\n * Defines the chain and id for a supported asset location\n */\nexport type AssetLocation = {\n\ttype: 'chain';\n\tchain: {\n\t\ttype: 'keeta';\n\t\tnetworkId: bigint;\n\t} | {\n\t\ttype: 'evm';\n\t\tchainId: bigint;\n\t}\n} | {\n\ttype: 'bank-account';\n\tworkInProgress?: never;\n}\n\n// Disable bank-account until it's implemented\nexport type AssetLocationString =\n\t`chain:${'keeta' | 'evm'}:${bigint}` |\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n\t`bank-account:${never}`;\n\nexport type AssetLocationLike = AssetLocation | AssetLocationString;\n\n// A given asset should have a location and ID for the contract or public key for that asset\nexport interface Asset {\n\tlocation?: AssetLocationString;\n\tid: string; // keeta token pub or evm contract address or currency code\n}\n\nexport type Rail = 'ACH_SEND' | 'ACH_DEBIT' | 'KEETA_SEND' | 'EVM_SEND' | 'EVM_CALL';\n\n// Rails can be inbound, outbound or common (inbound and outbound)\nexport interface AssetWithRails extends Asset {\n\trails: (({\n\t\tinbound: Rail[];\n\t\toutbound?: Rail[];\n\t} | {\n\t\tinbound?: Rail[];\n\t\toutbound: Rail[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: Rail[];\n\t});\n};\n\n// A given asset path should consist of exactly one tuple of locations\nexport interface AssetPath {\n\tpair: [ AssetWithRails, AssetWithRails ];\n\tkycProviders?: string[];\n};\n\nexport interface SupportedAssets {\n\tasset: TokenPublicKeyString,\n\tpaths: AssetPath[]\n}\n\nexport interface AssetWithRailsMetadata {\n\tlocation: string;\n\tid: string;\n\trails: (({\n\t\tinbound: string[];\n\t\toutbound?: string[];\n\t} | {\n\t\tinbound?: string[];\n\t\toutbound: string[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: string[];\n\t})\n}\n\n\n// Example Asset Paths\n// paths: [\n// \t{\n// \t\tpair: [\n// \t\t\t{ location: 'chain:keeta:123', id: 'keeta_KT1EXmXoG7fV8b2c5rYkUu4j3t6b3v6v5X8m', rails: { common: [ 'KEETA_SEND' ] } },\n// \t\t\t{ location: 'chain:evm:100', id: '0xc0634090F2Fe6c6d75e61Be2b949464aBB498973', rails: { common: [ 'EVM_SEND' ], inbound: [ 'EVM_CALL' ] } }\n// \t\t]\n// \t},\n// \t{\n// \t\tpair: [\n// \t\t\t{ location: 'chain:keeta:123', id: 'keeta_USDCPUB', rails: ['KEETA_SEND'] },\n// \t\t\t{ location: 'bank-account:US', id: 'USD', rails: { common: ['ACH_SEND'], inbound: ['ACH_DEBIT'] } }\n// \t\t]\n// \t},\n// \t{\n// \t\tpair: [\n// \t\t\t{ location: 'bank-account:EU', id: 'EUR', rails: { inbound: [ 'WIRE_SEND' }] },\n// \t\t\t{ location: 'chain:keeta:123', id: 'keeta_EURCPUB', rails: { outbound: [ 'KEETA_SEND' ]} }\n// \t\t]\n// \t}\n// ];\n\nexport function convertAssetLocationToString(input: AssetLocationLike): AssetLocationString {\n\tif (typeof input === 'string') {\n\t\treturn(input);\n\t}\n\n\tif (input.type === 'chain') {\n\t\tif (input.chain.type === 'keeta') {\n\t\t\treturn(`chain:keeta:${input.chain.networkId}`);\n\t\t} else if (input.chain.type === 'evm') {\n\t\t\treturn(`chain:evm:${input.chain.chainId}`);\n\t\t}\n\t} else if (input.type === 'bank-account') {\n\t\tthrow(new Error('Cannot convert bank-account AssetLocation to string'));\n\t}\n\n\tthrow(new Error(`Invalid AssetLocation type: ${JSON.stringify(input)}`));\n}\n\nexport function toAssetLocationFromString(input: string): AssetLocation {\n\tconst parts = input.split(':');\n\n\tif (parts.length === 3 && parts[0] === 'chain') {\n\t\tconst chainType = parts[1];\n\t\tif (!parts[2] || typeof parts[2] !== 'string') {\n\t\t\tthrow(new Error('Invalid chain id in AssetLocation string'));\n\t\t}\n\n\t\tconst chainId = BigInt(parts[2]);\n\n\t\treturn({\n\t\t\ttype: 'chain',\n\t\t\tchain: (() => {\n\t\t\t\tif (chainType === 'keeta') {\n\t\t\t\t\treturn({\n\t\t\t\t\t\ttype: 'keeta',\n\t\t\t\t\t\tnetworkId: chainId\n\t\t\t\t\t});\n\t\t\t\t} else if (chainType === 'evm') {\n\t\t\t\t\treturn({\n\t\t\t\t\t\ttype: 'evm',\n\t\t\t\t\t\tchainId: chainId\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthrow(new Error(`Invalid chain type in AssetLocation string: ${chainType}`));\n\t\t\t\t}\n\t\t\t})()\n\t\t});\n\t}\n\n\tthrow(new Error('unsupported AssetLocation string format'));\n}\n\nexport function convertAssetLocationInputToCanonical(input: AssetLocationInput): AssetLocationCanonical {\n\tif (typeof input === 'string') {\n\t\treturn(input);\n\t} else if (typeof input === 'object' && input !== null) {\n\t\treturn(convertAssetLocationToString(input));\n\t}\n\n\tthrow(new Error(`Invalid AssetLocationInput type: ${typeof input}`));\n}\n\n\nexport function toAssetLocation(input: AssetLocationInput): AssetLocation {\n\tif (typeof input === 'string') {\n\t\treturn(toAssetLocationFromString(input));\n\t} else {\n\t\treturn(input);\n\t}\n}\n\n\nexport function convertAssetSearchInputToCanonical(input: MovableAssetSearchInput): MovableAssetSearchCanonical {\n\tif (input instanceof CurrencyInfo.Currency || CurrencyInfo.Currency.isCurrencyCode(input) || CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\tif (CurrencyInfo.Currency.isCurrencyCode(input)) {\n\t\t\treturn(input);\n\t\t} else if (CurrencyInfo.Currency.isISOCurrencyNumber(input)) {\n\t\t\tinput = new CurrencyInfo.Currency(input);\n\t\t}\n\n\t\treturn(input.code);\n\t} else {\n\t\tif (typeof input === 'string') {\n\t\t\treturn(input);\n\t\t}\n\n\t\tinput.assertKeyType(KeetaNetLib.Account.AccountKeyAlgorithm.TOKEN);\n\t\treturn(input.publicKeyString.get());\n\t}\n}\n\nexport type Operations = NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'];\nexport type OperationNames = keyof Operations;\n\nexport type KeetaAssetMovementAnchorInitiateTransferRequest = {\n\tasset: MovableAsset;\n\tfrom: { location: AssetLocationLike };\n\tto: { location: AssetLocationLike; recipient: string; };\n\tvalue: string;\n\tallowedRails?: AssetMovementRail[];\n}\n\nexport type AssetTransferInstructions = ({\n\ttype: 'KEETA_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: string;\n\n\texternal?: string;\n} | {\n\ttype: 'EVM_SEND';\n\tlocation: AssetLocationLike;\n\n\tsendToAddress: string;\n\tvalue: string;\n\ttokenAddress: HexString;\n} | {\n\ttype: 'EVM_CALL';\n\tlocation: AssetLocationLike;\n\n\tcontractAddress: string;\n\tcontractMethodName: string;\n\tcontractMethodArgs: string[];\n}) & ({\n\tassetFee: string;\n});\n\nexport type KeetaAssetMovementAnchorInitiateTransferResponse = ({\n\tok: true;\n\tid: string;\n\tinstructionChoices: AssetTransferInstructions[];\n}) | ({\n\tok: false;\n\terror: string;\n})\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusRequest {\n\tid: string;\n}\n\ntype TransactionStatus = string;\n\nexport type TransactionId = {\n\tid: string;\n\tnonce: string;\n};\n\ntype TransactionIds<T extends string> = {\n\t[type in T]: TransactionId | null;\n};\n\nexport type KeetaAssetMovementTransaction = {\n\tid: string;\n\tstatus: TransactionStatus;\n\tasset: MovableAsset;\n\n\tfrom: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'persistentForwarding' | 'deposit' | 'finalization'>;\n\t};\n\n\tto: {\n\t\tlocation: AssetLocationString;\n\t\tvalue: string;\n\t\ttransactions: TransactionIds<'withdraw'>;\n\t};\n\n\tfee: {\n\t\tasset: MovableAsset;\n\t\tvalue: string;\n\t} | null;\n\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport type KeetaAssetMovementAnchorGetTransferStatusResponse = ({\n\tok: true;\n\ttransaction: KeetaAssetMovementTransaction;\n} | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingRequest = {\n\tasset: MovableAsset;\n\tdestinationLocation: AssetLocationLike;\n\tdestinationAddress: string;\n\tsourceLocation: AssetLocationLike;\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingResponse = ({\n\tok: true;\n\taddress: string;\n} | {\n\tok: false;\n\terror: string;\n});\n\ntype PaginationQuery = {\n\tlimit?: number;\n\toffset?: number;\n}\n\ntype PaginationResponseInformation = {\n\ttotal: string;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsRequest = {\n\tpersistentAddresses?: { location: AssetLocationLike; persistentAddress: string; }[];\n\tfrom?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tto?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = (({\n\tok: true;\n\ttransactions: KeetaAssetMovementTransaction[] ;\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport const assertKeetaSupportedAssets: (input: unknown) => SupportedAssets[] = createAssert<SupportedAssets[]>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferRequest = createAssert<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferResponse = createAssertEquals<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusRequest = createAssert<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusResponse: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusResponse = createAssertEquals<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const assertKeetaAssetMovementAnchorlistTransactionsRequest: (input: unknown) => KeetaAssetMovementAnchorlistTransactionsRequest = createAssert<KeetaAssetMovementAnchorlistTransactionsRequest>();\nexport const assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createAssertEquals<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\n\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const isKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferResponse = createIs<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const isKeetaAssetMovementAnchorGetExchangeStatusResponse: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusResponse = createIs<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => input is KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createIs<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\n"]}
@@ -1,4 +1,4 @@
1
- import * as KeetaAnchorHTTPServer from '../../lib/http-server.js';
1
+ import * as KeetaAnchorHTTPServer from '../../lib/http-server/index.js';
2
2
  import type KeetaNet from '@keetanetwork/keetanet-client';
3
3
  import type { KeetaAssetMovementAnchorCreatePersistentForwardingRequest, KeetaAssetMovementAnchorCreatePersistentForwardingResponse, KeetaAssetMovementAnchorInitiateTransferRequest, KeetaAssetMovementAnchorInitiateTransferResponse, KeetaAssetMovementAnchorGetTransferStatusResponse, KeetaAssetMovementAnchorlistTransactionsRequest, KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse } from './common.ts';
4
4
  import type { ServiceMetadata } from '../../lib/resolver.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAI1D,OAAO,KAAK,EACX,yDAAyD,EACzD,0DAA0D,EAC1D,+CAA+C,EAC/C,gDAAgD,EAEhD,iDAAiD,EACjD,+CAA+C,EAC/C,oEAAoE,EACpE,MAAM,aAAa,CAAC;AAWrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,oCAAqC,SAAQ,qBAAqB,CAAC,2BAA2B;IAC9G;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IAErD;;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;IAE9I;;OAEG;IACH,aAAa,EAAE;QACd;;WAEG;QACH,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAEtG;;WAEG;QACH,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,yDAAyD,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0DAA0D,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5M;;WAEG;QACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,+CAA+C,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gDAAgD,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9K;;WAEG;QACH,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iDAAiD,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAElI;;WAEG;QACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,+CAA+C,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,oEAAoE,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KAClM,CAAA;CACD;AAED,qBAAa,qCAAsC,SAAQ,qBAAqB,CAAC,wBAAwB,CAAC,oCAAoC,CAAE,YAAW,QAAQ,CAAC,oCAAoC,CAAC;IACxM,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,oCAAoC,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC,QAAQ,CAAC,CAAC;IAChE,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,oCAAoC,CAAC,eAAe,CAAC,CAAC,CAAC;gBAE/E,MAAM,EAAE,oCAAoC;cAQxC,UAAU,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC;IA+HzG,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAwBnG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAI1D,OAAO,KAAK,EACX,yDAAyD,EACzD,0DAA0D,EAC1D,+CAA+C,EAC/C,gDAAgD,EAEhD,iDAAiD,EACjD,+CAA+C,EAC/C,oEAAoE,EACpE,MAAM,aAAa,CAAC;AAWrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,oCAAqC,SAAQ,qBAAqB,CAAC,2BAA2B;IAC9G;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IAErD;;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;IAE9I;;OAEG;IACH,aAAa,EAAE;QACd;;WAEG;QACH,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAEtG;;WAEG;QACH,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,yDAAyD,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0DAA0D,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5M;;WAEG;QACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,+CAA+C,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gDAAgD,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9K;;WAEG;QACH,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iDAAiD,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAElI;;WAEG;QACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,+CAA+C,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,oEAAoE,EAAE;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KAClM,CAAA;CACD;AAED,qBAAa,qCAAsC,SAAQ,qBAAqB,CAAC,wBAAwB,CAAC,oCAAoC,CAAE,YAAW,QAAQ,CAAC,oCAAoC,CAAC;IACxM,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,oCAAoC,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC,QAAQ,CAAC,CAAC;IAChE,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,oCAAoC,CAAC,eAAe,CAAC,CAAC,CAAC;gBAE/E,MAAM,EAAE,oCAAoC;cAQxC,UAAU,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC;IA+HzG,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAwBnG"}
@@ -1,4 +1,4 @@
1
- import * as KeetaAnchorHTTPServer from '../../lib/http-server.js';
1
+ import * as KeetaAnchorHTTPServer from '../../lib/http-server/index.js';
2
2
  import { KeetaAnchorUserError } from '../../lib/error.js';
3
3
  import { assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest, assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse, assertKeetaAssetMovementAnchorInitiateTransferRequest, assertKeetaAssetMovementAnchorInitiateTransferResponse, assertKeetaAssetMovementAnchorGetTransferStatusRequest, assertKeetaAssetMovementAnchorGetTransferStatusResponse, assertKeetaAssetMovementAnchorlistTransactionsRequest, assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse } from './common.js';
4
4
  ;