@bitgo-beta/sdk-coin-avaxp 3.2.3-alpha.5 → 3.2.3-alpha.500
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/avaxp.d.ts +15 -7
- package/dist/src/avaxp.d.ts.map +1 -1
- package/dist/src/avaxp.js +89 -42
- package/dist/src/iface.d.ts +2 -4
- package/dist/src/iface.d.ts.map +1 -1
- package/dist/src/iface.js +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -9
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +2 -3
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicInCTransactionBuilder.js +1 -1
- package/dist/src/lib/atomicTransactionBuilder.d.ts +2 -4
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +9 -10
- package/dist/src/lib/delegatorTxBuilder.d.ts +6 -7
- package/dist/src/lib/delegatorTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/delegatorTxBuilder.js +11 -12
- package/dist/src/lib/deprecatedTransaction.d.ts +98 -0
- package/dist/src/lib/deprecatedTransaction.d.ts.map +1 -0
- package/dist/src/lib/deprecatedTransaction.js +344 -0
- package/dist/src/lib/deprecatedTransactionBuilder.d.ts +114 -0
- package/dist/src/lib/deprecatedTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/deprecatedTransactionBuilder.js +210 -0
- package/dist/src/lib/exportInCTxBuilder.d.ts +8 -9
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/exportInCTxBuilder.js +4 -4
- package/dist/src/lib/exportTxBuilder.d.ts +4 -5
- package/dist/src/lib/exportTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/exportTxBuilder.js +3 -3
- package/dist/src/lib/iface.d.ts +24 -10
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +9 -4
- package/dist/src/lib/importInCTxBuilder.d.ts +4 -5
- package/dist/src/lib/importInCTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/importInCTxBuilder.js +6 -6
- package/dist/src/lib/importTxBuilder.d.ts +4 -4
- package/dist/src/lib/importTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/importTxBuilder.js +3 -3
- 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 +11 -3
- package/dist/src/lib/keyPair.d.ts +0 -1
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +20 -21
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +154 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +431 -0
- package/dist/src/lib/transaction.d.ts +19 -22
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +68 -109
- package/dist/src/lib/transactionBuilder.d.ts +31 -82
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +57 -151
- package/dist/src/lib/transactionBuilderFactory.d.ts +16 -8
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +77 -19
- package/dist/src/lib/utils.d.ts +23 -9
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +72 -22
- package/dist/src/lib/utxoEngine.d.ts +10 -2
- package/dist/src/lib/utxoEngine.d.ts.map +1 -1
- package/dist/src/lib/utxoEngine.js +32 -7
- package/dist/src/lib/validatorTxBuilder.d.ts +4 -4
- package/dist/src/lib/validatorTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/validatorTxBuilder.js +2 -2
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +11 -0
- package/dist/test/resources/avaxp.d.ts +80 -6
- package/dist/test/resources/avaxp.d.ts.map +1 -1
- package/dist/test/resources/avaxp.js +166 -33
- package/dist/test/resources/tx/importP.js +8 -8
- package/dist/test/unit/avaxp.js +140 -96
- package/dist/test/unit/lib/exportC2PTxBuilder.js +23 -9
- package/dist/test/unit/lib/exportP2CTxBuilder.js +27 -17
- package/dist/test/unit/lib/importC2PTxBuilder.js +25 -11
- package/dist/test/unit/lib/importP2CTxBuilder.js +25 -13
- package/dist/test/unit/lib/keyPair.js +23 -9
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.js +341 -0
- package/dist/test/unit/lib/signFlowTestSuit.js +2 -2
- package/dist/test/unit/lib/transactionBuilderFactory.js +76 -11
- package/dist/test/unit/lib/utils.js +23 -9
- package/dist/test/unit/lib/utxoEngine.js +6 -6
- package/dist/test/unit/lib/validateTxBuilder.js +29 -20
- package/dist/tsconfig.tsbuildinfo +1 -12056
- package/package.json +15 -12
- package/.eslintignore +0 -5
- package/.eslintrc.json +0 -7
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -228
package/dist/src/avaxp.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo-beta/statics';
|
|
3
|
-
import { BaseCoin, BitGoBase, KeyPair, VerifyAddressOptions, SignedTransaction, ParseTransactionOptions,
|
|
2
|
+
import { BaseCoin, BitGoBase, KeyPair, VerifyAddressOptions, SignedTransaction, ParseTransactionOptions, ITransactionRecipient, ParsedTransaction, MultisigType, AuditDecryptedKeyParams } from '@bitgo-beta/sdk-core';
|
|
4
3
|
import * as AvaxpLib from './lib';
|
|
5
|
-
import { AvaxpSignTransactionOptions,
|
|
4
|
+
import { AvaxpSignTransactionOptions, ExplainTransactionOptions, AvaxpVerifyTransactionOptions, AvaxpTransactionStakingOptions, AvaxpTransactionParams } from './iface';
|
|
6
5
|
export declare class AvaxP extends BaseCoin {
|
|
7
6
|
protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
|
|
8
7
|
constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
@@ -11,6 +10,8 @@ export declare class AvaxP extends BaseCoin {
|
|
|
11
10
|
getFamily(): CoinFamily;
|
|
12
11
|
getFullName(): string;
|
|
13
12
|
getBaseFactor(): string | number;
|
|
13
|
+
/** inherited doc */
|
|
14
|
+
getDefaultMultisigType(): MultisigType;
|
|
14
15
|
/**
|
|
15
16
|
* Check if staking txn is valid, based on expected tx params.
|
|
16
17
|
*
|
|
@@ -22,10 +23,16 @@ export declare class AvaxP extends BaseCoin {
|
|
|
22
23
|
* Check if export txn is valid, based on expected tx params.
|
|
23
24
|
*
|
|
24
25
|
* @param {ITransactionRecipient[]} recipients expected recipients and info
|
|
25
|
-
* @param {string} memo txn memo to verify
|
|
26
26
|
* @param {AvaxpLib.TransactionExplanation} explainedTx explained export transaction
|
|
27
27
|
*/
|
|
28
|
-
validateExportTx(recipients: ITransactionRecipient[],
|
|
28
|
+
validateExportTx(recipients: ITransactionRecipient[], explainedTx: AvaxpLib.TransactionExplanation): void;
|
|
29
|
+
/**
|
|
30
|
+
* Check if import txn into P is valid, based on expected tx params.
|
|
31
|
+
*
|
|
32
|
+
* @param {AvaxpLib.AvaxpEntry[]} explainedTxInputs tx inputs (unspents to be imported)
|
|
33
|
+
* @param {AvaxpTransactionParams} txParams expected tx info to check against
|
|
34
|
+
*/
|
|
35
|
+
validateImportTx(explainedTxInputs: AvaxpLib.AvaxpEntry[], txParams: AvaxpTransactionParams): void;
|
|
29
36
|
verifyTransaction(params: AvaxpVerifyTransactionOptions): Promise<boolean>;
|
|
30
37
|
/**
|
|
31
38
|
* Check if address is valid, then make sure it matches the root address.
|
|
@@ -68,8 +75,7 @@ export declare class AvaxP extends BaseCoin {
|
|
|
68
75
|
* Signs Avaxp transaction
|
|
69
76
|
*/
|
|
70
77
|
signTransaction(params: AvaxpSignTransactionOptions): Promise<SignedTransaction>;
|
|
71
|
-
|
|
72
|
-
parseTransaction(params: ParseTransactionOptions): Promise<ParseTransactionOptions>;
|
|
78
|
+
parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
|
|
73
79
|
/**
|
|
74
80
|
* Explain a Avaxp transaction from txHex
|
|
75
81
|
* @param params
|
|
@@ -79,5 +85,7 @@ export declare class AvaxP extends BaseCoin {
|
|
|
79
85
|
recoverySignature(message: Buffer, signature: Buffer): Buffer;
|
|
80
86
|
signMessage(key: KeyPair, message: string | Buffer): Promise<Buffer>;
|
|
81
87
|
private getBuilder;
|
|
88
|
+
/** @inheritDoc */
|
|
89
|
+
auditDecryptedKey(params: AuditDecryptedKeyParams): void;
|
|
82
90
|
}
|
|
83
91
|
//# sourceMappingURL=avaxp.d.ts.map
|
package/dist/src/avaxp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaxp.d.ts","sourceRoot":"","sources":["../../src/avaxp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avaxp.d.ts","sourceRoot":"","sources":["../../src/avaxp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;AACvG,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EAOvB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EAEZ,uBAAuB,EAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,QAAQ,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAMjB,qBAAa,KAAM,SAAQ,QAAQ;IACjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAE/C,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAUrE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,QAAQ,IAAI,MAAM;IAGlB,SAAS,IAAI,UAAU;IAGvB,WAAW,IAAI,MAAM;IAGrB,aAAa,IAAI,MAAM,GAAG,MAAM;IAIhC,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC;;;;;OAKG;IACH,iBAAiB,CACf,cAAc,EAAE,8BAA8B,EAC9C,WAAW,EAAE,QAAQ,CAAC,sBAAsB,GAC3C,IAAI;IAYP;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,sBAAsB,GAAG,IAAI;IAqBzG;;;;;OAKG;IACH,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAgB5F,iBAAiB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IA0DhF;;;;;OAKG;IACG,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BrE;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;;OAKG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAcvC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO;IAanD;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkBhF,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInF;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAcrG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAIvD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW1E,OAAO,CAAC,UAAU;IAIlB,kBAAkB;IAClB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;CAIzD"}
|
package/dist/src/avaxp.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
37
|
};
|
|
@@ -53,6 +67,10 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
53
67
|
getBaseFactor() {
|
|
54
68
|
return Math.pow(10, this._staticsCoin.decimalPlaces);
|
|
55
69
|
}
|
|
70
|
+
/** inherited doc */
|
|
71
|
+
getDefaultMultisigType() {
|
|
72
|
+
return sdk_core_1.multisigTypes.onchain;
|
|
73
|
+
}
|
|
56
74
|
/**
|
|
57
75
|
* Check if staking txn is valid, based on expected tx params.
|
|
58
76
|
*
|
|
@@ -65,7 +83,7 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
65
83
|
if (!lodash_1.default.isEqual(filteredOutputs, filteredRecipients)) {
|
|
66
84
|
throw new Error('Tx outputs does not match with expected txParams');
|
|
67
85
|
}
|
|
68
|
-
if (
|
|
86
|
+
if (stakingOptions?.amount !== explainedTx.outputAmount) {
|
|
69
87
|
throw new Error('Tx total amount does not match with expected total amount field');
|
|
70
88
|
}
|
|
71
89
|
}
|
|
@@ -73,27 +91,39 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
73
91
|
* Check if export txn is valid, based on expected tx params.
|
|
74
92
|
*
|
|
75
93
|
* @param {ITransactionRecipient[]} recipients expected recipients and info
|
|
76
|
-
* @param {string} memo txn memo to verify
|
|
77
94
|
* @param {AvaxpLib.TransactionExplanation} explainedTx explained export transaction
|
|
78
95
|
*/
|
|
79
|
-
validateExportTx(recipients,
|
|
96
|
+
validateExportTx(recipients, explainedTx) {
|
|
80
97
|
if (recipients.length !== 1 || explainedTx.outputs.length !== 1) {
|
|
81
98
|
throw new Error('Export Tx requires one recipient');
|
|
82
99
|
}
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
if (
|
|
86
|
-
|
|
100
|
+
const maxImportFee = this._staticsCoin.network.maxImportFee;
|
|
101
|
+
const recipientAmount = new bignumber_js_1.default(recipients[0].amount);
|
|
102
|
+
if (recipientAmount.isGreaterThan(explainedTx.outputAmount) ||
|
|
103
|
+
recipientAmount.plus(maxImportFee).isLessThan(explainedTx.outputAmount)) {
|
|
104
|
+
throw new Error(`Tx total amount ${explainedTx.outputAmount} does not match with expected total amount field ${recipientAmount} and max import fee ${maxImportFee}`);
|
|
87
105
|
}
|
|
88
106
|
if (explainedTx.outputs && !utils_1.default.isValidAddress(explainedTx.outputs[0].address)) {
|
|
89
107
|
throw new Error(`Invalid P-chain address ${explainedTx.outputs[0].address}`);
|
|
90
108
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Check if import txn into P is valid, based on expected tx params.
|
|
112
|
+
*
|
|
113
|
+
* @param {AvaxpLib.AvaxpEntry[]} explainedTxInputs tx inputs (unspents to be imported)
|
|
114
|
+
* @param {AvaxpTransactionParams} txParams expected tx info to check against
|
|
115
|
+
*/
|
|
116
|
+
validateImportTx(explainedTxInputs, txParams) {
|
|
117
|
+
if (txParams.unspents) {
|
|
118
|
+
if (explainedTxInputs.length !== txParams.unspents.length) {
|
|
119
|
+
throw new Error(`Expected ${txParams.unspents.length} UTXOs, transaction had ${explainedTxInputs.length}`);
|
|
120
|
+
}
|
|
121
|
+
const unspents = new Set(txParams.unspents);
|
|
122
|
+
for (const unspent of explainedTxInputs) {
|
|
123
|
+
if (!unspents.has(unspent.id)) {
|
|
124
|
+
throw new Error(`Transaction should not contain the UTXO: ${unspent.id}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
97
127
|
}
|
|
98
128
|
}
|
|
99
129
|
async verifyTransaction(params) {
|
|
@@ -110,30 +140,43 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
110
140
|
throw new Error('Invalid transaction');
|
|
111
141
|
}
|
|
112
142
|
const explainedTx = tx.explainTransaction();
|
|
113
|
-
const { type, stakingOptions
|
|
114
|
-
|
|
143
|
+
const { type, stakingOptions } = params.txParams;
|
|
144
|
+
// TODO(BG-62112): change ImportToC type to Import
|
|
145
|
+
if (!type || (type !== 'ImportToC' && explainedTx.type !== sdk_core_1.TransactionType[type])) {
|
|
115
146
|
throw new Error('Tx type does not match with expected txParams type');
|
|
116
147
|
}
|
|
117
|
-
if (memo && explainedTx.memo !== memo.value) {
|
|
118
|
-
throw new Error('Tx memo does not match with expected txParams memo');
|
|
119
|
-
}
|
|
120
148
|
switch (explainedTx.type) {
|
|
149
|
+
// @deprecated
|
|
121
150
|
case sdk_core_1.TransactionType.AddDelegator:
|
|
122
151
|
case sdk_core_1.TransactionType.AddValidator:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
152
|
+
case sdk_core_1.TransactionType.AddPermissionlessDelegator:
|
|
153
|
+
case sdk_core_1.TransactionType.AddPermissionlessValidator:
|
|
126
154
|
this.validateStakingTx(stakingOptions, explainedTx);
|
|
127
155
|
break;
|
|
128
156
|
case sdk_core_1.TransactionType.Export:
|
|
129
|
-
if (!params.txParams.recipients) {
|
|
157
|
+
if (!params.txParams.recipients || params.txParams.recipients?.length !== 1) {
|
|
130
158
|
throw new Error('Export Tx requires a recipient');
|
|
131
159
|
}
|
|
132
|
-
else
|
|
133
|
-
|
|
160
|
+
else {
|
|
161
|
+
this.validateExportTx(params.txParams.recipients, explainedTx);
|
|
162
|
+
}
|
|
163
|
+
break;
|
|
164
|
+
case sdk_core_1.TransactionType.Import:
|
|
165
|
+
if (tx.isTransactionForCChain) {
|
|
166
|
+
// Import to C-chain
|
|
167
|
+
if (explainedTx.outputs.length !== 1) {
|
|
168
|
+
throw new Error('Expected 1 output in import transaction');
|
|
169
|
+
}
|
|
170
|
+
if (!params.txParams.recipients || params.txParams.recipients.length !== 1) {
|
|
171
|
+
throw new Error('Expected 1 recipient in import transaction');
|
|
172
|
+
}
|
|
134
173
|
}
|
|
135
174
|
else {
|
|
136
|
-
|
|
175
|
+
// Import to P-chain
|
|
176
|
+
if (explainedTx.outputs.length !== 1) {
|
|
177
|
+
throw new Error('Expected 1 output in import transaction');
|
|
178
|
+
}
|
|
179
|
+
this.validateImportTx(explainedTx.inputs, params.txParams);
|
|
137
180
|
}
|
|
138
181
|
break;
|
|
139
182
|
default:
|
|
@@ -228,6 +271,10 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
228
271
|
if (address === undefined) {
|
|
229
272
|
return false;
|
|
230
273
|
}
|
|
274
|
+
// validate eth address for cross-chain txs to c-chain
|
|
275
|
+
if (typeof address === 'string' && (0, ethereumjs_util_1.isValidAddress)(address)) {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
231
278
|
return AvaxpLib.Utils.isValidAddress(address);
|
|
232
279
|
}
|
|
233
280
|
/**
|
|
@@ -248,12 +295,8 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
248
295
|
? { txHex: transaction.toBroadcastFormat() }
|
|
249
296
|
: { halfSigned: { txHex: transaction.toBroadcastFormat() } };
|
|
250
297
|
}
|
|
251
|
-
async
|
|
252
|
-
|
|
253
|
-
return { fee: '0' };
|
|
254
|
-
}
|
|
255
|
-
parseTransaction(params) {
|
|
256
|
-
throw new sdk_core_1.MethodNotImplementedError('parseTransaction method not implemented');
|
|
298
|
+
async parseTransaction(params) {
|
|
299
|
+
return {};
|
|
257
300
|
}
|
|
258
301
|
/**
|
|
259
302
|
* Explain a Avaxp transaction from txHex
|
|
@@ -261,8 +304,7 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
261
304
|
* @param callback
|
|
262
305
|
*/
|
|
263
306
|
async explainTransaction(params) {
|
|
264
|
-
|
|
265
|
-
const txHex = (_a = params.txHex) !== null && _a !== void 0 ? _a : (_b = params === null || params === void 0 ? void 0 : params.halfSigned) === null || _b === void 0 ? void 0 : _b.txHex;
|
|
307
|
+
const txHex = params.txHex ?? params?.halfSigned?.txHex;
|
|
266
308
|
if (!txHex) {
|
|
267
309
|
throw new Error('missing transaction hex');
|
|
268
310
|
}
|
|
@@ -291,6 +333,11 @@ class AvaxP extends sdk_core_1.BaseCoin {
|
|
|
291
333
|
getBuilder() {
|
|
292
334
|
return new AvaxpLib.TransactionBuilderFactory(statics_1.coins.get(this.getChain()));
|
|
293
335
|
}
|
|
336
|
+
/** @inheritDoc */
|
|
337
|
+
auditDecryptedKey(params) {
|
|
338
|
+
/** https://bitgoinc.atlassian.net/browse/COIN-4213 */
|
|
339
|
+
throw new sdk_core_1.MethodNotImplementedError();
|
|
340
|
+
}
|
|
294
341
|
}
|
|
295
342
|
exports.AvaxP = AvaxP;
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZheHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZheHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUF1RztBQUN2RyxtREFnQjhCO0FBQzlCLGdEQUFrQztBQVFsQyx3REFBZ0M7QUFDaEMsb0RBQXVCO0FBQ3ZCLGdFQUFxQztBQUNyQyxxREFBaUQ7QUFFakQsTUFBYSxLQUFNLFNBQVEsbUJBQVE7SUFHakMsWUFBWSxLQUFnQixFQUFFLFdBQXVDO1FBQ25FLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FDZixjQUE4QyxFQUM5QyxXQUE0QztRQUU1QyxNQUFNLGtCQUFrQixHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUs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QUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSx1QkFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUMvQixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBMkIsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxJQUFJLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGO0FBbFRELHNCQWtUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF2YWxhbmNoZU5ldHdvcmssIEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZhbWlseSwgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEtleVBhaXIsXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IsXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEZlZUVzdGltYXRlT3B0aW9ucyxcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIEludmFsaWRBZGRyZXNzRXJyb3IsXG4gIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IsXG4gIElUcmFuc2FjdGlvblJlY2lwaWVudCxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgQXZheHBMaWIgZnJvbSAnLi9saWInO1xuaW1wb3J0IHtcbiAgQXZheHBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvbkZlZSxcbiAgRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgQXZheHBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIEF2YXhwVHJhbnNhY3Rpb25TdGFraW5nT3B0aW9ucyxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi9saWIvdXRpbHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGlzVmFsaWRBZGRyZXNzIH0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcblxuZXhwb3J0IGNsYXNzIEF2YXhQIGV4dGVuZHMgQmFzZUNvaW4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRpY3NDb2luOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+O1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IEF2YXhQKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5uYW1lO1xuICB9XG4gIGdldEZhbWlseSgpOiBDb2luRmFtaWx5IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZmFtaWx5O1xuICB9XG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZ1bGxOYW1lO1xuICB9XG4gIGdldEJhc2VGYWN0b3IoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMuX3N0YXRpY3NDb2luLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHN0YWtpbmcgdHhuIGlzIHZhbGlkLCBiYXNlZCBvbiBleHBlY3RlZCB0eCBwYXJhbXMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXZheHBUcmFuc2FjdGlvblN0YWtpbmdPcHRpb25zfSBzdGFraW5nT3B0aW9ucyBleHBlY3RlZCBzdGFraW5nIHBhcmFtcyB0byBjaGVjayBhZ2FpbnN0XG4gICAqIEBwYXJhbSB7QXZheHBMaWIuVHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFpbmVkVHggZXhwbGFpbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICovXG4gIHZhbGlkYXRlU3Rha2luZ1R4KFxuICAgIHN0YWtpbmdPcHRpb25zOiBBdmF4cFRyYW5zYWN0aW9uU3Rha2luZ09wdGlvbnMsXG4gICAgZXhwbGFpbmVkVHg6IEF2YXhwTGliLlRyYW5zYWN0aW9uRXhwbGFuYXRpb25cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRSZWNpcGllbnRzID0gW3sgYWRkcmVzczogc3Rha2luZ09wdGlvbnMubm9kZUlELCBhbW91bnQ6IHN0YWtpbmdPcHRpb25zLmFtb3VudCB9XTtcbiAgICBjb25zdCBmaWx0ZXJlZE91dHB1dHMgPSBleHBsYWluZWRUeC5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiBfLnBpY2sob3V0cHV0LCBbJ2FkZHJlc3MnLCAnYW1vdW50J10pKTtcblxuICAgIGlmICghXy5pc0VxdWFsKGZpbHRlcmVkT3V0cHV0cywgZmlsdGVyZWRSZWNpcGllbnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeCBvdXRwdXRzIGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdHhQYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHN0YWtpbmdPcHRpb25zPy5hbW91bnQgIT09IGV4cGxhaW5lZFR4Lm91dHB1dEFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeCB0b3RhbCBhbW91bnQgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0b3RhbCBhbW91bnQgZmllbGQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgZXhwb3J0IHR4biBpcyB2YWxpZCwgYmFzZWQgb24gZXhwZWN0ZWQgdHggcGFyYW1zLlxuICAgKlxuICAgKiBAcGFyYW0ge0lUcmFuc2FjdGlvblJlY2lwaWVudFtdfSByZWNpcGllbnRzIGV4cGVjdGVkIHJlY2lwaWVudHMgYW5kIGluZm9cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lbW8gdHhuIG1lbW8gdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7QXZheHBMaWIuVHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFpbmVkVHggZXhwbGFpbmVkIGV4cG9ydCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdmFsaWRhdGVFeHBvcnRUeChcbiAgICByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSxcbiAgICBtZW1vOiBzdHJpbmcsXG4gICAgZXhwbGFpbmVkVHg6IEF2YXhwTGliLlRyYW5zYWN0aW9uRXhwbGFuYXRpb25cbiAgKTogdm9pZCB7XG4gICAgaWYgKHJlY2lwaWVudHMubGVuZ3RoICE9PSAxIHx8IGV4cGxhaW5lZFR4Lm91dHB1dHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cG9ydCBUeCByZXF1aXJlcyBvbmUgcmVjaXBpZW50Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxBbW91bnQgPSBuZXcgQmlnTnVtYmVyKHJlY2lwaWVudHNbMF0uYW1vdW50KTtcblxuICAgIC8vIFRPRE86IEJHLTYxMDE5IC0gVGFrZSBpbnRvIGNvbnNpZGVyYXRpb24gZmVlcyBmb3IgSW1wb3J0SW5DIHRvIGdldCBleGFjdCBhbW91bnRcbiAgICBpZiAoIXRvdGFsQW1vdW50LmlzRXF1YWxUbyhleHBsYWluZWRUeC5vdXRwdXRBbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUeCB0b3RhbCBhbW91bnQgJHtleHBsYWluZWRUeC5vdXRwdXRBbW91bnR9IGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdG90YWwgYW1vdW50IGZpZWxkICR7dG90YWxBbW91bnR9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXhwbGFpbmVkVHgub3V0cHV0cyAmJiAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoZXhwbGFpbmVkVHgub3V0cHV0c1swXS5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFAtY2hhaW4gYWRkcmVzcyAke2V4cGxhaW5lZFR4Lm91dHB1dHNbMF0uYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vVmFsdWUgPSBtZW1vLnNwbGl0KCd+Jyk7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhtZW1vVmFsdWVbMF0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFR4biBtZW1vIG11c3QgY29udGFpbiB2YWxpZCBDLWNoYWluIGFkZHJlc3MgZGVzdGluYXRpb24sIHJlY2VpdmVkOiAke21lbW99YCk7XG4gICAgfSBlbHNlIGlmIChtZW1vVmFsdWVbMF0gIT09IHJlY2lwaWVudHNbMF0uYWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBDLWNoYWluIHJlY2VpdmUgYWRkcmVzcyAke21lbW9WYWx1ZVswXX0sIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIHBhcmFtcyBhZGRyZXNzICR7cmVjaXBpZW50c1swXS5hZGRyZXNzfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBBdmF4cFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHR4SGV4ID0gcGFyYW1zLnR4UHJlYnVpbGQgJiYgcGFyYW1zLnR4UHJlYnVpbGQudHhIZXg7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHR4IHByZWJ1aWxkIHByb3BlcnR5IHR4SGV4Jyk7XG4gICAgfVxuICAgIGxldCB0eDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKCkuZnJvbSh0eEhleCk7XG4gICAgICB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgZXhwbGFpbmVkVHggPSB0eC5leHBsYWluVHJhbnNhY3Rpb24oKTtcblxuICAgIGNvbnN0IHsgdHlwZSwgc3Rha2luZ09wdGlvbnMsIG1lbW8gfSA9IHBhcmFtcy50eFBhcmFtcztcblxuICAgIGlmICghdHlwZSB8fCBleHBsYWluZWRUeC50eXBlICE9PSBUcmFuc2FjdGlvblR5cGVbdHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHggdHlwZSBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHR5cGUnKTtcbiAgICB9XG4gICAgaWYgKG1lbW8gJiYgZXhwbGFpbmVkVHgubWVtbyAhPT0gbWVtby52YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeCBtZW1vIGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdHhQYXJhbXMgbWVtbycpO1xuICAgIH1cbiAgICBzd2l0Y2ggKGV4cGxhaW5lZFR4LnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZERlbGVnYXRvcjpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZFZhbGlkYXRvcjpcbiAgICAgICAgaWYgKHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzICYmIHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU3Rha2UgVHggZG9lcyBub3QgcmVxdWlyZSByZWNpcGllbnRzJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZGF0ZVN0YWtpbmdUeChzdGFraW5nT3B0aW9ucywgZXhwbGFpbmVkVHgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkV4cG9ydDpcbiAgICAgICAgaWYgKCFwYXJhbXMudHhQYXJhbXMucmVjaXBpZW50cykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwb3J0IFR4IHJlcXVpcmVzIGEgcmVjaXBpZW50Jyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV4cGxhaW5lZFR4Lm1lbW8pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cG9ydCBUeCByZXF1aXJlcyBhIG1lbW8gd2l0aCBjLWNoYWluIGFkZHJlc3MnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRlRXhwb3J0VHgocGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMsIGV4cGxhaW5lZFR4Lm1lbW8sIGV4cGxhaW5lZFR4KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggdHlwZSBpcyBub3Qgc3VwcG9ydGVkIHlldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhZGRyZXNzIGlzIHZhbGlkLCB0aGVuIG1ha2Ugc3VyZSBpdCBtYXRjaGVzIHRoZSByb290IGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMuYWRkcmVzcyBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBwYXJhbXMua2V5Y2hhaW5zIHB1YmxpYyBrZXlzIHRvIGdlbmVyYXRlIHRoZSB3YWxsZXRcbiAgICovXG4gIGFzeW5jIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBhZGRyZXNzLCBrZXljaGFpbnMgfSA9IHBhcmFtcztcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICBpZiAoIWtleWNoYWlucyB8fCBrZXljaGFpbnMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5Y2hhaW5zJyk7XG4gICAgfVxuXG4gICAgLy8gbXVsdGlzaWcgYWRkcmVzc2VzIGFyZSBzZXBhcmF0ZWQgYnkgflxuICAgIGNvbnN0IHNwbGl0QWRkcmVzc2VzID0gYWRkcmVzcy5zcGxpdCgnficpO1xuXG4gICAgLy8gZGVyaXZlIGFkZHJlc3NlcyBmcm9tIGtleWNoYWluXG4gICAgY29uc3QgdW5sb2NrQWRkcmVzc2VzID0ga2V5Y2hhaW5zLm1hcCgoa2V5Y2hhaW4pID0+XG4gICAgICBuZXcgQXZheHBMaWIuS2V5UGFpcih7IHB1Yjoga2V5Y2hhaW4ucHViIH0pLmdldEFkZHJlc3ModGhpcy5fc3RhdGljc0NvaW4ubmV0d29yay50eXBlKVxuICAgICk7XG5cbiAgICBpZiAoc3BsaXRBZGRyZXNzZXMubGVuZ3RoICE9PSB1bmxvY2tBZGRyZXNzZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcihgYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IG11bHRpc2lnIGFkZHJlc3MgbGVuZ3RoIGRvZXMgbm90IG1hdGNoYCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFkcmVzc2VzQXJyYXlzTWF0Y2goc3BsaXRBZGRyZXNzZXMsIHVubG9ja0FkZHJlc3NlcykpIHtcbiAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKGBhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogJHthZGRyZXNzfSBpcyBub3Qgb2YgdGhpcyB3YWxsZXRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IHR3byBtdWx0aXNpZyBhZGRyZXNzIGFycmF5cyBoYXZlIHRoZSBzYW1lIGVsZW1lbnRzLCBvcmRlciBkb2VzbnQgbWF0dGVyXG4gICAqIEBwYXJhbSBhZGRyZXNzQXJyYXkxXG4gICAqIEBwYXJhbSBhZGRyZXNzQXJyYXkyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYWRkcmVzcyBhcnJheXMgaGF2ZSB0aGUgc2FtZSBhZGRyZXNzZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYWRyZXNzZXNBcnJheXNNYXRjaChhZGRyZXNzQXJyYXkxOiBzdHJpbmdbXSwgYWRkcmVzc0FycmF5Mjogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYWRkcmVzc0FycmF5MS5zb3J0KCkpID09PSBKU09OLnN0cmluZ2lmeShhZGRyZXNzQXJyYXkyLnNvcnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgQXZheHAga2V5IHBhaXJcbiAgICpcbiAgICogQHBhcmFtIHtCdWZmZXJ9IHNlZWQgLSBTZWVkIGZyb20gd2hpY2ggdGhlIG5ldyBrZXlwYWlyIHNob3VsZCBiZSBnZW5lcmF0ZWQsIG90aGVyd2lzZSBhIHJhbmRvbSBzZWVkIGlzIHVzZWRcbiAgICogQHJldHVybnMge09iamVjdH0gb2JqZWN0IHdpdGggZ2VuZXJhdGVkIHB1YiBhbmQgcHJ2XG4gICAqL1xuICBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIGNvbnN0IGtleVBhaXIgPSBzZWVkID8gbmV3IEF2YXhwTGliLktleVBhaXIoeyBzZWVkIH0pIDogbmV3IEF2YXhwTGliLktleVBhaXIoKTtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJ2IGluIGtleSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMucHViLFxuICAgICAgcHJ2OiBrZXlzLnBydixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwdWJsaWMga2V5IGZvciB0aGUgY29pblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViIHRoZSBwcnYgdG8gYmUgY2hlY2tlZFxuICAgKiBAcmV0dXJucyBpcyBpdCB2YWxpZD9cbiAgICovXG4gIGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEF2YXhwTGliLktleVBhaXIoeyBwdWIgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwcml2YXRlIGtleSBmb3IgdGhlIGNvaW5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBydiB0aGUgcHJ2IHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybnMgaXMgaXQgdmFsaWQ/XG4gICAqL1xuICBpc1ZhbGlkUHJ2KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBBdmF4cExpYi5LZXlQYWlyKHsgcHJ2IH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKGFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBBdmF4cExpYi5VdGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBBdmF4cCB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogQXZheHBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIC8vIGRlc2VyaWFsaXplIHJhdyB0cmFuc2FjdGlvbiAobm90ZTogZnJvbUFkZHJlc3MgaGFzIG9uY2hhaW4gb3JkZXIpXG4gICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKCkuZnJvbShwYXJhbXMudHhQcmVidWlsZC50eEhleCk7XG4gICAgY29uc3Qga2V5ID0gcGFyYW1zLnBydjtcblxuICAgIC8vIHB1c2ggdGhlIGtleXBhaXIgdG8gc2lnbmVyIGFycmF5XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXkgfSk7XG5cbiAgICAvLyBidWlsZCB0aGUgdHJhbnNhY3Rpb25cbiAgICBjb25zdCB0cmFuc2FjdGlvbjogQmFzZVRyYW5zYWN0aW9uID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFcnJvciB3aGlsZSB0cnlpbmcgdG8gYnVpbGQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLnNpZ25hdHVyZS5sZW5ndGggPj0gMlxuICAgICAgPyB7IHR4SGV4OiB0cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpIH1cbiAgICAgIDogeyBoYWxmU2lnbmVkOiB7IHR4SGV4OiB0cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpIH0gfTtcbiAgfVxuXG4gIGFzeW5jIGZlZUVzdGltYXRlKHBhcmFtczogRmVlRXN0aW1hdGVPcHRpb25zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkZlZT4ge1xuICAgIC8vIHN0YWtpbmcgdHJhbnNhY3Rpb25zIGFyZSBmZWUtbGVzc1xuICAgIHJldHVybiB7IGZlZTogJzAnIH07XG4gIH1cblxuICBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zPiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoJ3BhcnNlVHJhbnNhY3Rpb24gbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGxhaW4gYSBBdmF4cCB0cmFuc2FjdGlvbiBmcm9tIHR4SGV4XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAqL1xuICBhc3luYyBleHBsYWluVHJhbnNhY3Rpb24ocGFyYW1zOiBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxBdmF4cExpYi5UcmFuc2FjdGlvbkV4cGxhbmF0aW9uPiB7XG4gICAgY29uc3QgdHhIZXggPSBwYXJhbXMudHhIZXggPz8gcGFyYW1zPy5oYWxmU2lnbmVkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgdHJhbnNhY3Rpb24gaGV4Jyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldEJ1aWxkZXIoKS5mcm9tKHR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICByZXR1cm4gdHguZXhwbGFpblRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICByZWNvdmVyeVNpZ25hdHVyZShtZXNzYWdlOiBCdWZmZXIsIHNpZ25hdHVyZTogQnVmZmVyKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQXZheHBMaWIuVXRpbHMucmVjb3ZlcnlTaWduYXR1cmUodGhpcy5fc3RhdGljc0NvaW4ubmV0d29yayBhcyBBdmFsYW5jaGVOZXR3b3JrLCBtZXNzYWdlLCBzaWduYXR1cmUpO1xuICB9XG5cbiAgYXN5bmMgc2lnbk1lc3NhZ2Uoa2V5OiBLZXlQYWlyLCBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIGNvbnN0IHBydiA9IG5ldyBBdmF4cExpYi5LZXlQYWlyKGtleSkuZ2V0UHJpdmF0ZUtleSgpO1xuICAgIGlmICghcHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgbWVzc2FnZSA9IEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICdoZXgnKTtcbiAgICB9XG4gICAgcmV0dXJuIEF2YXhwTGliLlV0aWxzLmNyZWF0ZVNpZ25hdHVyZSh0aGlzLl9zdGF0aWNzQ29pbi5uZXR3b3JrIGFzIEF2YWxhbmNoZU5ldHdvcmssIG1lc3NhZ2UsIHBydik7XG4gIH1cblxuICBwcml2YXRlIGdldEJ1aWxkZXIoKTogQXZheHBMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gICAgcmV0dXJuIG5ldyBBdmF4cExpYi5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCh0aGlzLmdldENoYWluKCkpKTtcbiAgfVxufVxuIl19
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZheHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZheHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQXVHO0FBQ3ZHLG1EQW1COEI7QUFDOUIsZ0RBQWtDO0FBUWxDLHdEQUFnQztBQUNoQyxvREFBdUI7QUFDdkIsZ0VBQXFDO0FBQ3JDLHFEQUFzRTtBQUV0RSxNQUFhLEtBQU0sU0FBUSxtQkFBUTtJQUdqQyxZQUFZLEtBQWdCLEVBQUUsV0FBdUM7UUFDbkUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLHNCQUFzQjtRQUNwQixPQUFPLHdCQUFhLENBQUMsT0FBTyxDQUFDO0lBQy9CLENBQUM7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QUVELEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBWSxFQUFFLE9BQXdCO1FBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksdUJBQVksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQTJCLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxRQUFRLENBQUMseUJBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsTUFBK0I7UUFDL0Msc0RBQXNEO1FBQ3RELE1BQU0sSUFBSSxvQ0FBeUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQXBWRCxzQkFvVkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmFsYW5jaGVOZXR3b3JrLCBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIENvaW5GYW1pbHksIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlQ29pbixcbiAgQml0R29CYXNlLFxuICBLZXlQYWlyLFxuICBWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgSW52YWxpZEFkZHJlc3NFcnJvcixcbiAgVW5leHBlY3RlZEFkZHJlc3NFcnJvcixcbiAgSVRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgTXVsdGlzaWdUeXBlLFxuICBtdWx0aXNpZ1R5cGVzLFxuICBBdWRpdERlY3J5cHRlZEtleVBhcmFtcyxcbiAgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgQXZheHBMaWIgZnJvbSAnLi9saWInO1xuaW1wb3J0IHtcbiAgQXZheHBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zLFxuICBBdmF4cFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgQXZheHBUcmFuc2FjdGlvblN0YWtpbmdPcHRpb25zLFxuICBBdmF4cFRyYW5zYWN0aW9uUGFyYW1zLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL2xpYi91dGlscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgaXNWYWxpZEFkZHJlc3MgYXMgaXNWYWxpZEV0aEFkZHJlc3MgfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuXG5leHBvcnQgY2xhc3MgQXZheFAgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28pO1xuXG4gICAgaWYgKCFzdGF0aWNzQ29pbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBzdGF0aWNzQ29pbicpO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRpY3NDb2luID0gc3RhdGljc0NvaW47XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgQXZheFAoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLm5hbWU7XG4gIH1cbiAgZ2V0RmFtaWx5KCk6IENvaW5GYW1pbHkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5mYW1pbHk7XG4gIH1cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZnVsbE5hbWU7XG4gIH1cbiAgZ2V0QmFzZUZhY3RvcigpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnBvdygxMCwgdGhpcy5fc3RhdGljc0NvaW4uZGVjaW1hbFBsYWNlcyk7XG4gIH1cblxuICAvKiogaW5oZXJpdGVkIGRvYyAqL1xuICBnZXREZWZhdWx0TXVsdGlzaWdUeXBlKCk6IE11bHRpc2lnVHlwZSB7XG4gICAgcmV0dXJuIG11bHRpc2lnVHlwZXMub25jaGFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBzdGFraW5nIHR4biBpcyB2YWxpZCwgYmFzZWQgb24gZXhwZWN0ZWQgdHggcGFyYW1zLlxuICAgKlxuICAgKiBAcGFyYW0ge0F2YXhwVHJhbnNhY3Rpb25TdGFraW5nT3B0aW9uc30gc3Rha2luZ09wdGlvbnMgZXhwZWN0ZWQgc3Rha2luZyBwYXJhbXMgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcGFyYW0ge0F2YXhwTGliLlRyYW5zYWN0aW9uRXhwbGFuYXRpb259IGV4cGxhaW5lZFR4IGV4cGxhaW5lZCBzdGFraW5nIHRyYW5zYWN0aW9uXG4gICAqL1xuICB2YWxpZGF0ZVN0YWtpbmdUeChcbiAgICBzdGFraW5nT3B0aW9uczogQXZheHBUcmFuc2FjdGlvblN0YWtpbmdPcHRpb25zLFxuICAgIGV4cGxhaW5lZFR4OiBBdmF4cExpYi5UcmFuc2FjdGlvbkV4cGxhbmF0aW9uXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcmVkUmVjaXBpZW50cyA9IFt7IGFkZHJlc3M6IHN0YWtpbmdPcHRpb25zLm5vZGVJRCwgYW1vdW50OiBzdGFraW5nT3B0aW9ucy5hbW91bnQgfV07XG4gICAgY29uc3QgZmlsdGVyZWRPdXRwdXRzID0gZXhwbGFpbmVkVHgub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4gXy5waWNrKG91dHB1dCwgWydhZGRyZXNzJywgJ2Ftb3VudCddKSk7XG5cbiAgICBpZiAoIV8uaXNFcXVhbChmaWx0ZXJlZE91dHB1dHMsIGZpbHRlcmVkUmVjaXBpZW50cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zJyk7XG4gICAgfVxuICAgIGlmIChzdGFraW5nT3B0aW9ucz8uYW1vdW50ICE9PSBleHBsYWluZWRUeC5vdXRwdXRBbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHggdG90YWwgYW1vdW50IGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdG90YWwgYW1vdW50IGZpZWxkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGV4cG9ydCB0eG4gaXMgdmFsaWQsIGJhc2VkIG9uIGV4cGVjdGVkIHR4IHBhcmFtcy5cbiAgICpcbiAgICogQHBhcmFtIHtJVHJhbnNhY3Rpb25SZWNpcGllbnRbXX0gcmVjaXBpZW50cyBleHBlY3RlZCByZWNpcGllbnRzIGFuZCBpbmZvXG4gICAqIEBwYXJhbSB7QXZheHBMaWIuVHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFpbmVkVHggZXhwbGFpbmVkIGV4cG9ydCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdmFsaWRhdGVFeHBvcnRUeChyZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSwgZXhwbGFpbmVkVHg6IEF2YXhwTGliLlRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiB2b2lkIHtcbiAgICBpZiAocmVjaXBpZW50cy5sZW5ndGggIT09IDEgfHwgZXhwbGFpbmVkVHgub3V0cHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwb3J0IFR4IHJlcXVpcmVzIG9uZSByZWNpcGllbnQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXhJbXBvcnRGZWUgPSAodGhpcy5fc3RhdGljc0NvaW4ubmV0d29yayBhcyBBdmFsYW5jaGVOZXR3b3JrKS5tYXhJbXBvcnRGZWU7XG4gICAgY29uc3QgcmVjaXBpZW50QW1vdW50ID0gbmV3IEJpZ051bWJlcihyZWNpcGllbnRzWzBdLmFtb3VudCk7XG4gICAgaWYgKFxuICAgICAgcmVjaXBpZW50QW1vdW50LmlzR3JlYXRlclRoYW4oZXhwbGFpbmVkVHgub3V0cHV0QW1vdW50KSB8fFxuICAgICAgcmVjaXBpZW50QW1vdW50LnBsdXMobWF4SW1wb3J0RmVlKS5pc0xlc3NUaGFuKGV4cGxhaW5lZFR4Lm91dHB1dEFtb3VudClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFR4IHRvdGFsIGFtb3VudCAke2V4cGxhaW5lZFR4Lm91dHB1dEFtb3VudH0gZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0b3RhbCBhbW91bnQgZmllbGQgJHtyZWNpcGllbnRBbW91bnR9IGFuZCBtYXggaW1wb3J0IGZlZSAke21heEltcG9ydEZlZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChleHBsYWluZWRUeC5vdXRwdXRzICYmICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhleHBsYWluZWRUeC5vdXRwdXRzWzBdLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUC1jaGFpbiBhZGRyZXNzICR7ZXhwbGFpbmVkVHgub3V0cHV0c1swXS5hZGRyZXNzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBpbXBvcnQgdHhuIGludG8gUCBpcyB2YWxpZCwgYmFzZWQgb24gZXhwZWN0ZWQgdHggcGFyYW1zLlxuICAgKlxuICAgKiBAcGFyYW0ge0F2YXhwTGliLkF2YXhwRW50cnlbXX0gZXhwbGFpbmVkVHhJbnB1dHMgdHggaW5wdXRzICh1bnNwZW50cyB0byBiZSBpbXBvcnRlZClcbiAgICogQHBhcmFtIHtBdmF4cFRyYW5zYWN0aW9uUGFyYW1zfSB0eFBhcmFtcyBleHBlY3RlZCB0eCBpbmZvIHRvIGNoZWNrIGFnYWluc3RcbiAgICovXG4gIHZhbGlkYXRlSW1wb3J0VHgoZXhwbGFpbmVkVHhJbnB1dHM6IEF2YXhwTGliLkF2YXhwRW50cnlbXSwgdHhQYXJhbXM6IEF2YXhwVHJhbnNhY3Rpb25QYXJhbXMpOiB2b2lkIHtcbiAgICBpZiAodHhQYXJhbXMudW5zcGVudHMpIHtcbiAgICAgIGlmIChleHBsYWluZWRUeElucHV0cy5sZW5ndGggIT09IHR4UGFyYW1zLnVuc3BlbnRzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7dHhQYXJhbXMudW5zcGVudHMubGVuZ3RofSBVVFhPcywgdHJhbnNhY3Rpb24gaGFkICR7ZXhwbGFpbmVkVHhJbnB1dHMubGVuZ3RofWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB1bnNwZW50cyA9IG5ldyBTZXQodHhQYXJhbXMudW5zcGVudHMpO1xuXG4gICAgICBmb3IgKGNvbnN0IHVuc3BlbnQgb2YgZXhwbGFpbmVkVHhJbnB1dHMpIHtcbiAgICAgICAgaWYgKCF1bnNwZW50cy5oYXModW5zcGVudC5pZCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRyYW5zYWN0aW9uIHNob3VsZCBub3QgY29udGFpbiB0aGUgVVRYTzogJHt1bnNwZW50LmlkfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBBdmF4cFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHR4SGV4ID0gcGFyYW1zLnR4UHJlYnVpbGQgJiYgcGFyYW1zLnR4UHJlYnVpbGQudHhIZXg7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHR4IHByZWJ1aWxkIHByb3BlcnR5IHR4SGV4Jyk7XG4gICAgfVxuICAgIGxldCB0eDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKCkuZnJvbSh0eEhleCk7XG4gICAgICB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgZXhwbGFpbmVkVHggPSB0eC5leHBsYWluVHJhbnNhY3Rpb24oKTtcblxuICAgIGNvbnN0IHsgdHlwZSwgc3Rha2luZ09wdGlvbnMgfSA9IHBhcmFtcy50eFBhcmFtcztcbiAgICAvLyBUT0RPKEJHLTYyMTEyKTogY2hhbmdlIEltcG9ydFRvQyB0eXBlIHRvIEltcG9ydFxuICAgIGlmICghdHlwZSB8fCAodHlwZSAhPT0gJ0ltcG9ydFRvQycgJiYgZXhwbGFpbmVkVHgudHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlW3R5cGVdKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeCB0eXBlIGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdHhQYXJhbXMgdHlwZScpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXhwbGFpbmVkVHgudHlwZSkge1xuICAgICAgLy8gQGRlcHJlY2F0ZWRcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZERlbGVnYXRvcjpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZFZhbGlkYXRvcjpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZFBlcm1pc3Npb25sZXNzRGVsZWdhdG9yOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQWRkUGVybWlzc2lvbmxlc3NWYWxpZGF0b3I6XG4gICAgICAgIHRoaXMudmFsaWRhdGVTdGFraW5nVHgoc3Rha2luZ09wdGlvbnMsIGV4cGxhaW5lZFR4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5FeHBvcnQ6XG4gICAgICAgIGlmICghcGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMgfHwgcGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHM/Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwb3J0IFR4IHJlcXVpcmVzIGEgcmVjaXBpZW50Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUV4cG9ydFR4KHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzLCBleHBsYWluZWRUeCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5JbXBvcnQ6XG4gICAgICAgIGlmICh0eC5pc1RyYW5zYWN0aW9uRm9yQ0NoYWluKSB7XG4gICAgICAgICAgLy8gSW1wb3J0IHRvIEMtY2hhaW5cbiAgICAgICAgICBpZiAoZXhwbGFpbmVkVHgub3V0cHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgMSBvdXRwdXQgaW4gaW1wb3J0IHRyYW5zYWN0aW9uJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghcGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMgfHwgcGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIDEgcmVjaXBpZW50IGluIGltcG9ydCB0cmFuc2FjdGlvbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJbXBvcnQgdG8gUC1jaGFpblxuICAgICAgICAgIGlmIChleHBsYWluZWRUeC5vdXRwdXRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCAxIG91dHB1dCBpbiBpbXBvcnQgdHJhbnNhY3Rpb24nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUltcG9ydFR4KGV4cGxhaW5lZFR4LmlucHV0cywgcGFyYW1zLnR4UGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggdHlwZSBpcyBub3Qgc3VwcG9ydGVkIHlldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhZGRyZXNzIGlzIHZhbGlkLCB0aGVuIG1ha2Ugc3VyZSBpdCBtYXRjaGVzIHRoZSByb290IGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMuYWRkcmVzcyBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBwYXJhbXMua2V5Y2hhaW5zIHB1YmxpYyBrZXlzIHRvIGdlbmVyYXRlIHRoZSB3YWxsZXRcbiAgICovXG4gIGFzeW5jIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBhZGRyZXNzLCBrZXljaGFpbnMgfSA9IHBhcmFtcztcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICBpZiAoIWtleWNoYWlucyB8fCBrZXljaGFpbnMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5Y2hhaW5zJyk7XG4gICAgfVxuXG4gICAgLy8gbXVsdGlzaWcgYWRkcmVzc2VzIGFyZSBzZXBhcmF0ZWQgYnkgflxuICAgIGNvbnN0IHNwbGl0QWRkcmVzc2VzID0gYWRkcmVzcy5zcGxpdCgnficpO1xuXG4gICAgLy8gZGVyaXZlIGFkZHJlc3NlcyBmcm9tIGtleWNoYWluXG4gICAgY29uc3QgdW5sb2NrQWRkcmVzc2VzID0ga2V5Y2hhaW5zLm1hcCgoa2V5Y2hhaW4pID0+XG4gICAgICBuZXcgQXZheHBMaWIuS2V5UGFpcih7IHB1Yjoga2V5Y2hhaW4ucHViIH0pLmdldEFkZHJlc3ModGhpcy5fc3RhdGljc0NvaW4ubmV0d29yay50eXBlKVxuICAgICk7XG5cbiAgICBpZiAoc3BsaXRBZGRyZXNzZXMubGVuZ3RoICE9PSB1bmxvY2tBZGRyZXNzZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcihgYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IG11bHRpc2lnIGFkZHJlc3MgbGVuZ3RoIGRvZXMgbm90IG1hdGNoYCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFkcmVzc2VzQXJyYXlzTWF0Y2goc3BsaXRBZGRyZXNzZXMsIHVubG9ja0FkZHJlc3NlcykpIHtcbiAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKGBhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogJHthZGRyZXNzfSBpcyBub3Qgb2YgdGhpcyB3YWxsZXRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IHR3byBtdWx0aXNpZyBhZGRyZXNzIGFycmF5cyBoYXZlIHRoZSBzYW1lIGVsZW1lbnRzLCBvcmRlciBkb2VzbnQgbWF0dGVyXG4gICAqIEBwYXJhbSBhZGRyZXNzQXJyYXkxXG4gICAqIEBwYXJhbSBhZGRyZXNzQXJyYXkyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYWRkcmVzcyBhcnJheXMgaGF2ZSB0aGUgc2FtZSBhZGRyZXNzZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYWRyZXNzZXNBcnJheXNNYXRjaChhZGRyZXNzQXJyYXkxOiBzdHJpbmdbXSwgYWRkcmVzc0FycmF5Mjogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYWRkcmVzc0FycmF5MS5zb3J0KCkpID09PSBKU09OLnN0cmluZ2lmeShhZGRyZXNzQXJyYXkyLnNvcnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgQXZheHAga2V5IHBhaXJcbiAgICpcbiAgICogQHBhcmFtIHtCdWZmZXJ9IHNlZWQgLSBTZWVkIGZyb20gd2hpY2ggdGhlIG5ldyBrZXlwYWlyIHNob3VsZCBiZSBnZW5lcmF0ZWQsIG90aGVyd2lzZSBhIHJhbmRvbSBzZWVkIGlzIHVzZWRcbiAgICogQHJldHVybnMge09iamVjdH0gb2JqZWN0IHdpdGggZ2VuZXJhdGVkIHB1YiBhbmQgcHJ2XG4gICAqL1xuICBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIGNvbnN0IGtleVBhaXIgPSBzZWVkID8gbmV3IEF2YXhwTGliLktleVBhaXIoeyBzZWVkIH0pIDogbmV3IEF2YXhwTGliLktleVBhaXIoKTtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJ2IGluIGtleSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMucHViLFxuICAgICAgcHJ2OiBrZXlzLnBydixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwdWJsaWMga2V5IGZvciB0aGUgY29pblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViIHRoZSBwcnYgdG8gYmUgY2hlY2tlZFxuICAgKiBAcmV0dXJucyBpcyBpdCB2YWxpZD9cbiAgICovXG4gIGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEF2YXhwTGliLktleVBhaXIoeyBwdWIgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwcml2YXRlIGtleSBmb3IgdGhlIGNvaW5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBydiB0aGUgcHJ2IHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybnMgaXMgaXQgdmFsaWQ/XG4gICAqL1xuICBpc1ZhbGlkUHJ2KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBBdmF4cExpYi5LZXlQYWlyKHsgcHJ2IH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKGFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIGV0aCBhZGRyZXNzIGZvciBjcm9zcy1jaGFpbiB0eHMgdG8gYy1jaGFpblxuICAgIGlmICh0eXBlb2YgYWRkcmVzcyA9PT0gJ3N0cmluZycgJiYgaXNWYWxpZEV0aEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBBdmF4cExpYi5VdGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBBdmF4cCB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogQXZheHBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIC8vIGRlc2VyaWFsaXplIHJhdyB0cmFuc2FjdGlvbiAobm90ZTogZnJvbUFkZHJlc3MgaGFzIG9uY2hhaW4gb3JkZXIpXG4gICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKCkuZnJvbShwYXJhbXMudHhQcmVidWlsZC50eEhleCk7XG4gICAgY29uc3Qga2V5ID0gcGFyYW1zLnBydjtcblxuICAgIC8vIHB1c2ggdGhlIGtleXBhaXIgdG8gc2lnbmVyIGFycmF5XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXkgfSk7XG5cbiAgICAvLyBidWlsZCB0aGUgdHJhbnNhY3Rpb25cbiAgICBjb25zdCB0cmFuc2FjdGlvbjogQmFzZVRyYW5zYWN0aW9uID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFcnJvciB3aGlsZSB0cnlpbmcgdG8gYnVpbGQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLnNpZ25hdHVyZS5sZW5ndGggPj0gMlxuICAgICAgPyB7IHR4SGV4OiB0cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpIH1cbiAgICAgIDogeyBoYWxmU2lnbmVkOiB7IHR4SGV4OiB0cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpIH0gfTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogRXhwbGFpbiBhIEF2YXhwIHRyYW5zYWN0aW9uIGZyb20gdHhIZXhcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICovXG4gIGFzeW5jIGV4cGxhaW5UcmFuc2FjdGlvbihwYXJhbXM6IEV4cGxhaW5UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPEF2YXhwTGliLlRyYW5zYWN0aW9uRXhwbGFuYXRpb24+IHtcbiAgICBjb25zdCB0eEhleCA9IHBhcmFtcy50eEhleCA/PyBwYXJhbXM/LmhhbGZTaWduZWQ/LnR4SGV4O1xuICAgIGlmICghdHhIZXgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyB0cmFuc2FjdGlvbiBoZXgnKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcigpLmZyb20odHhIZXgpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHJldHVybiB0eC5leHBsYWluVHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHJlY292ZXJ5U2lnbmF0dXJlKG1lc3NhZ2U6IEJ1ZmZlciwgc2lnbmF0dXJlOiBCdWZmZXIpOiBCdWZmZXIge1xuICAgIHJldHVybiBBdmF4cExpYi5VdGlscy5yZWNvdmVyeVNpZ25hdHVyZSh0aGlzLl9zdGF0aWNzQ29pbi5uZXR3b3JrIGFzIEF2YWxhbmNoZU5ldHdvcmssIG1lc3NhZ2UsIHNpZ25hdHVyZSk7XG4gIH1cblxuICBhc3luYyBzaWduTWVzc2FnZShrZXk6IEtleVBhaXIsIG1lc3NhZ2U6IHN0cmluZyB8IEJ1ZmZlcik6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgY29uc3QgcHJ2ID0gbmV3IEF2YXhwTGliLktleVBhaXIoa2V5KS5nZXRQcml2YXRlS2V5KCk7XG4gICAgaWYgKCFwcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBtZXNzYWdlID0gQnVmZmVyLmZyb20obWVzc2FnZSwgJ2hleCcpO1xuICAgIH1cbiAgICByZXR1cm4gQXZheHBMaWIuVXRpbHMuY3JlYXRlU2lnbmF0dXJlKHRoaXMuX3N0YXRpY3NDb2luLm5ldHdvcmsgYXMgQXZhbGFuY2hlTmV0d29yaywgbWVzc2FnZSwgcHJ2KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnVpbGRlcigpOiBBdmF4cExpYi5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgICByZXR1cm4gbmV3IEF2YXhwTGliLlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KHRoaXMuZ2V0Q2hhaW4oKSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGF1ZGl0RGVjcnlwdGVkS2V5KHBhcmFtczogQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvKiogaHR0cHM6Ly9iaXRnb2luYy5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9DT0lOLTQyMTMgKi9cbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG59XG4iXX0=
|
package/dist/src/iface.d.ts
CHANGED
|
@@ -33,10 +33,8 @@ export interface AvaxpTransactionParams extends TransactionParams {
|
|
|
33
33
|
type: string;
|
|
34
34
|
stakingOptions: AvaxpTransactionStakingOptions;
|
|
35
35
|
locktime?: number;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
value: string;
|
|
39
|
-
};
|
|
36
|
+
unspents?: string[];
|
|
37
|
+
sourceChain?: string;
|
|
40
38
|
}
|
|
41
39
|
export interface AvaxpVerifyTransactionOptions extends VerifyTransactionOptions {
|
|
42
40
|
txParams: AvaxpTransactionParams;
|
package/dist/src/iface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../src/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,IAAI,uBAAuB,EAC9C,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AACD,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,8BAA8B,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../src/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,IAAI,uBAAuB,EAC9C,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AACD,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,8BAA8B,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAC7E,QAAQ,EAAE,sBAAsB,CAAC;CAClC"}
|
package/dist/src/iface.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFRyYW5zYWN0aW9uUHJlYnVpbGQgYXMgQmFzZVRyYW5zYWN0aW9uUHJlYnVpbGQsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvbkZlZSxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvblBhcmFtcyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgeyBUcmFuc2FjdGlvbkZlZSB9O1xuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg/OiBzdHJpbmc7XG4gIGhhbGZTaWduZWQ/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFRyYW5zYWN0aW9uUHJlYnVpbGQgYXMgQmFzZVRyYW5zYWN0aW9uUHJlYnVpbGQsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvbkZlZSxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvblBhcmFtcyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgeyBUcmFuc2FjdGlvbkZlZSB9O1xuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg/OiBzdHJpbmc7XG4gIGhhbGZTaWduZWQ/OiB7XG4gICAgdHhIZXg6IHN0cmluZztcbiAgfTtcbiAgcHVibGljS2V5cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR4SW5mbyB7XG4gIHJlY2lwaWVudHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIGZyb206IHN0cmluZztcbiAgdHhpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YXhwU2lnblRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eFByZWJ1aWxkOiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICBwcnY6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBwdWJLZXlzPzogc3RyaW5nW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUHJlYnVpbGQgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25QcmVidWlsZCB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIHR4SW5mbzogVHhJbmZvO1xuICBzb3VyY2U6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXZheHBUcmFuc2FjdGlvblN0YWtpbmdPcHRpb25zIHtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIGVuZFRpbWU6IHN0cmluZztcbiAgbm9kZUlEOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBkZWxlZ2F0aW9uRmVlUmF0ZT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXZheHBUcmFuc2FjdGlvblBhcmFtcyBleHRlbmRzIFRyYW5zYWN0aW9uUGFyYW1zIHtcbiAgdHlwZTogc3RyaW5nO1xuICBzdGFraW5nT3B0aW9uczogQXZheHBUcmFuc2FjdGlvblN0YWtpbmdPcHRpb25zO1xuICBsb2NrdGltZT86IG51bWJlcjtcbiAgdW5zcGVudHM/OiBzdHJpbmdbXTtcbiAgc291cmNlQ2hhaW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXZheHBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMgZXh0ZW5kcyBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eFBhcmFtczogQXZheHBUcmFuc2FjdGlvblBhcmFtcztcbn1cbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,OAAO,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,OAAO,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,17 +18,28 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
20
|
};
|
|
17
|
-
var __importStar = (this && this.__importStar) || function (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
24
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
39
|
exports.AvaxpLib = void 0;
|
|
26
40
|
__exportStar(require("./avaxp"), exports);
|
|
27
41
|
__exportStar(require("./tavaxp"), exports);
|
|
28
42
|
exports.AvaxpLib = __importStar(require("./lib"));
|
|
29
43
|
__exportStar(require("./iface"), exports);
|
|
30
|
-
|
|
44
|
+
__exportStar(require("./register"), exports);
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLDJDQUF5QjtBQUN6QixrREFBa0M7QUFDbEMsMENBQXdCO0FBQ3hCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXZheHAnO1xuZXhwb3J0ICogZnJvbSAnLi90YXZheHAnO1xuZXhwb3J0ICogYXMgQXZheHBMaWIgZnJvbSAnLi9saWInO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/// <reference types="bn.js" />
|
|
2
1
|
import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
|
|
3
2
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
4
3
|
import { BN } from 'avalanche';
|
|
5
|
-
import {
|
|
4
|
+
import { DeprecatedTransaction } from './deprecatedTransaction';
|
|
6
5
|
export declare abstract class AtomicInCTransactionBuilder extends AtomicTransactionBuilder {
|
|
7
6
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
8
7
|
/**
|
|
@@ -12,7 +11,7 @@ export declare abstract class AtomicInCTransactionBuilder extends AtomicTransact
|
|
|
12
11
|
*/
|
|
13
12
|
feeRate(baseFee: string | number): this;
|
|
14
13
|
/** @inheritdoc */
|
|
15
|
-
protected fromImplementation(rawTransaction: string):
|
|
14
|
+
protected fromImplementation(rawTransaction: string): DeprecatedTransaction;
|
|
16
15
|
/**
|
|
17
16
|
* Check that fee is grater than 0.
|
|
18
17
|
* @param {BN} fee
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicInCTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicInCTransactionBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"atomicInCTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicInCTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAwB,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,8BAAsB,2BAA4B,SAAQ,wBAAwB;gBACpE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ7C;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOvC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,qBAAqB;IAO3E;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI;CAK3B"}
|
|
@@ -46,4 +46,4 @@ class AtomicInCTransactionBuilder extends atomicTransactionBuilder_1.AtomicTrans
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
exports.AtomicInCTransactionBuilder = AtomicInCTransactionBuilder;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUVBQXNFO0FBRXRFLG9EQUE0QjtBQUM1Qix5Q0FBcUQ7QUFDckQsbURBQTZEO0FBQzdELG1EQUF5RDtBQUd6RCxNQUFzQiwyQkFBNEIsU0FBUSxtREFBd0I7SUFDaEYsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pGLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsT0FBd0I7UUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE1BQU0sRUFBRSxHQUFHLElBQUksT0FBSyxFQUFFLENBQUM7UUFDdkIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxrQkFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEdBQU87UUFDakIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRDRCxrRUFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2F0b21pY1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCTiwgQnVmZmVyIGFzIEJ1ZmZlckF2YXggfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHggYXMgRVZNVHggfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL2V2bS90eCc7XG5pbXBvcnQgeyBEZXByZWNhdGVkVHJhbnNhY3Rpb24gfSBmcm9tICcuL2RlcHJlY2F0ZWRUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgLy8gZXh0ZXJuYWwgY2hhaW4gaWQgaXMgUFxuICAgIHRoaXMuX2V4dGVybmFsQ2hhaW5JZCA9IHV0aWxzLmNiNThEZWNvZGUodGhpcy50cmFuc2FjdGlvbi5fbmV0d29yay5ibG9ja2NoYWluSUQpO1xuICAgIC8vIGNoYWluIGlkIGlzIENcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQgPSB1dGlscy5jYjU4RGVjb2RlKHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsuY0NoYWluQmxvY2tjaGFpbklEKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDLUNoYWluIGJhc2UgZmVlIHdpdGggZGVjaW1hbCBwbGFjZXMgY29udmVydGVkIGZvcm0gMTggdG8gOS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGJhc2VGZWVcbiAgICovXG4gIGZlZVJhdGUoYmFzZUZlZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgY29uc3QgYm5WYWx1ZSA9IG5ldyBCTihiYXNlRmVlKTtcbiAgICB0aGlzLnZhbGlkYXRlRmVlKGJuVmFsdWUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2ZlZS5mZWVSYXRlID0gYm5WYWx1ZS50b051bWJlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IERlcHJlY2F0ZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBuZXcgRVZNVHgoKTtcbiAgICB0eC5mcm9tQnVmZmVyKEJ1ZmZlckF2YXguZnJvbShyYXdUcmFuc2FjdGlvbiwgJ2hleCcpKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGF0IGZlZSBpcyBncmF0ZXIgdGhhbiAwLlxuICAgKiBAcGFyYW0ge0JOfSBmZWVcbiAgICovXG4gIHZhbGlkYXRlRmVlKGZlZTogQk4pOiB2b2lkIHtcbiAgICBpZiAoZmVlLmx0ZW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="bn.js" />
|
|
3
1
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
4
2
|
import { BN, Buffer as BufferAvax } from 'avalanche';
|
|
5
|
-
import {
|
|
3
|
+
import { DeprecatedTransactionBuilder } from './deprecatedTransactionBuilder';
|
|
6
4
|
import { TransferableInput, TransferableOutput } from 'avalanche/dist/apis/platformvm';
|
|
7
5
|
import { Credential } from 'avalanche/dist/common';
|
|
8
6
|
/**
|
|
9
7
|
* Cross-chain transactions (export and import) are atomic operations.
|
|
10
8
|
*/
|
|
11
|
-
export declare abstract class AtomicTransactionBuilder extends
|
|
9
|
+
export declare abstract class AtomicTransactionBuilder extends DeprecatedTransactionBuilder {
|
|
12
10
|
protected _externalChainId: BufferAvax;
|
|
13
11
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
14
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicTransactionBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"atomicTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAIL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD;;GAEG;AACH,8BAAsB,wBAAyB,SAAQ,4BAA4B;IACjF,SAAS,CAAC,gBAAgB,EAAE,UAAU,CAAC;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C;;;;;OAKG;IACH,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAGD;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,GAAG;QACvC,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;KAC3B;CAsHF"}
|