@ton/blueprint 0.40.0 → 0.41.0

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.
@@ -1,19 +1,7 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
- var _SendProviderSender_provider, _SendProviderSender_lastSendResult, _WrappedContractProvider_address, _WrappedContractProvider_provider, _WrappedContractProvider_init, _WrappedContractProvider_factory, _NetworkProviderImpl_tc, _NetworkProviderImpl_sender, _NetworkProviderImpl_network, _NetworkProviderImpl_explorer, _NetworkProviderImpl_ui;
17
5
  Object.defineProperty(exports, "__esModule", { value: true });
18
6
  exports.argSpec = void 0;
19
7
  exports.createNetworkProvider = createNetworkProvider;
@@ -52,12 +40,10 @@ exports.argSpec = {
52
40
  };
53
41
  class SendProviderSender {
54
42
  get lastSendResult() {
55
- return __classPrivateFieldGet(this, _SendProviderSender_lastSendResult, "f");
43
+ return this._lastSendResult;
56
44
  }
57
45
  constructor(provider) {
58
- _SendProviderSender_provider.set(this, void 0);
59
- _SendProviderSender_lastSendResult.set(this, void 0);
60
- __classPrivateFieldSet(this, _SendProviderSender_provider, provider, "f");
46
+ this.provider = provider;
61
47
  this.address = provider.address();
62
48
  }
63
49
  async send(args) {
@@ -68,34 +54,32 @@ class SendProviderSender {
68
54
  if (!(args.sendMode === undefined || args.sendMode === core_1.SendMode.PAY_GAS_SEPARATELY)) {
69
55
  throw new Error('Deployer sender does not support `sendMode` other than `PAY_GAS_SEPARATELY`');
70
56
  }
71
- __classPrivateFieldSet(this, _SendProviderSender_lastSendResult, await __classPrivateFieldGet(this, _SendProviderSender_provider, "f").sendTransaction(args.to, args.value, args.body ?? undefined, args.init ?? undefined), "f");
57
+ this._lastSendResult = await this.provider.sendTransaction(args.to, args.value, args.body ?? undefined, args.init ?? undefined);
72
58
  }
73
59
  }
74
- _SendProviderSender_provider = new WeakMap(), _SendProviderSender_lastSendResult = new WeakMap();
75
60
  class WrappedContractProvider {
76
- constructor(address, factory, init) {
77
- _WrappedContractProvider_address.set(this, void 0);
78
- _WrappedContractProvider_provider.set(this, void 0);
79
- _WrappedContractProvider_init.set(this, void 0);
80
- _WrappedContractProvider_factory.set(this, void 0);
81
- __classPrivateFieldSet(this, _WrappedContractProvider_address, address, "f");
82
- __classPrivateFieldSet(this, _WrappedContractProvider_provider, factory({ address, init }), "f");
83
- __classPrivateFieldSet(this, _WrappedContractProvider_init, init, "f");
84
- __classPrivateFieldSet(this, _WrappedContractProvider_factory, factory, "f");
61
+ constructor(address, factory, init = null) {
62
+ this.address = address;
63
+ this.factory = factory;
64
+ this.init = init;
65
+ this.address = address;
66
+ this.provider = factory({ address, init });
67
+ this.init = init;
68
+ this.factory = factory;
85
69
  }
86
70
  async getState() {
87
- return await __classPrivateFieldGet(this, _WrappedContractProvider_provider, "f").getState();
71
+ return await this.provider.getState();
88
72
  }
89
73
  async get(name, args) {
90
- return await __classPrivateFieldGet(this, _WrappedContractProvider_provider, "f").get(name, args);
74
+ return await this.provider.get(name, args);
91
75
  }
92
76
  async external(message) {
93
- return await __classPrivateFieldGet(this, _WrappedContractProvider_provider, "f").external(message);
77
+ return await this.provider.external(message);
94
78
  }
95
79
  async internal(via, args) {
96
- const init = __classPrivateFieldGet(this, _WrappedContractProvider_init, "f") && (await this.getState()).state.type !== 'active' ? __classPrivateFieldGet(this, _WrappedContractProvider_init, "f") : undefined;
80
+ const init = this.init && (await this.getState()).state.type !== 'active' ? this.init : undefined;
97
81
  return await via.send({
98
- to: __classPrivateFieldGet(this, _WrappedContractProvider_address, "f"),
82
+ to: this.address,
99
83
  value: typeof args.value === 'string' ? (0, core_1.toNano)(args.value) : args.value,
100
84
  sendMode: args.sendMode,
101
85
  bounce: args.bounce,
@@ -104,40 +88,34 @@ class WrappedContractProvider {
104
88
  });
105
89
  }
106
90
  open(contract) {
107
- return (0, core_1.openContract)(contract, (params) => new WrappedContractProvider(params.address, __classPrivateFieldGet(this, _WrappedContractProvider_factory, "f"), params.init));
91
+ return (0, core_1.openContract)(contract, (params) => new WrappedContractProvider(params.address, this.factory, params.init));
108
92
  }
109
93
  getTransactions(address, lt, hash, limit) {
110
- return __classPrivateFieldGet(this, _WrappedContractProvider_provider, "f").getTransactions(address, lt, hash, limit);
94
+ return this.provider.getTransactions(address, lt, hash, limit);
111
95
  }
112
96
  }
113
- _WrappedContractProvider_address = new WeakMap(), _WrappedContractProvider_provider = new WeakMap(), _WrappedContractProvider_init = new WeakMap(), _WrappedContractProvider_factory = new WeakMap();
114
97
  class NetworkProviderImpl {
115
- constructor(tc, sender, network, explorer, ui) {
116
- _NetworkProviderImpl_tc.set(this, void 0);
117
- _NetworkProviderImpl_sender.set(this, void 0);
118
- _NetworkProviderImpl_network.set(this, void 0);
119
- _NetworkProviderImpl_explorer.set(this, void 0);
120
- _NetworkProviderImpl_ui.set(this, void 0);
121
- __classPrivateFieldSet(this, _NetworkProviderImpl_tc, tc, "f");
122
- __classPrivateFieldSet(this, _NetworkProviderImpl_sender, sender, "f");
123
- __classPrivateFieldSet(this, _NetworkProviderImpl_network, network, "f");
124
- __classPrivateFieldSet(this, _NetworkProviderImpl_explorer, explorer, "f");
125
- __classPrivateFieldSet(this, _NetworkProviderImpl_ui, ui, "f");
98
+ constructor(_tc, _sender, _network, _explorer, _ui) {
99
+ this._tc = _tc;
100
+ this._sender = _sender;
101
+ this._network = _network;
102
+ this._explorer = _explorer;
103
+ this._ui = _ui;
126
104
  }
127
105
  network() {
128
- return __classPrivateFieldGet(this, _NetworkProviderImpl_network, "f");
106
+ return this._network;
129
107
  }
130
108
  explorer() {
131
- return __classPrivateFieldGet(this, _NetworkProviderImpl_explorer, "f");
109
+ return this._explorer;
132
110
  }
133
111
  sender() {
134
- return __classPrivateFieldGet(this, _NetworkProviderImpl_sender, "f");
112
+ return this._sender;
135
113
  }
136
114
  api() {
137
- return __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f");
115
+ return this._tc;
138
116
  }
139
117
  provider(address, init) {
140
- const factory = (params) => __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f").provider(params.address, params.init && {
118
+ const factory = (params) => this._tc.provider(params.address, params.init && {
141
119
  ...params.init,
142
120
  data: params.init.data ?? undefined,
143
121
  code: params.init.code ?? undefined,
@@ -145,7 +123,7 @@ class NetworkProviderImpl {
145
123
  return new WrappedContractProvider(address, factory, init);
146
124
  }
147
125
  async isContractDeployed(address) {
148
- return (await __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f").provider(address).getState()).state.type === 'active';
126
+ return (await this._tc.provider(address).getState()).state.type === 'active';
149
127
  }
150
128
  async getConfig(address = CONFIG_ADDRESS) {
151
129
  const state = await this.getContractState(address);
@@ -164,29 +142,29 @@ class NetworkProviderImpl {
164
142
  return (0, ton_1.parseFullConfig)(params);
165
143
  }
166
144
  async getContractState(address) {
167
- return await __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f").provider(address).getState();
145
+ return await this._tc.provider(address).getState();
168
146
  }
169
147
  async waitForDeploy(address, attempts = 20, sleepDuration = 2000) {
170
148
  if (attempts <= 0) {
171
149
  throw new Error('Attempt number must be positive');
172
150
  }
173
151
  for (let i = 1; i <= attempts; i++) {
174
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").setActionPrompt(`Awaiting contract deployment... [Attempt ${i}/${attempts}]`);
152
+ this._ui.setActionPrompt(`Awaiting contract deployment... [Attempt ${i}/${attempts}]`);
175
153
  const isDeployed = await this.isContractDeployed(address);
176
154
  if (isDeployed) {
177
- const formattedAddress = address.toString({ testOnly: __classPrivateFieldGet(this, _NetworkProviderImpl_network, "f") === 'testnet' });
178
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").clearActionPrompt();
179
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").write(`Contract deployed at address ${formattedAddress}`);
180
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").write(`You can view it at ${(0, utils_1.getExplorerLink)(formattedAddress, __classPrivateFieldGet(this, _NetworkProviderImpl_network, "f"), __classPrivateFieldGet(this, _NetworkProviderImpl_explorer, "f"))}`);
155
+ const formattedAddress = address.toString({ testOnly: this._network === 'testnet' });
156
+ this._ui.clearActionPrompt();
157
+ this._ui.write(`Contract deployed at address ${formattedAddress}`);
158
+ this._ui.write(`You can view it at ${(0, utils_1.getExplorerLink)(formattedAddress, this._network, this._explorer)}`);
181
159
  return;
182
160
  }
183
161
  await (0, utils_1.sleep)(sleepDuration);
184
162
  }
185
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").clearActionPrompt();
163
+ this._ui.clearActionPrompt();
186
164
  throw new Error("Contract was not deployed. Check your wallet's transactions");
187
165
  }
188
166
  obtainInMessageHash() {
189
- const { lastSendResult } = __classPrivateFieldGet(this, _NetworkProviderImpl_sender, "f");
167
+ const { lastSendResult } = this._sender;
190
168
  if (typeof lastSendResult === 'object' &&
191
169
  lastSendResult !== null &&
192
170
  'boc' in lastSendResult &&
@@ -198,10 +176,10 @@ class NetworkProviderImpl {
198
176
  throw new Error('Not implemented');
199
177
  }
200
178
  async getLastTransactions(address) {
201
- if (__classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f") instanceof ton_1.TonClient) {
202
- return __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f").getTransactions(address, { limit: 100, archival: true }); // without archival not working with tonclient
179
+ if (this._tc instanceof ton_1.TonClient) {
180
+ return this._tc.getTransactions(address, { limit: 100, archival: true }); // without archival not working with tonclient
203
181
  }
204
- const provider = __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f").provider(address);
182
+ const provider = this._tc.provider(address);
205
183
  const { last } = await provider.getState();
206
184
  if (!last) {
207
185
  return [];
@@ -209,7 +187,7 @@ class NetworkProviderImpl {
209
187
  return provider.getTransactions(address, last.lt, last.hash);
210
188
  }
211
189
  async isTransactionApplied(address, targetInMessageHash) {
212
- const provider = __classPrivateFieldGet(this, _NetworkProviderImpl_tc, "f").provider(address);
190
+ const provider = this._tc.provider(address);
213
191
  const { last } = await provider.getState();
214
192
  if (!last) {
215
193
  return { isApplied: false };
@@ -237,22 +215,22 @@ class NetworkProviderImpl {
237
215
  if (attempts <= 0) {
238
216
  throw new Error('Attempt number must be positive');
239
217
  }
240
- if (!__classPrivateFieldGet(this, _NetworkProviderImpl_sender, "f").address) {
218
+ if (!this._sender.address) {
241
219
  throw new Error('Sender must have an address');
242
220
  }
243
221
  const inMessageHash = this.obtainInMessageHash();
244
222
  for (let i = 1; i <= attempts; i++) {
245
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").setActionPrompt(`Awaiting transaction... [Attempt ${i}/${attempts}]`);
246
- const result = await this.isTransactionApplied(__classPrivateFieldGet(this, _NetworkProviderImpl_sender, "f").address, inMessageHash);
223
+ this._ui.setActionPrompt(`Awaiting transaction... [Attempt ${i}/${attempts}]`);
224
+ const result = await this.isTransactionApplied(this._sender.address, inMessageHash);
247
225
  if (result.isApplied) {
248
226
  const { transaction } = result;
249
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").clearActionPrompt();
250
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").write(`Transaction ${inMessageHash.toString('hex')} successfully applied!`);
251
- __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f").write(`You can view it at ${(0, utils_1.getTransactionLink)({
227
+ this._ui.clearActionPrompt();
228
+ this._ui.write(`Transaction ${inMessageHash.toString('hex')} successfully applied!`);
229
+ this._ui.write(`You can view it at ${(0, utils_1.getTransactionLink)({
252
230
  ...transaction,
253
231
  hash: transaction.hash(),
254
- address: __classPrivateFieldGet(this, _NetworkProviderImpl_sender, "f").address,
255
- }, __classPrivateFieldGet(this, _NetworkProviderImpl_network, "f"), __classPrivateFieldGet(this, _NetworkProviderImpl_explorer, "f"))}`);
232
+ address: this._sender.address,
233
+ }, this._network, this._explorer)}`);
256
234
  return;
257
235
  }
258
236
  await (0, utils_1.sleep)(sleepDuration);
@@ -272,7 +250,7 @@ class NetworkProviderImpl {
272
250
  if (!contract.init) {
273
251
  throw new Error('Contract has no init!');
274
252
  }
275
- await __classPrivateFieldGet(this, _NetworkProviderImpl_sender, "f").send({
253
+ await this._sender.send({
276
254
  to: contract.address,
277
255
  value,
278
256
  body,
@@ -286,10 +264,9 @@ class NetworkProviderImpl {
286
264
  return (0, core_1.openContract)(contract, (params) => this.provider(params.address, params.init ?? null));
287
265
  }
288
266
  ui() {
289
- return __classPrivateFieldGet(this, _NetworkProviderImpl_ui, "f");
267
+ return this._ui;
290
268
  }
291
269
  }
292
- _NetworkProviderImpl_tc = new WeakMap(), _NetworkProviderImpl_sender = new WeakMap(), _NetworkProviderImpl_network = new WeakMap(), _NetworkProviderImpl_explorer = new WeakMap(), _NetworkProviderImpl_ui = new WeakMap();
293
270
  function getOptionalNumberEnv(envName) {
294
271
  const value = process.env[envName] ? Number(process.env[envName]) : undefined;
295
272
  if (value !== undefined && Number.isNaN(value)) {
@@ -3,7 +3,8 @@ import { SendProvider } from './SendProvider';
3
3
  import { UIProvider } from '../../ui/UIProvider';
4
4
  import { Network } from '../Network';
5
5
  export declare class DeeplinkProvider implements SendProvider {
6
- #private;
6
+ private readonly network;
7
+ private readonly ui;
7
8
  constructor(network: Network, ui: UIProvider);
8
9
  connect(): Promise<void>;
9
10
  sendTransaction(address: Address, amount: bigint, payload?: Cell, stateInit?: StateInit): Promise<void>;
@@ -1,19 +1,7 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
- var _DeeplinkProvider_network, _DeeplinkProvider_ui;
17
5
  Object.defineProperty(exports, "__esModule", { value: true });
18
6
  exports.DeeplinkProvider = void 0;
19
7
  const core_1 = require("@ton/core");
@@ -21,29 +9,27 @@ const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
21
9
  const utils_1 = require("../../utils");
22
10
  class DeeplinkProvider {
23
11
  constructor(network, ui) {
24
- _DeeplinkProvider_network.set(this, void 0);
25
- _DeeplinkProvider_ui.set(this, void 0);
26
- __classPrivateFieldSet(this, _DeeplinkProvider_network, network, "f");
27
- __classPrivateFieldSet(this, _DeeplinkProvider_ui, ui, "f");
12
+ this.network = network;
13
+ this.ui = ui;
28
14
  }
29
15
  async connect() {
30
16
  return;
31
17
  }
32
18
  async sendTransaction(address, amount, payload, stateInit) {
33
- const deepLink = (0, utils_1.tonDeepLink)(address, amount, payload, stateInit ? (0, core_1.beginCell)().storeWritable((0, core_1.storeStateInit)(stateInit)).endCell() : undefined, __classPrivateFieldGet(this, _DeeplinkProvider_network, "f") === 'testnet');
19
+ const deepLink = (0, utils_1.tonDeepLink)(address, amount, payload, stateInit ? (0, core_1.beginCell)().storeWritable((0, core_1.storeStateInit)(stateInit)).endCell() : undefined, this.network === 'testnet');
34
20
  try {
35
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write('\n');
36
- qrcode_terminal_1.default.generate(deepLink, { small: true }, (qr) => __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write(qr));
37
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write('\n');
38
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write(deepLink);
39
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write('\nScan the QR code above, or open the ton:// link to send this transaction');
40
- await __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").prompt('Press enter when transaction was issued');
21
+ this.ui.write('\n');
22
+ qrcode_terminal_1.default.generate(deepLink, { small: true }, (qr) => this.ui.write(qr));
23
+ this.ui.write('\n');
24
+ this.ui.write(deepLink);
25
+ this.ui.write('\nScan the QR code above, or open the ton:// link to send this transaction');
26
+ await this.ui.prompt('Press enter when transaction was issued');
41
27
  }
42
28
  catch (err) {
43
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write(deepLink);
44
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write('\n');
29
+ this.ui.write(deepLink);
30
+ this.ui.write('\n');
45
31
  if (err instanceof Error && err.message.includes('code length overflow')) {
46
- __classPrivateFieldGet(this, _DeeplinkProvider_ui, "f").write('Message is too large to be sent via QR code. Please use the ton:// link or another method.');
32
+ this.ui.write('Message is too large to be sent via QR code. Please use the ton:// link or another method.');
47
33
  process.exit(1);
48
34
  }
49
35
  throw err;
@@ -54,4 +40,3 @@ class DeeplinkProvider {
54
40
  }
55
41
  }
56
42
  exports.DeeplinkProvider = DeeplinkProvider;
57
- _DeeplinkProvider_network = new WeakMap(), _DeeplinkProvider_ui = new WeakMap();
@@ -16,7 +16,11 @@ type MnemonicProviderParams = {
16
16
  network: Network;
17
17
  };
18
18
  export declare class MnemonicProvider implements SendProvider {
19
- #private;
19
+ private readonly wallet;
20
+ private readonly secretKey;
21
+ private readonly client;
22
+ private readonly ui;
23
+ private readonly network;
20
24
  constructor(params: MnemonicProviderParams);
21
25
  private createWallet;
22
26
  connect(): Promise<void>;
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _MnemonicProvider_wallet, _MnemonicProvider_secretKey, _MnemonicProvider_client, _MnemonicProvider_ui, _MnemonicProvider_network;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.MnemonicProvider = void 0;
16
4
  const core_1 = require("@ton/core");
@@ -18,24 +6,19 @@ const crypto_1 = require("@ton/crypto");
18
6
  const wallets_1 = require("./wallets");
19
7
  class MnemonicProvider {
20
8
  constructor(params) {
21
- _MnemonicProvider_wallet.set(this, void 0);
22
- _MnemonicProvider_secretKey.set(this, void 0);
23
- _MnemonicProvider_client.set(this, void 0);
24
- _MnemonicProvider_ui.set(this, void 0);
25
- _MnemonicProvider_network.set(this, void 0);
26
9
  if (!(params.version in wallets_1.wallets)) {
27
10
  throw new Error(`Unknown wallet version ${params.version}, expected one of ${Object.keys(wallets_1.wallets).join(', ')}`);
28
11
  }
29
- __classPrivateFieldSet(this, _MnemonicProvider_client, params.client, "f");
30
- __classPrivateFieldSet(this, _MnemonicProvider_network, params.network, "f");
12
+ this.client = params.client;
13
+ this.network = params.network;
31
14
  const kp = (0, crypto_1.keyPairFromSecretKey)(params.secretKey);
32
- __classPrivateFieldSet(this, _MnemonicProvider_wallet, (0, core_1.openContract)(this.createWallet(params, kp), (params) => __classPrivateFieldGet(this, _MnemonicProvider_client, "f").provider(params.address, params.init && {
15
+ this.wallet = (0, core_1.openContract)(this.createWallet(params, kp), (params) => this.client.provider(params.address, params.init && {
33
16
  ...params.init,
34
17
  data: params.init.data ?? undefined,
35
18
  code: params.init.code ?? undefined,
36
- })), "f");
37
- __classPrivateFieldSet(this, _MnemonicProvider_secretKey, kp.secretKey, "f");
38
- __classPrivateFieldSet(this, _MnemonicProvider_ui, params.ui, "f");
19
+ }));
20
+ this.secretKey = kp.secretKey;
21
+ this.ui = params.ui;
39
22
  }
40
23
  createWallet(params, kp) {
41
24
  if (params.version === 'v5r1') {
@@ -59,15 +42,15 @@ class MnemonicProvider {
59
42
  }
60
43
  async connect() {
61
44
  const formattedAddress = this.address().toString({
62
- testOnly: __classPrivateFieldGet(this, _MnemonicProvider_network, "f") === 'testnet',
45
+ testOnly: this.network === 'testnet',
63
46
  bounceable: false,
64
47
  });
65
- __classPrivateFieldGet(this, _MnemonicProvider_ui, "f").write(`Connected to wallet at address: ${formattedAddress}\n`);
48
+ this.ui.write(`Connected to wallet at address: ${formattedAddress}\n`);
66
49
  }
67
50
  async sendTransaction(address, amount, payload, stateInit) {
68
- await __classPrivateFieldGet(this, _MnemonicProvider_wallet, "f").sendTransfer({
69
- seqno: await __classPrivateFieldGet(this, _MnemonicProvider_wallet, "f").getSeqno(),
70
- secretKey: __classPrivateFieldGet(this, _MnemonicProvider_secretKey, "f"),
51
+ await this.wallet.sendTransfer({
52
+ seqno: await this.wallet.getSeqno(),
53
+ secretKey: this.secretKey,
71
54
  messages: [
72
55
  {
73
56
  init: stateInit,
@@ -88,11 +71,10 @@ class MnemonicProvider {
88
71
  ],
89
72
  sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
90
73
  });
91
- __classPrivateFieldGet(this, _MnemonicProvider_ui, "f").write('Sent transaction');
74
+ this.ui.write('Sent transaction');
92
75
  }
93
76
  address() {
94
- return __classPrivateFieldGet(this, _MnemonicProvider_wallet, "f").address;
77
+ return this.wallet.address;
95
78
  }
96
79
  }
97
80
  exports.MnemonicProvider = MnemonicProvider;
98
- _MnemonicProvider_wallet = new WeakMap(), _MnemonicProvider_secretKey = new WeakMap(), _MnemonicProvider_client = new WeakMap(), _MnemonicProvider_ui = new WeakMap(), _MnemonicProvider_network = new WeakMap();
@@ -4,7 +4,9 @@ import { Storage } from '../storage/Storage';
4
4
  import { UIProvider } from '../../ui/UIProvider';
5
5
  import { Network } from '../Network';
6
6
  export declare class TonConnectProvider implements SendProvider {
7
- #private;
7
+ private readonly connector;
8
+ private readonly ui;
9
+ private readonly network;
8
10
  constructor(storage: Storage, ui: UIProvider, network: Network, manifestUrl?: string);
9
11
  connect(): Promise<void>;
10
12
  address(): Address | undefined;
@@ -1,19 +1,7 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
- var _TonConnectStorage_inner, _TonConnectProvider_connector, _TonConnectProvider_ui, _TonConnectProvider_network;
17
5
  Object.defineProperty(exports, "__esModule", { value: true });
18
6
  exports.TonConnectProvider = void 0;
19
7
  const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
@@ -21,66 +9,61 @@ const sdk_1 = __importDefault(require("@tonconnect/sdk"));
21
9
  const core_1 = require("@ton/core");
22
10
  class TonConnectStorage {
23
11
  constructor(inner) {
24
- _TonConnectStorage_inner.set(this, void 0);
25
- __classPrivateFieldSet(this, _TonConnectStorage_inner, inner, "f");
12
+ this.inner = inner;
26
13
  }
27
14
  async setItem(key, value) {
28
- return await __classPrivateFieldGet(this, _TonConnectStorage_inner, "f").setItem(key, value);
15
+ return await this.inner.setItem(key, value);
29
16
  }
30
17
  async getItem(key) {
31
- return await __classPrivateFieldGet(this, _TonConnectStorage_inner, "f").getItem(key);
18
+ return await this.inner.getItem(key);
32
19
  }
33
20
  async removeItem(key) {
34
- return await __classPrivateFieldGet(this, _TonConnectStorage_inner, "f").removeItem(key);
21
+ return await this.inner.removeItem(key);
35
22
  }
36
23
  }
37
- _TonConnectStorage_inner = new WeakMap();
38
24
  function isRemote(walletInfo) {
39
25
  return 'universalLink' in walletInfo && 'bridgeUrl' in walletInfo;
40
26
  }
41
27
  class TonConnectProvider {
42
28
  constructor(storage, ui, network, manifestUrl = 'https://raw.githubusercontent.com/ton-org/blueprint/main/tonconnect/manifest.json') {
43
- _TonConnectProvider_connector.set(this, void 0);
44
- _TonConnectProvider_ui.set(this, void 0);
45
- _TonConnectProvider_network.set(this, void 0);
46
- __classPrivateFieldSet(this, _TonConnectProvider_connector, new sdk_1.default({
29
+ this.connector = new sdk_1.default({
47
30
  storage: new TonConnectStorage(storage),
48
31
  manifestUrl,
49
- }), "f");
50
- __classPrivateFieldSet(this, _TonConnectProvider_ui, ui, "f");
51
- __classPrivateFieldSet(this, _TonConnectProvider_network, network, "f");
32
+ });
33
+ this.ui = ui;
34
+ this.network = network;
52
35
  }
53
36
  async connect() {
54
37
  await this.connectWallet();
55
- const formattedAddress = core_1.Address.parse(__classPrivateFieldGet(this, _TonConnectProvider_connector, "f").wallet.account.address).toString({
56
- testOnly: __classPrivateFieldGet(this, _TonConnectProvider_network, "f") === 'testnet',
38
+ const formattedAddress = core_1.Address.parse(this.connector.wallet.account.address).toString({
39
+ testOnly: this.network === 'testnet',
57
40
  bounceable: false,
58
41
  });
59
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").write(`Connected to wallet at address: ${formattedAddress}\n`);
42
+ this.ui.write(`Connected to wallet at address: ${formattedAddress}\n`);
60
43
  }
61
44
  address() {
62
- if (!__classPrivateFieldGet(this, _TonConnectProvider_connector, "f").wallet)
45
+ if (!this.connector.wallet)
63
46
  return undefined;
64
- return core_1.Address.parse(__classPrivateFieldGet(this, _TonConnectProvider_connector, "f").wallet.account.address);
47
+ return core_1.Address.parse(this.connector.wallet.account.address);
65
48
  }
66
49
  async connectWallet() {
67
- const wallets = (await __classPrivateFieldGet(this, _TonConnectProvider_connector, "f").getWallets()).filter(isRemote);
68
- await __classPrivateFieldGet(this, _TonConnectProvider_connector, "f").restoreConnection();
69
- if (__classPrivateFieldGet(this, _TonConnectProvider_connector, "f").wallet) {
50
+ const wallets = (await this.connector.getWallets()).filter(isRemote);
51
+ await this.connector.restoreConnection();
52
+ if (this.connector.wallet) {
70
53
  return;
71
54
  }
72
- const wallet = await __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").choose('Choose your wallet', wallets, (w) => w.name);
73
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").setActionPrompt('Connecting to wallet...');
74
- const url = __classPrivateFieldGet(this, _TonConnectProvider_connector, "f").connect({
55
+ const wallet = await this.ui.choose('Choose your wallet', wallets, (w) => w.name);
56
+ this.ui.setActionPrompt('Connecting to wallet...');
57
+ const url = this.connector.connect({
75
58
  universalLink: wallet.universalLink,
76
59
  bridgeUrl: wallet.bridgeUrl,
77
60
  });
78
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").write('\n');
79
- qrcode_terminal_1.default.generate(url, { small: true }, (qr) => __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").write(qr));
80
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").write('\n' + url + '\n\n');
81
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").setActionPrompt('Scan the QR code in your wallet or open the link...');
61
+ this.ui.write('\n');
62
+ qrcode_terminal_1.default.generate(url, { small: true }, (qr) => this.ui.write(qr));
63
+ this.ui.write('\n' + url + '\n\n');
64
+ this.ui.setActionPrompt('Scan the QR code in your wallet or open the link...');
82
65
  return new Promise((resolve, reject) => {
83
- __classPrivateFieldGet(this, _TonConnectProvider_connector, "f").onStatusChange((w) => {
66
+ this.connector.onStatusChange((w) => {
84
67
  if (w) {
85
68
  resolve();
86
69
  }
@@ -91,8 +74,8 @@ class TonConnectProvider {
91
74
  });
92
75
  }
93
76
  async sendTransaction(address, amount, payload, stateInit) {
94
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").setActionPrompt('Sending transaction. Approve in your wallet...');
95
- const result = await __classPrivateFieldGet(this, _TonConnectProvider_connector, "f").sendTransaction({
77
+ this.ui.setActionPrompt('Sending transaction. Approve in your wallet...');
78
+ const result = await this.connector.sendTransaction({
96
79
  validUntil: Date.now() + 5 * 60 * 1000,
97
80
  messages: [
98
81
  {
@@ -105,10 +88,9 @@ class TonConnectProvider {
105
88
  },
106
89
  ],
107
90
  });
108
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").clearActionPrompt();
109
- __classPrivateFieldGet(this, _TonConnectProvider_ui, "f").write('Sent transaction');
91
+ this.ui.clearActionPrompt();
92
+ this.ui.write('Sent transaction');
110
93
  return result;
111
94
  }
112
95
  }
113
96
  exports.TonConnectProvider = TonConnectProvider;
114
- _TonConnectProvider_connector = new WeakMap(), _TonConnectProvider_ui = new WeakMap(), _TonConnectProvider_network = new WeakMap();
@@ -1,7 +1,9 @@
1
1
  import { Storage } from './Storage';
2
2
  export declare class FSStorage implements Storage {
3
- #private;
3
+ private readonly path;
4
4
  constructor(path: string);
5
+ private readObject;
6
+ private writeObject;
5
7
  setItem(key: string, value: string): Promise<void>;
6
8
  getItem(key: string): Promise<string | null>;
7
9
  removeItem(key: string): Promise<void>;