@bitgo-beta/sdk-coin-vet 1.0.1-beta.49 → 1.0.1-beta.491

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/src/index.d.ts +2 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +3 -1
  4. package/dist/src/lib/constants.d.ts +25 -0
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +27 -2
  7. package/dist/src/lib/iface.d.ts +26 -2
  8. package/dist/src/lib/iface.d.ts.map +1 -1
  9. package/dist/src/lib/iface.js +1 -1
  10. package/dist/src/lib/index.d.ts +19 -0
  11. package/dist/src/lib/index.d.ts.map +1 -1
  12. package/dist/src/lib/index.js +40 -2
  13. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts +31 -0
  14. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts.map +1 -0
  15. package/dist/src/lib/transaction/addressInitializationTransaction.js +170 -0
  16. package/dist/src/lib/transaction/burnNftTransaction.d.ts +26 -0
  17. package/dist/src/lib/transaction/burnNftTransaction.d.ts.map +1 -0
  18. package/dist/src/lib/transaction/burnNftTransaction.js +131 -0
  19. package/dist/src/lib/transaction/claimRewards.d.ts +41 -0
  20. package/dist/src/lib/transaction/claimRewards.d.ts.map +1 -0
  21. package/dist/src/lib/transaction/claimRewards.js +210 -0
  22. package/dist/src/lib/transaction/delegateClauseTransaction.d.ts +27 -0
  23. package/dist/src/lib/transaction/delegateClauseTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/delegateClauseTransaction.js +156 -0
  25. package/dist/src/lib/transaction/exitDelegation.d.ts +26 -0
  26. package/dist/src/lib/transaction/exitDelegation.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/exitDelegation.js +136 -0
  28. package/dist/src/lib/transaction/flushTokenTransaction.d.ts +20 -0
  29. package/dist/src/lib/transaction/flushTokenTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/flushTokenTransaction.js +98 -0
  31. package/dist/src/lib/transaction/nftTransaction.d.ts +17 -0
  32. package/dist/src/lib/transaction/nftTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/nftTransaction.js +108 -0
  34. package/dist/src/lib/transaction/stakeClauseTransaction.d.ts +27 -0
  35. package/dist/src/lib/transaction/stakeClauseTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/stakeClauseTransaction.js +158 -0
  37. package/dist/src/lib/transaction/stakingTransaction.d.ts +31 -0
  38. package/dist/src/lib/transaction/stakingTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/stakingTransaction.js +169 -0
  40. package/dist/src/lib/transaction/tokenTransaction.d.ts +14 -0
  41. package/dist/src/lib/transaction/tokenTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/tokenTransaction.js +95 -0
  43. package/dist/src/lib/transaction/transaction.d.ts +18 -28
  44. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  45. package/dist/src/lib/transaction/transaction.js +97 -57
  46. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts +78 -0
  47. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/transactionBuilder/addressInitializationBuilder.js +158 -0
  49. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts +59 -0
  50. package/dist/src/lib/transactionBuilder/burnNftBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/transactionBuilder/burnNftBuilder.js +118 -0
  52. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts +57 -0
  53. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  54. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.js +142 -0
  55. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts +66 -0
  56. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/delegateTxnBuilder.js +120 -0
  58. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts +58 -0
  59. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/exitDelegationBuilder.js +115 -0
  61. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts +66 -0
  62. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/flushTokenTransactionBuilder.js +129 -0
  64. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts +23 -0
  65. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/nftTransactionBuilder.js +93 -0
  67. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.d.ts +73 -0
  68. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/stakeClauseTxnBuilder.js +146 -0
  70. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts +73 -0
  71. package/dist/src/lib/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/stakingBuilder.js +147 -0
  73. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts +21 -0
  74. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/tokenTransactionBuilder.js +70 -0
  76. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +10 -9
  77. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -1
  78. package/dist/src/lib/transactionBuilder/transactionBuilder.js +25 -19
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +52 -0
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +115 -1
  82. package/dist/src/lib/types.d.ts +24 -0
  83. package/dist/src/lib/types.d.ts.map +1 -1
  84. package/dist/src/lib/types.js +1 -1
  85. package/dist/src/lib/utils.d.ts +98 -1
  86. package/dist/src/lib/utils.d.ts.map +1 -1
  87. package/dist/src/lib/utils.js +262 -8
  88. package/dist/src/register.d.ts.map +1 -1
  89. package/dist/src/register.js +9 -1
  90. package/dist/src/vet.d.ts +80 -2
  91. package/dist/src/vet.d.ts.map +1 -1
  92. package/dist/src/vet.js +478 -8
  93. package/dist/src/vetNFTCollection.d.ts +18 -0
  94. package/dist/src/vetNFTCollection.d.ts.map +1 -0
  95. package/dist/src/vetNFTCollection.js +52 -0
  96. package/dist/src/vetToken.d.ts +19 -0
  97. package/dist/src/vetToken.d.ts.map +1 -0
  98. package/dist/src/vetToken.js +52 -0
  99. package/dist/test/resources/vet.d.ts +70 -0
  100. package/dist/test/resources/vet.d.ts.map +1 -0
  101. package/dist/test/resources/vet.js +125 -0
  102. package/dist/test/transactionBuilder/addressInitializationBuilder.d.ts +2 -0
  103. package/dist/test/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  104. package/dist/test/transactionBuilder/addressInitializationBuilder.js +141 -0
  105. package/dist/test/transactionBuilder/burnNftBuilder.d.ts +2 -0
  106. package/dist/test/transactionBuilder/burnNftBuilder.d.ts.map +1 -0
  107. package/dist/test/transactionBuilder/burnNftBuilder.js +154 -0
  108. package/dist/test/transactionBuilder/claimRewardsBuilder.d.ts +2 -0
  109. package/dist/test/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  110. package/dist/test/transactionBuilder/claimRewardsBuilder.js +246 -0
  111. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.d.ts +2 -0
  112. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.d.ts.map +1 -0
  113. package/dist/test/transactionBuilder/delegateClauseTxnBuilder.js +173 -0
  114. package/dist/test/transactionBuilder/exitDelegationBuilder.d.ts +2 -0
  115. package/dist/test/transactionBuilder/exitDelegationBuilder.d.ts.map +1 -0
  116. package/dist/test/transactionBuilder/exitDelegationBuilder.js +154 -0
  117. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.d.ts +2 -0
  118. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.d.ts.map +1 -0
  119. package/dist/test/transactionBuilder/flushTokenTransactionBuilder.js +132 -0
  120. package/dist/test/transactionBuilder/nftTransactionBuilder.d.ts +2 -0
  121. package/dist/test/transactionBuilder/nftTransactionBuilder.d.ts.map +1 -0
  122. package/dist/test/transactionBuilder/nftTransactionBuilder.js +242 -0
  123. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.d.ts +2 -0
  124. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.d.ts.map +1 -0
  125. package/dist/test/transactionBuilder/stakeClauseTransactionBuilder.js +248 -0
  126. package/dist/test/transactionBuilder/stakingTransaction.d.ts +2 -0
  127. package/dist/test/transactionBuilder/stakingTransaction.d.ts.map +1 -0
  128. package/dist/test/transactionBuilder/stakingTransaction.js +250 -0
  129. package/dist/test/transactionBuilder/tokenTransactionBuilder.d.ts +2 -0
  130. package/dist/test/transactionBuilder/tokenTransactionBuilder.d.ts.map +1 -0
  131. package/dist/test/transactionBuilder/tokenTransactionBuilder.js +249 -0
  132. package/dist/test/transactionBuilder/transferBuilder.d.ts +2 -0
  133. package/dist/test/transactionBuilder/transferBuilder.d.ts.map +1 -0
  134. package/dist/test/transactionBuilder/transferBuilder.js +214 -0
  135. package/dist/test/unit/keyPair.d.ts +2 -0
  136. package/dist/test/unit/keyPair.d.ts.map +1 -0
  137. package/dist/test/unit/keyPair.js +181 -0
  138. package/dist/test/unit/stakingFlowE2E.d.ts +2 -0
  139. package/dist/test/unit/stakingFlowE2E.d.ts.map +1 -0
  140. package/dist/test/unit/stakingFlowE2E.js +229 -0
  141. package/dist/test/unit/utils.d.ts +2 -0
  142. package/dist/test/unit/utils.d.ts.map +1 -0
  143. package/dist/test/unit/utils.js +106 -0
  144. package/dist/test/unit/vet.d.ts +2 -0
  145. package/dist/test/unit/vet.d.ts.map +1 -0
  146. package/dist/test/unit/vet.js +251 -0
  147. package/dist/tsconfig.tsbuildinfo +1 -0
  148. package/package.json +16 -10
  149. package/.eslintignore +0 -5
  150. package/.mocharc.yml +0 -8
  151. package/CHANGELOG.md +0 -34
@@ -0,0 +1,78 @@
1
+ import { TransactionClause } from '@vechain/sdk-core';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ import { AddressInitializationTransaction } from '../transaction/addressInitializationTransaction';
6
+ import { Transaction } from '../transaction/transaction';
7
+ export declare class AddressInitializationBuilder extends TransactionBuilder {
8
+ /**
9
+ * Creates a new AddressInitializationBuilder 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 AddressInitializationTransaction.
16
+ *
17
+ * @param {AddressInitializationTransaction} tx - The transaction to initialize the builder with
18
+ */
19
+ initBuilder(tx: AddressInitializationTransaction): void;
20
+ /**
21
+ * Gets the address initialization transaction instance.
22
+ *
23
+ * @returns {AddressInitializationTransaction} The address initialization transaction
24
+ */
25
+ get addressInitializationTransaction(): AddressInitializationTransaction;
26
+ /**
27
+ * Gets the transaction type for address initialization.
28
+ *
29
+ * @returns {TransactionType} The transaction type
30
+ */
31
+ protected get transactionType(): TransactionType;
32
+ /**
33
+ * Validates the transaction clauses for address initialization.
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 base address for this forwarder init tx.
40
+ *
41
+ * @param {string} address - The base address to be set for the forwarder address
42
+ * @returns {AddressInitializationBuilder} This transaction builder
43
+ */
44
+ baseAddress(address: string): this;
45
+ /**
46
+ * Sets the fee address for this forwarder init tx.
47
+ *
48
+ * @param {string} address - The fee address to be set for the forwarder address
49
+ * @returns {AddressInitializationBuilder} This transaction builder
50
+ */
51
+ feeAddress(address: string): this;
52
+ /**
53
+ * Sets the salt value for the forwarder address creation.
54
+ *
55
+ * @param {string} salt - The salt value to use for address creation
56
+ * @returns {AddressInitializationBuilder} This transaction builder
57
+ */
58
+ salt(salt: string): this;
59
+ /**
60
+ * Sets the initialization code for the forwarder contract.
61
+ *
62
+ * @param {string} address - The address to generate proxy init code for
63
+ * @returns {AddressInitializationBuilder} This transaction builder
64
+ */
65
+ initCode(address: string): this;
66
+ /** @inheritdoc */
67
+ validateTransaction(transaction?: AddressInitializationTransaction): void;
68
+ /** @inheritdoc */
69
+ protected buildImplementation(): Promise<Transaction>;
70
+ /**
71
+ * Generates the transaction data for address initialization by encoding the createForwarder method call.
72
+ *
73
+ * @private
74
+ * @returns {string} The encoded transaction data as a hex string
75
+ */
76
+ private getAddressInitializationData;
77
+ }
78
+ //# sourceMappingURL=addressInitializationBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/addressInitializationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,gCAAgC,GAAG,IAAI;IAIvD;;;;OAIG;IACH,IAAI,gCAAgC,IAAI,gCAAgC,CAEvE;IAED;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IAiC1E;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMlC;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM/B,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,gCAAgC,GAAG,IAAI;IAezE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CAWrC"}
@@ -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.AddressInitializationBuilder = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
9
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
+ const ethereumjs_util_1 = require("ethereumjs-util");
11
+ const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
12
+ const transactionBuilder_1 = require("./transactionBuilder");
13
+ const utils_1 = __importDefault(require("../utils"));
14
+ class AddressInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
15
+ /**
16
+ * Creates a new AddressInitializationBuilder instance.
17
+ *
18
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
19
+ */
20
+ constructor(_coinConfig) {
21
+ super(_coinConfig);
22
+ }
23
+ /**
24
+ * Initializes the builder with an existing AddressInitializationTransaction.
25
+ *
26
+ * @param {AddressInitializationTransaction} tx - The transaction to initialize the builder with
27
+ */
28
+ initBuilder(tx) {
29
+ this._transaction = tx;
30
+ }
31
+ /**
32
+ * Gets the address initialization transaction instance.
33
+ *
34
+ * @returns {AddressInitializationTransaction} The address initialization transaction
35
+ */
36
+ get addressInitializationTransaction() {
37
+ return this._transaction;
38
+ }
39
+ /**
40
+ * Gets the transaction type for address initialization.
41
+ *
42
+ * @returns {TransactionType} The transaction type
43
+ */
44
+ get transactionType() {
45
+ return sdk_core_1.TransactionType.AddressInitialization;
46
+ }
47
+ /**
48
+ * Validates the transaction clauses for address initialization.
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 address init transactions, value must be exactly '0x0'
62
+ if (clause.value !== 0) {
63
+ return false;
64
+ }
65
+ const { baseAddress, addressCreationSalt, feeAddress } = (0, abstract_eth_1.decodeForwarderCreationData)(clause.data);
66
+ if (!utils_1.default.isValidAddress(baseAddress) || !utils_1.default.isValidAddress(feeAddress)) {
67
+ return false;
68
+ }
69
+ if (!addressCreationSalt) {
70
+ return false;
71
+ }
72
+ return true;
73
+ }
74
+ catch (e) {
75
+ return false;
76
+ }
77
+ }
78
+ /**
79
+ * Sets the base address for this forwarder init tx.
80
+ *
81
+ * @param {string} address - The base address to be set for the forwarder address
82
+ * @returns {AddressInitializationBuilder} This transaction builder
83
+ */
84
+ baseAddress(address) {
85
+ this.validateAddress({ address });
86
+ this.addressInitializationTransaction.baseAddress = address;
87
+ return this;
88
+ }
89
+ /**
90
+ * Sets the fee address for this forwarder init tx.
91
+ *
92
+ * @param {string} address - The fee address to be set for the forwarder address
93
+ * @returns {AddressInitializationBuilder} This transaction builder
94
+ */
95
+ feeAddress(address) {
96
+ this.validateAddress({ address });
97
+ this.addressInitializationTransaction.feeAddress = address;
98
+ return this;
99
+ }
100
+ /**
101
+ * Sets the salt value for the forwarder address creation.
102
+ *
103
+ * @param {string} salt - The salt value to use for address creation
104
+ * @returns {AddressInitializationBuilder} This transaction builder
105
+ */
106
+ salt(salt) {
107
+ this.addressInitializationTransaction.salt = salt;
108
+ return this;
109
+ }
110
+ /**
111
+ * Sets the initialization code for the forwarder contract.
112
+ *
113
+ * @param {string} address - The address to generate proxy init code for
114
+ * @returns {AddressInitializationBuilder} This transaction builder
115
+ */
116
+ initCode(address) {
117
+ this.validateAddress({ address });
118
+ this.addressInitializationTransaction.initCode = (0, abstract_eth_1.getProxyInitcode)(address);
119
+ return this;
120
+ }
121
+ /** @inheritdoc */
122
+ validateTransaction(transaction) {
123
+ if (!transaction) {
124
+ throw new Error('transaction not defined');
125
+ }
126
+ (0, assert_1.default)(transaction.contract, 'Contract address is required');
127
+ (0, assert_1.default)(transaction.baseAddress, 'Base address is required');
128
+ (0, assert_1.default)(transaction.feeAddress, 'Fee address is required');
129
+ (0, assert_1.default)(transaction.salt, 'Salt is required');
130
+ (0, assert_1.default)(transaction.initCode, 'Init code is required');
131
+ this.validateAddress({ address: transaction.contract });
132
+ this.validateAddress({ address: transaction.baseAddress });
133
+ this.validateAddress({ address: transaction.feeAddress });
134
+ }
135
+ /** @inheritdoc */
136
+ async buildImplementation() {
137
+ const transactionData = this.getAddressInitializationData();
138
+ this.transaction.type = this.transactionType;
139
+ this.addressInitializationTransaction.transactionData = transactionData;
140
+ await this.addressInitializationTransaction.build();
141
+ return this.transaction;
142
+ }
143
+ /**
144
+ * Generates the transaction data for address initialization by encoding the createForwarder method call.
145
+ *
146
+ * @private
147
+ * @returns {string} The encoded transaction data as a hex string
148
+ */
149
+ getAddressInitializationData() {
150
+ const saltBuffer = (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.toBuffer)(this.addressInitializationTransaction.salt), 32);
151
+ const { createForwarderParams, createForwarderTypes } = (0, abstract_eth_1.getCreateForwarderParamsAndTypes)(this.addressInitializationTransaction.baseAddress, saltBuffer, this.addressInitializationTransaction.feeAddress);
152
+ const method = ethereumjs_abi_1.default.methodID('createForwarder', createForwarderTypes);
153
+ const args = ethereumjs_abi_1.default.rawEncode(createForwarderTypes, createForwarderParams);
154
+ return (0, ethereumjs_util_1.addHexPrefix)(Buffer.concat([method, args]).toString('hex'));
155
+ }
156
+ }
157
+ exports.AddressInitializationBuilder = AddressInitializationBuilder;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyL2FkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLDJEQUEySDtBQUMzSCxtREFBdUQ7QUFFdkQscURBQXdFO0FBQ3hFLG9FQUF5QztBQUV6Qyw2REFBMEQ7QUFHMUQscURBQTZCO0FBRTdCLE1BQWEsNEJBQTZCLFNBQVEsdUNBQWtCO0lBQ2xFOzs7O09BSUc7SUFDSCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFvQztRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksZ0NBQWdDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFlBQWdELENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLHFCQUFxQixDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ08seUJBQXlCLENBQUMsT0FBNEI7UUFDOUQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEUsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENB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QUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN4RSxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssNEJBQTRCO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLElBQUEsK0JBQWEsRUFBQyxJQUFBLDBCQUFRLEVBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLElBQUEsK0NBQWdDLEVBQ3RGLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxXQUFXLEVBQ2pELFVBQVUsRUFDVixJQUFJLENBQUMsZ0NBQWdDLENBQUMsVUFBVSxDQUNqRCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsd0JBQVcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyx3QkFBVyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sSUFBQSw4QkFBWSxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0Y7QUFwS0Qsb0VBb0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25DbGF1c2UgfSBmcm9tICdAdmVjaGFpbi9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRQcm94eUluaXRjb2RlLCBnZXRDcmVhdGVGb3J3YXJkZXJQYXJhbXNBbmRUeXBlcywgZGVjb2RlRm9yd2FyZGVyQ3JlYXRpb25EYXRhIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IHNldExlbmd0aExlZnQsIHRvQnVmZmVyLCBhZGRIZXhQcmVmaXggfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbi9hZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFkb25seTxDb2luQ29uZmlnPn0gX2NvaW5Db25maWcgLSBUaGUgY29pbiBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKi9cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBidWlsZGVyIHdpdGggYW4gZXhpc3RpbmcgQWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7QWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb259IHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aFxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IEFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhZGRyZXNzIGluaXRpYWxpemF0aW9uIHRyYW5zYWN0aW9uIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb259IFRoZSBhZGRyZXNzIGluaXRpYWxpemF0aW9uIHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXQgYWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24oKTogQWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbiBhcyBBZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0cmFuc2FjdGlvbiB0eXBlIGZvciBhZGRyZXNzIGluaXRpYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25UeXBlfSBUaGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRyYW5zYWN0aW9uIGNsYXVzZXMgZm9yIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24uXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25DbGF1c2VbXX0gY2xhdXNlcyAtIFRoZSB0cmFuc2FjdGlvbiBjbGF1c2VzIHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNsYXVzZXMgYXJlIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZFRyYW5zYWN0aW9uQ2xhdXNlcyhjbGF1c2VzOiBUcmFuc2FjdGlvbkNsYXVzZVtdKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghY2xhdXNlcyB8fCAhQXJyYXkuaXNBcnJheShjbGF1c2VzKSB8fCBjbGF1c2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNsYXVzZSA9IGNsYXVzZXNbMF07XG5cbiAgICAgIGlmICghY2xhdXNlLnRvIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhjbGF1c2UudG8pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIGFkZHJlc3MgaW5pdCB0cmFuc2FjdGlvbnMsIHZhbHVlIG11c3QgYmUgZXhhY3RseSAnMHgwJ1xuICAgICAgaWYgKGNsYXVzZS52YWx1ZSAhPT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgYmFzZUFkZHJlc3MsIGFkZHJlc3NDcmVhdGlvblNhbHQsIGZlZUFkZHJlc3MgfSA9IGRlY29kZUZvcndhcmRlckNyZWF0aW9uRGF0YShjbGF1c2UuZGF0YSk7XG5cbiAgICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MgYXMgc3RyaW5nKSB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoZmVlQWRkcmVzcyBhcyBzdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhZGRyZXNzQ3JlYXRpb25TYWx0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBiYXNlIGFkZHJlc3MgZm9yIHRoaXMgZm9yd2FyZGVyIGluaXQgdHguXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIGJhc2UgYWRkcmVzcyB0byBiZSBzZXQgZm9yIHRoZSBmb3J3YXJkZXIgYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBiYXNlQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5hZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbi5iYXNlQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZmVlIGFkZHJlc3MgZm9yIHRoaXMgZm9yd2FyZGVyIGluaXQgdHguXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIGZlZSBhZGRyZXNzIHRvIGJlIHNldCBmb3IgdGhlIGZvcndhcmRlciBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGZlZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuYWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24uZmVlQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2FsdCB2YWx1ZSBmb3IgdGhlIGZvcndhcmRlciBhZGRyZXNzIGNyZWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2FsdCAtIFRoZSBzYWx0IHZhbHVlIHRvIHVzZSBmb3IgYWRkcmVzcyBjcmVhdGlvblxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzYWx0KHNhbHQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuYWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24uc2FsdCA9IHNhbHQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbGl6YXRpb24gY29kZSBmb3IgdGhlIGZvcndhcmRlciBjb250cmFjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byBnZW5lcmF0ZSBwcm94eSBpbml0IGNvZGUgZm9yXG4gICAqIEByZXR1cm5zIHtBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGluaXRDb2RlKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLmFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uLmluaXRDb2RlID0gZ2V0UHJveHlJbml0Y29kZShhZGRyZXNzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogQWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGFzc2VydCh0cmFuc2FjdGlvbi5jb250cmFjdCwgJ0NvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQnKTtcbiAgICBhc3NlcnQodHJhbnNhY3Rpb24uYmFzZUFkZHJlc3MsICdCYXNlIGFkZHJlc3MgaXMgcmVxdWlyZWQnKTtcbiAgICBhc3NlcnQodHJhbnNhY3Rpb24uZmVlQWRkcmVzcywgJ0ZlZSBhZGRyZXNzIGlzIHJlcXVpcmVkJyk7XG4gICAgYXNzZXJ0KHRyYW5zYWN0aW9uLnNhbHQsICdTYWx0IGlzIHJlcXVpcmVkJyk7XG4gICAgYXNzZXJ0KHRyYW5zYWN0aW9uLmluaXRDb2RlLCAnSW5pdCBjb2RlIGlzIHJlcXVpcmVkJyk7XG5cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLmNvbnRyYWN0IH0pO1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogdHJhbnNhY3Rpb24uYmFzZUFkZHJlc3MgfSk7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5mZWVBZGRyZXNzIH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkRhdGEgPSB0aGlzLmdldEFkZHJlc3NJbml0aWFsaXphdGlvbkRhdGEoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnR5cGUgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcbiAgICB0aGlzLmFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uRGF0YSA9IHRyYW5zYWN0aW9uRGF0YTtcbiAgICBhd2FpdCB0aGlzLmFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSB0cmFuc2FjdGlvbiBkYXRhIGZvciBhZGRyZXNzIGluaXRpYWxpemF0aW9uIGJ5IGVuY29kaW5nIHRoZSBjcmVhdGVGb3J3YXJkZXIgbWV0aG9kIGNhbGwuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHRyYW5zYWN0aW9uIGRhdGEgYXMgYSBoZXggc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGdldEFkZHJlc3NJbml0aWFsaXphdGlvbkRhdGEoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzYWx0QnVmZmVyID0gc2V0TGVuZ3RoTGVmdCh0b0J1ZmZlcih0aGlzLmFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uLnNhbHQpLCAzMik7XG4gICAgY29uc3QgeyBjcmVhdGVGb3J3YXJkZXJQYXJhbXMsIGNyZWF0ZUZvcndhcmRlclR5cGVzIH0gPSBnZXRDcmVhdGVGb3J3YXJkZXJQYXJhbXNBbmRUeXBlcyhcbiAgICAgIHRoaXMuYWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24uYmFzZUFkZHJlc3MsXG4gICAgICBzYWx0QnVmZmVyLFxuICAgICAgdGhpcy5hZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbi5mZWVBZGRyZXNzXG4gICAgKTtcbiAgICBjb25zdCBtZXRob2QgPSBFdGhlcmV1bUFiaS5tZXRob2RJRCgnY3JlYXRlRm9yd2FyZGVyJywgY3JlYXRlRm9yd2FyZGVyVHlwZXMpO1xuICAgIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUoY3JlYXRlRm9yd2FyZGVyVHlwZXMsIGNyZWF0ZUZvcndhcmRlclBhcmFtcyk7XG4gICAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { TransactionClause } from '@vechain/sdk-core';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ import { BurnNftTransaction } from '../transaction/burnNftTransaction';
6
+ import { Transaction } from '../transaction/transaction';
7
+ export declare class BurnNftBuilder extends TransactionBuilder {
8
+ /**
9
+ * Creates a new BurnNftBuilder 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 BurnNftTransaction.
16
+ *
17
+ * @param {BurnNftTransaction} tx - The transaction to initialize the builder with
18
+ */
19
+ initBuilder(tx: BurnNftTransaction): void;
20
+ /**
21
+ * Gets the burn NFT transaction instance.
22
+ *
23
+ * @returns {BurnNftTransaction} The burn NFT transaction
24
+ */
25
+ get burnNftTransaction(): BurnNftTransaction;
26
+ /**
27
+ * Gets the transaction type for burning NFT.
28
+ *
29
+ * @returns {TransactionType} The transaction type
30
+ */
31
+ protected get transactionType(): TransactionType;
32
+ /**
33
+ * Validates the transaction clauses for burning NFT.
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 ID for this burn NFT transaction.
40
+ *
41
+ * @param {string} tokenId - The ID of the NFT token to burn
42
+ * @returns {BurnNftBuilder} This transaction builder
43
+ */
44
+ tokenId(tokenId: string): this;
45
+ /**
46
+ * Sets the NFT contract address for this burn NFT transaction.
47
+ * The address must be explicitly provided to ensure the correct contract is used.
48
+ *
49
+ * @param {string} address - The NFT contract address (required)
50
+ * @returns {BurnNftBuilder} This transaction builder
51
+ * @throws {Error} If no address is provided
52
+ */
53
+ nftContract(address: string): this;
54
+ /** @inheritdoc */
55
+ validateTransaction(transaction?: BurnNftTransaction): void;
56
+ /** @inheritdoc */
57
+ protected buildImplementation(): Promise<Transaction>;
58
+ }
59
+ //# sourceMappingURL=burnNftBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"burnNftBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/burnNftBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIzD,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,kBAAkB,GAAG,IAAI;IAIzC;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IA4B1E;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASlC,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAU3D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAK5D"}
@@ -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.BurnNftBuilder = 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 burnNftTransaction_1 = require("../transaction/burnNftTransaction");
11
+ const utils_1 = __importDefault(require("../utils"));
12
+ const constants_1 = require("../constants");
13
+ class BurnNftBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ /**
15
+ * Creates a new BurnNftBuilder instance.
16
+ *
17
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
18
+ */
19
+ constructor(_coinConfig) {
20
+ super(_coinConfig);
21
+ this._transaction = new burnNftTransaction_1.BurnNftTransaction(_coinConfig);
22
+ }
23
+ /**
24
+ * Initializes the builder with an existing BurnNftTransaction.
25
+ *
26
+ * @param {BurnNftTransaction} tx - The transaction to initialize the builder with
27
+ */
28
+ initBuilder(tx) {
29
+ this._transaction = tx;
30
+ }
31
+ /**
32
+ * Gets the burn NFT transaction instance.
33
+ *
34
+ * @returns {BurnNftTransaction} The burn NFT transaction
35
+ */
36
+ get burnNftTransaction() {
37
+ return this._transaction;
38
+ }
39
+ /**
40
+ * Gets the transaction type for burning NFT.
41
+ *
42
+ * @returns {TransactionType} The transaction type
43
+ */
44
+ get transactionType() {
45
+ return sdk_core_1.TransactionType.StakingWithdraw;
46
+ }
47
+ /**
48
+ * Validates the transaction clauses for burning NFT.
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 burn NFT transactions, value must be exactly '0x0'
62
+ if (clause.value !== 0) {
63
+ return false;
64
+ }
65
+ // Check if the data starts with the burn method ID
66
+ if (!clause.data.startsWith(constants_1.BURN_NFT_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 burn NFT transaction.
77
+ *
78
+ * @param {string} tokenId - The ID of the NFT token to burn
79
+ * @returns {BurnNftBuilder} This transaction builder
80
+ */
81
+ tokenId(tokenId) {
82
+ this.burnNftTransaction.tokenId = tokenId;
83
+ return this;
84
+ }
85
+ /**
86
+ * Sets the NFT contract address for this burn NFT transaction.
87
+ * The address must be explicitly provided to ensure the correct contract is used.
88
+ *
89
+ * @param {string} address - The NFT contract address (required)
90
+ * @returns {BurnNftBuilder} This transaction builder
91
+ * @throws {Error} If no address is provided
92
+ */
93
+ nftContract(address) {
94
+ if (!address) {
95
+ throw new Error('NFT contract address is required and must be explicitly provided');
96
+ }
97
+ this.validateAddress({ address });
98
+ this.burnNftTransaction.contract = 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.contract, 'NFT contract address is required');
107
+ (0, assert_1.default)(transaction.tokenId, 'Token ID is required');
108
+ this.validateAddress({ address: transaction.contract });
109
+ }
110
+ /** @inheritdoc */
111
+ async buildImplementation() {
112
+ this.transaction.type = this.transactionType;
113
+ await this.burnNftTransaction.build();
114
+ return this.transaction;
115
+ }
116
+ }
117
+ exports.BurnNftBuilder = BurnNftBuilder;
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVybk5mdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uQnVpbGRlci9idXJuTmZ0QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsbURBQXVEO0FBR3ZELDZEQUEwRDtBQUMxRCwwRUFBdUU7QUFFdkUscURBQTZCO0FBQzdCLDRDQUFrRDtBQUVsRCxNQUFhLGNBQWUsU0FBUSx1Q0FBa0I7SUFDcEQ7Ozs7T0FJRztJQUNILFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx1Q0FBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFzQjtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQWtDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLHlCQUF5QixDQUFDLE9BQTRCO1FBQzlELElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELHlEQUF5RDtZQUN6RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLE9BQWU7UUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQWdDO1FBQ2xELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELElBQUEsZ0JBQU0sRUFBQyxXQUFXLENBQUMsUUFBUSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDakUsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDN0MsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXBIRCx3Q0FvSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNsYXVzZSB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQnVybk5mdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vYnVybk5mdFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEJVUk5fTkZUX01FVEhPRF9JRCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBCdXJuTmZ0QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJ1cm5OZnRCdWlsZGVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5PENvaW5Db25maWc+fSBfY29pbkNvbmZpZyAtIFRoZSBjb2luIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgQnVybk5mdFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgYnVpbGRlciB3aXRoIGFuIGV4aXN0aW5nIEJ1cm5OZnRUcmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtCdXJuTmZ0VHJhbnNhY3Rpb259IHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aFxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IEJ1cm5OZnRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYnVybiBORlQgdHJhbnNhY3Rpb24gaW5zdGFuY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIHtCdXJuTmZ0VHJhbnNhY3Rpb259IFRoZSBidXJuIE5GVCB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0IGJ1cm5OZnRUcmFuc2FjdGlvbigpOiBCdXJuTmZ0VHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbiBhcyBCdXJuTmZ0VHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdHJhbnNhY3Rpb24gdHlwZSBmb3IgYnVybmluZyBORlQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvblR5cGV9IFRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgdHJhbnNhY3Rpb24gY2xhdXNlcyBmb3IgYnVybmluZyBORlQuXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25DbGF1c2VbXX0gY2xhdXNlcyAtIFRoZSB0cmFuc2FjdGlvbiBjbGF1c2VzIHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNsYXVzZXMgYXJlIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZFRyYW5zYWN0aW9uQ2xhdXNlcyhjbGF1c2VzOiBUcmFuc2FjdGlvbkNsYXVzZVtdKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghY2xhdXNlcyB8fCAhQXJyYXkuaXNBcnJheShjbGF1c2VzKSB8fCBjbGF1c2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNsYXVzZSA9IGNsYXVzZXNbMF07XG5cbiAgICAgIGlmICghY2xhdXNlLnRvIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhjbGF1c2UudG8pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIGJ1cm4gTkZUIHRyYW5zYWN0aW9ucywgdmFsdWUgbXVzdCBiZSBleGFjdGx5ICcweDAnXG4gICAgICBpZiAoY2xhdXNlLnZhbHVlICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGEgc3RhcnRzIHdpdGggdGhlIGJ1cm4gbWV0aG9kIElEXG4gICAgICBpZiAoIWNsYXVzZS5kYXRhLnN0YXJ0c1dpdGgoQlVSTl9ORlRfTUVUSE9EX0lEKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG9rZW4gSUQgZm9yIHRoaXMgYnVybiBORlQgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbklkIC0gVGhlIElEIG9mIHRoZSBORlQgdG9rZW4gdG8gYnVyblxuICAgKiBAcmV0dXJucyB7QnVybk5mdEJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgdG9rZW5JZCh0b2tlbklkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmJ1cm5OZnRUcmFuc2FjdGlvbi50b2tlbklkID0gdG9rZW5JZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBORlQgY29udHJhY3QgYWRkcmVzcyBmb3IgdGhpcyBidXJuIE5GVCB0cmFuc2FjdGlvbi5cbiAgICogVGhlIGFkZHJlc3MgbXVzdCBiZSBleHBsaWNpdGx5IHByb3ZpZGVkIHRvIGVuc3VyZSB0aGUgY29ycmVjdCBjb250cmFjdCBpcyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBORlQgY29udHJhY3QgYWRkcmVzcyAocmVxdWlyZWQpXG4gICAqIEByZXR1cm5zIHtCdXJuTmZ0QnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBubyBhZGRyZXNzIGlzIHByb3ZpZGVkXG4gICAqL1xuICBuZnRDb250cmFjdChhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTkZUIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgZXhwbGljaXRseSBwcm92aWRlZCcpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5idXJuTmZ0VHJhbnNhY3Rpb24uY29udHJhY3QgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBCdXJuTmZ0VHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGFzc2VydCh0cmFuc2FjdGlvbi5jb250cmFjdCwgJ05GVCBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkJyk7XG4gICAgYXNzZXJ0KHRyYW5zYWN0aW9uLnRva2VuSWQsICdUb2tlbiBJRCBpcyByZXF1aXJlZCcpO1xuXG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5jb250cmFjdCB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50eXBlID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XG4gICAgYXdhaXQgdGhpcy5idXJuTmZ0VHJhbnNhY3Rpb24uYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,57 @@
1
+ import { TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionClause } from '@vechain/sdk-core';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ import { ClaimRewardsTransaction } from '../transaction/claimRewards';
6
+ import { Transaction } from '../transaction/transaction';
7
+ import { ClaimRewardsData } from '../types';
8
+ export declare class ClaimRewardsBuilder extends TransactionBuilder {
9
+ /**
10
+ * Creates a new ClaimRewardsBuilder instance.
11
+ *
12
+ * @param {Readonly<CoinConfig>} _coinConfig - The coin configuration object
13
+ */
14
+ constructor(_coinConfig: Readonly<CoinConfig>);
15
+ /**
16
+ * Initializes the builder with an existing ClaimRewardsTransaction.
17
+ *
18
+ * @param {ClaimRewardsTransaction} tx - The transaction to initialize the builder with
19
+ */
20
+ initBuilder(tx: ClaimRewardsTransaction): void;
21
+ /**
22
+ * Gets the claim rewards transaction instance.
23
+ *
24
+ * @returns {ClaimRewardsTransaction} The claim rewards transaction
25
+ */
26
+ get claimRewardsTransaction(): ClaimRewardsTransaction;
27
+ /**
28
+ * Gets the transaction type for claim rewards.
29
+ *
30
+ * @returns {TransactionType} The transaction type
31
+ */
32
+ protected get transactionType(): TransactionType;
33
+ /**
34
+ * Validates the transaction clauses for claim rewards transaction.
35
+ * @param {TransactionClause[]} clauses - The transaction clauses to validate.
36
+ * @returns {boolean} - Returns true if the clauses are valid, false otherwise.
37
+ */
38
+ protected isValidTransactionClauses(clauses: TransactionClause[]): boolean;
39
+ /**
40
+ * Sets the claim rewards data for this transaction.
41
+ *
42
+ * @param {ClaimRewardsData} data - The claim rewards data
43
+ * @returns {ClaimRewardsBuilder} This transaction builder
44
+ */
45
+ claimRewardsData(data: ClaimRewardsData): this;
46
+ /**
47
+ * Validates the claim rewards data.
48
+ *
49
+ * @param {ClaimRewardsData} data - The claim rewards data to validate
50
+ */
51
+ private validateClaimRewardsData;
52
+ /** @inheritdoc */
53
+ validateTransaction(transaction?: ClaimRewardsTransaction): void;
54
+ /** @inheritdoc */
55
+ protected buildImplementation(): Promise<Transaction>;
56
+ }
57
+ //# sourceMappingURL=claimRewardsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimRewardsBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/claimRewardsBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,uBAAuB,GAAG,IAAI;IAI9C;;;;OAIG;IACH,IAAI,uBAAuB,IAAI,uBAAuB,CAErD;IAED;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO;IAqC1E;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAM9C;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IA+BhC,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAehE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAK5D"}