@getomnichain/omnichain 0.6.3 → 0.7.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.
- package/CHANGELOG.md +38 -0
- package/dist/cjs/chain_ids.js +2 -2
- package/dist/cjs/chain_ids.js.map +1 -1
- package/dist/cjs/errors.js +6 -0
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/ton/index.js +12 -0
- package/dist/cjs/ton/index.js.map +1 -1
- package/dist/cjs/ton/ton_address.js +72 -14
- package/dist/cjs/ton/ton_address.js.map +1 -1
- package/dist/cjs/ton/ton_asset.js +21 -0
- package/dist/cjs/ton/ton_asset.js.map +1 -0
- package/dist/cjs/ton/ton_assets.js +10 -0
- package/dist/cjs/ton/ton_assets.js.map +1 -0
- package/dist/cjs/ton/ton_chain.js +483 -0
- package/dist/cjs/ton/ton_chain.js.map +1 -0
- package/dist/cjs/ton/ton_chains.js +21 -0
- package/dist/cjs/ton/ton_chains.js.map +1 -0
- package/dist/cjs/ton/ton_jetton_metadata.js +107 -0
- package/dist/cjs/ton/ton_jetton_metadata.js.map +1 -0
- package/dist/cjs/ton/ton_messages.js +174 -0
- package/dist/cjs/ton/ton_messages.js.map +1 -0
- package/dist/cjs/ton/ton_provider.js +456 -0
- package/dist/cjs/ton/ton_provider.js.map +1 -0
- package/dist/cjs/ton/ton_tonapi.js +243 -0
- package/dist/cjs/ton/ton_tonapi.js.map +1 -0
- package/dist/cjs/ton/ton_toncenter.js +252 -0
- package/dist/cjs/ton/ton_toncenter.js.map +1 -0
- package/dist/cjs/ton/ton_transaction_status.js +231 -0
- package/dist/cjs/ton/ton_transaction_status.js.map +1 -0
- package/dist/cjs/ton/ton_transactions.js +107 -0
- package/dist/cjs/ton/ton_transactions.js.map +1 -0
- package/dist/cjs/ton/ton_wallet.js +285 -0
- package/dist/cjs/ton/ton_wallet.js.map +1 -0
- package/dist/esm/chain_ids.js +2 -2
- package/dist/esm/chain_ids.js.map +1 -1
- package/dist/esm/errors.d.ts +3 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +5 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ton/index.d.ts +12 -0
- package/dist/esm/ton/index.d.ts.map +1 -1
- package/dist/esm/ton/index.js +12 -0
- package/dist/esm/ton/index.js.map +1 -1
- package/dist/esm/ton/ton_address.d.ts +26 -2
- package/dist/esm/ton/ton_address.d.ts.map +1 -1
- package/dist/esm/ton/ton_address.js +70 -14
- package/dist/esm/ton/ton_address.js.map +1 -1
- package/dist/esm/ton/ton_asset.d.ts +12 -0
- package/dist/esm/ton/ton_asset.d.ts.map +1 -0
- package/dist/esm/ton/ton_asset.js +17 -0
- package/dist/esm/ton/ton_asset.js.map +1 -0
- package/dist/esm/ton/ton_assets.d.ts +6 -0
- package/dist/esm/ton/ton_assets.d.ts.map +1 -0
- package/dist/esm/ton/ton_assets.js +7 -0
- package/dist/esm/ton/ton_assets.js.map +1 -0
- package/dist/esm/ton/ton_chain.d.ts +205 -0
- package/dist/esm/ton/ton_chain.d.ts.map +1 -0
- package/dist/esm/ton/ton_chain.js +479 -0
- package/dist/esm/ton/ton_chain.js.map +1 -0
- package/dist/esm/ton/ton_chains.d.ts +11 -0
- package/dist/esm/ton/ton_chains.d.ts.map +1 -0
- package/dist/esm/ton/ton_chains.js +18 -0
- package/dist/esm/ton/ton_chains.js.map +1 -0
- package/dist/esm/ton/ton_jetton_metadata.d.ts +36 -0
- package/dist/esm/ton/ton_jetton_metadata.d.ts.map +1 -0
- package/dist/esm/ton/ton_jetton_metadata.js +103 -0
- package/dist/esm/ton/ton_jetton_metadata.js.map +1 -0
- package/dist/esm/ton/ton_messages.d.ts +133 -0
- package/dist/esm/ton/ton_messages.d.ts.map +1 -0
- package/dist/esm/ton/ton_messages.js +159 -0
- package/dist/esm/ton/ton_messages.js.map +1 -0
- package/dist/esm/ton/ton_provider.d.ts +261 -0
- package/dist/esm/ton/ton_provider.d.ts.map +1 -0
- package/dist/esm/ton/ton_provider.js +432 -0
- package/dist/esm/ton/ton_provider.js.map +1 -0
- package/dist/esm/ton/ton_tonapi.d.ts +39 -0
- package/dist/esm/ton/ton_tonapi.d.ts.map +1 -0
- package/dist/esm/ton/ton_tonapi.js +239 -0
- package/dist/esm/ton/ton_tonapi.js.map +1 -0
- package/dist/esm/ton/ton_toncenter.d.ts +25 -0
- package/dist/esm/ton/ton_toncenter.d.ts.map +1 -0
- package/dist/esm/ton/ton_toncenter.js +248 -0
- package/dist/esm/ton/ton_toncenter.js.map +1 -0
- package/dist/esm/ton/ton_transaction_status.d.ts +116 -0
- package/dist/esm/ton/ton_transaction_status.d.ts.map +1 -0
- package/dist/esm/ton/ton_transaction_status.js +226 -0
- package/dist/esm/ton/ton_transaction_status.js.map +1 -0
- package/dist/esm/ton/ton_transactions.d.ts +54 -0
- package/dist/esm/ton/ton_transactions.d.ts.map +1 -0
- package/dist/esm/ton/ton_transactions.js +100 -0
- package/dist/esm/ton/ton_transactions.js.map +1 -0
- package/dist/esm/ton/ton_wallet.d.ts +134 -0
- package/dist/esm/ton/ton_wallet.d.ts.map +1 -0
- package/dist/esm/ton/ton_wallet.js +278 -0
- package/dist/esm/ton/ton_wallet.js.map +1 -0
- package/docs/README.md +2 -1
- package/docs/ton.md +164 -0
- package/package.json +5 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton_provider.js","sourceRoot":"","sources":["../../../ton/ton_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TonapiProvider = void 0;
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
5
|
+
const errors_ts_1 = require("../errors.js");
|
|
6
|
+
const ton_address_ts_1 = require("./ton_address.js");
|
|
7
|
+
const ton_provider_ts_1 = require("./ton_provider.js");
|
|
8
|
+
const NAME = 'TonAPI';
|
|
9
|
+
/** The get-method exit code for an account with no code to run. */
|
|
10
|
+
const NO_CODE_EXIT_CODE = -13;
|
|
11
|
+
const BLOCK_ID_REGEX = /^\((-?\d+),([0-9a-fA-F]+),(\d+)\)$/;
|
|
12
|
+
/** TonAPI (`/v2`), the fallback provider. */
|
|
13
|
+
class TonapiProvider {
|
|
14
|
+
endpoint;
|
|
15
|
+
name = NAME;
|
|
16
|
+
constructor(endpoint) {
|
|
17
|
+
this.endpoint = endpoint;
|
|
18
|
+
}
|
|
19
|
+
async getAccountState(address) {
|
|
20
|
+
// TonAPI states `nonexist` for a never-used address; no reply says nothing.
|
|
21
|
+
const reply = await this.get(`/v2/accounts/${encodeURIComponent((0, ton_address_ts_1.tonRawAddress)(address))}`);
|
|
22
|
+
if (reply === null)
|
|
23
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned no account for ${address}`, true);
|
|
24
|
+
const account = (0, ton_provider_ts_1.asRecord)(reply, 'account');
|
|
25
|
+
return {
|
|
26
|
+
status: (0, ton_provider_ts_1.asStatedAccountStatus)(account.status),
|
|
27
|
+
balance: (0, ton_provider_ts_1.asBigInt)(account.balance, 'balance'),
|
|
28
|
+
codeHash: typeof account.code_hash === 'string' ? account.code_hash : null,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async getSeqno(address) {
|
|
32
|
+
const reply = await this.get(`/v2/wallet/${encodeURIComponent((0, ton_address_ts_1.tonRawAddress)(address))}/seqno`);
|
|
33
|
+
if (reply === null)
|
|
34
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} has no seqno for ${address}`, true);
|
|
35
|
+
return (0, ton_provider_ts_1.asRequiredInteger)((0, ton_provider_ts_1.asRecord)(reply, 'seqno').seqno, 'seqno');
|
|
36
|
+
}
|
|
37
|
+
async getJettonWalletAddress(jettonMaster, owner) {
|
|
38
|
+
const result = await this.runGetMethod(jettonMaster, 'get_wallet_address', [(0, ton_address_ts_1.tonRawAddress)(owner)]);
|
|
39
|
+
const decoded = result === null ? null : result.decoded;
|
|
40
|
+
if (decoded === null || typeof decoded !== 'object' || typeof decoded.jetton_wallet_address !== 'string') {
|
|
41
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.InvalidTokenIdentifier, `${jettonMaster} is not a jetton master`);
|
|
42
|
+
}
|
|
43
|
+
return (0, ton_address_ts_1.tonRawAddress)(String(decoded.jetton_wallet_address));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 0 only for a jetton wallet with no code: TonAPI answers a get-method on
|
|
47
|
+
* one with 404 (or exit code -13), which other failures can also produce, so
|
|
48
|
+
* the account state confirms it. Any other failure throws.
|
|
49
|
+
*/
|
|
50
|
+
async getJettonBalance(jettonWallet) {
|
|
51
|
+
const reply = await this.get(this.getMethodPath(jettonWallet, 'get_wallet_data', []));
|
|
52
|
+
const result = reply === null ? null : (0, ton_provider_ts_1.asRecord)(reply, 'get_wallet_data');
|
|
53
|
+
if (result === null || (result.success !== true && Number(result.exit_code) === NO_CODE_EXIT_CODE)) {
|
|
54
|
+
const state = await this.getAccountState(jettonWallet);
|
|
55
|
+
if (state.status === 'nonexist' || state.status === 'uninit')
|
|
56
|
+
return 0n;
|
|
57
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_wallet_data on ${jettonWallet}, which is ${state.status}`, true);
|
|
58
|
+
}
|
|
59
|
+
if (result.success !== true || Number(result.exit_code ?? 0) !== 0) {
|
|
60
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_wallet_data on ${jettonWallet}`, true);
|
|
61
|
+
}
|
|
62
|
+
const stack = Array.isArray(result.stack) ? result.stack : [];
|
|
63
|
+
const first = stack[0] === undefined ? null : (0, ton_provider_ts_1.asRecord)(stack[0], 'stack item');
|
|
64
|
+
if (first === null || first.type !== 'num')
|
|
65
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned no jetton balance`);
|
|
66
|
+
return (0, ton_provider_ts_1.asBigInt)(first.num, 'jetton balance');
|
|
67
|
+
}
|
|
68
|
+
async getJettonContent(jettonMaster) {
|
|
69
|
+
const reply = await this.get(this.getMethodPath(jettonMaster, 'get_jetton_data', []));
|
|
70
|
+
const result = reply === null ? null : (0, ton_provider_ts_1.asRecord)(reply, 'get_jetton_data');
|
|
71
|
+
if (result === null || result.success !== true || Number(result.exit_code ?? 0) !== 0) {
|
|
72
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.InvalidTokenIdentifier, `${jettonMaster} is not a jetton master`);
|
|
73
|
+
}
|
|
74
|
+
return (0, ton_provider_ts_1.stackCellOf)((Array.isArray(result.stack) ? result.stack : [])[3], 'jetton content');
|
|
75
|
+
}
|
|
76
|
+
/** `null` only for a jetton wallet with no code, confirmed by the account state as for the balance. */
|
|
77
|
+
async getJettonWalletData(jettonWallet) {
|
|
78
|
+
const reply = await this.get(this.getMethodPath(jettonWallet, 'get_wallet_data', []));
|
|
79
|
+
const result = reply === null ? null : (0, ton_provider_ts_1.asRecord)(reply, 'get_wallet_data');
|
|
80
|
+
if (result === null || (result.success !== true && Number(result.exit_code) === NO_CODE_EXIT_CODE)) {
|
|
81
|
+
const state = await this.getAccountState(jettonWallet);
|
|
82
|
+
if (state.status === 'nonexist' || state.status === 'uninit')
|
|
83
|
+
return null;
|
|
84
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_wallet_data on ${jettonWallet}, which is ${state.status}`, true);
|
|
85
|
+
}
|
|
86
|
+
if (result.success !== true || Number(result.exit_code ?? 0) !== 0) {
|
|
87
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_wallet_data on ${jettonWallet}`, true);
|
|
88
|
+
}
|
|
89
|
+
return (0, ton_provider_ts_1.jettonWalletDataOf)(result.stack);
|
|
90
|
+
}
|
|
91
|
+
async sendBoc(boc) {
|
|
92
|
+
const reply = await (0, ton_provider_ts_1.tonBroadcastReply)(NAME, (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, '/v2/blockchain/message', { method: 'POST', body: { boc }, headers: this.headers() }));
|
|
93
|
+
const error = (0, ton_provider_ts_1.errorMessageOf)(reply);
|
|
94
|
+
if (error !== null)
|
|
95
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.BroadcastRejected, `${NAME} refused the message: ${error}`);
|
|
96
|
+
}
|
|
97
|
+
async getTrace(hash) {
|
|
98
|
+
// TonAPI answers a hash it has no trace for with 404.
|
|
99
|
+
const reply = await this.get(`/v2/traces/${encodeURIComponent((0, ton_provider_ts_1.assertTonTxHash)(hash))}`);
|
|
100
|
+
if (reply === null)
|
|
101
|
+
return null;
|
|
102
|
+
// TonAPI answers a message still in flight with its emulation; only what
|
|
103
|
+
// is on chain counts, and a predicted hop leaves the trace incomplete.
|
|
104
|
+
if (reply.emulated === true)
|
|
105
|
+
return null;
|
|
106
|
+
const root = withoutEmulated(reply);
|
|
107
|
+
const transactions = await this.withMasterchainSeqnos(flatten(root));
|
|
108
|
+
return (0, ton_provider_ts_1.assertTraceOf)(NAME, hash, (0, ton_provider_ts_1.assertTraceConsistent)(NAME, { complete: isComplete(root), transactions }));
|
|
109
|
+
}
|
|
110
|
+
async emulate(boc) {
|
|
111
|
+
const reply = await (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, '/v2/traces/emulate?ignore_signature_check=true', {
|
|
112
|
+
method: 'POST',
|
|
113
|
+
body: { boc },
|
|
114
|
+
headers: this.headers(),
|
|
115
|
+
});
|
|
116
|
+
const error = (0, ton_provider_ts_1.errorMessageOf)(reply);
|
|
117
|
+
if (error !== null)
|
|
118
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.SimulationFailed, `${NAME} emulation failed: ${error}`);
|
|
119
|
+
const root = reply;
|
|
120
|
+
// An emulation is judged whole or not at all.
|
|
121
|
+
if (!isComplete(root))
|
|
122
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned an emulation cut short`, true);
|
|
123
|
+
return (0, ton_provider_ts_1.assertTraceConsistent)(NAME, { complete: true, transactions: flatten(root).map(({ tx, parent }) => toTransaction(tx, parent, null)) });
|
|
124
|
+
}
|
|
125
|
+
async getMasterchainHead() {
|
|
126
|
+
const reply = (0, ton_provider_ts_1.asRecord)(await this.get('/v2/blockchain/masterchain-head'), 'masterchain-head');
|
|
127
|
+
return { seqno: (0, ton_provider_ts_1.asRequiredInteger)(reply.seqno, 'masterchain seqno'), utime: (0, ton_provider_ts_1.asRequiredInteger)(reply.gen_utime, 'masterchain gen_utime') };
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Resolves each transaction's masterchain block: its own block on the
|
|
131
|
+
* masterchain, the shard block's `master_ref` otherwise. TonAPI serves only
|
|
132
|
+
* committed blocks, so a transaction it returns is final; `master_ref` is the
|
|
133
|
+
* masterchain block the shard block points back to, which can be a few
|
|
134
|
+
* blocks before the one TON Center reports as committing it.
|
|
135
|
+
*/
|
|
136
|
+
async withMasterchainSeqnos(transactions) {
|
|
137
|
+
const masterRefs = new Map();
|
|
138
|
+
for (const { tx } of transactions) {
|
|
139
|
+
const block = String(tx.block ?? '');
|
|
140
|
+
if (!masterRefs.has(block))
|
|
141
|
+
masterRefs.set(block, await this.masterchainSeqnoOf(block));
|
|
142
|
+
}
|
|
143
|
+
return transactions.map(({ tx, parent }) => toTransaction(tx, parent, masterRefs.get(String(tx.block ?? '')) ?? null));
|
|
144
|
+
}
|
|
145
|
+
async masterchainSeqnoOf(block) {
|
|
146
|
+
const match = BLOCK_ID_REGEX.exec(block);
|
|
147
|
+
if (match === null)
|
|
148
|
+
return null;
|
|
149
|
+
if (Number(match[1]) === -1)
|
|
150
|
+
return Number(match[3]);
|
|
151
|
+
const reply = await this.get(`/v2/blockchain/blocks/${encodeURIComponent(block)}`);
|
|
152
|
+
const masterRef = reply === null ? null : BLOCK_ID_REGEX.exec(String((0, ton_provider_ts_1.asRecord)(reply, 'block').master_ref ?? ''));
|
|
153
|
+
return masterRef === null ? null : Number(masterRef[3]);
|
|
154
|
+
}
|
|
155
|
+
/** The reply of a get-method that ran, or `null` when the account has no code to run it. */
|
|
156
|
+
async runGetMethod(address, method, args) {
|
|
157
|
+
const reply = await this.get(this.getMethodPath(address, method, args));
|
|
158
|
+
if (reply === null)
|
|
159
|
+
return null;
|
|
160
|
+
const result = (0, ton_provider_ts_1.asRecord)(reply, method);
|
|
161
|
+
return result.success === true && Number(result.exit_code ?? 0) === 0 ? result : null;
|
|
162
|
+
}
|
|
163
|
+
getMethodPath(address, method, args) {
|
|
164
|
+
const query = args.map((arg) => `args=${encodeURIComponent(arg)}`).join('&');
|
|
165
|
+
return `/v2/blockchain/accounts/${encodeURIComponent((0, ton_address_ts_1.tonRawAddress)(address))}/methods/${method}${query.length > 0 ? `?${query}` : ''}`;
|
|
166
|
+
}
|
|
167
|
+
get(path) {
|
|
168
|
+
return (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, path, { headers: this.headers() });
|
|
169
|
+
}
|
|
170
|
+
headers() {
|
|
171
|
+
return { authorization: `Bearer ${this.endpoint.apiKey}` };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exports.TonapiProvider = TonapiProvider;
|
|
175
|
+
function flatten(root) {
|
|
176
|
+
const ordered = [];
|
|
177
|
+
const queue = [{ node: root, parent: null }];
|
|
178
|
+
while (queue.length > 0) {
|
|
179
|
+
const { node, parent } = queue.shift();
|
|
180
|
+
const tx = (0, ton_provider_ts_1.asRecord)(node.transaction, 'transaction');
|
|
181
|
+
ordered.push({ tx, parent });
|
|
182
|
+
const hash = rawTransactionOf(tx).hash().toString('hex');
|
|
183
|
+
queue.push(...(node.children ?? []).map((child) => ({ node: child, parent: hash })));
|
|
184
|
+
}
|
|
185
|
+
return ordered;
|
|
186
|
+
}
|
|
187
|
+
function withoutEmulated(node) {
|
|
188
|
+
return { ...node, children: (node.children ?? []).filter((child) => child.emulated !== true).map(withoutEmulated) };
|
|
189
|
+
}
|
|
190
|
+
/** Every internal message a transaction sent has reached its destination's transaction. */
|
|
191
|
+
function isComplete(node) {
|
|
192
|
+
const children = node.children ?? [];
|
|
193
|
+
const sent = rawTransactionOf((0, ton_provider_ts_1.asRecord)(node.transaction, 'transaction'))
|
|
194
|
+
.outMessages.values()
|
|
195
|
+
.filter((message) => message.info.type === 'internal').length;
|
|
196
|
+
return sent <= children.length && children.every(isComplete);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* TonAPI's trace transactions carry no `out_msgs`; the messages are read from
|
|
200
|
+
* the transaction's own BOC (`raw`), which also gives the exact values and
|
|
201
|
+
* forward fees.
|
|
202
|
+
*/
|
|
203
|
+
function rawTransactionOf(tx) {
|
|
204
|
+
if (typeof tx.raw !== 'string')
|
|
205
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} trace transaction has no raw BOC`);
|
|
206
|
+
return (0, core_1.loadTransaction)(core_1.Cell.fromBoc(Buffer.from(tx.raw, 'hex'))[0].beginParse());
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* The phases from the transaction's own BOC, the chain's record — not
|
|
210
|
+
* TonAPI's JSON phase fields, which are optional.
|
|
211
|
+
*/
|
|
212
|
+
function phasesOf(raw) {
|
|
213
|
+
const description = raw.description;
|
|
214
|
+
if (description.type !== 'generic' && description.type !== 'tick-tock') {
|
|
215
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} trace holds a ${description.type} transaction`, true);
|
|
216
|
+
}
|
|
217
|
+
const compute = description.computePhase;
|
|
218
|
+
const action = description.actionPhase ?? null;
|
|
219
|
+
return {
|
|
220
|
+
computeSkipped: compute.type === 'skipped' ? compute.reason.replace('-', '_') : null,
|
|
221
|
+
computeSuccess: compute.type === 'vm' && compute.success,
|
|
222
|
+
computeExitCode: compute.type === 'vm' ? compute.exitCode : null,
|
|
223
|
+
action: action === null ? null : { success: action.success, resultCode: action.resultCode, skippedActions: action.skippedActions },
|
|
224
|
+
aborted: description.aborted,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function toTransaction(tx, parent, mcSeqno) {
|
|
228
|
+
const raw = rawTransactionOf(tx);
|
|
229
|
+
return {
|
|
230
|
+
hash: raw.hash().toString('hex'),
|
|
231
|
+
parent,
|
|
232
|
+
account: (0, ton_address_ts_1.tonRawAddress)(String((0, ton_provider_ts_1.asRecord)(tx.account, 'account').address)),
|
|
233
|
+
...(0, ton_provider_ts_1.tonTransactionOutcome)(phasesOf(raw)),
|
|
234
|
+
totalFees: raw.totalFees.coins,
|
|
235
|
+
origStatus: (0, ton_provider_ts_1.asAccountStatus)(tx.orig_status),
|
|
236
|
+
endStatus: (0, ton_provider_ts_1.asAccountStatus)(tx.end_status),
|
|
237
|
+
inMsg: raw.inMessage === undefined || raw.inMessage === null ? null : (0, ton_provider_ts_1.tonTraceMessageOf)(raw.inMessage),
|
|
238
|
+
outMsgs: raw.outMessages.values().map(ton_provider_ts_1.tonTraceMessageOf),
|
|
239
|
+
mcSeqno,
|
|
240
|
+
utime: raw.now,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=ton_tonapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton_tonapi.js","sourceRoot":"","sources":["../../../ton/ton_tonapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToncenterProvider = void 0;
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
5
|
+
const errors_ts_1 = require("../errors.js");
|
|
6
|
+
const ton_address_ts_1 = require("./ton_address.js");
|
|
7
|
+
const ton_messages_ts_1 = require("./ton_messages.js");
|
|
8
|
+
const ton_provider_ts_1 = require("./ton_provider.js");
|
|
9
|
+
const NAME = 'TON Center';
|
|
10
|
+
/** TON Center's get-method exit code for an account with no code to run. */
|
|
11
|
+
const NO_CODE_EXIT_CODE = -13;
|
|
12
|
+
/** TON Center's indexer API (`/api/v3`) and its emulator (`/api/emulate/v1`). */
|
|
13
|
+
class ToncenterProvider {
|
|
14
|
+
endpoint;
|
|
15
|
+
name = NAME;
|
|
16
|
+
constructor(endpoint) {
|
|
17
|
+
this.endpoint = endpoint;
|
|
18
|
+
}
|
|
19
|
+
async getAccountState(address) {
|
|
20
|
+
const path = `/api/v3/accountStates?address=${encodeURIComponent((0, ton_address_ts_1.tonRawAddress)(address))}&include_boc=false`;
|
|
21
|
+
const reply = await (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, path, { headers: this.headers() });
|
|
22
|
+
// Only an explicit empty list means a never-used address.
|
|
23
|
+
if (reply === null || !Array.isArray(reply.accounts)) {
|
|
24
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned no account list for ${address}`, true);
|
|
25
|
+
}
|
|
26
|
+
const accounts = reply.accounts;
|
|
27
|
+
if (accounts.length === 0)
|
|
28
|
+
return { status: 'nonexist', balance: 0n, codeHash: null };
|
|
29
|
+
const account = (0, ton_provider_ts_1.asRecord)(accounts[0], 'account');
|
|
30
|
+
const balance = (0, ton_provider_ts_1.asBigInt)(account.balance, 'balance');
|
|
31
|
+
let status = (0, ton_provider_ts_1.asStatedAccountStatus)(account.status);
|
|
32
|
+
// TON Center reports a never-touched address as `uninit`; it has no history.
|
|
33
|
+
if (status === 'uninit' && balance === 0n && (account.last_transaction_lt ?? '0') === '0')
|
|
34
|
+
status = 'nonexist';
|
|
35
|
+
return { status, balance, codeHash: typeof account.code_hash === 'string' ? account.code_hash : null };
|
|
36
|
+
}
|
|
37
|
+
async getSeqno(address) {
|
|
38
|
+
const reply = await this.runGetMethodReply(address, 'seqno', []);
|
|
39
|
+
const exitCode = Number(reply.exit_code);
|
|
40
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) === null && exitCode === NO_CODE_EXIT_CODE)
|
|
41
|
+
return 0;
|
|
42
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) !== null || exitCode !== 0 || !Array.isArray(reply.stack)) {
|
|
43
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run seqno on ${address}`, true);
|
|
44
|
+
}
|
|
45
|
+
return (0, ton_provider_ts_1.asRequiredInteger)(String(numAt(reply.stack, 0, 'seqno')), 'seqno');
|
|
46
|
+
}
|
|
47
|
+
async getJettonWalletAddress(jettonMaster, owner) {
|
|
48
|
+
const ownerSlice = (0, core_1.beginCell)().storeAddress((0, ton_messages_ts_1.parseTonAddress)(owner)).endCell().toBoc().toString('base64');
|
|
49
|
+
const result = await this.runGetMethod(jettonMaster, 'get_wallet_address', [{ type: 'slice', value: ownerSlice }]);
|
|
50
|
+
if (result === null)
|
|
51
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.InvalidTokenIdentifier, `${jettonMaster} is not a jetton master`);
|
|
52
|
+
const item = result[0];
|
|
53
|
+
if (item === undefined || (item.type !== 'cell' && item.type !== 'slice')) {
|
|
54
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} get_wallet_address returned no address`);
|
|
55
|
+
}
|
|
56
|
+
return core_1.Cell.fromBase64(item.value).beginParse().loadAddress().toRawString();
|
|
57
|
+
}
|
|
58
|
+
/** 0 only on the explicit answer that the jetton wallet has no code; a failed read throws. */
|
|
59
|
+
async getJettonBalance(jettonWallet) {
|
|
60
|
+
const reply = await this.runGetMethodReply(jettonWallet, 'get_wallet_data', []);
|
|
61
|
+
const exitCode = Number(reply.exit_code);
|
|
62
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) === null && exitCode === NO_CODE_EXIT_CODE)
|
|
63
|
+
return 0n;
|
|
64
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) !== null || exitCode !== 0 || !Array.isArray(reply.stack)) {
|
|
65
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_wallet_data on ${jettonWallet}`, true);
|
|
66
|
+
}
|
|
67
|
+
return numAt(reply.stack, 0, 'jetton balance');
|
|
68
|
+
}
|
|
69
|
+
async getJettonContent(jettonMaster) {
|
|
70
|
+
const reply = await this.runGetMethodReply(jettonMaster, 'get_jetton_data', []);
|
|
71
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) !== null) {
|
|
72
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_jetton_data on ${jettonMaster}`, true);
|
|
73
|
+
}
|
|
74
|
+
// A VM exit code is the chain's answer: no code (-13), or no such get-method.
|
|
75
|
+
if (Number(reply.exit_code) !== 0)
|
|
76
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.InvalidTokenIdentifier, `${jettonMaster} is not a jetton master`);
|
|
77
|
+
const stack = Array.isArray(reply.stack) ? reply.stack : [];
|
|
78
|
+
return (0, ton_provider_ts_1.stackCellOf)(stack[3], 'jetton content');
|
|
79
|
+
}
|
|
80
|
+
async getJettonWalletData(jettonWallet) {
|
|
81
|
+
const reply = await this.runGetMethodReply(jettonWallet, 'get_wallet_data', []);
|
|
82
|
+
const exitCode = Number(reply.exit_code);
|
|
83
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) === null && exitCode === NO_CODE_EXIT_CODE)
|
|
84
|
+
return null;
|
|
85
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) !== null || exitCode !== 0) {
|
|
86
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} could not run get_wallet_data on ${jettonWallet}`, true);
|
|
87
|
+
}
|
|
88
|
+
return (0, ton_provider_ts_1.jettonWalletDataOf)(reply.stack);
|
|
89
|
+
}
|
|
90
|
+
async sendBoc(boc) {
|
|
91
|
+
const reply = await (0, ton_provider_ts_1.tonBroadcastReply)(NAME, (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, '/api/v3/message', { method: 'POST', body: { boc }, headers: this.headers() }));
|
|
92
|
+
const error = (0, ton_provider_ts_1.errorMessageOf)(reply);
|
|
93
|
+
if (error !== null)
|
|
94
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.BroadcastRejected, `${NAME} refused the message: ${error}`);
|
|
95
|
+
}
|
|
96
|
+
async getTrace(hash) {
|
|
97
|
+
const reply = await (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, `/api/v3/traces?msg_hash=${encodeURIComponent(hexToBase64((0, ton_provider_ts_1.assertTonTxHash)(hash)))}`, {
|
|
98
|
+
headers: this.headers(),
|
|
99
|
+
});
|
|
100
|
+
// Only an explicit empty list means no trace; anything else says nothing.
|
|
101
|
+
if (reply === null || !Array.isArray(reply.traces)) {
|
|
102
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned no trace list for ${hash}`, true);
|
|
103
|
+
}
|
|
104
|
+
const traces = reply.traces;
|
|
105
|
+
if (traces.length === 0)
|
|
106
|
+
return null;
|
|
107
|
+
const trace = (0, ton_provider_ts_1.asRecord)(traces[0], 'trace');
|
|
108
|
+
const info = (0, ton_provider_ts_1.asRecord)(trace.trace_info ?? {}, 'trace_info');
|
|
109
|
+
const { transactions, missing } = orderedTransactions(trace.trace, (0, ton_provider_ts_1.asRecord)(trace.transactions, 'transactions'));
|
|
110
|
+
const finished = trace.is_incomplete !== true && info.trace_state === 'complete' && Number(info.pending_messages ?? 0) === 0;
|
|
111
|
+
// A trace still running may not have every transaction yet; a finished one
|
|
112
|
+
// without them never will, so TonAPI is asked instead.
|
|
113
|
+
if (finished && missing) {
|
|
114
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned a finished trace with transactions left out`, true);
|
|
115
|
+
}
|
|
116
|
+
return (0, ton_provider_ts_1.assertTraceOf)(NAME, hash, (0, ton_provider_ts_1.assertTraceConsistent)(NAME, { complete: finished && !missing, transactions }));
|
|
117
|
+
}
|
|
118
|
+
async emulate(boc) {
|
|
119
|
+
const reply = await (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, '/api/emulate/v1/emulateTrace', {
|
|
120
|
+
method: 'POST',
|
|
121
|
+
body: { boc, ignore_chksig: true },
|
|
122
|
+
headers: this.headers(),
|
|
123
|
+
});
|
|
124
|
+
const error = (0, ton_provider_ts_1.errorMessageOf)(reply);
|
|
125
|
+
if (error !== null)
|
|
126
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.SimulationFailed, `${NAME} emulation failed: ${error}`);
|
|
127
|
+
const result = (0, ton_provider_ts_1.asRecord)(reply, 'emulation');
|
|
128
|
+
const { transactions, missing } = orderedTransactions(result.trace, (0, ton_provider_ts_1.asRecord)(result.transactions, 'transactions'));
|
|
129
|
+
// An emulation is judged whole or not at all; one cut short is asked of TonAPI.
|
|
130
|
+
if (missing || result.is_incomplete === true) {
|
|
131
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned an emulation cut short`, true);
|
|
132
|
+
}
|
|
133
|
+
return (0, ton_provider_ts_1.assertTraceConsistent)(NAME, { complete: true, transactions });
|
|
134
|
+
}
|
|
135
|
+
async getMasterchainHead() {
|
|
136
|
+
const reply = (0, ton_provider_ts_1.asRecord)(await this.get('/api/v3/masterchainInfo'), 'masterchainInfo');
|
|
137
|
+
const last = (0, ton_provider_ts_1.asRecord)(reply.last, 'last');
|
|
138
|
+
return { seqno: (0, ton_provider_ts_1.asRequiredInteger)(last.seqno, 'masterchain seqno'), utime: (0, ton_provider_ts_1.asRequiredInteger)(last.gen_utime, 'masterchain gen_utime') };
|
|
139
|
+
}
|
|
140
|
+
/** The stack of a get-method that ran, or `null` when the account has no code to run it. */
|
|
141
|
+
async runGetMethod(address, method, stack) {
|
|
142
|
+
const reply = await this.runGetMethodReply(address, method, stack);
|
|
143
|
+
if ((0, ton_provider_ts_1.errorMessageOf)(reply) !== null || Number(reply.exit_code ?? 0) !== 0)
|
|
144
|
+
return null;
|
|
145
|
+
return Array.isArray(reply.stack) ? reply.stack : [];
|
|
146
|
+
}
|
|
147
|
+
async runGetMethodReply(address, method, stack) {
|
|
148
|
+
const reply = await (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, '/api/v3/runGetMethod', {
|
|
149
|
+
method: 'POST',
|
|
150
|
+
body: { address: (0, ton_address_ts_1.tonRawAddress)(address), method, stack },
|
|
151
|
+
headers: this.headers(),
|
|
152
|
+
});
|
|
153
|
+
if (reply === null)
|
|
154
|
+
throw new ton_provider_ts_1.TonProviderError(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} runGetMethod returned nothing`, true);
|
|
155
|
+
return (0, ton_provider_ts_1.asRecord)(reply, 'runGetMethod');
|
|
156
|
+
}
|
|
157
|
+
async get(path) {
|
|
158
|
+
return (await (0, ton_provider_ts_1.tonHttpJson)(NAME, this.endpoint, path, { headers: this.headers() })) ?? {};
|
|
159
|
+
}
|
|
160
|
+
headers() {
|
|
161
|
+
return { 'X-API-Key': this.endpoint.apiKey };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.ToncenterProvider = ToncenterProvider;
|
|
165
|
+
function numAt(stack, index, what) {
|
|
166
|
+
const item = stack[index];
|
|
167
|
+
if (item === undefined || item.type !== 'num')
|
|
168
|
+
throw (0, ton_provider_ts_1.definiteError)(errors_ts_1.ChainErrorKinds.RpcError, `${NAME} returned no ${what}`);
|
|
169
|
+
return (0, ton_provider_ts_1.asBigInt)(item.value, what);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* The trace's transactions, root first then breadth-first along the trace
|
|
173
|
+
* tree. A node whose transaction the reply left out stays the parent of its
|
|
174
|
+
* children, and makes the trace `missing` a part.
|
|
175
|
+
*/
|
|
176
|
+
function orderedTransactions(tree, byHash) {
|
|
177
|
+
const ordered = [];
|
|
178
|
+
let missing = false;
|
|
179
|
+
const queue = tree === undefined || tree === null ? [] : [{ node: tree, parent: null }];
|
|
180
|
+
while (queue.length > 0) {
|
|
181
|
+
const { node: raw, parent } = queue.shift();
|
|
182
|
+
const node = (0, ton_provider_ts_1.asRecord)(raw, 'trace node');
|
|
183
|
+
const tx = byHash[String(node.tx_hash)];
|
|
184
|
+
if (tx === undefined)
|
|
185
|
+
missing = true;
|
|
186
|
+
else
|
|
187
|
+
ordered.push(toTransaction((0, ton_provider_ts_1.asRecord)(tx, 'transaction'), parent));
|
|
188
|
+
const children = Array.isArray(node.children) ? node.children : [];
|
|
189
|
+
queue.push(...children.map((child) => ({ node: child, parent: base64ToHex(String(node.tx_hash)) })));
|
|
190
|
+
}
|
|
191
|
+
return { transactions: ordered, missing };
|
|
192
|
+
}
|
|
193
|
+
/** The phases from TON Center's `description`, every field the judgment reads required. */
|
|
194
|
+
function phasesOf(tx) {
|
|
195
|
+
const description = (0, ton_provider_ts_1.asRequiredRecord)(tx.description, 'transaction description');
|
|
196
|
+
const compute = (0, ton_provider_ts_1.asRequiredRecord)(description.compute_ph, 'compute_ph');
|
|
197
|
+
const skipped = (0, ton_provider_ts_1.asRequiredBoolean)(compute.skipped, 'compute_ph.skipped');
|
|
198
|
+
const action = description.action === undefined || description.action === null ? null : (0, ton_provider_ts_1.asRequiredRecord)(description.action, 'action');
|
|
199
|
+
return {
|
|
200
|
+
computeSkipped: skipped ? String(compute.reason) : null,
|
|
201
|
+
computeSuccess: skipped ? false : (0, ton_provider_ts_1.asRequiredBoolean)(compute.success, 'compute_ph.success'),
|
|
202
|
+
computeExitCode: skipped ? null : (0, ton_provider_ts_1.asRequiredInteger)(compute.exit_code, 'compute_ph.exit_code'),
|
|
203
|
+
action: action === null
|
|
204
|
+
? null
|
|
205
|
+
: {
|
|
206
|
+
success: (0, ton_provider_ts_1.asRequiredBoolean)(action.success, 'action.success'),
|
|
207
|
+
resultCode: (0, ton_provider_ts_1.asRequiredInteger)(action.result_code, 'action.result_code'),
|
|
208
|
+
skippedActions: (0, ton_provider_ts_1.asRequiredInteger)(action.skipped_actions, 'action.skipped_actions'),
|
|
209
|
+
},
|
|
210
|
+
aborted: (0, ton_provider_ts_1.asRequiredBoolean)(description.aborted, 'description.aborted'),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
function toTransaction(tx, parent) {
|
|
214
|
+
const finalized = tx.finality === undefined || tx.finality === 'finalized';
|
|
215
|
+
return {
|
|
216
|
+
hash: base64ToHex(String(tx.hash)),
|
|
217
|
+
parent,
|
|
218
|
+
account: (0, ton_address_ts_1.tonRawAddress)(String(tx.account)),
|
|
219
|
+
...(0, ton_provider_ts_1.tonTransactionOutcome)(phasesOf(tx)),
|
|
220
|
+
totalFees: (0, ton_provider_ts_1.asBigInt)(tx.total_fees, 'total_fees'),
|
|
221
|
+
origStatus: (0, ton_provider_ts_1.asAccountStatus)(tx.orig_status),
|
|
222
|
+
endStatus: (0, ton_provider_ts_1.asAccountStatus)(tx.end_status),
|
|
223
|
+
inMsg: tx.in_msg === null || tx.in_msg === undefined ? null : toMessage((0, ton_provider_ts_1.asRecord)(tx.in_msg, 'in_msg')),
|
|
224
|
+
outMsgs: (Array.isArray(tx.out_msgs) ? tx.out_msgs : []).map((m) => toMessage((0, ton_provider_ts_1.asRecord)(m, 'out_msg'))),
|
|
225
|
+
mcSeqno: finalized && typeof tx.mc_block_seqno === 'number' ? tx.mc_block_seqno : null,
|
|
226
|
+
utime: Number(tx.now ?? 0),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
function toMessage(msg) {
|
|
230
|
+
const content = msg.message_content === null || msg.message_content === undefined ? null : (0, ton_provider_ts_1.asRecord)(msg.message_content, 'message_content');
|
|
231
|
+
const cell = content !== null && typeof content.body === 'string' ? core_1.Cell.fromBase64(content.body) : null;
|
|
232
|
+
// An empty body is no body, as TonAPI's decoded messages read it.
|
|
233
|
+
const body = cell === null || (cell.bits.length === 0 && cell.refs.length === 0) ? null : cell;
|
|
234
|
+
return {
|
|
235
|
+
source: typeof msg.source === 'string' ? (0, ton_address_ts_1.tonRawAddress)(msg.source) : null,
|
|
236
|
+
destination: typeof msg.destination === 'string' ? (0, ton_address_ts_1.tonRawAddress)(msg.destination) : null,
|
|
237
|
+
value: (0, ton_provider_ts_1.asBigInt)(msg.value, 'value'),
|
|
238
|
+
fwdFee: (0, ton_provider_ts_1.asBigInt)(msg.fwd_fee, 'fwd_fee'),
|
|
239
|
+
bounce: msg.bounce === true,
|
|
240
|
+
bounced: msg.bounced === true,
|
|
241
|
+
opcode: typeof msg.opcode === 'string' ? Number(BigInt(msg.opcode)) >>> 0 : null,
|
|
242
|
+
createdLt: msg.created_lt === null || msg.created_lt === undefined ? null : (0, ton_provider_ts_1.asBigInt)(msg.created_lt, 'created_lt'),
|
|
243
|
+
body,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function hexToBase64(hex) {
|
|
247
|
+
return Buffer.from(hex, 'hex').toString('base64');
|
|
248
|
+
}
|
|
249
|
+
function base64ToHex(base64) {
|
|
250
|
+
return Buffer.from(base64, 'base64').toString('hex');
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=ton_toncenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ton_toncenter.js","sourceRoot":"","sources":["../../../ton/ton_toncenter.ts"],"names":[],"mappings":"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"}
|