@bitgo-beta/sdk-coin-flrp 1.0.1-beta.29 → 1.0.1-beta.290
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/flrp.d.ts +6 -75
- package/dist/src/flrp.d.ts.map +1 -1
- package/dist/src/flrp.js +13 -298
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -2
- package/dist/src/lib/ExportInCTxBuilder.d.ts +51 -0
- package/dist/src/lib/ExportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInCTxBuilder.js +186 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts +47 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInPTxBuilder.js +273 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts +48 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInCTxBuilder.js +215 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts +33 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInPTxBuilder.js +180 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +18 -16
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicInCTransactionBuilder.js +38 -36
- package/dist/src/lib/atomicTransactionBuilder.d.ts +42 -76
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +141 -218
- package/dist/src/lib/iface.d.ts +50 -51
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +22 -10
- package/dist/src/lib/index.d.ts +4 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +10 -2
- package/dist/src/lib/keyPair.d.ts +5 -5
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +17 -9
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +46 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +134 -0
- package/dist/src/lib/transaction.d.ts +8 -73
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +157 -207
- package/dist/src/lib/transactionBuilder.d.ts +107 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +210 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +35 -30
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +133 -74
- package/dist/src/lib/utils.d.ts +74 -147
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +226 -323
- package/dist/test/resources/account.d.ts +49 -0
- package/dist/test/resources/account.d.ts.map +1 -0
- package/dist/test/resources/account.js +52 -0
- package/dist/test/resources/transactionData/exportInC.d.ts +20 -0
- package/dist/test/resources/transactionData/exportInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInC.js +34 -0
- package/dist/test/resources/transactionData/exportInP.d.ts +69 -0
- package/dist/test/resources/transactionData/exportInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInP.js +140 -0
- package/dist/test/resources/transactionData/importInC.d.ts +27 -0
- package/dist/test/resources/transactionData/importInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInC.js +44 -0
- package/dist/test/resources/transactionData/importInP.d.ts +35 -0
- package/dist/test/resources/transactionData/importInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInP.js +58 -0
- package/dist/test/unit/lib/exportInCTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportInCTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportInCTxBuilder.js +166 -0
- package/dist/test/unit/lib/exportInPTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportInPTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportInPTxBuilder.js +121 -0
- package/dist/test/unit/lib/importInCTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importInCTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importInCTxBuilder.js +47 -0
- package/dist/test/unit/lib/importInPTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importInPTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importInPTxBuilder.js +73 -0
- package/dist/test/unit/lib/keyPair.d.ts +2 -0
- package/dist/test/unit/lib/keyPair.d.ts.map +1 -0
- package/dist/test/unit/lib/keyPair.js +158 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts +20 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
- package/dist/test/unit/lib/signFlowTestSuit.js +89 -0
- package/dist/test/unit/lib/utils.js +29 -223
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -13
- package/.eslintignore +0 -5
- package/.eslintrc.json +0 -7
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -0
- package/dist/src/iface.d.ts +0 -25
- package/dist/src/iface.d.ts.map +0 -1
- package/dist/src/iface.js +0 -3
- package/dist/src/lib/constants.d.ts +0 -11
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -17
- package/dist/src/lib/errors.d.ts +0 -8
- package/dist/src/lib/errors.d.ts.map +0 -1
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/exportInCTxBuilder.d.ts +0 -77
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInCTxBuilder.js +0 -170
- package/dist/src/lib/exportInPTxBuilder.d.ts +0 -30
- package/dist/src/lib/exportInPTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInPTxBuilder.js +0 -56
- package/dist/test/unit/flrp.d.ts +0 -2
- package/dist/test/unit/flrp.d.ts.map +0 -1
- package/dist/test/unit/flrp.js +0 -118
- package/dist/test/unit/lib/atomicTransactionBuilder.d.ts +0 -2
- package/dist/test/unit/lib/atomicTransactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/atomicTransactionBuilder.js +0 -222
- package/dist/test/unit/lib/exportTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/exportTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/exportTxBuilder.js +0 -45
- package/dist/test/unit/lib/transaction.d.ts +0 -2
- package/dist/test/unit/lib/transaction.d.ts.map +0 -1
- package/dist/test/unit/lib/transaction.js +0 -460
- package/dist/test/unit/smoke.d.ts +0 -2
- package/dist/test/unit/smoke.d.ts.map +0 -1
- package/dist/test/unit/smoke.js +0 -23
|
@@ -1,91 +1,150 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransactionBuilderFactory =
|
|
6
|
+
exports.TransactionBuilderFactory = void 0;
|
|
7
|
+
const flarejs_1 = require("@flarenetwork/flarejs");
|
|
4
8
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
const ExportInPTxBuilder_1 = require("./ExportInPTxBuilder");
|
|
10
|
+
const ImportInPTxBuilder_1 = require("./ImportInPTxBuilder");
|
|
11
|
+
const ExportInCTxBuilder_1 = require("./ExportInCTxBuilder");
|
|
12
|
+
const ImportInCTxBuilder_1 = require("./ImportInCTxBuilder");
|
|
13
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
14
|
+
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
15
|
+
constructor(_coinConfig) {
|
|
16
|
+
super(_coinConfig);
|
|
17
|
+
this.recoverSigner = false;
|
|
10
18
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Extract credentials from remaining bytes after transaction using FlareJS codec.
|
|
21
|
+
* This is the proper way to parse credentials - using the codec's UnpackPrefix method.
|
|
22
|
+
* @param credentialBytes Remaining bytes after the transaction (starts with numCredentials)
|
|
23
|
+
* @param codec The FlareJS codec to use for unpacking
|
|
24
|
+
* @returns Array of parsed credentials
|
|
25
|
+
*/
|
|
26
|
+
extractCredentialsWithCodec(credentialBytes, codec) {
|
|
27
|
+
const credentials = [];
|
|
28
|
+
if (credentialBytes.length < 4) {
|
|
29
|
+
return credentials;
|
|
30
|
+
}
|
|
31
|
+
// Skip the first 4 bytes (numCredentials as Int type)
|
|
32
|
+
// The codec doesn't know about this Int, so we skip it manually
|
|
33
|
+
let remainingBytes = credentialBytes.slice(4);
|
|
34
|
+
let moreCredentials = true;
|
|
35
|
+
do {
|
|
36
|
+
try {
|
|
37
|
+
const unpacked = codec.UnpackPrefix(remainingBytes);
|
|
38
|
+
credentials.push(unpacked[0]);
|
|
39
|
+
remainingBytes = unpacked[1];
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
moreCredentials = false;
|
|
43
|
+
}
|
|
44
|
+
} while (remainingBytes.length > 0 && moreCredentials);
|
|
45
|
+
return credentials;
|
|
30
46
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
/** @inheritdoc */
|
|
48
|
+
from(raw) {
|
|
49
|
+
utils_1.default.validateRawTransaction(raw);
|
|
50
|
+
const rawNoHex = utils_1.default.removeHexPrefix(raw);
|
|
51
|
+
const rawBuffer = Buffer.from(rawNoHex, 'hex');
|
|
52
|
+
let txSource;
|
|
53
|
+
const network = this._coinConfig.network;
|
|
54
|
+
let tx;
|
|
55
|
+
let credentials = [];
|
|
56
|
+
try {
|
|
57
|
+
txSource = 'EVM';
|
|
58
|
+
const evmManager = flarejs_1.utils.getManagerForVM('EVM');
|
|
59
|
+
// Use getCodecFromBuffer to get both codec and remaining bytes
|
|
60
|
+
const [codec, txBytes] = evmManager.getCodecFromBuffer(rawBuffer);
|
|
61
|
+
// UnpackPrefix returns [transaction, remainingBytes]
|
|
62
|
+
const [transaction, credentialBytes] = codec.UnpackPrefix(txBytes);
|
|
63
|
+
tx = transaction;
|
|
64
|
+
// Extract credentials from remaining bytes using codec
|
|
65
|
+
if (credentialBytes.length > 4) {
|
|
66
|
+
credentials = this.extractCredentialsWithCodec(credentialBytes, codec);
|
|
67
|
+
}
|
|
68
|
+
const blockchainId = tx.getBlockchainId();
|
|
69
|
+
if (blockchainId === network.cChainBlockchainID) {
|
|
70
|
+
console.log('Parsed as EVM transaction on C-Chain');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
txSource = 'PVM';
|
|
75
|
+
const pvmManager = flarejs_1.utils.getManagerForVM('PVM');
|
|
76
|
+
// Use getCodecFromBuffer to get both codec and remaining bytes
|
|
77
|
+
const [codec, txBytes] = pvmManager.getCodecFromBuffer(rawBuffer);
|
|
78
|
+
// UnpackPrefix returns [transaction, remainingBytes]
|
|
79
|
+
const [transaction, credentialBytes] = codec.UnpackPrefix(txBytes);
|
|
80
|
+
tx = transaction;
|
|
81
|
+
// Extract credentials from remaining bytes using codec
|
|
82
|
+
if (credentialBytes.length > 4) {
|
|
83
|
+
credentials = this.extractCredentialsWithCodec(credentialBytes, codec);
|
|
84
|
+
}
|
|
85
|
+
const blockchainId = tx.getBlockchainId();
|
|
86
|
+
if (blockchainId === network.blockchainID) {
|
|
87
|
+
console.log('Parsed as PVM transaction on P-Chain');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (txSource === 'EVM') {
|
|
91
|
+
if (ExportInCTxBuilder_1.ExportInCTxBuilder.verifyTxType(tx._type)) {
|
|
92
|
+
const exportBuilder = this.getExportInCBuilder();
|
|
93
|
+
exportBuilder.initBuilder(tx, rawBuffer, credentials);
|
|
94
|
+
return exportBuilder;
|
|
95
|
+
}
|
|
96
|
+
else if (ImportInCTxBuilder_1.ImportInCTxBuilder.verifyTxType(tx._type)) {
|
|
97
|
+
const importBuilder = this.getImportInCBuilder();
|
|
98
|
+
importBuilder.initBuilder(tx, rawBuffer, credentials);
|
|
99
|
+
return importBuilder;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (txSource === 'PVM') {
|
|
103
|
+
if (ImportInPTxBuilder_1.ImportInPTxBuilder.verifyTxType(tx._type)) {
|
|
104
|
+
const importBuilder = this.getImportInPBuilder();
|
|
105
|
+
importBuilder.initBuilder(tx, rawBuffer, credentials);
|
|
106
|
+
return importBuilder;
|
|
107
|
+
}
|
|
108
|
+
else if (ExportInPTxBuilder_1.ExportInPTxBuilder.verifyTxType(tx._type)) {
|
|
109
|
+
const exportBuilder = this.getExportInPBuilder();
|
|
110
|
+
exportBuilder.initBuilder(tx, rawBuffer, credentials);
|
|
111
|
+
return exportBuilder;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
throw new sdk_core_1.NotSupported('Transaction type not supported');
|
|
34
115
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
get transactionType() {
|
|
39
|
-
return sdk_core_1.TransactionType.AddDelegator;
|
|
116
|
+
/** @inheritdoc */
|
|
117
|
+
getTransferBuilder() {
|
|
118
|
+
throw new sdk_core_1.NotSupported('Transfer is not supported in P Chain');
|
|
40
119
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Export Cross chain transfer
|
|
122
|
+
*/
|
|
123
|
+
getExportInPBuilder() {
|
|
124
|
+
return new ExportInPTxBuilder_1.ExportInPTxBuilder(this._coinConfig);
|
|
44
125
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
class TransactionBuilderFactory {
|
|
51
|
-
constructor(coinConfig) {
|
|
52
|
-
this._coinConfig = coinConfig;
|
|
126
|
+
/**
|
|
127
|
+
* Import Cross chain transfer
|
|
128
|
+
*/
|
|
129
|
+
getImportInPBuilder() {
|
|
130
|
+
return new ImportInPTxBuilder_1.ImportInPTxBuilder(this._coinConfig);
|
|
53
131
|
}
|
|
54
132
|
/**
|
|
55
|
-
*
|
|
56
|
-
* @param txHex - Transaction hex string
|
|
133
|
+
* Import in C chain Cross chain transfer
|
|
57
134
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// For now, return a basic export builder as that's the most common use case
|
|
61
|
-
if (!txHex) {
|
|
62
|
-
throw new Error('Transaction hex is required');
|
|
63
|
-
}
|
|
64
|
-
// Create a mock export builder for now
|
|
65
|
-
// In the future, this will parse the transaction and determine the correct type
|
|
66
|
-
const builder = new ExportTxBuilder(this._coinConfig);
|
|
67
|
-
// Initialize with the hex data (placeholder)
|
|
68
|
-
builder.initBuilder({ txHex });
|
|
69
|
-
return builder;
|
|
135
|
+
getImportInCBuilder() {
|
|
136
|
+
return new ImportInCTxBuilder_1.ImportInCTxBuilder(this._coinConfig);
|
|
70
137
|
}
|
|
71
138
|
/**
|
|
72
|
-
*
|
|
73
|
-
* @param type - Transaction type
|
|
139
|
+
* Export in C chain Cross chain transfer
|
|
74
140
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
case sdk_core_1.TransactionType.AddValidator:
|
|
82
|
-
return new ValidatorTxBuilder(this._coinConfig);
|
|
83
|
-
case sdk_core_1.TransactionType.AddDelegator:
|
|
84
|
-
return new DelegatorTxBuilder(this._coinConfig);
|
|
85
|
-
default:
|
|
86
|
-
throw new sdk_core_1.NotImplementedError(`Transaction type ${type} not supported`);
|
|
87
|
-
}
|
|
141
|
+
getExportInCBuilder() {
|
|
142
|
+
return new ExportInCTxBuilder_1.ExportInCTxBuilder(this._coinConfig);
|
|
143
|
+
}
|
|
144
|
+
/** @inheritdoc */
|
|
145
|
+
getWalletInitializationBuilder() {
|
|
146
|
+
throw new sdk_core_1.NotSupported('Wallet initialization is not needed');
|
|
88
147
|
}
|
|
89
148
|
}
|
|
90
149
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBNEU7QUFDNUUseUVBQXNFO0FBRXRFLDJEQUEyRDtBQUMzRCxNQUFhLGVBQWdCLFNBQVEsbURBQXdCO0lBQzNELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixxREFBcUQ7SUFDdkQsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGVBQWdCLFNBQVEsbURBQXdCO0lBQzNELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixxREFBcUQ7SUFDdkQsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGtCQUFtQixTQUFRLG1EQUF3QjtJQUM5RCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIscURBQXFEO0lBQ3ZELENBQUM7Q0FDRjtBQVRELGdEQVNDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxtREFBd0I7SUFDOUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxZQUFZLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLHFEQUFxRDtJQUN2RCxDQUFDO0NBQ0Y7QUFURCxnREFTQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx5QkFBeUI7SUFHcEMsWUFBWSxVQUFnQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQWE7UUFDaEIsc0ZBQXNGO1FBQ3RGLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELHVDQUF1QztRQUN2QyxnRkFBZ0Y7UUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRELDZDQUE2QztRQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUvQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQXFCO1FBQzlCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLDBCQUFlLENBQUMsTUFBTTtnQkFDekIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0MsS0FBSywwQkFBZSxDQUFDLE1BQU07Z0JBQ3pCLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLEtBQUssMEJBQWUsQ0FBQyxZQUFZO2dCQUMvQixPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELEtBQUssMEJBQWUsQ0FBQyxZQUFZO2dCQUMvQixPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xEO2dCQUNFLE1BQU0sSUFBSSw4QkFBbUIsQ0FBQyxvQkFBb0IsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE5Q0QsOERBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuXG4vLyBQbGFjZWhvbGRlciBidWlsZGVycyAtIGJhc2ljIGltcGxlbWVudGF0aW9ucyBmb3IgdGVzdGluZ1xuZXhwb3J0IGNsYXNzIEV4cG9ydFR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5FeHBvcnQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEltcG9ydFR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5JbXBvcnQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvclR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGRWYWxpZGF0b3I7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGVnYXRvclR4QnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGREZWxlZ2F0b3I7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIC8vIERvbid0IHRocm93IGVycm9yLCBhbGxvdyBwbGFjZWhvbGRlciBmdW5jdGlvbmFsaXR5XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZvciBGbGFyZSBQLWNoYWluIHRyYW5zYWN0aW9uIGJ1aWxkZXJzXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHRoaXMuX2NvaW5Db25maWcgPSBjb2luQ29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZnJvbSBhIGhleCBzdHJpbmdcbiAgICogQHBhcmFtIHR4SGV4IC0gVHJhbnNhY3Rpb24gaGV4IHN0cmluZ1xuICAgKi9cbiAgZnJvbSh0eEhleDogc3RyaW5nKTogQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICAvLyBUT0RPOiBQYXJzZSB0aGUgaGV4IGFuZCBkZXRlcm1pbmUgdHJhbnNhY3Rpb24gdHlwZSwgdGhlbiByZXR1cm4gYXBwcm9wcmlhdGUgYnVpbGRlclxuICAgIC8vIEZvciBub3csIHJldHVybiBhIGJhc2ljIGV4cG9ydCBidWlsZGVyIGFzIHRoYXQncyB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGhleCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG1vY2sgZXhwb3J0IGJ1aWxkZXIgZm9yIG5vd1xuICAgIC8vIEluIHRoZSBmdXR1cmUsIHRoaXMgd2lsbCBwYXJzZSB0aGUgdHJhbnNhY3Rpb24gYW5kIGRldGVybWluZSB0aGUgY29ycmVjdCB0eXBlXG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBFeHBvcnRUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggdGhlIGhleCBkYXRhIChwbGFjZWhvbGRlcilcbiAgICBidWlsZGVyLmluaXRCdWlsZGVyKHsgdHhIZXggfSk7XG5cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBhIHNwZWNpZmljIHR5cGVcbiAgICogQHBhcmFtIHR5cGUgLSBUcmFuc2FjdGlvbiB0eXBlXG4gICAqL1xuICBnZXRCdWlsZGVyKHR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5FeHBvcnQ6XG4gICAgICAgIHJldHVybiBuZXcgRXhwb3J0VHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuSW1wb3J0OlxuICAgICAgICByZXR1cm4gbmV3IEltcG9ydFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZFZhbGlkYXRvcjpcbiAgICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0b3JUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5BZGREZWxlZ2F0b3I6XG4gICAgICAgIHJldHVybiBuZXcgRGVsZWdhdG9yVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoYFRyYW5zYWN0aW9uIHR5cGUgJHt0eXBlfSBub3Qgc3VwcG9ydGVkYCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBOEY7QUFDOUYsbURBQW1GO0FBR25GLDZEQUEwRDtBQUMxRCw2REFBMEQ7QUFDMUQsNkRBQTBEO0FBQzFELDZEQUEwRDtBQUMxRCxvREFBNEI7QUFFNUIsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFHMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQUloQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssMkJBQTJCLENBQUMsZUFBMkIsRUFBRSxLQUFVO1FBQ3pFLE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7UUFDckMsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsZ0VBQWdFO1FBQ2hFLElBQUksY0FBYyxHQUFlLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTNCLEdBQUcsQ0FBQztZQUNGLElBQUksQ0FBQztnQkFDSCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNwRCxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQWUsQ0FBQyxDQUFDO2dCQUM1QyxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBZSxDQUFDO1lBQzdDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUMs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LENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksdUNBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksdUNBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksdUNBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGO0FBdEpELDhEQXNKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHV0aWxzIGFzIEZsYXJlVXRpbHMsIGV2bVNlcmlhbCwgcHZtU2VyaWFsLCBDcmVkZW50aWFsIH0gZnJvbSAnQGZsYXJlbmV0d29yay9mbGFyZWpzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RTdXBwb3J0ZWQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBGbGFyZU5ldHdvcmssIEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEV4cG9ydEluUFR4QnVpbGRlciB9IGZyb20gJy4vRXhwb3J0SW5QVHhCdWlsZGVyJztcbmltcG9ydCB7IEltcG9ydEluUFR4QnVpbGRlciB9IGZyb20gJy4vSW1wb3J0SW5QVHhCdWlsZGVyJztcbmltcG9ydCB7IEV4cG9ydEluQ1R4QnVpbGRlciB9IGZyb20gJy4vRXhwb3J0SW5DVHhCdWlsZGVyJztcbmltcG9ydCB7IEltcG9ydEluQ1R4QnVpbGRlciB9IGZyb20gJy4vSW1wb3J0SW5DVHhCdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIHByb3RlY3RlZCByZWNvdmVyU2lnbmVyID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgY3JlZGVudGlhbHMgZnJvbSByZW1haW5pbmcgYnl0ZXMgYWZ0ZXIgdHJhbnNhY3Rpb24gdXNpbmcgRmxhcmVKUyBjb2RlYy5cbiAgICogVGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBwYXJzZSBjcmVkZW50aWFscyAtIHVzaW5nIHRoZSBjb2RlYydzIFVucGFja1ByZWZpeCBtZXRob2QuXG4gICAqIEBwYXJhbSBjcmVkZW50aWFsQnl0ZXMgUmVtYWluaW5nIGJ5dGVzIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiAoc3RhcnRzIHdpdGggbnVtQ3JlZGVudGlhbHMpXG4gICAqIEBwYXJhbSBjb2RlYyBUaGUgRmxhcmVKUyBjb2RlYyB0byB1c2UgZm9yIHVucGFja2luZ1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiBwYXJzZWQgY3JlZGVudGlhbHNcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdENyZWRlbnRpYWxzV2l0aENvZGVjKGNyZWRlbnRpYWxCeXRlczogVWludDhBcnJheSwgY29kZWM6IGFueSk6IENyZWRlbnRpYWxbXSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSA9IFtdO1xuICAgIGlmIChjcmVkZW50aWFsQnl0ZXMubGVuZ3RoIDwgNCkge1xuICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH1cblxuICAgIC8vIFNraXAgdGhlIGZpcnN0IDQgYnl0ZXMgKG51bUNyZWRlbnRpYWxzIGFzIEludCB0eXBlKVxuICAgIC8vIFRoZSBjb2RlYyBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyBJbnQsIHNvIHdlIHNraXAgaXQgbWFudWFsbHlcbiAgICBsZXQgcmVtYWluaW5nQnl0ZXM6IFVpbnQ4QXJyYXkgPSBjcmVkZW50aWFsQnl0ZXMuc2xpY2UoNCk7XG4gICAgbGV0IG1vcmVDcmVkZW50aWFscyA9IHRydWU7XG5cbiAgICBkbyB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1bnBhY2tlZCA9IGNvZGVjLlVucGFja1ByZWZpeChyZW1haW5pbmdCeXRlcyk7XG4gICAgICAgIGNyZWRlbnRpYWxzLnB1c2godW5wYWNrZWRbMF0gYXMgQ3JlZGVudGlhbCk7XG4gICAgICAgIHJlbWFpbmluZ0J5dGVzID0gdW5wYWNrZWRbMV0gYXMgVWludDhBcnJheTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbW9yZUNyZWRlbnRpYWxzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSB3aGlsZSAocmVtYWluaW5nQnl0ZXMubGVuZ3RoID4gMCAmJiBtb3JlQ3JlZGVudGlhbHMpO1xuXG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICBjb25zdCByYXdOb0hleCA9IHV0aWxzLnJlbW92ZUhleFByZWZpeChyYXcpO1xuICAgIGNvbnN0IHJhd0J1ZmZlciA9IEJ1ZmZlci5mcm9tKHJhd05vSGV4LCAnaGV4Jyk7XG4gICAgbGV0IHR4U291cmNlOiAnRVZNJyB8ICdQVk0nO1xuXG4gICAgY29uc3QgbmV0d29yayA9IHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBGbGFyZU5ldHdvcms7XG4gICAgbGV0IHR4OiBhbnk7XG4gICAgbGV0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW10gPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICB0eFNvdXJjZSA9ICdFVk0nO1xuICAgICAgY29uc3QgZXZtTWFuYWdlciA9IEZsYXJlVXRpbHMuZ2V0TWFuYWdlckZvclZNKCdFVk0nKTtcblxuICAgICAgLy8gVXNlIGdldENvZGVjRnJvbUJ1ZmZlciB0byBnZXQgYm90aCBjb2RlYyBhbmQgcmVtYWluaW5nIGJ5dGVzXG4gICAgICBjb25zdCBbY29kZWMsIHR4Qnl0ZXNdID0gZXZtTWFuYWdlci5nZXRDb2RlY0Zyb21CdWZmZXIocmF3QnVmZmVyKTtcbiAgICAgIC8vIFVucGFja1ByZWZpeCByZXR1cm5zIFt0cmFuc2FjdGlvbiwgcmVtYWluaW5nQnl0ZXNdXG4gICAgICBjb25zdCBbdHJhbnNhY3Rpb24sIGNyZWRlbnRpYWxCeXRlc10gPSBjb2RlYy5VbnBhY2tQcmVmaXgodHhCeXRlcykgYXMgW2FueSwgVWludDhBcnJheV07XG4gICAgICB0eCA9IHRyYW5zYWN0aW9uO1xuXG4gICAgICAvLyBFeHRyYWN0IGNyZWRlbnRpYWxzIGZyb20gcmVtYWluaW5nIGJ5dGVzIHVzaW5nIGNvZGVjXG4gICAgICBpZiAoY3JlZGVudGlhbEJ5dGVzLmxlbmd0aCA+IDQpIHtcbiAgICAgICAgY3JlZGVudGlhbHMgPSB0aGlzLmV4dHJhY3RDcmVkZW50aWFsc1dpdGhDb2RlYyhjcmVkZW50aWFsQnl0ZXMsIGNvZGVjKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmxvY2tjaGFpbklkID0gdHguZ2V0QmxvY2tjaGFpbklkKCk7XG4gICAgICBpZiAoYmxvY2tjaGFpbklkID09PSBuZXR3b3JrLmNDaGFpbkJsb2NrY2hhaW5JRCkge1xuICAgICAgICBjb25zb2xlLmxvZygnUGFyc2VkIGFzIEVWTSB0cmFuc2FjdGlvbiBvbiBDLUNoYWluJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdHhTb3VyY2UgPSAnUFZNJztcbiAgICAgIGNvbnN0IHB2bU1hbmFnZXIgPSBGbGFyZVV0aWxzLmdldE1hbmFnZXJGb3JWTSgnUFZNJyk7XG5cbiAgICAgIC8vIFVzZSBnZXRDb2RlY0Zyb21CdWZmZXIgdG8gZ2V0IGJvdGggY29kZWMgYW5kIHJlbWFpbmluZyBieXRlc1xuICAgICAgY29uc3QgW2NvZGVjLCB0eEJ5dGVzXSA9IHB2bU1hbmFnZXIuZ2V0Q29kZWNGcm9tQnVmZmVyKHJhd0J1ZmZlcik7XG4gICAgICAvLyBVbnBhY2tQcmVmaXggcmV0dXJucyBbdHJhbnNhY3Rpb24sIHJlbWFpbmluZ0J5dGVzXVxuICAgICAgY29uc3QgW3RyYW5zYWN0aW9uLCBjcmVkZW50aWFsQnl0ZXNdID0gY29kZWMuVW5wYWNrUHJlZml4KHR4Qnl0ZXMpIGFzIFthbnksIFVpbnQ4QXJyYXldO1xuICAgICAgdHggPSB0cmFuc2FjdGlvbjtcblxuICAgICAgLy8gRXh0cmFjdCBjcmVkZW50aWFscyBmcm9tIHJlbWFpbmluZyBieXRlcyB1c2luZyBjb2RlY1xuICAgICAgaWYgKGNyZWRlbnRpYWxCeXRlcy5sZW5ndGggPiA0KSB7XG4gICAgICAgIGNyZWRlbnRpYWxzID0gdGhpcy5leHRyYWN0Q3JlZGVudGlhbHNXaXRoQ29kZWMoY3JlZGVudGlhbEJ5dGVzLCBjb2RlYyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJsb2NrY2hhaW5JZCA9IHR4LmdldEJsb2NrY2hhaW5JZCgpO1xuICAgICAgaWYgKGJsb2NrY2hhaW5JZCA9PT0gbmV0d29yay5ibG9ja2NoYWluSUQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1BhcnNlZCBhcyBQVk0gdHJhbnNhY3Rpb24gb24gUC1DaGFpbicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eFNvdXJjZSA9PT0gJ0VWTScpIHtcbiAgICAgIGlmIChFeHBvcnRJbkNUeEJ1aWxkZXIudmVyaWZ5VHhUeXBlKHR4Ll90eXBlKSkge1xuICAgICAgICBjb25zdCBleHBvcnRCdWlsZGVyID0gdGhpcy5nZXRFeHBvcnRJbkNCdWlsZGVyKCk7XG4gICAgICAgIGV4cG9ydEJ1aWxkZXIuaW5pdEJ1aWxkZXIodHggYXMgZXZtU2VyaWFsLkV4cG9ydFR4LCByYXdCdWZmZXIsIGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmV0dXJuIGV4cG9ydEJ1aWxkZXI7XG4gICAgICB9IGVsc2UgaWYgKEltcG9ydEluQ1R4QnVpbGRlci52ZXJpZnlUeFR5cGUodHguX3R5cGUpKSB7XG4gICAgICAgIGNvbnN0IGltcG9ydEJ1aWxkZXIgPSB0aGlzLmdldEltcG9ydEluQ0J1aWxkZXIoKTtcbiAgICAgICAgaW1wb3J0QnVpbGRlci5pbml0QnVpbGRlcih0eCBhcyBldm1TZXJpYWwuSW1wb3J0VHgsIHJhd0J1ZmZlciwgY3JlZGVudGlhbHMpO1xuICAgICAgICByZXR1cm4gaW1wb3J0QnVpbGRlcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR4U291cmNlID09PSAnUFZNJykge1xuICAgICAgaWYgKEltcG9ydEluUFR4QnVpbGRlci52ZXJpZnlUeFR5cGUodHguX3R5cGUpKSB7XG4gICAgICAgIGNvbnN0IGltcG9ydEJ1aWxkZXIgPSB0aGlzLmdldEltcG9ydEluUEJ1aWxkZXIoKTtcbiAgICAgICAgaW1wb3J0QnVpbGRlci5pbml0QnVpbGRlcih0eCBhcyBwdm1TZXJpYWwuSW1wb3J0VHgsIHJhd0J1ZmZlciwgY3JlZGVudGlhbHMpO1xuICAgICAgICByZXR1cm4gaW1wb3J0QnVpbGRlcjtcbiAgICAgIH0gZWxzZSBpZiAoRXhwb3J0SW5QVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eC5fdHlwZSkpIHtcbiAgICAgICAgY29uc3QgZXhwb3J0QnVpbGRlciA9IHRoaXMuZ2V0RXhwb3J0SW5QQnVpbGRlcigpO1xuICAgICAgICBleHBvcnRCdWlsZGVyLmluaXRCdWlsZGVyKHR4IGFzIHB2bVNlcmlhbC5FeHBvcnRUeCwgcmF3QnVmZmVyLCBjcmVkZW50aWFscyk7XG4gICAgICAgIHJldHVybiBleHBvcnRCdWlsZGVyO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2ZlciBpcyBub3Qgc3VwcG9ydGVkIGluIFAgQ2hhaW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgQ3Jvc3MgY2hhaW4gdHJhbnNmZXJcbiAgICovXG4gIGdldEV4cG9ydEluUEJ1aWxkZXIoKTogRXhwb3J0SW5QVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEV4cG9ydEluUFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgQ3Jvc3MgY2hhaW4gdHJhbnNmZXJcbiAgICovXG4gIGdldEltcG9ydEluUEJ1aWxkZXIoKTogSW1wb3J0SW5QVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEltcG9ydEluUFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgaW4gQyBjaGFpbiBDcm9zcyBjaGFpbiB0cmFuc2ZlclxuICAgKi9cbiAgZ2V0SW1wb3J0SW5DQnVpbGRlcigpOiBJbXBvcnRJbkNUeEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgSW1wb3J0SW5DVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBpbiBDIGNoYWluIENyb3NzIGNoYWluIHRyYW5zZmVyXG4gICAqL1xuICBnZXRFeHBvcnRJbkNCdWlsZGVyKCk6IEV4cG9ydEluQ1R4QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBFeHBvcnRJbkNUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnV2FsbGV0IGluaXRpYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQnKTtcbiAgfVxufVxuIl19
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -1,214 +1,141 @@
|
|
|
1
|
-
import { TransferableOutput } from '@flarenetwork/flarejs';
|
|
1
|
+
import { Signature, TransferableOutput, Id } from '@flarenetwork/flarejs';
|
|
2
2
|
import { BaseUtils, Entry } from '@bitgo-beta/sdk-core';
|
|
3
3
|
import { FlareNetwork } from '@bitgo-beta/statics';
|
|
4
|
-
import {
|
|
4
|
+
import { Buffer } from 'buffer';
|
|
5
|
+
import { Output, DeprecatedTx } from './iface';
|
|
5
6
|
export declare class Utils implements BaseUtils {
|
|
7
|
+
/**
|
|
8
|
+
* Check if addresses in wallet match UTXO output addresses
|
|
9
|
+
*/
|
|
6
10
|
includeIn(walletAddresses: string[], otxoOutputAddresses: string[]): boolean;
|
|
7
11
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
11
|
-
* @returns {boolean} - the validation result
|
|
12
|
+
* Validates a Flare address or array of addresses
|
|
13
|
+
* @param {string | string[]} address - address(es) to validate
|
|
14
|
+
* @returns {boolean} - validation result
|
|
12
15
|
*/
|
|
13
|
-
/** @inheritdoc */
|
|
14
16
|
isValidAddress(address: string | string[]): boolean;
|
|
15
17
|
private isValidAddressRegex;
|
|
16
18
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
20
|
-
* @returns {boolean} - the validation result
|
|
19
|
+
* Validates a block ID
|
|
20
|
+
* @param {string} hash - block ID to validate
|
|
21
|
+
* @returns {boolean} - validation result
|
|
21
22
|
*/
|
|
22
|
-
/** @inheritdoc */
|
|
23
23
|
isValidBlockId(hash: string): boolean;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* @param {string} pub - the public key to be validated
|
|
29
|
-
* @returns {boolean} - the validation result
|
|
25
|
+
* Validates a public key
|
|
26
|
+
* @param {string} pub - public key to validate
|
|
27
|
+
* @returns {boolean} - validation result
|
|
30
28
|
*/
|
|
31
29
|
isValidPublicKey(pub: string): boolean;
|
|
32
|
-
parseAddress: (pub: string) => Buffer;
|
|
33
30
|
/**
|
|
34
|
-
*
|
|
35
|
-
* private key
|
|
36
|
-
*
|
|
37
|
-
* The protocol key format is described in the @stacks/transactions npm package, in the
|
|
38
|
-
* createStacksPrivateKey function:
|
|
39
|
-
* https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/keys.ts#L125
|
|
40
|
-
*
|
|
41
|
-
* @param {string} prv - the private key (or extended private key) to be validated
|
|
42
|
-
* @returns {boolean} - the validation result
|
|
31
|
+
* Validates a private key
|
|
32
|
+
* @param {string} prv - private key to validate
|
|
33
|
+
* @returns {boolean} - validation result
|
|
43
34
|
*/
|
|
44
35
|
isValidPrivateKey(prv: string): boolean;
|
|
45
36
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* @param {string} maybe - the string to be validated
|
|
49
|
-
* @returns {boolean} - the validation result
|
|
37
|
+
* Checks if a string contains only hex characters
|
|
50
38
|
*/
|
|
51
|
-
allHexChars(
|
|
39
|
+
allHexChars(str: string): boolean;
|
|
52
40
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* @param {string} address - the Ethereum address to validate
|
|
57
|
-
* @returns {boolean} - true if valid Ethereum address format
|
|
41
|
+
* Creates a signature using the Flare network parameters
|
|
42
|
+
* Returns a 65-byte signature (64 bytes signature + 1 byte recovery parameter)
|
|
58
43
|
*/
|
|
59
|
-
|
|
44
|
+
createSignature(network: FlareNetwork, message: Buffer, prv: Buffer): Buffer;
|
|
60
45
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* @param {T} obj - the source object
|
|
64
|
-
* @param {K[]} keys - array of property keys to pick
|
|
65
|
-
* @returns {Pick<T, K>} - new object with only the specified properties
|
|
46
|
+
* Verifies a signature
|
|
66
47
|
*/
|
|
67
|
-
|
|
48
|
+
verifySignature(network: FlareNetwork, message: Buffer, signature: Buffer, publicKey: Buffer): boolean;
|
|
68
49
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* @param {unknown} a - first value to compare
|
|
72
|
-
* @param {unknown} b - second value to compare
|
|
73
|
-
* @returns {boolean} - true if values are deeply equal
|
|
50
|
+
* Creates a new signature object
|
|
74
51
|
*/
|
|
75
|
-
|
|
76
|
-
/** @inheritdoc */
|
|
77
|
-
isValidSignature(signature: string): boolean;
|
|
78
|
-
/** @inheritdoc */
|
|
79
|
-
isValidTransactionId(txId: string): boolean;
|
|
52
|
+
createNewSig(sigHex: string): Signature;
|
|
80
53
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* @param
|
|
85
|
-
* @return signature
|
|
54
|
+
* Creates an empty signature with embedded address for signature slot identification.
|
|
55
|
+
* The address is embedded at position 90 (after the first 45 zero bytes).
|
|
56
|
+
* This allows the signing logic to determine which slot belongs to which address.
|
|
57
|
+
* @param addressHex The 20-byte address in hex format (40 chars, without 0x prefix)
|
|
86
58
|
*/
|
|
87
|
-
|
|
59
|
+
createEmptySigWithAddress(addressHex: string): Signature;
|
|
88
60
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* @param message
|
|
92
|
-
* @param signature
|
|
93
|
-
* @param publicKey - public key instead of private key for verification
|
|
94
|
-
* @return true if it's verify successful
|
|
61
|
+
* Extracts the embedded address from an empty signature.
|
|
62
|
+
* Returns the address hex string (40 chars) or empty string if not found.
|
|
95
63
|
*/
|
|
96
|
-
|
|
64
|
+
getAddressFromEmptySig(sig: string): string;
|
|
97
65
|
/**
|
|
98
|
-
*
|
|
99
|
-
* @param network
|
|
100
|
-
* @param message
|
|
101
|
-
* @param signature
|
|
102
|
-
* @return recovered public key
|
|
66
|
+
* Computes SHA256 hash
|
|
103
67
|
*/
|
|
104
|
-
recoverySignature(network: FlareNetwork, message: Buffer, signature: Buffer): Buffer;
|
|
105
68
|
sha256(buf: Uint8Array): Buffer;
|
|
106
69
|
/**
|
|
107
|
-
*
|
|
108
|
-
* It's to reuse in TransactionBuilder and TransactionBuilderFactory
|
|
109
|
-
*
|
|
110
|
-
* @param rawTransaction Transaction as hex string
|
|
70
|
+
* Validates raw transaction format
|
|
111
71
|
*/
|
|
112
72
|
validateRawTransaction(rawTransaction: string): void;
|
|
113
73
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* @param {DeprecatedTx} tx
|
|
117
|
-
* @param {string} blockchainId
|
|
118
|
-
* @returns true if tx is for blockchainId
|
|
119
|
-
*/
|
|
120
|
-
isTransactionOf(tx: DeprecatedTx, blockchainId: string): boolean;
|
|
121
|
-
/**
|
|
122
|
-
* Check if Output is from PVM.
|
|
123
|
-
* Output could be EVM or PVM output.
|
|
124
|
-
* @param {DeprecatedOutput} output
|
|
125
|
-
* @returns {boolean} output has transferable output structure
|
|
126
|
-
*/
|
|
127
|
-
deprecatedIsTransferableOutput(output: DeprecatedOutput): boolean;
|
|
128
|
-
/**
|
|
129
|
-
* Check if Output is from PVM.
|
|
130
|
-
* Output could be EVM or PVM output.
|
|
131
|
-
* @param {Output} output
|
|
132
|
-
* @returns {boolean} output is TransferableOutput
|
|
74
|
+
* Checks if output is TransferableOutput type
|
|
133
75
|
*/
|
|
134
76
|
isTransferableOutput(output: Output): output is TransferableOutput;
|
|
135
77
|
/**
|
|
136
|
-
*
|
|
137
|
-
* @param network required to stringify addresses
|
|
138
|
-
* @return mapper function
|
|
139
|
-
*/
|
|
140
|
-
deprecatedMapOutputToEntry(network: FlareNetwork): (output: DeprecatedOutput) => Entry;
|
|
141
|
-
/**
|
|
142
|
-
* Return a mapper function to that network address representation.
|
|
143
|
-
* @param network required to stringify addresses
|
|
144
|
-
* @return mapper function
|
|
78
|
+
* Maps outputs to entry format
|
|
145
79
|
*/
|
|
146
80
|
mapOutputToEntry(network: FlareNetwork): (Output: any) => Entry;
|
|
147
81
|
/**
|
|
148
|
-
*
|
|
149
|
-
* @param hex string
|
|
150
|
-
* @returns hex without 0x
|
|
82
|
+
* Removes 0x prefix from hex string
|
|
151
83
|
*/
|
|
152
84
|
removeHexPrefix(hex: string): string;
|
|
153
85
|
/**
|
|
154
|
-
*
|
|
155
|
-
* @param {string} outputidx number
|
|
156
|
-
* @return {Buffer} buffer of size 4 with that number value
|
|
86
|
+
* Converts output index to buffer
|
|
157
87
|
*/
|
|
158
88
|
outputidxNumberToBuffer(outputidx: string): Buffer;
|
|
159
89
|
/**
|
|
160
|
-
*
|
|
161
|
-
* @param {Buffer} outputidx
|
|
162
|
-
* @return {string} outputidx number
|
|
90
|
+
* Converts output index buffer to number string
|
|
163
91
|
*/
|
|
164
92
|
outputidxBufferToNumber(outputidx: Buffer): string;
|
|
93
|
+
isValidSignature(signature: string): boolean;
|
|
94
|
+
isValidTransactionId(txId: string): boolean;
|
|
165
95
|
/**
|
|
166
|
-
*
|
|
167
|
-
* @param {string} data - CB58 encoded string
|
|
168
|
-
* @returns {Buffer} decoded buffer
|
|
96
|
+
* Helper method to convert address components to string
|
|
169
97
|
*/
|
|
170
|
-
|
|
98
|
+
addressToString: (hrp: string, prefix: string, address: Buffer) => string;
|
|
171
99
|
/**
|
|
172
|
-
*
|
|
173
|
-
* @param {string} hrp - Human readable part
|
|
174
|
-
* @param {string} chainid - Chain identifier
|
|
175
|
-
* @param {Buffer} addressBuffer - Address buffer
|
|
176
|
-
* @returns {string} Address string
|
|
100
|
+
* Decodes a base58 string with checksum to a Buffer
|
|
177
101
|
*/
|
|
178
|
-
|
|
102
|
+
cb58Decode(str: string): Buffer;
|
|
179
103
|
/**
|
|
180
|
-
*
|
|
181
|
-
* Follows FlareJS utils.stringToBytes pattern
|
|
182
|
-
* @param {string} text - Text to convert
|
|
183
|
-
* @returns {Uint8Array} Byte array
|
|
104
|
+
* Validates a checksum on a Buffer and returns true if valid, false if not
|
|
184
105
|
*/
|
|
185
|
-
|
|
106
|
+
private validateChecksum;
|
|
186
107
|
/**
|
|
187
|
-
*
|
|
188
|
-
* @param {Uint8Array} bytes - Bytes to convert
|
|
189
|
-
* @returns {string} Decoded string
|
|
108
|
+
* Encodes a Buffer as a base58 string with checksum
|
|
190
109
|
*/
|
|
191
|
-
|
|
110
|
+
cb58Encode(bytes: Buffer): string;
|
|
192
111
|
/**
|
|
193
|
-
*
|
|
194
|
-
* Supports string, JSON object, or raw bytes
|
|
195
|
-
* @param {string | Record<string, unknown> | Uint8Array} memo - Memo data
|
|
196
|
-
* @returns {Uint8Array} Memo bytes for FlareJS
|
|
112
|
+
* Adds a checksum to a Buffer and returns the concatenated result
|
|
197
113
|
*/
|
|
198
|
-
|
|
114
|
+
private addChecksum;
|
|
199
115
|
/**
|
|
200
|
-
* Parse
|
|
201
|
-
* @param
|
|
202
|
-
* @returns
|
|
116
|
+
* Parse an address string into a Buffer
|
|
117
|
+
* @param address - The address to parse
|
|
118
|
+
* @returns Buffer containing the parsed address
|
|
203
119
|
*/
|
|
204
|
-
|
|
120
|
+
parseAddress: (address: string) => Buffer;
|
|
121
|
+
stringToAddress: (address: string, hrp?: string) => Buffer;
|
|
205
122
|
/**
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
* @param {
|
|
209
|
-
* @
|
|
123
|
+
* Check if tx is for the blockchainId
|
|
124
|
+
*
|
|
125
|
+
* @param {DeprecatedTx} tx
|
|
126
|
+
* @param {string} blockchainId
|
|
127
|
+
* @returns true if tx is for blockchainId
|
|
128
|
+
*/
|
|
129
|
+
isTransactionOf(tx: DeprecatedTx, blockchainId: string): boolean;
|
|
130
|
+
flareIdString(value: string): Id;
|
|
131
|
+
/**
|
|
132
|
+
* FlareJS wrapper to recover signature
|
|
133
|
+
* @param network
|
|
134
|
+
* @param message
|
|
135
|
+
* @param signature
|
|
136
|
+
* @return recovered public key
|
|
210
137
|
*/
|
|
211
|
-
|
|
138
|
+
recoverySignature(network: FlareNetwork, message: Buffer, signature: Buffer): Buffer;
|
|
212
139
|
}
|
|
213
140
|
declare const utils: Utils;
|
|
214
141
|
export default utils;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|