@bitgo-beta/sdk-coin-vet 1.0.1-beta.5 → 1.0.1-beta.500

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 (156) 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 +29 -1
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +31 -3
  7. package/dist/src/lib/iface.d.ts +38 -0
  8. package/dist/src/lib/iface.d.ts.map +1 -0
  9. package/dist/src/lib/iface.js +3 -0
  10. package/dist/src/lib/index.d.ts +26 -1
  11. package/dist/src/lib/index.d.ts.map +1 -1
  12. package/dist/src/lib/index.js +52 -2
  13. package/dist/src/lib/keyPair.d.ts +26 -0
  14. package/dist/src/lib/keyPair.d.ts.map +1 -0
  15. package/dist/src/lib/keyPair.js +65 -0
  16. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts +31 -0
  17. package/dist/src/lib/transaction/addressInitializationTransaction.d.ts.map +1 -0
  18. package/dist/src/lib/transaction/addressInitializationTransaction.js +170 -0
  19. package/dist/src/lib/transaction/burnNftTransaction.d.ts +29 -0
  20. package/dist/src/lib/transaction/burnNftTransaction.d.ts.map +1 -0
  21. package/dist/src/lib/transaction/burnNftTransaction.js +138 -0
  22. package/dist/src/lib/transaction/claimRewards.d.ts +41 -0
  23. package/dist/src/lib/transaction/claimRewards.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/claimRewards.js +210 -0
  25. package/dist/src/lib/transaction/delegateClauseTransaction.d.ts +27 -0
  26. package/dist/src/lib/transaction/delegateClauseTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/delegateClauseTransaction.js +158 -0
  28. package/dist/src/lib/transaction/exitDelegation.d.ts +29 -0
  29. package/dist/src/lib/transaction/exitDelegation.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/exitDelegation.js +143 -0
  31. package/dist/src/lib/transaction/flushTokenTransaction.d.ts +20 -0
  32. package/dist/src/lib/transaction/flushTokenTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/flushTokenTransaction.js +98 -0
  34. package/dist/src/lib/transaction/nftTransaction.d.ts +17 -0
  35. package/dist/src/lib/transaction/nftTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/nftTransaction.js +108 -0
  37. package/dist/src/lib/transaction/stakeClauseTransaction.d.ts +27 -0
  38. package/dist/src/lib/transaction/stakeClauseTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/stakeClauseTransaction.js +158 -0
  40. package/dist/src/lib/transaction/stakingTransaction.d.ts +31 -0
  41. package/dist/src/lib/transaction/stakingTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/stakingTransaction.js +169 -0
  43. package/dist/src/lib/transaction/tokenTransaction.d.ts +14 -0
  44. package/dist/src/lib/transaction/tokenTransaction.d.ts.map +1 -0
  45. package/dist/src/lib/transaction/tokenTransaction.js +95 -0
  46. package/dist/src/lib/transaction/transaction.d.ts +109 -0
  47. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  48. package/dist/src/lib/transaction/transaction.js +484 -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 +57 -0
  56. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/claimRewardsBuilder.js +142 -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 +55 -0
  80. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  81. package/dist/src/lib/transactionBuilder/transactionBuilder.js +159 -0
  82. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts +10 -0
  83. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  84. package/dist/src/lib/transactionBuilder/transferBuilder.js +45 -0
  85. package/dist/src/lib/transactionBuilderFactory.d.ts +77 -0
  86. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  87. package/dist/src/lib/transactionBuilderFactory.js +173 -0
  88. package/dist/src/lib/types.d.ts +32 -0
  89. package/dist/src/lib/types.d.ts.map +1 -0
  90. package/dist/src/lib/types.js +3 -0
  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 +301 -6
  94. package/dist/src/register.d.ts.map +1 -1
  95. package/dist/src/register.js +9 -1
  96. package/dist/src/vet.d.ts +87 -4
  97. package/dist/src/vet.d.ts.map +1 -1
  98. package/dist/src/vet.js +613 -13
  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 +19 -0
  103. package/dist/src/vetToken.d.ts.map +1 -0
  104. package/dist/src/vetToken.js +52 -0
  105. package/dist/test/resources/vet.d.ts +72 -0
  106. package/dist/test/resources/vet.d.ts.map +1 -0
  107. package/dist/test/resources/vet.js +127 -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 +246 -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 +185 -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 +214 -0
  141. package/dist/test/unit/keyPair.d.ts +2 -0
  142. package/dist/test/unit/keyPair.d.ts.map +1 -0
  143. package/dist/test/unit/keyPair.js +181 -0
  144. package/dist/test/unit/stakingFlowE2E.d.ts +2 -0
  145. package/dist/test/unit/stakingFlowE2E.d.ts.map +1 -0
  146. package/dist/test/unit/stakingFlowE2E.js +222 -0
  147. package/dist/test/unit/utils.d.ts +2 -0
  148. package/dist/test/unit/utils.d.ts.map +1 -0
  149. package/dist/test/unit/utils.js +106 -0
  150. package/dist/test/unit/vet.d.ts +2 -0
  151. package/dist/test/unit/vet.d.ts.map +1 -0
  152. package/dist/test/unit/vet.js +251 -0
  153. package/dist/tsconfig.tsbuildinfo +1 -0
  154. package/package.json +22 -8
  155. package/.eslintignore +0 -5
  156. package/.mocharc.yml +0 -8
@@ -0,0 +1,95 @@
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.TokenTransaction = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const sdk_core_1 = require("@vechain/sdk-core");
9
+ const sdk_core_2 = require("@bitgo-beta/sdk-core");
10
+ const transaction_1 = require("./transaction");
11
+ const utils_1 = __importDefault(require("../utils"));
12
+ class TokenTransaction extends transaction_1.Transaction {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._type = sdk_core_2.TransactionType.Send;
16
+ }
17
+ get tokenAddress() {
18
+ return this._tokenAddress;
19
+ }
20
+ set tokenAddress(address) {
21
+ this._tokenAddress = address;
22
+ }
23
+ buildClauses() {
24
+ if (!this.tokenAddress) {
25
+ throw new Error('Token address is not set');
26
+ }
27
+ this.clauses = this.recipients.map((recipient) => {
28
+ const data = utils_1.default.getTransferTokenData(recipient.address, String(recipient.amount));
29
+ return {
30
+ to: this.tokenAddress,
31
+ value: '0x0',
32
+ data,
33
+ };
34
+ });
35
+ }
36
+ toJson() {
37
+ const json = {
38
+ id: this.id,
39
+ chainTag: this.chainTag,
40
+ blockRef: this.blockRef,
41
+ expiration: this.expiration,
42
+ recipients: this.recipients,
43
+ gasPriceCoef: this.gasPriceCoef,
44
+ gas: this.gas,
45
+ dependsOn: this.dependsOn,
46
+ nonce: this.nonce,
47
+ sender: this.sender,
48
+ feePayer: this.feePayerAddress,
49
+ tokenAddress: this.tokenAddress,
50
+ };
51
+ return json;
52
+ }
53
+ fromDeserializedSignedTransaction(signedTx) {
54
+ try {
55
+ if (!signedTx || !signedTx.body) {
56
+ throw new sdk_core_2.InvalidTransactionError('Invalid transaction: missing transaction body');
57
+ }
58
+ // Store the raw transaction
59
+ this.rawTransaction = signedTx;
60
+ // Set transaction body properties
61
+ const body = signedTx.body;
62
+ this.chainTag = body.chainTag;
63
+ this.blockRef = body.blockRef;
64
+ this.expiration = body.expiration;
65
+ this.clauses = body.clauses;
66
+ this.gasPriceCoef = typeof body.gasPriceCoef === 'number' ? body.gasPriceCoef : 128;
67
+ this.gas = Number(body.gas);
68
+ this.dependsOn = body.dependsOn;
69
+ this.nonce = String(body.nonce);
70
+ // Set recipients from clauses
71
+ (0, assert_1.default)(body.clauses[0].to, 'token address not found in the clauses');
72
+ this.tokenAddress = body.clauses[0].to;
73
+ this.recipients = body.clauses.map((clause) => utils_1.default.decodeTransferTokenData(clause.data));
74
+ this.loadInputsAndOutputs();
75
+ // Set sender address
76
+ if (signedTx.signature && signedTx.origin) {
77
+ this.sender = signedTx.origin.toString().toLowerCase();
78
+ }
79
+ // Set signatures if present
80
+ if (signedTx.signature) {
81
+ // First signature is sender's signature
82
+ this.senderSignature = Buffer.from(signedTx.signature.slice(0, sdk_core_1.Secp256k1.SIGNATURE_LENGTH));
83
+ // If there's additional signature data, it's the fee payer's signature
84
+ if (signedTx.signature.length > sdk_core_1.Secp256k1.SIGNATURE_LENGTH) {
85
+ this.feePayerSignature = Buffer.from(signedTx.signature.slice(sdk_core_1.Secp256k1.SIGNATURE_LENGTH));
86
+ }
87
+ }
88
+ }
89
+ catch (e) {
90
+ throw new sdk_core_2.InvalidTransactionError(`Failed to deserialize transaction: ${e.message}`);
91
+ }
92
+ }
93
+ }
94
+ exports.TokenTransaction = TokenTransaction;
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vdG9rZW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsZ0RBQTZFO0FBRzdFLG1EQUFnRjtBQUNoRiwrQ0FBNEM7QUFDNUMscURBQTZCO0FBSTdCLE1BQWEsZ0JBQWlCLFNBQVEseUJBQVc7SUFHL0MsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxPQUFlO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUMvQyxNQUFNLElBQUksR0FBRyxlQUFLLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDckYsT0FBTztnQkFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3JCLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUk7YUFDTCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFB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QUMsQ0FBQztnQkFFNUYsdUVBQXVFO2dCQUN2RSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLG9CQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsb0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzdGLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksa0NBQXVCLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3RkQsNENBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgU2VjcDI1NmsxLCBUcmFuc2FjdGlvbiBhcyBWZXRUcmFuc2FjdGlvbiB9IGZyb20gJ0B2ZWNoYWluL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBWZXRUcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBUb2tlblRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF90b2tlbkFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgZ2V0IHRva2VuQWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90b2tlbkFkZHJlc3M7XG4gIH1cblxuICBzZXQgdG9rZW5BZGRyZXNzKGFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuX3Rva2VuQWRkcmVzcyA9IGFkZHJlc3M7XG4gIH1cblxuICBidWlsZENsYXVzZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRva2VuQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBhZGRyZXNzIGlzIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgdGhpcy5jbGF1c2VzID0gdGhpcy5yZWNpcGllbnRzLm1hcCgocmVjaXBpZW50KSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdXRpbHMuZ2V0VHJhbnNmZXJUb2tlbkRhdGEocmVjaXBpZW50LmFkZHJlc3MsIFN0cmluZyhyZWNpcGllbnQuYW1vdW50KSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0bzogdGhpcy50b2tlbkFkZHJlc3MsXG4gICAgICAgIHZhbHVlOiAnMHgwJyxcbiAgICAgICAgZGF0YSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICB0b0pzb24oKTogVmV0VHJhbnNhY3Rpb25EYXRhIHtcbiAgICBjb25zdCBqc29uOiBWZXRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGNoYWluVGFnOiB0aGlzLmNoYWluVGFnLFxuICAgICAgYmxvY2tSZWY6IHRoaXMuYmxvY2tSZWYsXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLmV4cGlyYXRpb24sXG4gICAgICByZWNpcGllbnRzOiB0aGlzLnJlY2lwaWVudHMsXG4gICAgICBnYXNQcmljZUNvZWY6IHRoaXMuZ2FzUHJpY2VDb2VmLFxuICAgICAgZ2FzOiB0aGlzLmdhcyxcbiAgICAgIGRlcGVuZHNPbjogdGhpcy5kZXBlbmRzT24sXG4gICAgICBub25jZTogdGhpcy5ub25jZSxcbiAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICBmZWVQYXllcjogdGhpcy5mZWVQYXllckFkZHJlc3MsXG4gICAgICB0b2tlbkFkZHJlc3M6IHRoaXMudG9rZW5BZGRyZXNzLFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIGZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeDogVmV0VHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFzaWduZWRUeCB8fCAhc2lnbmVkVHguYm9keSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgdHJhbnNhY3Rpb24gYm9keScpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdG9yZSB0aGUgcmF3IHRyYW5zYWN0aW9uXG4gICAgICB0aGlzLnJhd1RyYW5zYWN0aW9uID0gc2lnbmVkVHg7XG5cbiAgICAgIC8vIFNldCB0cmFuc2FjdGlvbiBib2R5IHByb3BlcnRpZXNcbiAgICAgIGNvbnN0IGJvZHkgPSBzaWduZWRUeC5ib2R5O1xuICAgICAgdGhpcy5jaGFpblRhZyA9IGJvZHkuY2hhaW5UYWc7XG4gICAgICB0aGlzLmJsb2NrUmVmID0gYm9keS5ibG9ja1JlZjtcbiAgICAgIHRoaXMuZXhwaXJhdGlvbiA9IGJvZHkuZXhwaXJhdGlvbjtcbiAgICAgIHRoaXMuY2xhdXNlcyA9IGJvZHkuY2xhdXNlcztcbiAgICAgIHRoaXMuZ2FzUHJpY2VDb2VmID0gdHlwZW9mIGJvZHkuZ2FzUHJpY2VDb2VmID09PSAnbnVtYmVyJyA/IGJvZHkuZ2FzUHJpY2VDb2VmIDogMTI4O1xuICAgICAgdGhpcy5nYXMgPSBOdW1iZXIoYm9keS5nYXMpO1xuICAgICAgdGhpcy5kZXBlbmRzT24gPSBib2R5LmRlcGVuZHNPbjtcbiAgICAgIHRoaXMubm9uY2UgPSBTdHJpbmcoYm9keS5ub25jZSk7XG4gICAgICAvLyBTZXQgcmVjaXBpZW50cyBmcm9tIGNsYXVzZXNcbiAgICAgIGFzc2VydChib2R5LmNsYXVzZXNbMF0udG8sICd0b2tlbiBhZGRyZXNzIG5vdCBmb3VuZCBpbiB0aGUgY2xhdXNlcycpO1xuICAgICAgdGhpcy50b2tlbkFkZHJlc3MgPSBib2R5LmNsYXVzZXNbMF0udG87XG4gICAgICB0aGlzLnJlY2lwaWVudHMgPSBib2R5LmNsYXVzZXMubWFwKChjbGF1c2UpID0+IHV0aWxzLmRlY29kZVRyYW5zZmVyVG9rZW5EYXRhKGNsYXVzZS5kYXRhKSk7XG4gICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICAgIC8vIFNldCBzZW5kZXIgYWRkcmVzc1xuICAgICAgaWYgKHNpZ25lZFR4LnNpZ25hdHVyZSAmJiBzaWduZWRUeC5vcmlnaW4pIHtcbiAgICAgICAgdGhpcy5zZW5kZXIgPSBzaWduZWRUeC5vcmlnaW4udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXQgc2lnbmF0dXJlcyBpZiBwcmVzZW50XG4gICAgICBpZiAoc2lnbmVkVHguc2lnbmF0dXJlKSB7XG4gICAgICAgIC8vIEZpcnN0IHNpZ25hdHVyZSBpcyBzZW5kZXIncyBzaWduYXR1cmVcbiAgICAgICAgdGhpcy5zZW5kZXJTaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzaWduZWRUeC5zaWduYXR1cmUuc2xpY2UoMCwgU2VjcDI1NmsxLlNJR05BVFVSRV9MRU5HVEgpKTtcblxuICAgICAgICAvLyBJZiB0aGVyZSdzIGFkZGl0aW9uYWwgc2lnbmF0dXJlIGRhdGEsIGl0J3MgdGhlIGZlZSBwYXllcidzIHNpZ25hdHVyZVxuICAgICAgICBpZiAoc2lnbmVkVHguc2lnbmF0dXJlLmxlbmd0aCA+IFNlY3AyNTZrMS5TSUdOQVRVUkVfTEVOR1RIKSB7XG4gICAgICAgICAgdGhpcy5mZWVQYXllclNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKHNpZ25lZFR4LnNpZ25hdHVyZS5zbGljZShTZWNwMjU2azEuU0lHTkFUVVJFX0xFTkdUSCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBGYWlsZWQgdG8gZGVzZXJpYWxpemUgdHJhbnNhY3Rpb246ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,109 @@
1
+ import { BaseTransaction, TransactionType, TransactionRecipient } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionClause, Transaction as VetTransaction } from '@vechain/sdk-core';
4
+ import { VetTransactionExplanation, VetTransactionData } from '../iface';
5
+ export declare class Transaction extends BaseTransaction {
6
+ protected _rawTransaction: VetTransaction;
7
+ protected _type: TransactionType;
8
+ protected _recipients: TransactionRecipient[];
9
+ protected _clauses: TransactionClause[];
10
+ protected _contract: string;
11
+ protected _transactionData: string;
12
+ private _chainTag;
13
+ private _blockRef;
14
+ private _expiration;
15
+ private _gasPriceCoef;
16
+ private _gas;
17
+ private _dependsOn;
18
+ private _nonce;
19
+ private _sender;
20
+ private _senderSignature;
21
+ private _feePayerAddress;
22
+ private _feePayerSignature;
23
+ private _isRecovery;
24
+ constructor(_coinConfig: Readonly<CoinConfig>);
25
+ get id(): string;
26
+ get rawTransaction(): VetTransaction;
27
+ set rawTransaction(rawTx: VetTransaction);
28
+ get type(): TransactionType;
29
+ set type(type: TransactionType);
30
+ get sender(): string;
31
+ set sender(address: string);
32
+ get senderSignature(): Uint8Array | undefined;
33
+ set senderSignature(sig: Buffer);
34
+ get feePayerAddress(): string;
35
+ set feePayerAddress(address: string);
36
+ get feePayerSignature(): Uint8Array | undefined;
37
+ set feePayerSignature(sig: Buffer);
38
+ get chainTag(): number;
39
+ set chainTag(tag: number);
40
+ get blockRef(): string;
41
+ set blockRef(ref: string);
42
+ get expiration(): number;
43
+ set expiration(exp: number);
44
+ get recipients(): TransactionRecipient[];
45
+ set recipients(recipients: TransactionRecipient[]);
46
+ get clauses(): TransactionClause[];
47
+ set clauses(clauses: TransactionClause[]);
48
+ get gasPriceCoef(): number;
49
+ set gasPriceCoef(coef: number);
50
+ get gas(): number;
51
+ set gas(g: number);
52
+ get dependsOn(): string | null;
53
+ set dependsOn(dep: string | null);
54
+ get nonce(): string;
55
+ set nonce(n: string);
56
+ get contract(): string;
57
+ set contract(address: string);
58
+ get transactionData(): string;
59
+ set transactionData(transactionData: string);
60
+ get isRecovery(): boolean;
61
+ set isRecovery(isRecovery: boolean);
62
+ /**
63
+ * Get all signatures associated with this transaction
64
+ * Required by BaseTransaction
65
+ */
66
+ get signature(): string[];
67
+ /**
68
+ * Set signatures for this transaction
69
+ * Required by BaseTransaction
70
+ * Note: This is mainly for compatibility with the base class.
71
+ * Prefer using senderSignature and feePayerSignature directly.
72
+ */
73
+ set signature(sigs: string[]);
74
+ /** @inheritdoc */
75
+ canSign(): boolean;
76
+ /**
77
+ * Check if this is a fee delegated transaction
78
+ */
79
+ isFeeDelegated(): boolean;
80
+ addRecipients(clauses: TransactionClause[]): void;
81
+ buildClauses(): void;
82
+ /**
83
+ * Populates the transaction object with data from a deserialized VeChain transaction
84
+ * @param signedTx - The deserialized VeChain transaction containing body, signatures, and other transaction data
85
+ * @throws {InvalidTransactionError} When the transaction is invalid or missing required data
86
+ */
87
+ fromDeserializedSignedTransaction(signedTx: VetTransaction): void;
88
+ addSenderSignature(signature: Buffer): void;
89
+ addFeePayerSignature(signature: Buffer): void;
90
+ build(): Promise<void>;
91
+ /**
92
+ * Sets the transaction ID from the raw transaction if it is signed
93
+ * @protected
94
+ */
95
+ protected generateTxnIdAndSetSender(): void;
96
+ protected buildRawTransaction(): Promise<void>;
97
+ loadInputsAndOutputs(): void;
98
+ fromRawTransaction(rawTransaction: string): void;
99
+ /** @inheritdoc */
100
+ toJson(): VetTransactionData;
101
+ getFee(): string;
102
+ get signablePayload(): Buffer;
103
+ /** @inheritdoc */
104
+ toBroadcastFormat(): string;
105
+ serialize(): string;
106
+ static deserializeTransaction(rawTx: string): VetTransaction;
107
+ explainTransaction(): VetTransactionExplanation;
108
+ }
109
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/transaction.ts"],"names":[],"mappings":"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"}