@bitgo-beta/sdk-coin-sui 3.0.3-beta.9 → 3.0.3-beta.900

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 (144) hide show
  1. package/.mocharc.yml +1 -2
  2. package/CHANGELOG.md +874 -0
  3. package/dist/src/index.d.ts +1 -0
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +7 -2
  6. package/dist/src/lib/compareTransactionBlocks.d.ts +8 -0
  7. package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
  8. package/dist/src/lib/compareTransactionBlocks.js +12 -0
  9. package/dist/src/lib/constants.d.ts +10 -2
  10. package/dist/src/lib/constants.d.ts.map +1 -1
  11. package/dist/src/lib/constants.js +19 -2
  12. package/dist/src/lib/customTransaction.d.ts +57 -0
  13. package/dist/src/lib/customTransaction.d.ts.map +1 -0
  14. package/dist/src/lib/customTransaction.js +159 -0
  15. package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
  16. package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
  17. package/dist/src/lib/customTransactionBuilder.js +117 -0
  18. package/dist/src/lib/iface.d.ts +77 -10
  19. package/dist/src/lib/iface.d.ts.map +1 -1
  20. package/dist/src/lib/iface.js +40 -5
  21. package/dist/src/lib/index.d.ts +8 -0
  22. package/dist/src/lib/index.d.ts.map +1 -1
  23. package/dist/src/lib/index.js +40 -10
  24. package/dist/src/lib/keyPair.js +24 -10
  25. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +9 -9
  26. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
  27. package/dist/src/lib/mystenlab/builder/Inputs.js +18 -19
  28. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +40 -354
  29. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -1
  30. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +43 -48
  31. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +74 -74
  32. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -1
  33. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +41 -44
  34. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +133 -188
  35. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -1
  36. package/dist/src/lib/mystenlab/builder/Transactions.js +52 -53
  37. package/dist/src/lib/mystenlab/builder/bcs.d.ts +1 -1
  38. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -1
  39. package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
  40. package/dist/src/lib/mystenlab/builder/index.js +6 -2
  41. package/dist/src/lib/mystenlab/builder/serializer.js +6 -8
  42. package/dist/src/lib/mystenlab/builder/utils.d.ts +1 -1
  43. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -1
  44. package/dist/src/lib/mystenlab/builder/utils.js +4 -4
  45. package/dist/src/lib/mystenlab/cryptography/hash.js +3 -4
  46. package/dist/src/lib/mystenlab/framework/framework.d.ts +6 -6
  47. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -1
  48. package/dist/src/lib/mystenlab/framework/framework.js +22 -25
  49. package/dist/src/lib/mystenlab/framework/index.js +6 -2
  50. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +2 -0
  51. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -1
  52. package/dist/src/lib/mystenlab/framework/sui-system-state.js +6 -3
  53. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
  54. package/dist/src/lib/mystenlab/types/coin.d.ts +14 -14
  55. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -1
  56. package/dist/src/lib/mystenlab/types/coin.js +19 -19
  57. package/dist/src/lib/mystenlab/types/common.d.ts +8 -8
  58. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -1
  59. package/dist/src/lib/mystenlab/types/common.js +22 -22
  60. package/dist/src/lib/mystenlab/types/events.d.ts +14 -14
  61. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -1
  62. package/dist/src/lib/mystenlab/types/events.js +17 -17
  63. package/dist/src/lib/mystenlab/types/index.js +6 -2
  64. package/dist/src/lib/mystenlab/types/normalized.d.ts +21 -21
  65. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -1
  66. package/dist/src/lib/mystenlab/types/normalized.js +41 -41
  67. package/dist/src/lib/mystenlab/types/objects.d.ts +100 -100
  68. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -1
  69. package/dist/src/lib/mystenlab/types/objects.js +96 -106
  70. package/dist/src/lib/mystenlab/types/option.d.ts +1 -1
  71. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -1
  72. package/dist/src/lib/mystenlab/types/option.js +2 -3
  73. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +8 -8
  74. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
  75. package/dist/src/lib/mystenlab/types/sui-bcs.js +5 -5
  76. package/dist/src/lib/mystenlab/types/transactions.d.ts +641 -641
  77. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -1
  78. package/dist/src/lib/mystenlab/types/transactions.js +178 -194
  79. package/dist/src/lib/mystenlab/types/validator.d.ts +13 -13
  80. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -1
  81. package/dist/src/lib/mystenlab/types/validator.js +124 -124
  82. package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
  83. package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
  84. package/dist/src/lib/resources/walrusConfig.js +37 -0
  85. package/dist/src/lib/rpcClient.d.ts +5 -0
  86. package/dist/src/lib/rpcClient.d.ts.map +1 -0
  87. package/dist/src/lib/rpcClient.js +74 -0
  88. package/dist/src/lib/stakingBuilder.d.ts +3 -3
  89. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  90. package/dist/src/lib/stakingBuilder.js +47 -28
  91. package/dist/src/lib/stakingTransaction.d.ts +1 -1
  92. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  93. package/dist/src/lib/stakingTransaction.js +34 -26
  94. package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
  95. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  96. package/dist/src/lib/tokenTransferBuilder.js +132 -0
  97. package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
  98. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  99. package/dist/src/lib/tokenTransferTransaction.js +250 -0
  100. package/dist/src/lib/transaction.d.ts +12 -4
  101. package/dist/src/lib/transaction.d.ts.map +1 -1
  102. package/dist/src/lib/transaction.js +91 -18
  103. package/dist/src/lib/transactionBuilder.d.ts +2 -3
  104. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  105. package/dist/src/lib/transactionBuilder.js +4 -4
  106. package/dist/src/lib/transactionBuilderFactory.d.ts +14 -2
  107. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  108. package/dist/src/lib/transactionBuilderFactory.js +42 -1
  109. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  110. package/dist/src/lib/transferBuilder.js +21 -5
  111. package/dist/src/lib/transferTransaction.d.ts +1 -1
  112. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  113. package/dist/src/lib/transferTransaction.js +31 -8
  114. package/dist/src/lib/unstakingBuilder.d.ts +8 -1
  115. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -1
  116. package/dist/src/lib/unstakingBuilder.js +99 -20
  117. package/dist/src/lib/unstakingTransaction.d.ts +26 -2
  118. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
  119. package/dist/src/lib/unstakingTransaction.js +162 -23
  120. package/dist/src/lib/utils.d.ts +27 -5
  121. package/dist/src/lib/utils.d.ts.map +1 -1
  122. package/dist/src/lib/utils.js +297 -25
  123. package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
  124. package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
  125. package/dist/src/lib/walrusStakingBuilder.js +200 -0
  126. package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
  127. package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
  128. package/dist/src/lib/walrusStakingTransaction.js +269 -0
  129. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
  130. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
  131. package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
  132. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
  133. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
  134. package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
  135. package/dist/src/register.d.ts.map +1 -1
  136. package/dist/src/register.js +5 -1
  137. package/dist/src/sui.d.ts +46 -8
  138. package/dist/src/sui.d.ts.map +1 -1
  139. package/dist/src/sui.js +479 -32
  140. package/dist/src/suiToken.d.ts +22 -0
  141. package/dist/src/suiToken.d.ts.map +1 -0
  142. package/dist/src/suiToken.js +61 -0
  143. package/dist/src/tsui.js +1 -1
  144. package/package.json +14 -10
@@ -0,0 +1,132 @@
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.TokenTransferBuilder = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const iface_1 = require("./iface");
10
+ const transactionBuilder_1 = require("./transactionBuilder");
11
+ const tokenTransferTransaction_1 = require("./tokenTransferTransaction");
12
+ const utils_1 = __importDefault(require("./utils"));
13
+ const builder_1 = require("./mystenlab/builder");
14
+ class TokenTransferBuilder extends transactionBuilder_1.TransactionBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this._transaction = new tokenTransferTransaction_1.TokenTransferTransaction(_coinConfig);
18
+ }
19
+ get transactionType() {
20
+ return sdk_core_1.TransactionType.Send;
21
+ }
22
+ /** @inheritdoc */
23
+ validateTransaction(transaction) {
24
+ if (!transaction.suiTransaction) {
25
+ return;
26
+ }
27
+ this.validateTransactionFields();
28
+ }
29
+ /** @inheritdoc */
30
+ sign(key) {
31
+ this.transaction.setSuiTransaction(this.buildSuiTransaction());
32
+ super.sign(key);
33
+ }
34
+ /** @inheritdoc */
35
+ fromImplementation(rawTransaction) {
36
+ const tx = new tokenTransferTransaction_1.TokenTransferTransaction(this._coinConfig);
37
+ this.validateRawTransaction(rawTransaction);
38
+ tx.fromRawTransaction(rawTransaction);
39
+ this.initBuilder(tx);
40
+ return this.transaction;
41
+ }
42
+ /** @inheritdoc */
43
+ async buildImplementation() {
44
+ this.transaction.setSuiTransaction(this.buildSuiTransaction());
45
+ this.transaction.transactionType(this.transactionType);
46
+ if (this._signer) {
47
+ this.transaction.sign(this._signer);
48
+ }
49
+ this._signatures.forEach((signature) => {
50
+ this.transaction.addSignature(signature.publicKey, signature.signature);
51
+ });
52
+ this.transaction.loadInputsAndOutputs();
53
+ return this.transaction;
54
+ }
55
+ /** @inheritdoc */
56
+ initBuilder(tx) {
57
+ this._transaction = tx;
58
+ if (tx.signature && tx.signature.length > 0) {
59
+ this._signatures = [tx.suiSignature];
60
+ }
61
+ const txData = tx.toJson();
62
+ this.type(iface_1.SuiTransactionType.TokenTransfer);
63
+ this.sender(txData.sender);
64
+ this.gasData(txData.gasData);
65
+ const recipients = utils_1.default.getRecipients(tx.suiTransaction);
66
+ this.send(recipients);
67
+ (0, assert_1.default)(txData.inputObjects);
68
+ this.inputObjects(txData.inputObjects);
69
+ }
70
+ send(recipients) {
71
+ this.validateRecipients(recipients);
72
+ this._recipients = recipients;
73
+ return this;
74
+ }
75
+ inputObjects(inputObject) {
76
+ this.validateInputObjects(inputObject);
77
+ this._inputObjects = inputObject;
78
+ return this;
79
+ }
80
+ /**
81
+ * Validates all fields are defined correctly
82
+ */
83
+ validateTransactionFields() {
84
+ (0, assert_1.default)(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
85
+ (0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
86
+ (0, assert_1.default)(this._recipients && this._recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
87
+ (0, assert_1.default)(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
88
+ this.validateGasData(this._gasData);
89
+ this.validateInputObjects(this._inputObjects);
90
+ }
91
+ validateInputObjects(inputObjects) {
92
+ (0, assert_1.default)(inputObjects && inputObjects.length > 0, new sdk_core_1.BuildTransactionError('input objects required before building'));
93
+ inputObjects.forEach((inputObject) => {
94
+ this.validateSuiObjectRef(inputObject, 'input object');
95
+ });
96
+ }
97
+ /**
98
+ * Build SuiTransaction
99
+ *
100
+ * @return {SuiTransaction<TokenTransferProgrammableTransaction>}
101
+ * @protected
102
+ */
103
+ buildSuiTransaction() {
104
+ this.validateTransactionFields();
105
+ const programmableTxBuilder = new builder_1.TransactionBlock();
106
+ const inputObjects = this._inputObjects.map((object) => programmableTxBuilder.object(builder_1.Inputs.ObjectRef(object)));
107
+ const mergedObject = inputObjects.shift();
108
+ if (inputObjects.length > 0) {
109
+ programmableTxBuilder.mergeCoins(mergedObject, inputObjects);
110
+ }
111
+ this._recipients.forEach((recipient) => {
112
+ const splitObject = programmableTxBuilder.splitCoins(mergedObject, [
113
+ programmableTxBuilder.pure(Number(recipient.amount)),
114
+ ]);
115
+ programmableTxBuilder.transferObjects([splitObject], programmableTxBuilder.object(recipient.address));
116
+ });
117
+ const txData = programmableTxBuilder.blockData;
118
+ return {
119
+ type: this._type,
120
+ sender: this._sender,
121
+ tx: {
122
+ inputs: [...txData.inputs],
123
+ transactions: [...txData.transactions],
124
+ },
125
+ gasData: {
126
+ ...this._gasData,
127
+ },
128
+ };
129
+ }
130
+ }
131
+ exports.TokenTransferBuilder = TokenTransferBuilder;
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixtREFBa0c7QUFFbEcsbUNBQW1HO0FBRW5HLDZEQUEwRDtBQUMxRCx5RUFBc0U7QUFFdEUsb0RBQTRCO0FBQzVCLGlEQUk2QjtBQUU3QixNQUFhLG9CQUFxQixTQUFRLHVDQUF3RDtJQUdoRyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksbURBQXdCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBcUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQVk7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDL0QsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxFQUFFLEdBQUcsSUFBSSxtREFBd0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxrQkFBa0Is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LENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO2dCQUNqRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyRCxDQUFDLENBQUM7WUFDSCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDL0MsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDakI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaEpELG9EQWdKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgUmVjaXBpZW50LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEJhc2VLZXkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBTdWlUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb25UeXBlLCBUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL3Rva2VuVHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdWlPYmplY3RSZWYgfSBmcm9tICcuL215c3RlbmxhYi90eXBlcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1xuICBJbnB1dHMsXG4gIFRyYW5zYWN0aW9uQmxvY2sgYXMgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcixcbiAgVHJhbnNhY3Rpb25Bcmd1bWVudCxcbn0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUb2tlblRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcjxUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIF9yZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcbiAgcHJvdGVjdGVkIF9pbnB1dE9iamVjdHM6IFN1aU9iamVjdFJlZltdO1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRva2VuVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2lnbihrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICBzdXBlci5zaWduKGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb248VG9rZW5UcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHggPSBuZXcgVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPFRva2VuVHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG5cbiAgICBpZiAodGhpcy5fc2lnbmVyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ24odGhpcy5fc2lnbmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zaWduYXR1cmVzLmZvckVhY2goKHNpZ25hdHVyZSkgPT4ge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnbmF0dXJlLnB1YmxpY0tleSwgc2lnbmF0dXJlLnNpZ25hdHVyZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRva2VuVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG5cbiAgICBpZiAodHguc2lnbmF0dXJlICYmIHR4LnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzID0gW3R4LnN1aVNpZ25hdHVyZV07XG4gICAgfVxuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMudHlwZShTdWlUcmFuc2FjdGlvblR5cGUuVG9rZW5UcmFuc2Zlcik7XG4gICAgdGhpcy5zZW5kZXIodHhEYXRhLnNlbmRlcik7XG4gICAgdGhpcy5nYXNEYXRhKHR4RGF0YS5nYXNEYXRhKTtcbiAgICBjb25zdCByZWNpcGllbnRzID0gdXRpbHMuZ2V0UmVjaXBpZW50cyh0eC5zdWlUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5zZW5kKHJlY2lwaWVudHMpO1xuICAgIGFzc2VydCh0eERhdGEuaW5wdXRPYmplY3RzKTtcbiAgICB0aGlzLmlucHV0T2JqZWN0cyh0eERhdGEuaW5wdXRPYmplY3RzKTtcbiAgfVxuXG4gIHNlbmQocmVjaXBpZW50czogUmVjaXBpZW50W10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlUmVjaXBpZW50cyhyZWNpcGllbnRzKTtcbiAgICB0aGlzLl9yZWNpcGllbnRzID0gcmVjaXBpZW50cztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlucHV0T2JqZWN0cyhpbnB1dE9iamVjdDogU3VpT2JqZWN0UmVmW10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlSW5wdXRPYmplY3RzKGlucHV0T2JqZWN0KTtcbiAgICB0aGlzLl9pbnB1dE9iamVjdHMgPSBpbnB1dE9iamVjdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWxsIGZpZWxkcyBhcmUgZGVmaW5lZCBjb3JyZWN0bHlcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBhc3NlcnQodGhpcy5fdHlwZSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHlwZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQoXG4gICAgICB0aGlzLl9yZWNpcGllbnRzICYmIHRoaXMuX3JlY2lwaWVudHMubGVuZ3RoID4gMCxcbiAgICAgIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2F0IGxlYXN0IG9uZSByZWNpcGllbnQgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJylcbiAgICApO1xuICAgIGFzc2VydCh0aGlzLl9nYXNEYXRhLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdnYXNEYXRhIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICB0aGlzLnZhbGlkYXRlR2FzRGF0YSh0aGlzLl9nYXNEYXRhKTtcbiAgICB0aGlzLnZhbGlkYXRlSW5wdXRPYmplY3RzKHRoaXMuX2lucHV0T2JqZWN0cyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlSW5wdXRPYmplY3RzKGlucHV0T2JqZWN0czogU3VpT2JqZWN0UmVmW10pOiB2b2lkIHtcbiAgICBhc3NlcnQoXG4gICAgICBpbnB1dE9iamVjdHMgJiYgaW5wdXRPYmplY3RzLmxlbmd0aCA+IDAsXG4gICAgICBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnB1dCBvYmplY3RzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpXG4gICAgKTtcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCgoaW5wdXRPYmplY3QpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVTdWlPYmplY3RSZWYoaW5wdXRPYmplY3QsICdpbnB1dCBvYmplY3QnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBTdWlUcmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJuIHtTdWlUcmFuc2FjdGlvbjxUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+fVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRTdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcblxuICAgIGNvbnN0IHByb2dyYW1tYWJsZVR4QnVpbGRlciA9IG5ldyBQcm9ncmFtbWluZ1RyYW5zYWN0aW9uQmxvY2tCdWlsZGVyKCk7XG5cbiAgICBjb25zdCBpbnB1dE9iamVjdHMgPSB0aGlzLl9pbnB1dE9iamVjdHMubWFwKChvYmplY3QpID0+IHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QoSW5wdXRzLk9iamVjdFJlZihvYmplY3QpKSk7XG4gICAgY29uc3QgbWVyZ2VkT2JqZWN0ID0gaW5wdXRPYmplY3RzLnNoaWZ0KCkgYXMgVHJhbnNhY3Rpb25Bcmd1bWVudDtcblxuICAgIGlmIChpbnB1dE9iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm1lcmdlQ29pbnMobWVyZ2VkT2JqZWN0LCBpbnB1dE9iamVjdHMpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlY2lwaWVudHMuZm9yRWFjaCgocmVjaXBpZW50KSA9PiB7XG4gICAgICBjb25zdCBzcGxpdE9iamVjdCA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5zcGxpdENvaW5zKG1lcmdlZE9iamVjdCwgW1xuICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShOdW1iZXIocmVjaXBpZW50LmFtb3VudCkpLFxuICAgICAgXSk7XG4gICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIudHJhbnNmZXJPYmplY3RzKFtzcGxpdE9iamVjdF0sIHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QocmVjaXBpZW50LmFkZHJlc3MpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHR4RGF0YSA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5ibG9ja0RhdGE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogWy4uLnR4RGF0YS5pbnB1dHNdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFsuLi50eERhdGEudHJhbnNhY3Rpb25zXSxcbiAgICAgIH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnRoaXMuX2dhc0RhdGEsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { SuiTransaction, TokenTransferProgrammableTransaction, TransactionExplanation, TxData } from './iface';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { Transaction } from './transaction';
4
+ import { BaseKey, PublicKey as BasePublicKey, Signature, TransactionType } from '@bitgo-beta/sdk-core';
5
+ export declare class TokenTransferTransaction extends Transaction<TokenTransferProgrammableTransaction> {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ get suiTransaction(): SuiTransaction<TokenTransferProgrammableTransaction>;
8
+ setSuiTransaction(tx: SuiTransaction<TokenTransferProgrammableTransaction>): void;
9
+ /** @inheritDoc */
10
+ get id(): string;
11
+ addSignature(publicKey: BasePublicKey, signature: Buffer): void;
12
+ get suiSignature(): Signature;
13
+ /** @inheritdoc */
14
+ canSign(key: BaseKey): boolean;
15
+ /** @inheritdoc */
16
+ toBroadcastFormat(): string;
17
+ /** @inheritdoc */
18
+ toJson(): TxData;
19
+ /** @inheritDoc */
20
+ explainTransaction(): TransactionExplanation;
21
+ /**
22
+ * Set the transaction type.
23
+ *
24
+ * @param {TransactionType} transactionType The transaction type to be set.
25
+ */
26
+ transactionType(transactionType: TransactionType): void;
27
+ /**
28
+ * Load the input and output data on this transaction.
29
+ */
30
+ loadInputsAndOutputs(): void;
31
+ /**
32
+ * Sets this transaction payload
33
+ *
34
+ * @param {string} rawTransaction
35
+ */
36
+ fromRawTransaction(rawTransaction: string): void;
37
+ /**
38
+ * Helper function for serialize() to get the correct txData with transaction type
39
+ *
40
+ * @return {TxData}
41
+ */
42
+ getTxData(): TxData;
43
+ /**
44
+ * Returns a complete explanation for a transfer transaction
45
+ * @param {TxData} json The transaction data in json format
46
+ * @param {TransactionExplanation} explanationResult The transaction explanation to be completed
47
+ * @returns {TransactionExplanation}
48
+ */
49
+ explainTokenTransferTransaction(json: TxData, explanationResult: TransactionExplanation): TransactionExplanation;
50
+ /**
51
+ * Extracts the objects that were provided as inputs while building the transaction
52
+ * @param tx
53
+ * @returns {SuiObjectRef[]} Objects that are inputs for the transaction
54
+ */
55
+ private getInputObjectsFromTx;
56
+ }
57
+ //# sourceMappingURL=tokenTransferTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransferTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenTransferTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oCAAoC,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACL,OAAO,EACP,SAAS,IAAI,aAAa,EAG1B,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAY9B,qBAAa,wBAAyB,SAAQ,WAAW,CAAC,oCAAoC,CAAC;gBACjF,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAEzE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,oCAAoC,CAAC,GAAG,IAAI;IAIjF,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAgBhB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAwB5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAqB5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACI,SAAS,IAAI,MAAM;IAwC1B;;;;;OAKG;IACH,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAYhH;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;CA2B9B"}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.TokenTransferTransaction = void 0;
37
+ const transaction_1 = require("./transaction");
38
+ const constants_1 = require("./constants");
39
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
40
+ const types_1 = require("./mystenlab/types");
41
+ const utils_1 = __importStar(require("./utils"));
42
+ const builder_1 = require("./mystenlab/builder");
43
+ const bcs_1 = require("@mysten/bcs");
44
+ class TokenTransferTransaction extends transaction_1.Transaction {
45
+ constructor(_coinConfig) {
46
+ super(_coinConfig);
47
+ }
48
+ get suiTransaction() {
49
+ return this._suiTransaction;
50
+ }
51
+ setSuiTransaction(tx) {
52
+ this._suiTransaction = tx;
53
+ }
54
+ /** @inheritDoc */
55
+ get id() {
56
+ return this._id || constants_1.UNAVAILABLE_TEXT;
57
+ }
58
+ addSignature(publicKey, signature) {
59
+ this._signatures.push(signature.toString('hex'));
60
+ this._signature = { publicKey, signature };
61
+ this.serialize();
62
+ }
63
+ get suiSignature() {
64
+ return this._signature;
65
+ }
66
+ /** @inheritdoc */
67
+ canSign(key) {
68
+ return true;
69
+ }
70
+ /** @inheritdoc */
71
+ toBroadcastFormat() {
72
+ if (!this._suiTransaction) {
73
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction');
74
+ }
75
+ return this.serialize();
76
+ }
77
+ /** @inheritdoc */
78
+ toJson() {
79
+ if (!this._suiTransaction) {
80
+ throw new sdk_core_1.ParseTransactionError('Empty transaction');
81
+ }
82
+ const tx = this._suiTransaction;
83
+ return {
84
+ id: this._id,
85
+ sender: tx.sender,
86
+ kind: { ProgrammableTransaction: tx.tx },
87
+ gasData: tx.gasData,
88
+ expiration: { None: null },
89
+ inputObjects: this.getInputObjectsFromTx(tx.tx),
90
+ };
91
+ }
92
+ /** @inheritDoc */
93
+ explainTransaction() {
94
+ const result = this.toJson();
95
+ const displayOrder = ['id', 'outputs', 'outputAmount', 'changeOutputs', 'changeAmount', 'fee', 'type'];
96
+ const outputs = [];
97
+ const explanationResult = {
98
+ displayOrder,
99
+ id: this.id,
100
+ outputs,
101
+ outputAmount: '0',
102
+ changeOutputs: [],
103
+ changeAmount: '0',
104
+ fee: { fee: this.suiTransaction.gasData.budget.toString() },
105
+ type: this.type,
106
+ };
107
+ switch (this.type) {
108
+ case sdk_core_1.TransactionType.Send:
109
+ return this.explainTokenTransferTransaction(result, explanationResult);
110
+ default:
111
+ throw new sdk_core_1.InvalidTransactionError('Transaction type not supported');
112
+ }
113
+ }
114
+ /**
115
+ * Set the transaction type.
116
+ *
117
+ * @param {TransactionType} transactionType The transaction type to be set.
118
+ */
119
+ transactionType(transactionType) {
120
+ this._type = transactionType;
121
+ }
122
+ /**
123
+ * Load the input and output data on this transaction.
124
+ */
125
+ loadInputsAndOutputs() {
126
+ if (!this.suiTransaction) {
127
+ return;
128
+ }
129
+ const recipients = utils_1.default.getRecipients(this._suiTransaction);
130
+ const totalAmount = recipients.reduce((accumulator, current) => accumulator + Number(current.amount), 0);
131
+ this._outputs = recipients.map((recipient) => ({
132
+ address: recipient.address,
133
+ value: recipient.amount,
134
+ coin: this._coinConfig.name,
135
+ }));
136
+ this._inputs = [
137
+ {
138
+ address: this.suiTransaction.sender,
139
+ value: totalAmount.toString(),
140
+ coin: this._coinConfig.name,
141
+ },
142
+ ];
143
+ }
144
+ /**
145
+ * Sets this transaction payload
146
+ *
147
+ * @param {string} rawTransaction
148
+ */
149
+ fromRawTransaction(rawTransaction) {
150
+ try {
151
+ utils_1.default.isValidRawTransaction(rawTransaction);
152
+ this._suiTransaction = transaction_1.Transaction.deserializeSuiTransaction(rawTransaction);
153
+ this._type = sdk_core_1.TransactionType.Send;
154
+ this._id = this._suiTransaction.id;
155
+ this.loadInputsAndOutputs();
156
+ }
157
+ catch (e) {
158
+ throw e;
159
+ }
160
+ }
161
+ /**
162
+ * Helper function for serialize() to get the correct txData with transaction type
163
+ *
164
+ * @return {TxData}
165
+ */
166
+ getTxData() {
167
+ if (!this._suiTransaction) {
168
+ throw new sdk_core_1.InvalidTransactionError('empty transaction');
169
+ }
170
+ const inputs = this._suiTransaction.tx.inputs.map((input) => {
171
+ if (input.hasOwnProperty('Object')) {
172
+ return input;
173
+ }
174
+ if (input.hasOwnProperty('Pure')) {
175
+ if (input.Pure.length === constants_1.SUI_ADDRESS_LENGTH) {
176
+ const address = (0, types_1.normalizeSuiAddress)(builder_1.builder.de(bcs_1.BCS.ADDRESS, Buffer.from(input.Pure).toString('base64'), 'base64'));
177
+ return builder_1.Inputs.Pure(address, bcs_1.BCS.ADDRESS);
178
+ }
179
+ else {
180
+ const amount = builder_1.builder.de(bcs_1.BCS.U64, Buffer.from(input.Pure).toString('base64'), 'base64');
181
+ return builder_1.Inputs.Pure(amount, bcs_1.BCS.U64);
182
+ }
183
+ }
184
+ if (input.kind === 'Input' && (input.value.hasOwnProperty('Object') || input.value.hasOwnProperty('Pure'))) {
185
+ return input.value;
186
+ }
187
+ return builder_1.Inputs.Pure(input.value, input.type === 'pure' ? bcs_1.BCS.U64 : bcs_1.BCS.ADDRESS);
188
+ });
189
+ const programmableTx = {
190
+ inputs,
191
+ transactions: this._suiTransaction.tx.transactions,
192
+ };
193
+ return {
194
+ sender: this._suiTransaction.sender,
195
+ expiration: { None: null },
196
+ gasData: this._suiTransaction.gasData,
197
+ kind: {
198
+ ProgrammableTransaction: programmableTx,
199
+ },
200
+ };
201
+ }
202
+ /**
203
+ * Returns a complete explanation for a transfer transaction
204
+ * @param {TxData} json The transaction data in json format
205
+ * @param {TransactionExplanation} explanationResult The transaction explanation to be completed
206
+ * @returns {TransactionExplanation}
207
+ */
208
+ explainTokenTransferTransaction(json, explanationResult) {
209
+ const recipients = utils_1.default.getRecipients(this.suiTransaction);
210
+ const outputs = recipients.map((recipient) => recipient);
211
+ const outputAmount = recipients.reduce((accumulator, current) => accumulator + Number(current.amount), 0);
212
+ return {
213
+ ...explanationResult,
214
+ outputAmount,
215
+ outputs,
216
+ };
217
+ }
218
+ /**
219
+ * Extracts the objects that were provided as inputs while building the transaction
220
+ * @param tx
221
+ * @returns {SuiObjectRef[]} Objects that are inputs for the transaction
222
+ */
223
+ getInputObjectsFromTx(tx) {
224
+ const inputs = tx.inputs;
225
+ const transaction = tx.transactions[0];
226
+ let args = [];
227
+ if (transaction.kind === 'MergeCoins') {
228
+ const { destination, sources } = transaction;
229
+ args = [destination, ...sources];
230
+ }
231
+ else if (transaction.kind === 'SplitCoins') {
232
+ args = [transaction.coin];
233
+ }
234
+ const inputObjects = [];
235
+ args.forEach((arg) => {
236
+ if (arg.kind === 'Input') {
237
+ let input = inputs[arg.index];
238
+ if ('value' in input) {
239
+ input = input.value;
240
+ }
241
+ if ('Object' in input && (0, utils_1.isImmOrOwnedObj)(input.Object)) {
242
+ inputObjects.push(input.Object.ImmOrOwned);
243
+ }
244
+ }
245
+ });
246
+ return inputObjects;
247
+ }
248
+ }
249
+ exports.TokenTransferTransaction = TokenTransferTransaction;
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b2tlblRyYW5zZmVyVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsK0NBQTRDO0FBQzVDLDJDQUFtRTtBQUNuRSxtREFROEI7QUFDOUIsNkNBQStFO0FBQy9FLGlEQUFpRDtBQUNqRCxpREFNNkI7QUFDN0IscUNBQWtDO0FBRWxDLE1BQWEsd0JBQXlCLFNBQVEseUJBQWlEO0lBQzdGLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUF3RDtRQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSw0QkFBZ0IsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXdCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFF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V0FBVyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsQ0FBQztZQUM3QyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzdDLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUN6QixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDckIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLElBQUEsdUJBQWUsRUFBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdkQsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBdE9ELDREQXNPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1aVRyYW5zYWN0aW9uLCBUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFNVSV9BRERSRVNTX0xFTkdUSCwgVU5BVkFJTEFCTEVfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENhbGxBcmcsIG5vcm1hbGl6ZVN1aUFkZHJlc3MsIFN1aU9iamVjdFJlZiB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB1dGlscywgeyBpc0ltbU9yT3duZWRPYmogfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7XG4gIGJ1aWxkZXIsXG4gIElucHV0cyxcbiAgVHJhbnNhY3Rpb25Bcmd1bWVudCxcbiAgVHJhbnNhY3Rpb25CbG9ja0lucHV0LFxuICBUcmFuc2FjdGlvblR5cGUgYXMgU3VpVHJhbnNhY3Rpb25CbG9ja1R5cGUsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHsgQkNTIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb248VG9rZW5UcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBzdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb248VG9rZW5UcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkIHx8IFVOQVZBSUxBQkxFX1RFWFQ7XG4gIH1cblxuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH07XG4gICAgdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIGdldCBzdWlTaWduYXR1cmUoKTogU2lnbmF0dXJlIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2VuZGVyOiB0eC5zZW5kZXIsXG4gICAgICBraW5kOiB7IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiB0eC50eCB9LFxuICAgICAgZ2FzRGF0YTogdHguZ2FzRGF0YSxcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgICAgaW5wdXRPYmplY3RzOiB0aGlzLmdldElucHV0T2JqZWN0c0Zyb21UeCh0eC50eCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ2lkJywgJ291dHB1dHMnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZU91dHB1dHMnLCAnY2hhbmdlQW1vdW50JywgJ2ZlZScsICd0eXBlJ107XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuXG4gICAgY29uc3QgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gPSB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQ6ICcwJyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiB0aGlzLnN1aVRyYW5zYWN0aW9uLmdhc0RhdGEuYnVkZ2V0LnRvU3RyaW5nKCkgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5Ub2tlblRyYW5zZmVyVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB1dGlscy5nZXRSZWNpcGllbnRzKHRoaXMuX3N1aVRyYW5zYWN0aW9uKTtcbiAgICBjb25zdCB0b3RhbEFtb3VudCA9IHJlY2lwaWVudHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IgKyBOdW1iZXIoY3VycmVudC5hbW91bnQpLCAwKTtcbiAgICB0aGlzLl9vdXRwdXRzID0gcmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSkpO1xuICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB1dGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKFxuICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgKSBhcyBTdWlUcmFuc2FjdGlvbjxUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+O1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICAgICAgdGhpcy5faWQgPSB0aGlzLl9zdWlUcmFuc2FjdGlvbi5pZDtcbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNlcmlhbGl6ZSgpIHRvIGdldCB0aGUgY29ycmVjdCB0eERhdGEgd2l0aCB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1R4RGF0YX1cbiAgICovXG4gIHB1YmxpYyBnZXRUeERhdGEoKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGlucHV0czogQ2FsbEFyZ1tdIHwgVHJhbnNhY3Rpb25CbG9ja0lucHV0W10gPSB0aGlzLl9zdWlUcmFuc2FjdGlvbi50eC5pbnB1dHMubWFwKChpbnB1dCkgPT4ge1xuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCdPYmplY3QnKSkge1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ1B1cmUnKSkge1xuICAgICAgICBpZiAoaW5wdXQuUHVyZS5sZW5ndGggPT09IFNVSV9BRERSRVNTX0xFTkdUSCkge1xuICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBub3JtYWxpemVTdWlBZGRyZXNzKFxuICAgICAgICAgICAgYnVpbGRlci5kZShCQ1MuQUREUkVTUywgQnVmZmVyLmZyb20oaW5wdXQuUHVyZSkudG9TdHJpbmcoJ2Jhc2U2NCcpLCAnYmFzZTY0JylcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBJbnB1dHMuUHVyZShhZGRyZXNzLCBCQ1MuQUREUkVTUyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYW1vdW50ID0gYnVpbGRlci5kZShCQ1MuVTY0LCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKTtcbiAgICAgICAgICByZXR1cm4gSW5wdXRzLlB1cmUoYW1vdW50LCBCQ1MuVTY0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlucHV0LmtpbmQgPT09ICdJbnB1dCcgJiYgKGlucHV0LnZhbHVlLmhhc093blByb3BlcnR5KCdPYmplY3QnKSB8fCBpbnB1dC52YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnUHVyZScpKSkge1xuICAgICAgICByZXR1cm4gaW5wdXQudmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gSW5wdXRzLlB1cmUoaW5wdXQudmFsdWUsIGlucHV0LnR5cGUgPT09ICdwdXJlJyA/IEJDUy5VNjQgOiBCQ1MuQUREUkVTUyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeCA9IHtcbiAgICAgIGlucHV0cyxcbiAgICAgIHRyYW5zYWN0aW9uczogdGhpcy5fc3VpVHJhbnNhY3Rpb24udHgudHJhbnNhY3Rpb25zLFxuICAgIH0gYXMgVG9rZW5UcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcjogdGhpcy5fc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgZXhwaXJhdGlvbjogeyBOb25lOiBudWxsIH0sXG4gICAgICBnYXNEYXRhOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLFxuICAgICAga2luZDoge1xuICAgICAgICBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbjogcHJvZ3JhbW1hYmxlVHgsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIGZvciBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7VHhEYXRhfSBqc29uIFRoZSB0cmFuc2FjdGlvbiBkYXRhIGluIGpzb24gZm9ybWF0XG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFuYXRpb25SZXN1bHQgVGhlIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uIHRvIGJlIGNvbXBsZXRlZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25FeHBsYW5hdGlvbn1cbiAgICovXG4gIGV4cGxhaW5Ub2tlblRyYW5zZmVyVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB1dGlscy5nZXRSZWNpcGllbnRzKHRoaXMuc3VpVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSByZWNpcGllbnRzLm1hcCgocmVjaXBpZW50KSA9PiByZWNpcGllbnQpO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IHJlY2lwaWVudHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IgKyBOdW1iZXIoY3VycmVudC5hbW91bnQpLCAwKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyB0aGUgb2JqZWN0cyB0aGF0IHdlcmUgcHJvdmlkZWQgYXMgaW5wdXRzIHdoaWxlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnMge1N1aU9iamVjdFJlZltdfSBPYmplY3RzIHRoYXQgYXJlIGlucHV0cyBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGdldElucHV0T2JqZWN0c0Zyb21UeCh0eDogVG9rZW5UcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uKTogU3VpT2JqZWN0UmVmW10ge1xuICAgIGNvbnN0IGlucHV0cyA9IHR4LmlucHV0cztcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHR4LnRyYW5zYWN0aW9uc1swXSBhcyBTdWlUcmFuc2FjdGlvbkJsb2NrVHlwZTtcblxuICAgIGxldCBhcmdzOiBUcmFuc2FjdGlvbkFyZ3VtZW50W10gPSBbXTtcbiAgICBpZiAodHJhbnNhY3Rpb24ua2luZCA9PT0gJ01lcmdlQ29pbnMnKSB7XG4gICAgICBjb25zdCB7IGRlc3RpbmF0aW9uLCBzb3VyY2VzIH0gPSB0cmFuc2FjdGlvbjtcbiAgICAgIGFyZ3MgPSBbZGVzdGluYXRpb24sIC4uLnNvdXJjZXNdO1xuICAgIH0gZWxzZSBpZiAodHJhbnNhY3Rpb24ua2luZCA9PT0gJ1NwbGl0Q29pbnMnKSB7XG4gICAgICBhcmdzID0gW3RyYW5zYWN0aW9uLmNvaW5dO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0T2JqZWN0czogU3VpT2JqZWN0UmVmW10gPSBbXTtcbiAgICBhcmdzLmZvckVhY2goKGFyZykgPT4ge1xuICAgICAgaWYgKGFyZy5raW5kID09PSAnSW5wdXQnKSB7XG4gICAgICAgIGxldCBpbnB1dCA9IGlucHV0c1thcmcuaW5kZXhdO1xuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiBpbnB1dCkge1xuICAgICAgICAgIGlucHV0ID0gaW5wdXQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdPYmplY3QnIGluIGlucHV0ICYmIGlzSW1tT3JPd25lZE9iaihpbnB1dC5PYmplY3QpKSB7XG4gICAgICAgICAgaW5wdXRPYmplY3RzLnB1c2goaW5wdXQuT2JqZWN0LkltbU9yT3duZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW5wdXRPYmplY3RzO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
- /// <reference types="node" />
2
1
  import { BaseKey, BaseTransaction, PublicKey as BasePublicKey, Signature, TransactionType as BitGoTransactionType } from '@bitgo-beta/sdk-core';
3
- import { StakingProgrammableTransaction, SuiTransaction, TransferProgrammableTransaction, TxData } from './iface';
2
+ import { SuiProgrammableTransaction, SuiTransaction, TxData } from './iface';
4
3
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
- import { GasData } from './mystenlab/types';
4
+ import { GasData, SuiObjectRef } from './mystenlab/types';
5
+ import { Buffer } from 'buffer';
6
6
  import { KeyPair } from './keyPair';
7
7
  export declare abstract class Transaction<T> extends BaseTransaction {
8
8
  protected _suiTransaction: SuiTransaction<T>;
@@ -55,9 +55,17 @@ export declare abstract class Transaction<T> extends BaseTransaction {
55
55
  private messageWithIntent;
56
56
  private intentWithScope;
57
57
  serialize(): string;
58
- static deserializeSuiTransaction(serializedTx: string): SuiTransaction<TransferProgrammableTransaction | StakingProgrammableTransaction>;
58
+ static deserializeSuiTransaction(serializedTx: string): SuiTransaction<SuiProgrammableTransaction>;
59
+ private static getSuiTransactionType;
59
60
  static getProperGasData(k: any): GasData;
60
61
  private static normalizeCoins;
61
62
  private static normalizeSuiObjectRef;
63
+ /**
64
+ * When building transactions with > 255 input gas payment objects, we first use MergeCoins Tranasactions to merge the
65
+ * additional inputs into the gas coin & slice them from the payment in gasData. When initializing the builder using
66
+ * decoded tx data, we need to get these inputs from MergeCoins & add them back to the gas payment to be able to
67
+ * rebuild from a raw transaction.
68
+ */
69
+ protected getInputGasPaymentObjectsFromTx(tx: SuiProgrammableTransaction): SuiObjectRef[];
62
70
  }
63
71
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAEf,SAAS,IAAI,aAAa,EAC1B,SAAS,EACT,eAAe,IAAI,oBAAoB,EACxC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAClH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAA2D,MAAM,mBAAmB,CAAC;AAKrG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,8BAAsB,WAAW,CAAC,CAAC,CAAE,SAAQ,eAAe;IAC1D,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAChC,OAAO,CAAC,cAAc,CAAa;IAEnC,SAAS,aAAa,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAIvD,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAEtC;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9C,mBAAmB;IACnB,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,aAAa,IAAI,UAAU,CAE9B;IAED,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IASnE,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B;;;;OAIG;IAEH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAY3B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,QAAQ,CAAC,MAAM,IAAI,MAAM;IAEzB;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,oBAAoB,GAAG,IAAI;IAI5D;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,MAAM;IAE5B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,IAAI,IAAI;IAErC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAEzD,YAAY,IAAI,UAAU;IAM1B,kBAAkB;IAClB,IAAI,eAAe,IAAI,MAAM,CAI5B;IAED,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAIvB,SAAS,IAAI,MAAM;IAMnB,MAAM,CAAC,yBAAyB,CAC9B,YAAY,EAAE,MAAM,GACnB,cAAc,CAAC,+BAA+B,GAAG,8BAA8B,CAAC;IAuBnF,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO;IASxC,OAAO,CAAC,MAAM,CAAC,cAAc;IAM7B,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAOrC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAEf,SAAS,IAAI,aAAa,EAC1B,SAAS,EACT,eAAe,IAAI,oBAAoB,EACxC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAsB,MAAM,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAA6C,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,8BAAsB,WAAW,CAAC,CAAC,CAAE,SAAQ,eAAe;IAC1D,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAChC,OAAO,CAAC,cAAc,CAAa;IAEnC,SAAS,aAAa,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAIvD,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAEtC;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9C,mBAAmB;IACnB,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,aAAa,IAAI,UAAU,CAE9B;IAED,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IASnE,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B;;;;OAIG;IAEH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAY3B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,QAAQ,CAAC,MAAM,IAAI,MAAM;IAEzB;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,oBAAoB,GAAG,IAAI;IAI5D;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,MAAM;IAE5B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,IAAI,IAAI;IAErC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAEzD,YAAY,IAAI,UAAU;IAM1B,kBAAkB;IAClB,IAAI,eAAe,IAAI,MAAM,CAI5B;IAED,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAIvB,SAAS,IAAI,MAAM;IAMnB,MAAM,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC,0BAA0B,CAAC;IAuBlG,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA8BpC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO;IASxC,OAAO,CAAC,MAAM,CAAC,cAAc;IAM7B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAQpC;;;;;OAKG;IACH,SAAS,CAAC,+BAA+B,CAAC,EAAE,EAAE,0BAA0B,GAAG,YAAY,EAAE;CA0B1F"}