@bitgo-beta/sdk-coin-ada 2.3.14-beta.185 → 2.3.14-beta.1850

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 (113) hide show
  1. package/dist/src/ada.d.ts +15 -13
  2. package/dist/src/ada.d.ts.map +1 -1
  3. package/dist/src/ada.js +124 -42
  4. package/dist/src/adaToken.d.ts +16 -11
  5. package/dist/src/adaToken.d.ts.map +1 -1
  6. package/dist/src/adaToken.js +109 -3
  7. package/dist/src/index.js +6 -2
  8. package/dist/src/lib/index.d.ts +3 -1
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +29 -9
  11. package/dist/src/lib/keyPair.js +29 -16
  12. package/dist/src/lib/messages/cip8/cip8Message.d.ts +25 -0
  13. package/dist/src/lib/messages/cip8/cip8Message.d.ts.map +1 -0
  14. package/dist/src/lib/messages/cip8/cip8Message.js +140 -0
  15. package/dist/src/lib/messages/cip8/cip8MessageBuilder.d.ts +19 -0
  16. package/dist/src/lib/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
  17. package/dist/src/lib/messages/cip8/cip8MessageBuilder.js +27 -0
  18. package/dist/src/lib/messages/cip8/index.d.ts +4 -0
  19. package/dist/src/lib/messages/cip8/index.d.ts.map +1 -0
  20. package/dist/src/lib/messages/cip8/index.js +20 -0
  21. package/dist/src/lib/messages/cip8/utils.d.ts +24 -0
  22. package/dist/src/lib/messages/cip8/utils.d.ts.map +1 -0
  23. package/dist/src/lib/messages/cip8/utils.js +73 -0
  24. package/dist/src/lib/messages/index.d.ts +3 -0
  25. package/dist/src/lib/messages/index.d.ts.map +1 -0
  26. package/dist/src/lib/messages/index.js +19 -0
  27. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  28. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  29. package/dist/src/lib/messages/messageBuilderFactory.js +20 -0
  30. package/dist/src/lib/stakingActivateBuilder.d.ts +1 -1
  31. package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -1
  32. package/dist/src/lib/stakingActivateBuilder.js +30 -10
  33. package/dist/src/lib/stakingDeactivateBuilder.js +24 -10
  34. package/dist/src/lib/transaction.d.ts +24 -7
  35. package/dist/src/lib/transaction.d.ts.map +1 -1
  36. package/dist/src/lib/transaction.js +81 -17
  37. package/dist/src/lib/transactionBuilder.d.ts +114 -3
  38. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  39. package/dist/src/lib/transactionBuilder.js +464 -20
  40. package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
  41. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  42. package/dist/src/lib/transactionBuilderFactory.js +7 -1
  43. package/dist/src/lib/utils.d.ts +22 -0
  44. package/dist/src/lib/utils.d.ts.map +1 -1
  45. package/dist/src/lib/utils.js +152 -17
  46. package/dist/src/lib/voteDelegationBuilder.d.ts +24 -0
  47. package/dist/src/lib/voteDelegationBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/voteDelegationBuilder.js +84 -0
  49. package/dist/test/resources/cip8Resources.d.ts +25 -0
  50. package/dist/test/resources/cip8Resources.d.ts.map +1 -0
  51. package/dist/test/resources/cip8Resources.js +76 -0
  52. package/dist/test/resources/index.d.ts +458 -0
  53. package/dist/test/resources/index.d.ts.map +1 -0
  54. package/dist/test/resources/index.js +659 -0
  55. package/dist/test/unit/StakingActivateBuilder.d.ts +2 -0
  56. package/dist/test/unit/StakingActivateBuilder.d.ts.map +1 -0
  57. package/dist/test/unit/StakingActivateBuilder.js +213 -0
  58. package/dist/test/unit/StakingDeactivateBuilder.d.ts +2 -0
  59. package/dist/test/unit/StakingDeactivateBuilder.d.ts.map +1 -0
  60. package/dist/test/unit/StakingDeactivateBuilder.js +158 -0
  61. package/dist/test/unit/ada.d.ts +5 -0
  62. package/dist/test/unit/ada.d.ts.map +1 -0
  63. package/dist/test/unit/ada.js +1430 -0
  64. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  65. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  66. package/dist/test/unit/getBuilderFactory.js +10 -0
  67. package/dist/test/unit/index.d.ts +2 -0
  68. package/dist/test/unit/index.d.ts.map +1 -0
  69. package/dist/test/unit/index.js +32 -0
  70. package/dist/test/unit/keyPair.d.ts +2 -0
  71. package/dist/test/unit/keyPair.d.ts.map +1 -0
  72. package/dist/test/unit/keyPair.js +88 -0
  73. package/dist/test/unit/messages/cip8/cip8Message.d.ts +2 -0
  74. package/dist/test/unit/messages/cip8/cip8Message.d.ts.map +1 -0
  75. package/dist/test/unit/messages/cip8/cip8Message.js +131 -0
  76. package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts +2 -0
  77. package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
  78. package/dist/test/unit/messages/cip8/cip8MessageBuilder.js +132 -0
  79. package/dist/test/unit/messages/cip8/utils.d.ts +2 -0
  80. package/dist/test/unit/messages/cip8/utils.d.ts.map +1 -0
  81. package/dist/test/unit/messages/cip8/utils.js +127 -0
  82. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  83. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  84. package/dist/test/unit/messages/messageBuilderFactory.js +35 -0
  85. package/dist/test/unit/stakingClaimRewardsBuilder.d.ts +2 -0
  86. package/dist/test/unit/stakingClaimRewardsBuilder.d.ts.map +1 -0
  87. package/dist/test/unit/stakingClaimRewardsBuilder.js +70 -0
  88. package/dist/test/unit/stakingPledgeBuilder.d.ts +2 -0
  89. package/dist/test/unit/stakingPledgeBuilder.d.ts.map +1 -0
  90. package/dist/test/unit/stakingPledgeBuilder.js +141 -0
  91. package/dist/test/unit/stakingWithdrawBuilder.d.ts +2 -0
  92. package/dist/test/unit/stakingWithdrawBuilder.d.ts.map +1 -0
  93. package/dist/test/unit/stakingWithdrawBuilder.js +167 -0
  94. package/dist/test/unit/tokenWithdrawal.d.ts +2 -0
  95. package/dist/test/unit/tokenWithdrawal.d.ts.map +1 -0
  96. package/dist/test/unit/tokenWithdrawal.js +959 -0
  97. package/dist/test/unit/transaction.d.ts +2 -0
  98. package/dist/test/unit/transaction.d.ts.map +1 -0
  99. package/dist/test/unit/transaction.js +100 -0
  100. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  101. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  102. package/dist/test/unit/transactionBuilder.js +545 -0
  103. package/dist/test/unit/utils.d.ts +2 -0
  104. package/dist/test/unit/utils.d.ts.map +1 -0
  105. package/dist/test/unit/utils.js +138 -0
  106. package/dist/test/unit/voteDelegationBuilder.d.ts +2 -0
  107. package/dist/test/unit/voteDelegationBuilder.d.ts.map +1 -0
  108. package/dist/test/unit/voteDelegationBuilder.js +96 -0
  109. package/dist/tsconfig.tsbuildinfo +1 -0
  110. package/package.json +18 -13
  111. package/.eslintignore +0 -5
  112. package/.mocharc.yml +0 -8
  113. package/CHANGELOG.md +0 -470
@@ -9,6 +9,7 @@ import { StakingDeactivateBuilder } from './stakingDeactivateBuilder';
9
9
  import { StakingWithdrawBuilder } from './stakingWithdrawBuilder';
10
10
  import { StakingPledgeBuilder } from './stakingPledgeBuilder';
11
11
  import { StakingClaimRewardsBuilder } from './stakingClaimRewardsBuilder';
12
+ import { VoteDelegationBuilder } from './voteDelegationBuilder';
12
13
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
13
14
  constructor(_coinConfig: Readonly<CoinConfig>);
14
15
  /** @inheritdoc */
@@ -18,6 +19,7 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
18
19
  /** @inheritdoc */
19
20
  getTransferBuilder(tx?: Transaction): TransferBuilder;
20
21
  getStakingActivateBuilder(tx?: Transaction): StakingActivateBuilder;
22
+ getVoteDelegationBuilder(tx?: Transaction): VoteDelegationBuilder;
21
23
  getStakingClaimRewardsBuilder(tx?: Transaction): StakingClaimRewardsBuilder;
22
24
  getStakingDeactivateBuilder(tx?: Transaction): StakingDeactivateBuilder;
23
25
  getStakingWithdrawBuilder(tx?: Transaction): StakingWithdrawBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,kBAAkB;IA8BlD,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE,6BAA6B,CAAC,EAAE,CAAC,EAAE,WAAW;IAI9C,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW;IAI5C,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW;IAI1C,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW;IAIxC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAMjC"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,kBAAkB;IAgClD,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE,wBAAwB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,qBAAqB;IAIjE,6BAA6B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,0BAA0B;IAI3E,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAI/D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAMjC"}
@@ -10,6 +10,7 @@ const stakingDeactivateBuilder_1 = require("./stakingDeactivateBuilder");
10
10
  const stakingWithdrawBuilder_1 = require("./stakingWithdrawBuilder");
11
11
  const stakingPledgeBuilder_1 = require("./stakingPledgeBuilder");
12
12
  const stakingClaimRewardsBuilder_1 = require("./stakingClaimRewardsBuilder");
13
+ const voteDelegationBuilder_1 = require("./voteDelegationBuilder");
13
14
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
14
15
  constructor(_coinConfig) {
15
16
  super(_coinConfig);
@@ -37,6 +38,8 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
37
38
  return this.getWalletInitializationBuilder(tx);
38
39
  case sdk_core_1.TransactionType.StakingPledge:
39
40
  return this.getStakingPledgeBuilder(tx);
41
+ case sdk_core_1.TransactionType.VoteDelegation:
42
+ return this.getVoteDelegationBuilder(tx);
40
43
  default:
41
44
  throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
42
45
  }
@@ -56,6 +59,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
56
59
  getStakingActivateBuilder(tx) {
57
60
  return TransactionBuilderFactory.initializeBuilder(tx, new stakingActivateBuilder_1.StakingActivateBuilder(this._coinConfig));
58
61
  }
62
+ getVoteDelegationBuilder(tx) {
63
+ return TransactionBuilderFactory.initializeBuilder(tx, new voteDelegationBuilder_1.VoteDelegationBuilder(this._coinConfig));
64
+ }
59
65
  getStakingClaimRewardsBuilder(tx) {
60
66
  return TransactionBuilderFactory.initializeBuilder(tx, new stakingClaimRewardsBuilder_1.StakingClaimRewardsBuilder(this._coinConfig));
61
67
  }
@@ -83,4 +89,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
83
89
  }
84
90
  }
85
91
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBK0c7QUFDL0csdURBQW9EO0FBQ3BELCtFQUE0RTtBQUU1RSwrQ0FBNEM7QUFDNUMscUVBQWtFO0FBQ2xFLHlFQUFzRTtBQUN0RSxxRUFBa0U7QUFDbEUsaUVBQThEO0FBQzlELDZFQUEwRTtBQUUxRSxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUF3QjtRQUMzQixJQUFJLEdBQUcsWUFBWSxVQUFVLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJO1lBQ0YsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFO2dCQUNmLEtBQUssMEJBQWUsQ0FBQyxJQUFJO29CQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLDBCQUFlLENBQUMsWUFBWTtvQkFDL0IsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELEtBQUssMEJBQWUsQ0FBQyxpQkFBaUI7b0JBQ3BDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QyxLQUFLLDBCQUFlLENBQUMsZUFBZTtvQkFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLEtBQUssMEJBQWUsQ0FBQyxvQkFBb0I7b0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRCxLQUFLLDBCQUFlLENBQUMsYUFBYTtvQkFDaEMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFDO29CQUNFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQ2hFO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QixDQUFDLEVBQWdCO1FBQzdDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUkseURBQTJCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFnQjtRQUNqQyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWdCO1FBQ3hDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksK0NBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELDZCQUE2QixDQUFDLEVBQWdCO1FBQzVDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELDJCQUEyQixDQUFDLEVBQWdCO1FBQzFDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksbURBQXdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWdCO1FBQ3hDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksK0NBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELHVCQUF1QixDQUFDLEVBQWdCO1FBQ3RDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBK0IsRUFBMkIsRUFBRSxPQUFVO1FBQ3BHLElBQUksRUFBRSxFQUFFO1lBQ04sT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQS9FRCw4REErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFraW5nQWN0aXZhdGVCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nQWN0aXZhdGVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdXaXRoZHJhd0J1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2luZ1BsZWRnZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdQbGVkZ2VCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdDbGFpbVJld2FyZHNCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nQ2xhaW1SZXdhcmRzQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGlmIChyYXcgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tKEJ1ZmZlci5mcm9tKHJhdykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQ2xhaW1SZXdhcmRzQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nV2l0aGRyYXdCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb246XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1BsZWRnZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nUGxlZGdlQnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nQ2xhaW1SZXdhcmRzQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nQ2xhaW1SZXdhcmRzQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIodHg/OiBUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ1dpdGhkcmF3QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nUGxlZGdlQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nUGxlZGdlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4odHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBK0c7QUFDL0csdURBQW9EO0FBQ3BELCtFQUE0RTtBQUU1RSwrQ0FBNEM7QUFDNUMscUVBQWtFO0FBQ2xFLHlFQUFzRTtBQUN0RSxxRUFBa0U7QUFDbEUsaUVBQThEO0FBQzlELDZFQUEwRTtBQUMxRSxtRUFBZ0U7QUFFaEUsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBd0I7UUFDM0IsSUFBSSxHQUFHLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO29CQUNsQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUMsS0FBSywwQkFBZSxDQUFDLFlBQVk7b0JBQy9CLE9BQU8sSUFB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bXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFraW5nQWN0aXZhdGVCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nQWN0aXZhdGVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdXaXRoZHJhd0J1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2luZ1BsZWRnZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdQbGVkZ2VCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdDbGFpbVJld2FyZHNCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nQ2xhaW1SZXdhcmRzQnVpbGRlcic7XG5pbXBvcnQgeyBWb3RlRGVsZWdhdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3ZvdGVEZWxlZ2F0aW9uQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGlmIChyYXcgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tKEJ1ZmZlci5mcm9tKHJhdykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQ2xhaW1SZXdhcmRzQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nV2l0aGRyYXdCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb246XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1BsZWRnZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nUGxlZGdlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlZvdGVEZWxlZ2F0aW9uOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFZvdGVEZWxlZ2F0aW9uQnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRWb3RlRGVsZWdhdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFZvdGVEZWxlZ2F0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBWb3RlRGVsZWdhdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ0NsYWltUmV3YXJkc0J1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdDbGFpbVJld2FyZHNCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdDbGFpbVJld2FyZHNCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nV2l0aGRyYXdCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBTdGFraW5nV2l0aGRyYXdCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ1BsZWRnZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdQbGVkZ2VCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdQbGVkZ2VCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxufVxuIl19
@@ -1,10 +1,16 @@
1
1
  import { AddressFormat, BaseUtils } from '@bitgo-beta/sdk-core';
2
+ import { DRep, Address } from '@emurgo/cardano-serialization-lib-nodejs';
2
3
  import { KeyPair } from './keyPair';
3
4
  export declare const MIN_ADA_FOR_ONE_ASSET = "1500000";
5
+ export declare const VOTE_ALWAYS_ABSTAIN = "always-abstain";
6
+ export declare const VOTE_ALWAYS_NO_CONFIDENCE = "always-no-confidence";
4
7
  export declare class Utils implements BaseUtils {
5
8
  createBaseAddressWithStakeAndPaymentKey(stakeKeyPair: KeyPair, paymentKeyPair: KeyPair, network: AddressFormat): string;
6
9
  validateBlake2b(hash: string): boolean;
7
10
  getRewardAddress(stakingPubKey: string, coinName: string): string;
11
+ isValidDRepId(dRepId: string): boolean;
12
+ getDRepFromDRepId(dRepId: string): DRep;
13
+ getDRepIdFromDRep(dRep: DRep): string;
8
14
  /** @inheritdoc */
9
15
  isValidAddress(address: string): boolean;
10
16
  /** @inheritdoc */
@@ -24,6 +30,22 @@ export declare class Utils implements BaseUtils {
24
30
  * @returns {string} transaction body in hex format
25
31
  */
26
32
  getTransactionBody(serializedTx: string): string;
33
+ /**
34
+ * Decode wallet address from string.
35
+ * Attempts to decode as Shelley (bech32) first, then Byron (base58).
36
+ * @param {string} address - Valid Byron or Shelley-era address.
37
+ * @returns {Address} - Valid address object.
38
+ * @throws {InvalidAddressError} If the address is neither valid Shelley nor Byron.
39
+ */
40
+ getWalletAddress(address: string): Address;
41
+ /**
42
+ * Decode address string from Address object.
43
+ * Attempts to decode as Shelley (bech32) first, then Byron (base58).
44
+ * @param {Address} address - Valid Address object
45
+ * @returns {string} - Valid Byron or Shelley-era address string.
46
+ * @throws {InvalidAddressError} If the Address object is neither valid Shelley nor Byron.
47
+ */
48
+ getAddressString(address: Address): string;
27
49
  }
28
50
  declare const utils: Utils;
29
51
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUhE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,qBAAa,KAAM,YAAW,SAAS;IACrC,uCAAuC,CACrC,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,aAAa,GACrB,MAAM;IAiCT,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUtC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiBjE,kBAAkB;IAElB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IA6BxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASzC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAS5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAOjD;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAQL,IAAI,EAIJ,OAAO,EAIR,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,qBAAa,KAAM,YAAW,SAAS;IACrC,uCAAuC,CACrC,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,aAAa,GACrB,MAAM;IAiCT,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUtC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAcjE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAStC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAuCvC,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAWrC,kBAAkB;IAElB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAiDxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASzC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAS5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAQhD;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IA0B1C;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;CAuB3C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Utils = exports.MIN_ADA_FOR_ONE_ASSET = void 0;
6
+ exports.Utils = exports.VOTE_ALWAYS_NO_CONFIDENCE = exports.VOTE_ALWAYS_ABSTAIN = exports.MIN_ADA_FOR_ONE_ASSET = void 0;
4
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
8
  const cardano_serialization_lib_nodejs_1 = require("@emurgo/cardano-serialization-lib-nodejs");
6
9
  const keyPair_1 = require("./keyPair");
7
10
  const bech32_1 = require("bech32");
11
+ const bs58_1 = __importDefault(require("bs58"));
12
+ const cbor_1 = __importDefault(require("cbor"));
8
13
  exports.MIN_ADA_FOR_ONE_ASSET = '1500000';
14
+ exports.VOTE_ALWAYS_ABSTAIN = 'always-abstain';
15
+ exports.VOTE_ALWAYS_NO_CONFIDENCE = 'always-no-confidence';
9
16
  class Utils {
10
17
  createBaseAddressWithStakeAndPaymentKey(stakeKeyPair, paymentKeyPair, network) {
11
18
  let baseAddr;
@@ -16,7 +23,7 @@ class Utils {
16
23
  // 2. create payment pubKey
17
24
  const paymentPub = cardano_serialization_lib_nodejs_1.PublicKey.from_bytes(Buffer.from(paymentKeyPair.getKeys().pub, 'hex'));
18
25
  // 3. create full base address for staking
19
- baseAddr = cardano_serialization_lib_nodejs_1.BaseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.mainnet().network_id(), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(paymentPub.hash()), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(stakePub.hash()));
26
+ baseAddr = cardano_serialization_lib_nodejs_1.BaseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.mainnet().network_id(), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(paymentPub.hash()), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(stakePub.hash()));
20
27
  return baseAddr.to_address().to_bech32();
21
28
  }
22
29
  else if (network === sdk_core_1.AddressFormat.testnet) {
@@ -25,7 +32,7 @@ class Utils {
25
32
  // 2. create payment pubKey
26
33
  const paymentPub = cardano_serialization_lib_nodejs_1.PublicKey.from_bytes(Buffer.from(paymentKeyPair.getKeys().pub, 'hex'));
27
34
  // 3. create full base address for staking
28
- const baseAddr = cardano_serialization_lib_nodejs_1.BaseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.testnet().network_id(), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(paymentPub.hash()), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(stakePub.hash()));
35
+ const baseAddr = cardano_serialization_lib_nodejs_1.BaseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.testnet_preprod().network_id(), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(paymentPub.hash()), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(stakePub.hash()));
29
36
  return baseAddr.to_address().to_bech32();
30
37
  }
31
38
  else {
@@ -45,13 +52,68 @@ class Utils {
45
52
  const stakePub = cardano_serialization_lib_nodejs_1.PublicKey.from_bytes(Buffer.from(stakingPubKey, 'hex'));
46
53
  let rewardAddress;
47
54
  if (coinName === 'ada') {
48
- rewardAddress = cardano_serialization_lib_nodejs_1.RewardAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.mainnet().network_id(), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(stakePub.hash()));
55
+ rewardAddress = cardano_serialization_lib_nodejs_1.RewardAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.mainnet().network_id(), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(stakePub.hash()));
49
56
  }
50
57
  else {
51
- rewardAddress = cardano_serialization_lib_nodejs_1.RewardAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.testnet().network_id(), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(stakePub.hash()));
58
+ rewardAddress = cardano_serialization_lib_nodejs_1.RewardAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.testnet_preprod().network_id(), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(stakePub.hash()));
52
59
  }
53
60
  return rewardAddress.to_address().to_bech32();
54
61
  }
62
+ isValidDRepId(dRepId) {
63
+ try {
64
+ this.getDRepFromDRepId(dRepId);
65
+ return true;
66
+ }
67
+ catch (err) {
68
+ return false;
69
+ }
70
+ }
71
+ getDRepFromDRepId(dRepId) {
72
+ switch (dRepId) {
73
+ case 'always-abstain':
74
+ return cardano_serialization_lib_nodejs_1.DRep.new_always_abstain();
75
+ case 'always-no-confidence':
76
+ return cardano_serialization_lib_nodejs_1.DRep.new_always_no_confidence();
77
+ default:
78
+ try {
79
+ // for parsing CIP-105 standard DRep ID
80
+ return cardano_serialization_lib_nodejs_1.DRep.from_bech32(dRepId);
81
+ }
82
+ catch (err) {
83
+ // for parsing CIP-129 standard DRep ID
84
+ // https://cips.cardano.org/cip/CIP-0129
85
+ const decodedBech32 = bech32_1.bech32.decode(dRepId);
86
+ const decodedBytes = Buffer.from(bech32_1.bech32.fromWords(decodedBech32.words));
87
+ const header = decodedBytes[0];
88
+ const keyBytes = decodedBytes.subarray(1);
89
+ const keyType = (header & 0xf0) >> 4;
90
+ const credentialType = header & 0x0f;
91
+ if (keyType !== 0x02) {
92
+ throw new Error('Invalid key type for DRep');
93
+ }
94
+ switch (credentialType) {
95
+ case 0x02:
96
+ const ed25519KeyHash = cardano_serialization_lib_nodejs_1.Ed25519KeyHash.from_bytes(keyBytes);
97
+ return cardano_serialization_lib_nodejs_1.DRep.new_key_hash(ed25519KeyHash);
98
+ case 0x03:
99
+ const scriptHash = cardano_serialization_lib_nodejs_1.ScriptHash.from_bytes(keyBytes);
100
+ return cardano_serialization_lib_nodejs_1.DRep.new_script_hash(scriptHash);
101
+ default:
102
+ throw new Error('Invalid credential type for DRep');
103
+ }
104
+ }
105
+ }
106
+ }
107
+ getDRepIdFromDRep(dRep) {
108
+ switch (dRep.kind()) {
109
+ case cardano_serialization_lib_nodejs_1.DRepKind.AlwaysAbstain:
110
+ return exports.VOTE_ALWAYS_ABSTAIN;
111
+ case cardano_serialization_lib_nodejs_1.DRepKind.AlwaysNoConfidence:
112
+ return exports.VOTE_ALWAYS_NO_CONFIDENCE;
113
+ default:
114
+ return dRep.to_bech32();
115
+ }
116
+ }
55
117
  /** @inheritdoc */
56
118
  // this will validate both stake and payment addresses
57
119
  isValidAddress(address) {
@@ -60,26 +122,42 @@ class Utils {
60
122
  const REWARD_AND_ENTERPRISE_ADDR_LEN = 47;
61
123
  const POINTER_ADDR_LEN = 52;
62
124
  const VALIDATOR_ADDR_LEN = 56;
63
- // test if this is a bech32 address first
64
- if (new RegExp(bech32PrefixList.join('|')).test(address)) {
125
+ //Check for Shelley-era (Bech32) addresses
126
+ if (new RegExp(`^(${bech32PrefixList.join('|')})`).test(address)) {
65
127
  try {
66
128
  const decodedBech = bech32_1.bech32.decode(address, 108);
67
129
  const wordLength = decodedBech.words.length;
68
- if (!bech32PrefixList.includes(decodedBech.prefix)) {
69
- return false;
130
+ if (bech32PrefixList.includes(decodedBech.prefix) &&
131
+ (wordLength === BASE_ADDR_LEN ||
132
+ wordLength === REWARD_AND_ENTERPRISE_ADDR_LEN ||
133
+ wordLength === POINTER_ADDR_LEN)) {
134
+ return true;
70
135
  }
71
- return (wordLength === BASE_ADDR_LEN ||
72
- wordLength === REWARD_AND_ENTERPRISE_ADDR_LEN ||
73
- wordLength === POINTER_ADDR_LEN);
74
136
  }
75
- catch (err) {
137
+ catch (e) {
138
+ console.log(`Address: ${address} failed Bech32 test with error: ${e}`);
139
+ }
140
+ }
141
+ //Check for Validator addresses
142
+ if (new RegExp(`^(?!pool)[a-z0-9]{${VALIDATOR_ADDR_LEN}}$`).test(address)) {
143
+ return true;
144
+ }
145
+ //Check for Byron-era address
146
+ try {
147
+ // Reject Daedalus wallet addresses (Byron-era addresses starting with "DdzFF")
148
+ if (address.startsWith('DdzFF')) {
149
+ console.log(`Rejecting Daedalus wallet address: ${address}`);
76
150
  return false;
77
151
  }
152
+ const decoded = bs58_1.default.decode(address);
153
+ const cborData = cbor_1.default.decodeFirstSync(decoded);
154
+ return Array.isArray(cborData) && cborData.length >= 2;
78
155
  }
79
- else {
80
- // maybe this is a validator address
81
- return new RegExp(`^(?!pool)[a-z0-9]\{${VALIDATOR_ADDR_LEN}\}$`).test(address);
156
+ catch (e) {
157
+ console.log(`Address: ${address} failed Byron test with error: ${e}`);
158
+ console.log(e.stack);
82
159
  }
160
+ return false;
83
161
  }
84
162
  /** @inheritdoc */
85
163
  isValidBlockId(hash) {
@@ -135,8 +213,65 @@ class Utils {
135
213
  : Buffer.from(serializedTx, 'base64');
136
214
  return Buffer.from(cardano_serialization_lib_nodejs_1.Transaction.from_bytes(bufferRawTransaction).body().to_bytes()).toString('hex');
137
215
  }
216
+ /**
217
+ * Decode wallet address from string.
218
+ * Attempts to decode as Shelley (bech32) first, then Byron (base58).
219
+ * @param {string} address - Valid Byron or Shelley-era address.
220
+ * @returns {Address} - Valid address object.
221
+ * @throws {InvalidAddressError} If the address is neither valid Shelley nor Byron.
222
+ */
223
+ getWalletAddress(address) {
224
+ if (!address || typeof address !== 'string') {
225
+ throw new sdk_core_1.InvalidAddressError('Provided address is not a valid string');
226
+ }
227
+ // Try decoding as a Shelley (bech32) address first
228
+ try {
229
+ return cardano_serialization_lib_nodejs_1.Address.from_bech32(address);
230
+ }
231
+ catch (e) {
232
+ console.error(`Could not decode shelly address from string '${address}'`);
233
+ }
234
+ // Try decoding as a Byron (base58) address later
235
+ try {
236
+ // Reject Daedalus wallet addresses (Byron-era addresses starting with "DdzFF")
237
+ if (address.startsWith('DdzFF')) {
238
+ throw new sdk_core_1.InvalidAddressError('Provided string is a Daedalus address');
239
+ }
240
+ return cardano_serialization_lib_nodejs_1.ByronAddress.from_base58(address).to_address();
241
+ }
242
+ catch (e) {
243
+ console.error(`Could not decode byron address from string '${address}'`);
244
+ }
245
+ throw new sdk_core_1.InvalidAddressError('Provided string is not a valid Shelley or Byron address');
246
+ }
247
+ /**
248
+ * Decode address string from Address object.
249
+ * Attempts to decode as Shelley (bech32) first, then Byron (base58).
250
+ * @param {Address} address - Valid Address object
251
+ * @returns {string} - Valid Byron or Shelley-era address string.
252
+ * @throws {InvalidAddressError} If the Address object is neither valid Shelley nor Byron.
253
+ */
254
+ getAddressString(address) {
255
+ // Check all Shelley address types
256
+ if (cardano_serialization_lib_nodejs_1.BaseAddress.from_address(address) ||
257
+ cardano_serialization_lib_nodejs_1.EnterpriseAddress.from_address(address) ||
258
+ cardano_serialization_lib_nodejs_1.RewardAddress.from_address(address) ||
259
+ cardano_serialization_lib_nodejs_1.PointerAddress.from_address(address)) {
260
+ return address.to_bech32();
261
+ }
262
+ const byronAddress = cardano_serialization_lib_nodejs_1.ByronAddress.from_address(address);
263
+ // Reject Daedalus wallet addresses (Byron-era addresses starting with "DdzFF")
264
+ if (byronAddress) {
265
+ if (byronAddress.to_base58().startsWith('DdzFF')) {
266
+ throw new sdk_core_1.InvalidAddressError('Provided address is a Daedalus address');
267
+ }
268
+ return byronAddress.to_base58();
269
+ }
270
+ // If neither, it's invalid
271
+ throw new sdk_core_1.InvalidAddressError('Provided Address is not a valid Shelley or Byron address');
272
+ }
138
273
  }
139
274
  exports.Utils = Utils;
140
275
  const utils = new Utils();
141
276
  exports.default = utils;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRTtBQUNoRSwrRkFRa0Q7QUFDbEQsdUNBQW9DO0FBQ3BDLG1DQUFnQztBQUVuQixRQUFBLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztBQUUvQyxNQUFhLEtBQUs7SUFDaEIsdUNBQXVDLENBQ3JDLFlBQXFCLEVBQ3JCLGNBQXVCLEVBQ3ZCLE9BQXNCO1FBRXRCLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxPQUFPLEtBQUssd0JBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDckMseUJBQXlCO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFFdkMsTUFBTSxRQUFRLEdBQUcsNENBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvRCwyQkFBMkI7WUFDM0IsTUFBTSxVQUFVLEdBQUcsNENBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUYsMENBQTBDO1lBQzFDLFFBQVEsR0FBRyw4Q0FBVyxDQUFDLEdBQUcsQ0FDeEIsOENBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFDbEMsa0RBQWUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQy9DLGtEQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5QyxDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDMUM7YUFBTSxJQUFJLE9BQU8sS0FBSyx3QkFBYSxD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QUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxJQUFJO1lBQ0YsbURBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG9CQUFvQixDQUFDLElBQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsWUFBb0I7UUFDckMsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7UUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN2RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsOENBQWtCLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUcsQ0FBQztDQUNGO0FBekpELHNCQXlKQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCwgQmFzZVV0aWxzIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIFB1YmxpY0tleSxcbiAgRWQyNTUxOVNpZ25hdHVyZSxcbiAgTmV0d29ya0luZm8sXG4gIFN0YWtlQ3JlZGVudGlhbCxcbiAgUmV3YXJkQWRkcmVzcyxcbiAgVHJhbnNhY3Rpb24gYXMgQ2FyZGFub1RyYW5zYWN0aW9uLFxufSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgYmVjaDMyIH0gZnJvbSAnYmVjaDMyJztcblxuZXhwb3J0IGNvbnN0IE1JTl9BREFfRk9SX09ORV9BU1NFVCA9ICcxNTAwMDAwJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgY3JlYXRlQmFzZUFkZHJlc3NXaXRoU3Rha2VBbmRQYXltZW50S2V5KFxuICAgIHN0YWtlS2V5UGFpcjogS2V5UGFpcixcbiAgICBwYXltZW50S2V5UGFpcjogS2V5UGFpcixcbiAgICBuZXR3b3JrOiBBZGRyZXNzRm9ybWF0XG4gICk6IHN0cmluZyB7XG4gICAgbGV0IGJhc2VBZGRyO1xuICAgIGlmIChuZXR3b3JrID09PSBBZGRyZXNzRm9ybWF0Lm1haW5uZXQpIHtcbiAgICAgIC8vIDEuIGNyZWF0ZSBzdGFrZSBwdWJLZXlcbiAgICAgIGNvbnN0IGtleSA9IHN0YWtlS2V5UGFpci5nZXRLZXlzKCkucHViO1xuXG4gICAgICBjb25zdCBzdGFrZVB1YiA9IFB1YmxpY0tleS5mcm9tX2J5dGVzKEJ1ZmZlci5mcm9tKGtleSwgJ2hleCcpKTtcbiAgICAgIC8vIDIuIGNyZWF0ZSBwYXltZW50IHB1YktleVxuICAgICAgY29uc3QgcGF5bWVudFB1YiA9IFB1YmxpY0tleS5mcm9tX2J5dGVzKEJ1ZmZlci5mcm9tKHBheW1lbnRLZXlQYWlyLmdldEtleXMoKS5wdWIsICdoZXgnKSk7XG4gICAgICAvLyAzLiBjcmVhdGUgZnVsbCBiYXNlIGFkZHJlc3MgZm9yIHN0YWtpbmdcbiAgICAgIGJhc2VBZGRyID0gQmFzZUFkZHJlc3MubmV3KFxuICAgICAgICBOZXR3b3JrSW5mby5tYWlubmV0KCkubmV0d29ya19pZCgpLFxuICAgICAgICBTdGFrZUNyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHBheW1lbnRQdWIuaGFzaCgpKSxcbiAgICAgICAgU3Rha2VDcmVkZW50aWFsLmZyb21fa2V5aGFzaChzdGFrZVB1Yi5oYXNoKCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGJhc2VBZGRyLnRvX2FkZHJlc3MoKS50b19iZWNoMzIoKTtcbiAgICB9IGVsc2UgaWYgKG5ldHdvcmsgPT09IEFkZHJlc3NGb3JtYXQudGVzdG5ldCkge1xuICAgICAgLy8gMS4gY3JlYXRlIHN0YWtlIHB1YktleVxuICAgICAgY29uc3Qgc3Rha2VQdWIgPSBQdWJsaWNLZXkuZnJvbV9ieXRlcyhCdWZmZXIuZnJvbShzdGFrZUtleVBhaXIuZ2V0S2V5cygpLnB1YiwgJ2hleCcpKTtcbiAgICAgIC8vIDIuIGNyZWF0ZSBwYXltZW50IHB1YktleVxuICAgICAgY29uc3QgcGF5bWVudFB1YiA9IFB1YmxpY0tleS5mcm9tX2J5dGVzKEJ1ZmZlci5mcm9tKHBheW1lbnRLZXlQYWlyLmdldEtleXMoKS5wdWIsICdoZXgnKSk7XG4gICAgICAvLyAzLiBjcmVhdGUgZnVsbCBiYXNlIGFkZHJlc3MgZm9yIHN0YWtpbmdcbiAgICAgIGNvbnN0IGJhc2VBZGRyID0gQmFzZUFkZHJlc3MubmV3KFxuICAgICAgICBOZXR3b3JrSW5mby50ZXN0bmV0KCkubmV0d29ya19pZCgpLFxuICAgICAgICBTdGFrZUNyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHBheW1lbnRQdWIuaGFzaCgpKSxcbiAgICAgICAgU3Rha2VDcmVkZW50aWFsLmZyb21fa2V5aGFzaChzdGFrZVB1Yi5oYXNoKCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGJhc2VBZGRyLnRvX2FkZHJlc3MoKS50b19iZWNoMzIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbXByb3BlciBOZXR3b3JrIFR5cGUhJyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVCbGFrZTJiKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghaGFzaCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaGFzaC5sZW5ndGggIT09IDY0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBoYXNoLm1hdGNoKC9eW2EtekEtWjAtOV0rJC8pICE9PSBudWxsO1xuICB9XG5cbiAgZ2V0UmV3YXJkQWRkcmVzcyhzdGFraW5nUHViS2V5OiBzdHJpbmcsIGNvaW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YWtlUHViID0gUHVibGljS2V5LmZyb21fYnl0ZXMoQnVmZmVyLmZyb20oc3Rha2luZ1B1YktleSwgJ2hleCcpKTtcbiAgICBsZXQgcmV3YXJkQWRkcmVzcztcbiAgICBpZiAoY29pbk5hbWUgPT09ICdhZGEnKSB7XG4gICAgICByZXdhcmRBZGRyZXNzID0gUmV3YXJkQWRkcmVzcy5uZXcoXG4gICAgICAgIE5ldHdvcmtJbmZvLm1haW5uZXQoKS5uZXR3b3JrX2lkKCksXG4gICAgICAgIFN0YWtlQ3JlZGVudGlhbC5mcm9tX2tleWhhc2goc3Rha2VQdWIuaGFzaCgpKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV3YXJkQWRkcmVzcyA9IFJld2FyZEFkZHJlc3MubmV3KFxuICAgICAgICBOZXR3b3JrSW5mby50ZXN0bmV0KCkubmV0d29ya19pZCgpLFxuICAgICAgICBTdGFrZUNyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHN0YWtlUHViLmhhc2goKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXdhcmRBZGRyZXNzLnRvX2FkZHJlc3MoKS50b19iZWNoMzIoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAvLyB0aGlzIHdpbGwgdmFsaWRhdGUgYm90aCBzdGFrZSBhbmQgcGF5bWVudCBhZGRyZXNzZXNcbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYmVjaDMyUHJlZml4TGlzdCA9IFsnYWRkcicsICdhZGRyX3Rlc3QnLCAnc3Rha2UnLCAnc3Rha2VfdGVzdCddO1xuICAgIGNvbnN0IEJBU0VfQUREUl9MRU4gPSA5MjtcbiAgICBjb25zdCBSRVdBUkRfQU5EX0VOVEVSUFJJU0VfQUREUl9MRU4gPSA0NztcbiAgICBjb25zdCBQT0lOVEVSX0FERFJfTEVOID0gNTI7XG4gICAgY29uc3QgVkFMSURBVE9SX0FERFJfTEVOID0gNTY7XG5cbiAgICAvLyB0ZXN0IGlmIHRoaXMgaXMgYSBiZWNoMzIgYWRkcmVzcyBmaXJzdFxuICAgIGlmIChuZXcgUmVnRXhwKGJlY2gzMlByZWZpeExpc3Quam9pbignfCcpKS50ZXN0KGFkZHJlc3MpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkZWNvZGVkQmVjaCA9IGJlY2gzMi5kZWNvZGUoYWRkcmVzcywgMTA4KTtcbiAgICAgICAgY29uc3Qgd29yZExlbmd0aCA9IGRlY29kZWRCZWNoLndvcmRzLmxlbmd0aDtcbiAgICAgICAgaWYgKCFiZWNoMzJQcmVmaXhMaXN0LmluY2x1ZGVzKGRlY29kZWRCZWNoLnByZWZpeCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB3b3JkTGVuZ3RoID09PSBCQVNFX0FERFJfTEVOIHx8XG4gICAgICAgICAgd29yZExlbmd0aCA9PT0gUkVXQVJEX0FORF9FTlRFUlBSSVNFX0FERFJfTEVOIHx8XG4gICAgICAgICAgd29yZExlbmd0aCA9PT0gUE9JTlRFUl9BRERSX0xFTlxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbWF5YmUgdGhpcyBpcyBhIHZhbGlkYXRvciBhZGRyZXNzXG4gICAgICByZXR1cm4gbmV3IFJlZ0V4cChgXig/IXBvb2wpW2EtejAtOV1cXHske1ZBTElEQVRPUl9BRERSX0xFTn1cXH0kYCkudGVzdChhZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVCbGFrZTJiKGhhc2gpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gdGhpcyB3aWxsIHJldHVybiB0cnVlIGZvciBib3RoIGV4dGVuZGVkIGFuZCBub24tZXh0ZW5kZWQgRUQyNTUxOSBrZXlzXG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEtleShrZXkpO1xuICB9XG5cbiAgaXNWYWxpZEtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkocHViS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwdWI6IHB1YktleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIEVkMjU1MTlTaWduYXR1cmUuZnJvbV9oZXgoc2lnbmF0dXJlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUJsYWtlMmIodHhJZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0cmFuc2FjdGlvbiBib2R5IGZyb20gYSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXJpYWxpemVkVHggLSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uIGluIGhleCBvciBiYXNlNjQgZm9ybWF0XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHRyYW5zYWN0aW9uIGJvZHkgaW4gaGV4IGZvcm1hdFxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25Cb2R5KHNlcmlhbGl6ZWRUeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBIRVhfUkVHRVggPSAvXlswLTlhLWZBLUZdKyQvO1xuICAgIGNvbnN0IGJ1ZmZlclJhd1RyYW5zYWN0aW9uID0gSEVYX1JFR0VYLnRlc3Qoc2VyaWFsaXplZFR4KVxuICAgICAgPyBCdWZmZXIuZnJvbShzZXJpYWxpemVkVHgsICdoZXgnKVxuICAgICAgOiBCdWZmZXIuZnJvbShzZXJpYWxpemVkVHgsICdiYXNlNjQnKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oQ2FyZGFub1RyYW5zYWN0aW9uLmZyb21fYnl0ZXMoYnVmZmVyUmF3VHJhbnNhY3Rpb24pLmJvZHkoKS50b19ieXRlcygpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFxRjtBQUNyRiwrRkFnQmtEO0FBQ2xELHVDQUFvQztBQUNwQyxtQ0FBZ0M7QUFDaEMsZ0RBQXdCO0FBQ3hCLGdEQUF3QjtBQUVYLFFBQUEscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0FBQ2xDLFFBQUEsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFDdkMsUUFBQSx5QkFBeUIsR0FBRyxzQkFBc0IsQ0FBQztBQUVoRSxNQUFhLEtBQUs7SUFDaEIsdUNBQXVDLENBQ3JDLFlBQXFCLEVBQ3JCLGNBQXVCLEVBQ3ZCLE9BQXNCO1FBRXRCLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxPQUFPLEtBQUssd0JBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0Qyx5QkFBeUI7WUFDekIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUV2QyxNQUFNLFFBQVEsR0FBRyw0Q0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9ELDJCQUEyQjtZQUMzQixNQUFNLFVBQVUsR0FBRyw0Q0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxRiwwQ0FBMEM7WUFDMUMsUUFBUSxHQUFHLDhDQUFXLENBQUMsR0FBRyxDQUN4Qiw4Q0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUNsQyw2Q0FBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDMUMsNkNBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUks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QUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLDhCQUFtQixDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLE9BQWdCO1FBQy9CLGtDQUFrQztRQUNsQyxJQUNFLDhDQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxvREFBaUIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLGdEQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxpREFBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFDcEMsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRywrQ0FBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCwrRUFBK0U7UUFDL0UsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxJQUFJLDhCQUFtQixDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUNELE9BQU8sWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxJQUFJLDhCQUFtQixDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNGO0FBclNELHNCQXFTQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCwgQmFzZVV0aWxzLCBJbnZhbGlkQWRkcmVzc0Vycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIFB1YmxpY0tleSxcbiAgRWQyNTUxOVNpZ25hdHVyZSxcbiAgTmV0d29ya0luZm8sXG4gIENyZWRlbnRpYWwsXG4gIFJld2FyZEFkZHJlc3MsXG4gIFRyYW5zYWN0aW9uIGFzIENhcmRhbm9UcmFuc2FjdGlvbixcbiAgRFJlcCxcbiAgRWQyNTUxOUtleUhhc2gsXG4gIFNjcmlwdEhhc2gsXG4gIERSZXBLaW5kLFxuICBBZGRyZXNzLFxuICBFbnRlcnByaXNlQWRkcmVzcyxcbiAgUG9pbnRlckFkZHJlc3MsXG4gIEJ5cm9uQWRkcmVzcyxcbn0gZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IGJlY2gzMiB9IGZyb20gJ2JlY2gzMic7XG5pbXBvcnQgYnM1OCBmcm9tICdiczU4JztcbmltcG9ydCBjYm9yIGZyb20gJ2Nib3InO1xuXG5leHBvcnQgY29uc3QgTUlOX0FEQV9GT1JfT05FX0FTU0VUID0gJzE1MDAwMDAnO1xuZXhwb3J0IGNvbnN0IFZPVEVfQUxXQVlTX0FCU1RBSU4gPSAnYWx3YXlzLWFic3RhaW4nO1xuZXhwb3J0IGNvbnN0IFZPVEVfQUxXQVlTX05PX0NPTkZJREVOQ0UgPSAnYWx3YXlzLW5vLWNvbmZpZGVuY2UnO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICBjcmVhdGVCYXNlQWRkcmVzc1dpdGhTdGFrZUFuZFBheW1lbnRLZXkoXG4gICAgc3Rha2VLZXlQYWlyOiBLZXlQYWlyLFxuICAgIHBheW1lbnRLZXlQYWlyOiBLZXlQYWlyLFxuICAgIG5ldHdvcms6IEFkZHJlc3NGb3JtYXRcbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgYmFzZUFkZHI7XG4gICAgaWYgKG5ldHdvcmsgPT09IEFkZHJlc3NGb3JtYXQubWFpbm5ldCkge1xuICAgICAgLy8gMS4gY3JlYXRlIHN0YWtlIHB1YktleVxuICAgICAgY29uc3Qga2V5ID0gc3Rha2VLZXlQYWlyLmdldEtleXMoKS5wdWI7XG5cbiAgICAgIGNvbnN0IHN0YWtlUHViID0gUHVibGljS2V5LmZyb21fYnl0ZXMoQnVmZmVyLmZyb20oa2V5LCAnaGV4JykpO1xuICAgICAgLy8gMi4gY3JlYXRlIHBheW1lbnQgcHViS2V5XG4gICAgICBjb25zdCBwYXltZW50UHViID0gUHVibGljS2V5LmZyb21fYnl0ZXMoQnVmZmVyLmZyb20ocGF5bWVudEtleVBhaXIuZ2V0S2V5cygpLnB1YiwgJ2hleCcpKTtcbiAgICAgIC8vIDMuIGNyZWF0ZSBmdWxsIGJhc2UgYWRkcmVzcyBmb3Igc3Rha2luZ1xuICAgICAgYmFzZUFkZHIgPSBCYXNlQWRkcmVzcy5uZXcoXG4gICAgICAgIE5ldHdvcmtJbmZvLm1haW5uZXQoKS5uZXR3b3JrX2lkKCksXG4gICAgICAgIENyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHBheW1lbnRQdWIuaGFzaCgpKSxcbiAgICAgICAgQ3JlZGVudGlhbC5mcm9tX2tleWhhc2goc3Rha2VQdWIuaGFzaCgpKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBiYXNlQWRkci50b19hZGRyZXNzKCkudG9fYmVjaDMyKCk7XG4gICAgfSBlbHNlIGlmIChuZXR3b3JrID09PSBBZGRyZXNzRm9ybWF0LnRlc3RuZXQpIHtcbiAgICAgIC8vIDEuIGNyZWF0ZSBzdGFrZSBwdWJLZXlcbiAgICAgIGNvbnN0IHN0YWtlUHViID0gUHVibGljS2V5LmZyb21fYnl0ZXMoQnVmZmVyLmZyb20oc3Rha2VLZXlQYWlyLmdldEtleXMoKS5wdWIsICdoZXgnKSk7XG4gICAgICAvLyAyLiBjcmVhdGUgcGF5bWVudCBwdWJLZXlcbiAgICAgIGNvbnN0IHBheW1lbnRQdWIgPSBQdWJsaWNLZXkuZnJvbV9ieXRlcyhCdWZmZXIuZnJvbShwYXltZW50S2V5UGFpci5nZXRLZXlzKCkucHViLCAnaGV4JykpO1xuICAgICAgLy8gMy4gY3JlYXRlIGZ1bGwgYmFzZSBhZGRyZXNzIGZvciBzdGFraW5nXG4gICAgICBjb25zdCBiYXNlQWRkciA9IEJhc2VBZGRyZXNzLm5ldyhcbiAgICAgICAgTmV0d29ya0luZm8udGVzdG5ldF9wcmVwcm9kKCkubmV0d29ya19pZCgpLFxuICAgICAgICBDcmVkZW50aWFsLmZyb21fa2V5aGFzaChwYXltZW50UHViLmhhc2goKSksXG4gICAgICAgIENyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHN0YWtlUHViLmhhc2goKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gYmFzZUFkZHIudG9fYWRkcmVzcygpLnRvX2JlY2gzMigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltcHJvcGVyIE5ldHdvcmsgVHlwZSEnKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUJsYWtlMmIoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFoYXNoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChoYXNoLmxlbmd0aCAhPT0gNjQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2gubWF0Y2goL15bYS16QS1aMC05XSskLykgIT09IG51bGw7XG4gIH1cblxuICBnZXRSZXdhcmRBZGRyZXNzKHN0YWtpbmdQdWJLZXk6IHN0cmluZywgY29pbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3Rha2VQdWIgPSBQdWJsaWNLZXkuZnJvbV9ieXRlcyhCdWZmZXIuZnJvbShzdGFraW5nUHViS2V5LCAnaGV4JykpO1xuICAgIGxldCByZXdhcmRBZGRyZXNzO1xuICAgIGlmIChjb2luTmFtZSA9PT0gJ2FkYScpIHtcbiAgICAgIHJld2FyZEFkZHJlc3MgPSBSZXdhcmRBZGRyZXNzLm5ldyhOZXR3b3JrSW5mby5tYWlubmV0KCkubmV0d29ya19pZCgpLCBDcmVkZW50aWFsLmZyb21fa2V5aGFzaChzdGFrZVB1Yi5oYXNoKCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV3YXJkQWRkcmVzcyA9IFJld2FyZEFkZHJlc3MubmV3KFxuICAgICAgICBOZXR3b3JrSW5mby50ZXN0bmV0X3ByZXByb2QoKS5uZXR3b3JrX2lkKCksXG4gICAgICAgIENyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHN0YWtlUHViLmhhc2goKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXdhcmRBZGRyZXNzLnRvX2FkZHJlc3MoKS50b19iZWNoMzIoKTtcbiAgfVxuXG4gIGlzVmFsaWREUmVwSWQoZFJlcElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5nZXREUmVwRnJvbURSZXBJZChkUmVwSWQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0RFJlcEZyb21EUmVwSWQoZFJlcElkOiBzdHJpbmcpOiBEUmVwIHtcbiAgICBzd2l0Y2ggKGRSZXBJZCkge1xuICAgICAgY2FzZSAnYWx3YXlzLWFic3RhaW4nOlxuICAgICAgICByZXR1cm4gRFJlcC5uZXdfYWx3YXlzX2Fic3RhaW4oKTtcbiAgICAgIGNhc2UgJ2Fsd2F5cy1uby1jb25maWRlbmNlJzpcbiAgICAgICAgcmV0dXJuIERSZXAubmV3X2Fsd2F5c19ub19jb25maWRlbmNlKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIGZvciBwYXJzaW5nIENJUC0xMDUgc3RhbmRhcmQgRFJlcCBJRFxuICAgICAgICAgIHJldHVybiBEUmVwLmZyb21fYmVjaDMyKGRSZXBJZCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIC8vIGZvciBwYXJzaW5nIENJUC0xMjkgc3RhbmRhcmQgRFJlcCBJRFxuICAgICAgICAgIC8vIGh0dHBzOi8vY2lwcy5jYXJkYW5vLm9yZy9jaXAvQ0lQLTAxMjlcbiAgICAgICAgICBjb25zdCBkZWNvZGVkQmVjaDMyID0gYmVjaDMyLmRlY29kZShkUmVwSWQpO1xuICAgICAgICAgIGNvbnN0IGRlY29kZWRCeXRlcyA9IEJ1ZmZlci5mcm9tKGJlY2gzMi5mcm9tV29yZHMoZGVjb2RlZEJlY2gzMi53b3JkcykpO1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGRlY29kZWRCeXRlc1swXTtcbiAgICAgICAgICBjb25zdCBrZXlCeXRlcyA9IGRlY29kZWRCeXRlcy5zdWJhcnJheSgxKTtcblxuICAgICAgICAgIGNvbnN0IGtleVR5cGUgPSAoaGVhZGVyICYgMHhmMCkgPj4gNDtcbiAgICAgICAgICBjb25zdCBjcmVkZW50aWFsVHlwZSA9IGhlYWRlciAmIDB4MGY7XG5cbiAgICAgICAgICBpZiAoa2V5VHlwZSAhPT0gMHgwMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleSB0eXBlIGZvciBEUmVwJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3dpdGNoIChjcmVkZW50aWFsVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAweDAyOlxuICAgICAgICAgICAgICBjb25zdCBlZDI1NTE5S2V5SGFzaCA9IEVkMjU1MTlLZXlIYXNoLmZyb21fYnl0ZXMoa2V5Qnl0ZXMpO1xuICAgICAgICAgICAgICByZXR1cm4gRFJlcC5uZXdfa2V5X2hhc2goZWQyNTUxOUtleUhhc2gpO1xuICAgICAgICAgICAgY2FzZSAweDAzOlxuICAgICAgICAgICAgICBjb25zdCBzY3JpcHRIYXNoID0gU2NyaXB0SGFzaC5mcm9tX2J5dGVzKGtleUJ5dGVzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIERSZXAubmV3X3NjcmlwdF9oYXNoKHNjcmlwdEhhc2gpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyZWRlbnRpYWwgdHlwZSBmb3IgRFJlcCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldERSZXBJZEZyb21EUmVwKGRSZXA6IERSZXApOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZFJlcC5raW5kKCkpIHtcbiAgICAgIGNhc2UgRFJlcEtpbmQuQWx3YXlzQWJzdGFpbjpcbiAgICAgICAgcmV0dXJuIFZPVEVfQUxXQVlTX0FCU1RBSU47XG4gICAgICBjYXNlIERSZXBLaW5kLkFsd2F5c05vQ29uZmlkZW5jZTpcbiAgICAgICAgcmV0dXJuIFZPVEVfQUxXQVlTX05PX0NPTkZJREVOQ0U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZFJlcC50b19iZWNoMzIoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgLy8gdGhpcyB3aWxsIHZhbGlkYXRlIGJvdGggc3Rha2UgYW5kIHBheW1lbnQgYWRkcmVzc2VzXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJlY2gzMlByZWZpeExpc3QgPSBbJ2FkZHInLCAnYWRkcl90ZXN0JywgJ3N0YWtlJywgJ3N0YWtlX3Rlc3QnXTtcbiAgICBjb25zdCBCQVNFX0FERFJfTEVOID0gOTI7XG4gICAgY29uc3QgUkVXQVJEX0FORF9FTlRFUlBSSVNFX0FERFJfTEVOID0gNDc7XG4gICAgY29uc3QgUE9JTlRFUl9BRERSX0xFTiA9IDUyO1xuICAgIGNvbnN0IFZBTElEQVRPUl9BRERSX0xFTiA9IDU2O1xuXG4gICAgLy9DaGVjayBmb3IgU2hlbGxleS1lcmEgKEJlY2gzMikgYWRkcmVzc2VzXG4gICAgaWYgKG5ldyBSZWdFeHAoYF4oJHtiZWNoMzJQcmVmaXhMaXN0LmpvaW4oJ3wnKX0pYCkudGVzdChhZGRyZXNzKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZEJlY2ggPSBiZWNoMzIuZGVjb2RlKGFkZHJlc3MsIDEwOCk7XG4gICAgICAgIGNvbnN0IHdvcmRMZW5ndGggPSBkZWNvZGVkQmVjaC53b3Jkcy5sZW5ndGg7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWNoMzJQcmVmaXhMaXN0LmluY2x1ZGVzKGRlY29kZWRCZWNoLnByZWZpeCkgJiZcbiAgICAgICAgICAod29yZExlbmd0aCA9PT0gQkFTRV9BRERSX0xFTiB8fFxuICAgICAgICAgICAgd29yZExlbmd0aCA9PT0gUkVXQVJEX0FORF9FTlRFUlBSSVNFX0FERFJfTEVOIHx8XG4gICAgICAgICAgICB3b3JkTGVuZ3RoID09PSBQT0lOVEVSX0FERFJfTEVOKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgQWRkcmVzczogJHthZGRyZXNzfSBmYWlsZWQgQmVjaDMyIHRlc3Qgd2l0aCBlcnJvcjogJHtlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vQ2hlY2sgZm9yIFZhbGlkYXRvciBhZGRyZXNzZXNcbiAgICBpZiAobmV3IFJlZ0V4cChgXig/IXBvb2wpW2EtejAtOV17JHtWQUxJREFUT1JfQUREUl9MRU59fSRgKS50ZXN0KGFkZHJlc3MpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvL0NoZWNrIGZvciBCeXJvbi1lcmEgYWRkcmVzc1xuICAgIHRyeSB7XG4gICAgICAvLyBSZWplY3QgRGFlZGFsdXMgd2FsbGV0IGFkZHJlc3NlcyAoQnlyb24tZXJhIGFkZHJlc3NlcyBzdGFydGluZyB3aXRoIFwiRGR6RkZcIilcbiAgICAgIGlmIChhZGRyZXNzLnN0YXJ0c1dpdGgoJ0RkekZGJykpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFJlamVjdGluZyBEYWVkYWx1cyB3YWxsZXQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlY29kZWQgPSBiczU4LmRlY29kZShhZGRyZXNzKTtcbiAgICAgIGNvbnN0IGNib3JEYXRhID0gY2Jvci5kZWNvZGVGaXJzdFN5bmMoZGVjb2RlZCk7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjYm9yRGF0YSkgJiYgY2JvckRhdGEubGVuZ3RoID49IDI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYEFkZHJlc3M6ICR7YWRkcmVzc30gZmFpbGVkIEJ5cm9uIHRlc3Qgd2l0aCBlcnJvcjogJHtlfWApO1xuICAgICAgY29uc29sZS5sb2coZS5zdGFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQmxha2UyYihoYXNoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBmb3IgYm90aCBleHRlbmRlZCBhbmQgbm9uLWV4dGVuZGVkIEVEMjU1MTkga2V5c1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRLZXkoa2V5KTtcbiAgfVxuXG4gIGlzVmFsaWRLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KHB1YktleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBLZXlQYWlyKHsgcHViOiBwdWJLZXkgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBFZDI1NTE5U2lnbmF0dXJlLmZyb21faGV4KHNpZ25hdHVyZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVCbGFrZTJiKHR4SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdHJhbnNhY3Rpb24gYm9keSBmcm9tIGEgc2VyaWFsaXplZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VyaWFsaXplZFR4IC0gc2VyaWFsaXplZCB0cmFuc2FjdGlvbiBpbiBoZXggb3IgYmFzZTY0IGZvcm1hdFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0cmFuc2FjdGlvbiBib2R5IGluIGhleCBmb3JtYXRcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uQm9keShzZXJpYWxpemVkVHg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgSEVYX1JFR0VYID0gL15bMC05YS1mQS1GXSskLztcbiAgICBjb25zdCBidWZmZXJSYXdUcmFuc2FjdGlvbiA9IEhFWF9SRUdFWC50ZXN0KHNlcmlhbGl6ZWRUeClcbiAgICAgID8gQnVmZmVyLmZyb20oc2VyaWFsaXplZFR4LCAnaGV4JylcbiAgICAgIDogQnVmZmVyLmZyb20oc2VyaWFsaXplZFR4LCAnYmFzZTY0Jyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKENhcmRhbm9UcmFuc2FjdGlvbi5mcm9tX2J5dGVzKGJ1ZmZlclJhd1RyYW5zYWN0aW9uKS5ib2R5KCkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZSB3YWxsZXQgYWRkcmVzcyBmcm9tIHN0cmluZy5cbiAgICogQXR0ZW1wdHMgdG8gZGVjb2RlIGFzIFNoZWxsZXkgKGJlY2gzMikgZmlyc3QsIHRoZW4gQnlyb24gKGJhc2U1OCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVmFsaWQgQnlyb24gb3IgU2hlbGxleS1lcmEgYWRkcmVzcy5cbiAgICogQHJldHVybnMge0FkZHJlc3N9IC0gVmFsaWQgYWRkcmVzcyBvYmplY3QuXG4gICAqIEB0aHJvd3Mge0ludmFsaWRBZGRyZXNzRXJyb3J9IElmIHRoZSBhZGRyZXNzIGlzIG5laXRoZXIgdmFsaWQgU2hlbGxleSBub3IgQnlyb24uXG4gICAqL1xuICBnZXRXYWxsZXRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IEFkZHJlc3Mge1xuICAgIGlmICghYWRkcmVzcyB8fCB0eXBlb2YgYWRkcmVzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKCdQcm92aWRlZCBhZGRyZXNzIGlzIG5vdCBhIHZhbGlkIHN0cmluZycpO1xuICAgIH1cblxuICAgIC8vIFRyeSBkZWNvZGluZyBhcyBhIFNoZWxsZXkgKGJlY2gzMikgYWRkcmVzcyBmaXJzdFxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQWRkcmVzcy5mcm9tX2JlY2gzMihhZGRyZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgZGVjb2RlIHNoZWxseSBhZGRyZXNzIGZyb20gc3RyaW5nICcke2FkZHJlc3N9J2ApO1xuICAgIH1cblxuICAgIC8vIFRyeSBkZWNvZGluZyBhcyBhIEJ5cm9uIChiYXNlNTgpIGFkZHJlc3MgbGF0ZXJcbiAgICB0cnkge1xuICAgICAgLy8gUmVqZWN0IERhZWRhbHVzIHdhbGxldCBhZGRyZXNzZXMgKEJ5cm9uLWVyYSBhZGRyZXNzZXMgc3RhcnRpbmcgd2l0aCBcIkRkekZGXCIpXG4gICAgICBpZiAoYWRkcmVzcy5zdGFydHNXaXRoKCdEZHpGRicpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKCdQcm92aWRlZCBzdHJpbmcgaXMgYSBEYWVkYWx1cyBhZGRyZXNzJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBCeXJvbkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fYWRkcmVzcygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYENvdWxkIG5vdCBkZWNvZGUgYnlyb24gYWRkcmVzcyBmcm9tIHN0cmluZyAnJHthZGRyZXNzfSdgKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoJ1Byb3ZpZGVkIHN0cmluZyBpcyBub3QgYSB2YWxpZCBTaGVsbGV5IG9yIEJ5cm9uIGFkZHJlc3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGUgYWRkcmVzcyBzdHJpbmcgZnJvbSBBZGRyZXNzIG9iamVjdC5cbiAgICogQXR0ZW1wdHMgdG8gZGVjb2RlIGFzIFNoZWxsZXkgKGJlY2gzMikgZmlyc3QsIHRoZW4gQnlyb24gKGJhc2U1OCkuXG4gICAqIEBwYXJhbSB7QWRkcmVzc30gYWRkcmVzcyAtIFZhbGlkIEFkZHJlc3Mgb2JqZWN0XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVmFsaWQgQnlyb24gb3IgU2hlbGxleS1lcmEgYWRkcmVzcyBzdHJpbmcuXG4gICAqIEB0aHJvd3Mge0ludmFsaWRBZGRyZXNzRXJyb3J9IElmIHRoZSBBZGRyZXNzIG9iamVjdCBpcyBuZWl0aGVyIHZhbGlkIFNoZWxsZXkgbm9yIEJ5cm9uLlxuICAgKi9cbiAgZ2V0QWRkcmVzc1N0cmluZyhhZGRyZXNzOiBBZGRyZXNzKTogc3RyaW5nIHtcbiAgICAvLyBDaGVjayBhbGwgU2hlbGxleSBhZGRyZXNzIHR5cGVzXG4gICAgaWYgKFxuICAgICAgQmFzZUFkZHJlc3MuZnJvbV9hZGRyZXNzKGFkZHJlc3MpIHx8XG4gICAgICBFbnRlcnByaXNlQWRkcmVzcy5mcm9tX2FkZHJlc3MoYWRkcmVzcykgfHxcbiAgICAgIFJld2FyZEFkZHJlc3MuZnJvbV9hZGRyZXNzKGFkZHJlc3MpIHx8XG4gICAgICBQb2ludGVyQWRkcmVzcy5mcm9tX2FkZHJlc3MoYWRkcmVzcylcbiAgICApIHtcbiAgICAgIHJldHVybiBhZGRyZXNzLnRvX2JlY2gzMigpO1xuICAgIH1cblxuICAgIGNvbnN0IGJ5cm9uQWRkcmVzcyA9IEJ5cm9uQWRkcmVzcy5mcm9tX2FkZHJlc3MoYWRkcmVzcyk7XG4gICAgLy8gUmVqZWN0IERhZWRhbHVzIHdhbGxldCBhZGRyZXNzZXMgKEJ5cm9uLWVyYSBhZGRyZXNzZXMgc3RhcnRpbmcgd2l0aCBcIkRkekZGXCIpXG4gICAgaWYgKGJ5cm9uQWRkcmVzcykge1xuICAgICAgaWYgKGJ5cm9uQWRkcmVzcy50b19iYXNlNTgoKS5zdGFydHNXaXRoKCdEZHpGRicpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKCdQcm92aWRlZCBhZGRyZXNzIGlzIGEgRGFlZGFsdXMgYWRkcmVzcycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ5cm9uQWRkcmVzcy50b19iYXNlNTgoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBuZWl0aGVyLCBpdCdzIGludmFsaWRcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignUHJvdmlkZWQgQWRkcmVzcyBpcyBub3QgYSB2YWxpZCBTaGVsbGV5IG9yIEJ5cm9uIGFkZHJlc3MnKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
@@ -0,0 +1,24 @@
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 VoteDelegationBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ protected get transactionType(): TransactionType;
8
+ /** @inheritdoc */
9
+ initBuilder(tx: Transaction): void;
10
+ /**
11
+ * Creates the proper certificates needed to delegate a user's vote to a given DRep
12
+ *
13
+ * @param stakingPublicKey The user's public stake key
14
+ * @param dRepId The DRep ID of the DRep we will delegate vote to
15
+ */
16
+ addVoteDelegationCertificate(stakingPublicKey: string, dRepId: string): this;
17
+ /** @inheritdoc */
18
+ protected buildImplementation(): Promise<Transaction>;
19
+ /** @inheritdoc */
20
+ protected fromImplementation(rawTransaction: string): Transaction;
21
+ /** @inheritdoc */
22
+ protected signImplementation(key: BaseKey): Transaction;
23
+ }
24
+ //# sourceMappingURL=voteDelegationBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voteDelegationBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/voteDelegationBuilder.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;AAI5C,qBAAa,qBAAsB,SAAQ,kBAAkB;gBAC/C,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,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAW5E,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAM3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAIjE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
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
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.VoteDelegationBuilder = void 0;
40
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
+ const transactionBuilder_1 = require("./transactionBuilder");
42
+ const CardanoWasm = __importStar(require("@emurgo/cardano-serialization-lib-nodejs"));
43
+ const utils_1 = __importDefault(require("./utils"));
44
+ class VoteDelegationBuilder extends transactionBuilder_1.TransactionBuilder {
45
+ constructor(_coinConfig) {
46
+ super(_coinConfig);
47
+ this._type = sdk_core_1.TransactionType.VoteDelegation;
48
+ }
49
+ get transactionType() {
50
+ return sdk_core_1.TransactionType.VoteDelegation;
51
+ }
52
+ /** @inheritdoc */
53
+ initBuilder(tx) {
54
+ super.initBuilder(tx);
55
+ }
56
+ /**
57
+ * Creates the proper certificates needed to delegate a user's vote to a given DRep
58
+ *
59
+ * @param stakingPublicKey The user's public stake key
60
+ * @param dRepId The DRep ID of the DRep we will delegate vote to
61
+ */
62
+ addVoteDelegationCertificate(stakingPublicKey, dRepId) {
63
+ const stakeCredential = CardanoWasm.Credential.from_keyhash(CardanoWasm.PublicKey.from_bytes(Buffer.from(stakingPublicKey, 'hex')).hash());
64
+ const voteDelegationCert = CardanoWasm.Certificate.new_vote_delegation(CardanoWasm.VoteDelegation.new(stakeCredential, utils_1.default.getDRepFromDRepId(dRepId)));
65
+ this._certs.push(voteDelegationCert);
66
+ return this;
67
+ }
68
+ /** @inheritdoc */
69
+ async buildImplementation() {
70
+ const tx = await super.buildImplementation();
71
+ tx.setTransactionType(sdk_core_1.TransactionType.VoteDelegation);
72
+ return tx;
73
+ }
74
+ /** @inheritdoc */
75
+ fromImplementation(rawTransaction) {
76
+ return super.fromImplementation(rawTransaction);
77
+ }
78
+ /** @inheritdoc */
79
+ signImplementation(key) {
80
+ return super.signImplementation(key);
81
+ }
82
+ }
83
+ exports.VoteDelegationBuilder = VoteDelegationBuilder;
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm90ZURlbGVnYXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92b3RlRGVsZWdhdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWdFO0FBRWhFLDZEQUEwRDtBQUUxRCxzRkFBd0U7QUFDeEUsb0RBQStCO0FBRS9CLE1BQWEscUJBQXNCLFNBQVEsdUNBQWtCO0lBQzNELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxjQUFjLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBQyxnQkFBd0IsRUFBRSxNQUFjO1FBQ25FLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUN6RCxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQzlFLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQ3BFLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxlQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDcEYsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQWhERCxzREFnREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlS2V5LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0ICogYXMgQ2FyZGFub1dhc20gZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5pbXBvcnQgYWRhVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBWb3RlRGVsZWdhdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5Wb3RlRGVsZWdhdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5Wb3RlRGVsZWdhdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcHJvcGVyIGNlcnRpZmljYXRlcyBuZWVkZWQgdG8gZGVsZWdhdGUgYSB1c2VyJ3Mgdm90ZSB0byBhIGdpdmVuIERSZXBcbiAgICpcbiAgICogQHBhcmFtIHN0YWtpbmdQdWJsaWNLZXkgVGhlIHVzZXIncyBwdWJsaWMgc3Rha2Uga2V5XG4gICAqIEBwYXJhbSBkUmVwSWQgVGhlIERSZXAgSUQgb2YgdGhlIERSZXAgd2Ugd2lsbCBkZWxlZ2F0ZSB2b3RlIHRvXG4gICAqL1xuICBhZGRWb3RlRGVsZWdhdGlvbkNlcnRpZmljYXRlKHN0YWtpbmdQdWJsaWNLZXk6IHN0cmluZywgZFJlcElkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCBzdGFrZUNyZWRlbnRpYWwgPSBDYXJkYW5vV2FzbS5DcmVkZW50aWFsLmZyb21fa2V5aGFzaChcbiAgICAgIENhcmRhbm9XYXNtLlB1YmxpY0tleS5mcm9tX2J5dGVzKEJ1ZmZlci5mcm9tKHN0YWtpbmdQdWJsaWNLZXksICdoZXgnKSkuaGFzaCgpXG4gICAgKTtcbiAgICBjb25zdCB2b3RlRGVsZWdhdGlvbkNlcnQgPSBDYXJkYW5vV2FzbS5DZXJ0aWZpY2F0ZS5uZXdfdm90ZV9kZWxlZ2F0aW9uKFxuICAgICAgQ2FyZGFub1dhc20uVm90ZURlbGVnYXRpb24ubmV3KHN0YWtlQ3JlZGVudGlhbCwgYWRhVXRpbHMuZ2V0RFJlcEZyb21EUmVwSWQoZFJlcElkKSlcbiAgICApO1xuICAgIHRoaXMuX2NlcnRzLnB1c2godm90ZURlbGVnYXRpb25DZXJ0KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgdHguc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5Wb3RlRGVsZWdhdGlvbik7XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gc3VwZXIuc2lnbkltcGxlbWVudGF0aW9uKGtleSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import * as CardanoSL from '@emurgo/cardano-serialization-lib-nodejs';
2
+ export declare const cip8TestResources: {
3
+ address: {
4
+ bech32: string;
5
+ paymentKeyHash: string;
6
+ };
7
+ keyPair: {
8
+ prv: string;
9
+ pub: string;
10
+ };
11
+ messages: {
12
+ simple: string;
13
+ utf8: string;
14
+ longer: string;
15
+ };
16
+ signatures: {
17
+ simpleMessageSignature: string;
18
+ };
19
+ createTestSignature: (payload: string) => Uint8Array;
20
+ createTestPublicKey: () => CardanoSL.PublicKey;
21
+ signablePayloads: {
22
+ simple: string;
23
+ };
24
+ };
25
+ //# sourceMappingURL=cip8Resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cip8Resources.d.ts","sourceRoot":"","sources":["../../../test/resources/cip8Resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,0CAA0C,CAAC;AAGtE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;mCA2BY,MAAM,KAAG,UAAU;+BASzB,SAAS,CAAC,SAAS;;;;CAQtD,CAAC"}