@bitgo-beta/sdk-coin-vet 1.0.1-beta.48 → 1.0.1-beta.480

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 (151) hide show
  1. package/dist/src/index.d.ts +2 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +3 -1
  4. package/dist/src/lib/constants.d.ts +25 -0
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +27 -2
  7. package/dist/src/lib/iface.d.ts +26 -2
  8. package/dist/src/lib/iface.d.ts.map +1 -1
  9. package/dist/src/lib/iface.js +1 -1
  10. package/dist/src/lib/index.d.ts +19 -0
  11. package/dist/src/lib/index.d.ts.map +1 -1
  12. package/dist/src/lib/index.js +40 -2
  13. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts +31 -0
  14. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts.map +1 -0
  15. package/dist/src/lib/transaction/addressInitializationTransaction.js +170 -0
  16. package/dist/src/lib/transaction/burnNftTransaction.d.ts +26 -0
  17. package/dist/src/lib/transaction/burnNftTransaction.d.ts.map +1 -0
  18. package/dist/src/lib/transaction/burnNftTransaction.js +131 -0
  19. package/dist/src/lib/transaction/claimRewards.d.ts +41 -0
  20. package/dist/src/lib/transaction/claimRewards.d.ts.map +1 -0
  21. package/dist/src/lib/transaction/claimRewards.js +210 -0
  22. package/dist/src/lib/transaction/delegateClauseTransaction.d.ts +27 -0
  23. package/dist/src/lib/transaction/delegateClauseTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/delegateClauseTransaction.js +156 -0
  25. package/dist/src/lib/transaction/exitDelegation.d.ts +26 -0
  26. package/dist/src/lib/transaction/exitDelegation.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/exitDelegation.js +136 -0
  28. package/dist/src/lib/transaction/flushTokenTransaction.d.ts +20 -0
  29. package/dist/src/lib/transaction/flushTokenTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/flushTokenTransaction.js +98 -0
  31. package/dist/src/lib/transaction/nftTransaction.d.ts +17 -0
  32. package/dist/src/lib/transaction/nftTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/nftTransaction.js +108 -0
  34. package/dist/src/lib/transaction/stakeClauseTransaction.d.ts +27 -0
  35. package/dist/src/lib/transaction/stakeClauseTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/stakeClauseTransaction.js +158 -0
  37. package/dist/src/lib/transaction/stakingTransaction.d.ts +31 -0
  38. package/dist/src/lib/transaction/stakingTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/stakingTransaction.js +169 -0
  40. package/dist/src/lib/transaction/tokenTransaction.d.ts +14 -0
  41. package/dist/src/lib/transaction/tokenTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/tokenTransaction.js +95 -0
  43. package/dist/src/lib/transaction/transaction.d.ts +18 -28
  44. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  45. package/dist/src/lib/transaction/transaction.js +97 -57
  46. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts +78 -0
  47. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.js +158 -0
  49. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts +59 -0
  50. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/transactionBuilder/burnNftBuilder.js +118 -0
  52. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts +57 -0
  53. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  54. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.js +142 -0
  55. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts +66 -0
  56. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.js +120 -0
  58. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts +58 -0
  59. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.js +115 -0
  61. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts +66 -0
  62. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.js +129 -0
  64. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts +23 -0
  65. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.js +93 -0
  67. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.d.ts +73 -0
  68. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.js +146 -0
  70. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts +73 -0
  71. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/stakingBuilder.js +147 -0
  73. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts +21 -0
  74. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.js +70 -0
  76. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +10 -9
  77. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -1
  78. package/dist/src/lib/transactionBuilder/transactionBuilder.js +25 -19
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +52 -0
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +115 -1
  82. package/dist/src/lib/types.d.ts +24 -0
  83. package/dist/src/lib/types.d.ts.map +1 -1
  84. package/dist/src/lib/types.js +1 -1
  85. package/dist/src/lib/utils.d.ts +98 -1
  86. package/dist/src/lib/utils.d.ts.map +1 -1
  87. package/dist/src/lib/utils.js +262 -8
  88. package/dist/src/register.d.ts.map +1 -1
  89. package/dist/src/register.js +9 -1
  90. package/dist/src/vet.d.ts +80 -2
  91. package/dist/src/vet.d.ts.map +1 -1
  92. package/dist/src/vet.js +478 -8
  93. package/dist/src/vetNFTCollection.d.ts +18 -0
  94. package/dist/src/vetNFTCollection.d.ts.map +1 -0
  95. package/dist/src/vetNFTCollection.js +52 -0
  96. package/dist/src/vetToken.d.ts +19 -0
  97. package/dist/src/vetToken.d.ts.map +1 -0
  98. package/dist/src/vetToken.js +52 -0
  99. package/dist/test/resources/vet.d.ts +70 -0
  100. package/dist/test/resources/vet.d.ts.map +1 -0
  101. package/dist/test/resources/vet.js +125 -0
  102. package/dist/test/transactionBuilder/addressInitializationBuilder.d.ts +2 -0
  103. package/dist/test/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  104. package/dist/test/transactionBuilder/addressInitializationBuilder.js +141 -0
  105. package/dist/test/transactionBuilder/burnNftBuilder.d.ts +2 -0
  106. package/dist/test/transactionBuilder/burnNftBuilder.d.ts.map +1 -0
  107. package/dist/test/transactionBuilder/burnNftBuilder.js +154 -0
  108. package/dist/test/transactionBuilder/claimRewardsBuilder.d.ts +2 -0
  109. package/dist/test/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  110. package/dist/test/transactionBuilder/claimRewardsBuilder.js +246 -0
  111. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.d.ts +2 -0
  112. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.d.ts.map +1 -0
  113. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.js +173 -0
  114. package/dist/test/transactionBuilder/exitDelegationBuilder.d.ts +2 -0
  115. package/dist/test/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  116. package/dist/test/transactionBuilder/exitDelegationBuilder.js +154 -0
  117. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.d.ts +2 -0
  118. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +1 -0
  119. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.js +132 -0
  120. package/dist/test/transactionBuilder/nftTransactionBuilder.d.ts +2 -0
  121. package/dist/test/transactionBuilder/nftTransactionBuilder.d.ts.map +1 -0
  122. package/dist/test/transactionBuilder/nftTransactionBuilder.js +242 -0
  123. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.d.ts +2 -0
  124. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.d.ts.map +1 -0
  125. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.js +248 -0
  126. package/dist/test/transactionBuilder/stakingTransaction.d.ts +2 -0
  127. package/dist/test/transactionBuilder/stakingTransaction.d.ts.map +1 -0
  128. package/dist/test/transactionBuilder/stakingTransaction.js +250 -0
  129. package/dist/test/transactionBuilder/tokenTransactionBuilder.d.ts +2 -0
  130. package/dist/test/transactionBuilder/tokenTransactionBuilder.d.ts.map +1 -0
  131. package/dist/test/transactionBuilder/tokenTransactionBuilder.js +249 -0
  132. package/dist/test/transactionBuilder/transferBuilder.d.ts +2 -0
  133. package/dist/test/transactionBuilder/transferBuilder.d.ts.map +1 -0
  134. package/dist/test/transactionBuilder/transferBuilder.js +214 -0
  135. package/dist/test/unit/keyPair.d.ts +2 -0
  136. package/dist/test/unit/keyPair.d.ts.map +1 -0
  137. package/dist/test/unit/keyPair.js +181 -0
  138. package/dist/test/unit/stakingFlowE2E.d.ts +2 -0
  139. package/dist/test/unit/stakingFlowE2E.d.ts.map +1 -0
  140. package/dist/test/unit/stakingFlowE2E.js +229 -0
  141. package/dist/test/unit/utils.d.ts +2 -0
  142. package/dist/test/unit/utils.d.ts.map +1 -0
  143. package/dist/test/unit/utils.js +106 -0
  144. package/dist/test/unit/vet.d.ts +2 -0
  145. package/dist/test/unit/vet.d.ts.map +1 -0
  146. package/dist/test/unit/vet.js +251 -0
  147. package/dist/tsconfig.tsbuildinfo +1 -0
  148. package/package.json +16 -10
  149. package/.eslintignore +0 -5
  150. package/.mocharc.yml +0 -8
  151. package/CHANGELOG.md +0 -34
@@ -6,8 +6,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TransactionBuilderFactory = void 0;
7
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
8
  const transferBuilder_1 = require("./transactionBuilder/transferBuilder");
9
+ const addressInitializationBuilder_1 = require("./transactionBuilder/addressInitializationBuilder");
10
+ const flushTokenTransactionBuilder_1 = require("./transactionBuilder/flushTokenTransactionBuilder");
11
+ const exitDelegationBuilder_1 = require("./transactionBuilder/exitDelegationBuilder");
12
+ const burnNftBuilder_1 = require("./transactionBuilder/burnNftBuilder");
13
+ const claimRewardsBuilder_1 = require("./transactionBuilder/claimRewardsBuilder");
9
14
  const transaction_1 = require("./transaction/transaction");
10
15
  const utils_1 = __importDefault(require("./utils"));
16
+ const addressInitializationTransaction_1 = require("./transaction/addressInitializationTransaction");
17
+ const flushTokenTransaction_1 = require("./transaction/flushTokenTransaction");
18
+ const exitDelegation_1 = require("./transaction/exitDelegation");
19
+ const burnNftTransaction_1 = require("./transaction/burnNftTransaction");
20
+ const claimRewards_1 = require("./transaction/claimRewards");
21
+ const tokenTransactionBuilder_1 = require("./transactionBuilder/tokenTransactionBuilder");
22
+ const tokenTransaction_1 = require("./transaction/tokenTransaction");
23
+ const stakingBuilder_1 = require("./transactionBuilder/stakingBuilder");
24
+ const stakingTransaction_1 = require("./transaction/stakingTransaction");
25
+ const nftTransactionBuilder_1 = require("./transactionBuilder/nftTransactionBuilder");
26
+ const nftTransaction_1 = require("./transaction/nftTransaction");
27
+ const stakeClauseTransaction_1 = require("./transaction/stakeClauseTransaction");
28
+ const stakeClauseTxnBuilder_1 = require("./transactionBuilder/stakeClauseTxnBuilder");
29
+ const delegateTxnBuilder_1 = require("./transactionBuilder/delegateTxnBuilder");
30
+ const delegateClauseTransaction_1 = require("./transaction/delegateClauseTransaction");
11
31
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
12
32
  constructor(_coinConfig) {
13
33
  super(_coinConfig);
@@ -22,6 +42,46 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
22
42
  const transferTx = new transaction_1.Transaction(this._coinConfig);
23
43
  transferTx.fromDeserializedSignedTransaction(signedTx);
24
44
  return this.getTransferBuilder(transferTx);
45
+ case sdk_core_1.TransactionType.AddressInitialization:
46
+ const addressInitializationTx = new addressInitializationTransaction_1.AddressInitializationTransaction(this._coinConfig);
47
+ addressInitializationTx.fromDeserializedSignedTransaction(signedTx);
48
+ return this.getAddressInitializationBuilder(addressInitializationTx);
49
+ case sdk_core_1.TransactionType.FlushTokens:
50
+ const flushTokenTx = new flushTokenTransaction_1.FlushTokenTransaction(this._coinConfig);
51
+ flushTokenTx.fromDeserializedSignedTransaction(signedTx);
52
+ return this.getFlushTokenTransactionBuilder(flushTokenTx);
53
+ case sdk_core_1.TransactionType.SendToken:
54
+ const tokenTransferTx = new tokenTransaction_1.TokenTransaction(this._coinConfig);
55
+ tokenTransferTx.fromDeserializedSignedTransaction(signedTx);
56
+ return this.getTokenTransactionBuilder(tokenTransferTx);
57
+ case sdk_core_1.TransactionType.SendNFT:
58
+ const nftTransferTx = new nftTransaction_1.NFTTransaction(this._coinConfig);
59
+ nftTransferTx.fromDeserializedSignedTransaction(signedTx);
60
+ return this.getNFTTransactionBuilder(nftTransferTx);
61
+ case sdk_core_1.TransactionType.ContractCall:
62
+ const stakingTx = new stakingTransaction_1.StakingTransaction(this._coinConfig);
63
+ stakingTx.fromDeserializedSignedTransaction(signedTx);
64
+ return this.getStakingBuilder(stakingTx);
65
+ case sdk_core_1.TransactionType.StakingActivate:
66
+ const stakeClauseTx = new stakeClauseTransaction_1.StakeClauseTransaction(this._coinConfig);
67
+ stakeClauseTx.fromDeserializedSignedTransaction(signedTx);
68
+ return this.getStakingActivateBuilder(stakeClauseTx);
69
+ case sdk_core_1.TransactionType.StakingDelegate:
70
+ const delegateClauseTx = new delegateClauseTransaction_1.DelegateClauseTransaction(this._coinConfig);
71
+ delegateClauseTx.fromDeserializedSignedTransaction(signedTx);
72
+ return this.getStakingDelegateBuilder(delegateClauseTx);
73
+ case sdk_core_1.TransactionType.StakingUnlock:
74
+ const exitDelegationTx = new exitDelegation_1.ExitDelegationTransaction(this._coinConfig);
75
+ exitDelegationTx.fromDeserializedSignedTransaction(signedTx);
76
+ return this.getExitDelegationBuilder(exitDelegationTx);
77
+ case sdk_core_1.TransactionType.StakingWithdraw:
78
+ const burnNftTx = new burnNftTransaction_1.BurnNftTransaction(this._coinConfig);
79
+ burnNftTx.fromDeserializedSignedTransaction(signedTx);
80
+ return this.getBurnNftBuilder(burnNftTx);
81
+ case sdk_core_1.TransactionType.StakingClaim:
82
+ const claimRewardsTx = new claimRewards_1.ClaimRewardsTransaction(this._coinConfig);
83
+ claimRewardsTx.fromDeserializedSignedTransaction(signedTx);
84
+ return this.getClaimRewardsBuilder(claimRewardsTx);
25
85
  default:
26
86
  throw new sdk_core_1.InvalidTransactionError('Invalid transaction type');
27
87
  }
@@ -34,6 +94,60 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
34
94
  getTransferBuilder(tx) {
35
95
  return this.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
36
96
  }
97
+ getAddressInitializationBuilder(tx) {
98
+ return this.initializeBuilder(tx, new addressInitializationBuilder_1.AddressInitializationBuilder(this._coinConfig));
99
+ }
100
+ getFlushTokenTransactionBuilder(tx) {
101
+ return this.initializeBuilder(tx, new flushTokenTransactionBuilder_1.FlushTokenTransactionBuilder(this._coinConfig));
102
+ }
103
+ getTokenTransactionBuilder(tx) {
104
+ return this.initializeBuilder(tx, new tokenTransactionBuilder_1.TokenTransactionBuilder(this._coinConfig));
105
+ }
106
+ getStakingBuilder(tx) {
107
+ return this.initializeBuilder(tx, new stakingBuilder_1.StakingBuilder(this._coinConfig));
108
+ }
109
+ getStakingDelegateBuilder(tx) {
110
+ return this.initializeBuilder(tx, new delegateTxnBuilder_1.DelegateTxnBuilder(this._coinConfig));
111
+ }
112
+ getStakingActivateBuilder(tx) {
113
+ return this.initializeBuilder(tx, new stakeClauseTxnBuilder_1.StakeClauseTxnBuilder(this._coinConfig));
114
+ }
115
+ /**
116
+ * Gets an nft transaction builder.
117
+ *
118
+ * @param {NFTTransaction} tx - The nft transaction to use
119
+ * @returns {NFTTransactionBuilder} The nft transaction builder
120
+ */
121
+ getNFTTransactionBuilder(tx) {
122
+ return this.initializeBuilder(tx, new nftTransactionBuilder_1.NFTTransactionBuilder(this._coinConfig));
123
+ }
124
+ /**
125
+ * Gets an exit delegation transaction builder.
126
+ *
127
+ * @param {ExitDelegationTransaction} tx - The exit delegation transaction to use
128
+ * @returns {ExitDelegationBuilder} The exit delegation transaction builder
129
+ */
130
+ getExitDelegationBuilder(tx) {
131
+ return this.initializeBuilder(tx, new exitDelegationBuilder_1.ExitDelegationBuilder(this._coinConfig));
132
+ }
133
+ /**
134
+ * Gets a burn NFT transaction builder.
135
+ *
136
+ * @param {BurnNftTransaction} tx - The burn NFT transaction to use
137
+ * @returns {BurnNftBuilder} The burn NFT transaction builder
138
+ */
139
+ getBurnNftBuilder(tx) {
140
+ return this.initializeBuilder(tx, new burnNftBuilder_1.BurnNftBuilder(this._coinConfig));
141
+ }
142
+ /**
143
+ * Gets a claim rewards transaction builder.
144
+ *
145
+ * @param {ClaimRewardsTransaction} tx - The claim rewards transaction to use
146
+ * @returns {ClaimRewardsBuilder} The claim rewards transaction builder
147
+ */
148
+ getClaimRewardsBuilder(tx) {
149
+ return this.initializeBuilder(tx, new claimRewardsBuilder_1.ClaimRewardsBuilder(this._coinConfig));
150
+ }
37
151
  /** @inheritdoc */
38
152
  getWalletInitializationBuilder() {
39
153
  throw new Error('Method not implemented.');
@@ -56,4 +170,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
56
170
  }
57
171
  }
58
172
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtREFBK0c7QUFHL0csMEVBQXVFO0FBQ3ZFLDJEQUF3RDtBQUN4RCxvREFBNEI7QUFFNUIsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsV0FBbUI7UUFDdEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcseUJBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUQsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDYixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDckQsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN2RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0M7b0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFnQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsK0JBQStCLENBQUMsU0FBeUI7UUFDdkQsT0FBTyxlQUFLLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBbERELDhEQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFZldFRyYW5zYWN0aW9uIH0gZnJvbSAnQHZlY2hhaW4vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShzaWduZWRSYXdUeDogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2lnbmVkVHggPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKHNpZ25lZFJhd1R4KTtcbiAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFRyYW5zYWN0aW9uVHlwZUZyb21TaWduZWRUeG4oc2lnbmVkVHgpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgICAgY29uc3QgdHJhbnNmZXJUeCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICB0cmFuc2ZlclR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHRyYW5zZmVyVHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgZ2V0VHJhbnNhY3Rpb25UeXBlRnJvbVNpZ25lZFR4bihzaWduZWRUeG46IFZldFRyYW5zYWN0aW9uKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gdXRpbHMuZ2V0VHJhbnNhY3Rpb25UeXBlRnJvbUNsYXVzZShzaWduZWRUeG4uYm9keS5jbGF1c2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCwgYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG59XG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtREFBK0c7QUFHL0csMEVBQXVFO0FBQ3ZFLG9HQUFpRztBQUNqRyxvR0FBaUc7QUFDakcsc0ZBQW1GO0FBQ25GLHdFQUFxRTtBQUNyRSxrRkFBK0U7QUFDL0UsMkRBQXdEO0FBQ3hELG9EQUE0QjtBQUM1QixxR0FBa0c7QUFDbEcsK0VBQTRFO0FBQzVFLGlFQUF5RTtBQUN6RSx5RUFBc0U7QUFDdEUsNkRBQXFFO0FBQ3JFLDBGQUF1RjtBQUN2RixxRUFBa0U7QUFDbEUsd0VBQXFFO0FBQ3JFLHlFQUFzRTtBQUN0RSxzRkFBbUY7QUFDbkYsaUVBQThEO0FBQzlELGlGQUE4RTtBQUM5RSxzRkFBbUY7QUFDbkYsZ0ZBQTZFO0FBQzdFLHVGQUFvRjtBQUVwRixNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxXQUFtQjtRQUN0QixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyx5QkFBVyxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RCxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssMEJBQWUsQ0FBQyxJQUFJO29CQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNyRCxVQUFVLENBQUMsaUNBQWlDLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3ZELE9BQU8sSUFBSSxD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QUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBMUpELDhEQTBKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFZldFRyYW5zYWN0aW9uIH0gZnJvbSAnQHZlY2hhaW4vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9hZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmltcG9ydCB7IEZsdXNoVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9mbHVzaFRva2VuVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEV4aXREZWxlZ2F0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL2V4aXREZWxlZ2F0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCdXJuTmZ0QnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL2J1cm5OZnRCdWlsZGVyJztcbmltcG9ydCB7IENsYWltUmV3YXJkc0J1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9jbGFpbVJld2FyZHNCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vYWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRmx1c2hUb2tlblRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9mbHVzaFRva2VuVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRXhpdERlbGVnYXRpb25UcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vZXhpdERlbGVnYXRpb24nO1xuaW1wb3J0IHsgQnVybk5mdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9idXJuTmZ0VHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQ2xhaW1SZXdhcmRzVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL2NsYWltUmV3YXJkcyc7XG5pbXBvcnQgeyBUb2tlblRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL3Rva2VuVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRva2VuVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3Rva2VuVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9zdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBTdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3N0YWtpbmdUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBORlRUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9uZnRUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgTkZUVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL25mdFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFN0YWtlQ2xhdXNlVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3N0YWtlQ2xhdXNlVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2VDbGF1c2VUeG5CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvc3Rha2VDbGF1c2VUeG5CdWlsZGVyJztcbmltcG9ydCB7IERlbGVnYXRlVHhuQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL2RlbGVnYXRlVHhuQnVpbGRlcic7XG5pbXBvcnQgeyBEZWxlZ2F0ZUNsYXVzZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9kZWxlZ2F0ZUNsYXVzZVRyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHNpZ25lZFJhd1R4OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduZWRUeCA9IFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnbmVkUmF3VHgpO1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25UeXBlRnJvbVNpZ25lZFR4bihzaWduZWRUeCk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICBjb25zdCB0cmFuc2ZlclR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHRyYW5zZmVyVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHJhbnNmZXJUeCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbjpcbiAgICAgICAgICBjb25zdCBhZGRyZXNzSW5pdGlhbGl6YXRpb25UeCA9IG5ldyBBZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBhZGRyZXNzSW5pdGlhbGl6YXRpb25UeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHgpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIoYWRkcmVzc0luaXRpYWxpemF0aW9uVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5GbHVzaFRva2VuczpcbiAgICAgICAgICBjb25zdCBmbHVzaFRva2VuVHggPSBuZXcgRmx1c2hUb2tlblRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIGZsdXNoVG9rZW5UeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHgpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldEZsdXNoVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIoZmx1c2hUb2tlblR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuOlxuICAgICAgICAgIGNvbnN0IHRva2VuVHJhbnNmZXJUeCA9IG5ldyBUb2tlblRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHRva2VuVHJhbnNmZXJUeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHgpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRva2VuVHJhbnNhY3Rpb25CdWlsZGVyKHRva2VuVHJhbnNmZXJUeCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmRORlQ6XG4gICAgICAgICAgY29uc3QgbmZ0VHJhbnNmZXJUeCA9IG5ldyBORlRUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBuZnRUcmFuc2ZlclR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TkZUVHJhbnNhY3Rpb25CdWlsZGVyKG5mdFRyYW5zZmVyVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGw6XG4gICAgICAgICAgY29uc3Qgc3Rha2luZ1R4ID0gbmV3IFN0YWtpbmdUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBzdGFraW5nVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQnVpbGRlcihzdGFraW5nVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgY29uc3Qgc3Rha2VDbGF1c2VUeCA9IG5ldyBTdGFrZUNsYXVzZVRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHN0YWtlQ2xhdXNlVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHN0YWtlQ2xhdXNlVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVsZWdhdGU6XG4gICAgICAgICAgY29uc3QgZGVsZWdhdGVDbGF1c2VUeCA9IG5ldyBEZWxlZ2F0ZUNsYXVzZVRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIGRlbGVnYXRlQ2xhdXNlVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nRGVsZWdhdGVCdWlsZGVyKGRlbGVnYXRlQ2xhdXNlVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrOlxuICAgICAgICAgIGNvbnN0IGV4aXREZWxlZ2F0aW9uVHggPSBuZXcgRXhpdERlbGVnYXRpb25UcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBleGl0RGVsZWdhdGlvblR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhpdERlbGVnYXRpb25CdWlsZGVyKGV4aXREZWxlZ2F0aW9uVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXc6XG4gICAgICAgICAgY29uc3QgYnVybk5mdFR4ID0gbmV3IEJ1cm5OZnRUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBidXJuTmZ0VHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCdXJuTmZ0QnVpbGRlcihidXJuTmZ0VHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW06XG4gICAgICAgICAgY29uc3QgY2xhaW1SZXdhcmRzVHggPSBuZXcgQ2xhaW1SZXdhcmRzVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgY2xhaW1SZXdhcmRzVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFpbVJld2FyZHNCdWlsZGVyKGNsYWltUmV3YXJkc1R4KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4PzogQWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24pOiBBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0Rmx1c2hUb2tlblRyYW5zYWN0aW9uQnVpbGRlcih0eD86IEZsdXNoVG9rZW5UcmFuc2FjdGlvbik6IEZsdXNoVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgRmx1c2hUb2tlblRyYW5zYWN0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRUb2tlblRyYW5zYWN0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ0J1aWxkZXIodHg/OiBTdGFraW5nVHJhbnNhY3Rpb24pOiBTdGFraW5nQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nRGVsZWdhdGVCdWlsZGVyKHR4PzogRGVsZWdhdGVDbGF1c2VUcmFuc2FjdGlvbik6IERlbGVnYXRlVHhuQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBEZWxlZ2F0ZVR4bkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eD86IFN0YWtlQ2xhdXNlVHJhbnNhY3Rpb24pOiBTdGFrZUNsYXVzZVR4bkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2VDbGF1c2VUeG5CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIG5mdCB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge05GVFRyYW5zYWN0aW9ufSB0eCAtIFRoZSBuZnQgdHJhbnNhY3Rpb24gdG8gdXNlXG4gICAqIEByZXR1cm5zIHtORlRUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoZSBuZnQgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZ2V0TkZUVHJhbnNhY3Rpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBORlRUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgTkZUVHJhbnNhY3Rpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIGV4aXQgZGVsZWdhdGlvbiB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0V4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb259IHR4IC0gVGhlIGV4aXQgZGVsZWdhdGlvbiB0cmFuc2FjdGlvbiB0byB1c2VcbiAgICogQHJldHVybnMge0V4aXREZWxlZ2F0aW9uQnVpbGRlcn0gVGhlIGV4aXQgZGVsZWdhdGlvbiB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBnZXRFeGl0RGVsZWdhdGlvbkJ1aWxkZXIodHg/OiBFeGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uKTogRXhpdERlbGVnYXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEV4aXREZWxlZ2F0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGJ1cm4gTkZUIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7QnVybk5mdFRyYW5zYWN0aW9ufSB0eCAtIFRoZSBidXJuIE5GVCB0cmFuc2FjdGlvbiB0byB1c2VcbiAgICogQHJldHVybnMge0J1cm5OZnRCdWlsZGVyfSBUaGUgYnVybiBORlQgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZ2V0QnVybk5mdEJ1aWxkZXIodHg/OiBCdXJuTmZ0VHJhbnNhY3Rpb24pOiBCdXJuTmZ0QnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBCdXJuTmZ0QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGNsYWltIHJld2FyZHMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHBhcmFtIHtDbGFpbVJld2FyZHNUcmFuc2FjdGlvbn0gdHggLSBUaGUgY2xhaW0gcmV3YXJkcyB0cmFuc2FjdGlvbiB0byB1c2VcbiAgICogQHJldHVybnMge0NsYWltUmV3YXJkc0J1aWxkZXJ9IFRoZSBjbGFpbSByZXdhcmRzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGdldENsYWltUmV3YXJkc0J1aWxkZXIodHg/OiBDbGFpbVJld2FyZHNUcmFuc2FjdGlvbik6IENsYWltUmV3YXJkc0J1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgQ2xhaW1SZXdhcmRzQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uVHlwZUZyb21TaWduZWRUeG4oc2lnbmVkVHhuOiBWZXRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIHV0aWxzLmdldFRyYW5zYWN0aW9uVHlwZUZyb21DbGF1c2Uoc2lnbmVkVHhuLmJvZHkuY2xhdXNlcyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxufVxuIl19
@@ -5,4 +5,28 @@ export interface ExplainTransactionOptions {
5
5
  export interface VetParseTransactionOptions extends ParseTransactionOptions {
6
6
  txHex: string;
7
7
  }
8
+ export interface ClaimRewardsData {
9
+ tokenId: string;
10
+ delegationContractAddress?: string;
11
+ stargateNftAddress?: string;
12
+ claimBaseRewards?: boolean;
13
+ claimStakingRewards?: boolean;
14
+ }
15
+ export type RecoverOptions = {
16
+ userKey?: string;
17
+ backupKey?: string;
18
+ walletPassphrase?: string;
19
+ recoveryDestination: string;
20
+ isUnsignedSweep?: boolean;
21
+ bitgoKey?: string;
22
+ tokenContractAddress?: string;
23
+ };
24
+ export interface RecoveryTransaction {
25
+ id: string;
26
+ tx: string;
27
+ }
28
+ export interface UnsignedSweepRecoveryTransaction {
29
+ txHex: string;
30
+ coin: string;
31
+ }
8
32
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXRQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg6IHN0cmluZztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXRQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFpbVJld2FyZHNEYXRhIHtcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBkZWxlZ2F0aW9uQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBzdGFyZ2F0ZU5mdEFkZHJlc3M/OiBzdHJpbmc7XG4gIGNsYWltQmFzZVJld2FyZHM/OiBib29sZWFuO1xuICBjbGFpbVN0YWtpbmdSZXdhcmRzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUmVjb3Zlck9wdGlvbnMgPSB7XG4gIHVzZXJLZXk/OiBzdHJpbmc7XG4gIGJhY2t1cEtleT86IHN0cmluZztcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBpc1Vuc2lnbmVkU3dlZXA/OiBib29sZWFuOyAvLyBzcGVjaWZ5IGlmIHRoaXMgaXMgYW4gdW5zaWduZWQgcmVjb3ZlcnlcbiAgYml0Z29LZXk/OiBzdHJpbmc7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeVRyYW5zYWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdHg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnNpZ25lZFN3ZWVwUmVjb3ZlcnlUcmFuc2FjdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIGNvaW46IHN0cmluZztcbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
- import { BaseUtils, TransactionType } from '@bitgo-beta/sdk-core';
2
1
  import { Transaction, TransactionClause } from '@vechain/sdk-core';
2
+ import { BaseUtils, TransactionRecipient, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
4
  export declare class Utils implements BaseUtils {
4
5
  isValidAddress(address: string): boolean;
5
6
  isValidBlockId(hash: string): boolean;
@@ -10,6 +11,102 @@ export declare class Utils implements BaseUtils {
10
11
  isValidHex(value: string, length: number): boolean;
11
12
  deserializeTransaction(serializedTransaction: string): Transaction;
12
13
  getTransactionTypeFromClause(clauses: TransactionClause[]): TransactionType;
14
+ getTransferTokenData(toAddress: string, amountWei: string): string;
15
+ getTransferNFTData(from: string, to: string, tokenId: string): string;
16
+ /**
17
+ * Decodes staking transaction data to extract levelId and autorenew
18
+ *
19
+ * @param {string} data - The encoded transaction data
20
+ * @returns {object} - Object containing levelId and autorenew
21
+ */
22
+ decodeStakingData(data: string): {
23
+ levelId: number;
24
+ autorenew: boolean;
25
+ };
26
+ /**
27
+ * Decodes staking transaction data to extract levelId and autorenew
28
+ *
29
+ * @param {string} data - The encoded transaction data
30
+ * @returns {object} - Object containing levelId and autorenew
31
+ */
32
+ decodeStakeClauseData(data: string): {
33
+ levelId: number;
34
+ };
35
+ /**
36
+ * Decodes delegate transaction data to extract tokenId and delegateForever
37
+ *
38
+ * @param {string} data - The encoded transaction data
39
+ * @returns {object} - Object containing tokenId and delegateForever
40
+ */
41
+ decodeDelegateClauseData(data: string): {
42
+ tokenId: number;
43
+ delegateForever: boolean;
44
+ };
45
+ decodeTransferTokenData(data: string): TransactionRecipient;
46
+ decodeTransferNFTData(data: string): {
47
+ recipients: TransactionRecipient[];
48
+ sender: string;
49
+ tokenId: string;
50
+ };
51
+ /**
52
+ * Decodes claim rewards transaction data to extract tokenId
53
+ *
54
+ * @param {string} data - The encoded claim rewards method call data
55
+ * @returns {string} - The tokenId as a string
56
+ */
57
+ decodeClaimRewardsData(data: string): string;
58
+ /**
59
+ * Decodes exit delegation transaction data to extract tokenId
60
+ *
61
+ * @param {string} data - The encoded exit delegation method call data
62
+ * @returns {string} - The tokenId as a string
63
+ */
64
+ decodeExitDelegationData(data: string): string;
65
+ /**
66
+ * Decodes burn NFT transaction data to extract tokenId
67
+ *
68
+ * @param {string} data - The encoded burn NFT method call data
69
+ * @returns {string} - The tokenId as a string
70
+ */
71
+ decodeBurnNftData(data: string): string;
72
+ /**
73
+ * Get the network-appropriate delegation contract address
74
+ * @param {CoinConfig} coinConfig - The coin configuration object
75
+ * @returns {string} The delegation contract address for the network
76
+ */
77
+ getDefaultDelegationAddress(coinConfig: Readonly<CoinConfig>): string;
78
+ /**
79
+ * Get the network-appropriate staking contract address
80
+ * @param {CoinConfig} coinConfig - The coin configuration object
81
+ * @returns {string} The staking contract address for the network
82
+ */
83
+ getDefaultStakingAddress(coinConfig: Readonly<CoinConfig>): string;
84
+ /**
85
+ * Check if an address is a valid delegation contract address for any network
86
+ * @param {string} address - The address to check
87
+ * @returns {boolean} True if the address is a delegation contract address
88
+ */
89
+ isDelegationContractAddress(address: string): boolean;
90
+ /**
91
+ * Check if an address is a valid NFT contract address for any network
92
+ * @param {string} address - The address to check
93
+ * @returns {boolean} True if the address is an NFT contract address
94
+ */
95
+ isNftContractAddress(address: string): boolean;
96
+ /**
97
+ * Validate that a contract address matches the expected NFT/staking contract for the network
98
+ * @param {string} address - The contract address to validate
99
+ * @param {CoinConfig} coinConfig - The coin configuration object
100
+ * @throws {Error} If the address doesn't match the expected NFT contract address
101
+ */
102
+ validateStakingContractAddress(address: string, coinConfig: Readonly<CoinConfig>): void;
103
+ /**
104
+ * Validate that a contract address matches the expected delegation contract for the network
105
+ * @param {string} address - The contract address to validate
106
+ * @param {CoinConfig} coinConfig - The coin configuration object
107
+ * @throws {Error} If the address doesn't match the expected delegation contract address
108
+ */
109
+ validateDelegationContractAddress(address: string, coinConfig: Readonly<CoinConfig>): void;
13
110
  }
14
111
  declare const utils: Utils;
15
112
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAW,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,qBAAa,KAAM,YAAW,SAAS;IACrC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAStC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,GAAG,WAAW;IAalE,4BAA4B,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,eAAe;CAO5E;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,EAAW,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA0BxF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,qBAAa,KAAM,YAAW,SAAS;IACrC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAStC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,GAAG,WAAW;IAalE,4BAA4B,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,eAAe;IA+B3E,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAWlE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAWrE;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAgBxE;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAexD;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE;IAgBrF,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;IAY3D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG;QACnC,UAAU,EAAE,oBAAoB,EAAE,CAAC;QACnC,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB;IAmBD;;;;;OAKG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAgB5C;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAc9C;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAcvC;;;;OAIG;IACH,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM;IAKrE;;;;OAIG;IACH,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM;IAKlE;;;;OAIG;IACH,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQrD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAO9C;;;;;OAKG;IACH,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI;IASvF;;;;;OAKG;IACH,iCAAiC,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI;CAQ3F;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}