@bitgo-beta/sdk-coin-vet 1.0.1-beta.50 → 1.0.1-beta.501

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 +26 -0
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +28 -2
  7. package/dist/src/lib/iface.d.ts +28 -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 +29 -0
  17. package/dist/src/lib/transaction/burnNftTransaction.d.ts.map +1 -0
  18. package/dist/src/lib/transaction/burnNftTransaction.js +138 -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 +158 -0
  25. package/dist/src/lib/transaction/exitDelegation.d.ts +29 -0
  26. package/dist/src/lib/transaction/exitDelegation.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/exitDelegation.js +143 -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 +72 -0
  56. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.js +133 -0
  58. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts +59 -0
  59. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.js +118 -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 +72 -0
  100. package/dist/test/resources/vet.d.ts.map +1 -0
  101. package/dist/test/resources/vet.js +127 -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 +150 -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 +185 -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 +150 -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 +247 -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 +222 -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,158 @@
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.DelegateClauseTransaction = 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 ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
11
+ const utils_1 = __importDefault(require("../utils"));
12
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
13
+ const ethereumjs_util_1 = require("ethereumjs-util");
14
+ const constants_1 = require("../constants");
15
+ class DelegateClauseTransaction extends transaction_1.Transaction {
16
+ constructor(_coinConfig) {
17
+ super(_coinConfig);
18
+ this._type = sdk_core_1.TransactionType.StakingDelegate;
19
+ }
20
+ get validator() {
21
+ return this._validator;
22
+ }
23
+ set validator(address) {
24
+ this._validator = address;
25
+ }
26
+ get stakingContractAddress() {
27
+ return this._stakingContractAddress;
28
+ }
29
+ set stakingContractAddress(address) {
30
+ this._stakingContractAddress = address;
31
+ }
32
+ get tokenId() {
33
+ return this._tokenId;
34
+ }
35
+ set tokenId(tokenId) {
36
+ this._tokenId = tokenId;
37
+ }
38
+ buildClauses() {
39
+ if (!this.stakingContractAddress) {
40
+ throw new Error('Staking contract address is not set');
41
+ }
42
+ utils_1.default.validateDelegationContractAddress(this.stakingContractAddress, this._coinConfig);
43
+ if (this.tokenId === undefined || this.tokenId === null) {
44
+ throw new Error('Token ID is not set');
45
+ }
46
+ if (this.validator === undefined || this.validator === null) {
47
+ throw new Error('Validator address is not set');
48
+ }
49
+ const data = this.getDelegateData(this.tokenId, this.validator);
50
+ this._transactionData = data;
51
+ // Create the clause for delegation
52
+ this._clauses = [
53
+ {
54
+ to: this.stakingContractAddress,
55
+ value: constants_1.ZERO_VALUE_AMOUNT,
56
+ data: this._transactionData,
57
+ },
58
+ ];
59
+ // Set recipients based on the clauses
60
+ this._recipients = [
61
+ {
62
+ address: this.stakingContractAddress,
63
+ amount: constants_1.ZERO_VALUE_AMOUNT,
64
+ },
65
+ ];
66
+ }
67
+ /**
68
+ * Encodes delegation transaction data using ethereumjs-abi for delegate method
69
+ *
70
+ * @param {number} tokenId - The Token ID for delegation
71
+ * @returns {string} - The encoded transaction data
72
+ */
73
+ getDelegateData(tokenId, validatorAddress) {
74
+ const methodName = 'delegate';
75
+ const types = ['uint256', 'address'];
76
+ const params = [new ethereumjs_util_1.BN(tokenId), validatorAddress];
77
+ const method = ethereumjs_abi_1.default.methodID(methodName, types);
78
+ const args = ethereumjs_abi_1.default.rawEncode(types, params);
79
+ return (0, ethereumjs_util_1.addHexPrefix)(Buffer.concat([method, args]).toString('hex'));
80
+ }
81
+ toJson() {
82
+ const json = {
83
+ id: this.id,
84
+ chainTag: this.chainTag,
85
+ blockRef: this.blockRef,
86
+ expiration: this.expiration,
87
+ gasPriceCoef: this.gasPriceCoef,
88
+ gas: this.gas,
89
+ dependsOn: this.dependsOn,
90
+ nonce: this.nonce,
91
+ data: this.transactionData,
92
+ value: constants_1.ZERO_VALUE_AMOUNT,
93
+ sender: this.sender,
94
+ to: this.stakingContractAddress,
95
+ stakingContractAddress: this.stakingContractAddress,
96
+ amountToStake: constants_1.ZERO_VALUE_AMOUNT,
97
+ tokenId: this.tokenId,
98
+ validatorAddress: this.validator,
99
+ };
100
+ return json;
101
+ }
102
+ fromDeserializedSignedTransaction(signedTx) {
103
+ try {
104
+ if (!signedTx || !signedTx.body) {
105
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: missing transaction body');
106
+ }
107
+ // Store the raw transaction
108
+ this.rawTransaction = signedTx;
109
+ // Set transaction body properties
110
+ const body = signedTx.body;
111
+ this.chainTag = typeof body.chainTag === 'number' ? body.chainTag : 0;
112
+ this.blockRef = body.blockRef || '0x0';
113
+ this.expiration = typeof body.expiration === 'number' ? body.expiration : 64;
114
+ this.clauses = body.clauses || [];
115
+ this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
116
+ this.gas = typeof body.gas === 'number' ? body.gas : Number(body.gas) || 0;
117
+ this.dependsOn = body.dependsOn || null;
118
+ this.nonce = String(body.nonce);
119
+ // Set delegation-specific properties
120
+ if (body.clauses.length > 0) {
121
+ const clause = body.clauses[0];
122
+ if (clause.to) {
123
+ this.stakingContractAddress = clause.to;
124
+ }
125
+ if (clause.data) {
126
+ this.transactionData = clause.data;
127
+ const decoded = utils_1.default.decodeDelegateClauseData(clause.data);
128
+ this.tokenId = decoded.tokenId;
129
+ this.validator = decoded.validator;
130
+ }
131
+ }
132
+ // Set recipients from clauses
133
+ this.recipients = body.clauses.map((clause) => ({
134
+ address: (clause.to || '0x0').toString().toLowerCase(),
135
+ amount: new bignumber_js_1.default(clause.value || 0).toString(),
136
+ }));
137
+ this.loadInputsAndOutputs();
138
+ // Set sender address
139
+ if (signedTx.signature && signedTx.origin) {
140
+ this.sender = signedTx.origin.toString().toLowerCase();
141
+ }
142
+ // Set signatures if present
143
+ if (signedTx.signature) {
144
+ // First signature is sender's signature
145
+ this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
146
+ // If there's additional signature data, it's the fee payer's signature
147
+ if (signedTx.signature.length > sdk_core_2.Secp256k1.SIGNATURE_LENGTH) {
148
+ this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
149
+ }
150
+ }
151
+ }
152
+ catch (e) {
153
+ throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
154
+ }
155
+ }
156
+ }
157
+ exports.DelegateClauseTransaction = DelegateClauseTransaction;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGVDbGF1c2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vZGVsZWdhdGVDbGF1c2VUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBZ0Y7QUFFaEYsZ0RBQTZFO0FBQzdFLCtDQUE0QztBQUU1QyxvRUFBeUM7QUFDekMscURBQTZCO0FBQzdCLGdFQUFxQztBQUNyQyxxREFBbUQ7QUFDbkQsNENBQWlEO0FBRWpELE1BQWEseUJBQTBCLFNBQVEseUJBQVc7SUFLeEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxPQUFlO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0IsQ0FBQyxPQUFlO1FBQ3hDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFD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QUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6RCxDQUFDO1lBRUQsNEJBQTRCO1lBQzVCLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2Qix3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsb0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7Z0JBRTVGLHVFQUF1RTtnQkFDdkUsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxvQkFBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQzNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG9CQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUM3RixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNDQUFzQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBektELDhEQXlLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBWZXRUcmFuc2FjdGlvbiwgU2VjcDI1NmsxIH0gZnJvbSAnQHZlY2hhaW4vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFZldFRyYW5zYWN0aW9uRGF0YSB9IGZyb20gJy4uL2lmYWNlJztcbmltcG9ydCBFdGhlcmV1bUFiaSBmcm9tICdldGhlcmV1bWpzLWFiaSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgYWRkSGV4UHJlZml4LCBCTiB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgeyBaRVJPX1ZBTFVFX0FNT1VOVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBEZWxlZ2F0ZUNsYXVzZVRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9zdGFraW5nQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHByaXZhdGUgX3Rva2VuSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfdmFsaWRhdG9yOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlbGVnYXRlO1xuICB9XG5cbiAgZ2V0IHZhbGlkYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3I7XG4gIH1cblxuICBzZXQgdmFsaWRhdG9yKGFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuX3ZhbGlkYXRvciA9IGFkZHJlc3M7XG4gIH1cblxuICBnZXQgc3Rha2luZ0NvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGFraW5nQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgc2V0IHN0YWtpbmdDb250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyA9IGFkZHJlc3M7XG4gIH1cblxuICBnZXQgdG9rZW5JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90b2tlbklkO1xuICB9XG5cbiAgc2V0IHRva2VuSWQodG9rZW5JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fdG9rZW5JZCA9IHRva2VuSWQ7XG4gIH1cblxuICBidWlsZENsYXVzZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0YWtpbmdDb250cmFjdEFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU3Rha2luZyBjb250cmFjdCBhZGRyZXNzIGlzIG5vdCBzZXQnKTtcbiAgICB9XG5cbiAgICB1dGlscy52YWxpZGF0ZURlbGVnYXRpb25Db250cmFjdEFkZHJlc3ModGhpcy5zdGFraW5nQ29udHJhY3RBZGRyZXNzLCB0aGlzLl9jb2luQ29uZmlnKTtcblxuICAgIGlmICh0aGlzLnRva2VuSWQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnRva2VuSWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVG9rZW4gSUQgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhbGlkYXRvciA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsaWRhdG9yID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZhbGlkYXRvciBhZGRyZXNzIGlzIG5vdCBzZXQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5nZXREZWxlZ2F0ZURhdGEodGhpcy50b2tlbklkLCB0aGlzLnZhbGlkYXRvcik7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb25EYXRhID0gZGF0YTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY2xhdXNlIGZvciBkZWxlZ2F0aW9uXG4gICAgdGhpcy5fY2xhdXNlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdG86IHRoaXMuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IFpFUk9fVkFMVUVfQU1PVU5ULFxuICAgICAgICBkYXRhOiB0aGlzLl90cmFuc2FjdGlvbkRhdGEsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICAvLyBTZXQgcmVjaXBpZW50cyBiYXNlZCBvbiB0aGUgY2xhdXNlc1xuICAgIHRoaXMuX3JlY2lwaWVudHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRoaXMuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBaRVJPX1ZBTFVFX0FNT1VOVCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuICAvKipcbiAgICogRW5jb2RlcyBkZWxlZ2F0aW9uIHRyYW5zYWN0aW9uIGRhdGEgdXNpbmcgZXRoZXJldW1qcy1hYmkgZm9yIGRlbGVnYXRlIG1ldGhvZFxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdG9rZW5JZCAtIFRoZSBUb2tlbiBJRCBmb3IgZGVsZWdhdGlvblxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBlbmNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGdldERlbGVnYXRlRGF0YSh0b2tlbklkOiBzdHJpbmcsIHZhbGlkYXRvckFkZHJlc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9ICdkZWxlZ2F0ZSc7XG4gICAgY29uc3QgdHlwZXMgPSBbJ3VpbnQyNTYnLCAnYWRkcmVzcyddO1xuICAgIGNvbnN0IHBhcmFtcyA9IFtuZXcgQk4odG9rZW5JZCksIHZhbGlkYXRvckFkZHJlc3NdO1xuXG4gICAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQobWV0aG9kTmFtZSwgdHlwZXMpO1xuICAgIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUodHlwZXMsIHBhcmFtcyk7XG5cbiAgICByZXR1cm4gYWRkSGV4UHJlZml4KEJ1ZmZlci5jb25jYXQoW21ldGhvZCwgYXJnc10pLnRvU3RyaW5nKCdoZXgnKSk7XG4gIH1cblxuICB0b0pzb24oKTogVmV0VHJhbnNhY3Rpb25EYXRhIHtcbiAgICBjb25zdCBqc29uOiBWZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGNoYWluVGFnOiB0aGlzLmNoYWluVGFnLFxuICAgICAgYmxvY2tSZWY6IHRoaXMuYmxvY2tSZWYsXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLmV4cGlyYXRpb24sXG4gICAgICBnYXNQcmljZUNvZWY6IHRoaXMuZ2FzUHJpY2VDb2VmLFxuICAgICAgZ2FzOiB0aGlzLmdhcyxcbiAgICAgIGRlcGVuZHNPbjogdGhpcy5kZXBlbmRzT24sXG4gICAgICBub25jZTogdGhpcy5ub25jZSxcbiAgICAgIGRhdGE6IHRoaXMudHJhbnNhY3Rpb25EYXRhLFxuICAgICAgdmFsdWU6IFpFUk9fVkFMVUVfQU1PVU5ULFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIHRvOiB0aGlzLnN0YWtpbmdDb250cmFjdEFkZHJlc3MsXG4gICAgICBzdGFraW5nQ29udHJhY3RBZGRyZXNzOiB0aGlzLnN0YWtpbmdDb250cmFjdEFkZHJlc3MsXG4gICAgICBhbW91bnRUb1N0YWtlOiBaRVJPX1ZBTFVFX0FNT1VOVCxcbiAgICAgIHRva2VuSWQ6IHRoaXMudG9rZW5JZCxcbiAgICAgIHZhbGlkYXRvckFkZHJlc3M6IHRoaXMudmFsaWRhdG9yLFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIGZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeDogVmV0VHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFzaWduZWRUeCB8fCAhc2lnbmVkVHguYm9keSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgdHJhbnNhY3Rpb24gYm9keScpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdG9yZSB0aGUgcmF3IHRyYW5zYWN0aW9uXG4gICAgICB0aGlzLnJhd1RyYW5zYWN0aW9uID0gc2lnbmVkVHg7XG5cbiAgICAgIC8vIFNldCB0cmFuc2FjdGlvbiBib2R5IHByb3BlcnRpZXNcbiAgICAgIGNvbnN0IGJvZHkgPSBzaWduZWRUeC5ib2R5O1xuICAgICAgdGhpcy5jaGFpblRhZyA9IHR5cGVvZiBib2R5LmNoYWluVGFnID09PSAnbnVtYmVyJyA/IGJvZHkuY2hhaW5UYWcgOiAwO1xuICAgICAgdGhpcy5ibG9ja1JlZiA9IGJvZHkuYmxvY2tSZWYgfHwgJzB4MCc7XG4gICAgICB0aGlzLmV4cGlyYXRpb24gPSB0eXBlb2YgYm9keS5leHBpcmF0aW9uID09PSAnbnVtYmVyJyA/IGJvZHkuZXhwaXJhdGlvbiA6IDY0O1xuICAgICAgdGhpcy5jbGF1c2VzID0gYm9keS5jbGF1c2VzIHx8IFtdO1xuICAgICAgdGhpcy5nYXNQcmljZUNvZWYgPSB0eXBlb2YgYm9keS5nYXNQcmljZUNvZWYgPT09ICdudW1iZXInID8gYm9keS5nYXNQcmljZUNvZWYgOiAxMjg7XG4gICAgICB0aGlzLmdhcyA9IHR5cGVvZiBib2R5LmdhcyA9PT0gJ251bWJlcicgPyBib2R5LmdhcyA6IE51bWJlcihib2R5LmdhcykgfHwgMDtcbiAgICAgIHRoaXMuZGVwZW5kc09uID0gYm9keS5kZXBlbmRzT24gfHwgbnVsbDtcbiAgICAgIHRoaXMubm9uY2UgPSBTdHJpbmcoYm9keS5ub25jZSk7XG5cbiAgICAgIC8vIFNldCBkZWxlZ2F0aW9uLXNwZWNpZmljIHByb3BlcnRpZXNcbiAgICAgIGlmIChib2R5LmNsYXVzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjbGF1c2UgPSBib2R5LmNsYXVzZXNbMF07XG4gICAgICAgIGlmIChjbGF1c2UudG8pIHtcbiAgICAgICAgICB0aGlzLnN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSBjbGF1c2UudG87XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsYXVzZS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkRhdGEgPSBjbGF1c2UuZGF0YTtcbiAgICAgICAgICBjb25zdCBkZWNvZGVkID0gdXRpbHMuZGVjb2RlRGVsZWdhdGVDbGF1c2VEYXRhKGNsYXVzZS5kYXRhKTtcbiAgICAgICAgICB0aGlzLnRva2VuSWQgPSBkZWNvZGVkLnRva2VuSWQ7XG4gICAgICAgICAgdGhpcy52YWxpZGF0b3IgPSBkZWNvZGVkLnZhbGlkYXRvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTZXQgcmVjaXBpZW50cyBmcm9tIGNsYXVzZXNcbiAgICAgIHRoaXMucmVjaXBpZW50cyA9IGJvZHkuY2xhdXNlcy5tYXAoKGNsYXVzZSkgPT4gKHtcbiAgICAgICAgYWRkcmVzczogKGNsYXVzZS50byB8fCAnMHgwJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBhbW91bnQ6IG5ldyBCaWdOdW1iZXIoY2xhdXNlLnZhbHVlIHx8IDApLnRvU3RyaW5nKCksXG4gICAgICB9KSk7XG4gICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICAgIC8vIFNldCBzZW5kZXIgYWRkcmVzc1xuICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZSAmJiBzaWduZWRUeC5vcmlnaW4pIHtcbiAgICAgICAgdGhpcy5zZW5kZXIgPSBzaWduZWRUeC5vcmlnaW4udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXQgc2lnbmF0dXJlcyBpZiBwcmVzZW50XG4gICAgICBpZiAoc2lnbmVkVHguc2lnbmF0dXJlKSB7XG4gICAgICAgIC8vIEZpcnN0IHNpZ25hdHVyZSBpcyBzZW5kZXIncyBzaWduYXR1cmVcbiAgICAgICAgdGhpcy5zZW5kZXJTaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzaWduZWRUeC5zaWduYXR1cmUuc2xpY2UoMCwgU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpKTtcblxuICAgICAgICAvLyBJZiB0aGVyZSdzIGFkZGl0aW9uYWwgc2lnbmF0dXJlIGRhdGEsIGl0J3MgdGhlIGZlZSBwYXllcidzIHNpZ25hdHVyZVxuICAgICAgICBpZiAoc2lnbmVkVHguc2lnbmF0dXJlLmxlbmd0aCA+IFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSB7XG4gICAgICAgICAgdGhpcy5mZWVQYXllclNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKHNpZ25lZFR4LnNpZ25hdHVyZS5zbGljZShTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBGYWlsZWQgdG8gZGVzZXJpYWxpemUgdHJhbnNhY3Rpb246ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
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 ExitDelegationTransaction extends Transaction {
6
+ private _tokenId;
7
+ private _stakingContractAddress;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ get tokenId(): string;
10
+ set tokenId(id: string);
11
+ get stakingContractAddress(): string;
12
+ set stakingContractAddress(address: string);
13
+ /** @inheritdoc */
14
+ build(): Promise<void>;
15
+ /** @inheritdoc */
16
+ buildClauses(): void;
17
+ /**
18
+ * Generates the transaction data for unstaking by encoding the exitDelegation method call.
19
+ *
20
+ * @private
21
+ * @returns {string} The encoded transaction data as a hex string
22
+ */
23
+ private getExitDelegationData;
24
+ /** @inheritdoc */
25
+ toJson(): VetTransactionData;
26
+ /** @inheritdoc */
27
+ fromDeserializedSignedTransaction(signedTx: VetTransaction): void;
28
+ }
29
+ //# sourceMappingURL=exitDelegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exitDelegation.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/exitDelegation.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,QAAQ,CAAS;IACzB,OAAO,CAAC,uBAAuB,CAAS;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,EAAE,EAAE,MAAM,EAErB;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAEzC;IAED,kBAAkB;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,kBAAkB;IAClB,YAAY,IAAI,IAAI;IAuBpB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAW7B,kBAAkB;IAClB,MAAM,IAAI,kBAAkB;IAmB5B,kBAAkB;IAClB,iCAAiC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAuDlE"}
@@ -0,0 +1,143 @@
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.ExitDelegationTransaction = 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
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
15
+ class ExitDelegationTransaction extends transaction_1.Transaction {
16
+ constructor(_coinConfig) {
17
+ super(_coinConfig);
18
+ this._type = sdk_core_1.TransactionType.StakingUnlock;
19
+ }
20
+ get tokenId() {
21
+ return this._tokenId;
22
+ }
23
+ set tokenId(id) {
24
+ this._tokenId = id;
25
+ }
26
+ get stakingContractAddress() {
27
+ return this._stakingContractAddress;
28
+ }
29
+ set stakingContractAddress(address) {
30
+ this._stakingContractAddress = address;
31
+ }
32
+ /** @inheritdoc */
33
+ async build() {
34
+ this.buildClauses();
35
+ await this.buildRawTransaction();
36
+ this.generateTxnIdAndSetSender();
37
+ this.loadInputsAndOutputs();
38
+ }
39
+ /** @inheritdoc */
40
+ buildClauses() {
41
+ if (!this._stakingContractAddress || !this._tokenId) {
42
+ throw new sdk_core_1.InvalidTransactionError('Missing required unstaking parameters');
43
+ }
44
+ utils_1.default.validateStakingContractAddress(this._stakingContractAddress, this._coinConfig);
45
+ this._clauses = [
46
+ {
47
+ to: this._stakingContractAddress,
48
+ value: '0x0',
49
+ data: this._transactionData || this.getExitDelegationData(),
50
+ },
51
+ ];
52
+ this._recipients = [
53
+ {
54
+ address: this._stakingContractAddress,
55
+ amount: '0',
56
+ },
57
+ ];
58
+ }
59
+ /**
60
+ * Generates the transaction data for unstaking by encoding the exitDelegation method call.
61
+ *
62
+ * @private
63
+ * @returns {string} The encoded transaction data as a hex string
64
+ */
65
+ getExitDelegationData() {
66
+ const methodName = 'requestDelegationExit';
67
+ const types = ['uint256'];
68
+ const params = [this._tokenId];
69
+ const method = ethereumjs_abi_1.default.methodID(methodName, types);
70
+ const args = ethereumjs_abi_1.default.rawEncode(types, params);
71
+ return (0, ethereumjs_util_1.addHexPrefix)(Buffer.concat([method, args]).toString('hex'));
72
+ }
73
+ /** @inheritdoc */
74
+ toJson() {
75
+ const json = {
76
+ id: this.id,
77
+ chainTag: this.chainTag,
78
+ blockRef: this.blockRef,
79
+ expiration: this.expiration,
80
+ gasPriceCoef: this.gasPriceCoef,
81
+ gas: this.gas,
82
+ dependsOn: this.dependsOn,
83
+ nonce: this.nonce,
84
+ data: this.transactionData || this.getExitDelegationData(),
85
+ value: '0',
86
+ sender: this.sender,
87
+ to: this.stakingContractAddress,
88
+ tokenId: this.tokenId,
89
+ };
90
+ return json;
91
+ }
92
+ /** @inheritdoc */
93
+ fromDeserializedSignedTransaction(signedTx) {
94
+ try {
95
+ if (!signedTx || !signedTx.body) {
96
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: missing transaction body');
97
+ }
98
+ // Store the raw transaction
99
+ this.rawTransaction = signedTx;
100
+ // Set transaction body properties
101
+ const body = signedTx.body;
102
+ this.chainTag = typeof body.chainTag === 'number' ? body.chainTag : 0;
103
+ this.blockRef = body.blockRef || '0x0';
104
+ this.expiration = typeof body.expiration === 'number' ? body.expiration : 64;
105
+ this.clauses = body.clauses || [];
106
+ this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
107
+ this.gas = typeof body.gas === 'number' ? body.gas : Number(body.gas) || 0;
108
+ this.dependsOn = body.dependsOn || null;
109
+ this.nonce = String(body.nonce);
110
+ // Set data from clauses
111
+ this.stakingContractAddress = body.clauses[0]?.to || '0x0';
112
+ this.transactionData = body.clauses[0]?.data || '0x0';
113
+ this.type = sdk_core_1.TransactionType.StakingUnlock;
114
+ // Extract tokenId from transaction data
115
+ if (this.transactionData.startsWith(constants_1.EXIT_DELEGATION_METHOD_ID)) {
116
+ this.tokenId = utils_1.default.decodeExitDelegationData(this.transactionData);
117
+ }
118
+ this.recipients = body.clauses.map((clause) => ({
119
+ address: (clause.to || '0x0').toString().toLowerCase(),
120
+ amount: new bignumber_js_1.default(clause.value || 0).toString(),
121
+ }));
122
+ // Set sender address
123
+ if (signedTx.signature && signedTx.origin) {
124
+ this.sender = signedTx.origin.toString().toLowerCase();
125
+ }
126
+ this.loadInputsAndOutputs();
127
+ // Set signatures if present
128
+ if (signedTx.signature) {
129
+ // First signature is sender's signature
130
+ this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
131
+ // If there's additional signature data, it's the fee payer's signature
132
+ if (signedTx.signature.length > sdk_core_2.Secp256k1.SIGNATURE_LENGTH) {
133
+ this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
134
+ }
135
+ }
136
+ }
137
+ catch (e) {
138
+ throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
139
+ }
140
+ }
141
+ }
142
+ exports.ExitDelegationTransaction = ExitDelegationTransaction;
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpdERlbGVnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2V4aXREZWxlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFnRjtBQUVoRixnREFBNkU7QUFDN0UsK0NBQTRDO0FBRTVDLDRDQUF5RDtBQUN6RCxvRUFBeUM7QUFDekMscURBQStDO0FBQy9DLHFEQUE2QjtBQUM3QixnRUFBcUM7QUFFckMsTUFBYSx5QkFBMEIsU0FBUSx5QkFBVztJQUl4RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEVBQVU7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLHNCQUFzQixDQUFDLE9BQWU7UUFDeEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUks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Q0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRKRCw4REFzSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVmV0VHJhbnNhY3Rpb24sIFNlY3AyNTZrMSB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBWZXRUcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgeyBFWElUX0RFTEVHQVRJT05fTUVUSE9EX0lEIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBFdGhlcmV1bUFiaSBmcm9tICdldGhlcmV1bWpzLWFiaSc7XG5pbXBvcnQgeyBhZGRIZXhQcmVmaXggfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuZXhwb3J0IGNsYXNzIEV4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3Rva2VuSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfc3Rha2luZ0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2s7XG4gIH1cblxuICBnZXQgdG9rZW5JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90b2tlbklkO1xuICB9XG5cbiAgc2V0IHRva2VuSWQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuX3Rva2VuSWQgPSBpZDtcbiAgfVxuXG4gIGdldCBzdGFraW5nQ29udHJhY3RBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWtpbmdDb250cmFjdEFkZHJlc3M7XG4gIH1cblxuICBzZXQgc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGFraW5nQ29udHJhY3RBZGRyZXNzID0gYWRkcmVzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmJ1aWxkQ2xhdXNlcygpO1xuICAgIGF3YWl0IHRoaXMuYnVpbGRSYXdUcmFuc2FjdGlvbigpO1xuICAgIHRoaXMuZ2VuZXJhdGVUeG5JZEFuZFNldFNlbmRlcigpO1xuICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBidWlsZENsYXVzZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zdGFraW5nQ29udHJhY3RBZGRyZXNzIHx8ICF0aGlzLl90b2tlbklkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgdW5zdGFraW5nIHBhcmFtZXRlcnMnKTtcbiAgICB9XG5cbiAgICB1dGlscy52YWxpZGF0ZVN0YWtpbmdDb250cmFjdEFkZHJlc3ModGhpcy5fc3Rha2luZ0NvbnRyYWN0QWRkcmVzcywgdGhpcy5fY29pbkNvbmZpZyk7XG5cbiAgICB0aGlzLl9jbGF1c2VzID0gW1xuICAgICAge1xuICAgICAgICB0bzogdGhpcy5fc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgdmFsdWU6ICcweDAnLFxuICAgICAgICBkYXRhOiB0aGlzLl90cmFuc2FjdGlvbkRhdGEgfHwgdGhpcy5nZXRFeGl0RGVsZWdhdGlvbkRhdGEoKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHRoaXMuX3JlY2lwaWVudHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRoaXMuX3N0YWtpbmdDb250cmFjdEFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogJzAnLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgdHJhbnNhY3Rpb24gZGF0YSBmb3IgdW5zdGFraW5nIGJ5IGVuY29kaW5nIHRoZSBleGl0RGVsZWdhdGlvbiBtZXRob2QgY2FsbC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGVuY29kZWQgdHJhbnNhY3Rpb24gZGF0YSBhcyBhIGhleCBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgZ2V0RXhpdERlbGVnYXRpb25EYXRhKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9ICdyZXF1ZXN0RGVsZWdhdGlvbkV4aXQnO1xuICAgIGNvbnN0IHR5cGVzID0gWyd1aW50MjU2J107XG4gICAgY29uc3QgcGFyYW1zID0gW3RoaXMuX3Rva2VuSWRdO1xuXG4gICAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQobWV0aG9kTmFtZSwgdHlwZXMpO1xuICAgIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUodHlwZXMsIHBhcmFtcyk7XG5cbiAgICByZXR1cm4gYWRkSGV4UHJlZml4KEJ1ZmZlci5jb25jYXQoW21ldGhvZCwgYXJnc10pLnRvU3RyaW5nKCdoZXgnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFZldFRyYW5zYWN0aW9uRGF0YSB7XG4gICAgY29uc3QganNvbjogVmV0VHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBjaGFpblRhZzogdGhpcy5jaGFpblRhZyxcbiAgICAgIGJsb2NrUmVmOiB0aGlzLmJsb2NrUmVmLFxuICAgICAgZXhwaXJhdGlvbjogdGhpcy5leHBpcmF0aW9uLFxuICAgICAgZ2FzUHJpY2VDb2VmOiB0aGlzLmdhc1ByaWNlQ29lZixcbiAgICAgIGdhczogdGhpcy5nYXMsXG4gICAgICBkZXBlbmRzT246IHRoaXMuZGVwZW5kc09uLFxuICAgICAgbm9uY2U6IHRoaXMubm9uY2UsXG4gICAgICBkYXRhOiB0aGlzLnRyYW5zYWN0aW9uRGF0YSB8fCB0aGlzLmdldEV4aXREZWxlZ2F0aW9uRGF0YSgpLFxuICAgICAgdmFsdWU6ICcwJyxcbiAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICB0bzogdGhpcy5zdGFraW5nQ29udHJhY3RBZGRyZXNzLFxuICAgICAgdG9rZW5JZDogdGhpcy50b2tlbklkLFxuICAgIH07XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4OiBWZXRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXNpZ25lZFR4IHx8ICFzaWduZWRUeC5ib2R5KSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB0cmFuc2FjdGlvbiBib2R5Jyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN0b3JlIHRoZSByYXcgdHJhbnNhY3Rpb25cbiAgICAgIHRoaXMucmF3VHJhbnNhY3Rpb24gPSBzaWduZWRUeDtcblxuICAgICAgLy8gU2V0IHRyYW5zYWN0aW9uIGJvZHkgcHJvcGVydGllc1xuICAgICAgY29uc3QgYm9keSA9IHNpZ25lZFR4LmJvZHk7XG4gICAgICB0aGlzLmNoYWluVGFnID0gdHlwZW9mIGJvZHkuY2hhaW5UYWcgPT09ICdudW1iZXInID8gYm9keS5jaGFpblRhZyA6IDA7XG4gICAgICB0aGlzLmJsb2NrUmVmID0gYm9keS5ibG9ja1JlZiB8fCAnMHgwJztcbiAgICAgIHRoaXMuZXhwaXJhdGlvbiA9IHR5cGVvZiBib2R5LmV4cGlyYXRpb24gPT09ICdudW1iZXInID8gYm9keS5leHBpcmF0aW9uIDogNjQ7XG4gICAgICB0aGlzLmNsYXVzZXMgPSBib2R5LmNsYXVzZXMgfHwgW107XG4gICAgICB0aGlzLmdhc1ByaWNlQ29lZiA9IHR5cGVvZiBib2R5Lmdhc1ByaWNlQ29lZiA9PT0gJ251bWJlcicgPyBib2R5Lmdhc1ByaWNlQ29lZiA6IDEyODtcbiAgICAgIHRoaXMuZ2FzID0gdHlwZW9mIGJvZHkuZ2FzID09PSAnbnVtYmVyJyA/IGJvZHkuZ2FzIDogTnVtYmVyKGJvZHkuZ2FzKSB8fCAwO1xuICAgICAgdGhpcy5kZXBlbmRzT24gPSBib2R5LmRlcGVuZHNPbiB8fCBudWxsO1xuICAgICAgdGhpcy5ub25jZSA9IFN0cmluZyhib2R5Lm5vbmNlKTtcblxuICAgICAgLy8gU2V0IGRhdGEgZnJvbSBjbGF1c2VzXG4gICAgICB0aGlzLnN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSBib2R5LmNsYXVzZXNbMF0/LnRvIHx8ICcweDAnO1xuICAgICAgdGhpcy50cmFuc2FjdGlvbkRhdGEgPSBib2R5LmNsYXVzZXNbMF0/LmRhdGEgfHwgJzB4MCc7XG4gICAgICB0aGlzLnR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jaztcblxuICAgICAgLy8gRXh0cmFjdCB0b2tlbklkIGZyb20gdHJhbnNhY3Rpb24gZGF0YVxuICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25EYXRhLnN0YXJ0c1dpdGgoRVhJVF9ERUxFR0FUSU9OX01FVEhPRF9JRCkpIHtcbiAgICAgICAgdGhpcy50b2tlbklkID0gdXRpbHMuZGVjb2RlRXhpdERlbGVnYXRpb25EYXRhKHRoaXMudHJhbnNhY3Rpb25EYXRhKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVjaXBpZW50cyA9IGJvZHkuY2xhdXNlcy5tYXAoKGNsYXVzZSkgPT4gKHtcbiAgICAgICAgYWRkcmVzczogKGNsYXVzZS50byB8fCAnMHgwJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBhbW91bnQ6IG5ldyBCaWdOdW1iZXIoY2xhdXNlLnZhbHVlIHx8IDApLnRvU3RyaW5nKCksXG4gICAgICB9KSk7XG5cbiAgICAgIC8vIFNldCBzZW5kZXIgYWRkcmVzc1xuICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZSAmJiBzaWduZWRUeC5vcmlnaW4pIHtcbiAgICAgICAgdGhpcy5zZW5kZXIgPSBzaWduZWRUeC5vcmlnaW4udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICAgIC8vIFNldCBzaWduYXR1cmVzIGlmIHByZXNlbnRcbiAgICAgIGlmIChzaWduZWRUeC5zaWduYXR1cmUpIHtcbiAgICAgICAgLy8gRmlyc3Qgc2lnbmF0dXJlIGlzIHNlbmRlcidzIHNpZ25hdHVyZVxuICAgICAgICB0aGlzLnNlbmRlclNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKHNpZ25lZFR4LnNpZ25hdHVyZS5zbGljZSgwLCBTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlJ3MgYWRkaXRpb25hbCBzaWduYXR1cmUgZGF0YSwgaXQncyB0aGUgZmVlIHBheWVyJ3Mgc2lnbmF0dXJlXG4gICAgICAgIGlmIChzaWduZWRUeC5zaWduYXR1cmUubGVuZ3RoID4gU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpIHtcbiAgICAgICAgICB0aGlzLmZlZVBheWVyU2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2lnbmVkVHguc2lnbmF0dXJlLnNsaWNlKFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEZhaWxlZCB0byBkZXNlcmlhbGl6ZSB0cmFuc2FjdGlvbjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,20 @@
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 FlushTokenTransaction extends Transaction {
6
+ private _forwarderVersion;
7
+ private _tokenAddress;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ get forwarderVersion(): number;
10
+ set forwarderVersion(forwarderVersion: number);
11
+ get tokenAddress(): string;
12
+ set tokenAddress(address: string);
13
+ /** @inheritdoc */
14
+ buildClauses(): void;
15
+ /** @inheritdoc */
16
+ toJson(): VetTransactionData;
17
+ /** @inheritdoc */
18
+ fromDeserializedSignedTransaction(signedTx: VetTransaction): void;
19
+ }
20
+ //# sourceMappingURL=flushTokenTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushTokenTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/flushTokenTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,IAAI,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAS;gBAElB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAE5C;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,EAE/B;IAED,kBAAkB;IAClB,YAAY,IAAI,IAAI;IAUpB,kBAAkB;IAClB,MAAM,IAAI,kBAAkB;IAmB5B,kBAAkB;IAClB,iCAAiC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA6ClE"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlushTokenTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const sdk_core_2 = require("@vechain/sdk-core");
6
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
7
+ const transaction_1 = require("./transaction");
8
+ class FlushTokenTransaction extends transaction_1.Transaction {
9
+ constructor(_coinConfig) {
10
+ super(_coinConfig);
11
+ this._type = sdk_core_1.TransactionType.FlushTokens;
12
+ }
13
+ get forwarderVersion() {
14
+ return this._forwarderVersion;
15
+ }
16
+ set forwarderVersion(forwarderVersion) {
17
+ this._forwarderVersion = forwarderVersion;
18
+ }
19
+ get tokenAddress() {
20
+ return this._tokenAddress;
21
+ }
22
+ set tokenAddress(address) {
23
+ this._tokenAddress = address;
24
+ }
25
+ /** @inheritdoc */
26
+ buildClauses() {
27
+ this._clauses = [
28
+ {
29
+ to: this._contract,
30
+ value: '0x0',
31
+ data: this._transactionData,
32
+ },
33
+ ];
34
+ }
35
+ /** @inheritdoc */
36
+ toJson() {
37
+ const json = {
38
+ id: this.id,
39
+ chainTag: this.chainTag,
40
+ blockRef: this.blockRef,
41
+ expiration: this.expiration,
42
+ gasPriceCoef: this.gasPriceCoef,
43
+ gas: this.gas,
44
+ dependsOn: this.dependsOn,
45
+ nonce: this.nonce,
46
+ data: this.transactionData,
47
+ value: '0',
48
+ sender: this.sender,
49
+ to: this.contract,
50
+ tokenAddress: this.tokenAddress,
51
+ };
52
+ return json;
53
+ }
54
+ /** @inheritdoc */
55
+ fromDeserializedSignedTransaction(signedTx) {
56
+ try {
57
+ if (!signedTx || !signedTx.body) {
58
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction: missing transaction body');
59
+ }
60
+ // Store the raw transaction
61
+ this.rawTransaction = signedTx;
62
+ // Set transaction body properties
63
+ const body = signedTx.body;
64
+ this.chainTag = typeof body.chainTag === 'number' ? body.chainTag : 0;
65
+ this.blockRef = body.blockRef || '0x0';
66
+ this.expiration = typeof body.expiration === 'number' ? body.expiration : 64;
67
+ this.clauses = body.clauses || [];
68
+ this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
69
+ this.gas = typeof body.gas === 'number' ? body.gas : Number(body.gas) || 0;
70
+ this.dependsOn = body.dependsOn || null;
71
+ this.nonce = String(body.nonce);
72
+ // Set data from clauses
73
+ this.contract = body.clauses[0]?.to || '0x0';
74
+ this.transactionData = body.clauses[0]?.data || '0x0';
75
+ this.type = sdk_core_1.TransactionType.FlushTokens;
76
+ const { tokenAddress } = (0, abstract_eth_1.decodeFlushTokensData)(this.transactionData, this.contract);
77
+ this.tokenAddress = tokenAddress;
78
+ // Set sender address
79
+ if (signedTx.origin) {
80
+ this.sender = signedTx.origin.toString().toLowerCase();
81
+ }
82
+ // Set signatures if present
83
+ if (signedTx.signature) {
84
+ // First signature is sender's signature
85
+ this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
86
+ // If there's additional signature data, it's the fee payer's signature
87
+ if (signedTx.signature.length > sdk_core_2.Secp256k1.SIGNATURE_LENGTH) {
88
+ this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_2.Secp256k1.SIGNATURE_LENGTH));
89
+ }
90
+ }
91
+ }
92
+ catch (e) {
93
+ throw new sdk_core_1.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
94
+ }
95
+ }
96
+ }
97
+ exports.FlushTokenTransaction = FlushTokenTransaction;
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx1c2hUb2tlblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbi9mbHVzaFRva2VuVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdGO0FBRWhGLGdEQUE2RTtBQUM3RSwyREFBaUU7QUFFakUsK0NBQTRDO0FBRzVDLE1BQWEscUJBQXNCLFNBQVEseUJBQVc7SUFJcEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksZ0JBQWdCLENBQUMsZ0JBQXdCO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxPQUFlO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZDtnQkFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ2xCLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQzVCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUF1QjtZQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFF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LENBQUM7WUFDekQsQ0FBQztZQUVELDRCQUE0QjtZQUM1QixJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkIsd0NBQXdDO2dCQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLG9CQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUU1Rix1RUFBdUU7Z0JBQ3ZFLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsb0JBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUMzRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxvQkFBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDN0YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRHRCxzREFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVmV0VHJhbnNhY3Rpb24sIFNlY3AyNTZrMSB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcbmltcG9ydCB7IGRlY29kZUZsdXNoVG9rZW5zRGF0YSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBWZXRUcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBGbHVzaFRva2VuVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX2ZvcndhcmRlclZlcnNpb246IG51bWJlcjtcbiAgcHJpdmF0ZSBfdG9rZW5BZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuRmx1c2hUb2tlbnM7XG4gIH1cblxuICBnZXQgZm9yd2FyZGVyVmVyc2lvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mb3J3YXJkZXJWZXJzaW9uO1xuICB9XG5cbiAgc2V0IGZvcndhcmRlclZlcnNpb24oZm9yd2FyZGVyVmVyc2lvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5fZm9yd2FyZGVyVmVyc2lvbiA9IGZvcndhcmRlclZlcnNpb247XG4gIH1cblxuICBnZXQgdG9rZW5BZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuQWRkcmVzcztcbiAgfVxuXG4gIHNldCB0b2tlbkFkZHJlc3MoYWRkcmVzczogc3RyaW5nKSB7XG4gICAgdGhpcy5fdG9rZW5BZGRyZXNzID0gYWRkcmVzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBidWlsZENsYXVzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xhdXNlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdG86IHRoaXMuX2NvbnRyYWN0LFxuICAgICAgICB2YWx1ZTogJzB4MCcsXG4gICAgICAgIGRhdGE6IHRoaXMuX3RyYW5zYWN0aW9uRGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVmV0VHJhbnNhY3Rpb25EYXRhIHtcbiAgICBjb25zdCBqc29uOiBWZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGNoYWluVGFnOiB0aGlzLmNoYWluVGFnLFxuICAgICAgYmxvY2tSZWY6IHRoaXMuYmxvY2tSZWYsXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLmV4cGlyYXRpb24sXG4gICAgICBnYXNQcmljZUNvZWY6IHRoaXMuZ2FzUHJpY2VDb2VmLFxuICAgICAgZ2FzOiB0aGlzLmdhcyxcbiAgICAgIGRlcGVuZHNPbjogdGhpcy5kZXBlbmRzT24sXG4gICAgICBub25jZTogdGhpcy5ub25jZSxcbiAgICAgIGRhdGE6IHRoaXMudHJhbnNhY3Rpb25EYXRhLFxuICAgICAgdmFsdWU6ICcwJyxcbiAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICB0bzogdGhpcy5jb250cmFjdCxcbiAgICAgIHRva2VuQWRkcmVzczogdGhpcy50b2tlbkFkZHJlc3MsXG4gICAgfTtcbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHg6IFZldFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghc2lnbmVkVHggfHwgIXNpZ25lZFR4LmJvZHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHRyYW5zYWN0aW9uIGJvZHknKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcmUgdGhlIHJhdyB0cmFuc2FjdGlvblxuICAgICAgdGhpcy5yYXdUcmFuc2FjdGlvbiA9IHNpZ25lZFR4O1xuXG4gICAgICAvLyBTZXQgdHJhbnNhY3Rpb24gYm9keSBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBib2R5ID0gc2lnbmVkVHguYm9keTtcbiAgICAgIHRoaXMuY2hhaW5UYWcgPSB0eXBlb2YgYm9keS5jaGFpblRhZyA9PT0gJ251bWJlcicgPyBib2R5LmNoYWluVGFnIDogMDtcbiAgICAgIHRoaXMuYmxvY2tSZWYgPSBib2R5LmJsb2NrUmVmIHx8ICcweDAnO1xuICAgICAgdGhpcy5leHBpcmF0aW9uID0gdHlwZW9mIGJvZHkuZXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyBib2R5LmV4cGlyYXRpb24gOiA2NDtcbiAgICAgIHRoaXMuY2xhdXNlcyA9IGJvZHkuY2xhdXNlcyB8fCBbXTtcbiAgICAgIHRoaXMuZ2FzUHJpY2VDb2VmID0gdHlwZW9mIGJvZHkuZ2FzUHJpY2VDb2VmID09PSAnbnVtYmVyJyA/IGJvZHkuZ2FzUHJpY2VDb2VmIDogMTI4O1xuICAgICAgdGhpcy5nYXMgPSB0eXBlb2YgYm9keS5nYXMgPT09ICdudW1iZXInID8gYm9keS5nYXMgOiBOdW1iZXIoYm9keS5nYXMpIHx8IDA7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGJvZHkuZGVwZW5kc09uIHx8IG51bGw7XG4gICAgICB0aGlzLm5vbmNlID0gU3RyaW5nKGJvZHkubm9uY2UpO1xuICAgICAgLy8gU2V0IGRhdGEgZnJvbSBjbGF1c2VzXG4gICAgICB0aGlzLmNvbnRyYWN0ID0gYm9keS5jbGF1c2VzWzBdPy50byB8fCAnMHgwJztcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25EYXRhID0gYm9keS5jbGF1c2VzWzBdPy5kYXRhIHx8ICcweDAnO1xuICAgICAgdGhpcy50eXBlID0gVHJhbnNhY3Rpb25UeXBlLkZsdXNoVG9rZW5zO1xuICAgICAgY29uc3QgeyB0b2tlbkFkZHJlc3MgfSA9IGRlY29kZUZsdXNoVG9rZW5zRGF0YSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb250cmFjdCk7XG4gICAgICB0aGlzLnRva2VuQWRkcmVzcyA9IHRva2VuQWRkcmVzcztcblxuICAgICAgLy8gU2V0IHNlbmRlciBhZGRyZXNzXG4gICAgICBpZiAoc2lnbmVkVHgub3JpZ2luKSB7XG4gICAgICAgIHRoaXMuc2VuZGVyID0gc2lnbmVkVHgub3JpZ2luLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IHNpZ25hdHVyZXMgaWYgcHJlc2VudFxuICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZSkge1xuICAgICAgICAvLyBGaXJzdCBzaWduYXR1cmUgaXMgc2VuZGVyJ3Mgc2lnbmF0dXJlXG4gICAgICAgIHRoaXMuc2VuZGVyU2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2lnbmVkVHguc2lnbmF0dXJlLnNsaWNlKDAsIFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSk7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUncyBhZGRpdGlvbmFsIHNpZ25hdHVyZSBkYXRhLCBpdCdzIHRoZSBmZWUgcGF5ZXIncyBzaWduYXR1cmVcbiAgICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZS5sZW5ndGggPiBTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkge1xuICAgICAgICAgIHRoaXMuZmVlUGF5ZXJTaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzaWduZWRUeC5zaWduYXR1cmUuc2xpY2UoU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHRyYW5zYWN0aW9uOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Transaction as VetTransaction } from '@vechain/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { VetTransactionData } from '../iface';
4
+ import { Transaction } from './transaction';
5
+ export declare class NFTTransaction extends Transaction {
6
+ private _nftCollectionId;
7
+ private _tokenId;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ get nftCollectionId(): string;
10
+ set nftCollectionId(nftCollectionId: string);
11
+ get tokenId(): string;
12
+ set tokenId(tokenId: string);
13
+ buildClauses(): void;
14
+ toJson(): VetTransactionData;
15
+ fromDeserializedSignedTransaction(signedTx: VetTransaction): void;
16
+ }
17
+ //# sourceMappingURL=nftTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nftTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/nftTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,WAAW,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAS;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,MAAM,EAE1C;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAE1B;IAED,YAAY,IAAI,IAAI;IAuBpB,MAAM,IAAI,kBAAkB;IAoB5B,iCAAiC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA2ClE"}