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

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
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BurnNftTransaction = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const sdk_core_2 = require("@vechain/sdk-core");
9
+ const transaction_1 = require("./transaction");
10
+ const constants_1 = require("../constants");
11
+ const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
12
+ const ethereumjs_util_1 = require("ethereumjs-util");
13
+ const utils_1 = __importDefault(require("../utils"));
14
+ class BurnNftTransaction extends transaction_1.Transaction {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this._type = sdk_core_1.TransactionType.StakingWithdraw;
18
+ }
19
+ get tokenId() {
20
+ return this._tokenId;
21
+ }
22
+ set tokenId(id) {
23
+ this._tokenId = id;
24
+ }
25
+ /** @inheritdoc */
26
+ async build() {
27
+ this.buildClauses();
28
+ await this.buildRawTransaction();
29
+ this.generateTxnIdAndSetSender();
30
+ this.loadInputsAndOutputs();
31
+ }
32
+ /** @inheritdoc */
33
+ buildClauses() {
34
+ if (!this._contract || !this._tokenId) {
35
+ throw new sdk_core_1.InvalidTransactionError('Missing required burn NFT parameters');
36
+ }
37
+ utils_1.default.validateStakingContractAddress(this._contract, this._coinConfig);
38
+ this._clauses = [
39
+ {
40
+ to: this._contract,
41
+ value: '0x0',
42
+ data: this._transactionData || this.getBurnNftData(),
43
+ },
44
+ ];
45
+ this._recipients = [
46
+ {
47
+ address: this._contract,
48
+ amount: '0',
49
+ },
50
+ ];
51
+ }
52
+ /**
53
+ * Generates the transaction data for burning NFT by encoding the burn method call.
54
+ *
55
+ * @private
56
+ * @returns {string} The encoded transaction data as a hex string
57
+ */
58
+ getBurnNftData() {
59
+ const methodName = 'unstake';
60
+ const types = ['uint256'];
61
+ const params = [this._tokenId];
62
+ const method = ethereumjs_abi_1.default.methodID(methodName, types);
63
+ const args = ethereumjs_abi_1.default.rawEncode(types, params);
64
+ return (0, ethereumjs_util_1.addHexPrefix)(Buffer.concat([method, args]).toString('hex'));
65
+ }
66
+ /** @inheritdoc */
67
+ toJson() {
68
+ const json = {
69
+ id: this.id,
70
+ chainTag: this.chainTag,
71
+ blockRef: this.blockRef,
72
+ expiration: this.expiration,
73
+ gasPriceCoef: this.gasPriceCoef,
74
+ gas: this.gas,
75
+ dependsOn: this.dependsOn,
76
+ nonce: this.nonce,
77
+ data: this.transactionData || this.getBurnNftData(),
78
+ value: '0',
79
+ sender: this.sender,
80
+ to: this.contract,
81
+ };
82
+ return json;
83
+ }
84
+ /** @inheritdoc */
85
+ fromDeserializedSignedTransaction(signedTx) {
86
+ try {
87
+ if (!signedTx || !signedTx.body) {
88
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: missing transaction body');
89
+ }
90
+ // Store the raw transaction
91
+ this.rawTransaction = signedTx;
92
+ // Set transaction body properties
93
+ const body = signedTx.body;
94
+ this.chainTag = typeof body.chainTag === 'number' ? body.chainTag : 0;
95
+ this.blockRef = body.blockRef || '0x0';
96
+ this.expiration = typeof body.expiration === 'number' ? body.expiration : 64;
97
+ this.clauses = body.clauses || [];
98
+ this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
99
+ this.gas = typeof body.gas === 'number' ? body.gas : Number(body.gas) || 0;
100
+ this.dependsOn = body.dependsOn || null;
101
+ this.nonce = String(body.nonce);
102
+ // Set data from clauses
103
+ this.contract = body.clauses[0]?.to || '0x0';
104
+ this.transactionData = body.clauses[0]?.data || '0x0';
105
+ this.type = sdk_core_1.TransactionType.StakingWithdraw;
106
+ // Extract tokenId from transaction data
107
+ if (this.transactionData.startsWith(constants_1.BURN_NFT_METHOD_ID)) {
108
+ this.tokenId = utils_1.default.decodeBurnNftData(this.transactionData);
109
+ }
110
+ // Set sender address
111
+ if (signedTx.signature && signedTx.origin) {
112
+ this.sender = signedTx.origin.toString().toLowerCase();
113
+ }
114
+ this.loadInputsAndOutputs();
115
+ // Set signatures if present
116
+ if (signedTx.signature) {
117
+ // First signature is sender's signature
118
+ this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
119
+ // If there's additional signature data, it's the fee payer's signature
120
+ if (signedTx.signature.length > sdk_core_2.Secp256k1.SIGNATURE_LENGTH) {
121
+ this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
122
+ }
123
+ }
124
+ }
125
+ catch (e) {
126
+ throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
127
+ }
128
+ }
129
+ }
130
+ exports.BurnNftTransaction = BurnNftTransaction;
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVybk5mdFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbi9idXJuTmZ0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQWdGO0FBRWhGLGdEQUE2RTtBQUM3RSwrQ0FBNEM7QUFFNUMsNENBQWtEO0FBQ2xELG9FQUF5QztBQUN6QyxxREFBK0M7QUFDL0MscURBQTZCO0FBRTdCLE1BQWEsa0JBQW1CLFNBQVEseUJBQVc7SUFHakQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksa0NBQXVCLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsZUFBSyxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxD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QjtZQUM1QixJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkIsd0NBQXdDO2dCQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLG9CQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUU1Rix1RUFBdUU7Z0JBQ3ZFLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsb0JBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUMzRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxvQkFBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDN0YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZJRCxnREF1SUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVmV0VHJhbnNhY3Rpb24sIFNlY3AyNTZrMSB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBWZXRUcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgeyBCVVJOX05GVF9NRVRIT0RfSUQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCB7IGFkZEhleFByZWZpeCB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQnVybk5mdFRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF90b2tlbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3O1xuICB9XG5cbiAgZ2V0IHRva2VuSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW5JZDtcbiAgfVxuXG4gIHNldCB0b2tlbklkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90b2tlbklkID0gaWQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5idWlsZENsYXVzZXMoKTtcbiAgICBhd2FpdCB0aGlzLmJ1aWxkUmF3VHJhbnNhY3Rpb24oKTtcbiAgICB0aGlzLmdlbmVyYXRlVHhuSWRBbmRTZXRTZW5kZXIoKTtcbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYnVpbGRDbGF1c2VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29udHJhY3QgfHwgIXRoaXMuX3Rva2VuSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyByZXF1aXJlZCBidXJuIE5GVCBwYXJhbWV0ZXJzJyk7XG4gICAgfVxuXG4gICAgdXRpbHMudmFsaWRhdGVTdGFraW5nQ29udHJhY3RBZGRyZXNzKHRoaXMuX2NvbnRyYWN0LCB0aGlzLl9jb2luQ29uZmlnKTtcblxuICAgIHRoaXMuX2NsYXVzZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHRvOiB0aGlzLl9jb250cmFjdCxcbiAgICAgICAgdmFsdWU6ICcweDAnLFxuICAgICAgICBkYXRhOiB0aGlzLl90cmFuc2FjdGlvbkRhdGEgfHwgdGhpcy5nZXRCdXJuTmZ0RGF0YSgpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5fY29udHJhY3QsXG4gICAgICAgIGFtb3VudDogJzAnLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgdHJhbnNhY3Rpb24gZGF0YSBmb3IgYnVybmluZyBORlQgYnkgZW5jb2RpbmcgdGhlIGJ1cm4gbWV0aG9kIGNhbGwuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHRyYW5zYWN0aW9uIGRhdGEgYXMgYSBoZXggc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGdldEJ1cm5OZnREYXRhKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9ICd1bnN0YWtlJztcbiAgICBjb25zdCB0eXBlcyA9IFsndWludDI1NiddO1xuICAgIGNvbnN0IHBhcmFtcyA9IFt0aGlzLl90b2tlbklkXTtcblxuICAgIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKG1ldGhvZE5hbWUsIHR5cGVzKTtcbiAgICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKHR5cGVzLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBWZXRUcmFuc2FjdGlvbkRhdGEge1xuICAgIGNvbnN0IGpzb246IFZldFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgY2hhaW5UYWc6IHRoaXMuY2hhaW5UYWcsXG4gICAgICBibG9ja1JlZjogdGhpcy5ibG9ja1JlZixcbiAgICAgIGV4cGlyYXRpb246IHRoaXMuZXhwaXJhdGlvbixcbiAgICAgIGdhc1ByaWNlQ29lZjogdGhpcy5nYXNQcmljZUNvZWYsXG4gICAgICBnYXM6IHRoaXMuZ2FzLFxuICAgICAgZGVwZW5kc09uOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgIG5vbmNlOiB0aGlzLm5vbmNlLFxuICAgICAgZGF0YTogdGhpcy50cmFuc2FjdGlvbkRhdGEgfHwgdGhpcy5nZXRCdXJuTmZ0RGF0YSgpLFxuICAgICAgdmFsdWU6ICcwJyxcbiAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICB0bzogdGhpcy5jb250cmFjdCxcbiAgICB9O1xuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeDogVmV0VHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFzaWduZWRUeCB8fCAhc2lnbmVkVHguYm9keSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgdHJhbnNhY3Rpb24gYm9keScpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdG9yZSB0aGUgcmF3IHRyYW5zYWN0aW9uXG4gICAgICB0aGlzLnJhd1RyYW5zYWN0aW9uID0gc2lnbmVkVHg7XG5cbiAgICAgIC8vIFNldCB0cmFuc2FjdGlvbiBib2R5IHByb3BlcnRpZXNcbiAgICAgIGNvbnN0IGJvZHkgPSBzaWduZWRUeC5ib2R5O1xuICAgICAgdGhpcy5jaGFpblRhZyA9IHR5cGVvZiBib2R5LmNoYWluVGFnID09PSAnbnVtYmVyJyA/IGJvZHkuY2hhaW5UYWcgOiAwO1xuICAgICAgdGhpcy5ibG9ja1JlZiA9IGJvZHkuYmxvY2tSZWYgfHwgJzB4MCc7XG4gICAgICB0aGlzLmV4cGlyYXRpb24gPSB0eXBlb2YgYm9keS5leHBpcmF0aW9uID09PSAnbnVtYmVyJyA/IGJvZHkuZXhwaXJhdGlvbiA6IDY0O1xuICAgICAgdGhpcy5jbGF1c2VzID0gYm9keS5jbGF1c2VzIHx8IFtdO1xuICAgICAgdGhpcy5nYXNQcmljZUNvZWYgPSB0eXBlb2YgYm9keS5nYXNQcmljZUNvZWYgPT09ICdudW1iZXInID8gYm9keS5nYXNQcmljZUNvZWYgOiAxMjg7XG4gICAgICB0aGlzLmdhcyA9IHR5cGVvZiBib2R5LmdhcyA9PT0gJ251bWJlcicgPyBib2R5LmdhcyA6IE51bWJlcihib2R5LmdhcykgfHwgMDtcbiAgICAgIHRoaXMuZGVwZW5kc09uID0gYm9keS5kZXBlbmRzT24gfHwgbnVsbDtcbiAgICAgIHRoaXMubm9uY2UgPSBTdHJpbmcoYm9keS5ub25jZSk7XG5cbiAgICAgIC8vIFNldCBkYXRhIGZyb20gY2xhdXNlc1xuICAgICAgdGhpcy5jb250cmFjdCA9IGJvZHkuY2xhdXNlc1swXT8udG8gfHwgJzB4MCc7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRGF0YSA9IGJvZHkuY2xhdXNlc1swXT8uZGF0YSB8fCAnMHgwJztcbiAgICAgIHRoaXMudHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXc7XG5cbiAgICAgIC8vIEV4dHJhY3QgdG9rZW5JZCBmcm9tIHRyYW5zYWN0aW9uIGRhdGFcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uRGF0YS5zdGFydHNXaXRoKEJVUk5fTkZUX01FVEhPRF9JRCkpIHtcbiAgICAgICAgdGhpcy50b2tlbklkID0gdXRpbHMuZGVjb2RlQnVybk5mdERhdGEodGhpcy50cmFuc2FjdGlvbkRhdGEpO1xuICAgICAgfVxuICAgICAgLy8gU2V0IHNlbmRlciBhZGRyZXNzXG4gICAgICBpZiAoc2lnbmVkVHguc2lnbmF0dXJlICYmIHNpZ25lZFR4Lm9yaWdpbikge1xuICAgICAgICB0aGlzLnNlbmRlciA9IHNpZ25lZFR4Lm9yaWdpbi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcblxuICAgICAgLy8gU2V0IHNpZ25hdHVyZXMgaWYgcHJlc2VudFxuICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZSkge1xuICAgICAgICAvLyBGaXJzdCBzaWduYXR1cmUgaXMgc2VuZGVyJ3Mgc2lnbmF0dXJlXG4gICAgICAgIHRoaXMuc2VuZGVyU2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2lnbmVkVHguc2lnbmF0dXJlLnNsaWNlKDAsIFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSk7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUncyBhZGRpdGlvbmFsIHNpZ25hdHVyZSBkYXRhLCBpdCdzIHRoZSBmZWUgcGF5ZXIncyBzaWduYXR1cmVcbiAgICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZS5sZW5ndGggPiBTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkge1xuICAgICAgICAgIHRoaXMuZmVlUGF5ZXJTaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzaWduZWRUeC5zaWduYXR1cmUuc2xpY2UoU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHRyYW5zYWN0aW9uOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { TransactionRecipient } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { Transaction as VetTransaction, TransactionClause } from '@vechain/sdk-core';
4
+ import { Transaction } from './transaction';
5
+ import { VetTransactionData } from '../iface';
6
+ import { ClaimRewardsData } from '../types';
7
+ export declare class ClaimRewardsTransaction extends Transaction {
8
+ private _claimRewardsData;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ get claimRewardsData(): ClaimRewardsData;
11
+ set claimRewardsData(data: ClaimRewardsData);
12
+ /** @inheritdoc */
13
+ build(): Promise<void>;
14
+ get clauses(): TransactionClause[];
15
+ set clauses(clauses: TransactionClause[]);
16
+ get recipients(): TransactionRecipient[];
17
+ set recipients(recipients: TransactionRecipient[]);
18
+ /** @inheritdoc */
19
+ buildClauses(): void;
20
+ /**
21
+ * Build clause for claiming base rewards (claimVetGeneratedVtho)
22
+ */
23
+ private buildClaimBaseRewardsClause;
24
+ /**
25
+ * Build clause for claiming staking rewards (claimRewards)
26
+ */
27
+ private buildClaimStakingRewardsClause;
28
+ /**
29
+ * Encode the claim rewards method call data
30
+ */
31
+ private encodeClaimRewardsMethod;
32
+ /** @inheritdoc */
33
+ toJson(): VetTransactionData;
34
+ /** @inheritdoc */
35
+ fromDeserializedSignedTransaction(signedTx: VetTransaction): void;
36
+ /**
37
+ * Parse claim rewards data from transaction clauses
38
+ */
39
+ private parseClaimRewardsDataFromClauses;
40
+ }
41
+ //# sourceMappingURL=claimRewards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimRewards.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/claimRewards.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4C,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,IAAI,cAAc,EAAa,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,OAAO,CAAC,iBAAiB,CAAmB;gBAEhC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAE1C;IAED,kBAAkB;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAEjC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAEvC;IAED,IAAI,UAAU,IAAI,oBAAoB,EAAE,CAEvC;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,oBAAoB,EAAE,EAEhD;IAED,kBAAkB;IAClB,YAAY,IAAI,IAAI;IA6BpB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAUnC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC,kBAAkB;IAClB,MAAM,IAAI,kBAAkB;IAkB5B,kBAAkB;IAClB,iCAAiC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IA+CjE;;OAEG;IACH,OAAO,CAAC,gCAAgC;CAmDzC"}
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ClaimRewardsTransaction = void 0;
7
+ const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
8
+ const ethereumjs_util_1 = require("ethereumjs-util");
9
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
+ const sdk_core_2 = require("@vechain/sdk-core");
11
+ const transaction_1 = require("./transaction");
12
+ const constants_1 = require("../constants");
13
+ const utils_1 = __importDefault(require("../utils"));
14
+ class ClaimRewardsTransaction extends transaction_1.Transaction {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this._type = sdk_core_1.TransactionType.StakingClaim;
18
+ }
19
+ get claimRewardsData() {
20
+ return this._claimRewardsData;
21
+ }
22
+ set claimRewardsData(data) {
23
+ this._claimRewardsData = data;
24
+ }
25
+ /** @inheritdoc */
26
+ async build() {
27
+ this.buildClauses();
28
+ await this.buildRawTransaction();
29
+ this.generateTxnIdAndSetSender();
30
+ this.loadInputsAndOutputs();
31
+ }
32
+ get clauses() {
33
+ return this._clauses;
34
+ }
35
+ set clauses(clauses) {
36
+ this._clauses = clauses;
37
+ }
38
+ get recipients() {
39
+ return this._recipients;
40
+ }
41
+ set recipients(recipients) {
42
+ this._recipients = recipients;
43
+ }
44
+ /** @inheritdoc */
45
+ buildClauses() {
46
+ if (!this._claimRewardsData) {
47
+ throw new sdk_core_1.InvalidTransactionError('Missing claim rewards data');
48
+ }
49
+ const clauses = [];
50
+ // Add clause for claiming base rewards if requested
51
+ const shouldClaimBaseRewards = this.claimRewardsData.claimBaseRewards !== false; // Default true
52
+ if (shouldClaimBaseRewards) {
53
+ clauses.push(this.buildClaimBaseRewardsClause());
54
+ }
55
+ // Add clause for claiming staking rewards if requested
56
+ const shouldClaimStakingRewards = this.claimRewardsData.claimStakingRewards !== false; // Default true
57
+ if (shouldClaimStakingRewards) {
58
+ clauses.push(this.buildClaimStakingRewardsClause());
59
+ }
60
+ if (clauses.length === 0) {
61
+ throw new sdk_core_1.InvalidTransactionError('At least one type of rewards must be claimed');
62
+ }
63
+ this.clauses = clauses;
64
+ // Set recipients as empty since claim rewards doesn't send value
65
+ this.recipients = [];
66
+ }
67
+ /**
68
+ * Build clause for claiming base rewards (claimVetGeneratedVtho)
69
+ */
70
+ buildClaimBaseRewardsClause() {
71
+ const methodData = this.encodeClaimRewardsMethod(constants_1.CLAIM_BASE_REWARDS_METHOD_ID, this._claimRewardsData.tokenId);
72
+ return {
73
+ to: utils_1.default.getDefaultStakingAddress(this._coinConfig),
74
+ value: '0x0',
75
+ data: methodData,
76
+ };
77
+ }
78
+ /**
79
+ * Build clause for claiming staking rewards (claimRewards)
80
+ */
81
+ buildClaimStakingRewardsClause() {
82
+ const methodData = this.encodeClaimRewardsMethod(constants_1.CLAIM_STAKING_REWARDS_METHOD_ID, this._claimRewardsData.tokenId);
83
+ return {
84
+ to: utils_1.default.getDefaultDelegationAddress(this._coinConfig),
85
+ value: '0x0',
86
+ data: methodData,
87
+ };
88
+ }
89
+ /**
90
+ * Encode the claim rewards method call data
91
+ */
92
+ encodeClaimRewardsMethod(methodId, tokenId) {
93
+ const methodName = methodId === constants_1.CLAIM_BASE_REWARDS_METHOD_ID ? 'claimVetGeneratedVtho' : 'claimRewards';
94
+ const types = ['uint256'];
95
+ const params = [tokenId];
96
+ const method = ethereumjs_abi_1.default.methodID(methodName, types);
97
+ const args = ethereumjs_abi_1.default.rawEncode(types, params);
98
+ return (0, ethereumjs_util_1.addHexPrefix)(Buffer.concat([method, args]).toString('hex'));
99
+ }
100
+ /** @inheritdoc */
101
+ toJson() {
102
+ const json = {
103
+ id: this.id,
104
+ chainTag: this.chainTag,
105
+ blockRef: this.blockRef,
106
+ expiration: this.expiration,
107
+ gasPriceCoef: this.gasPriceCoef,
108
+ gas: this.gas,
109
+ dependsOn: this.dependsOn,
110
+ nonce: this.nonce,
111
+ sender: this.sender,
112
+ feePayer: this.feePayerAddress,
113
+ recipients: this.recipients,
114
+ claimRewardsData: this._claimRewardsData,
115
+ };
116
+ return json;
117
+ }
118
+ /** @inheritdoc */
119
+ fromDeserializedSignedTransaction(signedTx) {
120
+ try {
121
+ if (!signedTx || !signedTx.body) {
122
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: missing transaction body');
123
+ }
124
+ // Store the raw transaction
125
+ this.rawTransaction = signedTx;
126
+ // Set transaction body properties
127
+ const body = signedTx.body;
128
+ this.chainTag = typeof body.chainTag === 'number' ? body.chainTag : 0;
129
+ this.blockRef = body.blockRef || '0x0';
130
+ this.expiration = typeof body.expiration === 'number' ? body.expiration : 64;
131
+ this.clauses = body.clauses || [];
132
+ this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
133
+ this.gas = typeof body.gas === 'number' ? body.gas : Number(body.gas) || 0;
134
+ this.dependsOn = body.dependsOn || null;
135
+ this.nonce = String(body.nonce);
136
+ // Parse claim rewards data from clauses
137
+ this.parseClaimRewardsDataFromClauses(body.clauses);
138
+ // Set recipients as empty for claim rewards
139
+ this.recipients = [];
140
+ this.loadInputsAndOutputs();
141
+ // Set sender address
142
+ if (signedTx.signature && signedTx.origin) {
143
+ this.sender = signedTx.origin.toString().toLowerCase();
144
+ }
145
+ // Set signatures if present
146
+ if (signedTx.signature) {
147
+ // First signature is sender's signature
148
+ this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
149
+ // If there's additional signature data, it's the fee payer's signature
150
+ if (signedTx.signature.length > sdk_core_2.Secp256k1.SIGNATURE_LENGTH) {
151
+ this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
152
+ }
153
+ }
154
+ }
155
+ catch (e) {
156
+ throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
157
+ }
158
+ }
159
+ /**
160
+ * Parse claim rewards data from transaction clauses
161
+ */
162
+ parseClaimRewardsDataFromClauses(clauses) {
163
+ if (!clauses || clauses.length === 0) {
164
+ throw new sdk_core_1.InvalidTransactionError('No clauses found in transaction');
165
+ }
166
+ let claimBaseRewards = false;
167
+ let claimStakingRewards = false;
168
+ let tokenId = '';
169
+ let delegationContractAddress = '';
170
+ let stargateNftAddress = '';
171
+ for (const clause of clauses) {
172
+ if (clause.data) {
173
+ if (clause.data.startsWith(constants_1.CLAIM_BASE_REWARDS_METHOD_ID)) {
174
+ // claimVetGeneratedVtho should go to STARGATE_NFT_ADDRESS
175
+ claimBaseRewards = true;
176
+ if (!tokenId) {
177
+ tokenId = utils_1.default.decodeClaimRewardsData(clause.data);
178
+ }
179
+ if (!stargateNftAddress && clause.to) {
180
+ stargateNftAddress = clause.to;
181
+ }
182
+ }
183
+ else if (clause.data.startsWith(constants_1.CLAIM_STAKING_REWARDS_METHOD_ID)) {
184
+ // claimRewards should go to STARGATE_DELEGATION_ADDRESS
185
+ claimStakingRewards = true;
186
+ if (!tokenId) {
187
+ tokenId = utils_1.default.decodeClaimRewardsData(clause.data);
188
+ }
189
+ if (!delegationContractAddress && clause.to) {
190
+ delegationContractAddress = clause.to;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ if (!claimBaseRewards && !claimStakingRewards) {
196
+ throw new sdk_core_1.InvalidTransactionError('Transaction does not contain claim rewards clauses');
197
+ }
198
+ this._claimRewardsData = {
199
+ tokenId,
200
+ delegationContractAddress: delegationContractAddress && !utils_1.default.isDelegationContractAddress(delegationContractAddress)
201
+ ? delegationContractAddress
202
+ : undefined,
203
+ stargateNftAddress: stargateNftAddress && !utils_1.default.isNftContractAddress(stargateNftAddress) ? stargateNftAddress : undefined,
204
+ claimBaseRewards,
205
+ claimStakingRewards,
206
+ };
207
+ }
208
+ }
209
+ exports.ClaimRewardsTransaction = ClaimRewardsTransaction;
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1SZXdhcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbi9jbGFpbVJld2FyZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0VBQXlDO0FBQ3pDLHFEQUErQztBQUMvQyxtREFBc0c7QUFFdEcsZ0RBQWdHO0FBQ2hHLCtDQUE0QztBQUc1Qyw0Q0FBNkY7QUFDN0YscURBQTZCO0FBRTdCLE1BQWEsdUJBQXdCLFNBQVEseUJBQVc7SUFHdEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLFlBQVksQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksZ0JBQWdCLENBQUMsSUFBc0I7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBNEI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsVUFBa0M7UUFD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QyxDQUFDLENBQUMsU0FBUztZQUN4RyxnQkFBZ0I7WUFDaEIsbUJBQW1CO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2T0QsMERBdU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCB7IGFkZEhleFByZWZpeCB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFZldFRyYW5zYWN0aW9uLCBTZWNwMjU2azEsIFRyYW5zYWN0aW9uQ2xhdXNlIH0gZnJvbSAnQHZlY2hhaW4vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFZldFRyYW5zYWN0aW9uRGF0YSB9IGZyb20gJy4uL2lmYWNlJztcbmltcG9ydCB7IENsYWltUmV3YXJkc0RhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBDTEFJTV9CQVNFX1JFV0FSRFNfTUVUSE9EX0lELCBDTEFJTV9TVEFLSU5HX1JFV0FSRFNfTUVUSE9EX0lEIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDbGFpbVJld2FyZHNUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfY2xhaW1SZXdhcmRzRGF0YTogQ2xhaW1SZXdhcmRzRGF0YTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW07XG4gIH1cblxuICBnZXQgY2xhaW1SZXdhcmRzRGF0YSgpOiBDbGFpbVJld2FyZHNEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fY2xhaW1SZXdhcmRzRGF0YTtcbiAgfVxuXG4gIHNldCBjbGFpbVJld2FyZHNEYXRhKGRhdGE6IENsYWltUmV3YXJkc0RhdGEpIHtcbiAgICB0aGlzLl9jbGFpbVJld2FyZHNEYXRhID0gZGF0YTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmJ1aWxkQ2xhdXNlcygpO1xuICAgIGF3YWl0IHRoaXMuYnVpbGRSYXdUcmFuc2FjdGlvbigpO1xuICAgIHRoaXMuZ2VuZXJhdGVUeG5JZEFuZFNldFNlbmRlcigpO1xuICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgfVxuXG4gIGdldCBjbGF1c2VzKCk6IFRyYW5zYWN0aW9uQ2xhdXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9jbGF1c2VzO1xuICB9XG5cbiAgc2V0IGNsYXVzZXMoY2xhdXNlczogVHJhbnNhY3Rpb25DbGF1c2VbXSkge1xuICAgIHRoaXMuX2NsYXVzZXMgPSBjbGF1c2VzO1xuICB9XG5cbiAgZ2V0IHJlY2lwaWVudHMoKTogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlY2lwaWVudHM7XG4gIH1cblxuICBzZXQgcmVjaXBpZW50cyhyZWNpcGllbnRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdKSB7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IHJlY2lwaWVudHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYnVpbGRDbGF1c2VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY2xhaW1SZXdhcmRzRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGNsYWltIHJld2FyZHMgZGF0YScpO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXVzZXM6IFRyYW5zYWN0aW9uQ2xhdXNlW10gPSBbXTtcblxuICAgIC8vIEFkZCBjbGF1c2UgZm9yIGNsYWltaW5nIGJhc2UgcmV3YXJkcyBpZiByZXF1ZXN0ZWRcbiAgICBjb25zdCBzaG91bGRDbGFpbUJhc2VSZXdhcmRzID0gdGhpcy5jbGFpbVJld2FyZHNEYXRhLmNsYWltQmFzZVJld2FyZHMgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICBpZiAoc2hvdWxkQ2xhaW1CYXNlUmV3YXJkcykge1xuICAgICAgY2xhdXNlcy5wdXNoKHRoaXMuYnVpbGRDbGFpbUJhc2VSZXdhcmRzQ2xhdXNlKCkpO1xuICAgIH1cblxuICAgIC8vIEFkZCBjbGF1c2UgZm9yIGNsYWltaW5nIHN0YWtpbmcgcmV3YXJkcyBpZiByZXF1ZXN0ZWRcbiAgICBjb25zdCBzaG91bGRDbGFpbVN0YWtpbmdSZXdhcmRzID0gdGhpcy5jbGFpbVJld2FyZHNEYXRhLmNsYWltU3Rha2luZ1Jld2FyZHMgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICBpZiAoc2hvdWxkQ2xhaW1TdGFraW5nUmV3YXJkcykge1xuICAgICAgY2xhdXNlcy5wdXNoKHRoaXMuYnVpbGRDbGFpbVN0YWtpbmdSZXdhcmRzQ2xhdXNlKCkpO1xuICAgIH1cblxuICAgIGlmIChjbGF1c2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBdCBsZWFzdCBvbmUgdHlwZSBvZiByZXdhcmRzIG11c3QgYmUgY2xhaW1lZCcpO1xuICAgIH1cblxuICAgIHRoaXMuY2xhdXNlcyA9IGNsYXVzZXM7XG5cbiAgICAvLyBTZXQgcmVjaXBpZW50cyBhcyBlbXB0eSBzaW5jZSBjbGFpbSByZXdhcmRzIGRvZXNuJ3Qgc2VuZCB2YWx1ZVxuICAgIHRoaXMucmVjaXBpZW50cyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGNsYXVzZSBmb3IgY2xhaW1pbmcgYmFzZSByZXdhcmRzIChjbGFpbVZldEdlbmVyYXRlZFZ0aG8pXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQ2xhaW1CYXNlUmV3YXJkc0NsYXVzZSgpOiBUcmFuc2FjdGlvbkNsYXVzZSB7XG4gICAgY29uc3QgbWV0aG9kRGF0YSA9IHRoaXMuZW5jb2RlQ2xhaW1SZXdhcmRzTWV0aG9kKENMQUlNX0JBU0VfUkVXQVJEU19NRVRIT0RfSUQsIHRoaXMuX2NsYWltUmV3YXJkc0RhdGEudG9rZW5JZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG86IHV0aWxzLmdldERlZmF1bHRTdGFraW5nQWRkcmVzcyh0aGlzLl9jb2luQ29uZmlnKSxcbiAgICAgIHZhbHVlOiAnMHgwJyxcbiAgICAgIGRhdGE6IG1ldGhvZERhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBjbGF1c2UgZm9yIGNsYWltaW5nIHN0YWtpbmcgcmV3YXJkcyAoY2xhaW1SZXdhcmRzKVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZENsYWltU3Rha2luZ1Jld2FyZHNDbGF1c2UoKTogVHJhbnNhY3Rpb25DbGF1c2Uge1xuICAgIGNvbnN0IG1ldGhvZERhdGEgPSB0aGlzLmVuY29kZUNsYWltUmV3YXJkc01ldGhvZChDTEFJTV9TVEFLSU5HX1JFV0FSRFNfTUVUSE9EX0lELCB0aGlzLl9jbGFpbVJld2FyZHNEYXRhLnRva2VuSWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvOiB1dGlscy5nZXREZWZhdWx0RGVsZWdhdGlvbkFkZHJlc3ModGhpcy5fY29pbkNvbmZpZyksXG4gICAgICB2YWx1ZTogJzB4MCcsXG4gICAgICBkYXRhOiBtZXRob2REYXRhLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIHRoZSBjbGFpbSByZXdhcmRzIG1ldGhvZCBjYWxsIGRhdGFcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlQ2xhaW1SZXdhcmRzTWV0aG9kKG1ldGhvZElkOiBzdHJpbmcsIHRva2VuSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZElkID09PSBDTEFJTV9CQVNFX1JFV0FSRFNfTUVUSE9EX0lEID8gJ2NsYWltVmV0R2VuZXJhdGVkVnRobycgOiAnY2xhaW1SZXdhcmRzJztcbiAgICBjb25zdCB0eXBlcyA9IFsndWludDI1NiddO1xuICAgIGNvbnN0IHBhcmFtcyA9IFt0b2tlbklkXTtcblxuICAgIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKG1ldGhvZE5hbWUsIHR5cGVzKTtcbiAgICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKHR5cGVzLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBWZXRUcmFuc2FjdGlvbkRhdGEge1xuICAgIGNvbnN0IGpzb246IFZldFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgY2hhaW5UYWc6IHRoaXMuY2hhaW5UYWcsXG4gICAgICBibG9ja1JlZjogdGhpcy5ibG9ja1JlZixcbiAgICAgIGV4cGlyYXRpb246IHRoaXMuZXhwaXJhdGlvbixcbiAgICAgIGdhc1ByaWNlQ29lZjogdGhpcy5nYXNQcmljZUNvZWYsXG4gICAgICBnYXM6IHRoaXMuZ2FzLFxuICAgICAgZGVwZW5kc09uOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgIG5vbmNlOiB0aGlzLm5vbmNlLFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIGZlZVBheWVyOiB0aGlzLmZlZVBheWVyQWRkcmVzcyxcbiAgICAgIHJlY2lwaWVudHM6IHRoaXMucmVjaXBpZW50cyxcbiAgICAgIGNsYWltUmV3YXJkc0RhdGE6IHRoaXMuX2NsYWltUmV3YXJkc0RhdGEsXG4gICAgfTtcbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHg6IFZldFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghc2lnbmVkVHggfHwgIXNpZ25lZFR4LmJvZHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHRyYW5zYWN0aW9uIGJvZHknKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcmUgdGhlIHJhdyB0cmFuc2FjdGlvblxuICAgICAgdGhpcy5yYXdUcmFuc2FjdGlvbiA9IHNpZ25lZFR4O1xuXG4gICAgICAvLyBTZXQgdHJhbnNhY3Rpb24gYm9keSBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBib2R5ID0gc2lnbmVkVHguYm9keTtcbiAgICAgIHRoaXMuY2hhaW5UYWcgPSB0eXBlb2YgYm9keS5jaGFpblRhZyA9PT0gJ251bWJlcicgPyBib2R5LmNoYWluVGFnIDogMDtcbiAgICAgIHRoaXMuYmxvY2tSZWYgPSBib2R5LmJsb2NrUmVmIHx8ICcweDAnO1xuICAgICAgdGhpcy5leHBpcmF0aW9uID0gdHlwZW9mIGJvZHkuZXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyBib2R5LmV4cGlyYXRpb24gOiA2NDtcbiAgICAgIHRoaXMuY2xhdXNlcyA9IGJvZHkuY2xhdXNlcyB8fCBbXTtcbiAgICAgIHRoaXMuZ2FzUHJpY2VDb2VmID0gdHlwZW9mIGJvZHkuZ2FzUHJpY2VDb2VmID09PSAnbnVtYmVyJyA/IGJvZHkuZ2FzUHJpY2VDb2VmIDogMTI4O1xuICAgICAgdGhpcy5nYXMgPSB0eXBlb2YgYm9keS5nYXMgPT09ICdudW1iZXInID8gYm9keS5nYXMgOiBOdW1iZXIoYm9keS5nYXMpIHx8IDA7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGJvZHkuZGVwZW5kc09uIHx8IG51bGw7XG4gICAgICB0aGlzLm5vbmNlID0gU3RyaW5nKGJvZHkubm9uY2UpO1xuXG4gICAgICAvLyBQYXJzZSBjbGFpbSByZXdhcmRzIGRhdGEgZnJvbSBjbGF1c2VzXG4gICAgICB0aGlzLnBhcnNlQ2xhaW1SZXdhcmRzRGF0YUZyb21DbGF1c2VzKGJvZHkuY2xhdXNlcyk7XG5cbiAgICAgIC8vIFNldCByZWNpcGllbnRzIGFzIGVtcHR5IGZvciBjbGFpbSByZXdhcmRzXG4gICAgICB0aGlzLnJlY2lwaWVudHMgPSBbXTtcbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcblxuICAgICAgLy8gU2V0IHNlbmRlciBhZGRyZXNzXG4gICAgICBpZiAoc2lnbmVkVHguc2lnbmF0dXJlICYmIHNpZ25lZFR4Lm9yaWdpbikge1xuICAgICAgICB0aGlzLnNlbmRlciA9IHNpZ25lZFR4Lm9yaWdpbi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBzaWduYXR1cmVzIGlmIHByZXNlbnRcbiAgICAgIGlmIChzaWduZWRUeC5zaWduYXR1cmUpIHtcbiAgICAgICAgLy8gRmlyc3Qgc2lnbmF0dXJlIGlzIHNlbmRlcidzIHNpZ25hdHVyZVxuICAgICAgICB0aGlzLnNlbmRlclNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKHNpZ25lZFR4LnNpZ25hdHVyZS5zbGljZSgwLCBTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlJ3MgYWRkaXRpb25hbCBzaWduYXR1cmUgZGF0YSwgaXQncyB0aGUgZmVlIHBheWVyJ3Mgc2lnbmF0dXJlXG4gICAgICAgIGlmIChzaWduZWRUeC5zaWduYXR1cmUubGVuZ3RoID4gU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpIHtcbiAgICAgICAgICB0aGlzLmZlZVBheWVyU2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2lnbmVkVHguc2lnbmF0dXJlLnNsaWNlKFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEZhaWxlZCB0byBkZXNlcmlhbGl6ZSB0cmFuc2FjdGlvbjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGNsYWltIHJld2FyZHMgZGF0YSBmcm9tIHRyYW5zYWN0aW9uIGNsYXVzZXNcbiAgICovXG4gIHByaXZhdGUgcGFyc2VDbGFpbVJld2FyZHNEYXRhRnJvbUNsYXVzZXMoY2xhdXNlczogVHJhbnNhY3Rpb25DbGF1c2VbXSk6IHZvaWQge1xuICAgIGlmICghY2xhdXNlcyB8fCBjbGF1c2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdObyBjbGF1c2VzIGZvdW5kIGluIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgbGV0IGNsYWltQmFzZVJld2FyZHMgPSBmYWxzZTtcbiAgICBsZXQgY2xhaW1TdGFraW5nUmV3YXJkcyA9IGZhbHNlO1xuICAgIGxldCB0b2tlbklkID0gJyc7XG4gICAgbGV0IGRlbGVnYXRpb25Db250cmFjdEFkZHJlc3MgPSAnJztcbiAgICBsZXQgc3RhcmdhdGVOZnRBZGRyZXNzID0gJyc7XG5cbiAgICBmb3IgKGNvbnN0IGNsYXVzZSBvZiBjbGF1c2VzKSB7XG4gICAgICBpZiAoY2xhdXNlLmRhdGEpIHtcbiAgICAgICAgaWYgKGNsYXVzZS5kYXRhLnN0YXJ0c1dpdGgoQ0xBSU1fQkFTRV9SRVdBUkRTX01FVEhPRF9JRCkpIHtcbiAgICAgICAgICAvLyBjbGFpbVZldEdlbmVyYXRlZFZ0aG8gc2hvdWxkIGdvIHRvIFNUQVJHQVRFX05GVF9BRERSRVNTXG4gICAgICAgICAgY2xhaW1CYXNlUmV3YXJkcyA9IHRydWU7XG4gICAgICAgICAgaWYgKCF0b2tlbklkKSB7XG4gICAgICAgICAgICB0b2tlbklkID0gdXRpbHMuZGVjb2RlQ2xhaW1SZXdhcmRzRGF0YShjbGF1c2UuZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc3RhcmdhdGVOZnRBZGRyZXNzICYmIGNsYXVzZS50bykge1xuICAgICAgICAgICAgc3RhcmdhdGVOZnRBZGRyZXNzID0gY2xhdXNlLnRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjbGF1c2UuZGF0YS5zdGFydHNXaXRoKENMQUlNX1NUQUtJTkdfUkVXQVJEU19NRVRIT0RfSUQpKSB7XG4gICAgICAgICAgLy8gY2xhaW1SZXdhcmRzIHNob3VsZCBnbyB0byBTVEFSR0FURV9ERUxFR0FUSU9OX0FERFJFU1NcbiAgICAgICAgICBjbGFpbVN0YWtpbmdSZXdhcmRzID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoIXRva2VuSWQpIHtcbiAgICAgICAgICAgIHRva2VuSWQgPSB1dGlscy5kZWNvZGVDbGFpbVJld2FyZHNEYXRhKGNsYXVzZS5kYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFkZWxlZ2F0aW9uQ29udHJhY3RBZGRyZXNzICYmIGNsYXVzZS50bykge1xuICAgICAgICAgICAgZGVsZWdhdGlvbkNvbnRyYWN0QWRkcmVzcyA9IGNsYXVzZS50bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWNsYWltQmFzZVJld2FyZHMgJiYgIWNsYWltU3Rha2luZ1Jld2FyZHMpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gZG9lcyBub3QgY29udGFpbiBjbGFpbSByZXdhcmRzIGNsYXVzZXMnKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jbGFpbVJld2FyZHNEYXRhID0ge1xuICAgICAgdG9rZW5JZCxcbiAgICAgIGRlbGVnYXRpb25Db250cmFjdEFkZHJlc3M6XG4gICAgICAgIGRlbGVnYXRpb25Db250cmFjdEFkZHJlc3MgJiYgIXV0aWxzLmlzRGVsZWdhdGlvbkNvbnRyYWN0QWRkcmVzcyhkZWxlZ2F0aW9uQ29udHJhY3RBZGRyZXNzKVxuICAgICAgICAgID8gZGVsZWdhdGlvbkNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgc3RhcmdhdGVOZnRBZGRyZXNzOlxuICAgICAgICBzdGFyZ2F0ZU5mdEFkZHJlc3MgJiYgIXV0aWxzLmlzTmZ0Q29udHJhY3RBZGRyZXNzKHN0YXJnYXRlTmZ0QWRkcmVzcykgPyBzdGFyZ2F0ZU5mdEFkZHJlc3MgOiB1bmRlZmluZWQsXG4gICAgICBjbGFpbUJhc2VSZXdhcmRzLFxuICAgICAgY2xhaW1TdGFraW5nUmV3YXJkcyxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { Transaction as VetTransaction } from '@vechain/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { VetTransactionData } from '../iface';
5
+ export declare class DelegateClauseTransaction extends Transaction {
6
+ private _stakingContractAddress;
7
+ private _tokenId;
8
+ private _delegateForever;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ get stakingContractAddress(): string;
11
+ set stakingContractAddress(address: string);
12
+ get tokenId(): number;
13
+ set tokenId(tokenId: number);
14
+ get delegateForever(): boolean;
15
+ set delegateForever(delegateForever: boolean);
16
+ buildClauses(): void;
17
+ /**
18
+ * Encodes delegation transaction data using ethereumjs-abi for delegate method
19
+ *
20
+ * @param {number} tokenId - The Token ID for delegation
21
+ * @returns {string} - The encoded transaction data
22
+ */
23
+ getDelegateData(levelId: number, delegateForever?: boolean): string;
24
+ toJson(): VetTransactionData;
25
+ fromDeserializedSignedTransaction(signedTx: VetTransaction): void;
26
+ }
27
+ //# sourceMappingURL=delegateClauseTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegateClauseTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/delegateClauseTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,IAAI,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAO9C,qBAAa,yBAA0B,SAAQ,WAAW;IACxD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAEzC;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAE1B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,OAAO,EAE3C;IAED,YAAY,IAAI,IAAI;IA+BpB;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,MAAM;IAWhE,MAAM,IAAI,kBAAkB;IAuB5B,iCAAiC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA4DlE"}