@keetanetwork/anchor 0.0.29 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/error.d.ts +4 -0
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +43 -4
- package/lib/error.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/services/asset-movement/client.d.ts +6 -1
- package/services/asset-movement/client.d.ts.map +1 -1
- package/services/asset-movement/client.js +94 -22
- package/services/asset-movement/client.js.map +1 -1
- package/services/asset-movement/common.d.ts +32 -6
- package/services/asset-movement/common.d.ts.map +1 -1
- package/services/asset-movement/common.js +195 -28
- package/services/asset-movement/common.js.map +1 -1
package/lib/error.d.ts
CHANGED
|
@@ -78,6 +78,10 @@ interface KeetaAnchorUserValidationErrorDetails {
|
|
|
78
78
|
allowedValues?: string[];
|
|
79
79
|
expected?: string;
|
|
80
80
|
receivedValue?: unknown;
|
|
81
|
+
valueRules?: {
|
|
82
|
+
minimum?: string | undefined;
|
|
83
|
+
maximum?: string | undefined;
|
|
84
|
+
};
|
|
81
85
|
}[];
|
|
82
86
|
}
|
|
83
87
|
type KeetaAnchorUserValidationErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAnchorUserValidationErrorDetails;
|
package/lib/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":"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"}
|
package/lib/error.js
CHANGED
|
@@ -229,8 +229,15 @@ const assertKeetaAnchorUserValidationErrorDetails = (() => { const _io0 = (input
|
|
|
229
229
|
if (undefined === value)
|
|
230
230
|
return true;
|
|
231
231
|
return false;
|
|
232
|
-
})); const _io1 = (input, _exceptionable = true) => (undefined === input.path || "string" === typeof input.path) && "string" === typeof input.message && (undefined === input.allowedValues || Array.isArray(input.allowedValues) && input.allowedValues.every((elem, _index2) => "string" === typeof elem)) && (undefined === input.expected || "string" === typeof input.expected) && true && (1 === Object.keys(input).length || Object.keys(input).every(key => {
|
|
233
|
-
if (["path", "message", "allowedValues", "expected", "receivedValue"].some(prop => key === prop))
|
|
232
|
+
})); const _io1 = (input, _exceptionable = true) => (undefined === input.path || "string" === typeof input.path) && "string" === typeof input.message && (undefined === input.allowedValues || Array.isArray(input.allowedValues) && input.allowedValues.every((elem, _index2) => "string" === typeof elem)) && (undefined === input.expected || "string" === typeof input.expected) && true && (undefined === input.valueRules || "object" === typeof input.valueRules && null !== input.valueRules && false === Array.isArray(input.valueRules) && _io2(input.valueRules, true && _exceptionable)) && (1 === Object.keys(input).length || Object.keys(input).every(key => {
|
|
233
|
+
if (["path", "message", "allowedValues", "expected", "receivedValue", "valueRules"].some(prop => key === prop))
|
|
234
|
+
return true;
|
|
235
|
+
const value = input[key];
|
|
236
|
+
if (undefined === value)
|
|
237
|
+
return true;
|
|
238
|
+
return false;
|
|
239
|
+
})); const _io2 = (input, _exceptionable = true) => (undefined === input.minimum || "string" === typeof input.minimum) && (undefined === input.maximum || "string" === typeof input.maximum) && (0 === Object.keys(input).length || Object.keys(input).every(key => {
|
|
240
|
+
if (["minimum", "maximum"].some(prop => key === prop))
|
|
234
241
|
return true;
|
|
235
242
|
const value = input[key];
|
|
236
243
|
if (undefined === value)
|
|
@@ -298,8 +305,40 @@ const assertKeetaAnchorUserValidationErrorDetails = (() => { const _io0 = (input
|
|
|
298
305
|
path: _path + ".expected",
|
|
299
306
|
expected: "(string | undefined)",
|
|
300
307
|
value: input.expected
|
|
301
|
-
}, _errorFactory)) && true && (
|
|
302
|
-
|
|
308
|
+
}, _errorFactory)) && true && (undefined === input.valueRules || ("object" === typeof input.valueRules && null !== input.valueRules && false === Array.isArray(input.valueRules) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
309
|
+
method: "createAssertEquals",
|
|
310
|
+
path: _path + ".valueRules",
|
|
311
|
+
expected: "(__type.o1 | undefined)",
|
|
312
|
+
value: input.valueRules
|
|
313
|
+
}, _errorFactory)) && _ao2(input.valueRules, _path + ".valueRules", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
314
|
+
method: "createAssertEquals",
|
|
315
|
+
path: _path + ".valueRules",
|
|
316
|
+
expected: "(__type.o1 | undefined)",
|
|
317
|
+
value: input.valueRules
|
|
318
|
+
}, _errorFactory)) && (1 === Object.keys(input).length || (false === _exceptionable || Object.keys(input).every(key => {
|
|
319
|
+
if (["path", "message", "allowedValues", "expected", "receivedValue", "valueRules"].some(prop => key === prop))
|
|
320
|
+
return true;
|
|
321
|
+
const value = input[key];
|
|
322
|
+
if (undefined === value)
|
|
323
|
+
return true;
|
|
324
|
+
return __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
325
|
+
method: "createAssertEquals",
|
|
326
|
+
path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
|
|
327
|
+
expected: "undefined",
|
|
328
|
+
value: value
|
|
329
|
+
}, _errorFactory);
|
|
330
|
+
}))); const _ao2 = (input, _path, _exceptionable = true) => (undefined === input.minimum || "string" === typeof input.minimum || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
331
|
+
method: "createAssertEquals",
|
|
332
|
+
path: _path + ".minimum",
|
|
333
|
+
expected: "(string | undefined)",
|
|
334
|
+
value: input.minimum
|
|
335
|
+
}, _errorFactory)) && (undefined === input.maximum || "string" === typeof input.maximum || __typia_transform__assertGuard._assertGuard(_exceptionable, {
|
|
336
|
+
method: "createAssertEquals",
|
|
337
|
+
path: _path + ".maximum",
|
|
338
|
+
expected: "(string | undefined)",
|
|
339
|
+
value: input.maximum
|
|
340
|
+
}, _errorFactory)) && (0 === Object.keys(input).length || (false === _exceptionable || Object.keys(input).every(key => {
|
|
341
|
+
if (["minimum", "maximum"].some(prop => key === prop))
|
|
303
342
|
return true;
|
|
304
343
|
const value = input[key];
|
|
305
344
|
if (undefined === value)
|
package/lib/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IValidation, TypeGuardError } from 'typia';\nimport { createAssertEquals, createIs } from 'typia';\nimport type { LogLevel } from './log/index.ts';\n/**\n * Type for error classes that can be deserialized\n */\ninterface DeserializableErrorClass {\n\treadonly name: string;\n\tfromJSON: (input: unknown) => Promise<KeetaAnchorError>;\n}\n\n/**\n * Lazy-loaded error classes to avoid circular dependencies\n * The classes are loaded on first use\n */\nlet ERROR_CLASS_MAPPING: { [key: string]: (input: unknown) => Promise<KeetaAnchorError> } | null = null;\n\nasync function getErrorClassMapping(): Promise<{ [key: string]: (input: unknown) => Promise<KeetaAnchorError> }> {\n\tif (ERROR_CLASS_MAPPING) {\n\t\treturn(ERROR_CLASS_MAPPING);\n\t}\n\n\tconst ERROR_CLASSES: DeserializableErrorClass[] = [\n\t\t/*\n\t\t * We purposefully leave out KeetaAnchorError here since it\n\t\t * is the base error class and could cause circular resolution\n\t\t */\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tKeetaAnchorUserError, KeetaAnchorUserValidationError\n\t];\n\n\t// Dynamically import errors to avoid circular dependencies\n\tconst importPromises: { Errors: { [key: string]: DeserializableErrorClass }}[] = await Promise.all([\n\t\timport('../services/kyc/common.js'),\n\t\timport('../services/fx/common.js'),\n\t\timport('../services/asset-movement/common.js')\n\t]);\n\n\tfor (const module of importPromises) {\n\t\tconst classes = Object.values(module.Errors);\n\t\tERROR_CLASSES.push(...classes);\n\t}\n\n\tconst mapping: { [key: string]: (input: unknown) => Promise<KeetaAnchorError> } = {};\n\tfor (const errorClass of ERROR_CLASSES) {\n\t\tmapping[errorClass.name] = errorClass.fromJSON.bind(errorClass);\n\t}\n\n\tERROR_CLASS_MAPPING = mapping;\n\treturn(mapping);\n}\n\n/**\n * Base error class for all Keeta Anchor errors\n */\nexport class KeetaAnchorError extends Error {\n\tstatic override readonly name: string = 'KeetaAnchorError';\n\t#name: string;\n\t#statusCode = 400;\n\t#retryable = false;\n\tprivate readonly keetaAnchorErrorObjectTypeID!: string;\n\tprivate static readonly keetaAnchorErrorObjectTypeID = '5d7f1578-e887-4104-bab0-4115ae33b08f';\n\tprotected userError = false;\n\treadonly logLevel: LogLevel = 'ERROR';\n\n\tget name(): string {\n\t\treturn(this.#name);\n\t}\n\n\tprotected set name(value: string) {\n\t\tthis.#name = value;\n\t}\n\n\tget statusCode(): number {\n\t\treturn(this.#statusCode);\n\t}\n\n\tprotected set statusCode(value: number) {\n\t\tthis.#statusCode = value;\n\t}\n\n\tget retryable(): boolean {\n\t\treturn(this.#retryable);\n\t}\n\n\tprotected set retryable(value: boolean) {\n\t\tthis.#retryable = value;\n\t}\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\n\t\t// Need to cast to access the static name property from the constructor\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tthis.#name = (this.constructor as typeof KeetaAnchorError).name;\n\n\t\tObject.defineProperty(this, 'keetaAnchorErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorError.keetaAnchorErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\t/**\n\t * Protected method to restore error properties from JSON\n\t * This allows subclasses to properly restore properties without using any\n\t */\n\tprotected restoreFromJSON(other: { [key: string]: unknown }): void {\n\t\t// Restore statusCode if present\n\t\tif ('statusCode' in other) {\n\t\t\tif (typeof other.statusCode !== 'number') {\n\t\t\t\tthrow(new TypeError('Invalid statusCode: expected number'));\n\t\t\t}\n\t\t\tthis.statusCode = other.statusCode;\n\t\t}\n\n\t\t// Restore retryable if present\n\t\tif ('retryable' in other) {\n\t\t\tif (typeof other.retryable !== 'boolean') {\n\t\t\t\tthrow(new TypeError('Invalid retryable: expected boolean'));\n\t\t\t}\n\t\t\tthis.retryable = other.retryable;\n\t\t}\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorError {\n\t\treturn(this.hasPropWithValue(input, 'keetaAnchorErrorObjectTypeID', KeetaAnchorError.keetaAnchorErrorObjectTypeID));\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json', message?: string): { error: string; statusCode: number; contentType: string } {\n\t\tmessage ??= 'Internal error';\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\t...this.toJSON(),\n\t\t\t\tstatusCode: undefined\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): { ok: false; retryable: boolean; error: string; name: string; statusCode: number } {\n\t\tlet message = 'Internal error';\n\t\tif (this.userError) {\n\t\t\tmessage = this.message;\n\t\t}\n\n\t\treturn({\n\t\t\tok: false,\n\t\t\tretryable: this.retryable,\n\t\t\terror: message,\n\t\t\tname: this.#name,\n\t\t\tstatusCode: this.statusCode\n\t\t});\n\t}\n\n\tprotected static hasPropWithValue<PROP extends string, VALUE extends string | number | boolean>(input: unknown, prop: PROP, value: VALUE): input is { [key in PROP]: VALUE } {\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\treturn(false);\n\t\t}\n\n\t\tif (!(prop in input)) {\n\t\t\treturn(false);\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tconst inputValue = input[prop as keyof typeof input] as unknown;\n\t\tif (inputValue !== value) {\n\t\t\treturn(false);\n\t\t}\n\n\t\treturn(true);\n\t}\n\n\t/**\n\t * Extract common error properties from JSON input\n\t * This validates the structure and extracts properties needed for construction\n\t */\n\tprotected static extractErrorProperties(input: unknown, expectedClass?: { name: string }): { message: string; other: { [key: string]: unknown }} {\n\t\tif (!this.hasPropWithValue(input, 'ok', false)) {\n\t\t\tthrow(new Error('Invalid error JSON object'));\n\t\t}\n\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\tthrow(new Error('Invalid error JSON object'));\n\t\t}\n\n\t\t// Verify the name matches if an expected class is provided\n\t\tif (expectedClass && 'name' in input && input.name !== expectedClass.name) {\n\t\t\tthrow(new Error(`Error name mismatch: expected ${expectedClass.name}, got ${input.name}`));\n\t\t}\n\n\t\t// Extract error message\n\t\tlet message = 'Internal error';\n\t\tif ('error' in input && typeof input.error === 'string') {\n\t\t\tmessage = input.error;\n\t\t}\n\n\t\t// Extract other properties\n\t\tconst other: { [key: string]: unknown } = {};\n\t\tfor (const key in input) {\n\t\t\tif (key !== 'error' && key !== 'ok') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tother[key] = input[key as keyof typeof input];\n\t\t\t}\n\t\t}\n\n\t\treturn({ message, other });\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAnchorError> {\n\t\t// Try to use the deserializer mapping if available for subclasses\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\tthrow(new Error('Invalid error JSON object'));\n\t\t}\n\n\t\tif (!('ok' in input) || input.ok !== false) {\n\t\t\tthrow(new Error('Invalid error JSON object: expected ok: false'));\n\t\t}\n\n\t\t// Check if there's a specific error class name\n\t\tif ('name' in input && typeof input.name === 'string') {\n\t\t\tif (input.name === 'KeetaAnchorError') {\n\t\t\t\tconst { message, other } = KeetaAnchorError.extractErrorProperties(input, this);\n\t\t\t\tconst error = new this(message);\n\t\t\t\terror.restoreFromJSON(other);\n\t\t\t\treturn(error);\n\t\t\t}\n\t\t\tconst mapping = await getErrorClassMapping();\n\t\t\tconst deserializer = mapping[input.name];\n\t\t\tif (deserializer) {\n\t\t\t\treturn(await deserializer(input));\n\t\t\t}\n\t\t}\n\n\t\tthrow(new Error('Invalid error JSON object: unknown error class'));\n\t}\n}\n\n/**\n * User-facing error class that extends KeetaAnchorError\n */\nexport class KeetaAnchorUserError extends KeetaAnchorError {\n\tstatic readonly name: string = 'KeetaAnchorUserError';\n\tprivate readonly keetaAnchorUserErrorObjectTypeID!: string;\n\tprivate static readonly keetaAnchorUserErrorObjectTypeID = 'a1e64819-14b6-45ac-a1ec-b9c0bdd51e7b';\n\tprotected override userError = true;\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorUserError {\n\t\treturn(this.hasPropWithValue(input, 'keetaAnchorUserErrorObjectTypeID', KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID));\n\t}\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\n\t\tObject.defineProperty(this, 'keetaAnchorUserErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\treturn(super.asErrorResponse(contentType, this.message));\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<InstanceType<typeof this>> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\t\tconst error = new this(message);\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\ninterface KeetaAnchorUserValidationErrorDetails {\n\tfields: {\n\t\tpath?: string | undefined;\n\t\tmessage: string;\n\t\tallowedValues?: string[];\n\t\texpected?: string;\n\t\treceivedValue?: unknown;\n\t}[];\n}\n\nconst assertKeetaAnchorUserValidationErrorDetails: (input: unknown) => KeetaAnchorUserValidationErrorDetails = createAssertEquals<KeetaAnchorUserValidationErrorDetails>();\ntype KeetaAnchorUserValidationErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAnchorUserValidationErrorDetails;\n\ntype TypeGuardErrorLike = Pick<TypeGuardError.IProps | IValidation.IError, 'path' | 'expected' | 'value'>;\n\nconst isTypeGuardErrorLike: (error: unknown) => error is TypeGuardErrorLike = createIs<TypeGuardErrorLike>();\n\nexport class KeetaAnchorUserValidationError extends KeetaAnchorUserError implements KeetaAnchorUserValidationErrorDetails {\n\tstatic readonly isTypeGuardErrorLike: typeof isTypeGuardErrorLike = isTypeGuardErrorLike;\n\n\tstatic override readonly name: string = 'KeetaAnchorUserValidationError';\n\tprivate readonly KeetaAnchorUserValidationErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAnchorUserValidationErrorObjectTypeID = '5fa46799-48b8-4cf2-a3de-9c01418d3ba0';\n\tprotected override userError = true;\n\n\treadonly fields: KeetaAnchorUserValidationErrorDetails['fields'];\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorUserError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAnchorUserValidationErrorObjectTypeID', KeetaAnchorUserValidationError.KeetaAnchorUserValidationErrorObjectTypeID));\n\t}\n\n\tconstructor(args: KeetaAnchorUserValidationErrorDetails, message?: string) {\n\t\tsuper(message ?? `Validation error on fields ${args.fields.map((f) => f.path).join(', ')}`);\n\n\t\tObject.defineProperty(this, 'KeetaAnchorUserValidationErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorUserValidationError.KeetaAnchorUserValidationErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.fields = args.fields;\n\t}\n\n\toverride get statusCode() {\n\t\treturn(400);\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tdata: { fields: this.fields },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAnchorUserValidationErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\tfields: this.fields\n\t\t});\n\t}\n\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAnchorUserValidationError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAnchorUserValidationError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAnchorUserValidationErrorDetails(other.data);\n\n\t\tconst error = new this(\n\t\t\t{ fields: parsed.fields },\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n\n\tstatic fromTypeGuardError(input: TypeGuardErrorLike | TypeGuardErrorLike[], message?: string): KeetaAnchorUserValidationError {\n\t\tlet asArr;\n\n\t\tif (Array.isArray(input)) {\n\t\t\tasArr = input;\n\t\t} else {\n\t\t\tasArr = [ input ];\n\t\t}\n\n\t\treturn(new this({\n\t\t\tfields: asArr.map(function(single) {\n\t\t\t\tlet path;\n\t\t\t\tif (single.path !== undefined) {\n\t\t\t\t\tconst split = single.path.split('.');\n\n\t\t\t\t\tif (split[0] === '$input') {\n\t\t\t\t\t\tsplit.shift();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (split.length > 0) {\n\t\t\t\t\t\tpath = split.join('.');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\tpath,\n\t\t\t\t\tmessage: message ?? 'Invalid value',\n\t\t\t\t\texpected: single.expected,\n\t\t\t\t\treceivedValue: single.value\n\t\t\t\t});\n\t\t\t})\n\t\t}, message))\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IValidation, TypeGuardError } from 'typia';\nimport { createAssertEquals, createIs } from 'typia';\nimport type { LogLevel } from './log/index.ts';\n/**\n * Type for error classes that can be deserialized\n */\ninterface DeserializableErrorClass {\n\treadonly name: string;\n\tfromJSON: (input: unknown) => Promise<KeetaAnchorError>;\n}\n\n/**\n * Lazy-loaded error classes to avoid circular dependencies\n * The classes are loaded on first use\n */\nlet ERROR_CLASS_MAPPING: { [key: string]: (input: unknown) => Promise<KeetaAnchorError> } | null = null;\n\nasync function getErrorClassMapping(): Promise<{ [key: string]: (input: unknown) => Promise<KeetaAnchorError> }> {\n\tif (ERROR_CLASS_MAPPING) {\n\t\treturn(ERROR_CLASS_MAPPING);\n\t}\n\n\tconst ERROR_CLASSES: DeserializableErrorClass[] = [\n\t\t/*\n\t\t * We purposefully leave out KeetaAnchorError here since it\n\t\t * is the base error class and could cause circular resolution\n\t\t */\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tKeetaAnchorUserError, KeetaAnchorUserValidationError\n\t];\n\n\t// Dynamically import errors to avoid circular dependencies\n\tconst importPromises: { Errors: { [key: string]: DeserializableErrorClass }}[] = await Promise.all([\n\t\timport('../services/kyc/common.js'),\n\t\timport('../services/fx/common.js'),\n\t\timport('../services/asset-movement/common.js')\n\t]);\n\n\tfor (const module of importPromises) {\n\t\tconst classes = Object.values(module.Errors);\n\t\tERROR_CLASSES.push(...classes);\n\t}\n\n\tconst mapping: { [key: string]: (input: unknown) => Promise<KeetaAnchorError> } = {};\n\tfor (const errorClass of ERROR_CLASSES) {\n\t\tmapping[errorClass.name] = errorClass.fromJSON.bind(errorClass);\n\t}\n\n\tERROR_CLASS_MAPPING = mapping;\n\treturn(mapping);\n}\n\n/**\n * Base error class for all Keeta Anchor errors\n */\nexport class KeetaAnchorError extends Error {\n\tstatic override readonly name: string = 'KeetaAnchorError';\n\t#name: string;\n\t#statusCode = 400;\n\t#retryable = false;\n\tprivate readonly keetaAnchorErrorObjectTypeID!: string;\n\tprivate static readonly keetaAnchorErrorObjectTypeID = '5d7f1578-e887-4104-bab0-4115ae33b08f';\n\tprotected userError = false;\n\treadonly logLevel: LogLevel = 'ERROR';\n\n\tget name(): string {\n\t\treturn(this.#name);\n\t}\n\n\tprotected set name(value: string) {\n\t\tthis.#name = value;\n\t}\n\n\tget statusCode(): number {\n\t\treturn(this.#statusCode);\n\t}\n\n\tprotected set statusCode(value: number) {\n\t\tthis.#statusCode = value;\n\t}\n\n\tget retryable(): boolean {\n\t\treturn(this.#retryable);\n\t}\n\n\tprotected set retryable(value: boolean) {\n\t\tthis.#retryable = value;\n\t}\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\n\t\t// Need to cast to access the static name property from the constructor\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tthis.#name = (this.constructor as typeof KeetaAnchorError).name;\n\n\t\tObject.defineProperty(this, 'keetaAnchorErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorError.keetaAnchorErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\t/**\n\t * Protected method to restore error properties from JSON\n\t * This allows subclasses to properly restore properties without using any\n\t */\n\tprotected restoreFromJSON(other: { [key: string]: unknown }): void {\n\t\t// Restore statusCode if present\n\t\tif ('statusCode' in other) {\n\t\t\tif (typeof other.statusCode !== 'number') {\n\t\t\t\tthrow(new TypeError('Invalid statusCode: expected number'));\n\t\t\t}\n\t\t\tthis.statusCode = other.statusCode;\n\t\t}\n\n\t\t// Restore retryable if present\n\t\tif ('retryable' in other) {\n\t\t\tif (typeof other.retryable !== 'boolean') {\n\t\t\t\tthrow(new TypeError('Invalid retryable: expected boolean'));\n\t\t\t}\n\t\t\tthis.retryable = other.retryable;\n\t\t}\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorError {\n\t\treturn(this.hasPropWithValue(input, 'keetaAnchorErrorObjectTypeID', KeetaAnchorError.keetaAnchorErrorObjectTypeID));\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json', message?: string): { error: string; statusCode: number; contentType: string } {\n\t\tmessage ??= 'Internal error';\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\t...this.toJSON(),\n\t\t\t\tstatusCode: undefined\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): { ok: false; retryable: boolean; error: string; name: string; statusCode: number } {\n\t\tlet message = 'Internal error';\n\t\tif (this.userError) {\n\t\t\tmessage = this.message;\n\t\t}\n\n\t\treturn({\n\t\t\tok: false,\n\t\t\tretryable: this.retryable,\n\t\t\terror: message,\n\t\t\tname: this.#name,\n\t\t\tstatusCode: this.statusCode\n\t\t});\n\t}\n\n\tprotected static hasPropWithValue<PROP extends string, VALUE extends string | number | boolean>(input: unknown, prop: PROP, value: VALUE): input is { [key in PROP]: VALUE } {\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\treturn(false);\n\t\t}\n\n\t\tif (!(prop in input)) {\n\t\t\treturn(false);\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tconst inputValue = input[prop as keyof typeof input] as unknown;\n\t\tif (inputValue !== value) {\n\t\t\treturn(false);\n\t\t}\n\n\t\treturn(true);\n\t}\n\n\t/**\n\t * Extract common error properties from JSON input\n\t * This validates the structure and extracts properties needed for construction\n\t */\n\tprotected static extractErrorProperties(input: unknown, expectedClass?: { name: string }): { message: string; other: { [key: string]: unknown }} {\n\t\tif (!this.hasPropWithValue(input, 'ok', false)) {\n\t\t\tthrow(new Error('Invalid error JSON object'));\n\t\t}\n\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\tthrow(new Error('Invalid error JSON object'));\n\t\t}\n\n\t\t// Verify the name matches if an expected class is provided\n\t\tif (expectedClass && 'name' in input && input.name !== expectedClass.name) {\n\t\t\tthrow(new Error(`Error name mismatch: expected ${expectedClass.name}, got ${input.name}`));\n\t\t}\n\n\t\t// Extract error message\n\t\tlet message = 'Internal error';\n\t\tif ('error' in input && typeof input.error === 'string') {\n\t\t\tmessage = input.error;\n\t\t}\n\n\t\t// Extract other properties\n\t\tconst other: { [key: string]: unknown } = {};\n\t\tfor (const key in input) {\n\t\t\tif (key !== 'error' && key !== 'ok') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tother[key] = input[key as keyof typeof input];\n\t\t\t}\n\t\t}\n\n\t\treturn({ message, other });\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAnchorError> {\n\t\t// Try to use the deserializer mapping if available for subclasses\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\tthrow(new Error('Invalid error JSON object'));\n\t\t}\n\n\t\tif (!('ok' in input) || input.ok !== false) {\n\t\t\tthrow(new Error('Invalid error JSON object: expected ok: false'));\n\t\t}\n\n\t\t// Check if there's a specific error class name\n\t\tif ('name' in input && typeof input.name === 'string') {\n\t\t\tif (input.name === 'KeetaAnchorError') {\n\t\t\t\tconst { message, other } = KeetaAnchorError.extractErrorProperties(input, this);\n\t\t\t\tconst error = new this(message);\n\t\t\t\terror.restoreFromJSON(other);\n\t\t\t\treturn(error);\n\t\t\t}\n\t\t\tconst mapping = await getErrorClassMapping();\n\t\t\tconst deserializer = mapping[input.name];\n\t\t\tif (deserializer) {\n\t\t\t\treturn(await deserializer(input));\n\t\t\t}\n\t\t}\n\n\t\tthrow(new Error('Invalid error JSON object: unknown error class'));\n\t}\n}\n\n/**\n * User-facing error class that extends KeetaAnchorError\n */\nexport class KeetaAnchorUserError extends KeetaAnchorError {\n\tstatic readonly name: string = 'KeetaAnchorUserError';\n\tprivate readonly keetaAnchorUserErrorObjectTypeID!: string;\n\tprivate static readonly keetaAnchorUserErrorObjectTypeID = 'a1e64819-14b6-45ac-a1ec-b9c0bdd51e7b';\n\tprotected override userError = true;\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorUserError {\n\t\treturn(this.hasPropWithValue(input, 'keetaAnchorUserErrorObjectTypeID', KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID));\n\t}\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\n\t\tObject.defineProperty(this, 'keetaAnchorUserErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\treturn(super.asErrorResponse(contentType, this.message));\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<InstanceType<typeof this>> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\t\tconst error = new this(message);\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\ninterface KeetaAnchorUserValidationErrorDetails {\n\tfields: {\n\t\tpath?: string | undefined;\n\t\tmessage: string;\n\t\tallowedValues?: string[];\n\t\texpected?: string;\n\t\treceivedValue?: unknown;\n\t\tvalueRules?: { minimum?: string | undefined; maximum?: string | undefined };\n\t}[];\n}\n\nconst assertKeetaAnchorUserValidationErrorDetails: (input: unknown) => KeetaAnchorUserValidationErrorDetails = createAssertEquals<KeetaAnchorUserValidationErrorDetails>();\ntype KeetaAnchorUserValidationErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAnchorUserValidationErrorDetails;\n\ntype TypeGuardErrorLike = Pick<TypeGuardError.IProps | IValidation.IError, 'path' | 'expected' | 'value'>;\n\nconst isTypeGuardErrorLike: (error: unknown) => error is TypeGuardErrorLike = createIs<TypeGuardErrorLike>();\n\nexport class KeetaAnchorUserValidationError extends KeetaAnchorUserError implements KeetaAnchorUserValidationErrorDetails {\n\tstatic readonly isTypeGuardErrorLike: typeof isTypeGuardErrorLike = isTypeGuardErrorLike;\n\n\tstatic override readonly name: string = 'KeetaAnchorUserValidationError';\n\tprivate readonly KeetaAnchorUserValidationErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAnchorUserValidationErrorObjectTypeID = '5fa46799-48b8-4cf2-a3de-9c01418d3ba0';\n\tprotected override userError = true;\n\n\treadonly fields: KeetaAnchorUserValidationErrorDetails['fields'];\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorUserError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAnchorUserValidationErrorObjectTypeID', KeetaAnchorUserValidationError.KeetaAnchorUserValidationErrorObjectTypeID));\n\t}\n\n\tconstructor(args: KeetaAnchorUserValidationErrorDetails, message?: string) {\n\t\tsuper(message ?? `Validation error on fields ${args.fields.map((f) => f.path).join(', ')}`);\n\n\t\tObject.defineProperty(this, 'KeetaAnchorUserValidationErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorUserValidationError.KeetaAnchorUserValidationErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.fields = args.fields;\n\t}\n\n\toverride get statusCode() {\n\t\treturn(400);\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tdata: { fields: this.fields },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAnchorUserValidationErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\tfields: this.fields\n\t\t});\n\t}\n\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAnchorUserValidationError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAnchorUserValidationError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAnchorUserValidationErrorDetails(other.data);\n\n\t\tconst error = new this(\n\t\t\t{ fields: parsed.fields },\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n\n\tstatic fromTypeGuardError(input: TypeGuardErrorLike | TypeGuardErrorLike[], message?: string): KeetaAnchorUserValidationError {\n\t\tlet asArr;\n\n\t\tif (Array.isArray(input)) {\n\t\t\tasArr = input;\n\t\t} else {\n\t\t\tasArr = [ input ];\n\t\t}\n\n\t\treturn(new this({\n\t\t\tfields: asArr.map(function(single) {\n\t\t\t\tlet path;\n\t\t\t\tif (single.path !== undefined) {\n\t\t\t\t\tconst split = single.path.split('.');\n\n\t\t\t\t\tif (split[0] === '$input') {\n\t\t\t\t\t\tsplit.shift();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (split.length > 0) {\n\t\t\t\t\t\tpath = split.join('.');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\tpath,\n\t\t\t\t\tmessage: message ?? 'Invalid value',\n\t\t\t\t\texpected: single.expected,\n\t\t\t\t\treceivedValue: single.value\n\t\t\t\t});\n\t\t\t})\n\t\t}, message))\n\t}\n}\n"]}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keetanetwork/anchor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.31",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@keetanetwork/anchor",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.31",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@keetanetwork/currency-info": "1.2.5",
|
package/package.json
CHANGED
|
@@ -91,6 +91,11 @@ declare class KeetaAssetMovementTransfer {
|
|
|
91
91
|
get transferId(): string;
|
|
92
92
|
get instructions(): AssetTransferInstructions[];
|
|
93
93
|
}
|
|
94
|
+
interface AwaitPromiseURLOptions {
|
|
95
|
+
defaultPollIntervalMs?: number;
|
|
96
|
+
timeoutMs?: number;
|
|
97
|
+
abortSignal?: AbortSignal;
|
|
98
|
+
}
|
|
94
99
|
declare class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
95
100
|
#private;
|
|
96
101
|
readonly serviceInfo: KeetaAssetMovementServiceInfo;
|
|
@@ -103,7 +108,7 @@ declare class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorB
|
|
|
103
108
|
createPersistentForwardingAddress(request: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>>;
|
|
104
109
|
listForwardingAddressTemplates(request: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest): Promise<PersistentAddressTemplateData[]>;
|
|
105
110
|
listTransactions(request: KeetaAssetMovementAnchorlistTransactionsClientRequest): Promise<ExtractOk<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>>;
|
|
106
|
-
shareKYCAttributes(request: KeetaAssetMovementAnchorShareKYCClientRequest): Promise<void>;
|
|
111
|
+
shareKYCAttributes(request: KeetaAssetMovementAnchorShareKYCClientRequest, awaitOptions?: AwaitPromiseURLOptions): Promise<void>;
|
|
107
112
|
}
|
|
108
113
|
declare class KeetaAssetMovementAnchorClient extends KeetaAssetMovementAnchorBase {
|
|
109
114
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EACX,UAAU,IAAI,kBAAkB,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACX,iDAAiD,EAEjD,0DAA0D,EAC1D,eAAe,EACf,mBAAmB,EAEnB,oEAAoE,EACpE,yBAAyB,EACzB,+DAA+D,EAC/D,qDAAqD,EAErD,8EAA8E,EAG9E,qDAAqD,EACrD,kEAAkE,EAClE,6BAA6B,EAC7B,sDAAsD,EACtD,6CAA6C,EAG7C,MAAM,aAAa,CAAC;AAqBrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,iCAAiC,EAAiD,MAAM,uBAAuB,CAAC;AAE/I,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/asset-movement/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { createAssertEquals } from 'typia';
|
|
|
8
8
|
import { addSignatureToURL } from '../../lib/http-server/common.js';
|
|
9
9
|
import { SignData } from '../../lib/utils/signing.js';
|
|
10
10
|
import { KeetaAnchorError } from '../../lib/error.js';
|
|
11
|
+
import { KeetaNet } from '../../client/index.js';
|
|
11
12
|
/**
|
|
12
13
|
* An opaque type that represents an Asset Movement Anchor request ID
|
|
13
14
|
*/
|
|
@@ -272,6 +273,34 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
272
273
|
auth: endpoint.options.authentication
|
|
273
274
|
});
|
|
274
275
|
}
|
|
276
|
+
async #parseResponseError(data) {
|
|
277
|
+
if (typeof data !== 'object' || data === null) {
|
|
278
|
+
throw (new Error('Response is not an error'));
|
|
279
|
+
}
|
|
280
|
+
if (!('ok' in data) || data.ok !== false) {
|
|
281
|
+
throw (new Error('Response is not an error'));
|
|
282
|
+
}
|
|
283
|
+
let errorStr;
|
|
284
|
+
let parsedError = null;
|
|
285
|
+
try {
|
|
286
|
+
parsedError = await KeetaAnchorError.fromJSON(data);
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
this.logger?.debug('Failed to parse error response as KeetaAnchorError', error, data);
|
|
290
|
+
}
|
|
291
|
+
if (parsedError) {
|
|
292
|
+
return (parsedError);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
if ('error' in data && typeof data.error === 'string') {
|
|
296
|
+
errorStr = data.error;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
errorStr = 'Unknown error';
|
|
300
|
+
}
|
|
301
|
+
return (new Error(`asset movement request failed: ${errorStr}`));
|
|
302
|
+
}
|
|
303
|
+
}
|
|
275
304
|
async #makeRequest(input) {
|
|
276
305
|
const { url, auth } = await this.#getOperationData(input.endpoint, input.params);
|
|
277
306
|
let serializedRequest;
|
|
@@ -322,26 +351,7 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
322
351
|
throw (new Error(`Invalid response from asset movement service: ${JSON.stringify(requestInformationJSON)}`));
|
|
323
352
|
}
|
|
324
353
|
if (!requestInformationJSON.ok) {
|
|
325
|
-
|
|
326
|
-
let parsedError = null;
|
|
327
|
-
try {
|
|
328
|
-
parsedError = await KeetaAnchorError.fromJSON(requestInformationJSON);
|
|
329
|
-
}
|
|
330
|
-
catch (error) {
|
|
331
|
-
this.logger?.debug('Failed to parse error response as KeetaAnchorError', error, requestInformationJSON);
|
|
332
|
-
}
|
|
333
|
-
if (parsedError) {
|
|
334
|
-
throw (parsedError);
|
|
335
|
-
}
|
|
336
|
-
else {
|
|
337
|
-
if ('error' in requestInformationJSON && typeof requestInformationJSON.error === 'string') {
|
|
338
|
-
errorStr = requestInformationJSON.error;
|
|
339
|
-
}
|
|
340
|
-
else {
|
|
341
|
-
errorStr = 'Unknown error';
|
|
342
|
-
}
|
|
343
|
-
throw (new Error(`asset movement ${input.endpoint} request failed: ${errorStr}`));
|
|
344
|
-
}
|
|
354
|
+
throw (await this.#parseResponseError(requestInformationJSON));
|
|
345
355
|
}
|
|
346
356
|
// We need this assertion because TypeScript cannot infer that the type is correct here, it is correct because we checked it above.
|
|
347
357
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
@@ -497,9 +507,59 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
497
507
|
this.logger?.debug(`list persistent transactions request successful, ${requestInformationJSON.transactions}`);
|
|
498
508
|
return (requestInformationJSON);
|
|
499
509
|
}
|
|
500
|
-
async
|
|
510
|
+
async #awaitPromiseURL(promiseURL, options) {
|
|
511
|
+
const startTime = Date.now();
|
|
512
|
+
const timeout = options?.timeoutMs ?? (5 * 60 * 1000);
|
|
513
|
+
while (true) {
|
|
514
|
+
if (options?.abortSignal?.aborted) {
|
|
515
|
+
break;
|
|
516
|
+
}
|
|
517
|
+
let response;
|
|
518
|
+
try {
|
|
519
|
+
response = await fetch(promiseURL);
|
|
520
|
+
}
|
|
521
|
+
catch (error) {
|
|
522
|
+
this.logger?.debug('KeetaAssetMovementAnchorProvider::awaitPromiseURL', 'Error fetching promise URL', error);
|
|
523
|
+
throw (new Error(`Error fetching promise URL: ${String(error)}`));
|
|
524
|
+
}
|
|
525
|
+
if (response.status === 200) {
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
if (response.status !== 202) {
|
|
529
|
+
let errorData;
|
|
530
|
+
try {
|
|
531
|
+
errorData = await response.json();
|
|
532
|
+
}
|
|
533
|
+
catch {
|
|
534
|
+
throw (new Error(`Error parsing error response json from promise, status code ${response.status}`));
|
|
535
|
+
}
|
|
536
|
+
throw (await this.#parseResponseError(errorData));
|
|
537
|
+
}
|
|
538
|
+
if (Date.now() - startTime > timeout) {
|
|
539
|
+
throw (new Error('Timeout waiting for promise URL to complete'));
|
|
540
|
+
}
|
|
541
|
+
let retryAfterMS;
|
|
542
|
+
const retryAfterHeader = response.headers.get('Retry-After');
|
|
543
|
+
if (retryAfterHeader) {
|
|
544
|
+
if (!isNaN(Number(retryAfterHeader))) {
|
|
545
|
+
retryAfterMS = Number(retryAfterHeader) * 1000;
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
const retryAfterDate = new Date(retryAfterHeader);
|
|
549
|
+
if (!isNaN(retryAfterDate.getTime())) {
|
|
550
|
+
retryAfterMS = retryAfterDate.getTime() - Date.now();
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
if (!retryAfterMS) {
|
|
555
|
+
retryAfterMS = options?.defaultPollIntervalMs ?? 1000;
|
|
556
|
+
}
|
|
557
|
+
await KeetaNet.lib.Utils.Helper.asleep(retryAfterMS);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
async shareKYCAttributes(request, awaitOptions) {
|
|
501
561
|
this.logger?.debug('Sharing KYC attributes');
|
|
502
|
-
await this.#makeRequest({
|
|
562
|
+
const response = await this.#makeRequest({
|
|
503
563
|
method: 'POST',
|
|
504
564
|
endpoint: 'shareKYC',
|
|
505
565
|
account: request.account,
|
|
@@ -521,6 +581,18 @@ class KeetaAssetMovementAnchorProvider extends KeetaAssetMovementAnchorBase {
|
|
|
521
581
|
getSignedData: getKeetaAssetMovementAnchorShareKYCRequestSigningData,
|
|
522
582
|
isResponse: isKeetaAssetMovementAnchorShareKYCResponse
|
|
523
583
|
});
|
|
584
|
+
if (response.isPending && response.promiseURL) {
|
|
585
|
+
this.logger?.debug('KYC attribute sharing is pending, awaiting promise URL');
|
|
586
|
+
let promiseURL;
|
|
587
|
+
if (response.promiseURL.startsWith('/')) {
|
|
588
|
+
const operationData = await this.#getOperationData('shareKYC');
|
|
589
|
+
promiseURL = new URL(response.promiseURL, operationData.url).toString();
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
promiseURL = response.promiseURL;
|
|
593
|
+
}
|
|
594
|
+
await this.#awaitPromiseURL(promiseURL, { ...awaitOptions });
|
|
595
|
+
}
|
|
524
596
|
this.logger?.debug(`done sharing KYC attributes`);
|
|
525
597
|
}
|
|
526
598
|
}
|