@cubist-labs/cubesigner-sdk 0.3.27 → 0.3.29
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/README.md +1 -6
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/api.d.ts +2 -1
- package/dist/cjs/src/api.js +4 -2
- package/dist/cjs/src/client.d.ts +20 -15
- package/dist/cjs/src/client.js +4 -3
- package/dist/cjs/src/key.d.ts +38 -2
- package/dist/cjs/src/key.js +88 -5
- package/dist/cjs/src/org.d.ts +3 -3
- package/dist/cjs/src/schema.d.ts +995 -54
- package/dist/cjs/src/schema.js +1 -1
- package/dist/cjs/src/util.d.ts +2 -0
- package/dist/cjs/src/util.js +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/api.d.ts +2 -1
- package/dist/esm/src/api.js +4 -2
- package/dist/esm/src/client.d.ts +20 -15
- package/dist/esm/src/client.js +4 -3
- package/dist/esm/src/key.d.ts +38 -2
- package/dist/esm/src/key.js +88 -5
- package/dist/esm/src/org.d.ts +3 -3
- package/dist/esm/src/schema.d.ts +995 -54
- package/dist/esm/src/schema.js +1 -1
- package/dist/esm/src/util.d.ts +2 -0
- package/dist/esm/src/util.js +1 -1
- package/package.json +1 -1
- package/src/api.ts +7 -1
- package/src/client.ts +3 -2
- package/src/key.ts +92 -4
- package/src/schema.ts +1038 -57
- package/src/util.ts +3 -0
- package/dist/cjs/src/org_event_processor.d.ts +0 -57
- package/dist/cjs/src/org_event_processor.js +0 -137
- package/dist/esm/src/org_event_processor.d.ts +0 -57
- package/dist/esm/src/org_event_processor.js +0 -133
- package/dist/package.json +0 -36
- package/dist/spec/env/beta.json +0 -9
- package/dist/spec/env/gamma.json +0 -9
- package/dist/spec/env/prod.json +0 -9
- package/dist/src/api.d.ts +0 -634
- package/dist/src/api.js +0 -1309
- package/dist/src/client.d.ts +0 -575
- package/dist/src/client.js +0 -381
- package/dist/src/env.d.ts +0 -15
- package/dist/src/env.js +0 -35
- package/dist/src/error.d.ts +0 -29
- package/dist/src/error.js +0 -36
- package/dist/src/events.d.ts +0 -84
- package/dist/src/events.js +0 -195
- package/dist/src/index.d.ts +0 -207
- package/dist/src/index.js +0 -308
- package/dist/src/key.d.ts +0 -152
- package/dist/src/key.js +0 -242
- package/dist/src/mfa.d.ts +0 -94
- package/dist/src/mfa.js +0 -169
- package/dist/src/org.d.ts +0 -99
- package/dist/src/org.js +0 -95
- package/dist/src/paginator.d.ts +0 -76
- package/dist/src/paginator.js +0 -99
- package/dist/src/response.d.ts +0 -101
- package/dist/src/response.js +0 -164
- package/dist/src/role.d.ts +0 -283
- package/dist/src/role.js +0 -253
- package/dist/src/schema.d.ts +0 -6209
- package/dist/src/schema.js +0 -7
- package/dist/src/schema_types.d.ts +0 -113
- package/dist/src/schema_types.js +0 -3
- package/dist/src/session/session_storage.d.ts +0 -47
- package/dist/src/session/session_storage.js +0 -76
- package/dist/src/session/signer_session_manager.d.ts +0 -125
- package/dist/src/session/signer_session_manager.js +0 -239
- package/dist/src/signer_session.d.ts +0 -41
- package/dist/src/signer_session.js +0 -77
- package/dist/src/user_export.d.ts +0 -52
- package/dist/src/user_export.js +0 -129
- package/dist/src/util.d.ts +0 -61
- package/dist/src/util.js +0 -97
package/dist/esm/src/util.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export interface JsonMap {
|
|
|
4
4
|
}
|
|
5
5
|
/** JSON array type */
|
|
6
6
|
export type JsonArray = Array<string | number | boolean | null | JsonArray | JsonMap>;
|
|
7
|
+
/** Any JSON value */
|
|
8
|
+
export type JsonValue = string | number | boolean | null | JsonArray | JsonMap;
|
|
7
9
|
/**
|
|
8
10
|
* Path join
|
|
9
11
|
* @param {string} dir Parent directory
|
package/dist/esm/src/util.js
CHANGED
|
@@ -74,4 +74,4 @@ export function encodeToHex(message) {
|
|
|
74
74
|
const buff = typeof message === "string" ? Buffer.from(message, "utf8") : Buffer.from(message);
|
|
75
75
|
return "0x" + buff.toString("hex");
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUNoRCxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ25FLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVU7UUFDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWM7SUFDNUMsb0dBQW9HO0lBQ3BHLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUF3QjtJQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxNQUFNLEdBQUcsR0FDUCxPQUFPLE1BQU0sS0FBSyxVQUFVO1FBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUF3QjtJQUN4RCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsb0dBQW9HO0lBQ3BHLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxNQUFNLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9GLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBKU09OIG1hcCB0eXBlICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25NYXAge1xuICBbbWVtYmVyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IEpzb25BcnJheSB8IEpzb25NYXA7XG59XG5cbi8qKiBKU09OIGFycmF5IHR5cGUgKi9cbmV4cG9ydCB0eXBlIEpzb25BcnJheSA9IEFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgSnNvbkFycmF5IHwgSnNvbk1hcD47XG5cbi8qKiBBbnkgSlNPTiB2YWx1ZSAqL1xuZXhwb3J0IHR5cGUgSnNvblZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCBKc29uQXJyYXkgfCBKc29uTWFwO1xuXG4vKipcbiAqIFBhdGggam9pblxuICogQHBhcmFtIHtzdHJpbmd9IGRpciBQYXJlbnQgZGlyZWN0b3J5XG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZSBQYXRobmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBOZXcgcGF0aG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhKb2luKGRpcjogc3RyaW5nLCBmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzZXAgPSBnbG9iYWxUaGlzPy5wcm9jZXNzPy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiID8gXCJcXFxcXCIgOiBcIi9cIjtcbiAgcmV0dXJuIGAke2Rpcn0ke3NlcH0ke2ZpbGV9YDtcbn1cblxuLyoqXG4gKiBCcm93c2VyLWZyaWVuZGx5IGhlbHBlciBmb3IgZGVjb2RpbmcgYSAnYmFzZTY0Jy1lbmNvZGVkIHN0cmluZyBpbnRvIGEgYnl0ZSBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYjY0IFRoZSAnYmFzZTY0Jy1lbmNvZGVkIHN0cmluZyB0byBkZWNvZGVcbiAqIEByZXR1cm4ge1VpbnQ4QXJyYXl9IERlY29kZWQgYnl0ZSBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIHJldHVybiB0eXBlb2YgQnVmZmVyID09PSBcImZ1bmN0aW9uXCJcbiAgICA/IEJ1ZmZlci5mcm9tKGI2NCwgXCJiYXNlNjRcIilcbiAgICA6IFVpbnQ4QXJyYXkuZnJvbShhdG9iKGI2NCksIChjKSA9PiBjLmNoYXJDb2RlQXQoMCkpO1xufVxuXG4vKipcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBkZWNvZGluZyBhICdiYXNlNjR1cmwnLWVuY29kZWQgc3RyaW5nIGludG8gYSBieXRlIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiNjR1cmwgVGhlICdiYXNlNjR1cmwnLWVuY29kZWQgc3RyaW5nIHRvIGRlY29kZVxuICogQHJldHVybiB7VWludDhBcnJheX0gRGVjb2RlZCBieXRlIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjRVcmwoYjY0dXJsOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgLy8gTk9URTogdGhlcmUgaXMgbm8gXCJiYXNlNjR1cmxcIiBlbmNvZGluZyBpbiB0aGUgXCJidWZmZXJcIiBtb2R1bGUgZm9yIHRoZSBicm93c2VyICh1bmxpa2UgaW4gbm9kZS5qcylcbiAgY29uc3QgYjY0ID0gYjY0dXJsLnJlcGxhY2UoLy0vZywgXCIrXCIpLnJlcGxhY2UoL18vZywgXCIvXCIpLnJlcGxhY2UoLz0qJC9nLCBcIlwiKTtcbiAgcmV0dXJuIGRlY29kZUJhc2U2NChiNjQpO1xufVxuXG4vKipcbiAqXG4gKiBCcm93c2VyLWZyaWVuZGx5IGhlbHBlciBmb3IgZW5jb2RpbmcgYSBieXRlIGFycmF5IGludG8gYSBwYWRkZWQgYGJhc2U2NGAtZW5jb2RlZCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtJdGVyYWJsZTxudW1iZXI+fSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZW5jb2RlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSAnYmFzZTY0JyBlbmNvZGluZyBvZiB0aGUgYnl0ZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRvQmFzZTY0KGJ1ZmZlcjogSXRlcmFibGU8bnVtYmVyPik6IHN0cmluZyB7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcbiAgY29uc3QgYjY0ID1cbiAgICB0eXBlb2YgQnVmZmVyID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gQnVmZmVyLmZyb20oYnl0ZXMpLnRvU3RyaW5nKFwiYmFzZTY0XCIpXG4gICAgICA6IGJ0b2EoYnl0ZXMucmVkdWNlKChzLCBiKSA9PiBzICsgU3RyaW5nLmZyb21DaGFyQ29kZShiKSwgXCJcIikpO1xuICByZXR1cm4gYjY0O1xufVxuXG4vKipcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBlbmNvZGluZyBhIGJ5dGUgYXJyYXkgaW50byBhICdiYXNlNjR1cmxgLWVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7SXRlcmFibGU8bnVtYmVyPn0gYnVmZmVyIFRoZSBieXRlIGFycmF5IHRvIGVuY29kZVxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgJ2Jhc2U2NHVybCcgZW5jb2Rpbmcgb2YgdGhlIGJ5dGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUb0Jhc2U2NFVybChidWZmZXI6IEl0ZXJhYmxlPG51bWJlcj4pOiBzdHJpbmcge1xuICBjb25zdCBiNjQgPSBlbmNvZGVUb0Jhc2U2NChidWZmZXIpO1xuICAvLyBOT1RFOiB0aGVyZSBpcyBubyBcImJhc2U2NHVybFwiIGVuY29kaW5nIGluIHRoZSBcImJ1ZmZlclwiIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgKHVubGlrZSBpbiBub2RlLmpzKVxuICByZXR1cm4gYjY0LnJlcGxhY2UoL1xcKy9nLCBcIi1cIikucmVwbGFjZSgvXFwvL2csIFwiX1wiKS5yZXBsYWNlKC89KiQvZywgXCJcIik7XG59XG5cbi8qKlxuICogU2xlZXBzIGZvciBgbXNgIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gbXMgTWlsbGlzZWNvbmRzIHRvIHNsZWVwXG4gKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBhZnRlciBgbXNgIG1pbGxpc2Vjb25kcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBzdHJpbmcgb3IgYSB1aW50OCBhcnJheSBpbnRvIGEgaGV4IHN0cmluZy4gU3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOCBiZWZvcmVcbiAqIGJlaW5nIGNvbnZlcnRlZCB0byBoZXguXG4gKiBAcGFyYW0ge3N0cmluZyB8IFVpbnQ4QXJyYXl9IG1lc3NhZ2UgVGhlIGlucHV0XG4gKiBAcmV0dXJuIHtzdHJpbmd9IEhleCBzdHJpbmcgcHJlZml4ZWQgd2l0aCBcIjB4XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRvSGV4KG1lc3NhZ2U6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBjb25zdCBidWZmID0gdHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShtZXNzYWdlLCBcInV0ZjhcIikgOiBCdWZmZXIuZnJvbShtZXNzYWdlKTtcbiAgcmV0dXJuIFwiMHhcIiArIGJ1ZmYudG9TdHJpbmcoXCJoZXhcIik7XG59XG4iXX0=
|
package/package.json
CHANGED
package/src/api.ts
CHANGED
|
@@ -769,9 +769,14 @@ export class CubeSignerApi {
|
|
|
769
769
|
* List all keys in the org.
|
|
770
770
|
* @param {KeyType?} type Optional key type to filter list for.
|
|
771
771
|
* @param {PageOpts?} page Pagination options. Defaults to fetching the entire result set.
|
|
772
|
+
* @param {string?} owner Optional key owner to filter list for.
|
|
772
773
|
* @return {Paginator<ListKeysResponse, KeyInfoApi>} Paginator for iterating over keys.
|
|
773
774
|
*/
|
|
774
|
-
keysList(
|
|
775
|
+
keysList(
|
|
776
|
+
type?: KeyType,
|
|
777
|
+
page?: PageOpts,
|
|
778
|
+
owner?: string,
|
|
779
|
+
): Paginator<ListKeysResponse, KeyInfoApi> {
|
|
775
780
|
const listFn = async (query: PageQueryArgs) => {
|
|
776
781
|
const client = await this.client("listKeysInOrg");
|
|
777
782
|
return await client.get("/v0/org/{org_id}/keys", {
|
|
@@ -779,6 +784,7 @@ export class CubeSignerApi {
|
|
|
779
784
|
path: { org_id: this.orgId },
|
|
780
785
|
query: {
|
|
781
786
|
key_type: type,
|
|
787
|
+
key_owner: owner,
|
|
782
788
|
...query,
|
|
783
789
|
},
|
|
784
790
|
},
|
package/src/client.ts
CHANGED
|
@@ -235,10 +235,11 @@ export class CubeSignerClient extends CubeSignerApi {
|
|
|
235
235
|
*
|
|
236
236
|
* @param {KeyType?} type Optional key type to filter list for.
|
|
237
237
|
* @param {PageOpts} page Pagination options. Defaults to fetching the entire result set.
|
|
238
|
+
* @param {string?} owner Optional key owner to filter list for.
|
|
238
239
|
* @return {Promise<Key[]>} The keys.
|
|
239
240
|
*/
|
|
240
|
-
async orgKeys(type?: KeyType, page?: PageOpts): Promise<Key[]> {
|
|
241
|
-
const paginator = this.keysList(type, page);
|
|
241
|
+
async orgKeys(type?: KeyType, page?: PageOpts, owner?: string): Promise<Key[]> {
|
|
242
|
+
const paginator = this.keysList(type, page, owner);
|
|
242
243
|
const keys = await paginator.fetch();
|
|
243
244
|
return keys.map((k) => new Key(this, k));
|
|
244
245
|
}
|
package/src/key.ts
CHANGED
|
@@ -8,12 +8,16 @@ import {
|
|
|
8
8
|
KeyInRoleInfo,
|
|
9
9
|
} from "./schema_types";
|
|
10
10
|
import { CubeSignerClient } from "./client";
|
|
11
|
+
import { ErrResponse, JsonValue, delay } from ".";
|
|
11
12
|
|
|
12
13
|
/** Secp256k1 key type */
|
|
13
14
|
export enum Secp256k1 {
|
|
14
15
|
Evm = "SecpEthAddr", // eslint-disable-line no-unused-vars
|
|
15
16
|
Btc = "SecpBtc", // eslint-disable-line no-unused-vars
|
|
16
17
|
BtcTest = "SecpBtcTest", // eslint-disable-line no-unused-vars
|
|
18
|
+
Taproot = "TaprootBtc",
|
|
19
|
+
TaprootTest = "TaprootBtcTest",
|
|
20
|
+
BabylonEots = "BabylonEots",
|
|
17
21
|
Ava = "SecpAvaAddr", // eslint-disable-line no-unused-vars
|
|
18
22
|
AvaTest = "SecpAvaTestAddr", // eslint-disable-line no-unused-vars
|
|
19
23
|
}
|
|
@@ -158,8 +162,8 @@ export class Key {
|
|
|
158
162
|
* Set new policy (overwriting any policies previously set for this key)
|
|
159
163
|
* @param {KeyPolicy} policy The new policy to set
|
|
160
164
|
*/
|
|
161
|
-
async setPolicy(policy: KeyPolicy) {
|
|
162
|
-
await this.update({ policy: policy as unknown as Record<string, never>[] });
|
|
165
|
+
async setPolicy(policy: KeyPolicy): Promise<KeyInfo> {
|
|
166
|
+
return await this.update({ policy: policy as unknown as Record<string, never>[] });
|
|
163
167
|
}
|
|
164
168
|
|
|
165
169
|
/**
|
|
@@ -168,8 +172,77 @@ export class Key {
|
|
|
168
172
|
*
|
|
169
173
|
* @param {string} metadata The new metadata to set.
|
|
170
174
|
*/
|
|
171
|
-
async setMetadata(metadata:
|
|
172
|
-
await this.update({ metadata });
|
|
175
|
+
async setMetadata(metadata: JsonValue): Promise<KeyInfo> {
|
|
176
|
+
return await this.update({ metadata });
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Retrieves the existing metadata, asserts that it is in object (throws if it is not),
|
|
181
|
+
* then sets the value of the {@link name} property in that object to {@link value},
|
|
182
|
+
* and finally submits the request to update the metadata.
|
|
183
|
+
*
|
|
184
|
+
* This whole process is done atomically, meaning, that if the metadata changes between the
|
|
185
|
+
* time this method first retrieves it and the time it submits a request to update it, the
|
|
186
|
+
* request will be rejected. When that happens, this method will retry a couple of times.
|
|
187
|
+
*
|
|
188
|
+
* @param {string} name The name of the property to set
|
|
189
|
+
* @param {JsonValue} value The new value of the property
|
|
190
|
+
* @return {Promise<KeyInfo>} Updated key information
|
|
191
|
+
*/
|
|
192
|
+
async setMetadataProperty(name: string, value: JsonValue): Promise<KeyInfo> {
|
|
193
|
+
return await this.#setMetadataProperty(name, value, [100, 200, 400]);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Retrieves the existing metadata, asserts that it is in object (throws if it is not),
|
|
198
|
+
* then deletes the {@link name} property in that object, and finally submits the
|
|
199
|
+
* request to update the metadata.
|
|
200
|
+
*
|
|
201
|
+
* This whole process is done atomically, meaning, that if the metadata changes between the
|
|
202
|
+
* time this method first retrieves it and the time it submits a request to update it, the
|
|
203
|
+
* request will be rejected. When that happens, this method will retry a couple of times.
|
|
204
|
+
*
|
|
205
|
+
* @param {string} name The name of the property to set
|
|
206
|
+
* @return {Promise<KeyInfo>} Updated key information
|
|
207
|
+
*/
|
|
208
|
+
async deleteMetadataProperty(name: string): Promise<KeyInfo> {
|
|
209
|
+
return await this.#setMetadataProperty(name, undefined, [100, 200, 400]);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* @param {string} name The name of the property to set
|
|
214
|
+
* @param {JsonValue} value The new value of the property
|
|
215
|
+
* @param {number[]} delaysMs Delays in milliseconds between retries
|
|
216
|
+
* @return {Promise<KeyInfo>} Updated key information
|
|
217
|
+
* @internal
|
|
218
|
+
*/
|
|
219
|
+
async #setMetadataProperty(
|
|
220
|
+
name: string,
|
|
221
|
+
value: JsonValue | undefined,
|
|
222
|
+
delaysMs: number[],
|
|
223
|
+
): Promise<KeyInfo> {
|
|
224
|
+
const data = await this.fetch();
|
|
225
|
+
const current = data.metadata ?? {};
|
|
226
|
+
if (typeof current !== "object") {
|
|
227
|
+
throw new Error("Current metadata is not a JSON object");
|
|
228
|
+
}
|
|
229
|
+
const updated = {
|
|
230
|
+
...current,
|
|
231
|
+
[name]: value,
|
|
232
|
+
};
|
|
233
|
+
try {
|
|
234
|
+
return await this.update({
|
|
235
|
+
metadata: updated,
|
|
236
|
+
version: data.version,
|
|
237
|
+
});
|
|
238
|
+
} catch (e) {
|
|
239
|
+
if ((e as ErrResponse).errorCode === "InvalidUpdate" && delaysMs.length > 0) {
|
|
240
|
+
await delay(delaysMs[0]);
|
|
241
|
+
return await this.#setMetadataProperty(name, value, delaysMs.slice(1));
|
|
242
|
+
} else {
|
|
243
|
+
throw e;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
173
246
|
}
|
|
174
247
|
|
|
175
248
|
/**
|
|
@@ -193,6 +266,15 @@ export class Key {
|
|
|
193
266
|
return (data.policy ?? []) as unknown as KeyPolicy;
|
|
194
267
|
}
|
|
195
268
|
|
|
269
|
+
/**
|
|
270
|
+
* Fetch the metadata for the key.
|
|
271
|
+
* @return {Promise<JsonValue>} The policy for the key.
|
|
272
|
+
*/
|
|
273
|
+
async metadata(): Promise<JsonValue> {
|
|
274
|
+
const data = await this.fetch();
|
|
275
|
+
return data.metadata as JsonValue;
|
|
276
|
+
}
|
|
277
|
+
|
|
196
278
|
/**
|
|
197
279
|
* @description Owner of the key
|
|
198
280
|
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
@@ -275,6 +357,12 @@ export function fromSchemaKeyType(ty: SchemaKeyType): KeyType {
|
|
|
275
357
|
return Secp256k1.Ava;
|
|
276
358
|
case "SecpAvaTestAddr":
|
|
277
359
|
return Secp256k1.AvaTest;
|
|
360
|
+
case "BabylonEots":
|
|
361
|
+
return Secp256k1.BabylonEots;
|
|
362
|
+
case "TaprootBtc":
|
|
363
|
+
return Secp256k1.Taproot;
|
|
364
|
+
case "TaprootBtcTest":
|
|
365
|
+
return Secp256k1.TaprootTest;
|
|
278
366
|
case "BlsPub":
|
|
279
367
|
return Bls.Eth2Deposited;
|
|
280
368
|
case "BlsInactive":
|