@bitgo-beta/sdk-coin-starknet 0.0.1-beta.13 → 0.0.1-beta.131
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/src/lib/constants.d.ts +6 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +16 -2
- package/dist/src/lib/iface.d.ts +34 -0
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- package/dist/src/lib/transaction.d.ts +5 -1
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +92 -13
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +3 -9
- package/dist/src/lib/transactionBuilderFactory.d.ts +4 -1
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +20 -4
- package/dist/src/lib/udcDeployBuilder.d.ts +30 -0
- package/dist/src/lib/udcDeployBuilder.d.ts.map +1 -0
- package/dist/src/lib/udcDeployBuilder.js +117 -0
- package/dist/src/lib/utils.d.ts +12 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +76 -1
- package/dist/src/lib/walletInitializationBuilder.d.ts +26 -0
- package/dist/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/src/lib/walletInitializationBuilder.js +117 -0
- package/dist/src/starknet.d.ts +8 -1
- package/dist/src/starknet.d.ts.map +1 -1
- package/dist/src/starknet.js +17 -3
- package/dist/test/unit/starknet.js +42 -1
- package/dist/test/unit/transaction.js +28 -3
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +7 -1
- package/dist/test/unit/transferBuilder.js +26 -5
- package/dist/test/unit/udcDeployBuilder.d.ts +2 -0
- package/dist/test/unit/udcDeployBuilder.d.ts.map +1 -0
- package/dist/test/unit/udcDeployBuilder.js +182 -0
- package/dist/test/unit/utils.d.ts +1 -1
- package/dist/test/unit/utils.d.ts.map +1 -1
- package/dist/test/unit/utils.js +94 -2
- package/dist/test/unit/walletInitializationBuilder.d.ts +2 -0
- package/dist/test/unit/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/test/unit/walletInitializationBuilder.js +123 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WalletInitializationBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
9
|
+
const iface_1 = require("./iface");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
12
|
+
/**
|
|
13
|
+
* Builds DEPLOY_ACCOUNT v3 transactions for counterfactual EthAccount activation.
|
|
14
|
+
*/
|
|
15
|
+
class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
16
|
+
constructor(_coinConfig) {
|
|
17
|
+
super(_coinConfig);
|
|
18
|
+
this._classHash = constants_1.OZ_ETH_ACCOUNT_CLASS_HASH;
|
|
19
|
+
}
|
|
20
|
+
get transactionType() {
|
|
21
|
+
return iface_1.StarknetTransactionType.DEPLOY_ACCOUNT;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Set deploy parameters from a secp256k1 public key (compressed or uncompressed).
|
|
25
|
+
* Derives counterfactual address, constructor calldata, and salt.
|
|
26
|
+
*/
|
|
27
|
+
fromPublicKey(pubKey) {
|
|
28
|
+
if (!utils_1.default.isValidPublicKey(pubKey)) {
|
|
29
|
+
throw new sdk_core_1.BuildTransactionError('Invalid pubKey, got: ' + pubKey);
|
|
30
|
+
}
|
|
31
|
+
const fullPublicKey = utils_1.default.getUncompressedPublicKey(pubKey);
|
|
32
|
+
const { address, constructorCalldata, salt } = utils_1.default.computeStarknetAddress(fullPublicKey);
|
|
33
|
+
this._constructorCalldata = constructorCalldata;
|
|
34
|
+
this._contractAddressSalt = salt;
|
|
35
|
+
return this.sender(address, pubKey);
|
|
36
|
+
}
|
|
37
|
+
classHash(classHash) {
|
|
38
|
+
if (!classHash || !utils_1.default.isValidAddress(classHash)) {
|
|
39
|
+
throw new sdk_core_1.BuildTransactionError('Invalid class hash, got: ' + classHash);
|
|
40
|
+
}
|
|
41
|
+
this._classHash = classHash;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
/** @inheritdoc */
|
|
45
|
+
initBuilder(tx) {
|
|
46
|
+
super.initBuilder(tx);
|
|
47
|
+
const data = tx.starknetTransactionData;
|
|
48
|
+
if (data.classHash) {
|
|
49
|
+
this._classHash = data.classHash;
|
|
50
|
+
}
|
|
51
|
+
if (data.constructorCalldata) {
|
|
52
|
+
this._constructorCalldata = data.constructorCalldata;
|
|
53
|
+
}
|
|
54
|
+
if (data.contractAddressSalt) {
|
|
55
|
+
this._contractAddressSalt = data.contractAddressSalt;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** @inheritdoc */
|
|
59
|
+
async buildImplementation() {
|
|
60
|
+
this.ensureDeployFields();
|
|
61
|
+
const contractAddress = this._sender;
|
|
62
|
+
const chainId = this._chainId;
|
|
63
|
+
const nonce = this._nonce;
|
|
64
|
+
const constructorCalldata = this._constructorCalldata;
|
|
65
|
+
const contractAddressSalt = this._contractAddressSalt;
|
|
66
|
+
const transactionHash = utils_1.default.calculateDeployAccountTransactionHash({
|
|
67
|
+
contractAddress,
|
|
68
|
+
classHash: this._classHash,
|
|
69
|
+
constructorCalldata,
|
|
70
|
+
contractAddressSalt,
|
|
71
|
+
chainId,
|
|
72
|
+
nonce,
|
|
73
|
+
resourceBounds: this._resourceBounds,
|
|
74
|
+
tip: this._tip,
|
|
75
|
+
});
|
|
76
|
+
const data = {
|
|
77
|
+
senderAddress: contractAddress,
|
|
78
|
+
contractAddress,
|
|
79
|
+
calls: [],
|
|
80
|
+
nonce,
|
|
81
|
+
chainId,
|
|
82
|
+
transactionType: iface_1.StarknetTransactionType.DEPLOY_ACCOUNT,
|
|
83
|
+
resourceBounds: this._resourceBounds,
|
|
84
|
+
tip: this._tip,
|
|
85
|
+
transactionHash,
|
|
86
|
+
classHash: this._classHash,
|
|
87
|
+
constructorCalldata,
|
|
88
|
+
contractAddressSalt,
|
|
89
|
+
};
|
|
90
|
+
this._transaction.starknetTransactionData = data;
|
|
91
|
+
return this._transaction;
|
|
92
|
+
}
|
|
93
|
+
ensureDeployFields() {
|
|
94
|
+
if (!this._sender) {
|
|
95
|
+
throw new sdk_core_1.BuildTransactionError('Sender (counterfactual address) is required');
|
|
96
|
+
}
|
|
97
|
+
if (this._publicKey && (!this._constructorCalldata || !this._contractAddressSalt)) {
|
|
98
|
+
this.fromPublicKey(this._publicKey);
|
|
99
|
+
}
|
|
100
|
+
if (!this._constructorCalldata || !this._contractAddressSalt) {
|
|
101
|
+
throw new sdk_core_1.BuildTransactionError('Deploy account requires public key (fromPublicKey) or explicit constructor calldata and salt');
|
|
102
|
+
}
|
|
103
|
+
const fullPublicKey = this._publicKey ? utils_1.default.getUncompressedPublicKey(this._publicKey) : undefined;
|
|
104
|
+
if (fullPublicKey) {
|
|
105
|
+
const derived = utils_1.default.computeStarknetAddress(fullPublicKey);
|
|
106
|
+
if (utils_1.default.normalizeAddress(derived.address) !== utils_1.default.normalizeAddress(this._sender)) {
|
|
107
|
+
throw new sdk_core_1.BuildTransactionError(`Address does not match public key. Expected ${derived.address}, got ${this._sender}`);
|
|
108
|
+
}
|
|
109
|
+
if (derived.constructorCalldata.join(',') !== this._constructorCalldata.join(',') ||
|
|
110
|
+
derived.salt !== this._contractAddressSalt) {
|
|
111
|
+
throw new sdk_core_1.BuildTransactionError('Constructor calldata or salt does not match public key');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.WalletInitializationBuilder = WalletInitializationBuilder;
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZEO0FBRTdELDZEQUEwRDtBQUUxRCxtQ0FBMkU7QUFDM0UsMkNBQXdEO0FBQ3hELG9EQUE0QjtBQUU1Qjs7R0FFRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBS2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTFgsZUFBVSxHQUFXLHFDQUF5QixDQUFDO0lBTXpELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywrQkFBdUIsQ0FBQyxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLGVBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxHQUFHLGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7UUFDaEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxTQUFTLENBQUMsU0FBaUI7UUFDaEMsSUFBSSxDQUFDLFNBQVMs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cUIsQ0FDN0IsOEZBQThGLENBQy9GLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzVELElBQUksZUFBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JGLE1BQU0sSUFBSSxnQ0FBcUIsQ0FDN0IsK0NBQStDLE9BQU8sQ0FBQyxPQUFPLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUN0RixDQUFDO1lBQ0osQ0FBQztZQUNELElBQ0UsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDN0UsT0FBTyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQzFDLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDNUYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2SEQsa0VBdUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLCBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBCdWlsZHMgREVQTE9ZX0FDQ09VTlQgdjMgdHJhbnNhY3Rpb25zIGZvciBjb3VudGVyZmFjdHVhbCBFdGhBY2NvdW50IGFjdGl2YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2NsYXNzSGFzaDogc3RyaW5nID0gT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSDtcbiAgcHJvdGVjdGVkIF9jb25zdHJ1Y3RvckNhbGxkYXRhPzogc3RyaW5nW107XG4gIHByb3RlY3RlZCBfY29udHJhY3RBZGRyZXNzU2FsdD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLkRFUExPWV9BQ0NPVU5UO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkZXBsb3kgcGFyYW1ldGVycyBmcm9tIGEgc2VjcDI1NmsxIHB1YmxpYyBrZXkgKGNvbXByZXNzZWQgb3IgdW5jb21wcmVzc2VkKS5cbiAgICogRGVyaXZlcyBjb3VudGVyZmFjdHVhbCBhZGRyZXNzLCBjb25zdHJ1Y3RvciBjYWxsZGF0YSwgYW5kIHNhbHQuXG4gICAqL1xuICBwdWJsaWMgZnJvbVB1YmxpY0tleShwdWJLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWJLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHB1YktleSwgZ290OiAnICsgcHViS2V5KTtcbiAgICB9XG4gICAgY29uc3QgZnVsbFB1YmxpY0tleSA9IHV0aWxzLmdldFVuY29tcHJlc3NlZFB1YmxpY0tleShwdWJLZXkpO1xuICAgIGNvbnN0IHsgYWRkcmVzcywgY29uc3RydWN0b3JDYWxsZGF0YSwgc2FsdCB9ID0gdXRpbHMuY29tcHV0ZVN0YXJrbmV0QWRkcmVzcyhmdWxsUHVibGljS2V5KTtcbiAgICB0aGlzLl9jb25zdHJ1Y3RvckNhbGxkYXRhID0gY29uc3RydWN0b3JDYWxsZGF0YTtcbiAgICB0aGlzLl9jb250cmFjdEFkZHJlc3NTYWx0ID0gc2FsdDtcbiAgICByZXR1cm4gdGhpcy5zZW5kZXIoYWRkcmVzcywgcHViS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGFzc0hhc2goY2xhc3NIYXNoOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWNsYXNzSGFzaCB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoY2xhc3NIYXNoKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBjbGFzcyBoYXNoLCBnb3Q6ICcgKyBjbGFzc0hhc2gpO1xuICAgIH1cbiAgICB0aGlzLl9jbGFzc0hhc2ggPSBjbGFzc0hhc2g7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcbiAgICBpZiAoZGF0YS5jbGFzc0hhc2gpIHtcbiAgICAgIHRoaXMuX2NsYXNzSGFzaCA9IGRhdGEuY2xhc3NIYXNoO1xuICAgIH1cbiAgICBpZiAoZGF0YS5jb25zdHJ1Y3RvckNhbGxkYXRhKSB7XG4gICAgICB0aGlzLl9jb25zdHJ1Y3RvckNhbGxkYXRhID0gZGF0YS5jb25zdHJ1Y3RvckNhbGxkYXRhO1xuICAgIH1cbiAgICBpZiAoZGF0YS5jb250cmFjdEFkZHJlc3NTYWx0KSB7XG4gICAgICB0aGlzLl9jb250cmFjdEFkZHJlc3NTYWx0ID0gZGF0YS5jb250cmFjdEFkZHJlc3NTYWx0O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5lbnN1cmVEZXBsb3lGaWVsZHMoKTtcblxuICAgIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9IHRoaXMuX3NlbmRlciBhcyBzdHJpbmc7XG4gICAgY29uc3QgY2hhaW5JZCA9IHRoaXMuX2NoYWluSWQgYXMgc3RyaW5nO1xuICAgIGNvbnN0IG5vbmNlID0gdGhpcy5fbm9uY2UgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yQ2FsbGRhdGEgPSB0aGlzLl9jb25zdHJ1Y3RvckNhbGxkYXRhIGFzIHN0cmluZ1tdO1xuICAgIGNvbnN0IGNvbnRyYWN0QWRkcmVzc1NhbHQgPSB0aGlzLl9jb250cmFjdEFkZHJlc3NTYWx0IGFzIHN0cmluZztcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uSGFzaCA9IHV0aWxzLmNhbGN1bGF0ZURlcGxveUFjY291bnRUcmFuc2FjdGlvbkhhc2goe1xuICAgICAgY29udHJhY3RBZGRyZXNzLFxuICAgICAgY2xhc3NIYXNoOiB0aGlzLl9jbGFzc0hhc2gsXG4gICAgICBjb25zdHJ1Y3RvckNhbGxkYXRhLFxuICAgICAgY29udHJhY3RBZGRyZXNzU2FsdCxcbiAgICAgIGNoYWluSWQsXG4gICAgICBub25jZSxcbiAgICAgIHJlc291cmNlQm91bmRzOiB0aGlzLl9yZXNvdXJjZUJvdW5kcyxcbiAgICAgIHRpcDogdGhpcy5fdGlwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YTogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICBzZW5kZXJBZGRyZXNzOiBjb250cmFjdEFkZHJlc3MsXG4gICAgICBjb250cmFjdEFkZHJlc3MsXG4gICAgICBjYWxsczogW10sXG4gICAgICBub25jZSxcbiAgICAgIGNoYWluSWQsXG4gICAgICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLkRFUExPWV9BQ0NPVU5ULFxuICAgICAgcmVzb3VyY2VCb3VuZHM6IHRoaXMuX3Jlc291cmNlQm91bmRzLFxuICAgICAgdGlwOiB0aGlzLl90aXAsXG4gICAgICB0cmFuc2FjdGlvbkhhc2gsXG4gICAgICBjbGFzc0hhc2g6IHRoaXMuX2NsYXNzSGFzaCxcbiAgICAgIGNvbnN0cnVjdG9yQ2FsbGRhdGEsXG4gICAgICBjb250cmFjdEFkZHJlc3NTYWx0LFxuICAgIH07XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zdGFya25ldFRyYW5zYWN0aW9uRGF0YSA9IGRhdGE7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVEZXBsb3lGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zZW5kZXIpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciAoY291bnRlcmZhY3R1YWwgYWRkcmVzcykgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3B1YmxpY0tleSAmJiAoIXRoaXMuX2NvbnN0cnVjdG9yQ2FsbGRhdGEgfHwgIXRoaXMuX2NvbnRyYWN0QWRkcmVzc1NhbHQpKSB7XG4gICAgICB0aGlzLmZyb21QdWJsaWNLZXkodGhpcy5fcHVibGljS2V5KTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9jb25zdHJ1Y3RvckNhbGxkYXRhIHx8ICF0aGlzLl9jb250cmFjdEFkZHJlc3NTYWx0KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAnRGVwbG95IGFjY291bnQgcmVxdWlyZXMgcHVibGljIGtleSAoZnJvbVB1YmxpY0tleSkgb3IgZXhwbGljaXQgY29uc3RydWN0b3IgY2FsbGRhdGEgYW5kIHNhbHQnXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBmdWxsUHVibGljS2V5ID0gdGhpcy5fcHVibGljS2V5ID8gdXRpbHMuZ2V0VW5jb21wcmVzc2VkUHVibGljS2V5KHRoaXMuX3B1YmxpY0tleSkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGZ1bGxQdWJsaWNLZXkpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB1dGlscy5jb21wdXRlU3RhcmtuZXRBZGRyZXNzKGZ1bGxQdWJsaWNLZXkpO1xuICAgICAgaWYgKHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MoZGVyaXZlZC5hZGRyZXNzKSAhPT0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyh0aGlzLl9zZW5kZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggcHVibGljIGtleS4gRXhwZWN0ZWQgJHtkZXJpdmVkLmFkZHJlc3N9LCBnb3QgJHt0aGlzLl9zZW5kZXJ9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBkZXJpdmVkLmNvbnN0cnVjdG9yQ2FsbGRhdGEuam9pbignLCcpICE9PSB0aGlzLl9jb25zdHJ1Y3RvckNhbGxkYXRhLmpvaW4oJywnKSB8fFxuICAgICAgICBkZXJpdmVkLnNhbHQgIT09IHRoaXMuX2NvbnRyYWN0QWRkcmVzc1NhbHRcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdDb25zdHJ1Y3RvciBjYWxsZGF0YSBvciBzYWx0IGRvZXMgbm90IG1hdGNoIHB1YmxpYyBrZXknKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/starknet.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, KeyPair, MPCAlgorithm, MultisigType, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
|
|
1
|
+
import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, KeyPair, MPCAlgorithm, MultisigType, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyTransactionOptions, SignableTransaction } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
3
3
|
import { Hash } from 'crypto';
|
|
4
4
|
import { StarknetTransactionExplanation, TransactionHexParams, TssVerifyStarknetAddressOptions } from './lib/iface';
|
|
@@ -15,6 +15,11 @@ export declare class Starknet extends BaseCoin {
|
|
|
15
15
|
verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
|
|
16
16
|
isWalletAddress(params: TssVerifyStarknetAddressOptions): Promise<boolean>;
|
|
17
17
|
parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
|
|
18
|
+
/**
|
|
19
|
+
* Returns true because Starknet's signableHex is already the final 32-byte hash.
|
|
20
|
+
* This prevents ecdsaMPCv2 from hashing the payload a second time.
|
|
21
|
+
*/
|
|
22
|
+
isSignablePreHashed(unsignedTx: SignableTransaction): boolean;
|
|
18
23
|
generateKeyPair(seed?: Buffer): KeyPair;
|
|
19
24
|
isValidAddress(address: string): boolean;
|
|
20
25
|
signTransaction(_params: SignTransactionOptions): Promise<SignedTransaction>;
|
|
@@ -25,6 +30,8 @@ export declare class Starknet extends BaseCoin {
|
|
|
25
30
|
/** inherited doc */
|
|
26
31
|
getDefaultMultisigType(): MultisigType;
|
|
27
32
|
/** @inheritDoc */
|
|
33
|
+
requiresWalletInitializationTransaction(): boolean;
|
|
34
|
+
/** @inheritDoc */
|
|
28
35
|
getMPCAlgorithm(): MPCAlgorithm;
|
|
29
36
|
/** @inheritDoc **/
|
|
30
37
|
getHashFunction(): Hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../src/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EAET,OAAO,EAEP,YAAY,EACZ,YAAY,EAEZ,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../src/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EAET,OAAO,EAEP,YAAY,EACZ,YAAY,EAEZ,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAS,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAc,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAKpH,qBAAa,QAAS,SAAQ,QAAQ;IACpC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAIjB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAOzF,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmCrE,eAAe,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1E,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInF;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;IAItD,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKlC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIlF,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,kBAAkB;IAClB,uCAAuC,IAAI,OAAO;IAIlD,kBAAkB;IAClB,eAAe,IAAI,YAAY;IAI/B,mBAAmB;IACnB,eAAe,IAAI,IAAI;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,uBAAuB,GAAG,IAAI;CAMnF"}
|
package/dist/src/starknet.js
CHANGED
|
@@ -45,8 +45,11 @@ class Starknet extends sdk_core_1.BaseCoin {
|
|
|
45
45
|
async verifyTransaction(params) {
|
|
46
46
|
const { txParams, txPrebuild } = params;
|
|
47
47
|
const txHex = txPrebuild?.txHex;
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
// 0x-prefixed txHex means this is the Starknet transaction hash (signableHex), not the
|
|
49
|
+
// full serialized transaction. Recipient verification already happened in prebuildAndSignTransaction
|
|
50
|
+
// using serializedTxHex — nothing to verify from a hash alone.
|
|
51
|
+
if (!txHex || txHex.startsWith('0x') || /^[0-9a-f]{64}$/i.test(txHex)) {
|
|
52
|
+
return true;
|
|
50
53
|
}
|
|
51
54
|
const explainedTx = await this.explainTransaction({ transactionHex: txHex });
|
|
52
55
|
if (Array.isArray(txParams.recipients) && txParams.recipients.length > 0) {
|
|
@@ -80,6 +83,13 @@ class Starknet extends sdk_core_1.BaseCoin {
|
|
|
80
83
|
async parseTransaction(params) {
|
|
81
84
|
return {};
|
|
82
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns true because Starknet's signableHex is already the final 32-byte hash.
|
|
88
|
+
* This prevents ecdsaMPCv2 from hashing the payload a second time.
|
|
89
|
+
*/
|
|
90
|
+
isSignablePreHashed(unsignedTx) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
83
93
|
generateKeyPair(seed) {
|
|
84
94
|
return utils_1.default.generateKeyPair(seed);
|
|
85
95
|
}
|
|
@@ -105,6 +115,10 @@ class Starknet extends sdk_core_1.BaseCoin {
|
|
|
105
115
|
return sdk_core_1.multisigTypes.tss;
|
|
106
116
|
}
|
|
107
117
|
/** @inheritDoc */
|
|
118
|
+
requiresWalletInitializationTransaction() {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
/** @inheritDoc */
|
|
108
122
|
getMPCAlgorithm() {
|
|
109
123
|
return 'ecdsa';
|
|
110
124
|
}
|
|
@@ -124,4 +138,4 @@ class Starknet extends sdk_core_1.BaseCoin {
|
|
|
124
138
|
}
|
|
125
139
|
}
|
|
126
140
|
exports.Starknet = Starknet;
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhcmtuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBaUI4QjtBQUM5QixpREFBeUU7QUFDekUsbUNBQTBDO0FBRzFDLCtFQUE0RTtBQUM1RSx3REFBZ0M7QUFDaEMseURBQStEO0FBRS9ELE1BQWEsUUFBUyxTQUFRLG1CQUFRO0lBRXBDLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUE0QjtRQUNuRCxNQUFNLE9B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QUksWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBQSxrQ0FBb0IsRUFBQyxHQUFhLEVBQUUsU0FBbUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRjtBQXRKRCw0QkFzSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdWRpdERlY3J5cHRlZEtleVBhcmFtcyxcbiAgQmFzZUNvaW4sXG4gIEJpdEdvQmFzZSxcbiAgSW52YWxpZEFkZHJlc3NFcnJvcixcbiAgS2V5UGFpcixcbiAgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgTVBDQWxnb3JpdGhtLFxuICBNdWx0aXNpZ1R5cGUsXG4gIG11bHRpc2lnVHlwZXMsXG4gIFBhcnNlZFRyYW5zYWN0aW9uLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgdmVyaWZ5TVBDV2FsbGV0QWRkcmVzcyxcbiAgVW5leHBlY3RlZEFkZHJlc3NFcnJvcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29pbnMsIEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCwgSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5cbmltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgVHJhbnNhY3Rpb25IZXhQYXJhbXMsIFRzc1ZlcmlmeVN0YXJrbmV0QWRkcmVzc09wdGlvbnMgfSBmcm9tICcuL2xpYi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgYXVkaXRFY2RzYVByaXZhdGVLZXkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFya25ldCBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0aWNzQ29pbjogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFN0YXJrbmV0KGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5uYW1lO1xuICB9XG5cbiAgZ2V0QmFzZUNoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLm5hbWU7XG4gIH1cblxuICBnZXRGYW1pbHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZmFtaWx5O1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZnVsbE5hbWU7XG4gIH1cblxuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLl9zdGF0aWNzQ29pbi5kZWNpbWFsUGxhY2VzKTtcbiAgfVxuXG4gIGFzeW5jIGV4cGxhaW5UcmFuc2FjdGlvbihwYXJhbXM6IFRyYW5zYWN0aW9uSGV4UGFyYW1zKTogUHJvbWlzZTxTdGFya25ldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5nZXRCdWlsZGVyRmFjdG9yeSgpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGF3YWl0IGZhY3RvcnkuZnJvbShwYXJhbXMudHJhbnNhY3Rpb25IZXgpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgdHhIZXggPSB0eFByZWJ1aWxkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R4SGV4IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhwbGFpbmVkVHggPSBhd2FpdCB0aGlzLmV4cGxhaW5UcmFuc2FjdGlvbih7IHRyYW5zYWN0aW9uSGV4OiB0eEhleCB9KTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHR4UGFyYW1zLnJlY2lwaWVudHMpICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7dGhpcy5nZXRDaGFpbigpfSBkb2Vzbid0IHN1cHBvcnQgc2VuZGluZyB0byBtb3JlIHRoYW4gMSBkZXN0aW5hdGlvbiBhZGRyZXNzIHdpdGhpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbi4gVHJ5IGFnYWluLCB1c2luZyBvbmx5IGEgc2luZ2xlIHJlY2lwaWVudC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChleHBsYWluZWRUeC5vdXRwdXRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R4IG91dHB1dHMgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnRzJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG91dHB1dCA9IGV4cGxhaW5lZFR4Lm91dHB1dHNbMF07XG4gICAgICBjb25zdCByZWNpcGllbnQgPSB0eFBhcmFtcy5yZWNpcGllbnRzWzBdO1xuICAgICAgY29uc3Qgbm9ybWFsaXplZE91dHB1dCA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3Mob3V0cHV0LmFkZHJlc3MpO1xuICAgICAgY29uc3Qgbm9ybWFsaXplZFJlY2lwaWVudCA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpO1xuICAgICAgaWYgKG5vcm1hbGl6ZWRPdXRwdXQgIT09IG5vcm1hbGl6ZWRSZWNpcGllbnQgfHwgb3V0cHV0LmFtb3VudCAhPT0gcmVjaXBpZW50LmFtb3VudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R4IG91dHB1dHMgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnRzJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVHNzVmVyaWZ5U3RhcmtuZXRBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgYWRkcmVzcyB9ID0gcGFyYW1zO1xuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmVyaWZ5TVBDV2FsbGV0QWRkcmVzcyhcbiAgICAgIHsgLi4ucGFyYW1zLCBrZXlDdXJ2ZTogJ3NlY3AyNTZrMScgfSxcbiAgICAgIHRoaXMuaXNWYWxpZEFkZHJlc3MuYmluZCh0aGlzKSxcbiAgICAgIChwdWJLZXkpID0+IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YktleSlcbiAgICApO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKGBhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogYWRkcmVzcyAke2FkZHJlc3N9IGlzIG5vdCBhIHdhbGxldCBhZGRyZXNzYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpciB7XG4gICAgcmV0dXJuIHV0aWxzLmdlbmVyYXRlS2V5UGFpcihzZWVkKTtcbiAgfVxuXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8vIFN0YXJrbmV0IGlzIFRTUy1vbmx5OyBzaWduaW5nIGlzIGhhbmRsZWQgYnkgdGhyZXNob2xkIEVDRFNBIGluIHdhbGxldC1wbGF0Zm9ybS9PVkMuXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihfcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCdzaWduVHJhbnNhY3Rpb24nKTtcbiAgfVxuXG4gIGlzVmFsaWRQdWIoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZFB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgaXNWYWxpZFBydihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIGluaGVyaXRlZCBkb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiBtdWx0aXNpZ1R5cGVzLnRzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqKi9cbiAgZ2V0SGFzaEZ1bmN0aW9uKCk6IEhhc2gge1xuICAgIHJldHVybiBjcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnVpbGRlckZhY3RvcnkoKTogVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYXVkaXREZWNyeXB0ZWRLZXkoeyBtdWx0aVNpZ1R5cGUsIHBydiwgcHVibGljS2V5IH06IEF1ZGl0RGVjcnlwdGVkS2V5UGFyYW1zKTogdm9pZCB7XG4gICAgaWYgKG11bHRpU2lnVHlwZSAhPT0gJ3RzcycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbXVsdGlzaWd0eXBlJyk7XG4gICAgfVxuICAgIGF1ZGl0RWNkc2FQcml2YXRlS2V5KHBydiBhcyBzdHJpbmcsIHB1YmxpY0tleSBhcyBzdHJpbmcpO1xuICB9XG59XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhcmtuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBa0I4QjtBQUM5QixpREFBeUU7QUFDekUsbUNBQTBDO0FBRzFDLCtFQUE0RTtBQUM1RSx3REFBZ0M7QUFDaEMseURBQStEO0FBRS9ELE1BQWEsUUFBUyxTQUFRLG1CQUFRO0lBRXBDLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUE0QjtRQUNuRCxNQUFNLE9B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RUFBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxxREFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUIsQ0FBQyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUEyQjtRQUN6RSxJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUEsa0NBQW9CLEVBQUMsR0FBYSxFQUFFLFNBQW1CLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUF2S0QsNEJBdUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMsXG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEludmFsaWRBZGRyZXNzRXJyb3IsXG4gIEtleVBhaXIsXG4gIE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IsXG4gIE1QQ0FsZ29yaXRobSxcbiAgTXVsdGlzaWdUeXBlLFxuICBtdWx0aXNpZ1R5cGVzLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxuICBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MsXG4gIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IsXG4gIFNpZ25hYmxlVHJhbnNhY3Rpb24sXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZUhhc2gsIEhhc2ggfSBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgeyBTdGFya25ldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFRyYW5zYWN0aW9uSGV4UGFyYW1zLCBUc3NWZXJpZnlTdGFya25ldEFkZHJlc3NPcHRpb25zIH0gZnJvbSAnLi9saWIvaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vbGliL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCB7IGF1ZGl0RWNkc2FQcml2YXRlS2V5IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuXG5leHBvcnQgY2xhc3MgU3RhcmtuZXQgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbyk7XG5cbiAgICBpZiAoIXN0YXRpY3NDb2luKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgY29uc3RydWN0b3IgcGFyYW1ldGVyIHN0YXRpY3NDb2luJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGljc0NvaW4gPSBzdGF0aWNzQ29pbjtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBTdGFya25ldChiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4ubmFtZTtcbiAgfVxuXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5uYW1lO1xuICB9XG5cbiAgZ2V0RmFtaWx5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZhbWlseTtcbiAgfVxuXG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZ1bGxOYW1lO1xuICB9XG5cbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnBvdygxMCwgdGhpcy5fc3RhdGljc0NvaW4uZGVjaW1hbFBsYWNlcyk7XG4gIH1cblxuICBhc3luYyBleHBsYWluVHJhbnNhY3Rpb24ocGFyYW1zOiBUcmFuc2FjdGlvbkhleFBhcmFtcyk6IFByb21pc2U8U3RhcmtuZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuZ2V0QnVpbGRlckZhY3RvcnkoKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBhd2FpdCBmYWN0b3J5LmZyb20ocGFyYW1zLnRyYW5zYWN0aW9uSGV4KTtcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi5leHBsYWluVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IHR4SGV4ID0gdHhQcmVidWlsZD8udHhIZXg7XG5cbiAgICAvLyAweC1wcmVmaXhlZCB0eEhleCBtZWFucyB0aGlzIGlzIHRoZSBTdGFya25ldCB0cmFuc2FjdGlvbiBoYXNoIChzaWduYWJsZUhleCksIG5vdCB0aGVcbiAgICAvLyBmdWxsIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb24uIFJlY2lwaWVudCB2ZXJpZmljYXRpb24gYWxyZWFkeSBoYXBwZW5lZCBpbiBwcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvblxuICAgIC8vIHVzaW5nIHNlcmlhbGl6ZWRUeEhleCDigJQgbm90aGluZyB0byB2ZXJpZnkgZnJvbSBhIGhhc2ggYWxvbmUuXG4gICAgaWYgKCF0eEhleCB8fCB0eEhleC5zdGFydHNXaXRoKCcweCcpIHx8IC9eWzAtOWEtZl17NjR9JC9pLnRlc3QodHhIZXgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBsYWluZWRUeCA9IGF3YWl0IHRoaXMuZXhwbGFpblRyYW5zYWN0aW9uKHsgdHJhbnNhY3Rpb25IZXg6IHR4SGV4IH0pO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHhQYXJhbXMucmVjaXBpZW50cykgJiYgdHhQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodHhQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgJHt0aGlzLmdldENoYWluKCl9IGRvZXNuJ3Qgc3VwcG9ydCBzZW5kaW5nIHRvIG1vcmUgdGhhbiAxIGRlc3RpbmF0aW9uIGFkZHJlc3Mgd2l0aGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLiBUcnkgYWdhaW4sIHVzaW5nIG9ubHkgYSBzaW5nbGUgcmVjaXBpZW50LmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4cGxhaW5lZFR4Lm91dHB1dHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3V0cHV0ID0gZXhwbGFpbmVkVHgub3V0cHV0c1swXTtcbiAgICAgIGNvbnN0IHJlY2lwaWVudCA9IHR4UGFyYW1zLnJlY2lwaWVudHNbMF07XG4gICAgICBjb25zdCBub3JtYWxpemVkT3V0cHV0ID0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyhvdXRwdXQuYWRkcmVzcyk7XG4gICAgICBjb25zdCBub3JtYWxpemVkUmVjaXBpZW50ID0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcyk7XG4gICAgICBpZiAobm9ybWFsaXplZE91dHB1dCAhPT0gbm9ybWFsaXplZFJlY2lwaWVudCB8fCBvdXRwdXQuYW1vdW50ICE9PSByZWNpcGllbnQuYW1vdW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBpc1dhbGxldEFkZHJlc3MocGFyYW1zOiBUc3NWZXJpZnlTdGFya25ldEFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBhZGRyZXNzIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2ZXJpZnlNUENXYWxsZXRBZGRyZXNzKFxuICAgICAgeyAuLi5wYXJhbXMsIGtleUN1cnZlOiAnc2VjcDI1NmsxJyB9LFxuICAgICAgdGhpcy5pc1ZhbGlkQWRkcmVzcy5iaW5kKHRoaXMpLFxuICAgICAgKHB1YktleSkgPT4gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHViS2V5KVxuICAgICk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBhZGRyZXNzICR7YWRkcmVzc30gaXMgbm90IGEgd2FsbGV0IGFkZHJlc3NgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGJlY2F1c2UgU3RhcmtuZXQncyBzaWduYWJsZUhleCBpcyBhbHJlYWR5IHRoZSBmaW5hbCAzMi1ieXRlIGhhc2guXG4gICAqIFRoaXMgcHJldmVudHMgZWNkc2FNUEN2MiBmcm9tIGhhc2hpbmcgdGhlIHBheWxvYWQgYSBzZWNvbmQgdGltZS5cbiAgICovXG4gIGlzU2lnbmFibGVQcmVIYXNoZWQodW5zaWduZWRUeDogU2lnbmFibGVUcmFuc2FjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpciB7XG4gICAgcmV0dXJuIHV0aWxzLmdlbmVyYXRlS2V5UGFpcihzZWVkKTtcbiAgfVxuXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8vIFN0YXJrbmV0IGlzIFRTUy1vbmx5OyBzaWduaW5nIGlzIGhhbmRsZWQgYnkgdGhyZXNob2xkIEVDRFNBIGluIHdhbGxldC1wbGF0Zm9ybS9PVkMuXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihfcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCdzaWduVHJhbnNhY3Rpb24nKTtcbiAgfVxuXG4gIGlzVmFsaWRQdWIoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZFB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgaXNWYWxpZFBydihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIGluaGVyaXRlZCBkb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiBtdWx0aXNpZ1R5cGVzLnRzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICByZXF1aXJlc1dhbGxldEluaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKiovXG4gIGdldEhhc2hGdW5jdGlvbigpOiBIYXNoIHtcbiAgICByZXR1cm4gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldEJ1aWxkZXJGYWN0b3J5KCk6IFRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRCYXNlQ2hhaW4oKSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGF1ZGl0RGVjcnlwdGVkS2V5KHsgbXVsdGlTaWdUeXBlLCBwcnYsIHB1YmxpY0tleSB9OiBBdWRpdERlY3J5cHRlZEtleVBhcmFtcyk6IHZvaWQge1xuICAgIGlmIChtdWx0aVNpZ1R5cGUgIT09ICd0c3MnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIG11bHRpc2lndHlwZScpO1xuICAgIH1cbiAgICBhdWRpdEVjZHNhUHJpdmF0ZUtleShwcnYgYXMgc3RyaW5nLCBwdWJsaWNLZXkgYXMgc3RyaW5nKTtcbiAgfVxufVxuIl19
|
|
@@ -109,6 +109,9 @@ describe('Starknet', function () {
|
|
|
109
109
|
it('should return ECDSA as MPC algorithm', function () {
|
|
110
110
|
basecoin.getMPCAlgorithm().should.equal('ecdsa');
|
|
111
111
|
});
|
|
112
|
+
it('should identify as pre-hashed signable', function () {
|
|
113
|
+
basecoin.isSignablePreHashed({}).should.equal(true);
|
|
114
|
+
});
|
|
112
115
|
});
|
|
113
116
|
describe('Key pair generation', () => {
|
|
114
117
|
it('should generate a key pair', function () {
|
|
@@ -122,5 +125,43 @@ describe('Starknet', function () {
|
|
|
122
125
|
kp1.pub.should.not.equal(kp2.pub);
|
|
123
126
|
});
|
|
124
127
|
});
|
|
128
|
+
describe('verifyTransaction', () => {
|
|
129
|
+
it('should return true when txHex is a 0x-prefixed signableHex (deploy_account, no recipients)', async function () {
|
|
130
|
+
// During TSS ECDSA signing, sdk-core passes signableHex (0x-prefixed transaction hash)
|
|
131
|
+
// as txHex. It cannot be decoded as internal JSON hex, so verification must short-circuit.
|
|
132
|
+
const result = await basecoin.verifyTransaction({
|
|
133
|
+
txParams: { recipients: [] },
|
|
134
|
+
txPrebuild: { txHex: '0xdeadbeefcafe1234567890abcdef' },
|
|
135
|
+
wallet: {},
|
|
136
|
+
});
|
|
137
|
+
result.should.equal(true);
|
|
138
|
+
});
|
|
139
|
+
it('should return true when txHex is a 0x-prefixed signableHex (transfer with recipients)', async function () {
|
|
140
|
+
// Same signing path for transfers — signableHex is 0x-prefixed, full verification
|
|
141
|
+
// is already done in prebuildAndSignTransaction with serializedTxHex.
|
|
142
|
+
const result = await basecoin.verifyTransaction({
|
|
143
|
+
txParams: { recipients: [{ address: '0xabc', amount: '1000' }] },
|
|
144
|
+
txPrebuild: { txHex: '0xdeadbeefcafe1234567890abcdef' },
|
|
145
|
+
wallet: {},
|
|
146
|
+
});
|
|
147
|
+
result.should.equal(true);
|
|
148
|
+
});
|
|
149
|
+
it('should return true when txHex is a 64-character unprefixed signableHex', async function () {
|
|
150
|
+
const result = await basecoin.verifyTransaction({
|
|
151
|
+
txParams: { recipients: [] },
|
|
152
|
+
txPrebuild: { txHex: 'deadbeefcafe1234567890abcdefdeadbeefcafe1234567890abcdef12345678' },
|
|
153
|
+
wallet: {},
|
|
154
|
+
});
|
|
155
|
+
result.should.equal(true);
|
|
156
|
+
});
|
|
157
|
+
it('should return true when txHex is absent', async function () {
|
|
158
|
+
const result = await basecoin.verifyTransaction({
|
|
159
|
+
txParams: { recipients: [] },
|
|
160
|
+
txPrebuild: {},
|
|
161
|
+
wallet: {},
|
|
162
|
+
});
|
|
163
|
+
result.should.equal(true);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
125
166
|
});
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvc3RhcmtuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBK0Q7QUFDL0QsaURBQStDO0FBQy9DLDJDQUEyQztBQUMzQyxnRUFBa0Q7QUFDbEQsb0RBQTRCO0FBQzVCLCtDQUE4RDtBQUU5RCxRQUFRLENBQUMsVUFBVSxFQUFFO0lBQ25CLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQyxLQUFLO1FBQ1YsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGdCQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUU7UUFDakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxD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QztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRTtZQUNsRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcbmltcG9ydCB7IFN0YXJrbmV0IH0gZnJvbSAnLi4vLi4vc3JjL2luZGV4JztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy9zdGFya25ldCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSB9IGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgnU3RhcmtuZXQnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW47XG5cbiAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICd0ZXN0JyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3N0YXJrbmV0JywgU3RhcmtuZXQuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndHN0YXJrbmV0JywgU3RhcmtuZXQuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbignc3RhcmtuZXQnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIHJpZ2h0IGluZm8nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qgc3RhcmtuZXQgPSBiaXRnby5jb2luKCdzdGFya25ldCcpO1xuICAgIGNvbnN0IHRzdGFya25ldCA9IGJpdGdvLmNvaW4oJ3RzdGFya25ldCcpO1xuXG4gICAgc3RhcmtuZXQuZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3N0YXJrbmV0Jyk7XG4gICAgc3RhcmtuZXQuZ2V0RmFtaWx5KCkuc2hvdWxkLmVxdWFsKCdzdGFya25ldCcpO1xuICAgIHN0YXJrbmV0LmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdTdGFya25ldCcpO1xuICAgIHN0YXJrbmV0LmdldEJhc2VGYWN0b3IoKS5zaG91bGQuZXF1YWwoMWUxOCk7XG4gICAgc3RhcmtuZXQuc3VwcG9ydHNUc3MoKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG5cbiAgICB0c3RhcmtuZXQuZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RzdGFya25ldCcpO1xuICAgIHRzdGFya25ldC5nZXRGYW1pbHkoKS5zaG91bGQuZXF1YWwoJ3N0YXJrbmV0Jyk7XG4gICAgdHN0YXJrbmV0LmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdUZXN0bmV0IFN0YXJrbmV0Jyk7XG4gICAgdHN0YXJrbmV0LmdldEJhc2VGYWN0b3IoKS5zaG91bGQuZXF1YWwoMWUxOCk7XG4gICAgdHN0YXJrbmV0LnN1cHBvcnRzVHNzKCkuc2hvdWxkLmVxdWFsKHRydWUpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWRkcmVzcyB2YWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSBjb3JyZWN0IFN0YXJrbmV0IGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcyh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgc2Vjb25kIGNvcnJlY3QgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFuIG9idmlvdXNseSBpbnZhbGlkIGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnbm90X2FuX2FkZHJlc3MnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYW4gZW1wdHkgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWRkcmVzcyBkZXJpdmF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZGVyaXZlIGNvcnJlY3QgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXkgZm9yIGFjY291bnQxJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVyaXZlZCA9IGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgICBkZXJpdmVkLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlIGNvcnJlY3QgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXkgZm9yIGFjY291bnQyJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVyaXZlZCA9IGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLnB1YmxpY0tleSk7XG4gICAgICBkZXJpdmVkLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlIGNvcnJlY3QgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXkgZm9yIGFjY291bnQzJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVyaXZlZCA9IGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHRlc3REYXRhLkFjY291bnRzLmFjY291bnQzLnB1YmxpY0tleSk7XG4gICAgICBkZXJpdmVkLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50My5hZGRyZXNzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1B1YmxpYyBrZXkgdmFsaWRhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgY29ycmVjdCB1bmNvbXByZXNzZWQgcHVibGljIGtleScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRQdWIodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHB1YmxpYyBrZXknLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkUHViKCdpbnZhbGlkLXB1YmxpYy1rZXknKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnTVBDIHN1cHBvcnQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBzdXBwb3J0IFRTUycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLnN1cHBvcnRzVHNzKCkuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gRUNEU0EgYXMgTVBDIGFsZ29yaXRobScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmdldE1QQ0FsZ29yaXRobSgpLnNob3VsZC5lcXVhbCgnZWNkc2EnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tleSBwYWlyIGdlbmVyYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBhIGtleSBwYWlyJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qga2V5UGFpciA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAgc2hvdWxkLmV4aXN0KGtleVBhaXIucHViKTtcbiAgICAgIHNob3VsZC5leGlzdChrZXlQYWlyLnBydik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGRpZmZlcmVudCBrZXkgcGFpcnMgZWFjaCB0aW1lJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qga3AxID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBjb25zdCBrcDIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGtwMS5wdWIuc2hvdWxkLm5vdC5lcXVhbChrcDIucHViKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvc3RhcmtuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBK0Q7QUFDL0QsaURBQStDO0FBQy9DLDJDQUEyQztBQUMzQyxnRUFBa0Q7QUFDbEQsb0RBQTRCO0FBQzVCLCtDQUE4RDtBQUU5RCxRQUFRLENBQUMsVUFBVSxFQUFFO0lBQ25CLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQyxLQUFLO1FBQ1YsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGdCQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUU7UUFDakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxD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TSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7Z0JBQ2hFLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxnQ0FBZ0MsRUFBRTtnQkFDdkQsTUFBTSxFQUFFLEVBQVM7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsd0VBQXdFLEVBQUUsS0FBSztZQUNoRixNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDOUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtnQkFDNUIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLGtFQUFrRSxFQUFFO2dCQUN6RixNQUFNLEVBQUUsRUFBUzthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLO1lBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGlCQUFpQixDQUFDO2dCQUM5QyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO2dCQUM1QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLEVBQUUsRUFBUzthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgeyBTdGFya25ldCB9IGZyb20gJy4uLy4uL3NyYy9pbmRleCc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi9yZXNvdXJjZXMvc3RhcmtuZXQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkgfSBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcblxuZGVzY3JpYmUoJ1N0YXJrbmV0JywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgbGV0IGJhc2Vjb2luO1xuXG4gIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdzdGFya25ldCcsIFN0YXJrbmV0LmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RzdGFya25ldCcsIFN0YXJrbmV0LmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3N0YXJrbmV0Jyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRoZSByaWdodCBpbmZvJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHN0YXJrbmV0ID0gYml0Z28uY29pbignc3RhcmtuZXQnKTtcbiAgICBjb25zdCB0c3RhcmtuZXQgPSBiaXRnby5jb2luKCd0c3RhcmtuZXQnKTtcblxuICAgIHN0YXJrbmV0LmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCdzdGFya25ldCcpO1xuICAgIHN0YXJrbmV0LmdldEZhbWlseSgpLnNob3VsZC5lcXVhbCgnc3RhcmtuZXQnKTtcbiAgICBzdGFya25ldC5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnU3RhcmtuZXQnKTtcbiAgICBzdGFya25ldC5nZXRCYXNlRmFjdG9yKCkuc2hvdWxkLmVxdWFsKDFlMTgpO1xuICAgIHN0YXJrbmV0LnN1cHBvcnRzVHNzKCkuc2hvdWxkLmVxdWFsKHRydWUpO1xuXG4gICAgdHN0YXJrbmV0LmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCd0c3RhcmtuZXQnKTtcbiAgICB0c3RhcmtuZXQuZ2V0RmFtaWx5KCkuc2hvdWxkLmVxdWFsKCdzdGFya25ldCcpO1xuICAgIHRzdGFya25ldC5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnVGVzdG5ldCBTdGFya25ldCcpO1xuICAgIHRzdGFya25ldC5nZXRCYXNlRmFjdG9yKCkuc2hvdWxkLmVxdWFsKDFlMTgpO1xuICAgIHRzdGFya25ldC5zdXBwb3J0c1RzcygpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0FkZHJlc3MgdmFsaWRhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgY29ycmVjdCBTdGFya25ldCBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3ModGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhIHNlY29uZCBjb3JyZWN0IGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcyh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhbiBvYnZpb3VzbHkgaW52YWxpZCBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJ25vdF9hbl9hZGRyZXNzJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFuIGVtcHR5IGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0FkZHJlc3MgZGVyaXZhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGRlcml2ZSBjb3JyZWN0IGFkZHJlc3MgZnJvbSBwdWJsaWMga2V5IGZvciBhY2NvdW50MScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpO1xuICAgICAgZGVyaXZlZC5zaG91bGQuZXF1YWwodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGRlcml2ZSBjb3JyZWN0IGFkZHJlc3MgZnJvbSBwdWJsaWMga2V5IGZvciBhY2NvdW50MicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5wdWJsaWNLZXkpO1xuICAgICAgZGVyaXZlZC5zaG91bGQuZXF1YWwodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGRlcml2ZSBjb3JyZWN0IGFkZHJlc3MgZnJvbSBwdWJsaWMga2V5IGZvciBhY2NvdW50MycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50My5wdWJsaWNLZXkpO1xuICAgICAgZGVyaXZlZC5zaG91bGQuZXF1YWwodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDMuYWRkcmVzcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdQdWJsaWMga2V5IHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhIGNvcnJlY3QgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXknLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkUHViKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSkuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYW4gaW52YWxpZCBwdWJsaWMga2V5JywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZFB1YignaW52YWxpZC1wdWJsaWMta2V5Jykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ01QQyBzdXBwb3J0JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc3VwcG9ydCBUU1MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5zdXBwb3J0c1RzcygpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIEVDRFNBIGFzIE1QQyBhbGdvcml0aG0nLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5nZXRNUENBbGdvcml0aG0oKS5zaG91bGQuZXF1YWwoJ2VjZHNhJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGlkZW50aWZ5IGFzIHByZS1oYXNoZWQgc2lnbmFibGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1NpZ25hYmxlUHJlSGFzaGVkKHt9IGFzIGFueSkuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5IHBhaXIgZ2VuZXJhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGEga2V5IHBhaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBzaG91bGQuZXhpc3Qoa2V5UGFpci5wdWIpO1xuICAgICAgc2hvdWxkLmV4aXN0KGtleVBhaXIucHJ2KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgZGlmZmVyZW50IGtleSBwYWlycyBlYWNoIHRpbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrcDEgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGNvbnN0IGtwMiA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAga3AxLnB1Yi5zaG91bGQubm90LmVxdWFsKGtwMi5wdWIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndmVyaWZ5VHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSB3aGVuIHR4SGV4IGlzIGEgMHgtcHJlZml4ZWQgc2lnbmFibGVIZXggKGRlcGxveV9hY2NvdW50LCBubyByZWNpcGllbnRzKScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIER1cmluZyBUU1MgRUNEU0Egc2lnbmluZywgc2RrLWNvcmUgcGFzc2VzIHNpZ25hYmxlSGV4ICgweC1wcmVmaXhlZCB0cmFuc2FjdGlvbiBoYXNoKVxuICAgICAgLy8gYXMgdHhIZXguIEl0IGNhbm5vdCBiZSBkZWNvZGVkIGFzIGludGVybmFsIEpTT04gaGV4LCBzbyB2ZXJpZmljYXRpb24gbXVzdCBzaG9ydC1jaXJjdWl0LlxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtczogeyByZWNpcGllbnRzOiBbXSB9LFxuICAgICAgICB0eFByZWJ1aWxkOiB7IHR4SGV4OiAnMHhkZWFkYmVlZmNhZmUxMjM0NTY3ODkwYWJjZGVmJyB9LFxuICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgd2hlbiB0eEhleCBpcyBhIDB4LXByZWZpeGVkIHNpZ25hYmxlSGV4ICh0cmFuc2ZlciB3aXRoIHJlY2lwaWVudHMpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gU2FtZSBzaWduaW5nIHBhdGggZm9yIHRyYW5zZmVycyDigJQgc2lnbmFibGVIZXggaXMgMHgtcHJlZml4ZWQsIGZ1bGwgdmVyaWZpY2F0aW9uXG4gICAgICAvLyBpcyBhbHJlYWR5IGRvbmUgaW4gcHJlYnVpbGRBbmRTaWduVHJhbnNhY3Rpb24gd2l0aCBzZXJpYWxpemVkVHhIZXguXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB7IHJlY2lwaWVudHM6IFt7IGFkZHJlc3M6ICcweGFiYycsIGFtb3VudDogJzEwMDAnIH1dIH0sXG4gICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXg6ICcweGRlYWRiZWVmY2FmZTEyMzQ1Njc4OTBhYmNkZWYnIH0sXG4gICAgICAgIHdhbGxldDoge30gYXMgYW55LFxuICAgICAgfSk7XG4gICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSB3aGVuIHR4SGV4IGlzIGEgNjQtY2hhcmFjdGVyIHVucHJlZml4ZWQgc2lnbmFibGVIZXgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB7IHJlY2lwaWVudHM6IFtdIH0sXG4gICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXg6ICdkZWFkYmVlZmNhZmUxMjM0NTY3ODkwYWJjZGVmZGVhZGJlZWZjYWZlMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JyB9LFxuICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgd2hlbiB0eEhleCBpcyBhYnNlbnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB7IHJlY2lwaWVudHM6IFtdIH0sXG4gICAgICAgIHR4UHJlYnVpbGQ6IHt9LFxuICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -40,14 +40,39 @@ describe('Starknet Transaction', () => {
|
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
42
|
describe('toBroadcastFormat', () => {
|
|
43
|
-
it('should
|
|
43
|
+
it('should return Starknet RPC-ready JSON string', async () => {
|
|
44
44
|
const coinConfig = statics_1.coins.get('starknet');
|
|
45
45
|
const tx = new transaction_1.Transaction(coinConfig);
|
|
46
46
|
await tx.fromRawTransaction(starknet_1.rawTx.transfer.unsigned);
|
|
47
47
|
const payload = tx.toBroadcastFormat();
|
|
48
48
|
should_1.default.exist(payload);
|
|
49
|
-
|
|
49
|
+
const parsed = JSON.parse(payload);
|
|
50
|
+
parsed.type.should.equal('INVOKE');
|
|
51
|
+
parsed.version.should.equal('0x3');
|
|
52
|
+
parsed.should.have.property('sender_address');
|
|
53
|
+
parsed.sender_address.should.equal(starknet_1.Accounts.account1.address);
|
|
54
|
+
parsed.calldata.should.be.Array().and.not.empty();
|
|
55
|
+
parsed.calldata[0].should.equal('0x1');
|
|
56
|
+
parsed.should.have.property('nonce');
|
|
57
|
+
parsed.resource_bounds.should.have.properties(['l2_gas', 'l1_gas', 'l1_data_gas']);
|
|
58
|
+
parsed.resource_bounds.l2_gas.should.have.properties(['max_amount', 'max_price_per_unit']);
|
|
59
|
+
parsed.nonce_data_availability_mode.should.equal('L1');
|
|
60
|
+
parsed.fee_data_availability_mode.should.equal('L1');
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('toInternalHex', () => {
|
|
64
|
+
it('should produce hex-encoded internal JSON', async () => {
|
|
65
|
+
const coinConfig = statics_1.coins.get('starknet');
|
|
66
|
+
const tx = new transaction_1.Transaction(coinConfig);
|
|
67
|
+
await tx.fromRawTransaction(starknet_1.rawTx.transfer.unsigned);
|
|
68
|
+
const hex = tx.toInternalHex();
|
|
69
|
+
should_1.default.exist(hex);
|
|
70
|
+
const json = JSON.parse(Buffer.from(hex, 'hex').toString('utf-8'));
|
|
71
|
+
json.should.have.property('senderAddress');
|
|
72
|
+
json.should.have.property('calls');
|
|
73
|
+
json.should.have.property('chainId');
|
|
74
|
+
json.should.have.property('transactionType');
|
|
50
75
|
});
|
|
51
76
|
});
|
|
52
77
|
});
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsaURBQTRDO0FBQzVDLDJEQUF3RDtBQUN4RCxvREFBd0Q7QUFFeEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1FBQzFDLEVBQUUsQ0FBQywrREFBK0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3RSxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUN4QyxFQUFFLENBQUMsNkRBQTZELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0UsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsTUFBTSxFQUFF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UyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBY2NvdW50cywgcmF3VHggfSBmcm9tICcuLi9yZXNvdXJjZXMvc3RhcmtuZXQnO1xuXG5kZXNjcmliZSgnU3RhcmtuZXQgVHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdQYXJzZSB1bnNpZ25lZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIHVuc2lnbmVkIHRyYW5zZmVyIGhleCBhbmQgZXh0cmFjdCBjb3JyZWN0IGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3N0YXJrbmV0Jyk7XG4gICAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICAgIGF3YWl0IHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeC50cmFuc2Zlci51bnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IGpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIGpzb24uc2VuZGVyLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5leGlzdChqc29uLmFtb3VudCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdQYXJzZSBzaWduZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBzaWduZWQgdHJhbnNmZXIgaGV4IGFuZCBleHRyYWN0IGNvcnJlY3QgZmllbGRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICAgICAgYXdhaXQgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4LnRyYW5zZmVyLnNpZ25lZCk7XG5cbiAgICAgIGNvbnN0IGpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIGpzb24uc2VuZGVyLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5leGlzdChqc29uLmFtb3VudCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdUcmFuc2FjdGlvbiBFeHBsYW5hdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGV4cGxhaW4gYSBwYXJzZWQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCdzdGFya25ldCcpO1xuICAgICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZyk7XG4gICAgICBhd2FpdCB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHgudHJhbnNmZXIuc2lnbmVkKTtcblxuICAgICAgY29uc3QgZXhwID0gdHguZXhwbGFpblRyYW5zYWN0aW9uKCk7XG4gICAgICBzaG91bGQuZXhpc3QoZXhwKTtcbiAgICAgIHNob3VsZC5leGlzdChleHAub3V0cHV0cyk7XG4gICAgICBleHAub3V0cHV0cy5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gU3RhcmtuZXQgUlBDLXJlYWR5IEpTT04gc3RyaW5nJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICAgICAgYXdhaXQgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4LnRyYW5zZmVyLnVuc2lnbmVkKTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXhpc3QocGF5bG9hZCk7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHBheWxvYWQpO1xuICAgICAgcGFyc2VkLnR5cGUuc2hvdWxkLmVxdWFsKCdJTlZPS0UnKTtcbiAgICAgIHBhcnNlZC52ZXJzaW9uLnNob3VsZC5lcXVhbCgnMHgzJyk7XG4gICAgICBwYXJzZWQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3NlbmRlcl9hZGRyZXNzJyk7XG4gICAgICBwYXJzZWQuc2VuZGVyX2FkZHJlc3Muc2hvdWxkLmVxdWFsKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgICAgcGFyc2VkLmNhbGxkYXRhLnNob3VsZC5iZS5BcnJheSgpLmFuZC5ub3QuZW1wdHkoKTtcbiAgICAgIHBhcnNlZC5jYWxsZGF0YVswXS5zaG91bGQuZXF1YWwoJzB4MScpO1xuICAgICAgcGFyc2VkLnNob3VsZC5oYXZlLnByb3BlcnR5KCdub25jZScpO1xuICAgICAgcGFyc2VkLnJlc291cmNlX2JvdW5kcy5zaG91bGQuaGF2ZS5wcm9wZXJ0aWVzKFsnbDJfZ2FzJywgJ2wxX2dhcycsICdsMV9kYXRhX2dhcyddKTtcbiAgICAgIHBhcnNlZC5yZXNvdXJjZV9ib3VuZHMubDJfZ2FzLnNob3VsZC5oYXZlLnByb3BlcnRpZXMoWydtYXhfYW1vdW50JywgJ21heF9wcmljZV9wZXJfdW5pdCddKTtcbiAgICAgIHBhcnNlZC5ub25jZV9kYXRhX2F2YWlsYWJpbGl0eV9tb2RlLnNob3VsZC5lcXVhbCgnTDEnKTtcbiAgICAgIHBhcnNlZC5mZWVfZGF0YV9hdmFpbGFiaWxpdHlfbW9kZS5zaG91bGQuZXF1YWwoJ0wxJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd0b0ludGVybmFsSGV4JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcHJvZHVjZSBoZXgtZW5jb2RlZCBpbnRlcm5hbCBKU09OJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICAgICAgYXdhaXQgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4LnRyYW5zZmVyLnVuc2lnbmVkKTtcblxuICAgICAgY29uc3QgaGV4ID0gdHgudG9JbnRlcm5hbEhleCgpO1xuICAgICAgc2hvdWxkLmV4aXN0KGhleCk7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShoZXgsICdoZXgnKS50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICBqc29uLnNob3VsZC5oYXZlLnByb3BlcnR5KCdzZW5kZXJBZGRyZXNzJyk7XG4gICAgICBqc29uLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjYWxscycpO1xuICAgICAganNvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY2hhaW5JZCcpO1xuICAgICAganNvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndHJhbnNhY3Rpb25UeXBlJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -15,6 +15,12 @@ describe('Starknet TransactionBuilderFactory', () => {
|
|
|
15
15
|
should_1.default.exist(builder);
|
|
16
16
|
});
|
|
17
17
|
});
|
|
18
|
+
describe('getUdcDeployBuilder', () => {
|
|
19
|
+
it('should return a UDC deploy builder', () => {
|
|
20
|
+
const builder = new transactionBuilderFactory_1.TransactionBuilderFactory(coinConfig).getUdcDeployBuilder();
|
|
21
|
+
should_1.default.exist(builder);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
18
24
|
describe('from', () => {
|
|
19
25
|
it('should rebuild unsigned tx from raw hex', async () => {
|
|
20
26
|
const builder = await new transactionBuilderFactory_1.TransactionBuilderFactory(coinConfig).from(starknet_1.rawTx.transfer.unsigned);
|
|
@@ -71,4 +77,4 @@ describe('Starknet TransferBuilder', () => {
|
|
|
71
77
|
});
|
|
72
78
|
});
|
|
73
79
|
});
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixpREFBNEM7QUFDNUMsMEZBQXVGO0FBQ3ZGLHVEQUF5RTtBQUV6RSxRQUFRLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO0lBQ2xELE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxFQUFFLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUkscURBQXlCLENBQUMsVUFBVSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMvRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxFQUFFLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO1lBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUkscURBQXlCLENBQUMsVUFBVSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNoRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDcEIsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxxREFBeUIsQ0FB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SCxFQUFFLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDL0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsdUJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDbEgsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDN0IsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQzdCLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5pbXBvcnQgeyBBY2NvdW50cywgcmF3VHgsIFRFU1RfQU1PVU5UUyB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9zdGFya25ldCc7XG5cbmRlc2NyaWJlKCdTdGFya25ldCBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JywgKCkgPT4ge1xuICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCdzdGFya25ldCcpO1xuXG4gIGRlc2NyaWJlKCdnZXRUcmFuc2ZlckJ1aWxkZXInLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYSB0cmFuc2ZlciBidWlsZGVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpLmdldFRyYW5zZmVyQnVpbGRlcigpO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0VWRjRGVwbG95QnVpbGRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBhIFVEQyBkZXBsb3kgYnVpbGRlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKS5nZXRVZGNEZXBsb3lCdWlsZGVyKCk7XG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVidWlsZCB1bnNpZ25lZCB0eCBmcm9tIHJhdyBoZXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gYXdhaXQgbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZykuZnJvbShyYXdUeC50cmFuc2Zlci51bnNpZ25lZCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IGpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5leGlzdChqc29uKTtcbiAgICAgIGpzb24uc2VuZGVyLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVidWlsZCBzaWduZWQgdHggZnJvbSByYXcgaGV4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGF3YWl0IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpLmZyb20ocmF3VHgudHJhbnNmZXIuc2lnbmVkKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QganNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmV4aXN0KGpzb24pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnU3RhcmtuZXQgVHJhbnNmZXJCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCdzdGFya25ldCcpO1xuXG4gIGNvbnN0IGdldEJ1aWxkZXIgPSAoKSA9PiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcblxuICBkZXNjcmliZSgnQnVpbGQgdW5zaWduZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhbiB1bnNpZ25lZCB0cmFuc2ZlciB3aXRoIHJlcXVpcmVkIGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcylcbiAgICAgICAgLnJlY2VpdmVySWQoQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcylcbiAgICAgICAgLmFtb3VudChURVNUX0FNT1VOVFMuc21hbGwpXG4gICAgICAgIC5ub25jZSgnMCcpXG4gICAgICAgIC5jaGFpbklkKCcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4KTtcblxuICAgICAgY29uc3QganNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmV4aXN0KGpzb24pO1xuICAgICAganNvbi5zZW5kZXIuc2hvdWxkLmVxdWFsKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVmFsaWRhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlamVjdCBtaXNzaW5nIHNlbmRlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCk7XG4gICAgICBidWlsZGVyLnJlY2VpdmVySWQoQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcykuYW1vdW50KFRFU1RfQU1PVU5UUy5zbWFsbCkuY2hhaW5JZCgnMHg1MzRlNWY1MzQ1NTA0ZjRjNDk0MScpO1xuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgb3IgbWlzc2luZyBzZW5kZXIgYWRkcmVzcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgbWlzc2luZyByZWNpcGllbnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0QnVpbGRlcigpO1xuICAgICAgYnVpbGRlci5zZW5kZXIoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcykuYW1vdW50KFRFU1RfQU1PVU5UUy5zbWFsbCkubm9uY2UoJzAnKS5jaGFpbklkKCcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyk7XG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnUmVjZWl2ZXIgaXMgcmVxdWlyZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGludmFsaWQgc2VuZGVyIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZ2V0QnVpbGRlcigpO1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBidWlsZGVyLnNlbmRlcignbm90X2FfdmFsaWRfYWRkcmVzcycpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IG5lZ2F0aXZlIGFtb3VudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCk7XG4gICAgICBzaG91bGQudGhyb3dzKCgpID0+IGJ1aWxkZXIuYW1vdW50KCctMScpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|