@bitgo-beta/sdk-coin-trx 1.2.3-alpha.43 → 1.2.3-alpha.431

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 (132) hide show
  1. package/dist/resources/protobuf/Contract.proto +32 -0
  2. package/dist/resources/protobuf/tron.d.ts +1478 -214
  3. package/dist/resources/protobuf/tron.js +6312 -2600
  4. package/dist/resources/protobuf/tron.proto +6 -0
  5. package/dist/src/index.js +6 -2
  6. package/dist/src/lib/constants.d.ts +3 -0
  7. package/dist/src/lib/constants.d.ts.map +1 -0
  8. package/dist/src/lib/constants.js +6 -0
  9. package/dist/src/lib/contractCallBuilder.d.ts +1 -35
  10. package/dist/src/lib/contractCallBuilder.d.ts.map +1 -1
  11. package/dist/src/lib/contractCallBuilder.js +12 -75
  12. package/dist/src/lib/delegateResourceTxBuilder.d.ts +27 -0
  13. package/dist/src/lib/delegateResourceTxBuilder.d.ts.map +1 -0
  14. package/dist/src/lib/delegateResourceTxBuilder.js +98 -0
  15. package/dist/src/lib/enum.d.ts +36 -1
  16. package/dist/src/lib/enum.d.ts.map +1 -1
  17. package/dist/src/lib/enum.js +40 -4
  18. package/dist/src/lib/freezeBalanceTxBuilder.d.ts +71 -0
  19. package/dist/src/lib/freezeBalanceTxBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/freezeBalanceTxBuilder.js +211 -0
  21. package/dist/src/lib/iface.d.ts +220 -2
  22. package/dist/src/lib/iface.d.ts.map +1 -1
  23. package/dist/src/lib/iface.js +1 -1
  24. package/dist/src/lib/index.js +23 -9
  25. package/dist/src/lib/keyPair.d.ts +0 -1
  26. package/dist/src/lib/keyPair.d.ts.map +1 -1
  27. package/dist/src/lib/keyPair.js +31 -18
  28. package/dist/src/lib/resourceManagementTxBuilder.d.ts +72 -0
  29. package/dist/src/lib/resourceManagementTxBuilder.d.ts.map +1 -0
  30. package/dist/src/lib/resourceManagementTxBuilder.js +150 -0
  31. package/dist/src/lib/tokenTransferBuilder.d.ts +1 -1
  32. package/dist/src/lib/tokenTransferBuilder.js +3 -3
  33. package/dist/src/lib/transaction.d.ts.map +1 -1
  34. package/dist/src/lib/transaction.js +92 -6
  35. package/dist/src/lib/transactionBuilder.d.ts +50 -5
  36. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  37. package/dist/src/lib/transactionBuilder.js +110 -21
  38. package/dist/src/lib/undelegateResourceTxBuilder.d.ts +27 -0
  39. package/dist/src/lib/undelegateResourceTxBuilder.d.ts.map +1 -0
  40. package/dist/src/lib/undelegateResourceTxBuilder.js +98 -0
  41. package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts +65 -0
  42. package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts.map +1 -0
  43. package/dist/src/lib/unfreezeBalanceTxBuilder.js +204 -0
  44. package/dist/src/lib/utils.d.ts +85 -4
  45. package/dist/src/lib/utils.d.ts.map +1 -1
  46. package/dist/src/lib/utils.js +445 -47
  47. package/dist/src/lib/voteWitnessTxBuilder.d.ts +62 -0
  48. package/dist/src/lib/voteWitnessTxBuilder.d.ts.map +1 -0
  49. package/dist/src/lib/voteWitnessTxBuilder.js +219 -0
  50. package/dist/src/lib/withdrawBuilder.d.ts +49 -0
  51. package/dist/src/lib/withdrawBuilder.d.ts.map +1 -0
  52. package/dist/src/lib/withdrawBuilder.js +167 -0
  53. package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts +49 -0
  54. package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
  55. package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.js +167 -0
  56. package/dist/src/lib/wrappedBuilder.d.ts +56 -0
  57. package/dist/src/lib/wrappedBuilder.d.ts.map +1 -1
  58. package/dist/src/lib/wrappedBuilder.js +86 -2
  59. package/dist/src/trx.d.ts +78 -4
  60. package/dist/src/trx.d.ts.map +1 -1
  61. package/dist/src/trx.js +436 -147
  62. package/dist/src/trxToken.d.ts +2 -2
  63. package/dist/src/trxToken.d.ts.map +1 -1
  64. package/dist/src/trxToken.js +5 -5
  65. package/dist/test/fixtures.d.ts +40 -0
  66. package/dist/test/fixtures.d.ts.map +1 -0
  67. package/dist/test/fixtures.js +46 -0
  68. package/dist/test/resources.d.ts +586 -0
  69. package/dist/test/resources.d.ts.map +1 -0
  70. package/dist/test/resources.js +746 -0
  71. package/dist/test/unit/index.d.ts +2 -0
  72. package/dist/test/unit/index.d.ts.map +1 -0
  73. package/dist/test/unit/index.js +19 -0
  74. package/dist/test/unit/keyPair.d.ts +2 -0
  75. package/dist/test/unit/keyPair.d.ts.map +1 -0
  76. package/dist/test/unit/keyPair.js +163 -0
  77. package/dist/test/unit/transaction.d.ts +2 -0
  78. package/dist/test/unit/transaction.d.ts.map +1 -0
  79. package/dist/test/unit/transaction.js +38 -0
  80. package/dist/test/unit/transactionBuilder/contractCallBuilder.d.ts +2 -0
  81. package/dist/test/unit/transactionBuilder/contractCallBuilder.d.ts.map +1 -0
  82. package/dist/test/unit/transactionBuilder/contractCallBuilder.js +315 -0
  83. package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.d.ts +2 -0
  84. package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.d.ts.map +1 -0
  85. package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.js +255 -0
  86. package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.d.ts +2 -0
  87. package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.d.ts.map +1 -0
  88. package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.js +285 -0
  89. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  90. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  91. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +42 -0
  92. package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.d.ts +2 -0
  93. package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.d.ts.map +1 -0
  94. package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.js +255 -0
  95. package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.d.ts +2 -0
  96. package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.d.ts.map +1 -0
  97. package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.js +256 -0
  98. package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.d.ts +2 -0
  99. package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.d.ts.map +1 -0
  100. package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.js +277 -0
  101. package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.d.ts +2 -0
  102. package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.d.ts.map +1 -0
  103. package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.js +213 -0
  104. package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.d.ts +2 -0
  105. package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
  106. package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.js +213 -0
  107. package/dist/test/unit/transactionBuilder/wrappedBuilder.d.ts +2 -0
  108. package/dist/test/unit/transactionBuilder/wrappedBuilder.d.ts.map +1 -0
  109. package/dist/test/unit/transactionBuilder/wrappedBuilder.js +50 -0
  110. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  111. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  112. package/dist/test/unit/transactionBuilder.js +178 -0
  113. package/dist/test/unit/trx.d.ts +2 -0
  114. package/dist/test/unit/trx.d.ts.map +1 -0
  115. package/dist/test/unit/trx.js +639 -0
  116. package/dist/test/unit/util.d.ts +2 -0
  117. package/dist/test/unit/util.d.ts.map +1 -0
  118. package/dist/test/unit/util.js +141 -0
  119. package/dist/test/unit/verifyTransaction.d.ts +2 -0
  120. package/dist/test/unit/verifyTransaction.d.ts.map +1 -0
  121. package/dist/test/unit/verifyTransaction.js +378 -0
  122. package/dist/tsconfig.tsbuildinfo +1 -0
  123. package/package.json +20 -15
  124. package/.eslintignore +0 -5
  125. package/.mocharc.yml +0 -8
  126. package/CHANGELOG.md +0 -118
  127. package/resources/README.md +0 -31
  128. package/resources/protobuf/Contract.proto +0 -256
  129. package/resources/protobuf/Discover.proto +0 -44
  130. package/resources/protobuf/tron.d.ts +0 -11205
  131. package/resources/protobuf/tron.js +0 -33480
  132. package/resources/protobuf/tron.proto +0 -677
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermissionType = exports.ContractType = void 0;
3
+ exports.TronResource = exports.PermissionType = exports.ContractType = void 0;
4
4
  /**
5
5
  * Contract type describes a class of contract in a Transaction. This structure is used to identify what the Contract is.
6
6
  */
@@ -18,11 +18,47 @@ var ContractType;
18
18
  * This is a smart contract type.
19
19
  */
20
20
  ContractType[ContractType["TriggerSmartContract"] = 2] = "TriggerSmartContract";
21
- })(ContractType = exports.ContractType || (exports.ContractType = {}));
21
+ /**
22
+ * This is the contract for freezeBuilder
23
+ */
24
+ ContractType[ContractType["FreezeBalanceV2"] = 3] = "FreezeBalanceV2";
25
+ /**
26
+ * This is the contract for voting for witnesses
27
+ */
28
+ ContractType[ContractType["VoteWitness"] = 4] = "VoteWitness";
29
+ /**
30
+ * This is the contract for unfreezing balances
31
+ */
32
+ ContractType[ContractType["UnfreezeBalanceV2"] = 5] = "UnfreezeBalanceV2";
33
+ /**
34
+ * This is the contract for withdrawing expired unfrozen balances
35
+ */
36
+ ContractType[ContractType["WithdrawExpireUnfreeze"] = 6] = "WithdrawExpireUnfreeze";
37
+ /**
38
+ * This is the contract for withdrawing reward balances
39
+ */
40
+ ContractType[ContractType["WithdrawBalance"] = 7] = "WithdrawBalance";
41
+ /**
42
+ * This is the contract for delegating resource
43
+ */
44
+ ContractType[ContractType["DelegateResourceContract"] = 8] = "DelegateResourceContract";
45
+ /**
46
+ * This is the contract for un-delegating resource
47
+ */
48
+ ContractType[ContractType["UnDelegateResourceContract"] = 9] = "UnDelegateResourceContract";
49
+ })(ContractType || (exports.ContractType = ContractType = {}));
22
50
  var PermissionType;
23
51
  (function (PermissionType) {
24
52
  PermissionType[PermissionType["Owner"] = 0] = "Owner";
25
53
  PermissionType[PermissionType["Witness"] = 1] = "Witness";
26
54
  PermissionType[PermissionType["Active"] = 2] = "Active";
27
- })(PermissionType = exports.PermissionType || (exports.PermissionType = {}));
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksWUFhWDtBQWJELFdBQVksWUFBWTtJQUN0Qjs7T0FFRztJQUNILHVEQUFRLENBQUE7SUFDUjs7T0FFRztJQUNILHFGQUF1QixDQUFBO0lBQ3ZCOztPQUVHO0lBQ0gsK0VBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQWJXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBYXZCO0FBRUQsSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHFEQUFLLENBQUE7SUFDTCx5REFBTyxDQUFBO0lBQ1AsdURBQU0sQ0FBQTtBQUNSLENBQUMsRUFKVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUl6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udHJhY3QgdHlwZSBkZXNjcmliZXMgYSBjbGFzcyBvZiBjb250cmFjdCBpbiBhIFRyYW5zYWN0aW9uLiBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGlkZW50aWZ5IHdoYXQgdGhlIENvbnRyYWN0IGlzLlxuICovXG5leHBvcnQgZW51bSBDb250cmFjdFR5cGUge1xuICAvKipcbiAgICogVGhpcyBpcyBhIHRyYW5zZmVyIG9mIFRSWCBjb250cmFjdC5cbiAgICovXG4gIFRyYW5zZmVyLFxuICAvKipcbiAgICogVGhpcyBpcyB0aGUgbXVsdGktc2lnIGluaXRpYWxpemF0aW9uIGNvbnRyYWN0LlxuICAgKi9cbiAgQWNjb3VudFBlcm1pc3Npb25VcGRhdGUsXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgc21hcnQgY29udHJhY3QgdHlwZS5cbiAgICovXG4gIFRyaWdnZXJTbWFydENvbnRyYWN0LFxufVxuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uVHlwZSB7XG4gIE93bmVyLFxuICBXaXRuZXNzLFxuICBBY3RpdmUsXG59XG4iXX0=
55
+ })(PermissionType || (exports.PermissionType = PermissionType = {}));
56
+ /**
57
+ * Tron resource types
58
+ */
59
+ var TronResource;
60
+ (function (TronResource) {
61
+ TronResource["BANDWIDTH"] = "BANDWIDTH";
62
+ TronResource["ENERGY"] = "ENERGY";
63
+ })(TronResource || (exports.TronResource = TronResource = {}));
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksWUF5Q1g7QUF6Q0QsV0FBWSxZQUFZO0lBQ3RCOztPQUVHO0lBQ0gsdURBQVEsQ0FBQTtJQUNSOztPQUVHO0lBQ0gscUZBQXVCLENBQUE7SUFDdkI7O09BRUc7SUFDSCwrRUFBb0IsQ0FBQTtJQUNwQjs7T0FFRztJQUNILHFFQUFlLENBQUE7SUFDZjs7T0FFRztJQUNILDZEQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHlFQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsbUZBQXNCLENBQUE7SUFDdEI7O09BRUc7SUFDSCxxRUFBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCx1RkFBd0IsQ0FBQTtJQUN4Qjs7T0FFRztJQUNILDJGQUEwQixDQUFBO0FBQzVCLENBQUMsRUF6Q1csWUFBWSw0QkFBWixZQUFZLFFBeUN2QjtBQUVELElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QixxREFBSyxDQUFBO0lBQ0wseURBQU8sQ0FBQTtJQUNQLHVEQUFNLENBQUE7QUFDUixDQUFDLEVBSlcsY0FBYyw4QkFBZCxjQUFjLFFBSXpCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsdUNBQXVCLENBQUE7SUFDdkIsaUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLFlBQVksNEJBQVosWUFBWSxRQUd2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udHJhY3QgdHlwZSBkZXNjcmliZXMgYSBjbGFzcyBvZiBjb250cmFjdCBpbiBhIFRyYW5zYWN0aW9uLiBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGlkZW50aWZ5IHdoYXQgdGhlIENvbnRyYWN0IGlzLlxuICovXG5leHBvcnQgZW51bSBDb250cmFjdFR5cGUge1xuICAvKipcbiAgICogVGhpcyBpcyBhIHRyYW5zZmVyIG9mIFRSWCBjb250cmFjdC5cbiAgICovXG4gIFRyYW5zZmVyLFxuICAvKipcbiAgICogVGhpcyBpcyB0aGUgbXVsdGktc2lnIGluaXRpYWxpemF0aW9uIGNvbnRyYWN0LlxuICAgKi9cbiAgQWNjb3VudFBlcm1pc3Npb25VcGRhdGUsXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgc21hcnQgY29udHJhY3QgdHlwZS5cbiAgICovXG4gIFRyaWdnZXJTbWFydENvbnRyYWN0LFxuICAvKipcbiAgICogVGhpcyBpcyB0aGUgY29udHJhY3QgZm9yIGZyZWV6ZUJ1aWxkZXJcbiAgICovXG4gIEZyZWV6ZUJhbGFuY2VWMixcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGNvbnRyYWN0IGZvciB2b3RpbmcgZm9yIHdpdG5lc3Nlc1xuICAgKi9cbiAgVm90ZVdpdG5lc3MsXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBjb250cmFjdCBmb3IgdW5mcmVlemluZyBiYWxhbmNlc1xuICAgKi9cbiAgVW5mcmVlemVCYWxhbmNlVjIsXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBjb250cmFjdCBmb3Igd2l0aGRyYXdpbmcgZXhwaXJlZCB1bmZyb3plbiBiYWxhbmNlc1xuICAgKi9cbiAgV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZSxcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGNvbnRyYWN0IGZvciB3aXRoZHJhd2luZyByZXdhcmQgYmFsYW5jZXNcbiAgICovXG4gIFdpdGhkcmF3QmFsYW5jZSxcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGNvbnRyYWN0IGZvciBkZWxlZ2F0aW5nIHJlc291cmNlXG4gICAqL1xuICBEZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QsXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBjb250cmFjdCBmb3IgdW4tZGVsZWdhdGluZyByZXNvdXJjZVxuICAgKi9cbiAgVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QsXG59XG5cbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25UeXBlIHtcbiAgT3duZXIsXG4gIFdpdG5lc3MsXG4gIEFjdGl2ZSxcbn1cblxuLyoqXG4gKiBUcm9uIHJlc291cmNlIHR5cGVzXG4gKi9cbmV4cG9ydCBlbnVtIFRyb25SZXNvdXJjZSB7XG4gIEJBTkRXSURUSCA9ICdCQU5EV0lEVEgnLFxuICBFTkVSR1kgPSAnRU5FUkdZJyxcbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { TransactionType, BaseKey } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { Transaction } from './transaction';
5
+ import { TransactionReceipt, FreezeBalanceV2Contract } from './iface';
6
+ export declare class FreezeBalanceTxBuilder extends TransactionBuilder {
7
+ protected _signingKeys: BaseKey[];
8
+ private _frozenBalance;
9
+ private _resource;
10
+ constructor(_coinConfig: Readonly<CoinConfig>);
11
+ /** @inheritdoc */
12
+ protected get transactionType(): TransactionType;
13
+ /**
14
+ * Set the frozen balance amount
15
+ *
16
+ * @param amount amount in TRX to freeze
17
+ * @returns the builder with the new parameter set
18
+ */
19
+ setFrozenBalance(amount: string): this;
20
+ /**
21
+ * Set the resource type
22
+ *
23
+ * @param resource resource type to freeze
24
+ * @returns the builder with the new parameter set
25
+ */
26
+ setResource(resource: string): this;
27
+ /** @inheritdoc */
28
+ extendValidTo(extensionMs: number): void;
29
+ /**
30
+ * Initialize the transaction builder fields using the transaction data
31
+ *
32
+ * @param {TransactionReceipt | string} rawTransaction the transaction data in a string or JSON format
33
+ * @returns {FreezeBalanceTxBuilder} the builder with the transaction data set
34
+ */
35
+ initBuilder(rawTransaction: TransactionReceipt | string): this;
36
+ /**
37
+ * Initialize the freeze contract call specific data
38
+ *
39
+ * @param {FreezeBalanceV2Contract} freezeContractCall object with freeze txn data
40
+ */
41
+ protected initFreezeContractCall(freezeContractCall: FreezeBalanceV2Contract): void;
42
+ protected buildImplementation(): Promise<Transaction>;
43
+ /**
44
+ * Helper method to create the freeze balance transaction
45
+ */
46
+ private createFreezeBalanceTransaction;
47
+ /**
48
+ * Helper method to get the freeze balance transaction raw data hex
49
+ *
50
+ * @returns {string} the freeze balance transaction raw data hex
51
+ */
52
+ private getFreezeRawDataHex;
53
+ /** @inheritdoc */
54
+ protected signImplementation(key: BaseKey): Transaction;
55
+ private applySignatures;
56
+ /**
57
+ * Validates the transaction
58
+ *
59
+ * @param {Transaction} transaction - The transaction to validate
60
+ * @throws {InvalidTransactionError} when the transaction is invalid
61
+ */
62
+ validateTransaction(transaction: Transaction): void;
63
+ /**
64
+ * Validates if the transaction is a valid freeze transaction
65
+ *
66
+ * @param {TransactionReceipt} transaction - The transaction to validate
67
+ * @throws {BuildTransactionError} when the transaction is invalid
68
+ */
69
+ private validateFreezeTransactionFields;
70
+ }
71
+ //# sourceMappingURL=freezeBalanceTxBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freezeBalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/freezeBalanceTxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAA+D,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAYtE,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKtC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMnC,kBAAkB;IAClB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBxC;;;;;OAKG;IACH,WAAW,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAkB9D;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,uBAAuB,GAAG,IAAI;cAenE,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAc3D;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAqBtC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA0B3B,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAUvD,OAAO,CAAC,eAAe;IAQvB;;;;;OAKG;IACH,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInD;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;CAiBxC"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FreezeBalanceTxBuilder = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
+ const transactionBuilder_1 = require("./transactionBuilder");
7
+ const transaction_1 = require("./transaction");
8
+ const utils_1 = require("./utils");
9
+ const tron_1 = require("../../resources/protobuf/tron");
10
+ var ContractType = tron_1.protocol.Transaction.Contract.ContractType;
11
+ class FreezeBalanceTxBuilder extends transactionBuilder_1.TransactionBuilder {
12
+ constructor(_coinConfig) {
13
+ super(_coinConfig);
14
+ this._signingKeys = [];
15
+ this.transaction = new transaction_1.Transaction(_coinConfig);
16
+ }
17
+ /** @inheritdoc */
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.StakingActivate;
20
+ }
21
+ /**
22
+ * Set the frozen balance amount
23
+ *
24
+ * @param amount amount in TRX to freeze
25
+ * @returns the builder with the new parameter set
26
+ */
27
+ setFrozenBalance(amount) {
28
+ this._frozenBalance = amount;
29
+ return this;
30
+ }
31
+ /**
32
+ * Set the resource type
33
+ *
34
+ * @param resource resource type to freeze
35
+ * @returns the builder with the new parameter set
36
+ */
37
+ setResource(resource) {
38
+ this.validateResource(resource);
39
+ this._resource = resource;
40
+ return this;
41
+ }
42
+ /** @inheritdoc */
43
+ extendValidTo(extensionMs) {
44
+ if (this.transaction.signature && this.transaction.signature.length > 0) {
45
+ throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
46
+ }
47
+ if (extensionMs <= 0) {
48
+ throw new Error('Value cannot be below zero');
49
+ }
50
+ if (extensionMs > utils_1.TRANSACTION_MAX_EXPIRATION) {
51
+ throw new sdk_core_1.ExtendTransactionError('The expiration cannot be extended more than one year');
52
+ }
53
+ if (this._expiration) {
54
+ this._expiration = this._expiration + extensionMs;
55
+ }
56
+ else {
57
+ throw new Error('There is not expiration to extend');
58
+ }
59
+ }
60
+ /**
61
+ * Initialize the transaction builder fields using the transaction data
62
+ *
63
+ * @param {TransactionReceipt | string} rawTransaction the transaction data in a string or JSON format
64
+ * @returns {FreezeBalanceTxBuilder} the builder with the transaction data set
65
+ */
66
+ initBuilder(rawTransaction) {
67
+ this.transaction = this.fromImplementation(rawTransaction);
68
+ this.transaction.setTransactionType(this.transactionType);
69
+ this.validateRawTransaction(rawTransaction);
70
+ const tx = this.fromImplementation(rawTransaction);
71
+ this.transaction = tx;
72
+ this._signingKeys = [];
73
+ const rawData = tx.toJson().raw_data;
74
+ this._refBlockBytes = rawData.ref_block_bytes;
75
+ this._refBlockHash = rawData.ref_block_hash;
76
+ this._expiration = rawData.expiration;
77
+ this._timestamp = rawData.timestamp;
78
+ this.transaction.setTransactionType(sdk_core_1.TransactionType.StakingActivate);
79
+ const contractCall = rawData.contract[0];
80
+ this.initFreezeContractCall(contractCall);
81
+ return this;
82
+ }
83
+ /**
84
+ * Initialize the freeze contract call specific data
85
+ *
86
+ * @param {FreezeBalanceV2Contract} freezeContractCall object with freeze txn data
87
+ */
88
+ initFreezeContractCall(freezeContractCall) {
89
+ const { resource, owner_address, frozen_balance } = freezeContractCall.parameter.value;
90
+ if (owner_address) {
91
+ this.source({ address: (0, utils_1.getBase58AddressFromHex)(owner_address) });
92
+ }
93
+ if (resource) {
94
+ this.setResource(resource);
95
+ }
96
+ if (frozen_balance) {
97
+ this.setFrozenBalance(frozen_balance.toString());
98
+ }
99
+ }
100
+ async buildImplementation() {
101
+ this.createFreezeBalanceTransaction();
102
+ /** @inheritdoccreateTransaction */
103
+ // This method must be extended on child classes
104
+ if (this._signingKeys.length > 0) {
105
+ this.applySignatures();
106
+ }
107
+ if (!this.transaction.id) {
108
+ throw new sdk_core_1.BuildTransactionError('A valid transaction must have an id');
109
+ }
110
+ return Promise.resolve(this.transaction);
111
+ }
112
+ /**
113
+ * Helper method to create the freeze balance transaction
114
+ */
115
+ createFreezeBalanceTransaction() {
116
+ const rawDataHex = this.getFreezeRawDataHex();
117
+ const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
118
+ const contract = rawData.contract[0];
119
+ const contractParameter = contract.parameter;
120
+ contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
121
+ contractParameter.value.frozen_balance = Number(this._frozenBalance);
122
+ contractParameter.value.resource = this._resource;
123
+ contractParameter.type_url = 'type.googleapis.com/protocol.FreezeBalanceV2Contract';
124
+ contract.type = 'FreezeBalanceV2Contract';
125
+ const hexBuffer = Buffer.from(rawDataHex, 'hex');
126
+ const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
127
+ const txRecip = {
128
+ raw_data: rawData,
129
+ raw_data_hex: rawDataHex,
130
+ txID: id,
131
+ signature: this.transaction.signature,
132
+ };
133
+ this.transaction = new transaction_1.Transaction(this._coinConfig, txRecip);
134
+ }
135
+ /**
136
+ * Helper method to get the freeze balance transaction raw data hex
137
+ *
138
+ * @returns {string} the freeze balance transaction raw data hex
139
+ */
140
+ getFreezeRawDataHex() {
141
+ const rawContract = {
142
+ ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
143
+ frozenBalance: this._frozenBalance,
144
+ resource: this._resource,
145
+ };
146
+ const freezeContract = tron_1.protocol.FreezeBalanceV2Contract.fromObject(rawContract);
147
+ const freezeContractBytes = tron_1.protocol.FreezeBalanceV2Contract.encode(freezeContract).finish();
148
+ const txContract = {
149
+ type: ContractType.FreezeBalanceV2Contract,
150
+ parameter: {
151
+ value: freezeContractBytes,
152
+ type_url: 'type.googleapis.com/protocol.FreezeBalanceV2Contract',
153
+ },
154
+ };
155
+ const raw = {
156
+ refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
157
+ refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
158
+ expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
159
+ timestamp: this._timestamp || Date.now(),
160
+ contract: [txContract],
161
+ };
162
+ const rawTx = tron_1.protocol.Transaction.raw.create(raw);
163
+ return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
164
+ }
165
+ /** @inheritdoc */
166
+ signImplementation(key) {
167
+ if (this._signingKeys.some((signingKey) => signingKey.key === key.key)) {
168
+ throw new sdk_core_1.SigningError('Duplicated key');
169
+ }
170
+ this._signingKeys.push(key);
171
+ // We keep this return for compatibility but is not meant to be use
172
+ return this.transaction;
173
+ }
174
+ applySignatures() {
175
+ if (!this.transaction.inputs) {
176
+ throw new sdk_core_1.SigningError('Transaction has no inputs');
177
+ }
178
+ this._signingKeys.forEach((key) => this.applySignature(key));
179
+ }
180
+ /**
181
+ * Validates the transaction
182
+ *
183
+ * @param {Transaction} transaction - The transaction to validate
184
+ * @throws {InvalidTransactionError} when the transaction is invalid
185
+ */
186
+ validateTransaction(transaction) {
187
+ this.validateFreezeTransactionFields();
188
+ }
189
+ /**
190
+ * Validates if the transaction is a valid freeze transaction
191
+ *
192
+ * @param {TransactionReceipt} transaction - The transaction to validate
193
+ * @throws {BuildTransactionError} when the transaction is invalid
194
+ */
195
+ validateFreezeTransactionFields() {
196
+ if (!this._frozenBalance) {
197
+ throw new sdk_core_1.BuildTransactionError('Missing parameter: frozenBalance');
198
+ }
199
+ if (!this._ownerAddress) {
200
+ throw new sdk_core_1.BuildTransactionError('Missing parameter: source');
201
+ }
202
+ if (!this._resource) {
203
+ throw new sdk_core_1.BuildTransactionError('Missing parameter: resource');
204
+ }
205
+ if (!this._refBlockBytes || !this._refBlockHash) {
206
+ throw new sdk_core_1.BuildTransactionError('Missing block reference information');
207
+ }
208
+ }
209
+ }
210
+ exports.FreezeBalanceTxBuilder = FreezeBalanceTxBuilder;
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZXplQmFsYW5jZVR4QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZnJlZXplQmFsYW5jZVR4QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbURBQTZIO0FBRTdILDZEQUEwRDtBQUMxRCwrQ0FBNEM7QUFFNUMsbUNBTWlCO0FBQ2pCLHdEQUF5RDtBQUV6RCxJQUFPLFlBQVksR0FBRyxlQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7QUFFakUsTUFBYSxzQkFBdUIsU0FBUSx1Q0FBa0I7SUFLNUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYSxDQUFDLFdBQW1CO1FBQy9CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFH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K0I7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksZ0NBQXFCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksZ0NBQXFCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksZ0NBQXFCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpPRCx3REFpT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgQmFzZUtleSwgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvciwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBTaWduaW5nRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWNlaXB0LCBGcmVlemVCYWxhbmNlVjJDb250cmFjdCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHtcbiAgZGVjb2RlVHJhbnNhY3Rpb24sXG4gIGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzLFxuICBnZXRCYXNlNThBZGRyZXNzRnJvbUhleCxcbiAgVFJBTlNBQ1RJT05fTUFYX0VYUElSQVRJT04sXG4gIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBwcm90b2NvbCB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9wcm90b2J1Zi90cm9uJztcblxuaW1wb3J0IENvbnRyYWN0VHlwZSA9IHByb3RvY29sLlRyYW5zYWN0aW9uLkNvbnRyYWN0LkNvbnRyYWN0VHlwZTtcblxuZXhwb3J0IGNsYXNzIEZyZWV6ZUJhbGFuY2VUeEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3NpZ25pbmdLZXlzOiBCYXNlS2V5W107XG4gIHByaXZhdGUgX2Zyb3plbkJhbGFuY2U6IHN0cmluZztcbiAgcHJpdmF0ZSBfcmVzb3VyY2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fc2lnbmluZ0tleXMgPSBbXTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnJvemVuIGJhbGFuY2UgYW1vdW50XG4gICAqXG4gICAqIEBwYXJhbSBhbW91bnQgYW1vdW50IGluIFRSWCB0byBmcmVlemVcbiAgICogQHJldHVybnMgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHNldEZyb3plbkJhbGFuY2UoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9mcm96ZW5CYWxhbmNlID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmVzb3VyY2UgdHlwZVxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgcmVzb3VyY2UgdHlwZSB0byBmcmVlemVcbiAgICogQHJldHVybnMgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHNldFJlc291cmNlKHJlc291cmNlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlUmVzb3VyY2UocmVzb3VyY2UpO1xuICAgIHRoaXMuX3Jlc291cmNlID0gcmVzb3VyY2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZXh0ZW5kVmFsaWRUbyhleHRlbnNpb25NczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uc2lnbmF0dXJlICYmIHRoaXMudHJhbnNhY3Rpb24uc2lnbmF0dXJlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFeHRlbmRUcmFuc2FjdGlvbkVycm9yKCdDYW5ub3QgZXh0ZW5kIGEgc2lnbmVkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKGV4dGVuc2lvbk1zIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgY2Fubm90IGJlIGJlbG93IHplcm8nKTtcbiAgICB9XG5cbiAgICBpZiAoZXh0ZW5zaW9uTXMgPiBUUkFOU0FDVElPTl9NQVhfRVhQSVJBVElPTikge1xuICAgICAgdGhyb3cgbmV3IEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IoJ1RoZSBleHBpcmF0aW9uIGNhbm5vdCBiZSBleHRlbmRlZCBtb3JlIHRoYW4gb25lIHllYXInKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZXhwaXJhdGlvbikge1xuICAgICAgdGhpcy5fZXhwaXJhdGlvbiA9IHRoaXMuX2V4cGlyYXRpb24gKyBleHRlbnNpb25NcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBpcyBub3QgZXhwaXJhdGlvbiB0byBleHRlbmQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblJlY2VpcHQgfCBzdHJpbmd9IHJhd1RyYW5zYWN0aW9uIHRoZSB0cmFuc2FjdGlvbiBkYXRhIGluIGEgc3RyaW5nIG9yIEpTT04gZm9ybWF0XG4gICAqIEByZXR1cm5zIHtGcmVlemVCYWxhbmNlVHhCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSB0cmFuc2FjdGlvbiBkYXRhIHNldFxuICAgKi9cbiAgaW5pdEJ1aWxkZXIocmF3VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0aGlzLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgdHggPSB0aGlzLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX3NpZ25pbmdLZXlzID0gW107XG4gICAgY29uc3QgcmF3RGF0YSA9IHR4LnRvSnNvbigpLnJhd19kYXRhO1xuICAgIHRoaXMuX3JlZkJsb2NrQnl0ZXMgPSByYXdEYXRhLnJlZl9ibG9ja19ieXRlcztcbiAgICB0aGlzLl9yZWZCbG9ja0hhc2ggPSByYXdEYXRhLnJlZl9ibG9ja19oYXNoO1xuICAgIHRoaXMuX2V4cGlyYXRpb24gPSByYXdEYXRhLmV4cGlyYXRpb247XG4gICAgdGhpcy5fdGltZXN0YW1wID0gcmF3RGF0YS50aW1lc3RhbXA7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZSk7XG4gICAgY29uc3QgY29udHJhY3RDYWxsID0gcmF3RGF0YS5jb250cmFjdFswXSBhcyBGcmVlemVCYWxhbmNlVjJDb250cmFjdDtcbiAgICB0aGlzLmluaXRGcmVlemVDb250cmFjdENhbGwoY29udHJhY3RDYWxsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBmcmVlemUgY29udHJhY3QgY2FsbCBzcGVjaWZpYyBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7RnJlZXplQmFsYW5jZVYyQ29udHJhY3R9IGZyZWV6ZUNvbnRyYWN0Q2FsbCBvYmplY3Qgd2l0aCBmcmVlemUgdHhuIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCBpbml0RnJlZXplQ29udHJhY3RDYWxsKGZyZWV6ZUNvbnRyYWN0Q2FsbDogRnJlZXplQmFsYW5jZVYyQ29udHJhY3QpOiB2b2lkIHtcbiAgICBjb25zdCB7IHJlc291cmNlLCBvd25lcl9hZGRyZXNzLCBmcm96ZW5fYmFsYW5jZSB9ID0gZnJlZXplQ29udHJhY3RDYWxsLnBhcmFtZXRlci52YWx1ZTtcbiAgICBpZiAob3duZXJfYWRkcmVzcykge1xuICAgICAgdGhpcy5zb3VyY2UoeyBhZGRyZXNzOiBnZXRCYXNlNThBZGRyZXNzRnJvbUhleChvd25lcl9hZGRyZXNzKSB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgIHRoaXMuc2V0UmVzb3VyY2UocmVzb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChmcm96ZW5fYmFsYW5jZSkge1xuICAgICAgdGhpcy5zZXRGcm96ZW5CYWxhbmNlKGZyb3plbl9iYWxhbmNlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLmNyZWF0ZUZyZWV6ZUJhbGFuY2VUcmFuc2FjdGlvbigpO1xuICAgIC8qKiBAaW5oZXJpdGRvY2NyZWF0ZVRyYW5zYWN0aW9uICovXG4gICAgLy8gVGhpcyBtZXRob2QgbXVzdCBiZSBleHRlbmRlZCBvbiBjaGlsZCBjbGFzc2VzXG4gICAgaWYgKHRoaXMuX3NpZ25pbmdLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYXBwbHlTaWduYXR1cmVzKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLmlkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdBIHZhbGlkIHRyYW5zYWN0aW9uIG11c3QgaGF2ZSBhbiBpZCcpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMudHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIHRoZSBmcmVlemUgYmFsYW5jZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVGcmVlemVCYWxhbmNlVHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgcmF3RGF0YUhleCA9IHRoaXMuZ2V0RnJlZXplUmF3RGF0YUhleCgpO1xuICAgIGNvbnN0IHJhd0RhdGEgPSBkZWNvZGVUcmFuc2FjdGlvbihyYXdEYXRhSGV4KTtcbiAgICBjb25zdCBjb250cmFjdCA9IHJhd0RhdGEuY29udHJhY3RbMF0gYXMgRnJlZXplQmFsYW5jZVYyQ29udHJhY3Q7XG4gICAgY29uc3QgY29udHJhY3RQYXJhbWV0ZXIgPSBjb250cmFjdC5wYXJhbWV0ZXI7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudmFsdWUub3duZXJfYWRkcmVzcyA9IHRoaXMuX293bmVyQWRkcmVzcy50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLmZyb3plbl9iYWxhbmNlID0gTnVtYmVyKHRoaXMuX2Zyb3plbkJhbGFuY2UpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLnJlc291cmNlID0gdGhpcy5fcmVzb3VyY2U7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudHlwZV91cmwgPSAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5GcmVlemVCYWxhbmNlVjJDb250cmFjdCc7XG4gICAgY29udHJhY3QudHlwZSA9ICdGcmVlemVCYWxhbmNlVjJDb250cmFjdCc7XG4gICAgY29uc3QgaGV4QnVmZmVyID0gQnVmZmVyLmZyb20ocmF3RGF0YUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICBjb25zdCB0eFJlY2lwOiBUcmFuc2FjdGlvblJlY2VpcHQgPSB7XG4gICAgICByYXdfZGF0YTogcmF3RGF0YSxcbiAgICAgIHJhd19kYXRhX2hleDogcmF3RGF0YUhleCxcbiAgICAgIHR4SUQ6IGlkLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZSxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdHhSZWNpcCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIGZyZWV6ZSBiYWxhbmNlIHRyYW5zYWN0aW9uIHJhdyBkYXRhIGhleFxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgZnJlZXplIGJhbGFuY2UgdHJhbnNhY3Rpb24gcmF3IGRhdGEgaGV4XG4gICAqL1xuICBwcml2YXRlIGdldEZyZWV6ZVJhd0RhdGFIZXgoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXdDb250cmFjdCA9IHtcbiAgICAgIG93bmVyQWRkcmVzczogZ2V0Qnl0ZUFycmF5RnJvbUhleEFkZHJlc3ModGhpcy5fb3duZXJBZGRyZXNzKSxcbiAgICAgIGZyb3plbkJhbGFuY2U6IHRoaXMuX2Zyb3plbkJhbGFuY2UsXG4gICAgICByZXNvdXJjZTogdGhpcy5fcmVzb3VyY2UsXG4gICAgfTtcbiAgICBjb25zdCBmcmVlemVDb250cmFjdCA9IHByb3RvY29sLkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LmZyb21PYmplY3QocmF3Q29udHJhY3QpO1xuICAgIGNvbnN0IGZyZWV6ZUNvbnRyYWN0Qnl0ZXMgPSBwcm90b2NvbC5GcmVlemVCYWxhbmNlVjJDb250cmFjdC5lbmNvZGUoZnJlZXplQ29udHJhY3QpLmZpbmlzaCgpO1xuICAgIGNvbnN0IHR4Q29udHJhY3QgPSB7XG4gICAgICB0eXBlOiBDb250cmFjdFR5cGUuRnJlZXplQmFsYW5jZVYyQ29udHJhY3QsXG4gICAgICBwYXJhbWV0ZXI6IHtcbiAgICAgICAgdmFsdWU6IGZyZWV6ZUNvbnRyYWN0Qnl0ZXMsXG4gICAgICAgIHR5cGVfdXJsOiAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5GcmVlemVCYWxhbmNlVjJDb250cmFjdCcsXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcmF3ID0ge1xuICAgICAgcmVmQmxvY2tCeXRlczogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tCeXRlcywgJ2hleCcpLFxuICAgICAgcmVmQmxvY2tIYXNoOiBCdWZmZXIuZnJvbSh0aGlzLl9yZWZCbG9ja0hhc2gsICdoZXgnKSxcbiAgICAgIGV4cGlyYXRpb246IHRoaXMuX2V4cGlyYXRpb24gfHwgRGF0ZS5ub3coKSArIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbiAgICAgIHRpbWVzdGFtcDogdGhpcy5fdGltZXN0YW1wIHx8IERhdGUubm93KCksXG4gICAgICBjb250cmFjdDogW3R4Q29udHJhY3RdLFxuICAgIH07XG4gICAgY29uc3QgcmF3VHggPSBwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuY3JlYXRlKHJhdyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHByb3RvY29sLlRyYW5zYWN0aW9uLnJhdy5lbmNvZGUocmF3VHgpLmZpbmlzaCgpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX3NpZ25pbmdLZXlzLnNvbWUoKHNpZ25pbmdLZXkpID0+IHNpZ25pbmdLZXkua2V5ID09PSBrZXkua2V5KSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignRHVwbGljYXRlZCBrZXknKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmluZ0tleXMucHVzaChrZXkpO1xuXG4gICAgLy8gV2Uga2VlcCB0aGlzIHJldHVybiBmb3IgY29tcGF0aWJpbGl0eSBidXQgaXMgbm90IG1lYW50IHRvIGJlIHVzZVxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNpZ25hdHVyZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLmlucHV0cykge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignVHJhbnNhY3Rpb24gaGFzIG5vIGlucHV0cycpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25pbmdLZXlzLmZvckVhY2goKGtleSkgPT4gdGhpcy5hcHBseVNpZ25hdHVyZShrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uIC0gVGhlIHRyYW5zYWN0aW9uIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3Mge0ludmFsaWRUcmFuc2FjdGlvbkVycm9yfSB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBpbnZhbGlkXG4gICAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVGcmVlemVUcmFuc2FjdGlvbkZpZWxkcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYSB2YWxpZCBmcmVlemUgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblJlY2VpcHR9IHRyYW5zYWN0aW9uIC0gVGhlIHRyYW5zYWN0aW9uIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgaW52YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZyZWV6ZVRyYW5zYWN0aW9uRmllbGRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZnJvemVuQmFsYW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IGZyb3plbkJhbGFuY2UnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX293bmVyQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHNvdXJjZScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fcmVzb3VyY2UpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgcGFyYW1ldGVyOiByZXNvdXJjZScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fcmVmQmxvY2tCeXRlcyB8fCAhdGhpcy5fcmVmQmxvY2tIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGJsb2NrIHJlZmVyZW5jZSBpbmZvcm1hdGlvbicpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Entry } from '@bitgo-beta/sdk-core';
2
- import { ContractType, PermissionType } from './enum';
2
+ import { ContractType, PermissionType, TronResource } from './enum';
3
3
  export interface Account {
4
4
  publicKey: string;
5
5
  privateKey: string;
@@ -37,7 +37,7 @@ export interface RawData {
37
37
  ref_block_hash: string;
38
38
  fee_limit?: number;
39
39
  contractType?: ContractType;
40
- contract: TransferContract[] | AccountPermissionUpdateContract[] | TriggerSmartContract[];
40
+ contract: TransferContract[] | AccountPermissionUpdateContract[] | TriggerSmartContract[] | FreezeBalanceV2Contract[] | VoteWitnessContract[] | UnfreezeBalanceV2Contract[] | WithdrawExpireUnfreezeContract[] | WithdrawBalanceContract[] | ResourceManagementContract[];
41
41
  }
42
42
  export interface Value {
43
43
  type_url?: string;
@@ -100,4 +100,222 @@ export interface AccountInfo {
100
100
  }];
101
101
  trc20: [Record<string, string>];
102
102
  }
103
+ /**
104
+ * Freeze balance contract value fields
105
+ */
106
+ export interface FreezeBalanceValueFields {
107
+ resource: string;
108
+ frozen_balance: number;
109
+ owner_address: string;
110
+ }
111
+ /**
112
+ * Unfreeze transaction value fields
113
+ */
114
+ export interface UnfreezeBalanceValueFields {
115
+ resource: string;
116
+ unfreeze_balance: number;
117
+ owner_address: string;
118
+ }
119
+ /**
120
+ * Freeze balance contract value interface
121
+ */
122
+ export interface FreezeBalanceValue {
123
+ type_url?: string;
124
+ value: FreezeBalanceValueFields;
125
+ }
126
+ /**
127
+ * Freeze balance v2 contract interface
128
+ */
129
+ export interface FreezeBalanceV2Contract {
130
+ parameter: FreezeBalanceValue;
131
+ type?: string;
132
+ }
133
+ /**
134
+ * Unfreeze balance contract value interface
135
+ */
136
+ export interface UnfreezeBalanceValue {
137
+ type_url?: string;
138
+ value: UnfreezeBalanceValueFields;
139
+ }
140
+ /**
141
+ * Unfreeze balance v2 contract interface
142
+ */
143
+ export interface UnfreezeBalanceV2Contract {
144
+ parameter: UnfreezeBalanceValue;
145
+ type?: string;
146
+ }
147
+ /**
148
+ * Freeze balance contract parameter interface
149
+ */
150
+ export interface FreezeBalanceContractParameter {
151
+ parameter: {
152
+ value: {
153
+ resource: TronResource;
154
+ frozen_balance: number;
155
+ owner_address: string;
156
+ };
157
+ };
158
+ }
159
+ /**
160
+ * Withdraw transaction value fields
161
+ */
162
+ export interface WithdrawExpireUnfreezeValueFields {
163
+ owner_address: string;
164
+ }
165
+ /**
166
+ * Withdraw balance contract value interface
167
+ */
168
+ export interface WithdrawExpireUnfreezeValue {
169
+ type_url?: string;
170
+ value: WithdrawExpireUnfreezeValueFields;
171
+ }
172
+ /**
173
+ * Withdraw expire unfreeze contract interface
174
+ */
175
+ export interface WithdrawExpireUnfreezeContract {
176
+ parameter: WithdrawExpireUnfreezeValue;
177
+ type?: string;
178
+ }
179
+ export interface WithdrawBalanceContract {
180
+ parameter: WithdrawExpireUnfreezeValue;
181
+ type?: string;
182
+ }
183
+ export interface UnfreezeBalanceContractParameter {
184
+ parameter: {
185
+ value: {
186
+ resource: TronResource;
187
+ unfreeze_balance: number;
188
+ owner_address: string;
189
+ };
190
+ };
191
+ }
192
+ /**
193
+ * Freeze balance contract decoded interface
194
+ */
195
+ export interface FreezeContractDecoded {
196
+ ownerAddress?: string;
197
+ resource?: string;
198
+ frozenBalance?: string | number;
199
+ }
200
+ /**
201
+ * Unfreeze balance contract decoded interface
202
+ */
203
+ export interface UnfreezeContractDecoded {
204
+ ownerAddress?: string;
205
+ resource?: number;
206
+ unfreezeBalance?: string | number;
207
+ }
208
+ /**
209
+ * Withdraw expire unfreeze contract decoded interface
210
+ */
211
+ export interface WithdrawContractDecoded {
212
+ ownerAddress?: string;
213
+ }
214
+ /**
215
+ * Vote data in a vote transaction
216
+ */
217
+ export interface VoteWitnessData {
218
+ vote_address: string;
219
+ vote_count: number;
220
+ }
221
+ /**
222
+ * Vote transaction value fields
223
+ */
224
+ export interface VoteWitnessValueFields {
225
+ owner_address: string;
226
+ votes: VoteWitnessData[];
227
+ }
228
+ /**
229
+ * Vote contract value interface
230
+ */
231
+ export interface VoteWitnessValue {
232
+ type_url?: string;
233
+ value: VoteWitnessValueFields;
234
+ }
235
+ /**
236
+ * Vote witness contract interface
237
+ */
238
+ export interface VoteWitnessContract {
239
+ parameter: VoteWitnessValue;
240
+ type?: string;
241
+ }
242
+ /**
243
+ * Vote witness contract decoded interface
244
+ */
245
+ export interface VoteContractDecoded {
246
+ ownerAddress?: string;
247
+ votes?: Array<{
248
+ voteAddress?: string;
249
+ voteCount?: string | number;
250
+ }>;
251
+ }
252
+ /**
253
+ * Vote witness contract parameter interface
254
+ */
255
+ export interface VoteWitnessContractParameter {
256
+ parameter: {
257
+ value: {
258
+ owner_address: string;
259
+ votes: Array<{
260
+ vote_address: string;
261
+ vote_count: number;
262
+ }>;
263
+ };
264
+ };
265
+ }
266
+ /**
267
+ * Withdraw expire unfreeze contract parameter interface
268
+ */
269
+ export interface WithdrawExpireUnfreezeContractParameter {
270
+ parameter: {
271
+ value: {
272
+ owner_address: string;
273
+ };
274
+ };
275
+ }
276
+ /**
277
+ * Delegate/Undelegate resource value interface
278
+ */
279
+ export interface ResourceManagementTxValueFields {
280
+ balance: number;
281
+ receiver_address: string;
282
+ owner_address: string;
283
+ resource: string;
284
+ }
285
+ /**
286
+ * Delegate/Undelegate resource parameters interface
287
+ */
288
+ export interface ResourceManagmentTxParams {
289
+ value: ResourceManagementTxValueFields;
290
+ type_url?: string;
291
+ }
292
+ /**
293
+ * Delegate/Undelegate resource contract interface
294
+ */
295
+ export interface ResourceManagementContract {
296
+ parameter: ResourceManagmentTxParams;
297
+ type?: string;
298
+ }
299
+ /**
300
+ * Delegate/Undelegate resource contract parameter interface
301
+ */
302
+ export interface ResourceManagementContractParameter {
303
+ parameter: {
304
+ value: {
305
+ resource: TronResource;
306
+ balance: string | number;
307
+ owner_address: string;
308
+ receiver_address: string;
309
+ };
310
+ };
311
+ }
312
+ /**
313
+ * Delegate/Undelegate resource contract decoded interface
314
+ */
315
+ export interface ResourceManagementContractDecoded {
316
+ ownerAddress?: string;
317
+ receiverAddress?: string;
318
+ balance?: string | number;
319
+ resource?: TronResource;
320
+ }
103
321
  //# sourceMappingURL=iface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}