@bitgo-beta/sdk-coin-vet 1.0.1-beta.63 → 1.0.1-beta.631

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 (160) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/constants.d.ts +28 -0
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +30 -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 +21 -0
  11. package/dist/src/lib/index.d.ts.map +1 -1
  12. package/dist/src/lib/index.js +44 -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 +31 -0
  20. package/dist/src/lib/transaction/claimRewards.d.ts.map +1 -0
  21. package/dist/src/lib/transaction/claimRewards.js +151 -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 +99 -58
  46. package/dist/src/lib/transaction/validatorRegistrationTransaction.d.ts +32 -0
  47. package/dist/src/lib/transaction/validatorRegistrationTransaction.d.ts.map +1 -0
  48. package/dist/src/lib/transaction/validatorRegistrationTransaction.js +170 -0
  49. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts +78 -0
  50. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.js +158 -0
  52. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts +59 -0
  53. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts.map +1 -0
  54. package/dist/src/lib/transactionBuilder/burnNftBuilder.js +118 -0
  55. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts +59 -0
  56. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.js +117 -0
  58. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts +72 -0
  59. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.js +133 -0
  61. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts +59 -0
  62. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.js +118 -0
  64. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts +66 -0
  65. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.js +129 -0
  67. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts +23 -0
  68. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.js +93 -0
  70. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.d.ts +73 -0
  71. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.js +146 -0
  73. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts +73 -0
  74. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/stakingBuilder.js +147 -0
  76. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts +21 -0
  77. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts.map +1 -0
  78. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.js +70 -0
  79. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +10 -9
  80. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilder/transactionBuilder.js +25 -19
  82. package/dist/src/lib/transactionBuilder/validatorRegistrationBuilder.d.ts +79 -0
  83. package/dist/src/lib/transactionBuilder/validatorRegistrationBuilder.d.ts.map +1 -0
  84. package/dist/src/lib/transactionBuilder/validatorRegistrationBuilder.js +150 -0
  85. package/dist/src/lib/transactionBuilderFactory.d.ts +55 -0
  86. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  87. package/dist/src/lib/transactionBuilderFactory.js +124 -1
  88. package/dist/src/lib/types.d.ts +21 -0
  89. package/dist/src/lib/types.d.ts.map +1 -1
  90. package/dist/src/lib/types.js +1 -1
  91. package/dist/src/lib/utils.d.ts +102 -1
  92. package/dist/src/lib/utils.d.ts.map +1 -1
  93. package/dist/src/lib/utils.js +277 -8
  94. package/dist/src/register.d.ts.map +1 -1
  95. package/dist/src/register.js +5 -1
  96. package/dist/src/vet.d.ts +94 -3
  97. package/dist/src/vet.d.ts.map +1 -1
  98. package/dist/src/vet.js +505 -10
  99. package/dist/src/vetNFTCollection.d.ts +18 -0
  100. package/dist/src/vetNFTCollection.d.ts.map +1 -0
  101. package/dist/src/vetNFTCollection.js +52 -0
  102. package/dist/src/vetToken.d.ts +1 -1
  103. package/dist/src/vetToken.d.ts.map +1 -1
  104. package/dist/src/vetToken.js +2 -2
  105. package/dist/test/resources/vet.d.ts +88 -0
  106. package/dist/test/resources/vet.d.ts.map +1 -0
  107. package/dist/test/resources/vet.js +143 -0
  108. package/dist/test/transactionBuilder/addressInitializationBuilder.d.ts +2 -0
  109. package/dist/test/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  110. package/dist/test/transactionBuilder/addressInitializationBuilder.js +141 -0
  111. package/dist/test/transactionBuilder/burnNftBuilder.d.ts +2 -0
  112. package/dist/test/transactionBuilder/burnNftBuilder.d.ts.map +1 -0
  113. package/dist/test/transactionBuilder/burnNftBuilder.js +150 -0
  114. package/dist/test/transactionBuilder/claimRewardsBuilder.d.ts +2 -0
  115. package/dist/test/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  116. package/dist/test/transactionBuilder/claimRewardsBuilder.js +183 -0
  117. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.d.ts +2 -0
  118. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.d.ts.map +1 -0
  119. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.js +209 -0
  120. package/dist/test/transactionBuilder/exitDelegationBuilder.d.ts +2 -0
  121. package/dist/test/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  122. package/dist/test/transactionBuilder/exitDelegationBuilder.js +150 -0
  123. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.d.ts +2 -0
  124. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +1 -0
  125. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.js +132 -0
  126. package/dist/test/transactionBuilder/nftTransactionBuilder.d.ts +2 -0
  127. package/dist/test/transactionBuilder/nftTransactionBuilder.d.ts.map +1 -0
  128. package/dist/test/transactionBuilder/nftTransactionBuilder.js +242 -0
  129. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.d.ts +2 -0
  130. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.d.ts.map +1 -0
  131. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.js +247 -0
  132. package/dist/test/transactionBuilder/stakingTransaction.d.ts +2 -0
  133. package/dist/test/transactionBuilder/stakingTransaction.d.ts.map +1 -0
  134. package/dist/test/transactionBuilder/stakingTransaction.js +250 -0
  135. package/dist/test/transactionBuilder/tokenTransactionBuilder.d.ts +2 -0
  136. package/dist/test/transactionBuilder/tokenTransactionBuilder.d.ts.map +1 -0
  137. package/dist/test/transactionBuilder/tokenTransactionBuilder.js +249 -0
  138. package/dist/test/transactionBuilder/transferBuilder.d.ts +2 -0
  139. package/dist/test/transactionBuilder/transferBuilder.d.ts.map +1 -0
  140. package/dist/test/transactionBuilder/transferBuilder.js +244 -0
  141. package/dist/test/transactionBuilder/validatorRegistrationTxnBuilder.d.ts +2 -0
  142. package/dist/test/transactionBuilder/validatorRegistrationTxnBuilder.d.ts.map +1 -0
  143. package/dist/test/transactionBuilder/validatorRegistrationTxnBuilder.js +231 -0
  144. package/dist/test/unit/keyPair.d.ts +2 -0
  145. package/dist/test/unit/keyPair.d.ts.map +1 -0
  146. package/dist/test/unit/keyPair.js +181 -0
  147. package/dist/test/unit/stakingFlowE2E.d.ts +2 -0
  148. package/dist/test/unit/stakingFlowE2E.d.ts.map +1 -0
  149. package/dist/test/unit/stakingFlowE2E.js +292 -0
  150. package/dist/test/unit/utils.d.ts +2 -0
  151. package/dist/test/unit/utils.d.ts.map +1 -0
  152. package/dist/test/unit/utils.js +106 -0
  153. package/dist/test/unit/vet.d.ts +2 -0
  154. package/dist/test/unit/vet.d.ts.map +1 -0
  155. package/dist/test/unit/vet.js +336 -0
  156. package/dist/tsconfig.tsbuildinfo +1 -0
  157. package/package.json +16 -10
  158. package/.eslintignore +0 -5
  159. package/.mocharc.yml +0 -8
  160. package/CHANGELOG.md +0 -40
@@ -0,0 +1,118 @@
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.ExitDelegationBuilder = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const transactionBuilder_1 = require("./transactionBuilder");
10
+ const exitDelegation_1 = require("../transaction/exitDelegation");
11
+ const utils_1 = __importDefault(require("../utils"));
12
+ const constants_1 = require("../constants");
13
+ class ExitDelegationBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ /**
15
+ * Creates a new ExitDelegationBuilder instance.
16
+ *
17
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
18
+ */
19
+ constructor(_coinConfig) {
20
+ super(_coinConfig);
21
+ this._transaction = new exitDelegation_1.ExitDelegationTransaction(_coinConfig);
22
+ }
23
+ /**
24
+ * Initializes the builder with an existing ExitDelegationTransaction.
25
+ *
26
+ * @param {ExitDelegationTransaction} tx - The transaction to initialize the builder with
27
+ */
28
+ initBuilder(tx) {
29
+ this._transaction = tx;
30
+ }
31
+ /**
32
+ * Gets the exit delegation transaction instance.
33
+ *
34
+ * @returns {ExitDelegationTransaction} The exit delegation transaction
35
+ */
36
+ get exitDelegationTransaction() {
37
+ return this._transaction;
38
+ }
39
+ /**
40
+ * Gets the transaction type for unstaking.
41
+ *
42
+ * @returns {TransactionType} The transaction type
43
+ */
44
+ get transactionType() {
45
+ return sdk_core_1.TransactionType.StakingUnlock;
46
+ }
47
+ /**
48
+ * Validates the transaction clauses for exit delegation.
49
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
50
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
51
+ */
52
+ isValidTransactionClauses(clauses) {
53
+ try {
54
+ if (!clauses || !Array.isArray(clauses) || clauses.length === 0) {
55
+ return false;
56
+ }
57
+ const clause = clauses[0];
58
+ if (!clause.to || !utils_1.default.isValidAddress(clause.to)) {
59
+ return false;
60
+ }
61
+ // For unstaking transactions, value must be exactly '0x0'
62
+ if (clause.value !== 0) {
63
+ return false;
64
+ }
65
+ // Check if the data starts with the exitDelegation method ID
66
+ if (!clause.data.startsWith(constants_1.EXIT_DELEGATION_METHOD_ID)) {
67
+ return false;
68
+ }
69
+ return true;
70
+ }
71
+ catch (e) {
72
+ return false;
73
+ }
74
+ }
75
+ /**
76
+ * Sets the token ID for this unstaking transaction.
77
+ *
78
+ * @param {string} tokenId - The ID of the NFT token to unstake
79
+ * @returns {ExitDelegationBuilder} This transaction builder
80
+ */
81
+ tokenId(tokenId) {
82
+ this.exitDelegationTransaction.tokenId = tokenId;
83
+ return this;
84
+ }
85
+ /**
86
+ * Sets the staking contract address for this staking tx.
87
+ * The address must be explicitly provided to ensure the correct contract is used.
88
+ *
89
+ * @param {string} address - The staking contract address (required)
90
+ * @returns {StakingBuilder} This transaction builder
91
+ * @throws {Error} If no address is provided
92
+ */
93
+ stakingContractAddress(address) {
94
+ if (!address) {
95
+ throw new Error('Staking contract address is required');
96
+ }
97
+ this.validateAddress({ address });
98
+ this.exitDelegationTransaction.stakingContractAddress = address;
99
+ return this;
100
+ }
101
+ /** @inheritdoc */
102
+ validateTransaction(transaction) {
103
+ if (!transaction) {
104
+ throw new Error('transaction not defined');
105
+ }
106
+ (0, assert_1.default)(transaction.stakingContractAddress, 'Staking contract address is required');
107
+ (0, assert_1.default)(transaction.tokenId, 'Token ID is required');
108
+ this.validateAddress({ address: transaction.stakingContractAddress });
109
+ }
110
+ /** @inheritdoc */
111
+ async buildImplementation() {
112
+ this.transaction.type = this.transactionType;
113
+ await this.exitDelegationTransaction.build();
114
+ return this.transaction;
115
+ }
116
+ }
117
+ exports.ExitDelegationBuilder = ExitDelegationBuilder;
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpdERlbGVnYXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvZXhpdERlbGVnYXRpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUU1QixtREFBdUQ7QUFHdkQsNkRBQTBEO0FBQzFELGtFQUEwRTtBQUUxRSxxREFBNkI7QUFDN0IsNENBQXlEO0FBRXpELE1BQWEscUJBQXNCLFNBQVEsdUNBQWtCO0lBQzNEOzs7O09BSUc7SUFDSCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksMENBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBNkI7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxZQUF5QyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyx5QkFBeUIsQ0FBQyxPQUE0QjtRQUM5RCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCwwREFBMEQ7WUFDMUQsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCw2REFBNkQ7WUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFDQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDdkQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxzQkFBc0IsQ0FBQyxPQUFlO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztRQUNoRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBdUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ25GLElBQUEsZ0JBQU0sRUFBQyxXQUFXLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDN0MsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXBIRCxzREFvSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNsYXVzZSB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgRXhpdERlbGVnYXRpb25UcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL2V4aXREZWxlZ2F0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEVYSVRfREVMRUdBVElPTl9NRVRIT0RfSUQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgRXhpdERlbGVnYXRpb25CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgRXhpdERlbGVnYXRpb25CdWlsZGVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5PENvaW5Db25maWc+fSBfY29pbkNvbmZpZyAtIFRoZSBjb2luIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgRXhpdERlbGVnYXRpb25UcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJ1aWxkZXIgd2l0aCBhbiBleGlzdGluZyBFeGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0V4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb259IHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aFxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IEV4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGV4aXQgZGVsZWdhdGlvbiB0cmFuc2FjdGlvbiBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMge0V4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb259IFRoZSBleGl0IGRlbGVnYXRpb24gdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldCBleGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uKCk6IEV4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbiBhcyBFeGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRyYW5zYWN0aW9uIHR5cGUgZm9yIHVuc3Rha2luZy5cbiAgICpcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uVHlwZX0gVGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgdHJhbnNhY3Rpb24gY2xhdXNlcyBmb3IgZXhpdCBkZWxlZ2F0aW9uLlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQ2xhdXNlW119IGNsYXVzZXMgLSBUaGUgdHJhbnNhY3Rpb24gY2xhdXNlcyB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjbGF1c2VzIGFyZSB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVmFsaWRUcmFuc2FjdGlvbkNsYXVzZXMoY2xhdXNlczogVHJhbnNhY3Rpb25DbGF1c2VbXSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIWNsYXVzZXMgfHwgIUFycmF5LmlzQXJyYXkoY2xhdXNlcykgfHwgY2xhdXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjbGF1c2UgPSBjbGF1c2VzWzBdO1xuXG4gICAgICBpZiAoIWNsYXVzZS50byB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoY2xhdXNlLnRvKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciB1bnN0YWtpbmcgdHJhbnNhY3Rpb25zLCB2YWx1ZSBtdXN0IGJlIGV4YWN0bHkgJzB4MCdcbiAgICAgIGlmIChjbGF1c2UudmFsdWUgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZGF0YSBzdGFydHMgd2l0aCB0aGUgZXhpdERlbGVnYXRpb24gbWV0aG9kIElEXG4gICAgICBpZiAoIWNsYXVzZS5kYXRhLnN0YXJ0c1dpdGgoRVhJVF9ERUxFR0FUSU9OX01FVEhPRF9JRCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRva2VuIElEIGZvciB0aGlzIHVuc3Rha2luZyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuSWQgLSBUaGUgSUQgb2YgdGhlIE5GVCB0b2tlbiB0byB1bnN0YWtlXG4gICAqIEByZXR1cm5zIHtFeGl0RGVsZWdhdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgdG9rZW5JZCh0b2tlbklkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmV4aXREZWxlZ2F0aW9uVHJhbnNhY3Rpb24udG9rZW5JZCA9IHRva2VuSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzIGZvciB0aGlzIHN0YWtpbmcgdHguXG4gICAqIFRoZSBhZGRyZXNzIG11c3QgYmUgZXhwbGljaXRseSBwcm92aWRlZCB0byBlbnN1cmUgdGhlIGNvcnJlY3QgY29udHJhY3QgaXMgdXNlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzIChyZXF1aXJlZClcbiAgICogQHJldHVybnMge1N0YWtpbmdCdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICogQHRocm93cyB7RXJyb3J9IElmIG5vIGFkZHJlc3MgaXMgcHJvdmlkZWRcbiAgICovXG4gIHN0YWtpbmdDb250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YWtpbmcgY29udHJhY3QgYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5leGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uLnN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBFeGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICBhc3NlcnQodHJhbnNhY3Rpb24uc3Rha2luZ0NvbnRyYWN0QWRkcmVzcywgJ1N0YWtpbmcgY29udHJhY3QgYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICAgIGFzc2VydCh0cmFuc2FjdGlvbi50b2tlbklkLCAnVG9rZW4gSUQgaXMgcmVxdWlyZWQnKTtcblxuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24uc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50eXBlID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XG4gICAgYXdhaXQgdGhpcy5leGl0RGVsZWdhdGlvblRyYW5zYWN0aW9uLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,66 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { TransactionClause } from '@vechain/sdk-core';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ import { Transaction } from '../transaction/transaction';
6
+ import { FlushTokenTransaction } from '../transaction/flushTokenTransaction';
7
+ export declare class FlushTokenTransactionBuilder extends TransactionBuilder {
8
+ /**
9
+ * Creates a new FlushTokenTransactionBuilder instance.
10
+ *
11
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
12
+ */
13
+ constructor(_coinConfig: Readonly<CoinConfig>);
14
+ /**
15
+ * Initializes the builder with an existing FlushTokenTransaction.
16
+ *
17
+ * @param {FlushTokenTransaction} tx - The transaction to initialize the builder with
18
+ */
19
+ initBuilder(tx: FlushTokenTransaction): void;
20
+ /**
21
+ * Gets the flush token transaction instance.
22
+ *
23
+ * @returns {FlushTokenTransaction} The flush token transaction
24
+ */
25
+ get flushTokenTransaction(): FlushTokenTransaction;
26
+ /**
27
+ * Gets the transaction type for flush token.
28
+ *
29
+ * @returns {TransactionType} The transaction type
30
+ */
31
+ protected get transactionType(): TransactionType;
32
+ /**
33
+ * Validates the transaction clauses for flush token transaction.
34
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
35
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
36
+ */
37
+ protected isValidTransactionClauses(clauses: TransactionClause[]): boolean;
38
+ /**
39
+ * Sets the token address for this token flush tx.
40
+ *
41
+ * @param {string} address - The token address to be set for the token flush transaction
42
+ * @returns {FlushTokenTransactionBuilder} This transaction builder
43
+ */
44
+ tokenAddress(address: string): this;
45
+ /**
46
+ * Sets the forwarder version for this token flush transaction.
47
+ * The forwarder version must be 4 or higher.
48
+ *
49
+ * @param {number} version - The forwarder version to use (must be >= 4)
50
+ * @returns {FlushTokenTransactionBuilder} This transaction builder
51
+ * @throws {BuildTransactionError} When version is less than 4
52
+ */
53
+ forwarderVersion(version: number): this;
54
+ /** @inheritdoc */
55
+ validateTransaction(transaction?: FlushTokenTransaction): void;
56
+ /** @inheritdoc */
57
+ protected buildImplementation(): Promise<Transaction>;
58
+ /**
59
+ * Generates the transaction data for flush token transaction
60
+ *
61
+ * @private
62
+ * @returns {string} The encoded transaction data as a hex string
63
+ */
64
+ private getFlushTokenTransactionData;
65
+ }
66
+ //# sourceMappingURL=flushTokenTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushTokenTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/flushTokenTransactionBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAG7E,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,qBAAqB,GAAG,IAAI;IAI5C;;;;OAIG;IACH,IAAI,qBAAqB,IAAI,qBAAqB,CAEjD;IAED;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IA6B1E;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMnC;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASvC,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAW9D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CAQrC"}
@@ -0,0 +1,129 @@
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.FlushTokenTransactionBuilder = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
10
+ const transactionBuilder_1 = require("./transactionBuilder");
11
+ const utils_1 = __importDefault(require("../utils"));
12
+ class FlushTokenTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
13
+ /**
14
+ * Creates a new FlushTokenTransactionBuilder instance.
15
+ *
16
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
17
+ */
18
+ constructor(_coinConfig) {
19
+ super(_coinConfig);
20
+ }
21
+ /**
22
+ * Initializes the builder with an existing FlushTokenTransaction.
23
+ *
24
+ * @param {FlushTokenTransaction} tx - The transaction to initialize the builder with
25
+ */
26
+ initBuilder(tx) {
27
+ this._transaction = tx;
28
+ }
29
+ /**
30
+ * Gets the flush token transaction instance.
31
+ *
32
+ * @returns {FlushTokenTransaction} The flush token transaction
33
+ */
34
+ get flushTokenTransaction() {
35
+ return this._transaction;
36
+ }
37
+ /**
38
+ * Gets the transaction type for flush token.
39
+ *
40
+ * @returns {TransactionType} The transaction type
41
+ */
42
+ get transactionType() {
43
+ return sdk_core_1.TransactionType.FlushTokens;
44
+ }
45
+ /**
46
+ * Validates the transaction clauses for flush token transaction.
47
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
48
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
49
+ */
50
+ isValidTransactionClauses(clauses) {
51
+ try {
52
+ if (!clauses || !Array.isArray(clauses) || clauses.length === 0) {
53
+ return false;
54
+ }
55
+ const clause = clauses[0];
56
+ if (!clause.to || !utils_1.default.isValidAddress(clause.to)) {
57
+ return false;
58
+ }
59
+ // For address init transactions, value must be exactly 0
60
+ if (clause.value !== 0) {
61
+ return false;
62
+ }
63
+ const { tokenAddress } = (0, abstract_eth_1.decodeFlushTokensData)(clause.data, clause.to);
64
+ if (!utils_1.default.isValidAddress(tokenAddress)) {
65
+ return false;
66
+ }
67
+ return true;
68
+ }
69
+ catch (e) {
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Sets the token address for this token flush tx.
75
+ *
76
+ * @param {string} address - The token address to be set for the token flush transaction
77
+ * @returns {FlushTokenTransactionBuilder} This transaction builder
78
+ */
79
+ tokenAddress(address) {
80
+ this.validateAddress({ address });
81
+ this.flushTokenTransaction.tokenAddress = address;
82
+ return this;
83
+ }
84
+ /**
85
+ * Sets the forwarder version for this token flush transaction.
86
+ * The forwarder version must be 4 or higher.
87
+ *
88
+ * @param {number} version - The forwarder version to use (must be >= 4)
89
+ * @returns {FlushTokenTransactionBuilder} This transaction builder
90
+ * @throws {BuildTransactionError} When version is less than 4
91
+ */
92
+ forwarderVersion(version) {
93
+ if (version < 4) {
94
+ throw new sdk_core_1.BuildTransactionError(`Invalid forwarder version: ${version}`);
95
+ }
96
+ this.flushTokenTransaction.forwarderVersion = version;
97
+ return this;
98
+ }
99
+ /** @inheritdoc */
100
+ validateTransaction(transaction) {
101
+ if (!transaction) {
102
+ throw new Error('transaction not defined');
103
+ }
104
+ (0, assert_1.default)(transaction.contract, 'Contract address is required');
105
+ (0, assert_1.default)(transaction.tokenAddress, 'Token address is required');
106
+ this.validateAddress({ address: transaction.contract });
107
+ this.validateAddress({ address: transaction.tokenAddress });
108
+ }
109
+ /** @inheritdoc */
110
+ async buildImplementation() {
111
+ const transactionData = this.getFlushTokenTransactionData();
112
+ this.transaction.type = this.transactionType;
113
+ this.flushTokenTransaction.transactionData = transactionData;
114
+ await this.flushTokenTransaction.build();
115
+ return this.transaction;
116
+ }
117
+ /**
118
+ * Generates the transaction data for flush token transaction
119
+ *
120
+ * @private
121
+ * @returns {string} The encoded transaction data as a hex string
122
+ */
123
+ getFlushTokenTransactionData() {
124
+ const flushTokenData = (0, abstract_eth_1.flushTokensData)(this.flushTokenTransaction.contract, this.flushTokenTransaction.tokenAddress, this.flushTokenTransaction.forwarderVersion);
125
+ return flushTokenData;
126
+ }
127
+ }
128
+ exports.FlushTokenTransactionBuilder = FlushTokenTransactionBuilder;
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx1c2hUb2tlblRyYW5zYWN0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyL2ZsdXNoVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLG1EQUE4RTtBQUM5RSwyREFBa0Y7QUFHbEYsNkRBQTBEO0FBRzFELHFEQUE2QjtBQUU3QixNQUFhLDRCQUE2QixTQUFRLHVDQUFrQjtJQUNsRTs7OztPQUlHO0lBQ0gsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBeUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFxQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyx5QkFBeUIsQ0FBQyxPQUE0QjtRQUM5RCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCx5REFBeUQ7WUFDekQsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBQSxvQ0FBcUIsRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUV2RSxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxZQUFzQixDQUFDLEVBQUUsQ0FBQztnQkFDbEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxnQkFBZ0IsQ0FBQyxPQUFlO1FBQzlCLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyw4QkFBOEIsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBbUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUM3RCxJQUFBLGdCQUFNLEVBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQzdELE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyw0QkFBNEI7UUFDbEMsTUFBTSxjQUFjLEdBQUcsSUFBQSw4QkFBZSxFQUNwQyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQzVDLENBQUM7UUFDRixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUF2SUQsb0VBdUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBkZWNvZGVGbHVzaFRva2Vuc0RhdGEsIGZsdXNoVG9rZW5zRGF0YSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNsYXVzZSB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBGbHVzaFRva2VuVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbi9mbHVzaFRva2VuVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEZsdXNoVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGbHVzaFRva2VuVHJhbnNhY3Rpb25CdWlsZGVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5PENvaW5Db25maWc+fSBfY29pbkNvbmZpZyAtIFRoZSBjb2luIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJ1aWxkZXIgd2l0aCBhbiBleGlzdGluZyBGbHVzaFRva2VuVHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Rmx1c2hUb2tlblRyYW5zYWN0aW9ufSB0eCAtIFRoZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGhcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBGbHVzaFRva2VuVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGZsdXNoIHRva2VuIHRyYW5zYWN0aW9uIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Rmx1c2hUb2tlblRyYW5zYWN0aW9ufSBUaGUgZmx1c2ggdG9rZW4gdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldCBmbHVzaFRva2VuVHJhbnNhY3Rpb24oKTogRmx1c2hUb2tlblRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb24gYXMgRmx1c2hUb2tlblRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRyYW5zYWN0aW9uIHR5cGUgZm9yIGZsdXNoIHRva2VuLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25UeXBlfSBUaGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkZsdXNoVG9rZW5zO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgdHJhbnNhY3Rpb24gY2xhdXNlcyBmb3IgZmx1c2ggdG9rZW4gdHJhbnNhY3Rpb24uXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25DbGF1c2VbXX0gY2xhdXNlcyAtIFRoZSB0cmFuc2FjdGlvbiBjbGF1c2VzIHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNsYXVzZXMgYXJlIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZFRyYW5zYWN0aW9uQ2xhdXNlcyhjbGF1c2VzOiBUcmFuc2FjdGlvbkNsYXVzZVtdKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghY2xhdXNlcyB8fCAhQXJyYXkuaXNBcnJheShjbGF1c2VzKSB8fCBjbGF1c2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNsYXVzZSA9IGNsYXVzZXNbMF07XG5cbiAgICAgIGlmICghY2xhdXNlLnRvIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhjbGF1c2UudG8pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIGFkZHJlc3MgaW5pdCB0cmFuc2FjdGlvbnMsIHZhbHVlIG11c3QgYmUgZXhhY3RseSAwXG4gICAgICBpZiAoY2xhdXNlLnZhbHVlICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0b2tlbkFkZHJlc3MgfSA9IGRlY29kZUZsdXNoVG9rZW5zRGF0YShjbGF1c2UuZGF0YSwgY2xhdXNlLnRvKTtcblxuICAgICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyh0b2tlbkFkZHJlc3MgYXMgc3RyaW5nKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG9rZW4gYWRkcmVzcyBmb3IgdGhpcyB0b2tlbiBmbHVzaCB0eC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgdG9rZW4gYWRkcmVzcyB0byBiZSBzZXQgZm9yIHRoZSB0b2tlbiBmbHVzaCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7Rmx1c2hUb2tlblRyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICB0b2tlbkFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuZmx1c2hUb2tlblRyYW5zYWN0aW9uLnRva2VuQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZm9yd2FyZGVyIHZlcnNpb24gZm9yIHRoaXMgdG9rZW4gZmx1c2ggdHJhbnNhY3Rpb24uXG4gICAqIFRoZSBmb3J3YXJkZXIgdmVyc2lvbiBtdXN0IGJlIDQgb3IgaGlnaGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdmVyc2lvbiAtIFRoZSBmb3J3YXJkZXIgdmVyc2lvbiB0byB1c2UgKG11c3QgYmUgPj0gNClcbiAgICogQHJldHVybnMge0ZsdXNoVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKiBAdGhyb3dzIHtCdWlsZFRyYW5zYWN0aW9uRXJyb3J9IFdoZW4gdmVyc2lvbiBpcyBsZXNzIHRoYW4gNFxuICAgKi9cbiAgZm9yd2FyZGVyVmVyc2lvbih2ZXJzaW9uOiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAodmVyc2lvbiA8IDQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgZm9yd2FyZGVyIHZlcnNpb246ICR7dmVyc2lvbn1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmZsdXNoVG9rZW5UcmFuc2FjdGlvbi5mb3J3YXJkZXJWZXJzaW9uID0gdmVyc2lvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogRmx1c2hUb2tlblRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICBhc3NlcnQodHJhbnNhY3Rpb24uY29udHJhY3QsICdDb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkJyk7XG4gICAgYXNzZXJ0KHRyYW5zYWN0aW9uLnRva2VuQWRkcmVzcywgJ1Rva2VuIGFkZHJlc3MgaXMgcmVxdWlyZWQnKTtcblxuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24uY29udHJhY3QgfSk7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi50b2tlbkFkZHJlc3MgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uRGF0YSA9IHRoaXMuZ2V0Rmx1c2hUb2tlblRyYW5zYWN0aW9uRGF0YSgpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHlwZSA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xuICAgIHRoaXMuZmx1c2hUb2tlblRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uRGF0YSA9IHRyYW5zYWN0aW9uRGF0YTtcbiAgICBhd2FpdCB0aGlzLmZsdXNoVG9rZW5UcmFuc2FjdGlvbi5idWlsZCgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgdHJhbnNhY3Rpb24gZGF0YSBmb3IgZmx1c2ggdG9rZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGVuY29kZWQgdHJhbnNhY3Rpb24gZGF0YSBhcyBhIGhleCBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgZ2V0Rmx1c2hUb2tlblRyYW5zYWN0aW9uRGF0YSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZsdXNoVG9rZW5EYXRhID0gZmx1c2hUb2tlbnNEYXRhKFxuICAgICAgdGhpcy5mbHVzaFRva2VuVHJhbnNhY3Rpb24uY29udHJhY3QsXG4gICAgICB0aGlzLmZsdXNoVG9rZW5UcmFuc2FjdGlvbi50b2tlbkFkZHJlc3MsXG4gICAgICB0aGlzLmZsdXNoVG9rZW5UcmFuc2FjdGlvbi5mb3J3YXJkZXJWZXJzaW9uXG4gICAgKTtcbiAgICByZXR1cm4gZmx1c2hUb2tlbkRhdGE7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { TransactionClause } from '@vechain/sdk-core';
3
+ import { Recipient, TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { NFTTransaction } from '../transaction/nftTransaction';
7
+ export declare class NFTTransactionBuilder extends TransactionBuilder {
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ initBuilder(tx: NFTTransaction): void;
10
+ get nftTransaction(): NFTTransaction;
11
+ protected get transactionType(): TransactionType;
12
+ validateRecipientValue(value: BigNumber): void;
13
+ recipients(recipients: Recipient[]): this;
14
+ /**
15
+ * Validates the transaction clauses for NFT transaction.
16
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
17
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
18
+ */
19
+ protected isValidTransactionClauses(clauses: TransactionClause[]): boolean;
20
+ nftCollectionId(nftCollectionId: string): this;
21
+ tokenId(tokenId: string): this;
22
+ }
23
+ //# sourceMappingURL=nftTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nftTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/nftTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAyB,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,qBAAa,qBAAsB,SAAQ,kBAAkB;gBAC/C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAIrC,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQ9C,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IASzC;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IAmC1E,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAW9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAQ/B"}
@@ -0,0 +1,93 @@
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.NFTTransactionBuilder = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const transactionBuilder_1 = require("./transactionBuilder");
10
+ const utils_1 = __importDefault(require("../utils"));
11
+ class NFTTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
12
+ constructor(_coinConfig) {
13
+ super(_coinConfig);
14
+ }
15
+ initBuilder(tx) {
16
+ super.initBuilder(tx);
17
+ }
18
+ get nftTransaction() {
19
+ return this._transaction;
20
+ }
21
+ get transactionType() {
22
+ return sdk_core_1.TransactionType.SendNFT;
23
+ }
24
+ validateRecipientValue(value) {
25
+ if (value.isNaN()) {
26
+ throw new sdk_core_1.BuildTransactionError('Invalid amount format');
27
+ }
28
+ else if (!value.isEqualTo(1)) {
29
+ throw new sdk_core_1.BuildTransactionError('Value cannot be anything other than 1 for NFT transfer');
30
+ }
31
+ }
32
+ recipients(recipients) {
33
+ for (const recipient of recipients) {
34
+ this.validateAddress({ address: recipient.address });
35
+ this.validateRecipientValue(new bignumber_js_1.default(recipient.amount));
36
+ }
37
+ this.transaction.recipients = recipients;
38
+ return this;
39
+ }
40
+ /**
41
+ * Validates the transaction clauses for NFT transaction.
42
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
43
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
44
+ */
45
+ isValidTransactionClauses(clauses) {
46
+ try {
47
+ if (!clauses || !Array.isArray(clauses) || clauses.length === 0) {
48
+ return false;
49
+ }
50
+ const clause = clauses[0];
51
+ if (!clause.to || !utils_1.default.isValidAddress(clause.to)) {
52
+ return false;
53
+ }
54
+ // For NFT transactions, the value should be 0
55
+ if (clause.value !== 0) {
56
+ return false;
57
+ }
58
+ const { recipients, sender } = utils_1.default.decodeTransferNFTData(clause.data);
59
+ const recipientAddress = recipients[0].address.toLowerCase();
60
+ if (!recipientAddress || !utils_1.default.isValidAddress(recipientAddress)) {
61
+ return false;
62
+ }
63
+ if (!sender || !utils_1.default.isValidAddress(sender)) {
64
+ return false;
65
+ }
66
+ return true;
67
+ }
68
+ catch (e) {
69
+ return false;
70
+ }
71
+ }
72
+ nftCollectionId(nftCollectionId) {
73
+ // nftCollectionId is basically a contract address, so we can use the same validation
74
+ try {
75
+ this.validateAddress({ address: nftCollectionId });
76
+ }
77
+ catch (e) {
78
+ throw new sdk_core_1.BuildTransactionError('Invalid nftCollectionId, must be a valid contract address');
79
+ }
80
+ this.nftTransaction.nftCollectionId = nftCollectionId;
81
+ return this;
82
+ }
83
+ tokenId(tokenId) {
84
+ const tokenIdBN = new bignumber_js_1.default(tokenId);
85
+ if (!tokenIdBN.isInteger() || tokenIdBN.isNegative()) {
86
+ throw new Error('Invalid tokenId, must be a non-negative integer');
87
+ }
88
+ this.nftTransaction.tokenId = tokenIdBN.toFixed(0);
89
+ return this;
90
+ }
91
+ }
92
+ exports.NFTTransactionBuilder = NFTTransactionBuilder;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmZ0VHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvbmZ0VHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUdyQyxtREFBeUY7QUFHekYsNkRBQTBEO0FBRTFELHFEQUE2QjtBQUU3QixNQUFhLHFCQUFzQixTQUFRLHVDQUFrQjtJQUMzRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWtCO1FBQzVCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUE4QixDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBZ0I7UUFDckMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksZ0NBQXFCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksZ0NBQXFCLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUM1RixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUF1QjtRQUNoQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyx5QkFBeUIsQ0FBQyxPQUE0QjtRQUM5RCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCw4Q0FBOEM7WUFDOUMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLGVBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEUsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRTdELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNqRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxlQUF1QjtRQUNyQyxxRkFBcUY7UUFDckYsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZTtRQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE3RkQsc0RBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25DbGF1c2UgfSBmcm9tICdAdmVjaGFpbi9zZGstY29yZSc7XG5cbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IE5GVFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vbmZ0VHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIE5GVFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBORlRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgfVxuXG4gIGdldCBuZnRUcmFuc2FjdGlvbigpOiBORlRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uIGFzIE5GVFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmRORlQ7XG4gIH1cblxuICB2YWxpZGF0ZVJlY2lwaWVudFZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNOYU4oKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhbW91bnQgZm9ybWF0Jyk7XG4gICAgfSBlbHNlIGlmICghdmFsdWUuaXNFcXVhbFRvKDEpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgYW55dGhpbmcgb3RoZXIgdGhhbiAxIGZvciBORlQgdHJhbnNmZXInKTtcbiAgICB9XG4gIH1cblxuICByZWNpcGllbnRzKHJlY2lwaWVudHM6IFJlY2lwaWVudFtdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCByZWNpcGllbnQgb2YgcmVjaXBpZW50cykge1xuICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9KTtcbiAgICAgIHRoaXMudmFsaWRhdGVSZWNpcGllbnRWYWx1ZShuZXcgQmlnTnVtYmVyKHJlY2lwaWVudC5hbW91bnQpKTtcbiAgICB9XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnRzID0gcmVjaXBpZW50cztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRyYW5zYWN0aW9uIGNsYXVzZXMgZm9yIE5GVCB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkNsYXVzZVtdfSBjbGF1c2VzIC0gVGhlIHRyYW5zYWN0aW9uIGNsYXVzZXMgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2xhdXNlcyBhcmUgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHByb3RlY3RlZCBpc1ZhbGlkVHJhbnNhY3Rpb25DbGF1c2VzKGNsYXVzZXM6IFRyYW5zYWN0aW9uQ2xhdXNlW10pOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFjbGF1c2VzIHx8ICFBcnJheS5pc0FycmF5KGNsYXVzZXMpIHx8IGNsYXVzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2xhdXNlID0gY2xhdXNlc1swXTtcblxuICAgICAgaWYgKCFjbGF1c2UudG8gfHwgIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGNsYXVzZS50bykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3IgTkZUIHRyYW5zYWN0aW9ucywgdGhlIHZhbHVlIHNob3VsZCBiZSAwXG4gICAgICBpZiAoY2xhdXNlLnZhbHVlICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyByZWNpcGllbnRzLCBzZW5kZXIgfSA9IHV0aWxzLmRlY29kZVRyYW5zZmVyTkZURGF0YShjbGF1c2UuZGF0YSk7XG5cbiAgICAgIGNvbnN0IHJlY2lwaWVudEFkZHJlc3MgPSByZWNpcGllbnRzWzBdLmFkZHJlc3MudG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKCFyZWNpcGllbnRBZGRyZXNzIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnRBZGRyZXNzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2VuZGVyIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhzZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5mdENvbGxlY3Rpb25JZChuZnRDb2xsZWN0aW9uSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIC8vIG5mdENvbGxlY3Rpb25JZCBpcyBiYXNpY2FsbHkgYSBjb250cmFjdCBhZGRyZXNzLCBzbyB3ZSBjYW4gdXNlIHRoZSBzYW1lIHZhbGlkYXRpb25cbiAgICB0cnkge1xuICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiBuZnRDb2xsZWN0aW9uSWQgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBuZnRDb2xsZWN0aW9uSWQsIG11c3QgYmUgYSB2YWxpZCBjb250cmFjdCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMubmZ0VHJhbnNhY3Rpb24ubmZ0Q29sbGVjdGlvbklkID0gbmZ0Q29sbGVjdGlvbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdG9rZW5JZCh0b2tlbklkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB0b2tlbklkQk4gPSBuZXcgQmlnTnVtYmVyKHRva2VuSWQpO1xuICAgIGlmICghdG9rZW5JZEJOLmlzSW50ZWdlcigpIHx8IHRva2VuSWRCTi5pc05lZ2F0aXZlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0b2tlbklkLCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXInKTtcbiAgICB9XG4gICAgdGhpcy5uZnRUcmFuc2FjdGlvbi50b2tlbklkID0gdG9rZW5JZEJOLnRvRml4ZWQoMCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { TransactionClause } from '@vechain/sdk-core';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ import { Transaction } from '../transaction/transaction';
6
+ import { StakeClauseTransaction } from '../transaction/stakeClauseTransaction';
7
+ export declare class StakeClauseTxnBuilder extends TransactionBuilder {
8
+ /**
9
+ * Creates a new StakingBuilder instance.
10
+ *
11
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
12
+ */
13
+ constructor(_coinConfig: Readonly<CoinConfig>);
14
+ /**
15
+ * Initializes the builder with an existing StakingTransaction.
16
+ *
17
+ * @param {StakingTransaction} tx - The transaction to initialize the builder with
18
+ */
19
+ initBuilder(tx: StakeClauseTransaction): void;
20
+ /**
21
+ * Gets the staking transaction instance.
22
+ *
23
+ * @returns {StakingTransaction} The staking transaction
24
+ */
25
+ get stakingTransaction(): StakeClauseTransaction;
26
+ /**
27
+ * Gets the transaction type for staking.
28
+ *
29
+ * @returns {TransactionType} The transaction type
30
+ */
31
+ protected get transactionType(): TransactionType;
32
+ /**
33
+ * Validates the transaction clauses for staking transaction.
34
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
35
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
36
+ */
37
+ protected isValidTransactionClauses(clauses: TransactionClause[]): boolean;
38
+ /**
39
+ * Sets the staking contract address for this staking tx.
40
+ * The address must be explicitly provided to ensure the correct contract is used.
41
+ *
42
+ * @param {string} address - The staking contract address (required)
43
+ * @returns {StakingBuilder} This transaction builder
44
+ * @throws {Error} If no address is provided
45
+ */
46
+ stakingContractAddress(address: string): this;
47
+ /**
48
+ * Sets the level ID for this staking tx.
49
+ *
50
+ * @param {number} levelId - The level ID for staking
51
+ * @returns {StakingBuilder} This transaction builder
52
+ */
53
+ levelId(levelId: number): this;
54
+ /**
55
+ * Sets the amount to stake for this staking tx (VET amount being sent).
56
+ *
57
+ * @param {string} amount - The amount to stake in wei
58
+ * @returns {StakingBuilder} This transaction builder
59
+ */
60
+ amountToStake(amount: string): this;
61
+ /**
62
+ * Sets the transaction data for this staking tx.
63
+ *
64
+ * @param {string} data - The transaction data
65
+ * @returns {StakingBuilder} This transaction builder
66
+ */
67
+ transactionData(data: string): this;
68
+ /** @inheritdoc */
69
+ validateTransaction(transaction?: StakeClauseTransaction): void;
70
+ /** @inheritdoc */
71
+ protected buildImplementation(): Promise<Transaction>;
72
+ }
73
+ //# sourceMappingURL=stakeClauseTxnBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakeClauseTxnBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/stakeClauseTxnBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAI7C;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,sBAAsB,CAE/C;IAED;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IAuB1E;;;;;;;OAOG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS7C;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKnC;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAuB/D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAK5D"}