@cubist-labs/cubesigner-sdk-viem 0.4.209 → 0.4.214
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -3
- package/package.json +3 -3
- package/src/index.ts +24 -0
package/dist/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export declare class CubeSignerSource implements CustomSource {
|
|
|
38
38
|
* @returns signature for the typed data
|
|
39
39
|
*/
|
|
40
40
|
signTypedData: CustomSource["signTypedData"];
|
|
41
|
+
signAuthorization: CustomSource["signAuthorization"];
|
|
41
42
|
/**
|
|
42
43
|
* It is recommended to use `prepareTransactionRequest` on your request
|
|
43
44
|
* before calling this function.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,EAYlB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,KAAK,gBAAgB,EAIrB,KAAK,gBAAgB,EACrB,KAAK,GAAG,EAET,MAAM,6BAA6B,CAAC;AAGrC;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,YAAY;;IAInD,iDAAiD;IACjD,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;;;;;;;OAQG;gBACS,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAavF;;;;;;;;OAQG;IACI,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAa7C;IAEF;;;;;;;;OAQG;IACI,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,CAYjD;IAEK,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAiBzD;IAEF;;;;;;;;;;;OAWG;IACI,eAAe,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAsBrD;CACH"}
|
package/dist/index.js
CHANGED
|
@@ -10,8 +10,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
12
|
var _CubeSignerSource_signer;
|
|
13
|
-
import { bytesToHex, formatTransactionRequest, getAddress, isHex, parseTransaction, serializeTransaction, stringToHex, } from "viem";
|
|
14
|
-
import { EvmSigner, } from "@cubist-labs/cubesigner-sdk";
|
|
13
|
+
import { bytesToHex, formatTransactionRequest, getAddress, isHex, parseSignature, parseTransaction, serializeTransaction, stringToHex, } from "viem";
|
|
14
|
+
import { EvmSigner, encodeToBase64, } from "@cubist-labs/cubesigner-sdk";
|
|
15
|
+
import { hashAuthorization, hexToBytes } from "viem/utils";
|
|
15
16
|
/**
|
|
16
17
|
* A class to wrap a CubeSigner key and client into a Viem {@link CustomSource}.
|
|
17
18
|
* Use Viem's `toAccount` to convert this to a Viem Account.
|
|
@@ -71,6 +72,22 @@ export class CubeSignerSource {
|
|
|
71
72
|
});
|
|
72
73
|
return ensureHex(signature);
|
|
73
74
|
};
|
|
75
|
+
this.signAuthorization = async (parameters) => {
|
|
76
|
+
const hashToSign = hashAuthorization(parameters);
|
|
77
|
+
const key = await __classPrivateFieldGet(this, _CubeSignerSource_signer, "f").key();
|
|
78
|
+
// TODO(CS-3720): use the typed endpoint once we have it
|
|
79
|
+
const resp = await key.signBlob({
|
|
80
|
+
message_base64: encodeToBase64(hexToBytes(hashToSign)),
|
|
81
|
+
});
|
|
82
|
+
const data = await __classPrivateFieldGet(this, _CubeSignerSource_signer, "f").handleMfa(resp);
|
|
83
|
+
const signature = ensureHex(data.signature);
|
|
84
|
+
return {
|
|
85
|
+
address: parameters.contractAddress ?? parameters.address,
|
|
86
|
+
nonce: parameters.nonce,
|
|
87
|
+
chainId: parameters.chainId,
|
|
88
|
+
...parseSignature(signature),
|
|
89
|
+
};
|
|
90
|
+
};
|
|
74
91
|
/**
|
|
75
92
|
* It is recommended to use `prepareTransactionRequest` on your request
|
|
76
93
|
* before calling this function.
|
|
@@ -104,6 +121,7 @@ export class CubeSignerSource {
|
|
|
104
121
|
this.signMessage = this.signMessage.bind(this);
|
|
105
122
|
this.signTransaction = this.signTransaction.bind(this);
|
|
106
123
|
this.signTypedData = this.signTypedData.bind(this);
|
|
124
|
+
this.signAuthorization = this.signAuthorization?.bind(this);
|
|
107
125
|
}
|
|
108
126
|
}
|
|
109
127
|
_CubeSignerSource_signer = new WeakMap();
|
|
@@ -126,4 +144,4 @@ function assert(value, message) {
|
|
|
126
144
|
throw new Error(message);
|
|
127
145
|
}
|
|
128
146
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUtMLFVBQVUsRUFDVix3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFdBQVcsR0FDWixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFJTCxTQUFTLEdBR1YsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCOzs7Ozs7OztPQVFHO0lBQ0gsWUFBWSxPQUFxQixFQUFFLE1BQXdCLEVBQUUsT0FBMEI7UUFmdkYsMkNBQTJDO1FBQ2xDLDJDQUFtQjtRQTBCNUI7Ozs7Ozs7O1dBUUc7UUFDSSxnQkFBVyxHQUFnQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3RFLElBQUksR0FBRyxDQUFDO1lBQ1IsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5QixHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sdUJBQUEsSUFBSSxnQ0FBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBRS9ELE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FB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QUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBZGRyZXNzLFxuICB0eXBlIEN1c3RvbVNvdXJjZSxcbiAgdHlwZSBIZXgsXG4gIHR5cGUgU2lnbmF0dXJlLFxuICBieXRlc1RvSGV4LFxuICBmb3JtYXRUcmFuc2FjdGlvblJlcXVlc3QsXG4gIGdldEFkZHJlc3MsXG4gIGlzSGV4LFxuICBwYXJzZVRyYW5zYWN0aW9uLFxuICBzZXJpYWxpemVUcmFuc2FjdGlvbixcbiAgc3RyaW5nVG9IZXgsXG59IGZyb20gXCJ2aWVtXCI7XG5pbXBvcnQge1xuICB0eXBlIEN1YmVTaWduZXJDbGllbnQsXG4gIHR5cGUgRWlwNzEyU2lnblJlcXVlc3QsXG4gIHR5cGUgRXZtU2lnblJlcXVlc3QsXG4gIEV2bVNpZ25lcixcbiAgdHlwZSBFdm1TaWduZXJPcHRpb25zLFxuICB0eXBlIEtleSxcbn0gZnJvbSBcIkBjdWJpc3QtbGFicy9jdWJlc2lnbmVyLXNka1wiO1xuXG4vKipcbiAqIEEgY2xhc3MgdG8gd3JhcCBhIEN1YmVTaWduZXIga2V5IGFuZCBjbGllbnQgaW50byBhIFZpZW0ge0BsaW5rIEN1c3RvbVNvdXJjZX0uXG4gKiBVc2UgVmllbSdzIGB0b0FjY291bnRgIHRvIGNvbnZlcnQgdGhpcyB0byBhIFZpZW0gQWNjb3VudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1YmVTaWduZXJTb3VyY2UgaW1wbGVtZW50cyBDdXN0b21Tb3VyY2Uge1xuICAvKiogVGhlIGludGVybmFsIEN1YmVTaWduZXIgc2lnbmVyIHVzZWQuICovXG4gIHJlYWRvbmx5ICNzaWduZXI6IEV2bVNpZ25lcjtcblxuICAvKiogVGhlIGFkZHJlc3MgdGhlIHdhbGxldCBpcyBhc3NvY2lhdGVkIHdpdGguICovXG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBWaWVtIHtAbGluayBDdXN0b21Tb3VyY2V9IGFyb3VuZCBhIEN1YmVTaWduZXIga2V5IGFuZCBjbGllbnQuXG4gICAqIFVzZSBWaWVtJ3MgYHRvQWNjb3VudGAgdG8gY29udmVydCB0aGlzIHRvIGEgVmllbSBBY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0gYWRkcmVzcyBUaGUgRVZNIGFkZHJlc3MgdGhpcyB3YWxsZXQgaXMgYXNzb2NpYXRlZCB3aXRoXG4gICAqIEBwYXJhbSBjbGllbnQgVGhlIHNlc3Npb24gdXNlZCBmb3Igc2lnbmluZy4gTXVzdCBoYXZlIG5lY2Vzc2FyeSBzY29wZXMuXG4gICAqIEBwYXJhbSBvcHRpb25zIE1GQSBvcHRpb25zIGZvciB0aGUgY2xpZW50IHRvIHJlc3BlY3RcbiAgICogQHRocm93cyB7RXJyb3J9IGlmIHRoZSBhZGRyZXNzIGlzIG5vdCBhIHZhbGlkIEVWTSBhZGRyZXNzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhZGRyZXNzOiBLZXkgfCBzdHJpbmcsIGNsaWVudDogQ3ViZVNpZ25lckNsaWVudCwgb3B0aW9ucz86IEV2bVNpZ25lck9wdGlvbnMpIHtcbiAgICB0aGlzLiNzaWduZXIgPSBuZXcgRXZtU2lnbmVyKGFkZHJlc3MsIGNsaWVudCwgb3B0aW9ucyk7XG5cbiAgICAvLyBOT1RFOiBgZ2V0QWRkcmVzc2Agd2lsbCBjaGVja3N1bSB0aGUgYWRkcmVzcyBhbmQgdGhyb3cgaWYgaXQncyBhbiBpbnZhbGlkIEVWTSBhZGRyZXNzLlxuICAgIHRoaXMuYWRkcmVzcyA9IGdldEFkZHJlc3ModGhpcy4jc2lnbmVyLmFkZHJlc3MpO1xuXG4gICAgLy8gU2NvcGUgdGhlc2UgZnVuY3Rpb25zIHRvIHByb3Blcmx5IHJlc29sdmUgYHRoaXNgXG4gICAgdGhpcy5zaWduTWVzc2FnZSA9IHRoaXMuc2lnbk1lc3NhZ2UuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNpZ25UcmFuc2FjdGlvbiA9IHRoaXMuc2lnblRyYW5zYWN0aW9uLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zaWduVHlwZWREYXRhID0gdGhpcy5zaWduVHlwZWREYXRhLmJpbmQodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYXJiaXRyYXJ5IG1lc3NhZ2VzLiBUaGlzIHVzZXMgQ3ViZVNpZ25lcidzIEVJUC0xOTEgc2lnbmluZyBlbmRwb2ludC5cbiAgICogVGhlIGtleSAoZm9yIHRoaXMgc2Vzc2lvbikgbXVzdCBoYXZlIHRoZSBgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCJgIG9yXG4gICAqIGBcIkFsbG93RWlwMTkxU2lnbmluZ1wiYCBwb2xpY3kgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBwYXJhbSByb290IE9iamVjdCBhcm91bmQgdGhlIG1lc3NhZ2VcbiAgICogQHBhcmFtIHJvb3QubWVzc2FnZSBUaGUgbWVzc2FnZSB0byBzaWduXG4gICAqIEByZXR1cm5zIFRoZSBzaWduYXR1cmVcbiAgICovXG4gIHB1YmxpYyBzaWduTWVzc2FnZTogQ3VzdG9tU291cmNlW1wic2lnbk1lc3NhZ2VcIl0gPSBhc3luYyAoeyBtZXNzYWdlIH0pID0+IHtcbiAgICBsZXQgaGV4O1xuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaGV4ID0gc3RyaW5nVG9IZXgobWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmIChpc0hleChtZXNzYWdlLnJhdykpIHtcbiAgICAgIGhleCA9IG1lc3NhZ2UucmF3O1xuICAgIH0gZWxzZSB7XG4gICAgICBoZXggPSBieXRlc1RvSGV4KG1lc3NhZ2UucmF3KTtcbiAgICB9XG5cbiAgICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCB0aGlzLiNzaWduZXIuc2lnbkVpcDE5MSh7IGRhdGE6IGhleCB9KTtcblxuICAgIHJldHVybiBlbnN1cmVIZXgoc2lnbmF0dXJlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2lnbnMgRUlQLTcxMiB0eXBlZCBkYXRhLiBUaGlzIHVzZXMgQ3ViZVNpZ25lcidzIEVJUC03MTIgc2lnbmluZyBlbmRwb2ludC5cbiAgICogVGhlIGtleSAoZm9yIHRoaXMgc2Vzc2lvbikgbXVzdCBoYXZlIHRoZSBgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCJgIG9yXG4gICAqIGBcIkFsbG93RWlwNzEyU2lnbmluZ1wiYCBwb2xpY3kgYXR0YWNoZWQuXG4gICAqIGBjaGFpbklkYCBtdXN0IGJlIHNwZWNpZmllZCB3aXRoaW4gdGhlIGBkb21haW5gLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1ldGVycyBUeXBlZCBkYXRhXG4gICAqIEByZXR1cm5zIHNpZ25hdHVyZSBmb3IgdGhlIHR5cGVkIGRhdGFcbiAgICovXG4gIHB1YmxpYyBzaWduVHlwZWREYXRhOiBDdXN0b21Tb3VyY2VbXCJzaWduVHlwZWREYXRhXCJdID0gYXN5bmMgKHBhcmFtZXRlcnMpID0+IHtcbiAgICBhc3NlcnQocGFyYW1ldGVycy5kb21haW4sIFwiYGRvbWFpbmAgbXVzdCBiZSBkZWZpbmVkXCIpO1xuXG4gICAgY29uc3QgY2FzdGVkUGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgYXMgRWlwNzEyU2lnblJlcXVlc3RbXCJ0eXBlZF9kYXRhXCJdO1xuICAgIGFzc2VydChjYXN0ZWRQYXJhbWV0ZXJzLmRvbWFpbi5jaGFpbklkLCBcImBkb21haW4uY2hhaW5JZGAgbXVzdCBiZSBkZWZpbmVkXCIpO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgdGhpcy4jc2lnbmVyLnNpZ25FaXA3MTIoe1xuICAgICAgY2hhaW5faWQ6IE51bWJlcihjYXN0ZWRQYXJhbWV0ZXJzLmRvbWFpbi5jaGFpbklkKSxcbiAgICAgIHR5cGVkX2RhdGE6IGNhc3RlZFBhcmFtZXRlcnMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5zdXJlSGV4KHNpZ25hdHVyZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBgcHJlcGFyZVRyYW5zYWN0aW9uUmVxdWVzdGAgb24geW91ciByZXF1ZXN0XG4gICAqIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIFNpZ24gYSB0cmFuc2FjdGlvbi4gVGhpcyBtZXRob2Qgd2lsbCBibG9jayBpZiB0aGUga2V5IHJlcXVpcmVzIE1GQSBhcHByb3ZhbC5cbiAgICogYHR5cGVgIGFuZCBgY2hhaW5JZGAgbXVzdCBiZSBkZWZpbmVkLiBPbmx5IHN1cHBvcnRzIHR5cGUgXCJsZWdhY3lcIiBvciBcImVpcDE1NTlcIi5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIFRoZSB0cmFuc2FjdGlvbiB0byBzaWduXG4gICAqIEBwYXJhbSBvcHRpb25zIENvbnRhaW5zIGFuIG9wdGlvbmFsIGN1c3RvbSBzZXJpYWxpemVyXG4gICAqIEByZXR1cm5zIFNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgdHJhbnNhY3Rpb24udHlwZSBpc24ndCBcImxlZ2FjeVwiIG9yIFwiZWlwMTU1OVwiLCBvciBpZiBcImNoYWluSWRcIiBpc24ndCBzcGVjaWZpZWRcbiAgICovXG4gIHB1YmxpYyBzaWduVHJhbnNhY3Rpb246IEN1c3RvbVNvdXJjZVtcInNpZ25UcmFuc2FjdGlvblwiXSA9IGFzeW5jICh0cmFuc2FjdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgIGFzc2VydChcbiAgICAgIHRyYW5zYWN0aW9uLnR5cGUgPT09IFwibGVnYWN5XCIgfHwgdHJhbnNhY3Rpb24udHlwZSA9PT0gXCJlaXAxNTU5XCIsXG4gICAgICBgVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZSAnJHt0cmFuc2FjdGlvbi50eXBlfScsIEN1YmVTaWduZXIgb25seSBzdXBwb3J0cyB0eXBlICdsZWdhY3knIG9yICdlaXAxNTU5J1wiKX0nYCxcbiAgICApO1xuXG4gICAgYXNzZXJ0KHRyYW5zYWN0aW9uLmNoYWluSWQsIFwiYGNoYWluSWRgIG11c3QgYmUgZGVmaW5lZFwiKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFRyYW5zYWN0aW9uUmVxdWVzdCh0cmFuc2FjdGlvbik7XG4gICAgY29uc3QgcmxwU2lnbmVkVHJhbnNhY3Rpb24gPSBhd2FpdCB0aGlzLiNzaWduZXIuc2lnblRyYW5zYWN0aW9uKHtcbiAgICAgIGNoYWluX2lkOiB0cmFuc2FjdGlvbi5jaGFpbklkLFxuICAgICAgdHg6IGZvcm1hdHRlZCBhcyBFdm1TaWduUmVxdWVzdFtcInR4XCJdLFxuICAgIH0pO1xuXG4gICAgLy8gQ3ViZVNpZ25lciByZXR1cm5zIGFuIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uLiBTaW5jZSBWaWVtIGFsbG93cyB1c2VycyB0byBwYXNzIGEgY3VzdG9tIHNlcmlhbGl6ZXIsIHdlIHdpbGxcbiAgICAvLyBub3cgdW5zZXJpYWxpemUgYW5kIHJlc2VyaWFsaXplIHdpdGggVmllbSdzIHNlcmlhbGl6ZXIuXG4gICAgY29uc3QgeyByLCBzLCB2LCB5UGFyaXR5LCAuLi5wYXJzZWRUcmFuc2FjdGlvbiB9ID0gcGFyc2VUcmFuc2FjdGlvbihcbiAgICAgIGVuc3VyZUhleChybHBTaWduZWRUcmFuc2FjdGlvbiksXG4gICAgKTtcbiAgICBjb25zdCBzZXJpYWxpemVyID0gb3B0aW9ucz8uc2VyaWFsaXplciA/PyBzZXJpYWxpemVUcmFuc2FjdGlvbjtcblxuICAgIHJldHVybiBhd2FpdCBzZXJpYWxpemVyKHBhcnNlZFRyYW5zYWN0aW9uLCB7IHIsIHMsIHYsIHlQYXJpdHkgfSBhcyBTaWduYXR1cmUpO1xuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSBpbnB1dCBBIGhleCBzdHJpbmdcbiAqIEByZXR1cm5zIHRoZSBpbnB1dCwgdHlwZSBuYXJyb3dlZCB0byBIZXhcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBpbnB1dCBpcyBub3QgSGV4XG4gKi9cbmZ1bmN0aW9uIGVuc3VyZUhleChpbnB1dDogc3RyaW5nKTogSGV4IHtcbiAgYXNzZXJ0KGlzSGV4KGlucHV0KSwgYCR7aW5wdXR9IGlzIG5vdCBoZXhgKTtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB2YWx1ZSBBIHZhbHVlIHRoYXQgaXMgZXhwZWN0ZWQgdG8gYmUgdHJ1dGh5XG4gKiBAcGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZSBpZiB0aGUgdmFsdWUgaXMgZmFsc3lcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB2YWx1ZSBpcyBub3QgdHJ1dGh5XG4gKi9cbmZ1bmN0aW9uIGFzc2VydCh2YWx1ZTogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nKTogYXNzZXJ0cyB2YWx1ZSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQU1MLFVBQVUsRUFDVix3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLEtBQUssRUFDTCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixXQUFXLEdBQ1osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBSUwsU0FBUyxFQUdULGNBQWMsR0FDZixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQjs7Ozs7Ozs7T0FRRztJQUNILFlBQVksT0FBcUIsRUFBRSxNQUF3QixFQUFFLE9BQTBCO1FBZnZGLDJDQUEyQztRQUNsQywyQ0FBbUI7UUEyQjVCOzs7Ozs7OztXQVFHO1FBQ0ksZ0JBQVcsR0FBZ0MsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUN0RSxJQUFJLEdBQUcsQ0FBQztZQUNSLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDcEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLHVCQUFBLElBQUksZ0NBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FB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aEhBLHVCQUFBLElBQUksNEJBQVcsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBQSxDQUFDO1FBRXZELHlGQUF5RjtRQUN6RixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyx1QkFBQSxJQUFJLGdDQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEQsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0F1R0Y7O0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsU0FBUyxDQUFDLEtBQWE7SUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssYUFBYSxDQUFDLENBQUM7SUFDNUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQWMsRUFBRSxPQUFlO0lBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEFkZHJlc3MsXG4gIHR5cGUgQ3VzdG9tU291cmNlLFxuICB0eXBlIEhleCxcbiAgdHlwZSBTaWduQXV0aG9yaXphdGlvblJldHVyblR5cGUsXG4gIHR5cGUgU2lnbmF0dXJlLFxuICBieXRlc1RvSGV4LFxuICBmb3JtYXRUcmFuc2FjdGlvblJlcXVlc3QsXG4gIGdldEFkZHJlc3MsXG4gIGlzSGV4LFxuICBwYXJzZVNpZ25hdHVyZSxcbiAgcGFyc2VUcmFuc2FjdGlvbixcbiAgc2VyaWFsaXplVHJhbnNhY3Rpb24sXG4gIHN0cmluZ1RvSGV4LFxufSBmcm9tIFwidmllbVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBDdWJlU2lnbmVyQ2xpZW50LFxuICB0eXBlIEVpcDcxMlNpZ25SZXF1ZXN0LFxuICB0eXBlIEV2bVNpZ25SZXF1ZXN0LFxuICBFdm1TaWduZXIsXG4gIHR5cGUgRXZtU2lnbmVyT3B0aW9ucyxcbiAgdHlwZSBLZXksXG4gIGVuY29kZVRvQmFzZTY0LFxufSBmcm9tIFwiQGN1YmlzdC1sYWJzL2N1YmVzaWduZXItc2RrXCI7XG5pbXBvcnQgeyBoYXNoQXV0aG9yaXphdGlvbiwgaGV4VG9CeXRlcyB9IGZyb20gXCJ2aWVtL3V0aWxzXCI7XG5cbi8qKlxuICogQSBjbGFzcyB0byB3cmFwIGEgQ3ViZVNpZ25lciBrZXkgYW5kIGNsaWVudCBpbnRvIGEgVmllbSB7QGxpbmsgQ3VzdG9tU291cmNlfS5cbiAqIFVzZSBWaWVtJ3MgYHRvQWNjb3VudGAgdG8gY29udmVydCB0aGlzIHRvIGEgVmllbSBBY2NvdW50LlxuICovXG5leHBvcnQgY2xhc3MgQ3ViZVNpZ25lclNvdXJjZSBpbXBsZW1lbnRzIEN1c3RvbVNvdXJjZSB7XG4gIC8qKiBUaGUgaW50ZXJuYWwgQ3ViZVNpZ25lciBzaWduZXIgdXNlZC4gKi9cbiAgcmVhZG9ubHkgI3NpZ25lcjogRXZtU2lnbmVyO1xuXG4gIC8qKiBUaGUgYWRkcmVzcyB0aGUgd2FsbGV0IGlzIGFzc29jaWF0ZWQgd2l0aC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGFkZHJlc3M6IEFkZHJlc3M7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIFZpZW0ge0BsaW5rIEN1c3RvbVNvdXJjZX0gYXJvdW5kIGEgQ3ViZVNpZ25lciBrZXkgYW5kIGNsaWVudC5cbiAgICogVXNlIFZpZW0ncyBgdG9BY2NvdW50YCB0byBjb252ZXJ0IHRoaXMgdG8gYSBWaWVtIEFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyZXNzIFRoZSBFVk0gYWRkcmVzcyB0aGlzIHdhbGxldCBpcyBhc3NvY2lhdGVkIHdpdGhcbiAgICogQHBhcmFtIGNsaWVudCBUaGUgc2Vzc2lvbiB1c2VkIGZvciBzaWduaW5nLiBNdXN0IGhhdmUgbmVjZXNzYXJ5IHNjb3Blcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgTUZBIG9wdGlvbnMgZm9yIHRoZSBjbGllbnQgdG8gcmVzcGVjdFxuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlIGFkZHJlc3MgaXMgbm90IGEgdmFsaWQgRVZNIGFkZHJlc3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKGFkZHJlc3M6IEtleSB8IHN0cmluZywgY2xpZW50OiBDdWJlU2lnbmVyQ2xpZW50LCBvcHRpb25zPzogRXZtU2lnbmVyT3B0aW9ucykge1xuICAgIHRoaXMuI3NpZ25lciA9IG5ldyBFdm1TaWduZXIoYWRkcmVzcywgY2xpZW50LCBvcHRpb25zKTtcblxuICAgIC8vIE5PVEU6IGBnZXRBZGRyZXNzYCB3aWxsIGNoZWNrc3VtIHRoZSBhZGRyZXNzIGFuZCB0aHJvdyBpZiBpdCdzIGFuIGludmFsaWQgRVZNIGFkZHJlc3MuXG4gICAgdGhpcy5hZGRyZXNzID0gZ2V0QWRkcmVzcyh0aGlzLiNzaWduZXIuYWRkcmVzcyk7XG5cbiAgICAvLyBTY29wZSB0aGVzZSBmdW5jdGlvbnMgdG8gcHJvcGVybHkgcmVzb2x2ZSBgdGhpc2BcbiAgICB0aGlzLnNpZ25NZXNzYWdlID0gdGhpcy5zaWduTWVzc2FnZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2lnblRyYW5zYWN0aW9uID0gdGhpcy5zaWduVHJhbnNhY3Rpb24uYmluZCh0aGlzKTtcbiAgICB0aGlzLnNpZ25UeXBlZERhdGEgPSB0aGlzLnNpZ25UeXBlZERhdGEuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNpZ25BdXRob3JpemF0aW9uID0gdGhpcy5zaWduQXV0aG9yaXphdGlvbj8uYmluZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBhcmJpdHJhcnkgbWVzc2FnZXMuIFRoaXMgdXNlcyBDdWJlU2lnbmVyJ3MgRUlQLTE5MSBzaWduaW5nIGVuZHBvaW50LlxuICAgKiBUaGUga2V5IChmb3IgdGhpcyBzZXNzaW9uKSBtdXN0IGhhdmUgdGhlIGBcIkFsbG93UmF3QmxvYlNpZ25pbmdcImAgb3JcbiAgICogYFwiQWxsb3dFaXAxOTFTaWduaW5nXCJgIHBvbGljeSBhdHRhY2hlZC5cbiAgICpcbiAgICogQHBhcmFtIHJvb3QgT2JqZWN0IGFyb3VuZCB0aGUgbWVzc2FnZVxuICAgKiBAcGFyYW0gcm9vdC5tZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHNpZ25cbiAgICogQHJldHVybnMgVGhlIHNpZ25hdHVyZVxuICAgKi9cbiAgcHVibGljIHNpZ25NZXNzYWdlOiBDdXN0b21Tb3VyY2VbXCJzaWduTWVzc2FnZVwiXSA9IGFzeW5jICh7IG1lc3NhZ2UgfSkgPT4ge1xuICAgIGxldCBoZXg7XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBoZXggPSBzdHJpbmdUb0hleChtZXNzYWdlKTtcbiAgICB9IGVsc2UgaWYgKGlzSGV4KG1lc3NhZ2UucmF3KSkge1xuICAgICAgaGV4ID0gbWVzc2FnZS5yYXc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhleCA9IGJ5dGVzVG9IZXgobWVzc2FnZS5yYXcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuI3NpZ25lci5zaWduRWlwMTkxKHsgZGF0YTogaGV4IH0pO1xuXG4gICAgcmV0dXJuIGVuc3VyZUhleChzaWduYXR1cmUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTaWducyBFSVAtNzEyIHR5cGVkIGRhdGEuIFRoaXMgdXNlcyBDdWJlU2lnbmVyJ3MgRUlQLTcxMiBzaWduaW5nIGVuZHBvaW50LlxuICAgKiBUaGUga2V5IChmb3IgdGhpcyBzZXNzaW9uKSBtdXN0IGhhdmUgdGhlIGBcIkFsbG93UmF3QmxvYlNpZ25pbmdcImAgb3JcbiAgICogYFwiQWxsb3dFaXA3MTJTaWduaW5nXCJgIHBvbGljeSBhdHRhY2hlZC5cbiAgICogYGNoYWluSWRgIG11c3QgYmUgc3BlY2lmaWVkIHdpdGhpbiB0aGUgYGRvbWFpbmAuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFR5cGVkIGRhdGFcbiAgICogQHJldHVybnMgc2lnbmF0dXJlIGZvciB0aGUgdHlwZWQgZGF0YVxuICAgKi9cbiAgcHVibGljIHNpZ25UeXBlZERhdGE6IEN1c3RvbVNvdXJjZVtcInNpZ25UeXBlZERhdGFcIl0gPSBhc3luYyAocGFyYW1ldGVycykgPT4ge1xuICAgIGFzc2VydChwYXJhbWV0ZXJzLmRvbWFpbiwgXCJgZG9tYWluYCBtdXN0IGJlIGRlZmluZWRcIik7XG5cbiAgICBjb25zdCBjYXN0ZWRQYXJhbWV0ZXJzID0gcGFyYW1ldGVycyBhcyBFaXA3MTJTaWduUmVxdWVzdFtcInR5cGVkX2RhdGFcIl07XG4gICAgYXNzZXJ0KGNhc3RlZFBhcmFtZXRlcnMuZG9tYWluLmNoYWluSWQsIFwiYGRvbWFpbi5jaGFpbklkYCBtdXN0IGJlIGRlZmluZWRcIik7XG5cbiAgICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCB0aGlzLiNzaWduZXIuc2lnbkVpcDcxMih7XG4gICAgICBjaGFpbl9pZDogTnVtYmVyKGNhc3RlZFBhcmFtZXRlcnMuZG9tYWluLmNoYWluSWQpLFxuICAgICAgdHlwZWRfZGF0YTogY2FzdGVkUGFyYW1ldGVycyxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbnN1cmVIZXgoc2lnbmF0dXJlKTtcbiAgfTtcblxuICBwdWJsaWMgc2lnbkF1dGhvcml6YXRpb246IEN1c3RvbVNvdXJjZVtcInNpZ25BdXRob3JpemF0aW9uXCJdID0gYXN5bmMgKFxuICAgIHBhcmFtZXRlcnMsXG4gICk6IFByb21pc2U8U2lnbkF1dGhvcml6YXRpb25SZXR1cm5UeXBlPiA9PiB7XG4gICAgY29uc3QgaGFzaFRvU2lnbiA9IGhhc2hBdXRob3JpemF0aW9uKHBhcmFtZXRlcnMpO1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuI3NpZ25lci5rZXkoKTtcbiAgICAvLyBUT0RPKENTLTM3MjApOiB1c2UgdGhlIHR5cGVkIGVuZHBvaW50IG9uY2Ugd2UgaGF2ZSBpdFxuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBrZXkuc2lnbkJsb2Ioe1xuICAgICAgbWVzc2FnZV9iYXNlNjQ6IGVuY29kZVRvQmFzZTY0KGhleFRvQnl0ZXMoaGFzaFRvU2lnbikpLFxuICAgIH0pO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLiNzaWduZXIuaGFuZGxlTWZhKHJlc3ApO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGVuc3VyZUhleChkYXRhLnNpZ25hdHVyZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3M6IHBhcmFtZXRlcnMuY29udHJhY3RBZGRyZXNzID8/IHBhcmFtZXRlcnMuYWRkcmVzcyxcbiAgICAgIG5vbmNlOiBwYXJhbWV0ZXJzLm5vbmNlLFxuICAgICAgY2hhaW5JZDogcGFyYW1ldGVycy5jaGFpbklkLFxuICAgICAgLi4ucGFyc2VTaWduYXR1cmUoc2lnbmF0dXJlKSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgYHByZXBhcmVUcmFuc2FjdGlvblJlcXVlc3RgIG9uIHlvdXIgcmVxdWVzdFxuICAgKiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBTaWduIGEgdHJhbnNhY3Rpb24uIFRoaXMgbWV0aG9kIHdpbGwgYmxvY2sgaWYgdGhlIGtleSByZXF1aXJlcyBNRkEgYXBwcm92YWwuXG4gICAqIGB0eXBlYCBhbmQgYGNoYWluSWRgIG11c3QgYmUgZGVmaW5lZC4gT25seSBzdXBwb3J0cyB0eXBlIFwibGVnYWN5XCIgb3IgXCJlaXAxNTU5XCIuXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUaGUgdHJhbnNhY3Rpb24gdG8gc2lnblxuICAgKiBAcGFyYW0gb3B0aW9ucyBDb250YWlucyBhbiBvcHRpb25hbCBjdXN0b20gc2VyaWFsaXplclxuICAgKiBAcmV0dXJucyBTaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHRocm93cyB7RXJyb3J9IGlmIHRyYW5zYWN0aW9uLnR5cGUgaXNuJ3QgXCJsZWdhY3lcIiBvciBcImVpcDE1NTlcIiwgb3IgaWYgXCJjaGFpbklkXCIgaXNuJ3Qgc3BlY2lmaWVkXG4gICAqL1xuICBwdWJsaWMgc2lnblRyYW5zYWN0aW9uOiBDdXN0b21Tb3VyY2VbXCJzaWduVHJhbnNhY3Rpb25cIl0gPSBhc3luYyAodHJhbnNhY3Rpb24sIG9wdGlvbnMpID0+IHtcbiAgICBhc3NlcnQoXG4gICAgICB0cmFuc2FjdGlvbi50eXBlID09PSBcImxlZ2FjeVwiIHx8IHRyYW5zYWN0aW9uLnR5cGUgPT09IFwiZWlwMTU1OVwiLFxuICAgICAgYFVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUgJyR7dHJhbnNhY3Rpb24udHlwZX0nLCBDdWJlU2lnbmVyIG9ubHkgc3VwcG9ydHMgdHlwZSAnbGVnYWN5JyBvciAnZWlwMTU1OSdcIil9J2AsXG4gICAgKTtcblxuICAgIGFzc2VydCh0cmFuc2FjdGlvbi5jaGFpbklkLCBcImBjaGFpbklkYCBtdXN0IGJlIGRlZmluZWRcIik7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmFuc2FjdGlvblJlcXVlc3QodHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHJscFNpZ25lZFRyYW5zYWN0aW9uID0gYXdhaXQgdGhpcy4jc2lnbmVyLnNpZ25UcmFuc2FjdGlvbih7XG4gICAgICBjaGFpbl9pZDogdHJhbnNhY3Rpb24uY2hhaW5JZCxcbiAgICAgIHR4OiBmb3JtYXR0ZWQgYXMgRXZtU2lnblJlcXVlc3RbXCJ0eFwiXSxcbiAgICB9KTtcblxuICAgIC8vIEN1YmVTaWduZXIgcmV0dXJucyBhbiBSTFAtZW5jb2RlZCB0cmFuc2FjdGlvbi4gU2luY2UgVmllbSBhbGxvd3MgdXNlcnMgdG8gcGFzcyBhIGN1c3RvbSBzZXJpYWxpemVyLCB3ZSB3aWxsXG4gICAgLy8gbm93IHVuc2VyaWFsaXplIGFuZCByZXNlcmlhbGl6ZSB3aXRoIFZpZW0ncyBzZXJpYWxpemVyLlxuICAgIGNvbnN0IHsgciwgcywgdiwgeVBhcml0eSwgLi4ucGFyc2VkVHJhbnNhY3Rpb24gfSA9IHBhcnNlVHJhbnNhY3Rpb24oXG4gICAgICBlbnN1cmVIZXgocmxwU2lnbmVkVHJhbnNhY3Rpb24pLFxuICAgICk7XG4gICAgY29uc3Qgc2VyaWFsaXplciA9IG9wdGlvbnM/LnNlcmlhbGl6ZXIgPz8gc2VyaWFsaXplVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4gYXdhaXQgc2VyaWFsaXplcihwYXJzZWRUcmFuc2FjdGlvbiwgeyByLCBzLCB2LCB5UGFyaXR5IH0gYXMgU2lnbmF0dXJlKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gaW5wdXQgQSBoZXggc3RyaW5nXG4gKiBAcmV0dXJucyB0aGUgaW5wdXQsIHR5cGUgbmFycm93ZWQgdG8gSGV4XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgaW5wdXQgaXMgbm90IEhleFxuICovXG5mdW5jdGlvbiBlbnN1cmVIZXgoaW5wdXQ6IHN0cmluZyk6IEhleCB7XG4gIGFzc2VydChpc0hleChpbnB1dCksIGAke2lucHV0fSBpcyBub3QgaGV4YCk7XG4gIHJldHVybiBpbnB1dDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gdmFsdWUgQSB2YWx1ZSB0aGF0IGlzIGV4cGVjdGVkIHRvIGJlIHRydXRoeVxuICogQHBhcmFtIG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGZhbHN5XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdmFsdWUgaXMgbm90IHRydXRoeVxuICovXG5mdW5jdGlvbiBhc3NlcnQodmFsdWU6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZyk6IGFzc2VydHMgdmFsdWUge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
|
|
6
6
|
"directory": "packages/viem"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.4.
|
|
8
|
+
"version": "0.4.214",
|
|
9
9
|
"type": "module",
|
|
10
10
|
"description": "Viem CustomSource implementation",
|
|
11
11
|
"license": "MIT OR Apache-2.0",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"test": "test"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@cubist-labs/cubesigner-sdk": "^0.4.
|
|
32
|
+
"@cubist-labs/cubesigner-sdk": "^0.4.214",
|
|
33
33
|
"viem": "^2.38.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@cubist-labs/cubesigner-sdk-fs-storage": "^0.4.
|
|
36
|
+
"@cubist-labs/cubesigner-sdk-fs-storage": "^0.4.214"
|
|
37
37
|
}
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -2,11 +2,13 @@ import {
|
|
|
2
2
|
type Address,
|
|
3
3
|
type CustomSource,
|
|
4
4
|
type Hex,
|
|
5
|
+
type SignAuthorizationReturnType,
|
|
5
6
|
type Signature,
|
|
6
7
|
bytesToHex,
|
|
7
8
|
formatTransactionRequest,
|
|
8
9
|
getAddress,
|
|
9
10
|
isHex,
|
|
11
|
+
parseSignature,
|
|
10
12
|
parseTransaction,
|
|
11
13
|
serializeTransaction,
|
|
12
14
|
stringToHex,
|
|
@@ -18,7 +20,9 @@ import {
|
|
|
18
20
|
EvmSigner,
|
|
19
21
|
type EvmSignerOptions,
|
|
20
22
|
type Key,
|
|
23
|
+
encodeToBase64,
|
|
21
24
|
} from "@cubist-labs/cubesigner-sdk";
|
|
25
|
+
import { hashAuthorization, hexToBytes } from "viem/utils";
|
|
22
26
|
|
|
23
27
|
/**
|
|
24
28
|
* A class to wrap a CubeSigner key and client into a Viem {@link CustomSource}.
|
|
@@ -50,6 +54,7 @@ export class CubeSignerSource implements CustomSource {
|
|
|
50
54
|
this.signMessage = this.signMessage.bind(this);
|
|
51
55
|
this.signTransaction = this.signTransaction.bind(this);
|
|
52
56
|
this.signTypedData = this.signTypedData.bind(this);
|
|
57
|
+
this.signAuthorization = this.signAuthorization?.bind(this);
|
|
53
58
|
}
|
|
54
59
|
|
|
55
60
|
/**
|
|
@@ -99,6 +104,25 @@ export class CubeSignerSource implements CustomSource {
|
|
|
99
104
|
return ensureHex(signature);
|
|
100
105
|
};
|
|
101
106
|
|
|
107
|
+
public signAuthorization: CustomSource["signAuthorization"] = async (
|
|
108
|
+
parameters,
|
|
109
|
+
): Promise<SignAuthorizationReturnType> => {
|
|
110
|
+
const hashToSign = hashAuthorization(parameters);
|
|
111
|
+
const key = await this.#signer.key();
|
|
112
|
+
// TODO(CS-3720): use the typed endpoint once we have it
|
|
113
|
+
const resp = await key.signBlob({
|
|
114
|
+
message_base64: encodeToBase64(hexToBytes(hashToSign)),
|
|
115
|
+
});
|
|
116
|
+
const data = await this.#signer.handleMfa(resp);
|
|
117
|
+
const signature = ensureHex(data.signature);
|
|
118
|
+
return {
|
|
119
|
+
address: parameters.contractAddress ?? parameters.address,
|
|
120
|
+
nonce: parameters.nonce,
|
|
121
|
+
chainId: parameters.chainId,
|
|
122
|
+
...parseSignature(signature),
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
|
|
102
126
|
/**
|
|
103
127
|
* It is recommended to use `prepareTransactionRequest` on your request
|
|
104
128
|
* before calling this function.
|