@bitgo-beta/sdk-coin-ada 2.3.14-beta.14 → 2.3.14-beta.141

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.
Files changed (34) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/dist/src/ada.d.ts +38 -17
  3. package/dist/src/ada.d.ts.map +1 -1
  4. package/dist/src/ada.js +266 -87
  5. package/dist/src/lib/index.d.ts +3 -1
  6. package/dist/src/lib/index.d.ts.map +1 -1
  7. package/dist/src/lib/index.js +8 -4
  8. package/dist/src/lib/{stakingWithdrawRewardsBuilder.d.ts → stakingBaseClaimBuilder.d.ts} +6 -7
  9. package/dist/src/lib/stakingBaseClaimBuilder.d.ts.map +1 -0
  10. package/dist/src/lib/stakingBaseClaimBuilder.js +35 -0
  11. package/dist/src/lib/stakingClaimRewardsBuilder.d.ts +10 -0
  12. package/dist/src/lib/stakingClaimRewardsBuilder.d.ts.map +1 -0
  13. package/dist/src/lib/stakingClaimRewardsBuilder.js +22 -0
  14. package/dist/src/lib/stakingPledgeBuilder.d.ts +23 -0
  15. package/dist/src/lib/stakingPledgeBuilder.d.ts.map +1 -0
  16. package/dist/src/lib/stakingPledgeBuilder.js +43 -0
  17. package/dist/src/lib/stakingWithdrawBuilder.d.ts +12 -0
  18. package/dist/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  19. package/dist/src/lib/stakingWithdrawBuilder.js +22 -0
  20. package/dist/src/lib/transaction.d.ts +26 -2
  21. package/dist/src/lib/transaction.d.ts.map +1 -1
  22. package/dist/src/lib/transaction.js +99 -9
  23. package/dist/src/lib/transactionBuilder.d.ts +2 -0
  24. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  25. package/dist/src/lib/transactionBuilder.js +21 -4
  26. package/dist/src/lib/transactionBuilderFactory.d.ts +6 -2
  27. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  28. package/dist/src/lib/transactionBuilderFactory.js +15 -3
  29. package/dist/src/lib/utils.d.ts +6 -0
  30. package/dist/src/lib/utils.d.ts.map +1 -1
  31. package/dist/src/lib/utils.js +29 -12
  32. package/package.json +10 -9
  33. package/dist/src/lib/stakingWithdrawRewardsBuilder.d.ts.map +0 -1
  34. package/dist/src/lib/stakingWithdrawRewardsBuilder.js +0 -43
@@ -1,11 +1,10 @@
1
- import { BaseKey } from '@bitgo-beta/sdk-core';
2
- import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
1
  import { TransactionBuilder } from './transactionBuilder';
4
2
  import { Transaction } from './transaction';
5
- export declare class StakingWithdrawRewardsBuilder extends TransactionBuilder {
6
- constructor(_coinConfig: Readonly<CoinConfig>);
7
- /** @inheritdoc */
8
- protected buildImplementation(): Promise<Transaction>;
3
+ import { BaseKey } from '@bitgo-beta/sdk-core';
4
+ /**
5
+ * Common functionalities for claiming rewards and withdrawing unstaked builders.
6
+ */
7
+ export declare abstract class StakingBaseClaimBuilder extends TransactionBuilder {
9
8
  /** @inheritdoc */
10
9
  protected fromImplementation(rawTransaction: string): Transaction;
11
10
  /** @inheritdoc */
@@ -18,4 +17,4 @@ export declare class StakingWithdrawRewardsBuilder extends TransactionBuilder {
18
17
  */
19
18
  addWithdrawal(stakingPubKey: string, value: string): this;
20
19
  }
21
- //# sourceMappingURL=stakingWithdrawRewardsBuilder.d.ts.map
20
+ //# sourceMappingURL=stakingBaseClaimBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingBaseClaimBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingBaseClaimBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;GAEG;AACH,8BAAsB,uBAAwB,SAAQ,kBAAkB;IACtE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAIjE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CASnD"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakingBaseClaimBuilder = void 0;
4
+ const transactionBuilder_1 = require("./transactionBuilder");
5
+ const __1 = require("../");
6
+ /**
7
+ * Common functionalities for claiming rewards and withdrawing unstaked builders.
8
+ */
9
+ class StakingBaseClaimBuilder extends transactionBuilder_1.TransactionBuilder {
10
+ /** @inheritdoc */
11
+ fromImplementation(rawTransaction) {
12
+ return super.fromImplementation(rawTransaction);
13
+ }
14
+ /** @inheritdoc */
15
+ signImplementation(key) {
16
+ return super.signImplementation(key);
17
+ }
18
+ /**
19
+ * Creates a withdrawal to add to our transaction body so we can withdraw from our rewards/stake address
20
+ *
21
+ * @param stakingPubKey User's public stake key
22
+ * @param value Amount from the rewards address we're withdrawing
23
+ */
24
+ addWithdrawal(stakingPubKey, value) {
25
+ const coinName = this._coinConfig.name;
26
+ const rewardAddress = __1.Utils.default.getRewardAddress(stakingPubKey, coinName);
27
+ this._withdrawals.push({
28
+ stakeAddress: rewardAddress,
29
+ value,
30
+ });
31
+ return this;
32
+ }
33
+ }
34
+ exports.StakingBaseClaimBuilder = StakingBaseClaimBuilder;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0Jhc2VDbGFpbUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCYXNlQ2xhaW1CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUEwRDtBQUcxRCwyQkFBNEI7QUFFNUI7O0dBRUc7QUFDSCxNQUFzQix1QkFBd0IsU0FBUSx1Q0FBa0I7SUFDdEUsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLGFBQXFCLEVBQUUsS0FBYTtRQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUN2QyxNQUFNLGFBQWEsR0FBRyxTQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQixZQUFZLEVBQUUsYUFBYTtZQUMzQixLQUFLO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUExQkQsMERBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEJhc2VLZXkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLyc7XG5cbi8qKlxuICogQ29tbW9uIGZ1bmN0aW9uYWxpdGllcyBmb3IgY2xhaW1pbmcgcmV3YXJkcyBhbmQgd2l0aGRyYXdpbmcgdW5zdGFrZWQgYnVpbGRlcnMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdGFraW5nQmFzZUNsYWltQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB3aXRoZHJhd2FsIHRvIGFkZCB0byBvdXIgdHJhbnNhY3Rpb24gYm9keSBzbyB3ZSBjYW4gd2l0aGRyYXcgZnJvbSBvdXIgcmV3YXJkcy9zdGFrZSBhZGRyZXNzXG4gICAqXG4gICAqIEBwYXJhbSBzdGFraW5nUHViS2V5IFVzZXIncyBwdWJsaWMgc3Rha2Uga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSBBbW91bnQgZnJvbSB0aGUgcmV3YXJkcyBhZGRyZXNzIHdlJ3JlIHdpdGhkcmF3aW5nXG4gICAqL1xuICBhZGRXaXRoZHJhd2FsKHN0YWtpbmdQdWJLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvaW5OYW1lID0gdGhpcy5fY29pbkNvbmZpZy5uYW1lO1xuICAgIGNvbnN0IHJld2FyZEFkZHJlc3MgPSBVdGlscy5kZWZhdWx0LmdldFJld2FyZEFkZHJlc3Moc3Rha2luZ1B1YktleSwgY29pbk5hbWUpO1xuICAgIHRoaXMuX3dpdGhkcmF3YWxzLnB1c2goe1xuICAgICAgc3Rha2VBZGRyZXNzOiByZXdhcmRBZGRyZXNzLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { StakingBaseClaimBuilder } from './stakingBaseClaimBuilder';
2
+ /**
3
+ * Transaction builder for claiming staking rewards.
4
+ */
5
+ export declare class StakingClaimRewardsBuilder extends StakingBaseClaimBuilder {
6
+ constructor(_coinConfig: any);
7
+ /** @inheritdoc */
8
+ buildImplementation(): Promise<import("./transaction").Transaction>;
9
+ }
10
+ //# sourceMappingURL=stakingClaimRewardsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingClaimRewardsBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingClaimRewardsBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,uBAAuB;gBACzD,WAAW,KAAA;IAKvB,kBAAkB;IACZ,mBAAmB;CAK1B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakingClaimRewardsBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const stakingBaseClaimBuilder_1 = require("./stakingBaseClaimBuilder");
6
+ /**
7
+ * Transaction builder for claiming staking rewards.
8
+ */
9
+ class StakingClaimRewardsBuilder extends stakingBaseClaimBuilder_1.StakingBaseClaimBuilder {
10
+ constructor(_coinConfig) {
11
+ super(_coinConfig);
12
+ this._type = sdk_core_1.TransactionType.StakingClaim;
13
+ }
14
+ /** @inheritdoc */
15
+ async buildImplementation() {
16
+ const tx = await super.buildImplementation();
17
+ tx.setTransactionType(sdk_core_1.TransactionType.StakingClaim);
18
+ return tx;
19
+ }
20
+ }
21
+ exports.StakingClaimRewardsBuilder = StakingClaimRewardsBuilder;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0NsYWltUmV3YXJkc0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdDbGFpbVJld2FyZHNCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUF1RDtBQUN2RCx1RUFBb0U7QUFFcEU7O0dBRUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLGlEQUF1QjtJQUNyRSxZQUFZLFdBQVc7UUFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixLQUFLLENBQUMsbUJBQW1CO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0MsRUFBRSxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0Y7QUFaRCxnRUFZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFN0YWtpbmdCYXNlQ2xhaW1CdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nQmFzZUNsYWltQnVpbGRlcic7XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gYnVpbGRlciBmb3IgY2xhaW1pbmcgc3Rha2luZyByZXdhcmRzLlxuICovXG5leHBvcnQgY2xhc3MgU3Rha2luZ0NsYWltUmV3YXJkc0J1aWxkZXIgZXh0ZW5kcyBTdGFraW5nQmFzZUNsYWltQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnKSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0NsYWltO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKSB7XG4gICAgY29uc3QgdHggPSBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgdHguc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW0pO1xuICAgIHJldHVybiB0eDtcbiAgfVxufVxuIl19
@@ -0,0 +1,23 @@
1
+ import { BaseKey, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { Transaction } from './transaction';
5
+ export declare class StakingPledgeBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ protected get transactionType(): TransactionType;
8
+ /** @inheritdoc */
9
+ initBuilder(tx: Transaction): void;
10
+ /**
11
+ * Add node key witness to the transaction to the transaction's witnesses list.
12
+ *
13
+ * @param nodePublicKey Public node key provided by the user.
14
+ * @param nodeKeySignature Signature of the node key provided by the user.
15
+ */
16
+ addNodeKeyWitness(nodePublicKey: string, nodeKeySignature: string): this;
17
+ /** @inheritdoc */
18
+ protected buildImplementation(): Promise<Transaction>;
19
+ /** @inheritdoc */
20
+ protected fromImplementation(rawTransaction: string): Transaction;
21
+ protected signImplementation(key: BaseKey): Transaction;
22
+ }
23
+ //# sourceMappingURL=stakingPledgeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingPledgeBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingPledgeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,kBAAkB;gBAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIlC;;;;;OAKG;IACH,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAKxE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAM3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAIjE,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakingPledgeBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const transactionBuilder_1 = require("./transactionBuilder");
6
+ class StakingPledgeBuilder extends transactionBuilder_1.TransactionBuilder {
7
+ constructor(_coinConfig) {
8
+ super(_coinConfig);
9
+ this._type = sdk_core_1.TransactionType.StakingPledge;
10
+ }
11
+ get transactionType() {
12
+ return sdk_core_1.TransactionType.StakingPledge;
13
+ }
14
+ /** @inheritdoc */
15
+ initBuilder(tx) {
16
+ super.initBuilder(tx);
17
+ }
18
+ /**
19
+ * Add node key witness to the transaction to the transaction's witnesses list.
20
+ *
21
+ * @param nodePublicKey Public node key provided by the user.
22
+ * @param nodeKeySignature Signature of the node key provided by the user.
23
+ */
24
+ addNodeKeyWitness(nodePublicKey, nodeKeySignature) {
25
+ this.addSignature({ pub: nodePublicKey }, Buffer.from(nodeKeySignature, 'hex'));
26
+ return this;
27
+ }
28
+ /** @inheritdoc */
29
+ async buildImplementation() {
30
+ const tx = await super.buildImplementation();
31
+ tx.setTransactionType(sdk_core_1.TransactionType.StakingPledge);
32
+ return tx;
33
+ }
34
+ /** @inheritdoc */
35
+ fromImplementation(rawTransaction) {
36
+ return super.fromImplementation(rawTransaction);
37
+ }
38
+ signImplementation(key) {
39
+ return super.signImplementation(key);
40
+ }
41
+ }
42
+ exports.StakingPledgeBuilder = StakingPledgeBuilder;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BsZWRnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdQbGVkZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRTtBQUVoRSw2REFBMEQ7QUFHMUQsTUFBYSxvQkFBcUIsU0FBUSx1Q0FBa0I7SUFDMUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFDLGFBQXFCLEVBQUUsZ0JBQXdCO1FBQy9ELElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxjQUFzQjtRQUNqRCxPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUF6Q0Qsb0RBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUtleSwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdQbGVkZ2VCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1BsZWRnZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nUGxlZGdlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbm9kZSBrZXkgd2l0bmVzcyB0byB0aGUgdHJhbnNhY3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uJ3Mgd2l0bmVzc2VzIGxpc3QuXG4gICAqXG4gICAqIEBwYXJhbSBub2RlUHVibGljS2V5IFB1YmxpYyBub2RlIGtleSBwcm92aWRlZCBieSB0aGUgdXNlci5cbiAgICogQHBhcmFtIG5vZGVLZXlTaWduYXR1cmUgU2lnbmF0dXJlIG9mIHRoZSBub2RlIGtleSBwcm92aWRlZCBieSB0aGUgdXNlci5cbiAgICovXG4gIGFkZE5vZGVLZXlXaXRuZXNzKG5vZGVQdWJsaWNLZXk6IHN0cmluZywgbm9kZUtleVNpZ25hdHVyZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5hZGRTaWduYXR1cmUoeyBwdWI6IG5vZGVQdWJsaWNLZXkgfSwgQnVmZmVyLmZyb20obm9kZUtleVNpZ25hdHVyZSwgJ2hleCcpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgdHguc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nUGxlZGdlKTtcbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { Transaction } from './transaction';
3
+ import { StakingBaseClaimBuilder } from './stakingBaseClaimBuilder';
4
+ /**
5
+ * Transaction builder for withdrawing unstaked ADAs.
6
+ */
7
+ export declare class StakingWithdrawBuilder extends StakingBaseClaimBuilder {
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ /** @inheritdoc */
10
+ protected buildImplementation(): Promise<Transaction>;
11
+ }
12
+ //# sourceMappingURL=stakingWithdrawBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingWithdrawBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingWithdrawBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,uBAAuB;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAK5D"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakingWithdrawBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const stakingBaseClaimBuilder_1 = require("./stakingBaseClaimBuilder");
6
+ /**
7
+ * Transaction builder for withdrawing unstaked ADAs.
8
+ */
9
+ class StakingWithdrawBuilder extends stakingBaseClaimBuilder_1.StakingBaseClaimBuilder {
10
+ constructor(_coinConfig) {
11
+ super(_coinConfig);
12
+ this._type = sdk_core_1.TransactionType.StakingWithdraw;
13
+ }
14
+ /** @inheritdoc */
15
+ async buildImplementation() {
16
+ const tx = await super.buildImplementation();
17
+ tx.setTransactionType(sdk_core_1.TransactionType.StakingWithdraw);
18
+ return tx;
19
+ }
20
+ }
21
+ exports.StakingWithdrawBuilder = StakingWithdrawBuilder;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1dpdGhkcmF3QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc3Rha2luZ1dpdGhkcmF3QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBdUQ7QUFHdkQsdUVBQW9FO0FBRXBFOztHQUVHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxpREFBdUI7SUFDakUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBWkQsd0RBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ0Jhc2VDbGFpbUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdCYXNlQ2xhaW1CdWlsZGVyJztcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBidWlsZGVyIGZvciB3aXRoZHJhd2luZyB1bnN0YWtlZCBBREFzLlxuICovXG5leHBvcnQgY2xhc3MgU3Rha2luZ1dpdGhkcmF3QnVpbGRlciBleHRlbmRzIFN0YWtpbmdCYXNlQ2xhaW1CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgICB0eC5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdyk7XG4gICAgcmV0dXJuIHR4O1xuICB9XG59XG4iXX0=
@@ -17,17 +17,34 @@ export interface Witness {
17
17
  declare enum CertType {
18
18
  StakeKeyRegistration = 0,
19
19
  StakeKeyDelegation = 1,
20
- StakeKeyDeregistration = 2
20
+ StakeKeyDeregistration = 2,
21
+ StakePoolRegistration = 3
21
22
  }
22
23
  export interface Cert {
23
24
  type: CertType;
24
- stakeCredentialHash: string;
25
+ stakeCredentialHash?: string;
25
26
  poolKeyHash?: string;
26
27
  }
27
28
  export interface Withdrawal {
28
29
  stakeAddress: string;
29
30
  value: string;
30
31
  }
32
+ export declare type StakeKeyRegistrationCert = Cert;
33
+ export declare type StakeKeyDelegationCert = Cert;
34
+ export interface StakePoolRegistrationCert extends Cert {
35
+ vrfKeyHash: string;
36
+ pledge: string;
37
+ cost: string;
38
+ marginNumerator: string;
39
+ marginDenominator: string;
40
+ rewardAccount: string;
41
+ poolOwners: string[];
42
+ }
43
+ export interface PledgeDetails {
44
+ stakeKeyRegistration?: StakeKeyRegistrationCert;
45
+ stakeKeyDelegation?: StakeKeyDelegationCert;
46
+ stakePoolRegistration: StakePoolRegistrationCert;
47
+ }
31
48
  /**
32
49
  * The transaction data returned from the toJson() function of a transaction
33
50
  */
@@ -39,10 +56,12 @@ export interface TxData {
39
56
  witnesses: Witness[];
40
57
  certs: Cert[];
41
58
  withdrawals: Withdrawal[];
59
+ pledgeDetails?: PledgeDetails;
42
60
  }
43
61
  export declare class Transaction extends BaseTransaction {
44
62
  private _transaction;
45
63
  private _fee;
64
+ private _pledgeDetails?;
46
65
  constructor(coinConfig: Readonly<CoinConfig>);
47
66
  get transaction(): CardanoWasm.Transaction;
48
67
  set transaction(tx: CardanoWasm.Transaction);
@@ -64,6 +83,9 @@ export declare class Transaction extends BaseTransaction {
64
83
  * @param rawTx
65
84
  */
66
85
  fromRawTransaction(rawTx: string): void;
86
+ private loadStakeKeyRegistration;
87
+ private loadStakeKeyDelegation;
88
+ private loadStakePoolRegistration;
67
89
  /**
68
90
  * Set the transaction type.
69
91
  *
@@ -87,7 +109,9 @@ export declare class Transaction extends BaseTransaction {
87
109
  changeAmount: string;
88
110
  type: string;
89
111
  withdrawals: Withdrawal[];
112
+ pledgeDetails?: PledgeDetails;
90
113
  };
114
+ getPledgeDetails(): PledgeDetails | undefined;
91
115
  /**
92
116
  * Get transaction fee
93
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,WAAW,MAAM,0CAA0C,CAAC;AAExE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,aAAK,QAAQ;IACX,oBAAoB,IAAA;IACpB,kBAAkB,IAAA;IAClB,sBAAsB,IAAA;CACvB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,IAAI,CAAS;gBAET,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,CAEzC;IAED,IAAI,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,WAAW,EAG1C;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAS9B,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAqFhB;;;OAGG;IACH,oBAAoB,IAAI,IAAI;IAiB5B,kBAAkB;IAClB,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkCvC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,kBAAkB;IAClB,kBAAkB,IAAI;QACpB,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/C,YAAY,EAAE,IAAI,EAAE,CAAC;QACrB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACrB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,UAAU,EAAE,CAAC;KAC3B;IA2BD;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM;CAGhB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ var CertType;
28
28
  CertType[CertType["StakeKeyRegistration"] = 0] = "StakeKeyRegistration";
29
29
  CertType[CertType["StakeKeyDelegation"] = 1] = "StakeKeyDelegation";
30
30
  CertType[CertType["StakeKeyDeregistration"] = 2] = "StakeKeyDeregistration";
31
+ CertType[CertType["StakePoolRegistration"] = 3] = "StakePoolRegistration";
31
32
  })(CertType || (CertType = {}));
32
33
  class Transaction extends sdk_core_1.BaseTransaction {
33
34
  constructor(coinConfig) {
@@ -109,8 +110,16 @@ class Transaction extends sdk_core_1.BaseTransaction {
109
110
  poolKeyHash: Buffer.from(stakeDelegation.pool_keyhash().to_bytes()).toString('hex'),
110
111
  });
111
112
  }
113
+ if (cert.as_pool_registration() !== undefined) {
114
+ const stakePoolRegistration = cert.as_pool_registration();
115
+ result.certs.push({
116
+ type: CertType.StakePoolRegistration,
117
+ poolKeyHash: Buffer.from(stakePoolRegistration.pool_params().operator().to_bytes()).toString('hex'),
118
+ });
119
+ }
112
120
  }
113
121
  }
122
+ result.pledgeDetails = this._pledgeDetails;
114
123
  if (this._transaction.body().withdrawals()) {
115
124
  const withdrawals = this._transaction.body().withdrawals();
116
125
  const keys = withdrawals.keys();
@@ -128,7 +137,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
128
137
  for (let i = 0; i < vkeys.len(); i++) {
129
138
  const vkey = this._transaction.witness_set().vkeys().get(i);
130
139
  result.witnesses.push({
131
- publicKey: vkey === null || vkey === void 0 ? void 0 : vkey.vkey().public_key().to_bech32(),
140
+ publicKey: vkey === null || vkey === void 0 ? void 0 : vkey.vkey().public_key().to_hex(),
132
141
  signature: vkey === null || vkey === void 0 ? void 0 : vkey.signature().to_hex(),
133
142
  });
134
143
  }
@@ -175,14 +184,27 @@ class Transaction extends sdk_core_1.BaseTransaction {
175
184
  this._id = Buffer.from(CardanoWasm.hash_transaction(txn.body()).to_bytes()).toString('hex');
176
185
  this._type = sdk_core_1.TransactionType.Send;
177
186
  if (this._transaction.body().certs()) {
187
+ const certs = [];
178
188
  for (let i = 0; i < this._transaction.body().certs().len(); i++) {
179
189
  const cert = this._transaction.body().certs().get(i);
180
- if (cert.as_stake_registration() !== undefined) {
181
- this._type = sdk_core_1.TransactionType.StakingActivate;
182
- }
183
- if (cert.as_stake_deregistration() !== undefined) {
184
- this._type = sdk_core_1.TransactionType.StakingDeactivate;
185
- }
190
+ certs.push(cert);
191
+ }
192
+ if (certs.some((c) => c.as_pool_registration() !== undefined)) {
193
+ this._type = sdk_core_1.TransactionType.StakingPledge;
194
+ const stakeKeyRegistration = certs.find((c) => c.as_stake_registration() !== undefined);
195
+ const stakeKeyDelegation = certs.find((c) => c.as_stake_delegation() !== undefined);
196
+ const stakePoolRegistration = certs.find((c) => c.as_pool_registration() !== undefined);
197
+ this._pledgeDetails = {
198
+ stakeKeyRegistration: this.loadStakeKeyRegistration(stakeKeyRegistration),
199
+ stakeKeyDelegation: this.loadStakeKeyDelegation(stakeKeyDelegation),
200
+ stakePoolRegistration: this.loadStakePoolRegistration(stakePoolRegistration),
201
+ };
202
+ }
203
+ else if (certs.some((c) => c.as_stake_registration() !== undefined)) {
204
+ this._type = sdk_core_1.TransactionType.StakingActivate;
205
+ }
206
+ else if (certs.some((c) => c.as_stake_deregistration() !== undefined)) {
207
+ this._type = sdk_core_1.TransactionType.StakingDeactivate;
186
208
  }
187
209
  }
188
210
  if (this._transaction.body().withdrawals()) {
@@ -190,11 +212,71 @@ class Transaction extends sdk_core_1.BaseTransaction {
190
212
  }
191
213
  this._fee = txn.body().fee().to_str();
192
214
  this.loadInputsAndOutputs();
215
+ if (this._transaction.witness_set().vkeys()) {
216
+ const vkeys = this._transaction.witness_set().vkeys();
217
+ for (let i = 0; i < vkeys.len(); i++) {
218
+ const vkey = vkeys.get(i);
219
+ this._signatures.push(vkey.signature().to_hex());
220
+ }
221
+ }
193
222
  }
194
223
  catch (e) {
195
224
  throw new sdk_core_1.InvalidTransactionError('unable to build transaction from raw');
196
225
  }
197
226
  }
227
+ loadStakeKeyRegistration(certificate) {
228
+ if (certificate === undefined) {
229
+ return undefined;
230
+ }
231
+ const stakeRegistration = certificate.as_stake_registration();
232
+ if (stakeRegistration !== undefined && stakeRegistration.stake_credential().to_keyhash() !== undefined) {
233
+ return {
234
+ type: CertType.StakeKeyRegistration,
235
+ stakeCredentialHash: stakeRegistration.stake_credential().to_keyhash().to_hex(),
236
+ };
237
+ }
238
+ else {
239
+ return undefined;
240
+ }
241
+ }
242
+ loadStakeKeyDelegation(certificate) {
243
+ if (certificate === undefined) {
244
+ return undefined;
245
+ }
246
+ const stakeDelegation = certificate.as_stake_delegation();
247
+ if (stakeDelegation !== undefined && stakeDelegation.stake_credential().to_keyhash() !== undefined) {
248
+ return {
249
+ type: CertType.StakeKeyDelegation,
250
+ stakeCredentialHash: stakeDelegation.stake_credential().to_keyhash().to_hex(),
251
+ poolKeyHash: stakeDelegation.pool_keyhash().to_hex(),
252
+ };
253
+ }
254
+ else {
255
+ return undefined;
256
+ }
257
+ }
258
+ loadStakePoolRegistration(certificate) {
259
+ const poolRegistration = certificate.as_pool_registration();
260
+ const rewardAccount = poolRegistration.pool_params().reward_account();
261
+ const networkId = rewardAccount.to_address().network_id();
262
+ const owners = [];
263
+ for (let i = 0; i < poolRegistration.pool_params().pool_owners().len(); i++) {
264
+ const poolOwner = poolRegistration.pool_params().pool_owners().get(i);
265
+ const ownerStakeKey = CardanoWasm.StakeCredential.from_keyhash(poolOwner);
266
+ owners.push(CardanoWasm.RewardAddress.new(networkId, ownerStakeKey).to_address().to_bech32());
267
+ }
268
+ return {
269
+ type: CertType.StakePoolRegistration,
270
+ poolKeyHash: poolRegistration.pool_params().operator().to_hex(),
271
+ vrfKeyHash: poolRegistration.pool_params().vrf_keyhash().to_hex(),
272
+ pledge: poolRegistration.pool_params().pledge().to_str(),
273
+ cost: poolRegistration.pool_params().cost().to_str(),
274
+ marginNumerator: poolRegistration.pool_params().margin().numerator().to_str(),
275
+ marginDenominator: poolRegistration.pool_params().margin().denominator().to_str(),
276
+ rewardAccount: rewardAccount.to_address().to_bech32(),
277
+ poolOwners: owners,
278
+ };
279
+ }
198
280
  /**
199
281
  * Set the transaction type.
200
282
  *
@@ -215,7 +297,11 @@ class Transaction extends sdk_core_1.BaseTransaction {
215
297
  ? 'StakingActivate'
216
298
  : this._type === sdk_core_1.TransactionType.StakingWithdraw
217
299
  ? 'StakingWithdraw'
218
- : 'StakingDeactivate';
300
+ : this._type === sdk_core_1.TransactionType.StakingDeactivate
301
+ ? 'StakingDeactivate'
302
+ : this._type === sdk_core_1.TransactionType.StakingPledge
303
+ ? 'StakingPledge'
304
+ : 'undefined';
219
305
  return {
220
306
  displayOrder,
221
307
  id: txJson.id,
@@ -227,8 +313,12 @@ class Transaction extends sdk_core_1.BaseTransaction {
227
313
  type,
228
314
  certificates: txJson.certs,
229
315
  withdrawals: txJson.withdrawals,
316
+ pledgeDetails: this._pledgeDetails,
230
317
  };
231
318
  }
319
+ getPledgeDetails() {
320
+ return this._pledgeDetails;
321
+ }
232
322
  /**
233
323
  * Get transaction fee
234
324
  */
@@ -245,4 +335,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
245
335
  }
246
336
  }
247
337
  exports.Transaction = Transaction;
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFPOEI7QUFDOUIsc0ZBQXdFO0FBQ3hFLHVDQUFvQztBQWlCcEMsSUFBSyxRQUlKO0FBSkQsV0FBSyxRQUFRO0lBQ1gsdUVBQW9CLENBQUE7SUFDcEIsbUVBQWtCLENBQUE7SUFDbEIsMkVBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUpJLFFBQVEsS0FBUixRQUFRLFFBSVo7QUF5QkQsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFJOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsRUFBMkI7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUk7WUFDRixJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE1BQU07WUFDTixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE1BQU0s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LENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBeFBELGtDQXdQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgRW50cnksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb2RlRW52aXJvbm1lbnRFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBDYXJkYW5vV2FzbSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5wdXQge1xuICB0cmFuc2FjdGlvbl9pZDogc3RyaW5nO1xuICB0cmFuc2FjdGlvbl9pbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uT3V0cHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRuZXNzIHtcbiAgcHVibGljS2V5OiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xufVxuZW51bSBDZXJ0VHlwZSB7XG4gIFN0YWtlS2V5UmVnaXN0cmF0aW9uLFxuICBTdGFrZUtleURlbGVnYXRpb24sXG4gIFN0YWtlS2V5RGVyZWdpc3RyYXRpb24sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydCB7XG4gIHR5cGU6IENlcnRUeXBlO1xuICBzdGFrZUNyZWRlbnRpYWxIYXNoOiBzdHJpbmc7XG4gIHBvb2xLZXlIYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhkcmF3YWwge1xuICBzdGFrZUFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cbi8qKlxuICogVGhlIHRyYW5zYWN0aW9uIGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgdG9Kc29uKCkgZnVuY3Rpb24gb2YgYSB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgaW5wdXRzOiBUcmFuc2FjdGlvbklucHV0W107XG4gIG91dHB1dHM6IFRyYW5zYWN0aW9uT3V0cHV0W107XG4gIHdpdG5lc3NlczogV2l0bmVzc1tdO1xuICBjZXJ0czogQ2VydFtdO1xuICB3aXRoZHJhd2FsczogV2l0aGRyYXdhbFtdO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF90cmFuc2FjdGlvbjogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX2ZlZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgdHJhbnNhY3Rpb24oKTogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvbih0eDogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX2lkID0gQnVmZmVyLmZyb20oQ2FyZGFub1dhc20uaGFzaF90cmFuc2FjdGlvbih0eC5ib2R5KCkpLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl90cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLl90cmFuc2FjdGlvbi50b19ieXRlcygpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl90cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUgYXMgVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaW5wdXRzOiBbXSxcbiAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgd2l0bmVzc2VzOiBbXSxcbiAgICAgIGNlcnRzOiBbXSxcbiAgICAgIHdpdGhkcmF3YWxzOiBbXSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuaW5wdXRzKCkubGVuKCk7IGkrKykge1xuICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuaW5wdXRzKCkuZ2V0KGkpO1xuICAgICAgcmVzdWx0LmlucHV0cy5wdXNoKHtcbiAgICAgICAgdHJhbnNhY3Rpb25faWQ6IEJ1ZmZlci5mcm9tKGlucHV0LnRyYW5zYWN0aW9uX2lkKCkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB0cmFuc2FjdGlvbl9pbmRleDogaW5wdXQuaW5kZXgoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLm91dHB1dHMoKS5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkub3V0cHV0cygpLmdldChpKTtcbiAgICAgIHJlc3VsdC5vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcygpLnRvX2JlY2gzMigpLFxuICAgICAgICBhbW91bnQ6IG91dHB1dC5hbW91bnQoKS5jb2luKCkudG9fc3RyKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLmNlcnRzKCkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLmNlcnRzKCkhLmxlbigpOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2VydCA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5jZXJ0cygpIS5nZXQoaSk7XG4gICAgICAgIGlmIChjZXJ0LmFzX3N0YWtlX3JlZ2lzdHJhdGlvbigpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCBzdGFrZVJlZ2lzdHJhdGlvbiA9IGNlcnQuYXNfc3Rha2VfcmVnaXN0cmF0aW9uKCkgYXMgQ2FyZGFub1dhc20uU3Rha2VSZWdpc3RyYXRpb247XG4gICAgICAgICAgcmVzdWx0LmNlcnRzLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogQ2VydFR5cGUuU3Rha2VLZXlSZWdpc3RyYXRpb24sXG4gICAgICAgICAgICBzdGFrZUNyZWRlbnRpYWxIYXNoOiBCdWZmZXIuZnJvbShzdGFrZVJlZ2lzdHJhdGlvbi5zdGFrZV9jcmVkZW50aWFsKCkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjZXJ0LmFzX3N0YWtlX2RlcmVnaXN0cmF0aW9uKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IHN0YWtlRGVyZWdpc3RyYXRpb24gPSBjZXJ0LmFzX3N0YWtlX2RlcmVnaXN0cmF0aW9uKCkgYXMgQ2FyZGFub1dhc20uU3Rha2VEZXJlZ2lzdHJhdGlvbjtcbiAgICAgICAgICByZXN1bHQuY2VydHMucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiBDZXJ0VHlwZS5TdGFrZUtleURlcmVnaXN0cmF0aW9uLFxuICAgICAgICAgICAgc3Rha2VDcmVkZW50aWFsSGFzaDogQnVmZmVyLmZyb20oc3Rha2VEZXJlZ2lzdHJhdGlvbi5zdGFrZV9jcmVkZW50aWFsKCkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjZXJ0LmFzX3N0YWtlX2RlbGVnYXRpb24oKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgc3Rha2VEZWxlZ2F0aW9uID0gY2VydC5hc19zdGFrZV9kZWxlZ2F0aW9uKCkgYXMgQ2FyZGFub1dhc20uU3Rha2VEZWxlZ2F0aW9uO1xuICAgICAgICAgIHJlc3VsdC5jZXJ0cy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IENlcnRUeXBlLlN0YWtlS2V5RGVsZWdhdGlvbixcbiAgICAgICAgICAgIHN0YWtlQ3JlZGVudGlhbEhhc2g6IEJ1ZmZlci5mcm9tKHN0YWtlRGVsZWdhdGlvbi5zdGFrZV9jcmVkZW50aWFsKCkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgICAgcG9vbEtleUhhc2g6IEJ1ZmZlci5mcm9tKHN0YWtlRGVsZWdhdGlvbi5wb29sX2tleWhhc2goKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLndpdGhkcmF3YWxzKCkpIHtcbiAgICAgIGNvbnN0IHdpdGhkcmF3YWxzID0gdGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLndpdGhkcmF3YWxzKCkgYXMgQ2FyZGFub1dhc20uV2l0aGRyYXdhbHM7XG4gICAgICBjb25zdCBrZXlzID0gd2l0aGRyYXdhbHMua2V5cygpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbigpOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmV3YXJkQWRkcmVzcyA9IGtleXMuZ2V0KGkpO1xuICAgICAgICBjb25zdCByZXdhcmQgPSB3aXRoZHJhd2Fscy5nZXQocmV3YXJkQWRkcmVzcykgYXMgQ2FyZGFub1dhc20uQmlnTnVtO1xuICAgICAgICByZXN1bHQud2l0aGRyYXdhbHMucHVzaCh7XG4gICAgICAgICAgc3Rha2VBZGRyZXNzOiByZXdhcmRBZGRyZXNzLnRvX2FkZHJlc3MoKS50b19ieXRlcygpLnRvU3RyaW5nKCksXG4gICAgICAgICAgdmFsdWU6IHJld2FyZC50b19zdHIoKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLndpdG5lc3Nfc2V0KCkudmtleXMoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB2a2V5cyA9IHRoaXMuX3RyYW5zYWN0aW9uLndpdG5lc3Nfc2V0KCkudmtleXMoKSBhcyBDYXJkYW5vV2FzbS5Wa2V5d2l0bmVzc2VzO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2a2V5cy5sZW4oKTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZrZXkgPSAodGhpcy5fdHJhbnNhY3Rpb24ud2l0bmVzc19zZXQoKS52a2V5cygpIGFzIENhcmRhbm9XYXNtLlZrZXl3aXRuZXNzZXMpLmdldChpKTtcbiAgICAgICAgcmVzdWx0LndpdG5lc3Nlcy5wdXNoKHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHZrZXk/LnZrZXkoKS5wdWJsaWNfa2V5KCkudG9fYmVjaDMyKCksXG4gICAgICAgICAgc2lnbmF0dXJlOiB2a2V5Py5zaWduYXR1cmUoKS50b19oZXgoKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgaW5wdXQgYW5kIG91dHB1dCBmaWVsZCBmb3IgdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0cHV0czogRW50cnlbXSA9IFtdO1xuICAgIGNvbnN0IGlucHV0czogRW50cnlbXSA9IFtdO1xuXG4gICAgY29uc3QgdHhfb3V0cHV0cyA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5vdXRwdXRzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eF9vdXRwdXRzLmxlbigpOyBpKyspIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHR4X291dHB1dHMuZ2V0KGkpO1xuICAgICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MoKS50b19iZWNoMzIoKSxcbiAgICAgICAgdmFsdWU6IG91dHB1dC5hbW91bnQoKS5jb2luKCkudG9fc3RyKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgICB0aGlzLl9pbnB1dHMgPSBpbnB1dHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShDYXJkYW5vV2FzbS5oYXNoX3RyYW5zYWN0aW9uKHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKSkudG9fYnl0ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHJhd1R4XG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBhIHRlbXAgZml4IHVudGlsIHdlIHNvbHZlIGltcG9ydCBwcm9ibGVtIGluIHdlYnBhY2tcbiAgICAgIHRocm93IG5ldyBOb2RlRW52aXJvbm1lbnRFcnJvcigndW5hYmxlIHRvIGxvYWQgY2FyZGFubyBzZXJpYWxpemF0aW9uIGxpYnJhcnknKTtcbiAgICB9XG4gICAgY29uc3QgSEVYX1JFR0VYID0gL15bMC05YS1mQS1GXSskLztcbiAgICBjb25zdCBidWZmZXJSYXdUcmFuc2FjdGlvbiA9IEhFWF9SRUdFWC50ZXN0KHJhd1R4KSA/IEJ1ZmZlci5mcm9tKHJhd1R4LCAnaGV4JykgOiBCdWZmZXIuZnJvbShyYXdUeCwgJ2Jhc2U2NCcpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eG4gPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbi5mcm9tX2J5dGVzKGJ1ZmZlclJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHhuO1xuICAgICAgdGhpcy5faWQgPSBCdWZmZXIuZnJvbShDYXJkYW5vV2FzbS5oYXNoX3RyYW5zYWN0aW9uKHR4bi5ib2R5KCkpLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuY2VydHMoKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5jZXJ0cygpIS5sZW4oKTsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgY2VydCA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5jZXJ0cygpIS5nZXQoaSk7XG4gICAgICAgICAgaWYgKGNlcnQuYXNfc3Rha2VfcmVnaXN0cmF0aW9uKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjZXJ0LmFzX3N0YWtlX2RlcmVnaXN0cmF0aW9uKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkud2l0aGRyYXdhbHMoKSkge1xuICAgICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fZmVlID0gdHhuLmJvZHkoKS5mZWUoKS50b19zdHIoKTtcbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3VuYWJsZSB0byBidWlsZCB0cmFuc2FjdGlvbiBmcm9tIHJhdycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKToge1xuICAgIG91dHB1dHM6IHsgYW1vdW50OiBzdHJpbmc7IGFkZHJlc3M6IHN0cmluZyB9W107XG4gICAgY2VydGlmaWNhdGVzOiBDZXJ0W107XG4gICAgY2hhbmdlT3V0cHV0czogc3RyaW5nW107XG4gICAgb3V0cHV0QW1vdW50OiBzdHJpbmc7XG4gICAgZmVlOiB7IGZlZTogc3RyaW5nIH07XG4gICAgZGlzcGxheU9yZGVyOiBzdHJpbmdbXTtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNoYW5nZUFtb3VudDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICB3aXRoZHJhd2FsczogV2l0aGRyYXdhbFtdO1xuICB9IHtcbiAgICBjb25zdCB0eEpzb24gPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ3R5cGUnXTtcbiAgICBjb25zdCBhbW91bnQgPSB0eEpzb24ub3V0cHV0cy5tYXAoKG8pID0+ICh7IGFtb3VudDogQmlnSW50KG8uYW1vdW50KSB9KSk7XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gYW1vdW50LnJlZHVjZSgocCwgbikgPT4gcCArIEJpZ0ludChuLmFtb3VudCksIEJpZ0ludCgnMCcpKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHR5cGUgPVxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRcbiAgICAgICAgPyAnVHJhbnNmZXInXG4gICAgICAgIDogdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZVxuICAgICAgICA/ICdTdGFraW5nQWN0aXZhdGUnXG4gICAgICAgIDogdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhd1xuICAgICAgICA/ICdTdGFraW5nV2l0aGRyYXcnXG4gICAgICAgIDogJ1N0YWtpbmdEZWFjdGl2YXRlJztcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHR4SnNvbi5pZCxcbiAgICAgIG91dHB1dHM6IHR4SnNvbi5vdXRwdXRzLm1hcCgobykgPT4gKHsgYWRkcmVzczogby5hZGRyZXNzLCBhbW91bnQ6IG8uYW1vdW50IH0pKSxcbiAgICAgIG91dHB1dEFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuX2ZlZSB9LFxuICAgICAgdHlwZSxcbiAgICAgIGNlcnRpZmljYXRlczogdHhKc29uLmNlcnRzLFxuICAgICAgd2l0aGRyYXdhbHM6IHR4SnNvbi53aXRoZHJhd2FscyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBmZWVcbiAgICovXG4gIGdldCBnZXRGZWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0cmFuc2FjdGlvbiBmZWVcbiAgICpcbiAgICogQHBhcmFtIGZlZVxuICAgKi9cbiAgZmVlKGZlZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmVlID0gZmVlO1xuICB9XG59XG4iXX0=
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFPOEI7QUFDOUIsc0ZBQXdFO0FBQ3hFLHVDQUFvQztBQWlCcEMsSUFBSyxRQUtKO0FBTEQsV0FBSyxRQUFRO0lBQ1gsdUVBQW9CLENBQUE7SUFDcEIsbUVBQWtCLENBQUE7SUFDbEIsMkVBQXNCLENBQUE7SUFDdEIseUVBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUxJLFFBQVEsS0FBUixRQUFRLFFBS1o7QUErQ0QsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFLOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsRUFBMkI7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUk7WUFDRixJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE1BQU07WUFDTixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsWUFB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QUFLO1lBQzFCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLEdBQVc7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUF6VkQsa0NBeVZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBFbnRyeSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIE5vZGVFbnZpcm9ubWVudEVycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIENhcmRhbm9XYXNtIGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25JbnB1dCB7XG4gIHRyYW5zYWN0aW9uX2lkOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uX2luZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25PdXRwdXQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdG5lc3Mge1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG59XG5lbnVtIENlcnRUeXBlIHtcbiAgU3Rha2VLZXlSZWdpc3RyYXRpb24sXG4gIFN0YWtlS2V5RGVsZWdhdGlvbixcbiAgU3Rha2VLZXlEZXJlZ2lzdHJhdGlvbixcbiAgU3Rha2VQb29sUmVnaXN0cmF0aW9uLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlcnQge1xuICB0eXBlOiBDZXJ0VHlwZTtcbiAgc3Rha2VDcmVkZW50aWFsSGFzaD86IHN0cmluZztcbiAgcG9vbEtleUhhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aGRyYXdhbCB7XG4gIHN0YWtlQWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTdGFrZUtleVJlZ2lzdHJhdGlvbkNlcnQgPSBDZXJ0O1xuXG5leHBvcnQgdHlwZSBTdGFrZUtleURlbGVnYXRpb25DZXJ0ID0gQ2VydDtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFrZVBvb2xSZWdpc3RyYXRpb25DZXJ0IGV4dGVuZHMgQ2VydCB7XG4gIHZyZktleUhhc2g6IHN0cmluZztcbiAgcGxlZGdlOiBzdHJpbmc7XG4gIGNvc3Q6IHN0cmluZztcbiAgbWFyZ2luTnVtZXJhdG9yOiBzdHJpbmc7XG4gIG1hcmdpbkRlbm9taW5hdG9yOiBzdHJpbmc7XG4gIHJld2FyZEFjY291bnQ6IHN0cmluZztcbiAgcG9vbE93bmVyczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxlZGdlRGV0YWlscyB7XG4gIHN0YWtlS2V5UmVnaXN0cmF0aW9uPzogU3Rha2VLZXlSZWdpc3RyYXRpb25DZXJ0O1xuICBzdGFrZUtleURlbGVnYXRpb24/OiBTdGFrZUtleURlbGVnYXRpb25DZXJ0O1xuICBzdGFrZVBvb2xSZWdpc3RyYXRpb246IFN0YWtlUG9vbFJlZ2lzdHJhdGlvbkNlcnQ7XG59XG5cbi8qKlxuICogVGhlIHRyYW5zYWN0aW9uIGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgdG9Kc29uKCkgZnVuY3Rpb24gb2YgYSB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgaW5wdXRzOiBUcmFuc2FjdGlvbklucHV0W107XG4gIG91dHB1dHM6IFRyYW5zYWN0aW9uT3V0cHV0W107XG4gIHdpdG5lc3NlczogV2l0bmVzc1tdO1xuICBjZXJ0czogQ2VydFtdO1xuICB3aXRoZHJhd2FsczogV2l0aGRyYXdhbFtdO1xuICBwbGVkZ2VEZXRhaWxzPzogUGxlZGdlRGV0YWlscztcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uO1xuICBwcml2YXRlIF9mZWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfcGxlZGdlRGV0YWlscz86IFBsZWRnZURldGFpbHM7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbigpOiBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHRyYW5zYWN0aW9uKHR4OiBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy5faWQgPSBCdWZmZXIuZnJvbShDYXJkYW5vV2FzbS5oYXNoX3RyYW5zYWN0aW9uKHR4LmJvZHkoKSkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMuX3RyYW5zYWN0aW9uLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdHlwZTogdGhpcy5fdHlwZSBhcyBUcmFuc2FjdGlvblR5cGUsXG4gICAgICBpbnB1dHM6IFtdLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICB3aXRuZXNzZXM6IFtdLFxuICAgICAgY2VydHM6IFtdLFxuICAgICAgd2l0aGRyYXdhbHM6IFtdLFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5pbnB1dHMoKS5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5pbnB1dHMoKS5nZXQoaSk7XG4gICAgICByZXN1bHQuaW5wdXRzLnB1c2goe1xuICAgICAgICB0cmFuc2FjdGlvbl9pZDogQnVmZmVyLmZyb20oaW5wdXQudHJhbnNhY3Rpb25faWQoKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHRyYW5zYWN0aW9uX2luZGV4OiBpbnB1dC5pbmRleCgpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkub3V0cHV0cygpLmxlbigpOyBpKyspIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5vdXRwdXRzKCkuZ2V0KGkpO1xuICAgICAgcmVzdWx0Lm91dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzKCkudG9fYmVjaDMyKCksXG4gICAgICAgIGFtb3VudDogb3V0cHV0LmFtb3VudCgpLmNvaW4oKS50b19zdHIoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuY2VydHMoKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuY2VydHMoKSEubGVuKCk7IGkrKykge1xuICAgICAgICBjb25zdCBjZXJ0ID0gdGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLmNlcnRzKCkhLmdldChpKTtcbiAgICAgICAgaWYgKGNlcnQuYXNfc3Rha2VfcmVnaXN0cmF0aW9uKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IHN0YWtlUmVnaXN0cmF0aW9uID0gY2VydC5hc19zdGFrZV9yZWdpc3RyYXRpb24oKSBhcyBDYXJkYW5vV2FzbS5TdGFrZVJlZ2lzdHJhdGlvbjtcbiAgICAgICAgICByZXN1bHQuY2VydHMucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiBDZXJ0VHlwZS5TdGFrZUtleVJlZ2lzdHJhdGlvbixcbiAgICAgICAgICAgIHN0YWtlQ3JlZGVudGlhbEhhc2g6IEJ1ZmZlci5mcm9tKHN0YWtlUmVnaXN0cmF0aW9uLnN0YWtlX2NyZWRlbnRpYWwoKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNlcnQuYXNfc3Rha2VfZGVyZWdpc3RyYXRpb24oKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgc3Rha2VEZXJlZ2lzdHJhdGlvbiA9IGNlcnQuYXNfc3Rha2VfZGVyZWdpc3RyYXRpb24oKSBhcyBDYXJkYW5vV2FzbS5TdGFrZURlcmVnaXN0cmF0aW9uO1xuICAgICAgICAgIHJlc3VsdC5jZXJ0cy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6IENlcnRUeXBlLlN0YWtlS2V5RGVyZWdpc3RyYXRpb24sXG4gICAgICAgICAgICBzdGFrZUNyZWRlbnRpYWxIYXNoOiBCdWZmZXIuZnJvbShzdGFrZURlcmVnaXN0cmF0aW9uLnN0YWtlX2NyZWRlbnRpYWwoKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNlcnQuYXNfc3Rha2VfZGVsZWdhdGlvbigpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCBzdGFrZURlbGVnYXRpb24gPSBjZXJ0LmFzX3N0YWtlX2RlbGVnYXRpb24oKSBhcyBDYXJkYW5vV2FzbS5TdGFrZURlbGVnYXRpb247XG4gICAgICAgICAgcmVzdWx0LmNlcnRzLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogQ2VydFR5cGUuU3Rha2VLZXlEZWxlZ2F0aW9uLFxuICAgICAgICAgICAgc3Rha2VDcmVkZW50aWFsSGFzaDogQnVmZmVyLmZyb20oc3Rha2VEZWxlZ2F0aW9uLnN0YWtlX2NyZWRlbnRpYWwoKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgICBwb29sS2V5SGFzaDogQnVmZmVyLmZyb20oc3Rha2VEZWxlZ2F0aW9uLnBvb2xfa2V5aGFzaCgpLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2VydC5hc19wb29sX3JlZ2lzdHJhdGlvbigpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCBzdGFrZVBvb2xSZWdpc3RyYXRpb24gPSBjZXJ0LmFzX3Bvb2xfcmVnaXN0cmF0aW9uKCkgYXMgQ2FyZGFub1dhc20uUG9vbFJlZ2lzdHJhdGlvbjtcbiAgICAgICAgICByZXN1bHQuY2VydHMucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiBDZXJ0VHlwZS5TdGFrZVBvb2xSZWdpc3RyYXRpb24sXG4gICAgICAgICAgICBwb29sS2V5SGFzaDogQnVmZmVyLmZyb20oc3Rha2VQb29sUmVnaXN0cmF0aW9uLnBvb2xfcGFyYW1zKCkub3BlcmF0b3IoKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXN1bHQucGxlZGdlRGV0YWlscyA9IHRoaXMuX3BsZWRnZURldGFpbHM7XG5cbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLndpdGhkcmF3YWxzKCkpIHtcbiAgICAgIGNvbnN0IHdpdGhkcmF3YWxzID0gdGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLndpdGhkcmF3YWxzKCkgYXMgQ2FyZGFub1dhc20uV2l0aGRyYXdhbHM7XG4gICAgICBjb25zdCBrZXlzID0gd2l0aGRyYXdhbHMua2V5cygpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbigpOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmV3YXJkQWRkcmVzcyA9IGtleXMuZ2V0KGkpO1xuICAgICAgICBjb25zdCByZXdhcmQgPSB3aXRoZHJhd2Fscy5nZXQocmV3YXJkQWRkcmVzcykgYXMgQ2FyZGFub1dhc20uQmlnTnVtO1xuICAgICAgICByZXN1bHQud2l0aGRyYXdhbHMucHVzaCh7XG4gICAgICAgICAgc3Rha2VBZGRyZXNzOiByZXdhcmRBZGRyZXNzLnRvX2FkZHJlc3MoKS50b19ieXRlcygpLnRvU3RyaW5nKCksXG4gICAgICAgICAgdmFsdWU6IHJld2FyZC50b19zdHIoKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLndpdG5lc3Nfc2V0KCkudmtleXMoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB2a2V5cyA9IHRoaXMuX3RyYW5zYWN0aW9uLndpdG5lc3Nfc2V0KCkudmtleXMoKSBhcyBDYXJkYW5vV2FzbS5Wa2V5d2l0bmVzc2VzO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2a2V5cy5sZW4oKTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZrZXkgPSAodGhpcy5fdHJhbnNhY3Rpb24ud2l0bmVzc19zZXQoKS52a2V5cygpIGFzIENhcmRhbm9XYXNtLlZrZXl3aXRuZXNzZXMpLmdldChpKTtcbiAgICAgICAgcmVzdWx0LndpdG5lc3Nlcy5wdXNoKHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHZrZXk/LnZrZXkoKS5wdWJsaWNfa2V5KCkudG9faGV4KCksXG4gICAgICAgICAgc2lnbmF0dXJlOiB2a2V5Py5zaWduYXR1cmUoKS50b19oZXgoKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgaW5wdXQgYW5kIG91dHB1dCBmaWVsZCBmb3IgdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0cHV0czogRW50cnlbXSA9IFtdO1xuICAgIGNvbnN0IGlucHV0czogRW50cnlbXSA9IFtdO1xuXG4gICAgY29uc3QgdHhfb3V0cHV0cyA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5vdXRwdXRzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eF9vdXRwdXRzLmxlbigpOyBpKyspIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHR4X291dHB1dHMuZ2V0KGkpO1xuICAgICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MoKS50b19iZWNoMzIoKSxcbiAgICAgICAgdmFsdWU6IG91dHB1dC5hbW91bnQoKS5jb2luKCkudG9fc3RyKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgICB0aGlzLl9pbnB1dHMgPSBpbnB1dHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShDYXJkYW5vV2FzbS5oYXNoX3RyYW5zYWN0aW9uKHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKSkudG9fYnl0ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHJhd1R4XG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBhIHRlbXAgZml4IHVudGlsIHdlIHNvbHZlIGltcG9ydCBwcm9ibGVtIGluIHdlYnBhY2tcbiAgICAgIHRocm93IG5ldyBOb2RlRW52aXJvbm1lbnRFcnJvcigndW5hYmxlIHRvIGxvYWQgY2FyZGFubyBzZXJpYWxpemF0aW9uIGxpYnJhcnknKTtcbiAgICB9XG4gICAgY29uc3QgSEVYX1JFR0VYID0gL15bMC05YS1mQS1GXSskLztcbiAgICBjb25zdCBidWZmZXJSYXdUcmFuc2FjdGlvbiA9IEhFWF9SRUdFWC50ZXN0KHJhd1R4KSA/IEJ1ZmZlci5mcm9tKHJhd1R4LCAnaGV4JykgOiBCdWZmZXIuZnJvbShyYXdUeCwgJ2Jhc2U2NCcpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eG4gPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbi5mcm9tX2J5dGVzKGJ1ZmZlclJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHhuO1xuICAgICAgdGhpcy5faWQgPSBCdWZmZXIuZnJvbShDYXJkYW5vV2FzbS5oYXNoX3RyYW5zYWN0aW9uKHR4bi5ib2R5KCkpLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuY2VydHMoKSkge1xuICAgICAgICBjb25zdCBjZXJ0czogQ2FyZGFub1dhc20uQ2VydGlmaWNhdGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5jZXJ0cygpIS5sZW4oKTsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgY2VydCA9IHRoaXMuX3RyYW5zYWN0aW9uLmJvZHkoKS5jZXJ0cygpIS5nZXQoaSk7XG4gICAgICAgICAgY2VydHMucHVzaChjZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjZXJ0cy5zb21lKChjKSA9PiBjLmFzX3Bvb2xfcmVnaXN0cmF0aW9uKCkgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdQbGVkZ2U7XG4gICAgICAgICAgY29uc3Qgc3Rha2VLZXlSZWdpc3RyYXRpb24gPSBjZXJ0cy5maW5kKChjKSA9PiBjLmFzX3N0YWtlX3JlZ2lzdHJhdGlvbigpICE9PSB1bmRlZmluZWQpO1xuICAgICAgICAgIGNvbnN0IHN0YWtlS2V5RGVsZWdhdGlvbiA9IGNlcnRzLmZpbmQoKGMpID0+IGMuYXNfc3Rha2VfZGVsZWdhdGlvbigpICE9PSB1bmRlZmluZWQpO1xuICAgICAgICAgIGNvbnN0IHN0YWtlUG9vbFJlZ2lzdHJhdGlvbiA9IGNlcnRzLmZpbmQoKGMpID0+IGMuYXNfcG9vbF9yZWdpc3RyYXRpb24oKSAhPT0gdW5kZWZpbmVkKTtcblxuICAgICAgICAgIHRoaXMuX3BsZWRnZURldGFpbHMgPSB7XG4gICAgICAgICAgICBzdGFrZUtleVJlZ2lzdHJhdGlvbjogdGhpcy5sb2FkU3Rha2VLZXlSZWdpc3RyYXRpb24oc3Rha2VLZXlSZWdpc3RyYXRpb24pLFxuICAgICAgICAgICAgc3Rha2VLZXlEZWxlZ2F0aW9uOiB0aGlzLmxvYWRTdGFrZUtleURlbGVnYXRpb24oc3Rha2VLZXlEZWxlZ2F0aW9uKSxcbiAgICAgICAgICAgIHN0YWtlUG9vbFJlZ2lzdHJhdGlvbjogdGhpcy5sb2FkU3Rha2VQb29sUmVnaXN0cmF0aW9uKHN0YWtlUG9vbFJlZ2lzdHJhdGlvbiEpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2VydHMuc29tZSgoYykgPT4gYy5hc19zdGFrZV9yZWdpc3RyYXRpb24oKSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlO1xuICAgICAgICB9IGVsc2UgaWYgKGNlcnRzLnNvbWUoKGMpID0+IGMuYXNfc3Rha2VfZGVyZWdpc3RyYXRpb24oKSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkud2l0aGRyYXdhbHMoKSkge1xuICAgICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fZmVlID0gdHhuLmJvZHkoKS5mZWUoKS50b19zdHIoKTtcbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcblxuICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLndpdG5lc3Nfc2V0KCkudmtleXMoKSkge1xuICAgICAgICBjb25zdCB2a2V5cyA9IHRoaXMuX3RyYW5zYWN0aW9uLndpdG5lc3Nfc2V0KCkudmtleXMoKSEgYXMgQ2FyZGFub1dhc20uVmtleXdpdG5lc3NlcztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2a2V5cy5sZW4oKTsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgdmtleSA9IHZrZXlzLmdldChpKTtcbiAgICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2godmtleS5zaWduYXR1cmUoKS50b19oZXgoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3VuYWJsZSB0byBidWlsZCB0cmFuc2FjdGlvbiBmcm9tIHJhdycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFN0YWtlS2V5UmVnaXN0cmF0aW9uKFxuICAgIGNlcnRpZmljYXRlOiBDYXJkYW5vV2FzbS5DZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZFxuICApOiBTdGFrZUtleVJlZ2lzdHJhdGlvbkNlcnQgfCB1bmRlZmluZWQge1xuICAgIGlmIChjZXJ0aWZpY2F0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBzdGFrZVJlZ2lzdHJhdGlvbiA9IGNlcnRpZmljYXRlLmFzX3N0YWtlX3JlZ2lzdHJhdGlvbigpO1xuICAgIGlmIChzdGFrZVJlZ2lzdHJhdGlvbiAhPT0gdW5kZWZpbmVkICYmIHN0YWtlUmVnaXN0cmF0aW9uIS5zdGFrZV9jcmVkZW50aWFsKCkudG9fa2V5aGFzaCgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IENlcnRUeXBlLlN0YWtlS2V5UmVnaXN0cmF0aW9uLFxuICAgICAgICBzdGFrZUNyZWRlbnRpYWxIYXNoOiBzdGFrZVJlZ2lzdHJhdGlvbiEuc3Rha2VfY3JlZGVudGlhbCgpLnRvX2tleWhhc2goKSEudG9faGV4KCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFN0YWtlS2V5RGVsZWdhdGlvbihjZXJ0aWZpY2F0ZTogQ2FyZGFub1dhc20uQ2VydGlmaWNhdGUgfCB1bmRlZmluZWQpOiBTdGFrZUtleURlbGVnYXRpb25DZXJ0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoY2VydGlmaWNhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgc3Rha2VEZWxlZ2F0aW9uID0gY2VydGlmaWNhdGUuYXNfc3Rha2VfZGVsZWdhdGlvbigpO1xuICAgIGlmIChzdGFrZURlbGVnYXRpb24gIT09IHVuZGVmaW5lZCAmJiBzdGFrZURlbGVnYXRpb24hLnN0YWtlX2NyZWRlbnRpYWwoKS50b19rZXloYXNoKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogQ2VydFR5cGUuU3Rha2VLZXlEZWxlZ2F0aW9uLFxuICAgICAgICBzdGFrZUNyZWRlbnRpYWxIYXNoOiBzdGFrZURlbGVnYXRpb24hLnN0YWtlX2NyZWRlbnRpYWwoKS50b19rZXloYXNoKCkhLnRvX2hleCgpLFxuICAgICAgICBwb29sS2V5SGFzaDogc3Rha2VEZWxlZ2F0aW9uIS5wb29sX2tleWhhc2goKS50b19oZXgoKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU3Rha2VQb29sUmVnaXN0cmF0aW9uKGNlcnRpZmljYXRlOiBDYXJkYW5vV2FzbS5DZXJ0aWZpY2F0ZSk6IFN0YWtlUG9vbFJlZ2lzdHJhdGlvbkNlcnQge1xuICAgIGNvbnN0IHBvb2xSZWdpc3RyYXRpb24gPSBjZXJ0aWZpY2F0ZS5hc19wb29sX3JlZ2lzdHJhdGlvbigpO1xuICAgIGNvbnN0IHJld2FyZEFjY291bnQgPSBwb29sUmVnaXN0cmF0aW9uIS5wb29sX3BhcmFtcygpLnJld2FyZF9hY2NvdW50KCk7XG4gICAgY29uc3QgbmV0d29ya0lkID0gcmV3YXJkQWNjb3VudC50b19hZGRyZXNzKCkubmV0d29ya19pZCgpO1xuICAgIGNvbnN0IG93bmVyczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xSZWdpc3RyYXRpb24hLnBvb2xfcGFyYW1zKCkucG9vbF9vd25lcnMoKS5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBwb29sT3duZXIgPSBwb29sUmVnaXN0cmF0aW9uIS5wb29sX3BhcmFtcygpLnBvb2xfb3duZXJzKCkuZ2V0KGkpO1xuICAgICAgY29uc3Qgb3duZXJTdGFrZUtleSA9IENhcmRhbm9XYXNtLlN0YWtlQ3JlZGVudGlhbC5mcm9tX2tleWhhc2gocG9vbE93bmVyKTtcbiAgICAgIG93bmVycy5wdXNoKENhcmRhbm9XYXNtLlJld2FyZEFkZHJlc3MubmV3KG5ldHdvcmtJZCwgb3duZXJTdGFrZUtleSkudG9fYWRkcmVzcygpLnRvX2JlY2gzMigpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IENlcnRUeXBlLlN0YWtlUG9vbFJlZ2lzdHJhdGlvbixcbiAgICAgIHBvb2xLZXlIYXNoOiBwb29sUmVnaXN0cmF0aW9uIS5wb29sX3BhcmFtcygpLm9wZXJhdG9yKCkudG9faGV4KCksXG4gICAgICB2cmZLZXlIYXNoOiBwb29sUmVnaXN0cmF0aW9uIS5wb29sX3BhcmFtcygpLnZyZl9rZXloYXNoKCkudG9faGV4KCksXG4gICAgICBwbGVkZ2U6IHBvb2xSZWdpc3RyYXRpb24hLnBvb2xfcGFyYW1zKCkucGxlZGdlKCkudG9fc3RyKCksXG4gICAgICBjb3N0OiBwb29sUmVnaXN0cmF0aW9uIS5wb29sX3BhcmFtcygpLmNvc3QoKS50b19zdHIoKSxcbiAgICAgIG1hcmdpbk51bWVyYXRvcjogcG9vbFJlZ2lzdHJhdGlvbiEucG9vbF9wYXJhbXMoKS5tYXJnaW4oKS5udW1lcmF0b3IoKS50b19zdHIoKSxcbiAgICAgIG1hcmdpbkRlbm9taW5hdG9yOiBwb29sUmVnaXN0cmF0aW9uIS5wb29sX3BhcmFtcygpLm1hcmdpbigpLmRlbm9taW5hdG9yKCkudG9fc3RyKCksXG4gICAgICByZXdhcmRBY2NvdW50OiByZXdhcmRBY2NvdW50LnRvX2FkZHJlc3MoKS50b19iZWNoMzIoKSxcbiAgICAgIHBvb2xPd25lcnM6IG93bmVycyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiB7XG4gICAgb3V0cHV0czogeyBhbW91bnQ6IHN0cmluZzsgYWRkcmVzczogc3RyaW5nIH1bXTtcbiAgICBjZXJ0aWZpY2F0ZXM6IENlcnRbXTtcbiAgICBjaGFuZ2VPdXRwdXRzOiBzdHJpbmdbXTtcbiAgICBvdXRwdXRBbW91bnQ6IHN0cmluZztcbiAgICBmZWU6IHsgZmVlOiBzdHJpbmcgfTtcbiAgICBkaXNwbGF5T3JkZXI6IHN0cmluZ1tdO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY2hhbmdlQW1vdW50OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHdpdGhkcmF3YWxzOiBXaXRoZHJhd2FsW107XG4gICAgcGxlZGdlRGV0YWlscz86IFBsZWRnZURldGFpbHM7XG4gIH0ge1xuICAgIGNvbnN0IHR4SnNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IGFtb3VudCA9IHR4SnNvbi5vdXRwdXRzLm1hcCgobykgPT4gKHsgYW1vdW50OiBCaWdJbnQoby5hbW91bnQpIH0pKTtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSBhbW91bnQucmVkdWNlKChwLCBuKSA9PiBwICsgQmlnSW50KG4uYW1vdW50KSwgQmlnSW50KCcwJykpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdHlwZSA9XG4gICAgICB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZFxuICAgICAgICA/ICdUcmFuc2ZlcidcbiAgICAgICAgOiB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlXG4gICAgICAgID8gJ1N0YWtpbmdBY3RpdmF0ZSdcbiAgICAgICAgOiB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3XG4gICAgICAgID8gJ1N0YWtpbmdXaXRoZHJhdydcbiAgICAgICAgOiB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGVcbiAgICAgICAgPyAnU3Rha2luZ0RlYWN0aXZhdGUnXG4gICAgICAgIDogdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdQbGVkZ2VcbiAgICAgICAgPyAnU3Rha2luZ1BsZWRnZSdcbiAgICAgICAgOiAndW5kZWZpbmVkJztcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHR4SnNvbi5pZCxcbiAgICAgIG91dHB1dHM6IHR4SnNvbi5vdXRwdXRzLm1hcCgobykgPT4gKHsgYWRkcmVzczogby5hZGRyZXNzLCBhbW91bnQ6IG8uYW1vdW50IH0pKSxcbiAgICAgIG91dHB1dEFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuX2ZlZSB9LFxuICAgICAgdHlwZSxcbiAgICAgIGNlcnRpZmljYXRlczogdHhKc29uLmNlcnRzLFxuICAgICAgd2l0aGRyYXdhbHM6IHR4SnNvbi53aXRoZHJhd2FscyxcbiAgICAgIHBsZWRnZURldGFpbHM6IHRoaXMuX3BsZWRnZURldGFpbHMsXG4gICAgfTtcbiAgfVxuXG4gIGdldFBsZWRnZURldGFpbHMoKTogUGxlZGdlRGV0YWlscyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3BsZWRnZURldGFpbHM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIGZlZVxuICAgKi9cbiAgZ2V0IGdldEZlZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mZWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRyYW5zYWN0aW9uIGZlZVxuICAgKlxuICAgKiBAcGFyYW0gZmVlXG4gICAqL1xuICBmZWUoZmVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9mZWUgPSBmZWU7XG4gIH1cbn1cbiJdfQ==
@@ -10,6 +10,7 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
10
10
  protected _signers: KeyPair[];
11
11
  protected _transactionInputs: TransactionInput[];
12
12
  protected _transactionOutputs: TransactionOutput[];
13
+ protected _initSignatures: Signature[];
13
14
  protected _signatures: Signature[];
14
15
  protected _changeAddress: string;
15
16
  protected _senderBalance: string;
@@ -52,5 +53,6 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
52
53
  validateValue(value: BigNumber): void;
53
54
  /** @inheritDoc */
54
55
  addSignature(publicKey: BasePublicKey, signature: Buffer): void;
56
+ private getAllSignatures;
55
57
  }
56
58
  //# sourceMappingURL=transactionBuilder.d.ts.map