@bitgo-beta/sdk-coin-sui 3.0.3-beta.182 → 3.0.3-beta.1821

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 (196) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +7 -2
  4. package/dist/src/lib/compareTransactionBlocks.js +2 -3
  5. package/dist/src/lib/constants.d.ts +9 -2
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +18 -2
  8. package/dist/src/lib/customTransaction.js +3 -3
  9. package/dist/src/lib/customTransactionBuilder.js +5 -5
  10. package/dist/src/lib/iface.d.ts +80 -12
  11. package/dist/src/lib/iface.d.ts.map +1 -1
  12. package/dist/src/lib/iface.js +34 -5
  13. package/dist/src/lib/index.d.ts +6 -0
  14. package/dist/src/lib/index.d.ts.map +1 -1
  15. package/dist/src/lib/index.js +36 -10
  16. package/dist/src/lib/keyPair.js +24 -10
  17. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +64 -11
  18. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
  19. package/dist/src/lib/mystenlab/builder/Inputs.js +63 -19
  20. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +88 -355
  21. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -1
  22. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +44 -25
  23. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +152 -77
  24. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -1
  25. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +54 -44
  26. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +133 -188
  27. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -1
  28. package/dist/src/lib/mystenlab/builder/Transactions.js +52 -53
  29. package/dist/src/lib/mystenlab/builder/bcs.d.ts +1 -1
  30. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -1
  31. package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
  32. package/dist/src/lib/mystenlab/builder/index.js +6 -2
  33. package/dist/src/lib/mystenlab/builder/serializer.js +6 -8
  34. package/dist/src/lib/mystenlab/builder/utils.d.ts +1 -1
  35. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -1
  36. package/dist/src/lib/mystenlab/builder/utils.js +4 -4
  37. package/dist/src/lib/mystenlab/cryptography/hash.js +3 -4
  38. package/dist/src/lib/mystenlab/framework/framework.d.ts +6 -6
  39. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -1
  40. package/dist/src/lib/mystenlab/framework/framework.js +22 -25
  41. package/dist/src/lib/mystenlab/framework/index.js +6 -2
  42. package/dist/src/lib/mystenlab/framework/sui-system-state.js +2 -2
  43. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
  44. package/dist/src/lib/mystenlab/types/coin.d.ts +13 -11
  45. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -1
  46. package/dist/src/lib/mystenlab/types/coin.js +20 -19
  47. package/dist/src/lib/mystenlab/types/common.d.ts +8 -8
  48. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -1
  49. package/dist/src/lib/mystenlab/types/common.js +22 -22
  50. package/dist/src/lib/mystenlab/types/events.d.ts +15 -15
  51. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -1
  52. package/dist/src/lib/mystenlab/types/events.js +17 -17
  53. package/dist/src/lib/mystenlab/types/index.js +6 -2
  54. package/dist/src/lib/mystenlab/types/normalized.d.ts +21 -21
  55. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -1
  56. package/dist/src/lib/mystenlab/types/normalized.js +41 -41
  57. package/dist/src/lib/mystenlab/types/objects.d.ts +51 -51
  58. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -1
  59. package/dist/src/lib/mystenlab/types/objects.js +96 -106
  60. package/dist/src/lib/mystenlab/types/option.d.ts +1 -1
  61. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -1
  62. package/dist/src/lib/mystenlab/types/option.js +2 -3
  63. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +55 -29
  64. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
  65. package/dist/src/lib/mystenlab/types/sui-bcs.js +29 -5
  66. package/dist/src/lib/mystenlab/types/transactions.d.ts +625 -625
  67. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -1
  68. package/dist/src/lib/mystenlab/types/transactions.js +178 -194
  69. package/dist/src/lib/mystenlab/types/validator.d.ts +13 -13
  70. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -1
  71. package/dist/src/lib/mystenlab/types/validator.js +124 -124
  72. package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
  73. package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
  74. package/dist/src/lib/resources/walrusConfig.js +37 -0
  75. package/dist/src/lib/rpcClient.d.ts +5 -0
  76. package/dist/src/lib/rpcClient.d.ts.map +1 -0
  77. package/dist/src/lib/rpcClient.js +74 -0
  78. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  79. package/dist/src/lib/stakingBuilder.js +23 -7
  80. package/dist/src/lib/stakingTransaction.d.ts +0 -1
  81. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  82. package/dist/src/lib/stakingTransaction.js +26 -15
  83. package/dist/src/lib/tokenTransferBuilder.d.ts +66 -0
  84. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  85. package/dist/src/lib/tokenTransferBuilder.js +202 -0
  86. package/dist/src/lib/tokenTransferTransaction.d.ts +59 -0
  87. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  88. package/dist/src/lib/tokenTransferTransaction.js +272 -0
  89. package/dist/src/lib/transaction.d.ts +21 -4
  90. package/dist/src/lib/transaction.d.ts.map +1 -1
  91. package/dist/src/lib/transaction.js +129 -17
  92. package/dist/src/lib/transactionBuilder.d.ts +13 -4
  93. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  94. package/dist/src/lib/transactionBuilder.js +34 -4
  95. package/dist/src/lib/transactionBuilderFactory.d.ts +11 -2
  96. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  97. package/dist/src/lib/transactionBuilderFactory.js +32 -1
  98. package/dist/src/lib/transferBuilder.d.ts +58 -1
  99. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  100. package/dist/src/lib/transferBuilder.js +310 -24
  101. package/dist/src/lib/transferTransaction.d.ts +6 -1
  102. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  103. package/dist/src/lib/transferTransaction.js +129 -12
  104. package/dist/src/lib/unstakingBuilder.js +6 -6
  105. package/dist/src/lib/unstakingTransaction.d.ts +0 -1
  106. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
  107. package/dist/src/lib/unstakingTransaction.js +31 -17
  108. package/dist/src/lib/utils.d.ts +24 -3
  109. package/dist/src/lib/utils.d.ts.map +1 -1
  110. package/dist/src/lib/utils.js +254 -21
  111. package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
  112. package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
  113. package/dist/src/lib/walrusStakingBuilder.js +200 -0
  114. package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
  115. package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
  116. package/dist/src/lib/walrusStakingTransaction.js +269 -0
  117. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
  118. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
  119. package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
  120. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
  121. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
  122. package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
  123. package/dist/src/register.d.ts.map +1 -1
  124. package/dist/src/register.js +5 -1
  125. package/dist/src/sui.d.ts +46 -8
  126. package/dist/src/sui.d.ts.map +1 -1
  127. package/dist/src/sui.js +525 -37
  128. package/dist/src/suiToken.d.ts +22 -0
  129. package/dist/src/suiToken.d.ts.map +1 -0
  130. package/dist/src/suiToken.js +61 -0
  131. package/dist/src/tsui.js +1 -1
  132. package/dist/test/integration/index.d.ts +1 -0
  133. package/dist/test/integration/index.d.ts.map +1 -0
  134. package/dist/test/integration/index.js +1 -0
  135. package/dist/test/local_fullnode/RpcClient.d.ts +60 -0
  136. package/dist/test/local_fullnode/RpcClient.d.ts.map +1 -0
  137. package/dist/test/local_fullnode/RpcClient.js +111 -0
  138. package/dist/test/local_fullnode/faucet.d.ts +6 -0
  139. package/dist/test/local_fullnode/faucet.d.ts.map +1 -0
  140. package/dist/test/local_fullnode/faucet.js +17 -0
  141. package/dist/test/local_fullnode/transactions.d.ts +2 -0
  142. package/dist/test/local_fullnode/transactions.d.ts.map +1 -0
  143. package/dist/test/local_fullnode/transactions.js +190 -0
  144. package/dist/test/resources/sui.d.ts +458 -0
  145. package/dist/test/resources/sui.d.ts.map +1 -0
  146. package/dist/test/resources/sui.js +632 -0
  147. package/dist/test/unit/compareTransactionBlocks.d.ts +2 -0
  148. package/dist/test/unit/compareTransactionBlocks.d.ts.map +1 -0
  149. package/dist/test/unit/compareTransactionBlocks.js +64 -0
  150. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  151. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  152. package/dist/test/unit/getBuilderFactory.js +10 -0
  153. package/dist/test/unit/keyPair.d.ts +2 -0
  154. package/dist/test/unit/keyPair.d.ts.map +1 -0
  155. package/dist/test/unit/keyPair.js +72 -0
  156. package/dist/test/unit/sui.d.ts +2 -0
  157. package/dist/test/unit/sui.d.ts.map +1 -0
  158. package/dist/test/unit/sui.js +2423 -0
  159. package/dist/test/unit/suiToken.d.ts +2 -0
  160. package/dist/test/unit/suiToken.d.ts.map +1 -0
  161. package/dist/test/unit/suiToken.js +39 -0
  162. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
  163. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  164. package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +106 -0
  165. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
  166. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  167. package/dist/test/unit/transactionBuilder/stakingBuilder.js +152 -0
  168. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  169. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  170. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +255 -0
  171. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  172. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  173. package/dist/test/unit/transactionBuilder/transactionBuilder.js +639 -0
  174. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  175. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  176. package/dist/test/unit/transactionBuilder/transferBuilder.js +1055 -0
  177. package/dist/test/unit/transactionBuilder/unstakingBuilder.d.ts +2 -0
  178. package/dist/test/unit/transactionBuilder/unstakingBuilder.d.ts.map +1 -0
  179. package/dist/test/unit/transactionBuilder/unstakingBuilder.js +115 -0
  180. package/dist/test/unit/transactionBuilder/walrusStakingBuilder.d.ts +2 -0
  181. package/dist/test/unit/transactionBuilder/walrusStakingBuilder.d.ts.map +1 -0
  182. package/dist/test/unit/transactionBuilder/walrusStakingBuilder.js +162 -0
  183. package/dist/test/unit/transactionBuilder/walrusWithdrawBuilder.d.ts +2 -0
  184. package/dist/test/unit/transactionBuilder/walrusWithdrawBuilder.d.ts.map +1 -0
  185. package/dist/test/unit/transactionBuilder/walrusWithdrawBuilder.js +181 -0
  186. package/dist/test/unit/transferTransaction.d.ts +2 -0
  187. package/dist/test/unit/transferTransaction.d.ts.map +1 -0
  188. package/dist/test/unit/transferTransaction.js +94 -0
  189. package/dist/test/unit/utils.d.ts +2 -0
  190. package/dist/test/unit/utils.d.ts.map +1 -0
  191. package/dist/test/unit/utils.js +186 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -0
  193. package/package.json +16 -12
  194. package/.eslintignore +0 -6
  195. package/.mocharc.yml +0 -7
  196. package/CHANGELOG.md +0 -420
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=suiToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suiToken.d.ts","sourceRoot":"","sources":["../../../test/unit/suiToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("should");
4
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
5
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
6
+ const src_1 = require("../../src");
7
+ describe('Sui Tokens', function () {
8
+ let bitgo;
9
+ let suiTokenCoin;
10
+ const tokenName = 'tsui:deep';
11
+ before(function () {
12
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
13
+ src_1.SuiToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
14
+ bitgo.safeRegister(name, coinConstructor);
15
+ });
16
+ bitgo.initializeTestVars();
17
+ suiTokenCoin = bitgo.coin(tokenName);
18
+ });
19
+ it('should return constants', function () {
20
+ suiTokenCoin.getChain().should.equal(tokenName);
21
+ suiTokenCoin.getBaseChain().should.equal('tsui');
22
+ suiTokenCoin.getFullName().should.equal('Sui Token');
23
+ suiTokenCoin.getBaseFactor().should.equal(1e6);
24
+ suiTokenCoin.type.should.equal(tokenName);
25
+ suiTokenCoin.name.should.equal('Deepbook');
26
+ suiTokenCoin.coin.should.equal('tsui');
27
+ suiTokenCoin.network.should.equal('Testnet');
28
+ suiTokenCoin.decimalPlaces.should.equal(6);
29
+ suiTokenCoin.packageId.should.equal('0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8');
30
+ suiTokenCoin.module.should.equal('deep');
31
+ suiTokenCoin.symbol.should.equal('DEEP');
32
+ suiTokenCoin.contractAddress.should.equal('0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP');
33
+ const [packageId, module, symbol] = suiTokenCoin.contractAddress.split('::');
34
+ packageId.should.equal(suiTokenCoin.packageId);
35
+ module.should.equal(suiTokenCoin.module);
36
+ symbol.should.equal(suiTokenCoin.symbol);
37
+ });
38
+ });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvc3VpVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFFaEIsbURBQStEO0FBQy9ELGlEQUErQztBQUMvQyxtQ0FBcUM7QUFFckMsUUFBUSxDQUFDLFlBQVksRUFBRTtJQUNyQixJQUFJLEtBQW1CLENBQUM7SUFDeEIsSUFBSSxZQUFZLENBQUM7SUFDakIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDO0lBRTlCLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsY0FBUSxDQUFDLHVCQUF1QixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtZQUN2RSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHlCQUF5QixFQUFFO1FBQzVCLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUM7UUFDMUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3ZDLGdGQUFnRixDQUNqRixDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0UsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcblxuaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgU3VpVG9rZW4gfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnU3VpIFRva2VucycsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBzdWlUb2tlbkNvaW47XG4gIGNvbnN0IHRva2VuTmFtZSA9ICd0c3VpOmRlZXAnO1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG4gICAgU3VpVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgICBiaXRnby5zYWZlUmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgICB9KTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBzdWlUb2tlbkNvaW4gPSBiaXRnby5jb2luKHRva2VuTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIGNvbnN0YW50cycsIGZ1bmN0aW9uICgpIHtcbiAgICBzdWlUb2tlbkNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwodG9rZW5OYW1lKTtcbiAgICBzdWlUb2tlbkNvaW4uZ2V0QmFzZUNoYWluKCkuc2hvdWxkLmVxdWFsKCd0c3VpJyk7XG4gICAgc3VpVG9rZW5Db2luLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdTdWkgVG9rZW4nKTtcbiAgICBzdWlUb2tlbkNvaW4uZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTYpO1xuICAgIHN1aVRva2VuQ29pbi50eXBlLnNob3VsZC5lcXVhbCh0b2tlbk5hbWUpO1xuICAgIHN1aVRva2VuQ29pbi5uYW1lLnNob3VsZC5lcXVhbCgnRGVlcGJvb2snKTtcbiAgICBzdWlUb2tlbkNvaW4uY29pbi5zaG91bGQuZXF1YWwoJ3RzdWknKTtcbiAgICBzdWlUb2tlbkNvaW4ubmV0d29yay5zaG91bGQuZXF1YWwoJ1Rlc3RuZXQnKTtcbiAgICBzdWlUb2tlbkNvaW4uZGVjaW1hbFBsYWNlcy5zaG91bGQuZXF1YWwoNik7XG4gICAgc3VpVG9rZW5Db2luLnBhY2thZ2VJZC5zaG91bGQuZXF1YWwoJzB4MzZkYmVmODY2YTFkNjJiZjczMjg5ODlhMTBmYjJmMDdkNzY5ZjRlZTU4N2MwZGU0YTBhMjU2ZTU3ZTBhNThhOCcpO1xuICAgIHN1aVRva2VuQ29pbi5tb2R1bGUuc2hvdWxkLmVxdWFsKCdkZWVwJyk7XG4gICAgc3VpVG9rZW5Db2luLnN5bWJvbC5zaG91bGQuZXF1YWwoJ0RFRVAnKTtcbiAgICBzdWlUb2tlbkNvaW4uY29udHJhY3RBZGRyZXNzLnNob3VsZC5lcXVhbChcbiAgICAgICcweDM2ZGJlZjg2NmExZDYyYmY3MzI4OTg5YTEwZmIyZjA3ZDc2OWY0ZWU1ODdjMGRlNGEwYTI1NmU1N2UwYTU4YTg6OmRlZXA6OkRFRVAnXG4gICAgKTtcbiAgICBjb25zdCBbcGFja2FnZUlkLCBtb2R1bGUsIHN5bWJvbF0gPSBzdWlUb2tlbkNvaW4uY29udHJhY3RBZGRyZXNzLnNwbGl0KCc6OicpO1xuICAgIHBhY2thZ2VJZC5zaG91bGQuZXF1YWwoc3VpVG9rZW5Db2luLnBhY2thZ2VJZCk7XG4gICAgbW9kdWxlLnNob3VsZC5lcXVhbChzdWlUb2tlbkNvaW4ubW9kdWxlKTtcbiAgICBzeW1ib2wuc2hvdWxkLmVxdWFsKHN1aVRva2VuQ29pbi5zeW1ib2wpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=customTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/customTransactionBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,106 @@
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
+ const statics_1 = require("@bitgo-beta/statics");
7
+ const customTransaction_1 = require("../../../src/lib/customTransaction");
8
+ const sui_1 = require("../../resources/sui");
9
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
+ const should_1 = __importDefault(require("should"));
11
+ const getBuilderFactory_1 = require("../getBuilderFactory");
12
+ const iface_1 = require("../../../src/lib/iface");
13
+ describe('Sui Custom Transaction Builder', () => {
14
+ const coinName = 'tsui';
15
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)(coinName);
16
+ describe('Succeed', () => {
17
+ it('should build a custom tx from raw tx hex and explain tx', async function () {
18
+ const tx = new customTransaction_1.CustomTransaction(statics_1.coins.get('tsui'));
19
+ tx.fromRawTransaction(sui_1.CUSTOM_TX_STAKING_POOL_SPLIT);
20
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.CustomTx);
21
+ should_1.default.equal(tx.id, '3HzMxgn3F8WCL1J3Qrk9iLhPpDnGYcSnK36CJ78s7jKg');
22
+ should_1.default.equal(tx.inputs.length, 1);
23
+ should_1.default.equal(tx.inputs[0].address, '0x6c10d1bf12e4610da1d92ef15e6bc581e1d5e79db33024e8cc1e00c21f0c7ddf');
24
+ should_1.default.equal(tx.inputs[0].value, '5000000000');
25
+ should_1.default.equal(tx.inputs[0].coin, coinName);
26
+ should_1.default.equal(tx.outputs.length, 1);
27
+ should_1.default.equal(tx.outputs[0].address, '0x5be5ee85cf5825bd07df7bbe78f19bcaafd42e9e685fda1acf24233cd7b925a6');
28
+ should_1.default.equal(tx.outputs[0].value, '5000000000');
29
+ should_1.default.equal(tx.outputs[0].coin, coinName);
30
+ const txData = tx.getTxData();
31
+ should_1.default.equal(txData.sender, '0x6c10d1bf12e4610da1d92ef15e6bc581e1d5e79db33024e8cc1e00c21f0c7ddf');
32
+ should_1.default.equal(txData.expiration['None'], null);
33
+ should_1.default.equal(txData.gasData.budget, '1000000000');
34
+ should_1.default.equal(txData.kind.ProgrammableTransaction.inputs.length, 3);
35
+ should_1.default.equal(txData.kind.ProgrammableTransaction.transactions.length, 2);
36
+ const txJson = tx.toJson();
37
+ should_1.default.equal(txJson.sender, '0x6c10d1bf12e4610da1d92ef15e6bc581e1d5e79db33024e8cc1e00c21f0c7ddf');
38
+ should_1.default.equal(txJson.expiration['None'], null);
39
+ should_1.default.equal(txJson.gasData.budget, '1000000000');
40
+ should_1.default.equal(txJson.kind.ProgrammableTransaction.inputs.length, 3);
41
+ should_1.default.equal(txJson.kind.ProgrammableTransaction.transactions.length, 2);
42
+ const explainedTx = tx.explainTransaction();
43
+ should_1.default.equal(explainedTx.id, '3HzMxgn3F8WCL1J3Qrk9iLhPpDnGYcSnK36CJ78s7jKg');
44
+ should_1.default.equal(explainedTx.outputs.length, 1);
45
+ should_1.default.equal(explainedTx.outputs[0].address, '0x5be5ee85cf5825bd07df7bbe78f19bcaafd42e9e685fda1acf24233cd7b925a6');
46
+ should_1.default.equal(explainedTx.outputs[0].amount, '5000000000');
47
+ should_1.default.equal(explainedTx.outputAmount, '5000000000');
48
+ should_1.default.equal(explainedTx.fee.fee, '1000000000');
49
+ should_1.default.equal(explainedTx.type, sdk_core_1.TransactionType.CustomTx);
50
+ const recipients = tx.recipients;
51
+ should_1.default.equal(recipients.length, 1);
52
+ should_1.default.equal(recipients[0].address, '0x5be5ee85cf5825bd07df7bbe78f19bcaafd42e9e685fda1acf24233cd7b925a6');
53
+ });
54
+ it('should init builder from a custom tx', async function () {
55
+ const tx = new customTransaction_1.CustomTransaction(statics_1.coins.get('tsui'));
56
+ tx.fromRawTransaction(sui_1.CUSTOM_TX_STAKING_POOL_SPLIT);
57
+ const txBuilder = factory.getCustomTransactionBuilder();
58
+ txBuilder.initBuilder(tx);
59
+ const rebuiltTx = (await txBuilder.build());
60
+ should_1.default.equal(rebuiltTx.type, sdk_core_1.TransactionType.CustomTx);
61
+ should_1.default.equal(rebuiltTx.id, '3HzMxgn3F8WCL1J3Qrk9iLhPpDnGYcSnK36CJ78s7jKg');
62
+ should_1.default.equal(rebuiltTx.inputs.length, 1);
63
+ should_1.default.equal(rebuiltTx.inputs[0].address, '0x6c10d1bf12e4610da1d92ef15e6bc581e1d5e79db33024e8cc1e00c21f0c7ddf');
64
+ should_1.default.equal(rebuiltTx.inputs[0].value, '5000000000');
65
+ should_1.default.equal(rebuiltTx.inputs[0].coin, coinName);
66
+ should_1.default.equal(rebuiltTx.outputs.length, 1);
67
+ should_1.default.equal(rebuiltTx.outputs[0].address, '0x5be5ee85cf5825bd07df7bbe78f19bcaafd42e9e685fda1acf24233cd7b925a6');
68
+ should_1.default.equal(rebuiltTx.outputs[0].value, '5000000000');
69
+ should_1.default.equal(rebuiltTx.outputs[0].coin, coinName);
70
+ });
71
+ it('should build a tx with public_transfer function', async function () {
72
+ const tx = new customTransaction_1.CustomTransaction(statics_1.coins.get('tsui'));
73
+ tx.fromRawTransaction(sui_1.CUSTOM_TX_PUBLIC_TRANSFER);
74
+ should_1.default.equal(tx.suiTransaction.type, iface_1.SuiTransactionType.CustomTx);
75
+ const rawTx = tx.toBroadcastFormat();
76
+ should_1.default.equal(rawTx, sui_1.CUSTOM_TX_PUBLIC_TRANSFER);
77
+ should_1.default.equal(tx.id, 'FmsE5YgfTU2kiCfYmVE6Zmrow3JaXcA243tBjjNUmLex');
78
+ should_1.default.equal(tx.inputs[0].address, '0xce724b63fdfe875a7eeb425e42785c7c05be95bc4f00fbc5c6c75e0dc264abe2');
79
+ should_1.default.equal(tx.inputs[0].value, '20000000000');
80
+ should_1.default.equal(tx.inputs.length, 1);
81
+ should_1.default.equal(tx.outputs.length, 17);
82
+ should_1.default.equal(tx.recipients.length, 17);
83
+ should_1.default.equal(tx.recipients[0].address, '0x0f220421254dae4355a96b2ffb87ef46566c0918f8dd0e89a53c2ced4355cf12');
84
+ should_1.default.equal(tx.recipients[0].amount, '0');
85
+ should_1.default.equal(tx.recipients[0].data, 'unknown amount');
86
+ should_1.default.equal(tx.recipients[8].address, '0x8d3f38a4a4dfc6bd7bcfda4c9bff36ff89c4d5564672d85c533d86a2201b8158');
87
+ should_1.default.equal(tx.recipients[8].amount, '10000000000');
88
+ should_1.default.equal(tx.recipients[14].address, '0xe60d6acf56b10033f2e770807028978ef6896a5bb1da38b12ea68ebe20d11704');
89
+ should_1.default.equal(tx.recipients[14].amount, '10000000000');
90
+ });
91
+ it('should build a custom tx and serialize it and deserialize it', async function () {
92
+ const tx = new customTransaction_1.CustomTransaction(statics_1.coins.get('tsui'));
93
+ tx.fromRawTransaction(sui_1.CUSTOM_TX_STAKING_POOL_SPLIT);
94
+ should_1.default.equal(tx.suiTransaction.type, iface_1.SuiTransactionType.CustomTx);
95
+ const rawTx = tx.toBroadcastFormat();
96
+ should_1.default.equal(rawTx, sui_1.CUSTOM_TX_STAKING_POOL_SPLIT);
97
+ const deserialized = (await factory.from(rawTx).build());
98
+ should_1.default.deepEqual(deserialized, tx);
99
+ deserialized.toBroadcastFormat().should.equal(rawTx);
100
+ });
101
+ it('should reject a custom tx with unsupported txn type', async function () {
102
+ (0, should_1.default)(() => factory.from(sui_1.UNSUPPORTED_TX)).throwError('unsupported target method 0000000000000000000000000000000000000000000000000000000000000003::staking_pool::split_staked_sui');
103
+ });
104
+ });
105
+ });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9jdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBNEM7QUFDNUMsMEVBQXVFO0FBQ3ZFLDZDQUE4RztBQUM5RyxtREFBdUQ7QUFDdkQsb0RBQTRCO0FBQzVCLDREQUF5RDtBQUV6RCxrREFBNEQ7QUFFNUQsUUFBUSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUU1QyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtRQUN2QixFQUFFLENBQUMseURBQXlELEVBQUUsS0FBSztZQUNqRSxNQUFNLEVBQUUsR0FBRyxJQUFJLHFDQUFpQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNwRCxFQUFFLENBQUMsa0JBQWtCLENBQUMsa0NBQTRCLENBQUMsQ0FBQztZQUNwRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLDBCQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3BFLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLG9FQUFvRSxDQUFDLENBQUM7WUFDekcsZ0JBQU0sQ0FBQyxLQUFL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LFVBQVUsQ0FDbkQsNEhBQTRILENBQzdILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ3VzdG9tVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IENVU1RPTV9UWF9QVUJMSUNfVFJBTlNGRVIsIENVU1RPTV9UWF9TVEFLSU5HX1BPT0xfU1BMSVQsIFVOU1VQUE9SVEVEX1RYIH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3N1aSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uL2dldEJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFN1aVRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IFN1aVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuXG5kZXNjcmliZSgnU3VpIEN1c3RvbSBUcmFuc2FjdGlvbiBCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBjb2luTmFtZSA9ICd0c3VpJztcbiAgY29uc3QgZmFjdG9yeSA9IGdldEJ1aWxkZXJGYWN0b3J5KGNvaW5OYW1lKTtcblxuICBkZXNjcmliZSgnU3VjY2VlZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgY3VzdG9tIHR4IGZyb20gcmF3IHR4IGhleCBhbmQgZXhwbGFpbiB0eCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IEN1c3RvbVRyYW5zYWN0aW9uKGNvaW5zLmdldCgndHN1aScpKTtcbiAgICAgIHR4LmZyb21SYXdUcmFuc2FjdGlvbihDVVNUT01fVFhfU1RBS0lOR19QT09MX1NQTElUKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50eXBlLCBUcmFuc2FjdGlvblR5cGUuQ3VzdG9tVHgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlkLCAnM0h6TXhnbjNGOFdDTDFKM1FyazlpTGhQcERuR1ljU25LMzZDSjc4czdqS2cnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0uYWRkcmVzcywgJzB4NmMxMGQxYmYxMmU0NjEwZGExZDkyZWYxNWU2YmM1ODFlMWQ1ZTc5ZGIzMzAyNGU4Y2MxZTAwYzIxZjBjN2RkZicpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS52YWx1ZSwgJzUwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0uY29pbiwgY29pbk5hbWUpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLmFkZHJlc3MsICcweDViZTVlZTg1Y2Y1ODI1YmQwN2RmN2JiZTc4ZjE5YmNhYWZkNDJlOWU2ODVmZGExYWNmMjQyMzNjZDdiOTI1YTYnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLnZhbHVlLCAnNTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHNbMF0uY29pbiwgY29pbk5hbWUpO1xuXG4gICAgICBjb25zdCB0eERhdGEgPSB0eC5nZXRUeERhdGEoKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eERhdGEuc2VuZGVyLCAnMHg2YzEwZDFiZjEyZTQ2MTBkYTFkOTJlZjE1ZTZiYzU4MWUxZDVlNzlkYjMzMDI0ZThjYzFlMDBjMjFmMGM3ZGRmJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHhEYXRhLmV4cGlyYXRpb25bJ05vbmUnXSwgbnVsbCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhEYXRhLmdhc0RhdGEuYnVkZ2V0LCAnMTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4RGF0YS5raW5kLlByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLmlucHV0cy5sZW5ndGgsIDMpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4RGF0YS5raW5kLlByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgsIDIpO1xuXG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uc2VuZGVyLCAnMHg2YzEwZDFiZjEyZTQ2MTBkYTFkOTJlZjE1ZTZiYzU4MWUxZDVlNzlkYjMzMDI0ZThjYzFlMDBjMjFmMGM3ZGRmJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmV4cGlyYXRpb25bJ05vbmUnXSwgbnVsbCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmdhc0RhdGEuYnVkZ2V0LCAnMTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5raW5kLlByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLmlucHV0cy5sZW5ndGgsIDMpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5raW5kLlByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgsIDIpO1xuXG4gICAgICBjb25zdCBleHBsYWluZWRUeCA9IHR4LmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKGV4cGxhaW5lZFR4LmlkLCAnM0h6TXhnbjNGOFdDTDFKM1FyazlpTGhQcERuR1ljU25LMzZDSjc4czdqS2cnKTtcbiAgICAgIHNob3VsZC5lcXVhbChleHBsYWluZWRUeC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIGV4cGxhaW5lZFR4Lm91dHB1dHNbMF0uYWRkcmVzcyxcbiAgICAgICAgJzB4NWJlNWVlODVjZjU4MjViZDA3ZGY3YmJlNzhmMTliY2FhZmQ0MmU5ZTY4NWZkYTFhY2YyNDIzM2NkN2I5MjVhNidcbiAgICAgICk7XG4gICAgICBzaG91bGQuZXF1YWwoZXhwbGFpbmVkVHgub3V0cHV0c1swXS5hbW91bnQsICc1MDAwMDAwMDAwJyk7XG4gICAgICBzaG91bGQuZXF1YWwoZXhwbGFpbmVkVHgub3V0cHV0QW1vdW50LCAnNTAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKGV4cGxhaW5lZFR4LmZlZS5mZWUsICcxMDAwMDAwMDAwJyk7XG4gICAgICBzaG91bGQuZXF1YWwoZXhwbGFpbmVkVHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4KTtcblxuICAgICAgY29uc3QgcmVjaXBpZW50cyA9IHR4LnJlY2lwaWVudHM7XG4gICAgICBzaG91bGQuZXF1YWwocmVjaXBpZW50cy5sZW5ndGgsIDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlY2lwaWVudHNbMF0uYWRkcmVzcywgJzB4NWJlNWVlODVjZjU4MjViZDA3ZGY3YmJlNzhmMTliY2FhZmQ0MmU5ZTY4NWZkYTFhY2YyNDIzM2NkN2I5MjVhNicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbml0IGJ1aWxkZXIgZnJvbSBhIGN1c3RvbSB0eCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IEN1c3RvbVRyYW5zYWN0aW9uKGNvaW5zLmdldCgndHN1aScpKTtcbiAgICAgIHR4LmZyb21SYXdUcmFuc2FjdGlvbihDVVNUT01fVFhfU1RBS0lOR19QT09MX1NQTElUKTtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgICAgY29uc3QgcmVidWlsdFR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBTdWlUcmFuc2FjdGlvbjxDdXN0b21UcmFuc2FjdGlvbj47XG4gICAgICBzaG91bGQuZXF1YWwocmVidWlsdFR4LnR5cGUsIFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeCk7XG4gICAgICBzaG91bGQuZXF1YWwocmVidWlsdFR4LmlkLCAnM0h6TXhnbjNGOFdDTDFKM1FyazlpTGhQcERuR1ljU25LMzZDSjc4czdqS2cnKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZWJ1aWx0VHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwocmVidWlsdFR4LmlucHV0c1swXS5hZGRyZXNzLCAnMHg2YzEwZDFiZjEyZTQ2MTBkYTFkOTJlZjE1ZTZiYzU4MWUxZDVlNzlkYjMzMDI0ZThjYzFlMDBjMjFmMGM3ZGRmJyk7XG4gICAgICBzaG91bGQuZXF1YWwocmVidWlsdFR4LmlucHV0c1swXS52YWx1ZSwgJzUwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZWJ1aWx0VHguaW5wdXRzWzBdLmNvaW4sIGNvaW5OYW1lKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZWJ1aWx0VHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlYnVpbHRUeC5vdXRwdXRzWzBdLmFkZHJlc3MsICcweDViZTVlZTg1Y2Y1ODI1YmQwN2RmN2JiZTc4ZjE5YmNhYWZkNDJlOWU2ODVmZGExYWNmMjQyMzNjZDdiOTI1YTYnKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZWJ1aWx0VHgub3V0cHV0c1swXS52YWx1ZSwgJzUwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZWJ1aWx0VHgub3V0cHV0c1swXS5jb2luLCBjb2luTmFtZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgdHggd2l0aCBwdWJsaWNfdHJhbnNmZXIgZnVuY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eCA9IG5ldyBDdXN0b21UcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RzdWknKSk7XG4gICAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24oQ1VTVE9NX1RYX1BVQkxJQ19UUkFOU0ZFUik7XG4gICAgICBzaG91bGQuZXF1YWwodHguc3VpVHJhbnNhY3Rpb24udHlwZSwgU3VpVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4KTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHNob3VsZC5lcXVhbChyYXdUeCwgQ1VTVE9NX1RYX1BVQkxJQ19UUkFOU0ZFUik7XG4gICAgICBzaG91bGQuZXF1YWwodHguaWQsICdGbXNFNVlnZlRVMmtpQ2ZZbVZFNlptcm93M0phWGNBMjQzdEJqak5VbUxleCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS5hZGRyZXNzLCAnMHhjZTcyNGI2M2ZkZmU4NzVhN2VlYjQyNWU0Mjc4NWM3YzA1YmU5NWJjNGYwMGZiYzVjNmM3NWUwZGMyNjRhYmUyJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzWzBdLnZhbHVlLCAnMjAwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMTcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnJlY2lwaWVudHMubGVuZ3RoLCAxNyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgucmVjaXBpZW50c1swXS5hZGRyZXNzLCAnMHgwZjIyMDQyMTI1NGRhZTQzNTVhOTZiMmZmYjg3ZWY0NjU2NmMwOTE4ZjhkZDBlODlhNTNjMmNlZDQzNTVjZjEyJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgucmVjaXBpZW50c1swXS5hbW91bnQsICcwJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgucmVjaXBpZW50c1swXS5kYXRhLCAndW5rbm93biBhbW91bnQnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5yZWNpcGllbnRzWzhdLmFkZHJlc3MsICcweDhkM2YzOGE0YTRkZmM2YmQ3YmNmZGE0YzliZmYzNmZmODljNGQ1NTY0NjcyZDg1YzUzM2Q4NmEyMjAxYjgxNTgnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5yZWNpcGllbnRzWzhdLmFtb3VudCwgJzEwMDAwMDAwMDAwJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgucmVjaXBpZW50c1sxNF0uYWRkcmVzcywgJzB4ZTYwZDZhY2Y1NmIxMDAzM2YyZTc3MDgwNzAyODk3OGVmNjg5NmE1YmIxZGEzOGIxMmVhNjhlYmUyMGQxMTcwNCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnJlY2lwaWVudHNbMTRdLmFtb3VudCwgJzEwMDAwMDAwMDAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgY3VzdG9tIHR4IGFuZCBzZXJpYWxpemUgaXQgYW5kIGRlc2VyaWFsaXplIGl0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHggPSBuZXcgQ3VzdG9tVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0c3VpJykpO1xuICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKENVU1RPTV9UWF9TVEFLSU5HX1BPT0xfU1BMSVQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnN1aVRyYW5zYWN0aW9uLnR5cGUsIFN1aVRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXF1YWwocmF3VHgsIENVU1RPTV9UWF9TVEFLSU5HX1BPT0xfU1BMSVQpO1xuICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gKGF3YWl0IGZhY3RvcnkuZnJvbShyYXdUeCkuYnVpbGQoKSkgYXMgQ3VzdG9tVHJhbnNhY3Rpb247XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGRlc2VyaWFsaXplZCwgdHgpO1xuICAgICAgZGVzZXJpYWxpemVkLnRvQnJvYWRjYXN0Rm9ybWF0KCkuc2hvdWxkLmVxdWFsKHJhd1R4KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGEgY3VzdG9tIHR4IHdpdGggdW5zdXBwb3J0ZWQgdHhuIHR5cGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBzaG91bGQoKCkgPT4gZmFjdG9yeS5mcm9tKFVOU1VQUE9SVEVEX1RYKSkudGhyb3dFcnJvcihcbiAgICAgICAgJ3Vuc3VwcG9ydGVkIHRhcmdldCBtZXRob2QgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzo6c3Rha2luZ19wb29sOjpzcGxpdF9zdGFrZWRfc3VpJ1xuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stakingBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/stakingBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const assert_1 = __importDefault(require("assert"));
40
+ const getBuilderFactory_1 = require("../getBuilderFactory");
41
+ const testData = __importStar(require("../../resources/sui"));
42
+ const should_1 = __importDefault(require("should"));
43
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
44
+ const utils_1 = __importDefault(require("../../../src/lib/utils"));
45
+ const transaction_1 = require("../../../src/lib/transaction");
46
+ const iface_1 = require("../../../src/lib/iface");
47
+ const constants_1 = require("../../../src/lib/constants");
48
+ describe('Sui Staking Builder', () => {
49
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsui');
50
+ describe('Succeed', () => {
51
+ it('should build a staking tx', async function () {
52
+ const txBuilder = factory.getStakingBuilder();
53
+ txBuilder.type(iface_1.SuiTransactionType.AddStake);
54
+ txBuilder.sender(testData.sender.address);
55
+ txBuilder.stake([testData.requestAddStake]);
56
+ txBuilder.gasData(testData.gasData);
57
+ const tx = await txBuilder.build();
58
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingAdd);
59
+ tx.suiTransaction.gasData.payment.should.deepEqual(testData.coinsGasPayment);
60
+ tx.inputs.length.should.equal(1);
61
+ tx.inputs[0].should.deepEqual({
62
+ address: testData.sender.address,
63
+ value: testData.STAKING_AMOUNT.toString(),
64
+ coin: 'tsui',
65
+ });
66
+ tx.outputs.length.should.equal(1);
67
+ tx.outputs[0].should.deepEqual({
68
+ address: testData.requestAddStake.validatorAddress,
69
+ value: testData.requestAddStake.amount.toString(),
70
+ coin: 'tsui',
71
+ });
72
+ const rawTx = tx.toBroadcastFormat();
73
+ should_1.default.equal(utils_1.default.isValidRawTransaction(rawTx), true);
74
+ should_1.default.equal(rawTx, testData.ADD_STAKE);
75
+ });
76
+ it('should build a staking tx with more than 255 input objects', async function () {
77
+ const numberOfPaymentObjects = 1000;
78
+ const txBuilder = factory.getStakingBuilder();
79
+ txBuilder.type(iface_1.SuiTransactionType.AddStake);
80
+ txBuilder.sender(testData.sender.address);
81
+ const gasData = {
82
+ ...testData.gasData,
83
+ payment: testData.generateObjects(numberOfPaymentObjects),
84
+ };
85
+ txBuilder.stake([testData.requestAddStake]);
86
+ txBuilder.gasData(gasData);
87
+ const tx = await txBuilder.build();
88
+ (0, assert_1.default)(tx instanceof transaction_1.Transaction);
89
+ tx.type.should.equal(sdk_core_1.TransactionType.StakingAdd);
90
+ tx.inputs.length.should.equal(1);
91
+ tx.inputs[0].should.deepEqual({
92
+ address: testData.sender.address,
93
+ value: testData.STAKING_AMOUNT.toString(),
94
+ coin: 'tsui',
95
+ });
96
+ tx.outputs.length.should.equal(1);
97
+ tx.outputs[0].should.deepEqual({
98
+ address: testData.requestAddStake.validatorAddress,
99
+ value: testData.requestAddStake.amount.toString(),
100
+ coin: 'tsui',
101
+ });
102
+ tx.suiTransaction.gasData.owner.should.equal(gasData.owner);
103
+ tx.suiTransaction.gasData.price.should.equal(gasData.price);
104
+ tx.suiTransaction.gasData.budget.should.equal(gasData.budget);
105
+ tx.suiTransaction.gasData.payment.length.should.equal(constants_1.MAX_GAS_OBJECTS - 1);
106
+ const programmableTx = tx.suiTransaction.tx;
107
+ // total objects - objects sent as gas payment
108
+ // + (staked amount object + SUI system state object + validator address = 3)
109
+ programmableTx.inputs.length.should.equal(numberOfPaymentObjects - (constants_1.MAX_GAS_OBJECTS - 1) + 3);
110
+ programmableTx.transactions[0].kind.should.equal('MergeCoins');
111
+ programmableTx.transactions[0].sources.length.should.equal(constants_1.MAX_COMMAND_ARGS - 1);
112
+ programmableTx.transactions[1].kind.should.equal('MergeCoins');
113
+ programmableTx.transactions[1].sources.length.should.equal(numberOfPaymentObjects - (constants_1.MAX_COMMAND_ARGS - 1) - (constants_1.MAX_GAS_OBJECTS - 1));
114
+ const rawTx = tx.toBroadcastFormat();
115
+ should_1.default.equal(utils_1.default.isValidRawTransaction(rawTx), true);
116
+ const rebuilder = factory.from(rawTx);
117
+ rebuilder.addSignature({ pub: testData.sender.publicKey }, Buffer.from(testData.sender.signatureHex));
118
+ const rebuiltTx = await rebuilder.build();
119
+ rebuiltTx.toBroadcastFormat().should.equal(rawTx);
120
+ rebuiltTx.toJson().gasData.payment.length.should.equal(numberOfPaymentObjects);
121
+ });
122
+ });
123
+ describe('Fail', () => {
124
+ it('should fail for invalid sender', async function () {
125
+ const builder = factory.getStakingBuilder();
126
+ (0, should_1.default)(() => builder.sender('randomString')).throwError('Invalid or missing sender, got: randomString');
127
+ });
128
+ it('should fail for invalid gasData', function () {
129
+ const builder = factory.getStakingBuilder();
130
+ (0, should_1.default)(() => builder.gasData(testData.invalidGasOwner)).throwError(`Invalid gas address ${testData.invalidGasOwner.owner}`);
131
+ });
132
+ it('should fail for invalid gasBudget', function () {
133
+ const builder = factory.getStakingBuilder();
134
+ (0, should_1.default)(() => builder.gasData(testData.invalidGasBudget)).throwError('Invalid gas budget -1');
135
+ });
136
+ it('should fail for invalid gasPayment', function () {
137
+ const builder = factory.getStakingBuilder();
138
+ const invalidGasPayment = {
139
+ ...testData.gasDataWithoutGasPayment,
140
+ payment: [
141
+ {
142
+ objectId: '',
143
+ version: -1,
144
+ digest: '',
145
+ },
146
+ ],
147
+ };
148
+ (0, should_1.default)(() => builder.gasData(invalidGasPayment)).throwError('Invalid payment, invalid or missing version');
149
+ });
150
+ });
151
+ });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDREQUF5RDtBQUN6RCw4REFBZ0Q7QUFDaEQsb0RBQTRCO0FBQzVCLG1EQUF1RDtBQUN2RCxtRUFBMkM7QUFDM0MsOERBQTZFO0FBQzdFLGtEQUE0RjtBQUM1RiwwREFBK0U7QUFFL0UsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFBLHFDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxLQUFLO1lBQ25DLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUM1QyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLDBCQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakQsRUFBcUQsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFD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aUJBQWlCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGdldEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vZ2V0QnVpbGRlckZhY3RvcnknO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3N1aSc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBTdWlUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uLCBTdWlUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcbmltcG9ydCB7IE1BWF9DT01NQU5EX0FSR1MsIE1BWF9HQVNfT0JKRUNUUyB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvY29uc3RhbnRzJztcblxuZGVzY3JpYmUoJ1N1aSBTdGFraW5nIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHN1aScpO1xuXG4gIGRlc2NyaWJlKCdTdWNjZWVkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFraW5nIHR4JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRTdGFraW5nQnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlKTtcbiAgICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtlKFt0ZXN0RGF0YS5yZXF1ZXN0QWRkU3Rha2VdKTtcbiAgICAgIHR4QnVpbGRlci5nYXNEYXRhKHRlc3REYXRhLmdhc0RhdGEpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50eXBlLCBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FkZCk7XG4gICAgICAodHggYXMgU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPikuc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YS5wYXltZW50IS5zaG91bGQuZGVlcEVxdWFsKFxuICAgICAgICB0ZXN0RGF0YS5jb2luc0dhc1BheW1lbnRcbiAgICAgICk7XG5cbiAgICAgIHR4LmlucHV0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguaW5wdXRzWzBdLnNob3VsZC5kZWVwRXF1YWwoe1xuICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IHRlc3REYXRhLlNUQUtJTkdfQU1PVU5ULnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46ICd0c3VpJyxcbiAgICAgIH0pO1xuICAgICAgdHgub3V0cHV0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHgub3V0cHV0c1swXS5zaG91bGQuZGVlcEVxdWFsKHtcbiAgICAgICAgYWRkcmVzczogdGVzdERhdGEucmVxdWVzdEFkZFN0YWtlLnZhbGlkYXRvckFkZHJlc3MsXG4gICAgICAgIHZhbHVlOiB0ZXN0RGF0YS5yZXF1ZXN0QWRkU3Rha2UuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46ICd0c3VpJyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0RGF0YS5BRERfU1RBS0UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHN0YWtpbmcgdHggd2l0aCBtb3JlIHRoYW4gMjU1IGlucHV0IG9iamVjdHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBudW1iZXJPZlBheW1lbnRPYmplY3RzID0gMTAwMDtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0U3Rha2luZ0J1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFN1aVRyYW5zYWN0aW9uVHlwZS5BZGRTdGFrZSk7XG4gICAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcblxuICAgICAgY29uc3QgZ2FzRGF0YSA9IHtcbiAgICAgICAgLi4udGVzdERhdGEuZ2FzRGF0YSxcbiAgICAgICAgcGF5bWVudDogdGVzdERhdGEuZ2VuZXJhdGVPYmplY3RzKG51bWJlck9mUGF5bWVudE9iamVjdHMpLFxuICAgICAgfTtcblxuICAgICAgdHhCdWlsZGVyLnN0YWtlKFt0ZXN0RGF0YS5yZXF1ZXN0QWRkU3Rha2VdKTtcbiAgICAgIHR4QnVpbGRlci5nYXNEYXRhKGdhc0RhdGEpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgYXNzZXJ0KHR4IGluc3RhbmNlb2YgU3VpVHJhbnNhY3Rpb24pO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQpO1xuICAgICAgdHguaW5wdXRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5pbnB1dHNbMF0uc2hvdWxkLmRlZXBFcXVhbCh7XG4gICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLnNlbmRlci5hZGRyZXNzLFxuICAgICAgICB2YWx1ZTogdGVzdERhdGEuU1RBS0lOR19BTU9VTlQudG9TdHJpbmcoKSxcbiAgICAgICAgY29pbjogJ3RzdWknLFxuICAgICAgfSk7XG4gICAgICB0eC5vdXRwdXRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnNob3VsZC5kZWVwRXF1YWwoe1xuICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5yZXF1ZXN0QWRkU3Rha2UudmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IHRlc3REYXRhLnJlcXVlc3RBZGRTdGFrZS5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgY29pbjogJ3RzdWknLFxuICAgICAgfSk7XG5cbiAgICAgIHR4LnN1aVRyYW5zYWN0aW9uLmdhc0RhdGEub3duZXIuc2hvdWxkLmVxdWFsKGdhc0RhdGEub3duZXIpO1xuICAgICAgdHguc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YS5wcmljZS5zaG91bGQuZXF1YWwoZ2FzRGF0YS5wcmljZSk7XG4gICAgICB0eC5zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLmJ1ZGdldC5zaG91bGQuZXF1YWwoZ2FzRGF0YS5idWRnZXQpO1xuICAgICAgdHguc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YS5wYXltZW50Lmxlbmd0aC5zaG91bGQuZXF1YWwoTUFYX0dBU19PQkpFQ1RTIC0gMSk7XG5cbiAgICAgIGNvbnN0IHByb2dyYW1tYWJsZVR4ID0gdHguc3VpVHJhbnNhY3Rpb24udHg7XG5cbiAgICAgIC8vIHRvdGFsIG9iamVjdHMgLSBvYmplY3RzIHNlbnQgYXMgZ2FzIHBheW1lbnRcbiAgICAgIC8vICsgKHN0YWtlZCBhbW91bnQgb2JqZWN0ICsgU1VJIHN5c3RlbSBzdGF0ZSBvYmplY3QgKyB2YWxpZGF0b3IgYWRkcmVzcyA9IDMpXG4gICAgICBwcm9ncmFtbWFibGVUeC5pbnB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbChudW1iZXJPZlBheW1lbnRPYmplY3RzIC0gKE1BWF9HQVNfT0JKRUNUUyAtIDEpICsgMyk7XG4gICAgICBwcm9ncmFtbWFibGVUeC50cmFuc2FjdGlvbnNbMF0ua2luZC5zaG91bGQuZXF1YWwoJ01lcmdlQ29pbnMnKTtcbiAgICAgIHByb2dyYW1tYWJsZVR4LnRyYW5zYWN0aW9uc1swXS5zb3VyY2VzLmxlbmd0aC5zaG91bGQuZXF1YWwoTUFYX0NPTU1BTkRfQVJHUyAtIDEpO1xuICAgICAgcHJvZ3JhbW1hYmxlVHgudHJhbnNhY3Rpb25zWzFdLmtpbmQuc2hvdWxkLmVxdWFsKCdNZXJnZUNvaW5zJyk7XG4gICAgICBwcm9ncmFtbWFibGVUeC50cmFuc2FjdGlvbnNbMV0uc291cmNlcy5sZW5ndGguc2hvdWxkLmVxdWFsKFxuICAgICAgICBudW1iZXJPZlBheW1lbnRPYmplY3RzIC0gKE1BWF9DT01NQU5EX0FSR1MgLSAxKSAtIChNQVhfR0FTX09CSkVDVFMgLSAxKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgY29uc3QgcmVidWlsZGVyID0gZmFjdG9yeS5mcm9tKHJhd1R4KTtcbiAgICAgIHJlYnVpbGRlci5hZGRTaWduYXR1cmUoeyBwdWI6IHRlc3REYXRhLnNlbmRlci5wdWJsaWNLZXkgfSwgQnVmZmVyLmZyb20odGVzdERhdGEuc2VuZGVyLnNpZ25hdHVyZUhleCkpO1xuICAgICAgY29uc3QgcmVidWlsdFR4ID0gYXdhaXQgcmVidWlsZGVyLmJ1aWxkKCk7XG4gICAgICByZWJ1aWx0VHgudG9Ccm9hZGNhc3RGb3JtYXQoKS5zaG91bGQuZXF1YWwocmF3VHgpO1xuICAgICAgcmVidWlsdFR4LnRvSnNvbigpLmdhc0RhdGEucGF5bWVudC5sZW5ndGguc2hvdWxkLmVxdWFsKG51bWJlck9mUGF5bWVudE9iamVjdHMpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnRmFpbCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGZhaWwgZm9yIGludmFsaWQgc2VuZGVyJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0U3Rha2luZ0J1aWxkZXIoKTtcbiAgICAgIHNob3VsZCgoKSA9PiBidWlsZGVyLnNlbmRlcigncmFuZG9tU3RyaW5nJykpLnRocm93RXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBzZW5kZXIsIGdvdDogcmFuZG9tU3RyaW5nJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgZm9yIGludmFsaWQgZ2FzRGF0YScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFN0YWtpbmdCdWlsZGVyKCk7XG4gICAgICBzaG91bGQoKCkgPT4gYnVpbGRlci5nYXNEYXRhKHRlc3REYXRhLmludmFsaWRHYXNPd25lcikpLnRocm93RXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIGdhcyBhZGRyZXNzICR7dGVzdERhdGEuaW52YWxpZEdhc093bmVyLm93bmVyfWBcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgZm9yIGludmFsaWQgZ2FzQnVkZ2V0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0U3Rha2luZ0J1aWxkZXIoKTtcbiAgICAgIHNob3VsZCgoKSA9PiBidWlsZGVyLmdhc0RhdGEodGVzdERhdGEuaW52YWxpZEdhc0J1ZGdldCkpLnRocm93RXJyb3IoJ0ludmFsaWQgZ2FzIGJ1ZGdldCAtMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIGZvciBpbnZhbGlkIGdhc1BheW1lbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRTdGFraW5nQnVpbGRlcigpO1xuICAgICAgY29uc3QgaW52YWxpZEdhc1BheW1lbnQgPSB7XG4gICAgICAgIC4uLnRlc3REYXRhLmdhc0RhdGFXaXRob3V0R2FzUGF5bWVudCxcbiAgICAgICAgcGF5bWVudDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdElkOiAnJyxcbiAgICAgICAgICAgIHZlcnNpb246IC0xLFxuICAgICAgICAgICAgZGlnZXN0OiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIHNob3VsZCgoKSA9PiBidWlsZGVyLmdhc0RhdGEoaW52YWxpZEdhc1BheW1lbnQpKS50aHJvd0Vycm9yKCdJbnZhbGlkIHBheW1lbnQsIGludmFsaWQgb3IgbWlzc2luZyB2ZXJzaW9uJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokenTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/tokenTransferBuilder.ts"],"names":[],"mappings":""}