@ton-wallet/create 14.0.5 → 14.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 (123) hide show
  1. package/package.json +1 -2
  2. package/dist/client/TonClient.d.ts +0 -228
  3. package/dist/client/TonClient.js +0 -441
  4. package/dist/client/TonClient.spec.d.ts +0 -1
  5. package/dist/client/TonClient.spec.js +0 -45
  6. package/dist/client/TonClient4.d.ts +0 -1130
  7. package/dist/client/TonClient4.js +0 -687
  8. package/dist/client/TonClient4.spec.d.ts +0 -1
  9. package/dist/client/TonClient4.spec.js +0 -42
  10. package/dist/client/api/HttpApi.d.ts +0 -764
  11. package/dist/client/api/HttpApi.js +0 -306
  12. package/dist/client/api/TonCache.d.ts +0 -16
  13. package/dist/client/api/TonCache.js +0 -33
  14. package/dist/config/ConfigParser.d.ts +0 -622
  15. package/dist/config/ConfigParser.js +0 -711
  16. package/dist/config/ConfigParser.spec.d.ts +0 -8
  17. package/dist/config/ConfigParser.spec.js +0 -97
  18. package/dist/elector/ElectorContract.d.ts +0 -51
  19. package/dist/elector/ElectorContract.js +0 -192
  20. package/dist/elector/ElectorContract.spec.d.ts +0 -8
  21. package/dist/elector/ElectorContract.spec.js +0 -104
  22. package/dist/index.d.ts +0 -32
  23. package/dist/index.js +0 -129
  24. package/dist/jetton/JettonMaster.d.ts +0 -21
  25. package/dist/jetton/JettonMaster.js +0 -39
  26. package/dist/jetton/JettonMaster.spec.d.ts +0 -8
  27. package/dist/jetton/JettonMaster.spec.js +0 -27
  28. package/dist/jetton/JettonWallet.d.ts +0 -14
  29. package/dist/jetton/JettonWallet.js +0 -27
  30. package/dist/multisig/MultisigOrder.d.ts +0 -17
  31. package/dist/multisig/MultisigOrder.js +0 -73
  32. package/dist/multisig/MultisigOrder.spec.d.ts +0 -1
  33. package/dist/multisig/MultisigOrder.spec.js +0 -139
  34. package/dist/multisig/MultisigOrderBuilder.d.ts +0 -13
  35. package/dist/multisig/MultisigOrderBuilder.js +0 -37
  36. package/dist/multisig/MultisigWallet.d.ts +0 -27
  37. package/dist/multisig/MultisigWallet.js +0 -134
  38. package/dist/multisig/MultisigWallet.spec.d.ts +0 -1
  39. package/dist/multisig/MultisigWallet.spec.js +0 -248
  40. package/dist/utils/createTestClient.d.ts +0 -9
  41. package/dist/utils/createTestClient.js +0 -18
  42. package/dist/utils/createTestClient4.d.ts +0 -9
  43. package/dist/utils/createTestClient4.js +0 -15
  44. package/dist/utils/fees.d.ts +0 -25
  45. package/dist/utils/fees.js +0 -105
  46. package/dist/utils/fees.spec.d.ts +0 -1
  47. package/dist/utils/fees.spec.js +0 -83
  48. package/dist/utils/maybe.d.ts +0 -8
  49. package/dist/utils/maybe.js +0 -9
  50. package/dist/utils/randomTestKey.d.ts +0 -8
  51. package/dist/utils/randomTestKey.js +0 -24
  52. package/dist/utils/time.d.ts +0 -15
  53. package/dist/utils/time.js +0 -63
  54. package/dist/utils/toUrlSafe.d.ts +0 -8
  55. package/dist/utils/toUrlSafe.js +0 -23
  56. package/dist/wallets/WalletContractV1R1.d.ts +0 -58
  57. package/dist/wallets/WalletContractV1R1.js +0 -100
  58. package/dist/wallets/WalletContractV1R1.spec.d.ts +0 -8
  59. package/dist/wallets/WalletContractV1R1.spec.js +0 -44
  60. package/dist/wallets/WalletContractV1R2.d.ts +0 -58
  61. package/dist/wallets/WalletContractV1R2.js +0 -101
  62. package/dist/wallets/WalletContractV1R2.spec.d.ts +0 -8
  63. package/dist/wallets/WalletContractV1R2.spec.js +0 -44
  64. package/dist/wallets/WalletContractV1R3.d.ts +0 -58
  65. package/dist/wallets/WalletContractV1R3.js +0 -101
  66. package/dist/wallets/WalletContractV1R3.spec.d.ts +0 -8
  67. package/dist/wallets/WalletContractV1R3.spec.js +0 -44
  68. package/dist/wallets/WalletContractV2R1.d.ts +0 -60
  69. package/dist/wallets/WalletContractV2R1.js +0 -102
  70. package/dist/wallets/WalletContractV2R1.spec.d.ts +0 -8
  71. package/dist/wallets/WalletContractV2R1.spec.js +0 -44
  72. package/dist/wallets/WalletContractV2R2.d.ts +0 -60
  73. package/dist/wallets/WalletContractV2R2.js +0 -102
  74. package/dist/wallets/WalletContractV2R2.spec.d.ts +0 -8
  75. package/dist/wallets/WalletContractV2R2.spec.js +0 -44
  76. package/dist/wallets/WalletContractV3R1.d.ts +0 -57
  77. package/dist/wallets/WalletContractV3R1.js +0 -104
  78. package/dist/wallets/WalletContractV3R1.spec.d.ts +0 -8
  79. package/dist/wallets/WalletContractV3R1.spec.js +0 -44
  80. package/dist/wallets/WalletContractV3R2.d.ts +0 -57
  81. package/dist/wallets/WalletContractV3R2.js +0 -104
  82. package/dist/wallets/WalletContractV3R2.spec.d.ts +0 -8
  83. package/dist/wallets/WalletContractV3R2.spec.js +0 -44
  84. package/dist/wallets/WalletContractV3Types.d.ts +0 -12
  85. package/dist/wallets/WalletContractV3Types.js +0 -2
  86. package/dist/wallets/WalletContractV4.d.ts +0 -65
  87. package/dist/wallets/WalletContractV4.js +0 -105
  88. package/dist/wallets/WalletContractV4.spec.d.ts +0 -8
  89. package/dist/wallets/WalletContractV4.spec.js +0 -48
  90. package/dist/wallets/WalletContractV5Beta.d.ts +0 -3
  91. package/dist/wallets/WalletContractV5Beta.js +0 -19
  92. package/dist/wallets/WalletContractV5R1.d.ts +0 -3
  93. package/dist/wallets/WalletContractV5R1.js +0 -19
  94. package/dist/wallets/signing/createWalletTransfer.d.ts +0 -48
  95. package/dist/wallets/signing/createWalletTransfer.js +0 -190
  96. package/dist/wallets/signing/singer.d.ts +0 -9
  97. package/dist/wallets/signing/singer.js +0 -21
  98. package/dist/wallets/v5beta/WalletContractV5Beta.d.ts +0 -130
  99. package/dist/wallets/v5beta/WalletContractV5Beta.js +0 -211
  100. package/dist/wallets/v5beta/WalletContractV5Beta.spec.d.ts +0 -8
  101. package/dist/wallets/v5beta/WalletContractV5Beta.spec.js +0 -298
  102. package/dist/wallets/v5beta/WalletV5BetaActions.d.ts +0 -6
  103. package/dist/wallets/v5beta/WalletV5BetaActions.js +0 -92
  104. package/dist/wallets/v5beta/WalletV5BetaActions.spec.d.ts +0 -1
  105. package/dist/wallets/v5beta/WalletV5BetaActions.spec.js +0 -166
  106. package/dist/wallets/v5beta/WalletV5BetaWalletId.d.ts +0 -13
  107. package/dist/wallets/v5beta/WalletV5BetaWalletId.js +0 -31
  108. package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.d.ts +0 -1
  109. package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.js +0 -68
  110. package/dist/wallets/v5beta/WalletV5OutActions.d.ts +0 -17
  111. package/dist/wallets/v5beta/WalletV5OutActions.js +0 -11
  112. package/dist/wallets/v5r1/WalletContractV5R1.d.ts +0 -125
  113. package/dist/wallets/v5r1/WalletContractV5R1.js +0 -207
  114. package/dist/wallets/v5r1/WalletContractV5R1.spec.d.ts +0 -8
  115. package/dist/wallets/v5r1/WalletContractV5R1.spec.js +0 -321
  116. package/dist/wallets/v5r1/WalletV5R1Actions.d.ts +0 -12
  117. package/dist/wallets/v5r1/WalletV5R1Actions.js +0 -128
  118. package/dist/wallets/v5r1/WalletV5R1Actions.spec.d.ts +0 -1
  119. package/dist/wallets/v5r1/WalletV5R1Actions.spec.js +0 -262
  120. package/dist/wallets/v5r1/WalletV5R1WalletId.d.ts +0 -47
  121. package/dist/wallets/v5r1/WalletV5R1WalletId.js +0 -69
  122. package/dist/wallets/v5r1/WalletV5R1WalletId.spec.d.ts +0 -1
  123. package/dist/wallets/v5r1/WalletV5R1WalletId.spec.js +0 -72
@@ -1,321 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright (c) Whales Corp.
4
- * All Rights Reserved.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const randomTestKey_1 = require("../../utils/randomTestKey");
11
- const core_1 = require("@ton/core");
12
- const crypto_1 = require("@ton/crypto");
13
- const createTestClient4_1 = require("../../utils/createTestClient4");
14
- const WalletContractV5R1_1 = require("./WalletContractV5R1");
15
- const getExtensionsArray = async (wallet) => {
16
- try {
17
- return await wallet.getExtensionsArray();
18
- }
19
- catch (e) {
20
- // Handle toncenter bug. Toncenter incorrectly returns 'list' in the stack in case of empty extensions dict
21
- if (e && typeof e === 'object' && 'message' in e && e.message === 'Unsupported stack item type: list') {
22
- return [];
23
- }
24
- throw e;
25
- }
26
- };
27
- describe('WalletContractV5R1', () => {
28
- let client;
29
- let walletKey;
30
- let wallet;
31
- beforeEach(() => {
32
- client = (0, createTestClient4_1.createTestClient4)();
33
- walletKey = (0, randomTestKey_1.randomTestKey)('v5r1-treasure');
34
- wallet = client.open(WalletContractV5R1_1.WalletContractV5R1.create({ walletId: { networkGlobalId: -3 }, publicKey: walletKey.publicKey }));
35
- });
36
- it('should has balance and correct address', async () => {
37
- const balance = await wallet.getBalance();
38
- expect(wallet.address.equals(core_1.Address.parse('EQCqe9WqFhS8AfVGDP2xQiTLjbeolhLGsvIbbgQ6C3XT5gGs'))).toBeTruthy();
39
- expect(balance > 0n).toBe(true);
40
- });
41
- it('should perform single transfer', async () => {
42
- const seqno = await wallet.getSeqno();
43
- const transfer = wallet.createTransfer({
44
- seqno,
45
- secretKey: walletKey.secretKey,
46
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS,
47
- messages: [(0, core_1.internal)({
48
- bounce: false,
49
- to: 'UQB-2r0kM28L4lmq-4V8ppQGcnO1tXC7FZmbnDzWZVBkp6jE',
50
- value: '0.01',
51
- body: 'Hello world single transfer!'
52
- })]
53
- });
54
- const sendMode = getTransferSendMode(transfer);
55
- expect(sendMode).toBe(core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS);
56
- await wallet.send(transfer);
57
- });
58
- it('should perform single transfer with async signing', async () => {
59
- const seqno = await wallet.getSeqno();
60
- const signer = (payload) => new Promise(r => setTimeout(() => {
61
- const signature = (0, crypto_1.sign)(payload.hash(), walletKey.secretKey);
62
- r(signature);
63
- }, 100));
64
- const transfer = await wallet.createTransfer({
65
- seqno,
66
- signer,
67
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
68
- messages: [(0, core_1.internal)({
69
- bounce: false,
70
- to: 'UQB-2r0kM28L4lmq-4V8ppQGcnO1tXC7FZmbnDzWZVBkp6jE',
71
- value: '0.01',
72
- body: 'Hello world single transfer signed async!'
73
- })]
74
- });
75
- const sendMode = getTransferSendMode(transfer);
76
- expect(sendMode).toBe(core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS);
77
- await wallet.send(transfer);
78
- });
79
- it('should perform double transfer', async () => {
80
- const seqno = await wallet.getSeqno();
81
- const transfer = wallet.createTransfer({
82
- seqno,
83
- secretKey: walletKey.secretKey,
84
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
85
- messages: [(0, core_1.internal)({
86
- bounce: false,
87
- to: 'UQB-2r0kM28L4lmq-4V8ppQGcnO1tXC7FZmbnDzWZVBkp6jE',
88
- value: '0.01',
89
- body: 'Hello world to extension'
90
- }), (0, core_1.internal)({
91
- bounce: false,
92
- to: 'UQDUyIkKoOR5iZ1Gz60JwKc7wPr3LcdHxOJpVDb9jAKY_pfk',
93
- value: '0.02',
94
- body: 'Hello world to relayer'
95
- })]
96
- });
97
- const sendMode = getTransferSendMode(transfer);
98
- expect(sendMode).toBe(core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS);
99
- await wallet.send(transfer);
100
- });
101
- it('should add extension', async () => {
102
- const extensionKey = (0, randomTestKey_1.randomTestKey)('v5-treasure-extension');
103
- const extensionContract = client.open(WalletContractV5R1_1.WalletContractV5R1.create({ walletId: { networkGlobalId: -3 }, publicKey: extensionKey.publicKey }));
104
- let seqno = await wallet.getSeqno();
105
- const extensions = await getExtensionsArray(wallet);
106
- const extensionAlreadyAdded = extensions.some(address => address.equals(extensionContract.address));
107
- if (!extensionAlreadyAdded) {
108
- await wallet.sendAddExtension({
109
- seqno,
110
- secretKey: walletKey.secretKey,
111
- extensionAddress: extensionContract.address
112
- });
113
- const waitUntilExtensionAdded = async (attempt = 0) => {
114
- if (attempt >= 20) {
115
- throw new Error('Extension was not added in 20 blocks');
116
- }
117
- const extensions = await getExtensionsArray(wallet);
118
- const extensionAdded = extensions.some(address => address.equals(extensionContract.address));
119
- if (extensionAdded) {
120
- return;
121
- }
122
- await new Promise(r => setTimeout(r, 1500));
123
- return waitUntilExtensionAdded(attempt + 1);
124
- };
125
- await waitUntilExtensionAdded();
126
- }
127
- seqno = await wallet.getSeqno();
128
- const extensionsSeqno = await extensionContract.getSeqno();
129
- await extensionContract.sendTransfer({
130
- seqno: extensionsSeqno,
131
- secretKey: extensionKey.secretKey,
132
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
133
- messages: [(0, core_1.internal)({
134
- to: wallet.address,
135
- value: '0.02',
136
- body: wallet.createTransfer({
137
- seqno: seqno,
138
- authType: 'extension',
139
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
140
- messages: [(0, core_1.internal)({
141
- bounce: false,
142
- to: '0QD6oPnzaaAMRW24R8F0_nlSsJQni0cGHntR027eT9_sgoHo',
143
- value: '0.03',
144
- body: 'Hello world from plugin'
145
- })]
146
- })
147
- })]
148
- });
149
- }, 60000);
150
- it('should remove extension', async () => {
151
- const extensionKey = (0, randomTestKey_1.randomTestKey)('v5-treasure-extension');
152
- const extensionContract = client.open(WalletContractV5R1_1.WalletContractV5R1.create({ walletId: { networkGlobalId: -3 }, publicKey: extensionKey.publicKey }));
153
- const seqno = await wallet.getSeqno();
154
- const extensions = await getExtensionsArray(wallet);
155
- const extensionAlreadyAdded = extensions.some(address => address.equals(extensionContract.address));
156
- if (extensionAlreadyAdded) {
157
- await wallet.sendRemoveExtension({
158
- seqno,
159
- secretKey: walletKey.secretKey,
160
- extensionAddress: extensionContract.address
161
- });
162
- }
163
- });
164
- it('should send internal transfer via relayer', async () => {
165
- const relaerKey = (0, randomTestKey_1.randomTestKey)('v5r1-treasure-relayer');
166
- const relayerContract = client.open(WalletContractV5R1_1.WalletContractV5R1.create({ walletId: { networkGlobalId: -3 }, publicKey: relaerKey.publicKey }));
167
- const seqno = await wallet.getSeqno();
168
- const relayerSeqno = await relayerContract.getSeqno();
169
- await relayerContract.sendTransfer({
170
- seqno: relayerSeqno,
171
- secretKey: relaerKey.secretKey,
172
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
173
- messages: [(0, core_1.internal)({
174
- to: wallet.address,
175
- value: '0.03',
176
- body: wallet.createTransfer({
177
- seqno: seqno,
178
- secretKey: walletKey.secretKey,
179
- authType: 'internal',
180
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS,
181
- messages: [(0, core_1.internal)({
182
- bounce: false,
183
- to: '0QD2NmD_lH5f5u1Kj3KfGyTvhZSX0Eg6qp2a5IQUKXxOG4so',
184
- value: '0.04',
185
- body: 'Hello world from relayer'
186
- })]
187
- })
188
- })]
189
- });
190
- });
191
- it('should disable secret key auth, send extension-auth tx, and enable it again', async () => {
192
- /* firstly add an extension that will take the control over the wallet */
193
- const extensionKey = (0, randomTestKey_1.randomTestKey)('v5-treasure-extension');
194
- const extensionContract = client.open(WalletContractV5R1_1.WalletContractV5R1.create({ walletId: { networkGlobalId: -3 }, publicKey: extensionKey.publicKey }));
195
- let seqno = await wallet.getSeqno();
196
- const extensions = await getExtensionsArray(wallet);
197
- const extensionAlreadyAdded = extensions.some(address => address.equals(extensionContract.address));
198
- if (!extensionAlreadyAdded) {
199
- await wallet.sendAddExtension({
200
- seqno,
201
- secretKey: walletKey.secretKey,
202
- extensionAddress: extensionContract.address
203
- });
204
- const waitUntilExtensionAdded = async (attempt = 0) => {
205
- if (attempt >= 30) {
206
- throw new Error('Extension was not added in 30 blocks');
207
- }
208
- const extensions = await getExtensionsArray(wallet);
209
- const extensionAdded = extensions.some(address => address.equals(extensionContract.address));
210
- if (extensionAdded) {
211
- return;
212
- }
213
- await new Promise(r => setTimeout(r, 1500));
214
- return waitUntilExtensionAdded(attempt + 1);
215
- };
216
- await waitUntilExtensionAdded();
217
- }
218
- /* disable secret key auth */
219
- seqno = await wallet.getSeqno();
220
- const isInitiallyEnabled = await wallet.getIsSecretKeyAuthEnabled();
221
- const waitUntilAuthValue = async (target, attempt = 0) => {
222
- if (attempt >= 30) {
223
- throw new Error('Auth permissions were not changed in 30 blocks');
224
- }
225
- const isEnabledNow = await wallet.getIsSecretKeyAuthEnabled();
226
- if ((target === 'enabled' && isEnabledNow) || (target === 'disabled' && !isEnabledNow)) {
227
- return;
228
- }
229
- await new Promise(r => setTimeout(r, 1500));
230
- return waitUntilAuthValue(target, attempt + 1);
231
- };
232
- if (isInitiallyEnabled) {
233
- const extensionsSeqno = await extensionContract.getSeqno();
234
- await extensionContract.sendTransfer({
235
- seqno: extensionsSeqno,
236
- secretKey: extensionKey.secretKey,
237
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
238
- messages: [(0, core_1.internal)({
239
- to: wallet.address,
240
- value: '0.02',
241
- body: wallet.createRequest({
242
- seqno,
243
- authType: 'extension',
244
- actions: [
245
- {
246
- type: 'setIsPublicKeyEnabled',
247
- isEnabled: false
248
- }
249
- ]
250
- })
251
- })]
252
- });
253
- await waitUntilAuthValue('disabled');
254
- }
255
- /* should fail direct secret-key auth transfer from the wallet */
256
- seqno = await wallet.getSeqno();
257
- const transfer = wallet.createTransfer({
258
- seqno: seqno,
259
- secretKey: walletKey.secretKey,
260
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
261
- messages: [(0, core_1.internal)({
262
- bounce: false,
263
- to: 'UQB-2r0kM28L4lmq-4V8ppQGcnO1tXC7FZmbnDzWZVBkp6jE',
264
- value: '0.01',
265
- body: 'Hello world single transfer that SHOULD FAIL!'
266
- })]
267
- });
268
- await expect(wallet.send(transfer)).rejects.toThrow();
269
- /* should perform transfer from the extension and enable auth by secret key */
270
- const extensionsSeqno = await extensionContract.getSeqno();
271
- await extensionContract.sendTransfer({
272
- seqno: extensionsSeqno,
273
- secretKey: extensionKey.secretKey,
274
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
275
- messages: [(0, core_1.internal)({
276
- to: wallet.address,
277
- value: '0.03',
278
- body: wallet.createRequest({
279
- seqno,
280
- authType: 'extension',
281
- actions: [
282
- {
283
- type: 'setIsPublicKeyEnabled',
284
- isEnabled: true
285
- },
286
- {
287
- type: "sendMsg",
288
- mode: core_1.SendMode.IGNORE_ERRORS,
289
- outMsg: (0, core_1.internal)({
290
- bounce: false,
291
- to: '0QD6oPnzaaAMRW24R8F0_nlSsJQni0cGHntR027eT9_sgoHo',
292
- value: '0.03',
293
- body: 'Hello world from plugin that controls the wallet!'
294
- })
295
- }
296
- ]
297
- })
298
- })]
299
- });
300
- await waitUntilAuthValue('enabled');
301
- await new Promise(r => setTimeout(r, 5000));
302
- /* should not fail direct secret-key auth transfer from the wallet */
303
- seqno = await wallet.getSeqno();
304
- await wallet.sendTransfer({
305
- seqno,
306
- secretKey: walletKey.secretKey,
307
- sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
308
- messages: [(0, core_1.internal)({
309
- bounce: false,
310
- to: 'UQB-2r0kM28L4lmq-4V8ppQGcnO1tXC7FZmbnDzWZVBkp6jE',
311
- value: '0.01',
312
- body: 'Hello world single transfer after sk auth is enabled!'
313
- })]
314
- });
315
- }, 260000);
316
- });
317
- function getTransferSendMode(cell) {
318
- const outMsg = cell.beginParse().loadRef().beginParse();
319
- const bits = outMsg.remainingBits;
320
- return outMsg.skip(bits - 8).loadUint(8);
321
- }
@@ -1,12 +0,0 @@
1
- import { Builder, OutActionSendMsg, SendMode, Slice } from '@ton/core';
2
- import { OutActionExtended, OutActionWalletV5 } from "../v5beta/WalletV5OutActions";
3
- import { WalletV5R1SendArgs } from "./WalletContractV5R1";
4
- export declare function storeOutActionExtendedV5R1(action: OutActionExtended): (builder: Builder) => void;
5
- export declare function loadOutActionExtendedV5R1(slice: Slice): OutActionExtended;
6
- export declare function storeOutListExtendedV5R1(actions: (OutActionExtended | OutActionSendMsg)[]): (builder: Builder) => void;
7
- export declare function loadOutListExtendedV5R1(slice: Slice): (OutActionExtended | OutActionSendMsg)[];
8
- /**
9
- * Safety rules -- actions of external messages must have +2 in the SendMode. Internal messages actions may have arbitrary SendMode.
10
- */
11
- export declare function toSafeV5R1SendMode(sendMode: SendMode, authType: WalletV5R1SendArgs['authType']): number;
12
- export declare function patchV5R1ActionsSendMode(actions: OutActionWalletV5[], authType: WalletV5R1SendArgs['authType']): OutActionWalletV5[];
@@ -1,128 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.patchV5R1ActionsSendMode = exports.toSafeV5R1SendMode = exports.loadOutListExtendedV5R1 = exports.storeOutListExtendedV5R1 = exports.loadOutActionExtendedV5R1 = exports.storeOutActionExtendedV5R1 = void 0;
4
- const core_1 = require("@ton/core");
5
- const WalletV5OutActions_1 = require("../v5beta/WalletV5OutActions");
6
- const outActionSetIsPublicKeyEnabledTag = 0x04;
7
- function storeOutActionSetIsPublicKeyEnabled(action) {
8
- return (builder) => {
9
- builder.storeUint(outActionSetIsPublicKeyEnabledTag, 8).storeUint(action.isEnabled ? 1 : 0, 1);
10
- };
11
- }
12
- const outActionAddExtensionTag = 0x02;
13
- function storeOutActionAddExtension(action) {
14
- return (builder) => {
15
- builder.storeUint(outActionAddExtensionTag, 8).storeAddress(action.address);
16
- };
17
- }
18
- const outActionRemoveExtensionTag = 0x03;
19
- function storeOutActionRemoveExtension(action) {
20
- return (builder) => {
21
- builder.storeUint(outActionRemoveExtensionTag, 8).storeAddress(action.address);
22
- };
23
- }
24
- function storeOutActionExtendedV5R1(action) {
25
- switch (action.type) {
26
- case 'setIsPublicKeyEnabled':
27
- return storeOutActionSetIsPublicKeyEnabled(action);
28
- case 'addExtension':
29
- return storeOutActionAddExtension(action);
30
- case 'removeExtension':
31
- return storeOutActionRemoveExtension(action);
32
- default:
33
- throw new Error('Unknown action type' + action?.type);
34
- }
35
- }
36
- exports.storeOutActionExtendedV5R1 = storeOutActionExtendedV5R1;
37
- function loadOutActionExtendedV5R1(slice) {
38
- const tag = slice.loadUint(8);
39
- switch (tag) {
40
- case outActionSetIsPublicKeyEnabledTag:
41
- return {
42
- type: 'setIsPublicKeyEnabled',
43
- isEnabled: !!slice.loadUint(1)
44
- };
45
- case outActionAddExtensionTag:
46
- return {
47
- type: 'addExtension',
48
- address: slice.loadAddress()
49
- };
50
- case outActionRemoveExtensionTag:
51
- return {
52
- type: 'removeExtension',
53
- address: slice.loadAddress()
54
- };
55
- default:
56
- throw new Error(`Unknown extended out action tag 0x${tag.toString(16)}`);
57
- }
58
- }
59
- exports.loadOutActionExtendedV5R1 = loadOutActionExtendedV5R1;
60
- function storeOutListExtendedV5R1(actions) {
61
- const extendedActions = actions.filter(WalletV5OutActions_1.isOutActionExtended);
62
- const basicActions = actions.filter(WalletV5OutActions_1.isOutActionBasic);
63
- return (builder) => {
64
- const outListPacked = basicActions.length ? (0, core_1.beginCell)().store((0, core_1.storeOutList)(basicActions.slice().reverse())) : null;
65
- builder.storeMaybeRef(outListPacked);
66
- if (extendedActions.length === 0) {
67
- builder.storeUint(0, 1);
68
- }
69
- else {
70
- const [first, ...rest] = extendedActions;
71
- builder
72
- .storeUint(1, 1)
73
- .store(storeOutActionExtendedV5R1(first));
74
- if (rest.length > 0) {
75
- builder.storeRef(packExtendedActionsRec(rest));
76
- }
77
- }
78
- };
79
- }
80
- exports.storeOutListExtendedV5R1 = storeOutListExtendedV5R1;
81
- function packExtendedActionsRec(extendedActions) {
82
- const [first, ...rest] = extendedActions;
83
- let builder = (0, core_1.beginCell)()
84
- .store(storeOutActionExtendedV5R1(first));
85
- if (rest.length > 0) {
86
- builder = builder.storeRef(packExtendedActionsRec(rest));
87
- }
88
- return builder.endCell();
89
- }
90
- function loadOutListExtendedV5R1(slice) {
91
- const actions = [];
92
- const outListPacked = slice.loadMaybeRef();
93
- if (outListPacked) {
94
- const loadedActions = (0, core_1.loadOutList)(outListPacked.beginParse());
95
- if (loadedActions.some(a => a.type !== 'sendMsg')) {
96
- throw new Error("Can't deserialize actions list: only sendMsg actions are allowed for wallet v5r1");
97
- }
98
- actions.push(...loadedActions);
99
- }
100
- if (slice.loadBoolean()) {
101
- const action = loadOutActionExtendedV5R1(slice);
102
- actions.push(action);
103
- }
104
- while (slice.remainingRefs > 0) {
105
- slice = slice.loadRef().beginParse();
106
- const action = loadOutActionExtendedV5R1(slice);
107
- actions.push(action);
108
- }
109
- return actions;
110
- }
111
- exports.loadOutListExtendedV5R1 = loadOutListExtendedV5R1;
112
- /**
113
- * Safety rules -- actions of external messages must have +2 in the SendMode. Internal messages actions may have arbitrary SendMode.
114
- */
115
- function toSafeV5R1SendMode(sendMode, authType) {
116
- if (authType === 'internal' || authType === 'extension') {
117
- return sendMode;
118
- }
119
- return sendMode | core_1.SendMode.IGNORE_ERRORS;
120
- }
121
- exports.toSafeV5R1SendMode = toSafeV5R1SendMode;
122
- function patchV5R1ActionsSendMode(actions, authType) {
123
- return actions.map(action => action.type === 'sendMsg' ? ({
124
- ...action,
125
- mode: toSafeV5R1SendMode(action.mode, authType)
126
- }) : action);
127
- }
128
- exports.patchV5R1ActionsSendMode = patchV5R1ActionsSendMode;
@@ -1 +0,0 @@
1
- export {};