@bitgo/sdk-coin-ton 4.0.4 → 4.0.6

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,90 @@
1
+ import TonWeb from 'tonweb';
2
+ import { BN } from 'bn.js';
3
+ import { TransactionType } from '@bitgo/sdk-core';
4
+ import { Transaction } from './transaction';
5
+ import { JETTON_TRANSFER_OPCODE, WALLET_ID } from './constants';
6
+ export class TokenTransaction extends Transaction {
7
+ constructor(coinConfig) {
8
+ super(coinConfig);
9
+ }
10
+ toJson() {
11
+ const json = super.toJson();
12
+ return {
13
+ ...json,
14
+ forwardTonAmount: this.forwardTonAmount,
15
+ senderJettonWalletAddress: this.senderJettonWalletAddress,
16
+ tonAmount: this.tonAmount,
17
+ };
18
+ }
19
+ createJettonTransferPayload(jettonAmount, toAddress, forwardTonAmount, comment) {
20
+ const forwardPayload = new TonWeb.boc.Cell();
21
+ if (comment) {
22
+ forwardPayload.bits.writeUint(0, 32);
23
+ forwardPayload.bits.writeString(comment);
24
+ }
25
+ const payload = new TonWeb.boc.Cell();
26
+ payload.bits.writeUint(JETTON_TRANSFER_OPCODE, 32); // Store Jetton transfer op code
27
+ payload.bits.writeUint(0, 64); // query_id
28
+ payload.bits.writeCoins(new BN(jettonAmount)); // Jetton amount to transfer
29
+ payload.bits.writeAddress(new TonWeb.Address(toAddress)); // recipient's TON wallet address
30
+ payload.bits.writeAddress(new TonWeb.Address(this.sender)); // response_destination for sending excess TON (excess is returned back to the sender)
31
+ payload.bits.writeBit(false); // No custom payload
32
+ payload.bits.writeCoins(new BN(forwardTonAmount)); // forward_ton_amount to pay fees
33
+ payload.bits.writeBit(true); // Forward payload exists as a reference
34
+ payload.refs.push(forwardPayload); // Add forward payload as a reference
35
+ return payload;
36
+ }
37
+ async build() {
38
+ const jettonTransferPayload = this.createJettonTransferPayload(this.recipient.amount, this.recipient.address, this.forwardTonAmount, this.message);
39
+ const signingMessage = this.createSigningMessage(WALLET_ID, this.seqno, this.expireTime);
40
+ const sendMode = 3;
41
+ signingMessage.bits.writeUint8(sendMode);
42
+ const outMsg = this.createOutMsg(this.senderJettonWalletAddress, this.tonAmount, jettonTransferPayload);
43
+ signingMessage.refs.push(outMsg);
44
+ this.unsignedMessage = Buffer.from(await signingMessage.hash()).toString('hex');
45
+ const signature = this._signatures.length > 0 ? this._signatures[0] : Buffer.from(new Uint8Array(64)).toString('hex');
46
+ const finalMessage = await this.createExternalMessage(signingMessage, this.seqno, signature);
47
+ this.finalMessage = TonWeb.utils.bytesToBase64(await finalMessage.toBoc(false));
48
+ const originalTxId = TonWeb.utils.bytesToBase64(await finalMessage.hash());
49
+ this._id = originalTxId.replace(/\//g, '_').replace(/\+/g, '-');
50
+ }
51
+ fromRawTransaction(rawTransaction) {
52
+ try {
53
+ const cell = TonWeb.boc.Cell.oneFromBoc(TonWeb.utils.base64ToBytes(rawTransaction));
54
+ const parsed = this.parseTransaction(cell);
55
+ this.transactionType = TransactionType.SendToken;
56
+ this.sender = parsed.fromAddress;
57
+ this.recipient = { address: parsed.payload.jettonRecipient, amount: parsed.payload.jettonAmount };
58
+ this.tonAmount = parsed.value;
59
+ this.forwardTonAmount = parsed.payload.forwardTonAmount;
60
+ this.senderJettonWalletAddress = parsed.toAddress;
61
+ this.seqno = parsed.seqno;
62
+ this.publicKey = parsed.publicKey;
63
+ this.expireTime = parsed.expireAt;
64
+ this.message = parsed.payload.message;
65
+ this._signatures.push(parsed.signature);
66
+ this.bounceable = parsed.bounce;
67
+ }
68
+ catch (e) {
69
+ throw new Error('invalid raw transaction');
70
+ }
71
+ }
72
+ /** @inheritDoc */
73
+ explainTransaction() {
74
+ const displayOrder = ['id', 'outputs', 'outputAmount', 'changeOutputs', 'changeAmount', 'fee', 'withdrawAmount'];
75
+ const outputs = [this.recipient];
76
+ const outputAmount = this.recipient.amount;
77
+ const withdrawAmount = this.withdrawAmount;
78
+ return {
79
+ displayOrder,
80
+ id: this.id,
81
+ outputs,
82
+ outputAmount,
83
+ changeOutputs: [],
84
+ changeAmount: '0',
85
+ fee: { fee: 'UNKNOWN' },
86
+ withdrawAmount,
87
+ };
88
+ }
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9rZW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUUzQixPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUsvQyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixPQUFPO1lBQ0wsR0FBRyxJQUFJO1lBQ1AsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2Qyx5QkFBeUIsRUFBRSxJQUFJLENBQUMseUJBQXlCO1lBQ3pELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNoQixDQUFDO0lBQ2QsQ0FBQztJQUVPLDJCQUEyQixDQUNqQyxZQUFvQixFQUNwQixTQUFpQixFQUNqQixnQkFBd0IsRUFDeEIsT0FBZ0I7UUFFaEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0Ms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QVEsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDbEMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUVqSCxNQUFNLE9BQU8sR0FBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxPQUFPO1lBQ0wsWUFBWTtZQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU87WUFDUCxZQUFZO1lBQ1osYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEdBQUc7WUFDakIsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRTtZQUN2QixjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb25XZWIgZnJvbSAndG9ud2ViJztcbmltcG9ydCB7IEJOIH0gZnJvbSAnYm4uanMnO1xuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ3RvbndlYi9kaXN0L3R5cGVzL2JvYy9jZWxsJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEpFVFRPTl9UUkFOU0ZFUl9PUENPREUsIFdBTExFVF9JRCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRva2VuVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbiB7XG4gIHB1YmxpYyBmb3J3YXJkVG9uQW1vdW50OiBzdHJpbmc7IC8vIGZvciBjb3ZlcmluZyBmb3J3YXJkIGZlZXMgZm9yIG5vdGlmeSB0cmFuc2ZlclxuICBwdWJsaWMgc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzczogc3RyaW5nOyAvLyB0aGUgc2VuZGVyJ3MgSmV0dG9uIHdhbGxldCBhZGRyZXNzXG4gIHB1YmxpYyB0b25BbW91bnQ6IHN0cmluZzsgLy8gYW1vdW50IG9mIFRPTiBzZW50IHRvIHRoZSBzZW5kZXIncyBKZXR0b24gd2FsbGV0XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci50b0pzb24oKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uanNvbixcbiAgICAgIGZvcndhcmRUb25BbW91bnQ6IHRoaXMuZm9yd2FyZFRvbkFtb3VudCxcbiAgICAgIHNlbmRlckpldHRvbldhbGxldEFkZHJlc3M6IHRoaXMuc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzcyxcbiAgICAgIHRvbkFtb3VudDogdGhpcy50b25BbW91bnQsXG4gICAgfSBhcyBUeERhdGE7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUpldHRvblRyYW5zZmVyUGF5bG9hZChcbiAgICBqZXR0b25BbW91bnQ6IHN0cmluZyxcbiAgICB0b0FkZHJlc3M6IHN0cmluZyxcbiAgICBmb3J3YXJkVG9uQW1vdW50OiBzdHJpbmcsXG4gICAgY29tbWVudD86IHN0cmluZ1xuICApOiBDZWxsIHtcbiAgICBjb25zdCBmb3J3YXJkUGF5bG9hZCA9IG5ldyBUb25XZWIuYm9jLkNlbGwoKTtcbiAgICBpZiAoY29tbWVudCkge1xuICAgICAgZm9yd2FyZFBheWxvYWQuYml0cy53cml0ZVVpbnQoMCwgMzIpO1xuICAgICAgZm9yd2FyZFBheWxvYWQuYml0cy53cml0ZVN0cmluZyhjb21tZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlsb2FkID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuICAgIHBheWxvYWQuYml0cy53cml0ZVVpbnQoSkVUVE9OX1RSQU5TRkVSX09QQ09ERSwgMzIpOyAvLyBTdG9yZSBKZXR0b24gdHJhbnNmZXIgb3AgY29kZVxuICAgIHBheWxvYWQuYml0cy53cml0ZVVpbnQoMCwgNjQpOyAvLyBxdWVyeV9pZFxuICAgIHBheWxvYWQuYml0cy53cml0ZUNvaW5zKG5ldyBCTihqZXR0b25BbW91bnQpKTsgLy8gSmV0dG9uIGFtb3VudCB0byB0cmFuc2ZlclxuICAgIHBheWxvYWQuYml0cy53cml0ZUFkZHJlc3MobmV3IFRvbldlYi5BZGRyZXNzKHRvQWRkcmVzcykpOyAvLyByZWNpcGllbnQncyBUT04gd2FsbGV0IGFkZHJlc3NcbiAgICBwYXlsb2FkLmJpdHMud3JpdGVBZGRyZXNzKG5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnNlbmRlcikpOyAvLyByZXNwb25zZV9kZXN0aW5hdGlvbiBmb3Igc2VuZGluZyBleGNlc3MgVE9OIChleGNlc3MgaXMgcmV0dXJuZWQgYmFjayB0byB0aGUgc2VuZGVyKVxuICAgIHBheWxvYWQuYml0cy53cml0ZUJpdChmYWxzZSk7IC8vIE5vIGN1c3RvbSBwYXlsb2FkXG4gICAgcGF5bG9hZC5iaXRzLndyaXRlQ29pbnMobmV3IEJOKGZvcndhcmRUb25BbW91bnQpKTsgLy8gZm9yd2FyZF90b25fYW1vdW50IHRvIHBheSBmZWVzXG4gICAgcGF5bG9hZC5iaXRzLndyaXRlQml0KHRydWUpOyAvLyBGb3J3YXJkIHBheWxvYWQgZXhpc3RzIGFzIGEgcmVmZXJlbmNlXG4gICAgcGF5bG9hZC5yZWZzLnB1c2goZm9yd2FyZFBheWxvYWQpOyAvLyBBZGQgZm9yd2FyZCBwYXlsb2FkIGFzIGEgcmVmZXJlbmNlXG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGpldHRvblRyYW5zZmVyUGF5bG9hZCA9IHRoaXMuY3JlYXRlSmV0dG9uVHJhbnNmZXJQYXlsb2FkKFxuICAgICAgdGhpcy5yZWNpcGllbnQuYW1vdW50LFxuICAgICAgdGhpcy5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIHRoaXMuZm9yd2FyZFRvbkFtb3VudCxcbiAgICAgIHRoaXMubWVzc2FnZVxuICAgICk7XG5cbiAgICBjb25zdCBzaWduaW5nTWVzc2FnZSA9IHRoaXMuY3JlYXRlU2lnbmluZ01lc3NhZ2UoV0FMTEVUX0lELCB0aGlzLnNlcW5vLCB0aGlzLmV4cGlyZVRpbWUpO1xuICAgIGNvbnN0IHNlbmRNb2RlID0gMztcbiAgICBzaWduaW5nTWVzc2FnZS5iaXRzLndyaXRlVWludDgoc2VuZE1vZGUpO1xuICAgIGNvbnN0IG91dE1zZyA9IHRoaXMuY3JlYXRlT3V0TXNnKHRoaXMuc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzcywgdGhpcy50b25BbW91bnQsIGpldHRvblRyYW5zZmVyUGF5bG9hZCk7XG5cbiAgICBzaWduaW5nTWVzc2FnZS5yZWZzLnB1c2gob3V0TXNnKTtcbiAgICB0aGlzLnVuc2lnbmVkTWVzc2FnZSA9IEJ1ZmZlci5mcm9tKGF3YWl0IHNpZ25pbmdNZXNzYWdlLmhhc2goKSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlID1cbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMubGVuZ3RoID4gMCA/IHRoaXMuX3NpZ25hdHVyZXNbMF0gOiBCdWZmZXIuZnJvbShuZXcgVWludDhBcnJheSg2NCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBmaW5hbE1lc3NhZ2UgPSBhd2FpdCB0aGlzLmNyZWF0ZUV4dGVybmFsTWVzc2FnZShzaWduaW5nTWVzc2FnZSwgdGhpcy5zZXFubywgc2lnbmF0dXJlKTtcblxuICAgIHRoaXMuZmluYWxNZXNzYWdlID0gVG9uV2ViLnV0aWxzLmJ5dGVzVG9CYXNlNjQoYXdhaXQgZmluYWxNZXNzYWdlLnRvQm9jKGZhbHNlKSk7XG5cbiAgICBjb25zdCBvcmlnaW5hbFR4SWQgPSBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChhd2FpdCBmaW5hbE1lc3NhZ2UuaGFzaCgpKTtcbiAgICB0aGlzLl9pZCA9IG9yaWdpbmFsVHhJZC5yZXBsYWNlKC9cXC8vZywgJ18nKS5yZXBsYWNlKC9cXCsvZywgJy0nKTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhyYXdUcmFuc2FjdGlvbikpO1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVRyYW5zYWN0aW9uKGNlbGwpO1xuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uVHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW47XG4gICAgICB0aGlzLnNlbmRlciA9IHBhcnNlZC5mcm9tQWRkcmVzcztcbiAgICAgIHRoaXMucmVjaXBpZW50ID0geyBhZGRyZXNzOiBwYXJzZWQucGF5bG9hZC5qZXR0b25SZWNpcGllbnQsIGFtb3VudDogcGFyc2VkLnBheWxvYWQuamV0dG9uQW1vdW50IH07XG4gICAgICB0aGlzLnRvbkFtb3VudCA9IHBhcnNlZC52YWx1ZTtcbiAgICAgIHRoaXMuZm9yd2FyZFRvbkFtb3VudCA9IHBhcnNlZC5wYXlsb2FkLmZvcndhcmRUb25BbW91bnQ7XG4gICAgICB0aGlzLnNlbmRlckpldHRvbldhbGxldEFkZHJlc3MgPSBwYXJzZWQudG9BZGRyZXNzO1xuICAgICAgdGhpcy5zZXFubyA9IHBhcnNlZC5zZXFubztcbiAgICAgIHRoaXMucHVibGljS2V5ID0gcGFyc2VkLnB1YmxpY0tleSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLmV4cGlyZVRpbWUgPSBwYXJzZWQuZXhwaXJlQXQ7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSBwYXJzZWQucGF5bG9hZC5tZXNzYWdlO1xuICAgICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHBhcnNlZC5zaWduYXR1cmUpO1xuICAgICAgdGhpcy5ib3VuY2VhYmxlID0gcGFyc2VkLmJvdW5jZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ2lkJywgJ291dHB1dHMnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZU91dHB1dHMnLCAnY2hhbmdlQW1vdW50JywgJ2ZlZScsICd3aXRoZHJhd0Ftb3VudCddO1xuXG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFt0aGlzLnJlY2lwaWVudF07XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gdGhpcy5yZWNpcGllbnQuYW1vdW50O1xuICAgIGNvbnN0IHdpdGhkcmF3QW1vdW50ID0gdGhpcy53aXRoZHJhd0Ftb3VudDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICdVTktOT1dOJyB9LFxuICAgICAgd2l0aGRyYXdBbW91bnQsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { TransactionType, Recipient } from '@bitgo/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { TokenTransaction } from './tokenTransaction';
5
+ import { Transaction } from './transaction';
6
+ export declare class TokenTransferBuilder extends TransactionBuilder {
7
+ protected _transaction: TokenTransaction;
8
+ constructor(coinConfig: Readonly<CoinConfig>);
9
+ protected get transactionType(): TransactionType;
10
+ /** @inheritdoc */
11
+ protected fromImplementation(rawTransaction: string): Transaction;
12
+ /** @inheritdoc */
13
+ protected buildImplementation(): Promise<Transaction>;
14
+ setForwardTonAmount(amount: string): TokenTransferBuilder;
15
+ setSenderJettonWalletAddress(address: string): TokenTransferBuilder;
16
+ setTonAmount(amount: string): TokenTransferBuilder;
17
+ recipient(address: string, senderJettonWalletAddress: string, tonAmount: string, jettonAmount: string, forwardTonAmount: string): TokenTransferBuilder;
18
+ send(recipient: Recipient): TokenTransferBuilder;
19
+ }
20
+ //# sourceMappingURL=tokenTransferBuilder.d.ts.map
@@ -0,0 +1,53 @@
1
+ import { TransactionType } from '@bitgo/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { TokenTransaction } from './tokenTransaction';
4
+ export class TokenTransferBuilder extends TransactionBuilder {
5
+ constructor(coinConfig) {
6
+ super(coinConfig);
7
+ this._transaction = new TokenTransaction(coinConfig);
8
+ }
9
+ get transactionType() {
10
+ return TransactionType.SendToken;
11
+ }
12
+ /** @inheritdoc */
13
+ fromImplementation(rawTransaction) {
14
+ this.transaction.transactionType = TransactionType.SendToken;
15
+ this.transaction.fromRawTransaction(rawTransaction);
16
+ return this.transaction;
17
+ }
18
+ /** @inheritdoc */
19
+ async buildImplementation() {
20
+ this.transaction.transactionType = TransactionType.SendToken;
21
+ await this.transaction.build();
22
+ this.transaction.loadInputsAndOutputs();
23
+ return this.transaction;
24
+ }
25
+ setForwardTonAmount(amount) {
26
+ this.transaction.forwardTonAmount = amount;
27
+ return this;
28
+ }
29
+ setSenderJettonWalletAddress(address) {
30
+ this.transaction.senderJettonWalletAddress = address;
31
+ return this;
32
+ }
33
+ setTonAmount(amount) {
34
+ this.transaction.tonAmount = amount;
35
+ return this;
36
+ }
37
+ // recipient method to handle both TON and token amounts
38
+ recipient(address, senderJettonWalletAddress, tonAmount, jettonAmount, forwardTonAmount) {
39
+ this._transaction.recipient = {
40
+ address: address,
41
+ amount: jettonAmount, // Jetton amount to be transferred
42
+ };
43
+ this._transaction.senderJettonWalletAddress = senderJettonWalletAddress; // The sender's Jetton wallet address
44
+ this._transaction.tonAmount = tonAmount; // TON amount sent to the sender's Jetton wallet
45
+ this._transaction.forwardTonAmount = forwardTonAmount; // TON amount to cover forward fees in case of notify transfer
46
+ return this;
47
+ }
48
+ send(recipient) {
49
+ this.transaction.recipient = recipient;
50
+ return this;
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd0RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBRzFELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQzdELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxXQUFnQyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxPQUFlO1FBQ3pDLElBQUksQ0FBQyxXQUFnQyxDQUFDLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN4QixJQUFJLENBQUMsV0FBZ0MsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxTQUFTLENBQ1AsT0FBZSxFQUNmLHlCQUFpQyxFQUNqQyxTQUFpQixFQUNqQixZQUFvQixFQUNwQixnQkFBd0I7UUFFeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUc7WUFDNUIsT0FBTyxFQUFFLE9BQU87WUFDaEIsTUFBTSxFQUFFLFlBQVksRUFBRSxrQ0FBa0M7U0FDekQsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFpQyxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDLENBQUMscUNBQXFDO1FBQ25JLElBQUksQ0FBQyxZQUFpQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxnREFBZ0Q7UUFDOUcsSUFBSSxDQUFDLFlBQWlDLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyw4REFBOEQ7UUFDM0ksT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQW9CO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zYWN0aW9uIH0gZnJvbSAnLi90b2tlblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBUb2tlblRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRva2VuVHJhbnNhY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUb2tlblRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuO1xuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb24uYnVpbGQoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRGb3J3YXJkVG9uQW1vdW50KGFtb3VudDogc3RyaW5nKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgICh0aGlzLnRyYW5zYWN0aW9uIGFzIFRva2VuVHJhbnNhY3Rpb24pLmZvcndhcmRUb25BbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRTZW5kZXJKZXR0b25XYWxsZXRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICAodGhpcy50cmFuc2FjdGlvbiBhcyBUb2tlblRyYW5zYWN0aW9uKS5zZW5kZXJKZXR0b25XYWxsZXRBZGRyZXNzID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldFRvbkFtb3VudChhbW91bnQ6IHN0cmluZyk6IFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICAodGhpcy50cmFuc2FjdGlvbiBhcyBUb2tlblRyYW5zYWN0aW9uKS50b25BbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyByZWNpcGllbnQgbWV0aG9kIHRvIGhhbmRsZSBib3RoIFRPTiBhbmQgdG9rZW4gYW1vdW50c1xuICByZWNpcGllbnQoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIHNlbmRlckpldHRvbldhbGxldEFkZHJlc3M6IHN0cmluZyxcbiAgICB0b25BbW91bnQ6IHN0cmluZyxcbiAgICBqZXR0b25BbW91bnQ6IHN0cmluZyxcbiAgICBmb3J3YXJkVG9uQW1vdW50OiBzdHJpbmdcbiAgKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHtcbiAgICAgIGFkZHJlc3M6IGFkZHJlc3MsXG4gICAgICBhbW91bnQ6IGpldHRvbkFtb3VudCwgLy8gSmV0dG9uIGFtb3VudCB0byBiZSB0cmFuc2ZlcnJlZFxuICAgIH07XG4gICAgKHRoaXMuX3RyYW5zYWN0aW9uIGFzIFRva2VuVHJhbnNhY3Rpb24pLnNlbmRlckpldHRvbldhbGxldEFkZHJlc3MgPSBzZW5kZXJKZXR0b25XYWxsZXRBZGRyZXNzOyAvLyBUaGUgc2VuZGVyJ3MgSmV0dG9uIHdhbGxldCBhZGRyZXNzXG4gICAgKHRoaXMuX3RyYW5zYWN0aW9uIGFzIFRva2VuVHJhbnNhY3Rpb24pLnRvbkFtb3VudCA9IHRvbkFtb3VudDsgLy8gVE9OIGFtb3VudCBzZW50IHRvIHRoZSBzZW5kZXIncyBKZXR0b24gd2FsbGV0XG4gICAgKHRoaXMuX3RyYW5zYWN0aW9uIGFzIFRva2VuVHJhbnNhY3Rpb24pLmZvcndhcmRUb25BbW91bnQgPSBmb3J3YXJkVG9uQW1vdW50OyAvLyBUT04gYW1vdW50IHRvIGNvdmVyIGZvcndhcmQgZmVlcyBpbiBjYXNlIG9mIG5vdGlmeSB0cmFuc2ZlclxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHJlY2lwaWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { Recipient, TransactionType } from '@bitgo/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ export declare class TonWhalesDepositBuilder extends TransactionBuilder {
5
+ constructor(_coinConfig: Readonly<CoinConfig>);
6
+ protected get transactionType(): TransactionType;
7
+ setDepositMessage(queryId?: string): TonWhalesDepositBuilder;
8
+ setDepositAmount(amount: string): TonWhalesDepositBuilder;
9
+ send(recipient: Recipient): TonWhalesDepositBuilder;
10
+ setMessage(msg: string): TonWhalesDepositBuilder;
11
+ }
12
+ //# sourceMappingURL=tonWhalesDepositBuilder.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { TransactionType } from '@bitgo/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { Transaction } from './transaction';
4
+ import { TON_WHALES_DEPOSIT_OPCODE } from './constants';
5
+ export class TonWhalesDepositBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig) {
7
+ super(_coinConfig);
8
+ this._transaction = new Transaction(_coinConfig);
9
+ }
10
+ get transactionType() {
11
+ return TransactionType.TonWhalesDeposit;
12
+ }
13
+ setDepositMessage(queryId) {
14
+ // Deposit payload is just OpCode + QueryId.
15
+ // The Amount is in the transaction value (recipient.amount)
16
+ // The Gas Limit is hardcoded in Transaction.ts build()
17
+ const qId = queryId || '0000000000000000';
18
+ this.transaction.message = TON_WHALES_DEPOSIT_OPCODE + qId;
19
+ return this;
20
+ }
21
+ setDepositAmount(amount) {
22
+ if (!this.transaction.recipient) {
23
+ this.transaction.recipient = { address: '', amount: amount };
24
+ }
25
+ else {
26
+ this.transaction.recipient.amount = amount;
27
+ }
28
+ return this;
29
+ }
30
+ send(recipient) {
31
+ this.transaction.recipient = recipient;
32
+ return this;
33
+ }
34
+ setMessage(msg) {
35
+ throw new Error('Method not implemented.');
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RvbldoYWxlc0RlcG9zaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsa0JBQWtCO0lBQzdELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMsNENBQTRDO1FBQzVDLDREQUE0RDtRQUM1RCx1REFBdUQ7UUFDdkQsTUFBTSxHQUFHLEdBQUcsT0FBTyxJQUFJLGtCQUFrQixDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRPTl9XSEFMRVNfREVQT1NJVF9PUENPREUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzRGVwb3NpdDtcbiAgfVxuXG4gIHNldERlcG9zaXRNZXNzYWdlKHF1ZXJ5SWQ/OiBzdHJpbmcpOiBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciB7XG4gICAgLy8gRGVwb3NpdCBwYXlsb2FkIGlzIGp1c3QgT3BDb2RlICsgUXVlcnlJZC5cbiAgICAvLyBUaGUgQW1vdW50IGlzIGluIHRoZSB0cmFuc2FjdGlvbiB2YWx1ZSAocmVjaXBpZW50LmFtb3VudClcbiAgICAvLyBUaGUgR2FzIExpbWl0IGlzIGhhcmRjb2RlZCBpbiBUcmFuc2FjdGlvbi50cyBidWlsZCgpXG4gICAgY29uc3QgcUlkID0gcXVlcnlJZCB8fCAnMDAwMDAwMDAwMDAwMDAwMCc7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5tZXNzYWdlID0gVE9OX1dIQUxFU19ERVBPU0lUX09QQ09ERSArIHFJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldERlcG9zaXRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSB7IGFkZHJlc3M6ICcnLCBhbW91bnQ6IGFtb3VudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQgPSBhbW91bnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHJlY2lwaWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldE1lc3NhZ2UobXNnOiBzdHJpbmcpOiBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { Recipient, TransactionType } from '@bitgo/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ export declare class TonWhalesVestingDepositBuilder extends TransactionBuilder {
5
+ constructor(_coinConfig: Readonly<CoinConfig>);
6
+ protected get transactionType(): TransactionType;
7
+ setDepositMessage(): TonWhalesVestingDepositBuilder;
8
+ setDepositAmount(amount: string): TonWhalesVestingDepositBuilder;
9
+ send(recipient: Recipient): TonWhalesVestingDepositBuilder;
10
+ setMessage(msg: string): TonWhalesVestingDepositBuilder;
11
+ }
12
+ //# sourceMappingURL=tonWhalesVestingDepositBuilder.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { TransactionType } from '@bitgo/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { Transaction } from './transaction';
4
+ export class TonWhalesVestingDepositBuilder extends TransactionBuilder {
5
+ constructor(_coinConfig) {
6
+ super(_coinConfig);
7
+ this._transaction = new Transaction(_coinConfig);
8
+ }
9
+ get transactionType() {
10
+ return TransactionType.TonWhalesVestingDeposit;
11
+ }
12
+ setDepositMessage() {
13
+ this.transaction.message = 'Deposit';
14
+ return this;
15
+ }
16
+ setDepositAmount(amount) {
17
+ if (!this.transaction.recipient) {
18
+ this.transaction.recipient = { address: '', amount: amount };
19
+ }
20
+ else {
21
+ this.transaction.recipient.amount = amount;
22
+ }
23
+ return this;
24
+ }
25
+ send(recipient) {
26
+ this.transaction.recipient = recipient;
27
+ return this;
28
+ }
29
+ setMessage(msg) {
30
+ throw new Error('Method not implemented. Use setDepositMessage() instead.');
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzVmVzdGluZ0RlcG9zaXRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b25XaGFsZXNWZXN0aW5nRGVwb3NpdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUFrQjtJQUNwRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFjLGVBQWU7UUFDM0IsT0FBTyxlQUFlLENBQUMsdUJBQXVCLENBQUM7SUFDakQsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0O1xuICB9XG4gIHNldERlcG9zaXRNZXNzYWdlKCk6IFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5tZXNzYWdlID0gJ0RlcG9zaXQnO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0RGVwb3NpdEFtb3VudChhbW91bnQ6IHN0cmluZyk6IFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSB7IGFkZHJlc3M6ICcnLCBhbW91bnQ6IGFtb3VudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQgPSBhbW91bnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSByZWNpcGllbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgc2V0TWVzc2FnZShtc2c6IHN0cmluZyk6IFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLiBVc2Ugc2V0RGVwb3NpdE1lc3NhZ2UoKSBpbnN0ZWFkLicpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { Recipient, TransactionType } from '@bitgo/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ export declare class TonWhalesVestingWithdrawBuilder extends TransactionBuilder {
5
+ constructor(_coinConfig: Readonly<CoinConfig>);
6
+ protected get transactionType(): TransactionType;
7
+ setWithdrawMessage(): TonWhalesVestingWithdrawBuilder;
8
+ setForwardAmount(amount: string): TonWhalesVestingWithdrawBuilder;
9
+ send(recipient: Recipient): TonWhalesVestingWithdrawBuilder;
10
+ setMessage(msg: string): TonWhalesVestingWithdrawBuilder;
11
+ }
12
+ //# sourceMappingURL=tonWhalesVestingWithdrawBuilder.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { TransactionType } from '@bitgo/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { Transaction } from './transaction';
4
+ export class TonWhalesVestingWithdrawBuilder extends TransactionBuilder {
5
+ constructor(_coinConfig) {
6
+ super(_coinConfig);
7
+ this._transaction = new Transaction(_coinConfig);
8
+ }
9
+ get transactionType() {
10
+ return TransactionType.TonWhalesVestingWithdrawal;
11
+ }
12
+ setWithdrawMessage() {
13
+ this.transaction.message = 'Withdraw';
14
+ return this;
15
+ }
16
+ setForwardAmount(amount) {
17
+ if (!this.transaction.recipient) {
18
+ this.transaction.recipient = { address: '', amount: amount };
19
+ }
20
+ else {
21
+ this.transaction.recipient.amount = amount;
22
+ }
23
+ return this;
24
+ }
25
+ send(recipient) {
26
+ this.transaction.recipient = recipient;
27
+ return this;
28
+ }
29
+ setMessage(msg) {
30
+ throw new Error('Method not implemented. Use setWithdrawMessage() instead.');
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCO0lBQ3JFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQywwQkFBMEIsQ0FBQztJQUNwRCxDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUMvRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5Ub25XaGFsZXNWZXN0aW5nV2l0aGRyYXdhbDtcbiAgfVxuICBzZXRXaXRoZHJhd01lc3NhZ2UoKTogVG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5tZXNzYWdlID0gJ1dpdGhkcmF3JztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldEZvcndhcmRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBUb25XaGFsZXNWZXN0aW5nV2l0aGRyYXdCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50KSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHsgYWRkcmVzczogJycsIGFtb3VudDogYW1vdW50IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50LmFtb3VudCA9IGFtb3VudDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZW5kKHJlY2lwaWVudDogUmVjaXBpZW50KTogVG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSByZWNpcGllbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgc2V0TWVzc2FnZShtc2c6IHN0cmluZyk6IFRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXIge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4gVXNlIHNldFdpdGhkcmF3TWVzc2FnZSgpIGluc3RlYWQuJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { Recipient, TransactionType } from '@bitgo/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ export declare class TonWhalesWithdrawalBuilder extends TransactionBuilder {
5
+ constructor(_coinConfig: Readonly<CoinConfig>);
6
+ protected get transactionType(): TransactionType;
7
+ /**
8
+ * Sets the payload for the withdrawal request.
9
+ * Structure: OpCode (32) + QueryId (64) + GasLimit (Coins) + UnstakeAmount (Coins)
10
+ * * @param unstakeAmount The amount of NanoTON to unstake (inside payload)
11
+ * @param unstakeAmount The amount to unstake
12
+ * @param queryId Optional custom query ID
13
+ */
14
+ setWithdrawalMessage(unstakeAmount: string, queryId?: string): TonWhalesWithdrawalBuilder;
15
+ /**
16
+ * Sets the message to withdraw EVERYTHING from the pool.
17
+ * This sets the unstakeAmount to "0", which is the specific signal for full withdrawal.
18
+ */
19
+ setFullWithdrawalMessage(queryId?: string): TonWhalesWithdrawalBuilder;
20
+ /**
21
+ * Sets the value attached to the transaction (The Fees).
22
+ * NOTE: This is NOT the unstake amount. This is the fee paid to the pool
23
+ * to process the request (e.g. withdrawFee + receiptPrice).
24
+ * * @param amount NanoTON amount to attach to the message
25
+ */
26
+ setForwardAmount(amount: string): TonWhalesWithdrawalBuilder;
27
+ send(recipient: Recipient): TonWhalesWithdrawalBuilder;
28
+ setMessage(msg: string): TonWhalesWithdrawalBuilder;
29
+ }
30
+ //# sourceMappingURL=tonWhalesWithdrawalBuilder.d.ts.map
@@ -0,0 +1,56 @@
1
+ import { TransactionType } from '@bitgo/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { Transaction } from './transaction';
4
+ import { TON_WHALES_WITHDRAW_OPCODE } from './constants';
5
+ export class TonWhalesWithdrawalBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig) {
7
+ super(_coinConfig);
8
+ this._transaction = new Transaction(_coinConfig);
9
+ }
10
+ get transactionType() {
11
+ return TransactionType.TonWhalesWithdrawal;
12
+ }
13
+ /**
14
+ * Sets the payload for the withdrawal request.
15
+ * Structure: OpCode (32) + QueryId (64) + GasLimit (Coins) + UnstakeAmount (Coins)
16
+ * * @param unstakeAmount The amount of NanoTON to unstake (inside payload)
17
+ * @param unstakeAmount The amount to unstake
18
+ * @param queryId Optional custom query ID
19
+ */
20
+ setWithdrawalMessage(unstakeAmount, queryId) {
21
+ const qId = queryId || '0000000000000000';
22
+ this.transaction.withdrawAmount = unstakeAmount;
23
+ this.transaction.message = TON_WHALES_WITHDRAW_OPCODE + qId + unstakeAmount;
24
+ return this;
25
+ }
26
+ /**
27
+ * Sets the message to withdraw EVERYTHING from the pool.
28
+ * This sets the unstakeAmount to "0", which is the specific signal for full withdrawal.
29
+ */
30
+ setFullWithdrawalMessage(queryId) {
31
+ return this.setWithdrawalMessage('0', queryId);
32
+ }
33
+ /**
34
+ * Sets the value attached to the transaction (The Fees).
35
+ * NOTE: This is NOT the unstake amount. This is the fee paid to the pool
36
+ * to process the request (e.g. withdrawFee + receiptPrice).
37
+ * * @param amount NanoTON amount to attach to the message
38
+ */
39
+ setForwardAmount(amount) {
40
+ if (!this.transaction.recipient) {
41
+ this.transaction.recipient = { address: '', amount: amount };
42
+ }
43
+ else {
44
+ this.transaction.recipient.amount = amount;
45
+ }
46
+ return this;
47
+ }
48
+ send(recipient) {
49
+ this.transaction.recipient = recipient;
50
+ return this;
51
+ }
52
+ setMessage(msg) {
53
+ throw new Error('Use setWithdrawalMessage for specific payload construction');
54
+ }
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsa0JBQWtCO0lBQ2hFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsb0JBQW9CLENBQUMsYUFBcUIsRUFBRSxPQUFnQjtRQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLElBQUksa0JBQWtCLENBQUM7UUFFMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLDBCQUEwQixHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsd0JBQXdCLENBQUMsT0FBZ0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMvRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBSZWNpcGllbnQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzV2l0aGRyYXdhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXlsb2FkIGZvciB0aGUgd2l0aGRyYXdhbCByZXF1ZXN0LlxuICAgKiBTdHJ1Y3R1cmU6IE9wQ29kZSAoMzIpICsgUXVlcnlJZCAoNjQpICsgR2FzTGltaXQgKENvaW5zKSArIFVuc3Rha2VBbW91bnQgKENvaW5zKVxuICAgKiAqIEBwYXJhbSB1bnN0YWtlQW1vdW50IFRoZSBhbW91bnQgb2YgTmFub1RPTiB0byB1bnN0YWtlIChpbnNpZGUgcGF5bG9hZClcbiAgICogQHBhcmFtIHVuc3Rha2VBbW91bnQgVGhlIGFtb3VudCB0byB1bnN0YWtlXG4gICAqIEBwYXJhbSBxdWVyeUlkIE9wdGlvbmFsIGN1c3RvbSBxdWVyeSBJRFxuICAgKi9cbiAgc2V0V2l0aGRyYXdhbE1lc3NhZ2UodW5zdGFrZUFtb3VudDogc3RyaW5nLCBxdWVyeUlkPzogc3RyaW5nKTogVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIge1xuICAgIGNvbnN0IHFJZCA9IHF1ZXJ5SWQgfHwgJzAwMDAwMDAwMDAwMDAwMDAnO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi53aXRoZHJhd0Ftb3VudCA9IHVuc3Rha2VBbW91bnQ7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5tZXNzYWdlID0gVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUgKyBxSWQgKyB1bnN0YWtlQW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1lc3NhZ2UgdG8gd2l0aGRyYXcgRVZFUllUSElORyBmcm9tIHRoZSBwb29sLlxuICAgKiBUaGlzIHNldHMgdGhlIHVuc3Rha2VBbW91bnQgdG8gXCIwXCIsIHdoaWNoIGlzIHRoZSBzcGVjaWZpYyBzaWduYWwgZm9yIGZ1bGwgd2l0aGRyYXdhbC5cbiAgICovXG4gIHNldEZ1bGxXaXRoZHJhd2FsTWVzc2FnZShxdWVyeUlkPzogc3RyaW5nKTogVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnNldFdpdGhkcmF3YWxNZXNzYWdlKCcwJywgcXVlcnlJZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgYXR0YWNoZWQgdG8gdGhlIHRyYW5zYWN0aW9uIChUaGUgRmVlcykuXG4gICAqIE5PVEU6IFRoaXMgaXMgTk9UIHRoZSB1bnN0YWtlIGFtb3VudC4gVGhpcyBpcyB0aGUgZmVlIHBhaWQgdG8gdGhlIHBvb2xcbiAgICogdG8gcHJvY2VzcyB0aGUgcmVxdWVzdCAoZS5nLiB3aXRoZHJhd0ZlZSArIHJlY2VpcHRQcmljZSkuXG4gICAqICogQHBhcmFtIGFtb3VudCBOYW5vVE9OIGFtb3VudCB0byBhdHRhY2ggdG8gdGhlIG1lc3NhZ2VcbiAgICovXG4gIHNldEZvcndhcmRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSB7IGFkZHJlc3M6ICcnLCBhbW91bnQ6IGFtb3VudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQgPSBhbW91bnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IFRvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHJlY2lwaWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldE1lc3NhZ2UobXNnOiBzdHJpbmcpOiBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2Ugc2V0V2l0aGRyYXdhbE1lc3NhZ2UgZm9yIHNwZWNpZmljIHBheWxvYWQgY29uc3RydWN0aW9uJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { Cell } from 'tonweb/dist/types/boc/cell';
2
+ import { BaseKey, BaseTransaction, Recipient, TransactionType } from '@bitgo/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
4
+ import { TransactionExplanation, TxData } from './iface';
5
+ export declare class Transaction extends BaseTransaction {
6
+ recipient: Recipient;
7
+ bounceable: boolean;
8
+ fromAddressBounceable: boolean;
9
+ toAddressBounceable: boolean;
10
+ message: string;
11
+ withdrawAmount: string;
12
+ seqno: number;
13
+ expireTime: number;
14
+ sender: string;
15
+ publicKey: string;
16
+ isV3ContractMessage: boolean;
17
+ sub_wallet_id: number;
18
+ protected unsignedMessage: string;
19
+ protected finalMessage: string;
20
+ constructor(coinConfig: Readonly<CoinConfig>);
21
+ canSign(key: BaseKey): boolean;
22
+ toBroadcastFormat(): string;
23
+ toJson(): TxData;
24
+ get signablePayload(): Buffer;
25
+ /**
26
+ * Set the transaction type.
27
+ * @param {TransactionType} transactionType The transaction type to be set.
28
+ */
29
+ set transactionType(transactionType: TransactionType);
30
+ build(): Promise<void>;
31
+ protected createSigningMessage(walletId: any, seqno: any, expireAt: any): Cell;
32
+ protected createOutMsg(address: any, amount: any, payload: any): Cell;
33
+ createExternalMessage(signingMessage: Cell, seqno: number, signature: string): Promise<Cell>;
34
+ loadInputsAndOutputs(): void;
35
+ fromRawTransaction(rawTransaction: string): void;
36
+ /** @inheritDoc */
37
+ explainTransaction(): TransactionExplanation;
38
+ protected parseTransaction(cell: Cell): any;
39
+ private parseTransactionBody;
40
+ private parseTransferStateInit;
41
+ }
42
+ //# sourceMappingURL=transaction.d.ts.map