@bitgo/sdk-coin-ton 4.0.5 → 4.0.7

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 (224) hide show
  1. package/dist/cjs/src/index.d.ts.map +1 -0
  2. package/dist/{src → cjs/src}/index.js +1 -1
  3. package/dist/cjs/src/jettonToken.d.ts.map +1 -0
  4. package/dist/cjs/src/jettonToken.js +52 -0
  5. package/dist/cjs/src/lib/constants.d.ts.map +1 -0
  6. package/dist/cjs/src/lib/constants.js +12 -0
  7. package/dist/{src → cjs/src}/lib/explainTransactionWasm.d.ts +15 -1
  8. package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
  9. package/dist/cjs/src/lib/explainTransactionWasm.js +104 -0
  10. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  11. package/dist/cjs/src/lib/iface.js +3 -0
  12. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  13. package/dist/{src → cjs/src}/lib/index.js +1 -1
  14. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  15. package/dist/cjs/src/lib/keyPair.js +103 -0
  16. package/dist/cjs/src/lib/singleNominatorWithdrawBuilder.d.ts.map +1 -0
  17. package/dist/cjs/src/lib/singleNominatorWithdrawBuilder.js +38 -0
  18. package/dist/cjs/src/lib/tokenTransaction.d.ts.map +1 -0
  19. package/dist/cjs/src/lib/tokenTransaction.js +97 -0
  20. package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  21. package/dist/cjs/src/lib/tokenTransferBuilder.js +57 -0
  22. package/dist/cjs/src/lib/tonWhalesDepositBuilder.d.ts.map +1 -0
  23. package/dist/cjs/src/lib/tonWhalesDepositBuilder.js +42 -0
  24. package/dist/cjs/src/lib/tonWhalesVestingDepositBuilder.d.ts.map +1 -0
  25. package/dist/cjs/src/lib/tonWhalesVestingDepositBuilder.js +37 -0
  26. package/dist/cjs/src/lib/tonWhalesVestingWithdrawBuilder.d.ts.map +1 -0
  27. package/dist/cjs/src/lib/tonWhalesVestingWithdrawBuilder.js +37 -0
  28. package/dist/cjs/src/lib/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
  29. package/dist/cjs/src/lib/tonWhalesWithdrawalBuilder.js +60 -0
  30. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  31. package/dist/cjs/src/lib/transaction.js +415 -0
  32. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  33. package/dist/cjs/src/lib/transactionBuilder.js +152 -0
  34. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  35. package/dist/cjs/src/lib/transactionBuilderFactory.js +100 -0
  36. package/dist/cjs/src/lib/transactionExplanation.d.ts.map +1 -0
  37. package/dist/cjs/src/lib/transactionExplanation.js +3 -0
  38. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  39. package/dist/cjs/src/lib/transferBuilder.js +21 -0
  40. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  41. package/dist/cjs/src/lib/utils.js +159 -0
  42. package/dist/cjs/src/register.d.ts.map +1 -0
  43. package/dist/cjs/src/register.js +15 -0
  44. package/dist/cjs/src/ton.d.ts.map +1 -0
  45. package/dist/cjs/src/ton.js +520 -0
  46. package/dist/cjs/src/tton.d.ts.map +1 -0
  47. package/dist/cjs/src/tton.js +30 -0
  48. package/dist/cjs/test/resources/ton.d.ts.map +1 -0
  49. package/dist/cjs/test/resources/ton.js +208 -0
  50. package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
  51. package/dist/cjs/test/unit/explainTransactionWasm.js +147 -0
  52. package/dist/cjs/test/unit/jettonToken.d.ts.map +1 -0
  53. package/dist/cjs/test/unit/jettonToken.js +341 -0
  54. package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
  55. package/dist/cjs/test/unit/keyPair.js +55 -0
  56. package/dist/cjs/test/unit/singleNominatorWithdrawBuilder.d.ts.map +1 -0
  57. package/dist/cjs/test/unit/singleNominatorWithdrawBuilder.js +314 -0
  58. package/dist/cjs/test/unit/tokenTransferBuilder.d.ts.map +1 -0
  59. package/dist/cjs/test/unit/tokenTransferBuilder.js +262 -0
  60. package/dist/{test → cjs/test}/unit/ton.d.ts.map +1 -1
  61. package/dist/cjs/test/unit/ton.js +752 -0
  62. package/dist/cjs/test/unit/tonWhalesDepositBuilder.d.ts.map +1 -0
  63. package/dist/cjs/test/unit/tonWhalesDepositBuilder.js +114 -0
  64. package/dist/cjs/test/unit/tonWhalesVestingDepositBuilder.d.ts.map +1 -0
  65. package/dist/cjs/test/unit/tonWhalesVestingDepositBuilder.js +136 -0
  66. package/dist/cjs/test/unit/tonWhalesVestingWithdrawBuilder.d.ts.map +1 -0
  67. package/dist/cjs/test/unit/tonWhalesVestingWithdrawBuilder.js +136 -0
  68. package/dist/cjs/test/unit/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
  69. package/dist/cjs/test/unit/tonWhalesWithdrawalBuilder.js +130 -0
  70. package/dist/cjs/test/unit/transferBuilder.d.ts.map +1 -0
  71. package/dist/cjs/test/unit/transferBuilder.js +281 -0
  72. package/dist/cjs/test/unit/wasmCrossCompatibility.d.ts.map +1 -0
  73. package/dist/cjs/test/unit/wasmCrossCompatibility.js +176 -0
  74. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  75. package/dist/esm/index.d.ts +6 -0
  76. package/dist/esm/index.js +6 -0
  77. package/dist/esm/jettonToken.d.ts +19 -0
  78. package/dist/esm/jettonToken.js +48 -0
  79. package/dist/esm/lib/constants.d.ts +9 -0
  80. package/dist/esm/lib/constants.js +9 -0
  81. package/dist/esm/lib/explainTransactionWasm.d.ts +36 -0
  82. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  83. package/dist/esm/lib/explainTransactionWasm.js +99 -0
  84. package/dist/esm/lib/iface.d.ts +32 -0
  85. package/dist/{src → esm}/lib/iface.js +1 -2
  86. package/dist/esm/lib/index.d.ts +14 -0
  87. package/dist/esm/lib/index.js +14 -0
  88. package/dist/esm/lib/keyPair.d.ts +25 -0
  89. package/dist/esm/lib/keyPair.js +63 -0
  90. package/dist/esm/lib/singleNominatorWithdrawBuilder.d.ts +17 -0
  91. package/dist/esm/lib/singleNominatorWithdrawBuilder.js +34 -0
  92. package/dist/esm/lib/tokenTransaction.d.ts +16 -0
  93. package/dist/esm/lib/tokenTransaction.js +90 -0
  94. package/dist/esm/lib/tokenTransferBuilder.d.ts +20 -0
  95. package/dist/esm/lib/tokenTransferBuilder.js +53 -0
  96. package/dist/esm/lib/tonWhalesDepositBuilder.d.ts +12 -0
  97. package/dist/esm/lib/tonWhalesDepositBuilder.js +38 -0
  98. package/dist/esm/lib/tonWhalesVestingDepositBuilder.d.ts +12 -0
  99. package/dist/esm/lib/tonWhalesVestingDepositBuilder.js +33 -0
  100. package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.d.ts +12 -0
  101. package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.js +33 -0
  102. package/dist/esm/lib/tonWhalesWithdrawalBuilder.d.ts +30 -0
  103. package/dist/esm/lib/tonWhalesWithdrawalBuilder.js +56 -0
  104. package/dist/esm/lib/transaction.d.ts +42 -0
  105. package/dist/esm/lib/transaction.js +408 -0
  106. package/dist/esm/lib/transactionBuilder.d.ts +74 -0
  107. package/dist/esm/lib/transactionBuilder.js +145 -0
  108. package/dist/esm/lib/transactionBuilderFactory.d.ts +32 -0
  109. package/dist/esm/lib/transactionBuilderFactory.js +96 -0
  110. package/dist/esm/lib/transactionExplanation.d.ts +14 -0
  111. package/dist/{src → esm}/lib/transactionExplanation.js +1 -2
  112. package/dist/esm/lib/transferBuilder.d.ts +9 -0
  113. package/dist/esm/lib/transferBuilder.js +17 -0
  114. package/dist/esm/lib/utils.d.ts +41 -0
  115. package/dist/esm/lib/utils.js +151 -0
  116. package/dist/esm/register.d.ts +3 -0
  117. package/dist/esm/register.js +11 -0
  118. package/dist/esm/ton.d.ts +59 -0
  119. package/dist/{src → esm}/ton.d.ts.map +1 -1
  120. package/dist/esm/ton.js +480 -0
  121. package/dist/esm/tton.d.ts +22 -0
  122. package/dist/esm/tton.js +26 -0
  123. package/package.json +27 -10
  124. package/dist/src/jettonToken.js +0 -52
  125. package/dist/src/lib/constants.js +0 -12
  126. package/dist/src/lib/explainTransactionWasm.d.ts.map +0 -1
  127. package/dist/src/lib/explainTransactionWasm.js +0 -61
  128. package/dist/src/lib/keyPair.js +0 -103
  129. package/dist/src/lib/singleNominatorWithdrawBuilder.js +0 -38
  130. package/dist/src/lib/tokenTransaction.js +0 -97
  131. package/dist/src/lib/tokenTransferBuilder.js +0 -57
  132. package/dist/src/lib/tonWhalesDepositBuilder.js +0 -42
  133. package/dist/src/lib/tonWhalesVestingDepositBuilder.js +0 -37
  134. package/dist/src/lib/tonWhalesVestingWithdrawBuilder.js +0 -37
  135. package/dist/src/lib/tonWhalesWithdrawalBuilder.js +0 -60
  136. package/dist/src/lib/transaction.js +0 -415
  137. package/dist/src/lib/transactionBuilder.js +0 -152
  138. package/dist/src/lib/transactionBuilderFactory.js +0 -100
  139. package/dist/src/lib/transferBuilder.js +0 -21
  140. package/dist/src/lib/utils.js +0 -159
  141. package/dist/src/register.js +0 -15
  142. package/dist/src/ton.js +0 -525
  143. package/dist/src/tton.js +0 -30
  144. package/dist/test/resources/ton.d.ts.map +0 -1
  145. package/dist/test/resources/ton.js +0 -208
  146. package/dist/test/unit/explainTransactionWasm.d.ts.map +0 -1
  147. package/dist/test/unit/explainTransactionWasm.js +0 -147
  148. package/dist/test/unit/jettonToken.d.ts.map +0 -1
  149. package/dist/test/unit/jettonToken.js +0 -341
  150. package/dist/test/unit/keyPair.js +0 -55
  151. package/dist/test/unit/singleNominatorWithdrawBuilder.d.ts.map +0 -1
  152. package/dist/test/unit/singleNominatorWithdrawBuilder.js +0 -314
  153. package/dist/test/unit/tokenTransferBuilder.d.ts.map +0 -1
  154. package/dist/test/unit/tokenTransferBuilder.js +0 -262
  155. package/dist/test/unit/ton.js +0 -752
  156. package/dist/test/unit/tonWhalesDepositBuilder.d.ts.map +0 -1
  157. package/dist/test/unit/tonWhalesDepositBuilder.js +0 -114
  158. package/dist/test/unit/tonWhalesVestingDepositBuilder.d.ts.map +0 -1
  159. package/dist/test/unit/tonWhalesVestingDepositBuilder.js +0 -136
  160. package/dist/test/unit/tonWhalesVestingWithdrawBuilder.d.ts.map +0 -1
  161. package/dist/test/unit/tonWhalesVestingWithdrawBuilder.js +0 -136
  162. package/dist/test/unit/tonWhalesWithdrawalBuilder.d.ts.map +0 -1
  163. package/dist/test/unit/tonWhalesWithdrawalBuilder.js +0 -130
  164. package/dist/test/unit/transferBuilder.d.ts.map +0 -1
  165. package/dist/test/unit/transferBuilder.js +0 -281
  166. package/dist/test/unit/wasmCrossCompatibility.d.ts.map +0 -1
  167. package/dist/test/unit/wasmCrossCompatibility.js +0 -176
  168. package/dist/tsconfig.tsbuildinfo +0 -1
  169. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  170. /package/dist/{src → cjs/src}/jettonToken.d.ts +0 -0
  171. /package/dist/{src → cjs/src}/lib/constants.d.ts +0 -0
  172. /package/dist/{src → cjs/src}/lib/iface.d.ts +0 -0
  173. /package/dist/{src → cjs/src}/lib/index.d.ts +0 -0
  174. /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
  175. /package/dist/{src → cjs/src}/lib/singleNominatorWithdrawBuilder.d.ts +0 -0
  176. /package/dist/{src → cjs/src}/lib/tokenTransaction.d.ts +0 -0
  177. /package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +0 -0
  178. /package/dist/{src → cjs/src}/lib/tonWhalesDepositBuilder.d.ts +0 -0
  179. /package/dist/{src → cjs/src}/lib/tonWhalesVestingDepositBuilder.d.ts +0 -0
  180. /package/dist/{src → cjs/src}/lib/tonWhalesVestingWithdrawBuilder.d.ts +0 -0
  181. /package/dist/{src → cjs/src}/lib/tonWhalesWithdrawalBuilder.d.ts +0 -0
  182. /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
  183. /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
  184. /package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +0 -0
  185. /package/dist/{src → cjs/src}/lib/transactionExplanation.d.ts +0 -0
  186. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  187. /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
  188. /package/dist/{src → cjs/src}/register.d.ts +0 -0
  189. /package/dist/{src → cjs/src}/ton.d.ts +0 -0
  190. /package/dist/{src → cjs/src}/tton.d.ts +0 -0
  191. /package/dist/{test → cjs/test}/resources/ton.d.ts +0 -0
  192. /package/dist/{test → cjs/test}/unit/explainTransactionWasm.d.ts +0 -0
  193. /package/dist/{test → cjs/test}/unit/jettonToken.d.ts +0 -0
  194. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  195. /package/dist/{test → cjs/test}/unit/singleNominatorWithdrawBuilder.d.ts +0 -0
  196. /package/dist/{test → cjs/test}/unit/tokenTransferBuilder.d.ts +0 -0
  197. /package/dist/{test → cjs/test}/unit/ton.d.ts +0 -0
  198. /package/dist/{test → cjs/test}/unit/tonWhalesDepositBuilder.d.ts +0 -0
  199. /package/dist/{test → cjs/test}/unit/tonWhalesVestingDepositBuilder.d.ts +0 -0
  200. /package/dist/{test → cjs/test}/unit/tonWhalesVestingWithdrawBuilder.d.ts +0 -0
  201. /package/dist/{test → cjs/test}/unit/tonWhalesWithdrawalBuilder.d.ts +0 -0
  202. /package/dist/{test → cjs/test}/unit/transferBuilder.d.ts +0 -0
  203. /package/dist/{test → cjs/test}/unit/wasmCrossCompatibility.d.ts +0 -0
  204. /package/dist/{src → esm}/index.d.ts.map +0 -0
  205. /package/dist/{src → esm}/jettonToken.d.ts.map +0 -0
  206. /package/dist/{src → esm}/lib/constants.d.ts.map +0 -0
  207. /package/dist/{src → esm}/lib/iface.d.ts.map +0 -0
  208. /package/dist/{src → esm}/lib/index.d.ts.map +0 -0
  209. /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
  210. /package/dist/{src → esm}/lib/singleNominatorWithdrawBuilder.d.ts.map +0 -0
  211. /package/dist/{src → esm}/lib/tokenTransaction.d.ts.map +0 -0
  212. /package/dist/{src → esm}/lib/tokenTransferBuilder.d.ts.map +0 -0
  213. /package/dist/{src → esm}/lib/tonWhalesDepositBuilder.d.ts.map +0 -0
  214. /package/dist/{src → esm}/lib/tonWhalesVestingDepositBuilder.d.ts.map +0 -0
  215. /package/dist/{src → esm}/lib/tonWhalesVestingWithdrawBuilder.d.ts.map +0 -0
  216. /package/dist/{src → esm}/lib/tonWhalesWithdrawalBuilder.d.ts.map +0 -0
  217. /package/dist/{src → esm}/lib/transaction.d.ts.map +0 -0
  218. /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
  219. /package/dist/{src → esm}/lib/transactionBuilderFactory.d.ts.map +0 -0
  220. /package/dist/{src → esm}/lib/transactionExplanation.d.ts.map +0 -0
  221. /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
  222. /package/dist/{src → esm}/lib/utils.d.ts.map +0 -0
  223. /package/dist/{src → esm}/register.d.ts.map +0 -0
  224. /package/dist/{src → esm}/tton.d.ts.map +0 -0
@@ -0,0 +1,152 @@
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.TransactionBuilder = exports.WITHDRAW_OPCODE = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const tonweb_1 = __importDefault(require("tonweb"));
9
+ const sdk_core_1 = require("@bitgo/sdk-core");
10
+ const utils_1 = __importDefault(require("./utils"));
11
+ exports.WITHDRAW_OPCODE = '00001000';
12
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
13
+ constructor(coinConfig) {
14
+ super(coinConfig);
15
+ this._signatures = [];
16
+ }
17
+ /** @inheritdoc */
18
+ get transaction() {
19
+ return this._transaction;
20
+ }
21
+ /** @inheritdoc */
22
+ set transaction(transaction) {
23
+ this._transaction = transaction;
24
+ }
25
+ /** @inheritdoc */
26
+ signImplementation(key) {
27
+ throw new Error('Method not implemented.');
28
+ }
29
+ /** @inheritDoc */
30
+ addSignature(publicKey, signature) {
31
+ this.transaction.signature[0] = signature.toString('hex');
32
+ }
33
+ /**
34
+ * Sets the sender of this transaction.
35
+ * This account will be responsible for paying transaction fees.
36
+ *
37
+ * @param {string} senderAddress the account that is sending this transaction
38
+ * @returns {TransactionBuilder} This transaction builder
39
+ */
40
+ sender(senderAddress) {
41
+ this.transaction.sender = senderAddress;
42
+ return this;
43
+ }
44
+ /**
45
+ * Sets the transaction to be bounceable or not.
46
+ *
47
+ * @param {string} bounceable whether the transaction can be bounced
48
+ * @returns {TransactionBuilder} This transaction builder
49
+ */
50
+ bounceable(bounceable) {
51
+ this.transaction.bounceable = bounceable;
52
+ return this;
53
+ }
54
+ /**
55
+ * Sets the fromAddress to be in bounceable format or not.
56
+ *
57
+ * @param {string} bounceable whether the address format is bounceable
58
+ * @returns {TransactionBuilder} This transaction builder
59
+ */
60
+ fromAddressBounceable(bounceable) {
61
+ this.transaction.fromAddressBounceable = bounceable;
62
+ this.sender(new tonweb_1.default.Address(this.transaction.sender).toString(true, true, bounceable));
63
+ return this;
64
+ }
65
+ /**
66
+ * Sets the toAddress to be in bounceable format or not.
67
+ *
68
+ * @param {string} bounceable whether the address format is bounceable
69
+ * @returns {TransactionBuilder} This transaction builder
70
+ */
71
+ toAddressBounceable(bounceable) {
72
+ this.transaction.toAddressBounceable = bounceable;
73
+ this.transaction.recipient.address = new tonweb_1.default.Address(this.transaction.recipient.address).toString(true, true, bounceable);
74
+ return this;
75
+ }
76
+ fee(feeOptions) {
77
+ throw new Error('Method not implemented.');
78
+ }
79
+ /** @inheritdoc */
80
+ fromImplementation(rawTransaction) {
81
+ this.transaction.transactionType = this.transactionType;
82
+ this.transaction.fromRawTransaction(rawTransaction);
83
+ return this.transaction;
84
+ }
85
+ /** @inheritdoc */
86
+ async buildImplementation() {
87
+ this.transaction.transactionType = this.transactionType;
88
+ await this.transaction.build();
89
+ this.transaction.loadInputsAndOutputs();
90
+ return this.transaction;
91
+ }
92
+ // region Validators
93
+ /** @inheritdoc */
94
+ validateAddress(address, addressFormat) {
95
+ if (!utils_1.default.isValidAddress(address.address)) {
96
+ throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
97
+ }
98
+ }
99
+ /** @inheritdoc */
100
+ validateKey(key) {
101
+ throw new Error('Method not implemented.');
102
+ }
103
+ /** @inheritdoc */
104
+ validateRawTransaction(rawTransaction) {
105
+ return;
106
+ }
107
+ /** @inheritdoc */
108
+ validateTransaction(transaction) {
109
+ if (!transaction) {
110
+ throw new Error('transaction not defined');
111
+ }
112
+ this.validateAddress(transaction.recipient);
113
+ this.validateValue(new bignumber_js_1.default(transaction.recipient.amount));
114
+ }
115
+ /** @inheritdoc */
116
+ validateValue(value) {
117
+ if (value.isLessThan(0)) {
118
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
119
+ }
120
+ }
121
+ setMessage(msg) {
122
+ this.transaction.message = msg;
123
+ return this;
124
+ }
125
+ setWithdrawMessage() {
126
+ const queryId = '0000000000000000';
127
+ this.transaction.message = exports.WITHDRAW_OPCODE + queryId + this.transaction.withdrawAmount;
128
+ return this;
129
+ }
130
+ sequenceNumber(number) {
131
+ this.transaction.seqno = number;
132
+ return this;
133
+ }
134
+ expireTime(number) {
135
+ this.transaction.expireTime = number;
136
+ return this;
137
+ }
138
+ publicKey(key) {
139
+ this.transaction.publicKey = key;
140
+ return this;
141
+ }
142
+ isV3ContractMessage(bool) {
143
+ this.transaction.isV3ContractMessage = bool;
144
+ return this;
145
+ }
146
+ subWalletId(id) {
147
+ this.transaction.sub_wallet_id = id;
148
+ return this;
149
+ }
150
+ }
151
+ exports.TransactionBuilder = TransactionBuilder;
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLG9EQUE0QjtBQUU1Qiw4Q0FTeUI7QUFFekIsb0RBQTRCO0FBRWYsUUFBQSxlQUFlLEdBQUcsVUFBVSxDQUFDO0FBRTFDLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQUlyRSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUhaLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztJQUl0QyxDQUFDO0lBUUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVcsQ0FBQyxXQUF3QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsYUFBcUI7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLFVBQW1CO1FBQzVCLElBQUksQ0FBQyxXQUFXLENB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QUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLHVCQUFlLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ3ZGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQWE7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBNUtELGdEQTRLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCBUb25XZWIgZnJvbSAndG9ud2ViJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBGZWVPcHRpb25zLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgV0lUSERSQVdfT1BDT0RFID0gJzAwMDAxMDAwJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgLy8gZ2V0IGFuZCBzZXQgcmVnaW9uXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZVswXSA9IHNpZ25hdHVyZS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VuZGVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFRoaXMgYWNjb3VudCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBwYXlpbmcgdHJhbnNhY3Rpb24gZmVlcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbmRlckFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kZXIoc2VuZGVyQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZW5kZXIgPSBzZW5kZXJBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRyYW5zYWN0aW9uIHRvIGJlIGJvdW5jZWFibGUgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm91bmNlYWJsZSB3aGV0aGVyIHRoZSB0cmFuc2FjdGlvbiBjYW4gYmUgYm91bmNlZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGJvdW5jZWFibGUoYm91bmNlYWJsZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYm91bmNlYWJsZSA9IGJvdW5jZWFibGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZnJvbUFkZHJlc3MgdG8gYmUgaW4gYm91bmNlYWJsZSBmb3JtYXQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm91bmNlYWJsZSB3aGV0aGVyIHRoZSBhZGRyZXNzIGZvcm1hdCBpcyBib3VuY2VhYmxlXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZnJvbUFkZHJlc3NCb3VuY2VhYmxlKGJvdW5jZWFibGU6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmZyb21BZGRyZXNzQm91bmNlYWJsZSA9IGJvdW5jZWFibGU7XG4gICAgdGhpcy5zZW5kZXIobmV3IFRvbldlYi5BZGRyZXNzKHRoaXMudHJhbnNhY3Rpb24uc2VuZGVyKS50b1N0cmluZyh0cnVlLCB0cnVlLCBib3VuY2VhYmxlKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG9BZGRyZXNzIHRvIGJlIGluIGJvdW5jZWFibGUgZm9ybWF0IG9yIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJvdW5jZWFibGUgd2hldGhlciB0aGUgYWRkcmVzcyBmb3JtYXQgaXMgYm91bmNlYWJsZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHRvQWRkcmVzc0JvdW5jZWFibGUoYm91bmNlYWJsZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24udG9BZGRyZXNzQm91bmNlYWJsZSA9IGJvdW5jZWFibGU7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQuYWRkcmVzcyA9IG5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudC5hZGRyZXNzKS50b1N0cmluZyhcbiAgICAgIHRydWUsXG4gICAgICB0cnVlLFxuICAgICAgYm91bmNlYWJsZVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmZWUoZmVlT3B0aW9uczogRmVlT3B0aW9ucyk6IHRoaXMge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XG4gICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvbi5idWlsZCgpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MsIGFkZHJlc3NGb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzcyAnICsgYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHRyYW5zYWN0aW9uLnJlY2lwaWVudCk7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIodHJhbnNhY3Rpb24ucmVjaXBpZW50LmFtb3VudCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICBzZXRNZXNzYWdlKG1zZzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLm1lc3NhZ2UgPSBtc2c7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRXaXRoZHJhd01lc3NhZ2UoKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCBxdWVyeUlkID0gJzAwMDAwMDAwMDAwMDAwMDAnO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubWVzc2FnZSA9IFdJVEhEUkFXX09QQ09ERSArIHF1ZXJ5SWQgKyB0aGlzLnRyYW5zYWN0aW9uLndpdGhkcmF3QW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VxdWVuY2VOdW1iZXIobnVtYmVyOiBudW1iZXIpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2Vxbm8gPSBudW1iZXI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBleHBpcmVUaW1lKG51bWJlcjogbnVtYmVyKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmV4cGlyZVRpbWUgPSBudW1iZXI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucHVibGljS2V5ID0ga2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaXNWM0NvbnRyYWN0TWVzc2FnZShib29sOiBib29sZWFuKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmlzVjNDb250cmFjdE1lc3NhZ2UgPSBib29sO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHN1YldhbGxldElkKGlkOiBudW1iZXIpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc3ViX3dhbGxldF9pZCA9IGlkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA+CrC,kBAAkB;IAClB,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,iCAAiC,IAAI,8BAA8B;IAInE;;OAEG;IACH,uBAAuB,IAAI,oBAAoB;IAI/C,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC,0BAA0B,IAAI,uBAAuB;IAIrD,6BAA6B,IAAI,0BAA0B;IAI3D,iCAAiC,IAAI,8BAA8B;IAInE,kCAAkC,IAAI,+BAA+B;CAGtE"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBuilderFactory = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const transferBuilder_1 = require("./transferBuilder");
6
+ const singleNominatorWithdrawBuilder_1 = require("./singleNominatorWithdrawBuilder");
7
+ const transaction_1 = require("./transaction");
8
+ const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
9
+ const tokenTransaction_1 = require("./tokenTransaction");
10
+ const tonWhalesDepositBuilder_1 = require("./tonWhalesDepositBuilder");
11
+ const tonWhalesWithdrawalBuilder_1 = require("./tonWhalesWithdrawalBuilder");
12
+ const tonWhalesVestingDepositBuilder_1 = require("./tonWhalesVestingDepositBuilder");
13
+ const tonWhalesVestingWithdrawBuilder_1 = require("./tonWhalesVestingWithdrawBuilder");
14
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ }
18
+ /** @inheritdoc */
19
+ from(raw) {
20
+ let builder;
21
+ try {
22
+ const checkTx = new transaction_1.Transaction(this._coinConfig);
23
+ checkTx.fromRawTransaction(raw);
24
+ let tx;
25
+ if (checkTx.type === sdk_core_1.TransactionType.SendToken) {
26
+ // It's a token transaction, so use TokenTransaction for proper parsing
27
+ tx = new tokenTransaction_1.TokenTransaction(this._coinConfig);
28
+ tx.fromRawTransaction(raw);
29
+ }
30
+ else {
31
+ // It's a regular transaction, use the already parsed one
32
+ tx = checkTx;
33
+ }
34
+ switch (tx.type) {
35
+ case sdk_core_1.TransactionType.Send:
36
+ builder = this.getTransferBuilder();
37
+ break;
38
+ case sdk_core_1.TransactionType.SingleNominatorWithdraw:
39
+ builder = this.getSingleNominatorWithdrawBuilder();
40
+ break;
41
+ case sdk_core_1.TransactionType.SendToken:
42
+ builder = this.getTokenTransferBuilder();
43
+ break;
44
+ case sdk_core_1.TransactionType.TonWhalesDeposit:
45
+ builder = this.getTonWhalesDepositBuilder();
46
+ break;
47
+ case sdk_core_1.TransactionType.TonWhalesWithdrawal:
48
+ builder = this.getTonWhalesWithdrawalBuilder();
49
+ break;
50
+ case sdk_core_1.TransactionType.TonWhalesVestingDeposit:
51
+ builder = this.getTonWhalesVestingDepositBuilder();
52
+ break;
53
+ case sdk_core_1.TransactionType.TonWhalesVestingWithdrawal:
54
+ builder = this.getTonWhalesVestingWithdrawBuilder();
55
+ break;
56
+ default:
57
+ throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
58
+ }
59
+ builder.from(raw);
60
+ return builder;
61
+ }
62
+ catch (e) {
63
+ throw e;
64
+ }
65
+ }
66
+ /** @inheritdoc */
67
+ getTransferBuilder() {
68
+ return new transferBuilder_1.TransferBuilder(this._coinConfig);
69
+ }
70
+ /**
71
+ * Returns a specific builder to create a TON withdraw transaction
72
+ */
73
+ getSingleNominatorWithdrawBuilder() {
74
+ return new singleNominatorWithdrawBuilder_1.SingleNominatorWithdrawBuilder(this._coinConfig);
75
+ }
76
+ /**
77
+ * Returns a specific builder to create a TON token transfer transaction
78
+ */
79
+ getTokenTransferBuilder() {
80
+ return new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig);
81
+ }
82
+ /** @inheritdoc */
83
+ getWalletInitializationBuilder() {
84
+ throw new Error('Method not implemented.');
85
+ }
86
+ getTonWhalesDepositBuilder() {
87
+ return new tonWhalesDepositBuilder_1.TonWhalesDepositBuilder(this._coinConfig);
88
+ }
89
+ getTonWhalesWithdrawalBuilder() {
90
+ return new tonWhalesWithdrawalBuilder_1.TonWhalesWithdrawalBuilder(this._coinConfig);
91
+ }
92
+ getTonWhalesVestingDepositBuilder() {
93
+ return new tonWhalesVestingDepositBuilder_1.TonWhalesVestingDepositBuilder(this._coinConfig);
94
+ }
95
+ getTonWhalesVestingWithdrawBuilder() {
96
+ return new tonWhalesVestingWithdrawBuilder_1.TonWhalesVestingWithdrawBuilder(this._coinConfig);
97
+ }
98
+ }
99
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMEc7QUFHMUcsdURBQW9EO0FBQ3BELHFGQUFrRjtBQUNsRiwrQ0FBNEM7QUFDNUMsaUVBQThEO0FBQzlELHlEQUFzRDtBQUN0RCx1RUFBb0U7QUFDcEUsNkVBQTBFO0FBQzFFLHFGQUFrRjtBQUNsRix1RkFBb0Y7QUFFcEYsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLElBQUksT0FBMkIsQ0FBQztRQUNoQyxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVoQyxJQUFJLEVBQWUsQ0FBQztZQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssMEJBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDL0MsdUVBQXVFO2dCQUN2RSxFQUFFLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04seURBQXlEO2dCQUN6RCxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBQ2YsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssMEJBQWUsQ0FBQyx1QkFBdUI7b0JBQzFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztvQkFDbkQsTUFBTTtnQkFDUixLQUFLLDBCQUFlLENBQUMsU0FBUztvQkFDNUIsT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO29CQUN6QyxNQUFNO2dCQUNSLEtBQUssMEJBQWUsQ0FBQyxnQkFBZ0I7b0JBQ25DLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztvQkFDNUMsTUFBTTtnQkFDUixLQUFLLDBCQUFlLENBQUMsbUJBQW1CO29CQUN0QyxPQUFPLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1IsS0FBSywwQkFBZSxDQUFDLHVCQUF1QjtvQkFDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO29CQUNuRCxNQUFNO2dCQUNSLEtBQUssMEJBQWUsQ0FBQywwQkFBMEI7b0JBQzdDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUjtvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQ0FBaUM7UUFDL0IsT0FBTyxJQUFJLCtEQUE4QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QjtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksaURBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLHVEQUEwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsaUNBQWlDO1FBQy9CLE9BQU8sSUFBSSwrREFBOEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGtDQUFrQztRQUNoQyxPQUFPLElBQUksaUVBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQTNGRCw4REEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgU2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyIH0gZnJvbSAnLi9zaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zYWN0aW9uIH0gZnJvbSAnLi90b2tlblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyIH0gZnJvbSAnLi90b25XaGFsZXNEZXBvc2l0QnVpbGRlcic7XG5pbXBvcnQgeyBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB9IGZyb20gJy4vdG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXInO1xuaW1wb3J0IHsgVG9uV2hhbGVzVmVzdGluZ0RlcG9zaXRCdWlsZGVyIH0gZnJvbSAnLi90b25XaGFsZXNWZXN0aW5nRGVwb3NpdEJ1aWxkZXInO1xuaW1wb3J0IHsgVG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vdG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGxldCBidWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNoZWNrVHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICBjaGVja1R4LmZyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuXG4gICAgICBsZXQgdHg6IFRyYW5zYWN0aW9uO1xuICAgICAgaWYgKGNoZWNrVHgudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbikge1xuICAgICAgICAvLyBJdCdzIGEgdG9rZW4gdHJhbnNhY3Rpb24sIHNvIHVzZSBUb2tlblRyYW5zYWN0aW9uIGZvciBwcm9wZXIgcGFyc2luZ1xuICAgICAgICB0eCA9IG5ldyBUb2tlblRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEl0J3MgYSByZWd1bGFyIHRyYW5zYWN0aW9uLCB1c2UgdGhlIGFscmVhZHkgcGFyc2VkIG9uZVxuICAgICAgICB0eCA9IGNoZWNrVHg7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICBidWlsZGVyID0gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2luZ2xlTm9taW5hdG9yV2l0aGRyYXc6XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0U2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbjpcbiAgICAgICAgICBidWlsZGVyID0gdGhpcy5nZXRUb2tlblRyYW5zZmVyQnVpbGRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Ub25XaGFsZXNEZXBvc2l0OlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc1dpdGhkcmF3YWw6XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0VG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzVmVzdGluZ0RlcG9zaXQ6XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0VG9uV2hhbGVzVmVzdGluZ0RlcG9zaXRCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd2FsOlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgICBidWlsZGVyLmZyb20ocmF3KTtcbiAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcigpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIFRPTiB3aXRoZHJhdyB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0U2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyKCk6IFNpbmdsZU5vbWluYXRvcldpdGhkcmF3QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBTaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIGJ1aWxkZXIgdG8gY3JlYXRlIGEgVE9OIHRva2VuIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRUb2tlblRyYW5zZmVyQnVpbGRlcigpOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgZ2V0VG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIoKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXRUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlcigpOiBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlcigpOiBUb25XaGFsZXNWZXN0aW5nRGVwb3NpdEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9uV2hhbGVzVmVzdGluZ0RlcG9zaXRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0VG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlcigpOiBUb25XaGFsZXNWZXN0aW5nV2l0aGRyYXdCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionExplanation.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionExplanation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,uBAAuB,CAAC,IAAI,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAChE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25FeHBsYW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25FeHBsYW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjxURmVlID0gYW55LCBUQW1vdW50ID0gYW55PiB7XG4gIGRpc3BsYXlPcmRlcjogc3RyaW5nW107XG4gIGlkOiBzdHJpbmc7XG4gIG91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICBvdXRwdXRBbW91bnQ6IFRBbW91bnQ7XG4gIGNoYW5nZU91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICBjaGFuZ2VBbW91bnQ6IFRBbW91bnQ7XG4gIGZlZTogVEZlZTtcbiAgcHJveHk/OiBzdHJpbmc7XG4gIHByb2R1Y2Vycz86IHN0cmluZ1tdO1xuICB3aXRoZHJhd0Ftb3VudD86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;CAI5C"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const transactionBuilder_1 = require("./transactionBuilder");
6
+ const transaction_1 = require("./transaction");
7
+ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
8
+ constructor(_coinConfig) {
9
+ super(_coinConfig);
10
+ this._transaction = new transaction_1.Transaction(_coinConfig);
11
+ }
12
+ get transactionType() {
13
+ return sdk_core_1.TransactionType.Send;
14
+ }
15
+ send(recipient) {
16
+ this.transaction.recipient = recipient;
17
+ return this;
18
+ }
19
+ }
20
+ exports.TransferBuilder = TransferBuilder;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOENBQTZEO0FBQzdELDZEQUEwRDtBQUMxRCwrQ0FBNEM7QUFFNUMsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUNyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFkRCwwQ0FjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBSZWNpcGllbnQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSByZWNpcGllbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,UAAO,EAAE,cAAc,UAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAY3G,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,MAAM;IAYhD,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ3D,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO3C,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB/E;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMtD;AAID;;;;;;;;GAQG;AAEH,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAgBhH;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -0,0 +1,159 @@
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.Utils = void 0;
7
+ exports.getFeeEstimate = getFeeEstimate;
8
+ const tonweb_1 = __importDefault(require("tonweb"));
9
+ const bn_js_1 = require("bn.js");
10
+ const sdk_core_1 = require("@bitgo/sdk-core");
11
+ const constants_1 = require("./constants");
12
+ class Utils {
13
+ /** @inheritdoc */
14
+ isValidAddress(address) {
15
+ try {
16
+ if (address.length != 48) {
17
+ return false;
18
+ }
19
+ Buffer.from(address, 'base64');
20
+ return true;
21
+ }
22
+ catch (e) {
23
+ return false;
24
+ }
25
+ }
26
+ /** @inheritdoc */
27
+ isValidBlockId(hash) {
28
+ try {
29
+ return Buffer.from(hash, 'base64').length === 32;
30
+ }
31
+ catch (e) {
32
+ return false;
33
+ }
34
+ }
35
+ /** @inheritdoc */
36
+ isValidPrivateKey(key) {
37
+ throw new Error('Method not implemented.');
38
+ }
39
+ /** @inheritdoc */
40
+ isValidPublicKey(key) {
41
+ return (0, sdk_core_1.isValidEd25519PublicKey)(key);
42
+ }
43
+ /** @inheritdoc */
44
+ isValidSignature(signature) {
45
+ throw new Error('Method not implemented.');
46
+ }
47
+ /** @inheritdoc */
48
+ isValidTransactionId(txId) {
49
+ try {
50
+ return Buffer.from(txId, 'base64').length === 32;
51
+ }
52
+ catch (e) {
53
+ return false;
54
+ }
55
+ }
56
+ async getAddressFromPublicKey(publicKey, bounceable = true, isUserFriendly = true) {
57
+ const tonweb = new tonweb_1.default(new tonweb_1.default.HttpProvider(''));
58
+ const WalletClass = tonweb.wallet.all['v4R2'];
59
+ const wallet = new WalletClass(tonweb.provider, {
60
+ publicKey: tonweb_1.default.utils.hexToBytes(publicKey),
61
+ wc: 0,
62
+ });
63
+ const address = await wallet.getAddress();
64
+ const legacyAddress = address.toString(isUserFriendly, true, bounceable);
65
+ return legacyAddress;
66
+ }
67
+ getAddress(address, bounceable = true) {
68
+ if (bounceable) {
69
+ return new tonweb_1.default.Address(address).isBounceable
70
+ ? address
71
+ : new tonweb_1.default.Address(address).toString(true, true, bounceable);
72
+ }
73
+ else {
74
+ return new tonweb_1.default.Address(address).isBounceable
75
+ ? new tonweb_1.default.Address(address).toString(true, true, bounceable)
76
+ : address;
77
+ }
78
+ }
79
+ async getMessageHashFromData(data) {
80
+ const cell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(data));
81
+ // this is need to be confirmed by ton team
82
+ const message = cell.refs[0].refs[0];
83
+ const hash = tonweb_1.default.utils.bytesToBase64(await message.hash());
84
+ return hash.toString();
85
+ }
86
+ getRawWalletAddressFromCell(data) {
87
+ const cell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(data));
88
+ const slice = cell.beginParse();
89
+ const address = slice.loadAddress();
90
+ return address.toString();
91
+ }
92
+ async getVestingContractAddress(params) {
93
+ const cell = new tonweb_1.default.boc.Cell();
94
+ cell.bits.writeUint(0, 32); //seq no
95
+ cell.bits.writeUint(params.subWalletId, 32);
96
+ cell.bits.writeBytes(tonweb_1.default.utils.hexToBytes(params.publicKeyHex));
97
+ cell.bits.writeUint(0, 1); // empty whitelist
98
+ const vestingParamsCell = new tonweb_1.default.boc.Cell();
99
+ vestingParamsCell.bits.writeUint(params.vestingStartTime, 64);
100
+ vestingParamsCell.bits.writeUint(params.vestingTotalDuration, 32);
101
+ vestingParamsCell.bits.writeUint(params.unlockPeriod, 32);
102
+ vestingParamsCell.bits.writeUint(params.cliffDuration, 32);
103
+ vestingParamsCell.bits.writeCoins(new bn_js_1.BN(params.vestingTotalAmount.toString()));
104
+ const senderAddress = new tonweb_1.default.Address(params.vestingSenderAddress);
105
+ vestingParamsCell.bits.writeAddress(senderAddress);
106
+ const ownerAddress = new tonweb_1.default.Address(params.ownerAddress);
107
+ vestingParamsCell.bits.writeAddress(ownerAddress);
108
+ cell.refs.push(vestingParamsCell);
109
+ const contractCodeCell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(constants_1.VESTING_CONTRACT_CODE_B64));
110
+ const stateInit = tonweb_1.default.Contract.createStateInit(contractCodeCell, cell);
111
+ const stateInitHash = await stateInit.hash();
112
+ const contractAddress = new tonweb_1.default.Address('0:' + tonweb_1.default.utils.bytesToHex(stateInitHash));
113
+ return contractAddress.toString(true, true, true);
114
+ }
115
+ /**
116
+ * Converts a TON address into a Base64 encoded BOC (Bag of Cells) string.
117
+ * This is required when passing an address as a 'slice' argument to `runGetMethod`.
118
+ * @param address - The TON address (friendly or raw)
119
+ * @returns Base64 string of the serialized address cell
120
+ */
121
+ async getAddressBoc(address) {
122
+ const cell = new tonweb_1.default.boc.Cell();
123
+ cell.bits.writeAddress(new tonweb_1.default.Address(address));
124
+ const boc = await cell.toBoc(false);
125
+ return tonweb_1.default.utils.bytesToBase64(boc);
126
+ }
127
+ }
128
+ exports.Utils = Utils;
129
+ const DUMMY_PRIVATE_KEY = '43e8594854cb53947c4a1a2fab926af11e123f6251dcd5bd0dfb100604186430'; // This dummy private key is used only for fee estimation
130
+ /**
131
+ * Function to estimate the fee for a transaction.
132
+ * This function uses the dummy private key exclusively for fee estimation.
133
+ * @param wallet - The wallet instance.
134
+ * @param toAddress - The destination address.
135
+ * @param amount - The amount to transfer.
136
+ * @param seqno - The sequence number for the transaction.
137
+ * @returns The estimated fee for the transaction.
138
+ */
139
+ async function getFeeEstimate(wallet, toAddress, amount, seqno) {
140
+ try {
141
+ const secretKey = tonweb_1.default.utils.stringToBytes(DUMMY_PRIVATE_KEY);
142
+ const feeEstimate = await wallet.methods
143
+ .transfer({
144
+ secretKey,
145
+ toAddress,
146
+ amount,
147
+ seqno,
148
+ sendMode: 1,
149
+ })
150
+ .estimateFee();
151
+ return feeEstimate;
152
+ }
153
+ catch (error) {
154
+ throw new Error(`Failed to estimate fee: ${error.message}`);
155
+ }
156
+ }
157
+ const utils = new Utils();
158
+ exports.default = utils;
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQTZJQSx3Q0FnQkM7QUE3SkQsb0RBQTRCO0FBQzVCLGlDQUEyQjtBQUMzQiw4Q0FBcUU7QUFDckUsMkNBQXdEO0FBRXhELE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7UUFDbkQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLElB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bkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxPQUFPLGdCQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUExSEQsc0JBMEhDO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxrRUFBa0UsQ0FBQyxDQUFDLHlEQUF5RDtBQUV2Sjs7Ozs7Ozs7R0FRRztBQUVJLEtBQUssVUFBVSxjQUFjLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEtBQWE7SUFDaEcsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTzthQUNyQyxRQUFRLENBQUM7WUFDUixTQUFTO1lBQ1QsU0FBUztZQUNULE1BQU07WUFDTixLQUFLO1lBQ0wsUUFBUSxFQUFFLENBQUM7U0FDWixDQUFDO2FBQ0QsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRvbldlYiBmcm9tICd0b253ZWInO1xuaW1wb3J0IHsgQk4gfSBmcm9tICdibi5qcyc7XG5pbXBvcnQgeyBCYXNlVXRpbHMsIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFZFU1RJTkdfQ09OVFJBQ1RfQ09ERV9CNjQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBWZXN0aW5nQ29udHJhY3RQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgaWYgKGFkZHJlc3MubGVuZ3RoICE9IDQ4KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIEJ1ZmZlci5mcm9tKGFkZHJlc3MsICdiYXNlNjQnKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShoYXNoLCAnYmFzZTY0JykubGVuZ3RoID09PSAzMjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20odHhJZCwgJ2Jhc2U2NCcpLmxlbmd0aCA9PT0gMzI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YmxpY0tleTogc3RyaW5nLCBib3VuY2VhYmxlID0gdHJ1ZSwgaXNVc2VyRnJpZW5kbHkgPSB0cnVlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB0b253ZWIgPSBuZXcgVG9uV2ViKG5ldyBUb25XZWIuSHR0cFByb3ZpZGVyKCcnKSk7XG4gICAgY29uc3QgV2FsbGV0Q2xhc3MgPSB0b253ZWIud2FsbGV0LmFsbFsndjRSMiddO1xuICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXRDbGFzcyh0b253ZWIucHJvdmlkZXIsIHtcbiAgICAgIHB1YmxpY0tleTogVG9uV2ViLnV0aWxzLmhleFRvQnl0ZXMocHVibGljS2V5KSxcbiAgICAgIHdjOiAwLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkZHJlc3MgPSBhd2FpdCB3YWxsZXQuZ2V0QWRkcmVzcygpO1xuICAgIGNvbnN0IGxlZ2FjeUFkZHJlc3MgPSBhZGRyZXNzLnRvU3RyaW5nKGlzVXNlckZyaWVuZGx5LCB0cnVlLCBib3VuY2VhYmxlKTtcbiAgICByZXR1cm4gbGVnYWN5QWRkcmVzcztcbiAgfVxuXG4gIGdldEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBib3VuY2VhYmxlID0gdHJ1ZSk6IHN0cmluZyB7XG4gICAgaWYgKGJvdW5jZWFibGUpIHtcbiAgICAgIHJldHVybiBuZXcgVG9uV2ViLkFkZHJlc3MoYWRkcmVzcykuaXNCb3VuY2VhYmxlXG4gICAgICAgID8gYWRkcmVzc1xuICAgICAgICA6IG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKS50b1N0cmluZyh0cnVlLCB0cnVlLCBib3VuY2VhYmxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKS5pc0JvdW5jZWFibGVcbiAgICAgICAgPyBuZXcgVG9uV2ViLkFkZHJlc3MoYWRkcmVzcykudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgYm91bmNlYWJsZSlcbiAgICAgICAgOiBhZGRyZXNzO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldE1lc3NhZ2VIYXNoRnJvbURhdGEoZGF0YTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjZWxsID0gVG9uV2ViLmJvYy5DZWxsLm9uZUZyb21Cb2MoVG9uV2ViLnV0aWxzLmJhc2U2NFRvQnl0ZXMoZGF0YSkpO1xuICAgIC8vIHRoaXMgaXMgbmVlZCB0byBiZSBjb25maXJtZWQgYnkgdG9uIHRlYW1cbiAgICBjb25zdCBtZXNzYWdlID0gY2VsbC5yZWZzWzBdLnJlZnNbMF07XG4gICAgY29uc3QgaGFzaCA9IFRvbldlYi51dGlscy5ieXRlc1RvQmFzZTY0KGF3YWl0IG1lc3NhZ2UuaGFzaCgpKTtcbiAgICByZXR1cm4gaGFzaC50b1N0cmluZygpO1xuICB9XG5cbiAgZ2V0UmF3V2FsbGV0QWRkcmVzc0Zyb21DZWxsKGRhdGE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2VsbCA9IFRvbldlYi5ib2MuQ2VsbC5vbmVGcm9tQm9jKFRvbldlYi51dGlscy5iYXNlNjRUb0J5dGVzKGRhdGEpKTtcbiAgICBjb25zdCBzbGljZSA9IChjZWxsIGFzIGFueSkuYmVnaW5QYXJzZSgpO1xuICAgIGNvbnN0IGFkZHJlc3MgPSBzbGljZS5sb2FkQWRkcmVzcygpO1xuICAgIHJldHVybiBhZGRyZXNzLnRvU3RyaW5nKCk7XG4gIH1cblxuICBhc3luYyBnZXRWZXN0aW5nQ29udHJhY3RBZGRyZXNzKHBhcmFtczogVmVzdGluZ0NvbnRyYWN0UGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjZWxsID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuICAgIGNlbGwuYml0cy53cml0ZVVpbnQoMCwgMzIpOyAvL3NlcSBub1xuICAgIGNlbGwuYml0cy53cml0ZVVpbnQocGFyYW1zLnN1YldhbGxldElkLCAzMik7XG4gICAgY2VsbC5iaXRzLndyaXRlQnl0ZXMoVG9uV2ViLnV0aWxzLmhleFRvQnl0ZXMocGFyYW1zLnB1YmxpY0tleUhleCkpO1xuICAgIGNlbGwuYml0cy53cml0ZVVpbnQoMCwgMSk7IC8vIGVtcHR5IHdoaXRlbGlzdFxuICAgIGNvbnN0IHZlc3RpbmdQYXJhbXNDZWxsID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuICAgIHZlc3RpbmdQYXJhbXNDZWxsLmJpdHMud3JpdGVVaW50KHBhcmFtcy52ZXN0aW5nU3RhcnRUaW1lLCA2NCk7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZVVpbnQocGFyYW1zLnZlc3RpbmdUb3RhbER1cmF0aW9uLCAzMik7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZVVpbnQocGFyYW1zLnVubG9ja1BlcmlvZCwgMzIpO1xuICAgIHZlc3RpbmdQYXJhbXNDZWxsLmJpdHMud3JpdGVVaW50KHBhcmFtcy5jbGlmZkR1cmF0aW9uLCAzMik7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZUNvaW5zKG5ldyBCTihwYXJhbXMudmVzdGluZ1RvdGFsQW1vdW50LnRvU3RyaW5nKCkpKTtcbiAgICBjb25zdCBzZW5kZXJBZGRyZXNzID0gbmV3IFRvbldlYi5BZGRyZXNzKHBhcmFtcy52ZXN0aW5nU2VuZGVyQWRkcmVzcyk7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZUFkZHJlc3Moc2VuZGVyQWRkcmVzcyk7XG4gICAgY29uc3Qgb3duZXJBZGRyZXNzID0gbmV3IFRvbldlYi5BZGRyZXNzKHBhcmFtcy5vd25lckFkZHJlc3MpO1xuICAgIHZlc3RpbmdQYXJhbXNDZWxsLmJpdHMud3JpdGVBZGRyZXNzKG93bmVyQWRkcmVzcyk7XG4gICAgY2VsbC5yZWZzLnB1c2godmVzdGluZ1BhcmFtc0NlbGwpO1xuICAgIGNvbnN0IGNvbnRyYWN0Q29kZUNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhWRVNUSU5HX0NPTlRSQUNUX0NPREVfQjY0KSk7XG4gICAgY29uc3Qgc3RhdGVJbml0ID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZVN0YXRlSW5pdChjb250cmFjdENvZGVDZWxsLCBjZWxsKTtcbiAgICBjb25zdCBzdGF0ZUluaXRIYXNoID0gYXdhaXQgc3RhdGVJbml0Lmhhc2goKTtcbiAgICBjb25zdCBjb250cmFjdEFkZHJlc3MgPSBuZXcgVG9uV2ViLkFkZHJlc3MoJzA6JyArIFRvbldlYi51dGlscy5ieXRlc1RvSGV4KHN0YXRlSW5pdEhhc2gpKTtcbiAgICByZXR1cm4gY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKHRydWUsIHRydWUsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgVE9OIGFkZHJlc3MgaW50byBhIEJhc2U2NCBlbmNvZGVkIEJPQyAoQmFnIG9mIENlbGxzKSBzdHJpbmcuXG4gICAqIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiBwYXNzaW5nIGFuIGFkZHJlc3MgYXMgYSAnc2xpY2UnIGFyZ3VtZW50IHRvIGBydW5HZXRNZXRob2RgLlxuICAgKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBUT04gYWRkcmVzcyAoZnJpZW5kbHkgb3IgcmF3KVxuICAgKiBAcmV0dXJucyBCYXNlNjQgc3RyaW5nIG9mIHRoZSBzZXJpYWxpemVkIGFkZHJlc3MgY2VsbFxuICAgKi9cbiAgYXN5bmMgZ2V0QWRkcmVzc0JvYyhhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNlbGwgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgY2VsbC5iaXRzLndyaXRlQWRkcmVzcyhuZXcgVG9uV2ViLkFkZHJlc3MoYWRkcmVzcykpO1xuICAgIGNvbnN0IGJvYyA9IGF3YWl0IGNlbGwudG9Cb2MoZmFsc2UpO1xuICAgIHJldHVybiBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChib2MpO1xuICB9XG59XG5cbmNvbnN0IERVTU1ZX1BSSVZBVEVfS0VZID0gJzQzZTg1OTQ4NTRjYjUzOTQ3YzRhMWEyZmFiOTI2YWYxMWUxMjNmNjI1MWRjZDViZDBkZmIxMDA2MDQxODY0MzAnOyAvLyBUaGlzIGR1bW15IHByaXZhdGUga2V5IGlzIHVzZWQgb25seSBmb3IgZmVlIGVzdGltYXRpb25cblxuLyoqXG4gKiBGdW5jdGlvbiB0byBlc3RpbWF0ZSB0aGUgZmVlIGZvciBhIHRyYW5zYWN0aW9uLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBkdW1teSBwcml2YXRlIGtleSBleGNsdXNpdmVseSBmb3IgZmVlIGVzdGltYXRpb24uXG4gKiBAcGFyYW0gd2FsbGV0IC0gVGhlIHdhbGxldCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB0b0FkZHJlc3MgLSBUaGUgZGVzdGluYXRpb24gYWRkcmVzcy5cbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IHRvIHRyYW5zZmVyLlxuICogQHBhcmFtIHNlcW5vIC0gVGhlIHNlcXVlbmNlIG51bWJlciBmb3IgdGhlIHRyYW5zYWN0aW9uLlxuICogQHJldHVybnMgVGhlIGVzdGltYXRlZCBmZWUgZm9yIHRoZSB0cmFuc2FjdGlvbi5cbiAqL1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RmVlRXN0aW1hdGUod2FsbGV0OiBhbnksIHRvQWRkcmVzczogc3RyaW5nLCBhbW91bnQ6IHN0cmluZywgc2Vxbm86IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc2VjcmV0S2V5ID0gVG9uV2ViLnV0aWxzLnN0cmluZ1RvQnl0ZXMoRFVNTVlfUFJJVkFURV9LRVkpO1xuICAgIGNvbnN0IGZlZUVzdGltYXRlID0gYXdhaXQgd2FsbGV0Lm1ldGhvZHNcbiAgICAgIC50cmFuc2Zlcih7XG4gICAgICAgIHNlY3JldEtleSxcbiAgICAgICAgdG9BZGRyZXNzLFxuICAgICAgICBhbW91bnQsXG4gICAgICAgIHNlcW5vLFxuICAgICAgICBzZW5kTW9kZTogMSxcbiAgICAgIH0pXG4gICAgICAuZXN0aW1hdGVGZWUoKTtcbiAgICByZXR1cm4gZmVlRXN0aW1hdGU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZXN0aW1hdGUgZmVlOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const ton_1 = require("./ton");
5
+ const tton_1 = require("./tton");
6
+ const jettonToken_1 = require("./jettonToken");
7
+ const register = (sdk) => {
8
+ sdk.register('ton', ton_1.Ton.createInstance);
9
+ sdk.register('tton', tton_1.Tton.createInstance);
10
+ jettonToken_1.JettonToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
11
+ sdk.register(name, coinConstructor);
12
+ });
13
+ };
14
+ exports.register = register;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUM5QiwrQ0FBNEM7QUFFckMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLHlCQUFXLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQzFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRvbiB9IGZyb20gJy4vdG9uJztcbmltcG9ydCB7IFR0b24gfSBmcm9tICcuL3R0b24nO1xuaW1wb3J0IHsgSmV0dG9uVG9rZW4gfSBmcm9tICcuL2pldHRvblRva2VuJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcigndG9uJywgVG9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgc2RrLnJlZ2lzdGVyKCd0dG9uJywgVHRvbi5jcmVhdGVJbnN0YW5jZSk7XG4gIEpldHRvblRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIHNkay5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcbn07XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../../src/ton.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,SAAS,EAGT,OAAO,EACP,YAAY,EACZ,YAAY,EAEZ,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EAExB,kBAAkB,EAClB,KAAK,EAIL,WAAW,EAEX,MAAM,EACN,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAMpE,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,GAAI,SAAQ,QAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACI,aAAa,IAAI,MAAM;IAIvB,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAI5B,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,eAAe,IAAI,YAAY;IAI/B,2BAA2B,IAAI,OAAO;IAItC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAelE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsErE,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBlE,gBAAgB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BtF,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAYvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAUxC,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI3E,kBAAkB;IACZ,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS/D,kBAAkB;IACZ,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8BtF,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,OAAO,CAAC,UAAU;IAIZ,OAAO,CACX,MAAM,EAAE,kBAAkB,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GACnF,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;IA+N/B;;;;;;;;OAQG;IACG,mCAAmC,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmD3F,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,uBAAuB;CAM5E"}