@tonappchain/sdk 0.7.2-scaled-ui-support-2 → 0.7.2
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/LICENSE +20 -20
- package/README.md +198 -198
- package/dist/artifacts/dev/index.d.ts +2 -2
- package/dist/artifacts/dev/index.js +2 -1
- package/dist/artifacts/dev/tac/endpoints.d.ts +1 -0
- package/dist/artifacts/dev/tac/endpoints.js +2 -1
- package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -1
- package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +53 -6
- package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +130 -17
- package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +2 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +3 -1
- package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +9 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +10 -1
- package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.d.ts +7 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +9 -2
- package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +9 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +9 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +7 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +7 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +7 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +8 -1
- package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +1 -0
- package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +1 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
- package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
- package/dist/artifacts/mainnet/index.d.ts +2 -2
- package/dist/artifacts/mainnet/index.js +2 -1
- package/dist/artifacts/mainnet/tac/endpoints.d.ts +1 -0
- package/dist/artifacts/mainnet/tac/endpoints.js +2 -1
- package/dist/artifacts/mainnet/ton/endpoints.d.ts +1 -1
- package/dist/artifacts/mainnet/ton/endpoints.js +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -1
- package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +1 -13
- package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +7 -45
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +2 -2
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +2 -2
- package/dist/artifacts/testnet/index.d.ts +2 -2
- package/dist/artifacts/testnet/index.js +2 -1
- package/dist/artifacts/testnet/tac/endpoints.d.ts +1 -0
- package/dist/artifacts/testnet/tac/endpoints.js +2 -1
- package/dist/artifacts/testnet/ton/endpoints.d.ts +1 -1
- package/dist/artifacts/testnet/ton/endpoints.js +1 -1
- package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +53 -6
- package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +130 -17
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +2 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +3 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +9 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +10 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +9 -2
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +9 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +9 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +8 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +1 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +1 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
- package/dist/src/adapters/BaseContractOpener.d.ts +76 -0
- package/dist/src/adapters/BaseContractOpener.js +440 -0
- package/dist/src/adapters/LiteClientOpener.d.ts +38 -0
- package/dist/src/adapters/LiteClientOpener.js +141 -0
- package/dist/src/adapters/OpenerUtils.d.ts +3 -0
- package/dist/src/adapters/OpenerUtils.js +40 -0
- package/dist/src/adapters/RetryableContractOpener.d.ts +40 -0
- package/dist/src/adapters/RetryableContractOpener.js +290 -0
- package/dist/src/adapters/SandboxOpener.d.ts +15 -0
- package/dist/src/adapters/SandboxOpener.js +35 -0
- package/dist/src/adapters/TonClient4Opener.d.ts +24 -0
- package/dist/src/adapters/TonClient4Opener.js +95 -0
- package/dist/src/adapters/TonClientOpener.d.ts +19 -0
- package/dist/src/adapters/TonClientOpener.js +82 -0
- package/dist/src/adapters/index.d.ts +7 -2
- package/dist/src/adapters/index.js +7 -2
- package/dist/src/assets/AssetCache.d.ts +8 -8
- package/dist/src/assets/AssetCache.js +3 -0
- package/dist/src/assets/AssetFactory.js +8 -2
- package/dist/src/assets/FT.d.ts +2 -3
- package/dist/src/assets/FT.js +4 -7
- package/dist/src/assets/NFT.d.ts +1 -1
- package/dist/src/assets/NFT.js +1 -1
- package/dist/src/assets/TON.d.ts +3 -2
- package/dist/src/assets/TON.js +2 -1
- package/dist/src/errors/errors.d.ts +12 -1
- package/dist/src/errors/errors.js +66 -2
- package/dist/src/errors/index.d.ts +2 -2
- package/dist/src/errors/index.js +4 -1
- package/dist/src/errors/instances.d.ts +7 -2
- package/dist/src/errors/instances.js +67 -2
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +6 -4
- package/dist/src/interfaces/Asset.d.ts +4 -9
- package/dist/src/interfaces/ContractOpener.d.ts +76 -2
- package/dist/src/interfaces/IOperationTracker.d.ts +22 -22
- package/dist/src/interfaces/ISimulator.d.ts +9 -1
- package/dist/src/interfaces/ITONTransactionManager.d.ts +20 -1
- package/dist/src/interfaces/ITacExplorerClient.d.ts +8 -0
- package/dist/src/interfaces/ITacExplorerClient.js +2 -0
- package/dist/src/interfaces/ITacSDK.d.ts +25 -1
- package/dist/src/interfaces/ITxFinalizer.d.ts +4 -0
- package/dist/src/interfaces/ITxFinalizer.js +2 -0
- package/dist/src/interfaces/WalletInstanse.d.ts +4 -8
- package/dist/src/interfaces/index.d.ts +1 -0
- package/dist/src/interfaces/index.js +1 -0
- package/dist/src/sdk/Configuration.d.ts +5 -3
- package/dist/src/sdk/Configuration.js +54 -7
- package/dist/src/sdk/Consts.d.ts +18 -1
- package/dist/src/sdk/Consts.js +21 -2
- package/dist/src/sdk/Fees.d.ts +21 -0
- package/dist/src/sdk/Fees.js +201 -0
- package/dist/src/sdk/LiteSequencerClient.d.ts +1 -0
- package/dist/src/sdk/LiteSequencerClient.js +39 -17
- package/dist/src/sdk/OperationTracker.d.ts +11 -11
- package/dist/src/sdk/OperationTracker.js +46 -94
- package/dist/src/sdk/Simulator.d.ts +10 -2
- package/dist/src/sdk/Simulator.js +102 -0
- package/dist/src/sdk/StartTracking.d.ts +12 -7
- package/dist/src/sdk/StartTracking.js +75 -49
- package/dist/src/sdk/TONTransactionManager.d.ts +5 -4
- package/dist/src/sdk/TONTransactionManager.js +63 -8
- package/dist/src/sdk/TacExplorerClient.d.ts +8 -0
- package/dist/src/sdk/TacExplorerClient.js +22 -0
- package/dist/src/sdk/TacSdk.d.ts +8 -2
- package/dist/src/sdk/TacSdk.js +27 -4
- package/dist/src/sdk/TxFinalizer.d.ts +4 -3
- package/dist/src/sdk/TxFinalizer.js +41 -41
- package/dist/src/sdk/Utils.d.ts +20 -1
- package/dist/src/sdk/Utils.js +158 -10
- package/dist/src/sender/BatchSender.js +19 -0
- package/dist/src/sender/MockSender.d.ts +2 -0
- package/dist/src/sender/MockSender.js +13 -0
- package/dist/src/sender/RawSender.js +34 -1
- package/dist/src/sender/SenderFactory.js +1 -1
- package/dist/src/sender/TonConnectSender.js +2 -0
- package/dist/src/sender/index.d.ts +1 -0
- package/dist/src/sender/index.js +1 -0
- package/dist/src/structs/InternalStruct.d.ts +98 -4
- package/dist/src/structs/Struct.d.ts +183 -7
- package/dist/src/structs/Struct.js +4 -3
- package/dist/src/wrappers/HighloadWalletV3.d.ts +5 -3
- package/dist/src/wrappers/HighloadWalletV3.js +14 -3
- package/package.json +121 -117
- package/dist/src/adapters/contractOpener.d.ts +0 -20
- package/dist/src/adapters/contractOpener.js +0 -126
- package/dist/src/adapters/retryableContractOpener.d.ts +0 -24
- package/dist/src/adapters/retryableContractOpener.js +0 -111
|
@@ -6,19 +6,23 @@ const ethers_1 = require("ethers");
|
|
|
6
6
|
const artifacts_1 = require("../../artifacts");
|
|
7
7
|
const adapters_1 = require("../adapters");
|
|
8
8
|
const Struct_1 = require("../structs/Struct");
|
|
9
|
+
const Consts_1 = require("./Consts");
|
|
10
|
+
const Fees_1 = require("./Fees");
|
|
11
|
+
const Logger_1 = require("./Logger");
|
|
9
12
|
const Utils_1 = require("./Utils");
|
|
10
13
|
const Validator_1 = require("./Validator");
|
|
11
14
|
class Configuration {
|
|
12
|
-
constructor(network, artifacts, TONParams, TACParams, liteSequencerEndpoints) {
|
|
15
|
+
constructor(network, artifacts, TONParams, TACParams, liteSequencerEndpoints, logger) {
|
|
13
16
|
this.network = network;
|
|
14
17
|
this.artifacts = artifacts;
|
|
15
18
|
this.TONParams = TONParams;
|
|
16
19
|
this.TACParams = TACParams;
|
|
17
20
|
this.liteSequencerEndpoints = liteSequencerEndpoints;
|
|
21
|
+
this.logger = logger;
|
|
18
22
|
}
|
|
19
|
-
static async create(network, artifacts, TONParams, TACParams, customLiteSequencerEndpoints, delay) {
|
|
23
|
+
static async create(network, artifacts, TONParams, TACParams, customLiteSequencerEndpoints, delay, logger = new Logger_1.NoopLogger(), passLoggerToOpeners = true) {
|
|
20
24
|
const [internalTONParams, internalTACParams] = await Promise.all([
|
|
21
|
-
this.prepareTONParams(network, TONParams, delay),
|
|
25
|
+
this.prepareTONParams(network, artifacts, TONParams, delay, logger, passLoggerToOpeners),
|
|
22
26
|
this.prepareTACParams(network, TACParams),
|
|
23
27
|
]);
|
|
24
28
|
let liteSequencerEndpoints;
|
|
@@ -31,12 +35,11 @@ class Configuration {
|
|
|
31
35
|
else {
|
|
32
36
|
liteSequencerEndpoints = customLiteSequencerEndpoints ?? artifacts.PUBLIC_LITE_SEQUENCER_ENDPOINTS;
|
|
33
37
|
}
|
|
34
|
-
return new Configuration(network, artifacts, internalTONParams, internalTACParams, liteSequencerEndpoints);
|
|
38
|
+
return new Configuration(network, artifacts, internalTONParams, internalTACParams, liteSequencerEndpoints, logger);
|
|
35
39
|
}
|
|
36
|
-
static async prepareTONParams(network, TONParams, delay) {
|
|
40
|
+
static async prepareTONParams(network, artifacts, TONParams, delay, logger = new Logger_1.NoopLogger(), passLoggerToOpeners = true) {
|
|
37
41
|
let contractOpener;
|
|
38
42
|
let settingsAddress;
|
|
39
|
-
const artifacts = network === Struct_1.Network.MAINNET ? artifacts_1.mainnet : network === Struct_1.Network.TESTNET ? artifacts_1.testnet : artifacts_1.dev;
|
|
40
43
|
if (network === Struct_1.Network.DEV) {
|
|
41
44
|
if (!TONParams || !TONParams.contractOpener) {
|
|
42
45
|
throw new Error('For dev network, a custom contract opener must be provided in TONParams');
|
|
@@ -50,9 +53,12 @@ class Configuration {
|
|
|
50
53
|
else {
|
|
51
54
|
contractOpener =
|
|
52
55
|
TONParams?.contractOpener ??
|
|
53
|
-
(await (0, adapters_1.createDefaultRetryableOpener)(artifacts.TON_RPC_ENDPOINT_BY_TAC, network,
|
|
56
|
+
(await (0, adapters_1.createDefaultRetryableOpener)(artifacts.TON_RPC_ENDPOINT_BY_TAC, network, Consts_1.DEFAULT_RETRY_MAX_COUNT, delay, passLoggerToOpeners ? logger : undefined));
|
|
54
57
|
settingsAddress = TONParams?.settingsAddress ?? artifacts.TON_SETTINGS_ADDRESS;
|
|
55
58
|
}
|
|
59
|
+
if (passLoggerToOpeners) {
|
|
60
|
+
contractOpener.setLogger(logger);
|
|
61
|
+
}
|
|
56
62
|
const settings = contractOpener.open(artifacts.ton.wrappers.Settings.createFromAddress(ton_1.Address.parse(settingsAddress)));
|
|
57
63
|
const allSettingsSlice = (await settings.getAll()).beginParse();
|
|
58
64
|
const allSettings = allSettingsSlice.loadDictDirect(ton_1.Dictionary.Keys.BigUint(256), ton_1.Dictionary.Values.Cell());
|
|
@@ -63,6 +69,16 @@ class Configuration {
|
|
|
63
69
|
const jettonMinterCode = allSettings.get((0, Utils_1.sha256toBigInt)('JettonMinterCode'));
|
|
64
70
|
const nftItemCode = allSettings.get((0, Utils_1.sha256toBigInt)('NFTItemCode'));
|
|
65
71
|
const nftCollectionCode = allSettings.get((0, Utils_1.sha256toBigInt)('NFTCollectionCode'));
|
|
72
|
+
let contractFeeUsageParams = Fees_1.DEFAULT_CONTRACT_FEE_USAGE_PARAMS;
|
|
73
|
+
const contractFeeUsageParamsCell = allSettings.get((0, Utils_1.sha256toBigInt)('ContractFeeUsageParams'));
|
|
74
|
+
if (contractFeeUsageParamsCell) {
|
|
75
|
+
const jsonString = contractFeeUsageParamsCell.beginParse().loadStringTail();
|
|
76
|
+
contractFeeUsageParams = JSON.parse(jsonString);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
logger.debug('Failed to load ContractFeeUsageParams from Settings, used default');
|
|
80
|
+
}
|
|
81
|
+
const feesParams = await this.retrieveTONFeesParams(contractOpener);
|
|
66
82
|
return {
|
|
67
83
|
contractOpener,
|
|
68
84
|
jettonProxyAddress,
|
|
@@ -72,6 +88,8 @@ class Configuration {
|
|
|
72
88
|
nftProxyAddress,
|
|
73
89
|
nftItemCode,
|
|
74
90
|
nftCollectionCode,
|
|
91
|
+
feesParams,
|
|
92
|
+
contractFeeUsageParams,
|
|
75
93
|
};
|
|
76
94
|
}
|
|
77
95
|
static async prepareTACParams(network, TACParams) {
|
|
@@ -191,5 +209,34 @@ class Configuration {
|
|
|
191
209
|
async isContractDeployedOnTVM(address) {
|
|
192
210
|
return (await this.TONParams.contractOpener.getContractState(ton_1.Address.parse(address))).state === 'active';
|
|
193
211
|
}
|
|
212
|
+
static async retrieveTONFeesParams(contractOpener) {
|
|
213
|
+
try {
|
|
214
|
+
const config = await contractOpener.getConfig();
|
|
215
|
+
const fullConfig = (0, ton_1.parseFullConfig)((0, ton_1.loadConfigParamsAsSlice)(config));
|
|
216
|
+
return {
|
|
217
|
+
gasPrice: Number(fullConfig.gasPrices.workchain.other.gasPrice),
|
|
218
|
+
lumpPrice: Number(fullConfig.msgPrices.workchain.lumpPrice),
|
|
219
|
+
msgBitPrice: Number(fullConfig.msgPrices.workchain.bitPrice),
|
|
220
|
+
msgCellPrice: Number(fullConfig.msgPrices.workchain.cellPrice),
|
|
221
|
+
ihrPriceFactor: Number(fullConfig.msgPrices.workchain.ihrPriceFactor),
|
|
222
|
+
firstFrac: Number(fullConfig.msgPrices.workchain.firstFrac),
|
|
223
|
+
accountBitPrice: Number(fullConfig.storagePrices[0].bit_price_ps),
|
|
224
|
+
accountCellPrice: Number(fullConfig.storagePrices[0].cell_price_ps),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
// return standard values from https://tonviewer.com/config#25 in case of failure
|
|
229
|
+
return {
|
|
230
|
+
accountBitPrice: 1,
|
|
231
|
+
accountCellPrice: 500,
|
|
232
|
+
lumpPrice: 400000,
|
|
233
|
+
gasPrice: 26214400,
|
|
234
|
+
firstFrac: 21845,
|
|
235
|
+
ihrPriceFactor: 98304,
|
|
236
|
+
msgBitPrice: 26214400,
|
|
237
|
+
msgCellPrice: 2621440000,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
}
|
|
194
241
|
}
|
|
195
242
|
exports.Configuration = Configuration;
|
package/dist/src/sdk/Consts.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export declare const TRANSACTION_TON_AMOUNT: bigint;
|
|
2
1
|
export declare const JETTON_TRANSFER_FORWARD_TON_AMOUNT: bigint;
|
|
3
2
|
export declare const NFT_TRANSFER_FORWARD_TON_AMOUNT: bigint;
|
|
4
3
|
export declare const MAX_ITERATION_COUNT = 120;
|
|
@@ -11,6 +10,24 @@ export declare const MAX_MSG_DEPTH = 512;
|
|
|
11
10
|
export declare const TON_SYMBOL = "TON";
|
|
12
11
|
export declare const TAC_SYMBOL = "TAC";
|
|
13
12
|
export declare const FIFTEEN_MINUTES: number;
|
|
13
|
+
export declare const ONE_YEAR_SECONDS: number;
|
|
14
14
|
export declare const TON_DECIMALS = 9;
|
|
15
15
|
export declare const TAC_DECIMALS = 18;
|
|
16
16
|
export declare const FIVE_MINUTES: number;
|
|
17
|
+
export declare const MINUTE: number;
|
|
18
|
+
export declare const TON_BURN_ADDRESS = "EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c";
|
|
19
|
+
export declare const DEFAULT_HTTP_CLIENT_TIMEOUT_MS = 30000;
|
|
20
|
+
export declare const DEFAULT_RETRY_MAX_COUNT = 5;
|
|
21
|
+
export declare const DEFAULT_RETRY_DELAY_MS = 1000;
|
|
22
|
+
export declare const DEFAULT_WAIT_TIMEOUT_MS = 300000;
|
|
23
|
+
export declare const DEFAULT_WAIT_MAX_ATTEMPTS = 30;
|
|
24
|
+
export declare const DEFAULT_WAIT_DELAY_MS = 10000;
|
|
25
|
+
export declare const DEFAULT_FIND_TX_LIMIT = 100;
|
|
26
|
+
export declare const DEFAULT_MAX_SCANNED_TRANSACTIONS = 100;
|
|
27
|
+
export declare const DEFAULT_FIND_TX_ARCHIVAL = true;
|
|
28
|
+
export declare const DEFAULT_FIND_TX_MAX_DEPTH = 10;
|
|
29
|
+
export declare const DEFAULT_RETRY_ON_NOT_FOUND = true;
|
|
30
|
+
export declare const DEFAULT_RETRY_ON_NOT_FOUND_RETRIES = 10;
|
|
31
|
+
export declare const DEFAULT_RETRY_ON_NOT_FOUND_DELAY_MS = 5000;
|
|
32
|
+
export declare const IGNORE_MSG_VALUE_1_NANO = 1n;
|
|
33
|
+
export declare const IGNORE_OPCODE: number[];
|
package/dist/src/sdk/Consts.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FIVE_MINUTES = exports.TAC_DECIMALS = exports.TON_DECIMALS = exports.FIFTEEN_MINUTES = exports.TAC_SYMBOL = exports.TON_SYMBOL = exports.MAX_MSG_DEPTH = exports.MAX_HIGHLOAD_GROUP_MSG_NUM = exports.MAX_EXT_MSG_SIZE = exports.SOLIDITY_METHOD_NAME_REGEX = exports.SOLIDITY_SIGNATURE_REGEX = exports.DEFAULT_DELAY = exports.MAX_ITERATION_COUNT = exports.NFT_TRANSFER_FORWARD_TON_AMOUNT = exports.JETTON_TRANSFER_FORWARD_TON_AMOUNT =
|
|
3
|
+
exports.IGNORE_OPCODE = exports.IGNORE_MSG_VALUE_1_NANO = exports.DEFAULT_RETRY_ON_NOT_FOUND_DELAY_MS = exports.DEFAULT_RETRY_ON_NOT_FOUND_RETRIES = exports.DEFAULT_RETRY_ON_NOT_FOUND = exports.DEFAULT_FIND_TX_MAX_DEPTH = exports.DEFAULT_FIND_TX_ARCHIVAL = exports.DEFAULT_MAX_SCANNED_TRANSACTIONS = exports.DEFAULT_FIND_TX_LIMIT = exports.DEFAULT_WAIT_DELAY_MS = exports.DEFAULT_WAIT_MAX_ATTEMPTS = exports.DEFAULT_WAIT_TIMEOUT_MS = exports.DEFAULT_RETRY_DELAY_MS = exports.DEFAULT_RETRY_MAX_COUNT = exports.DEFAULT_HTTP_CLIENT_TIMEOUT_MS = exports.TON_BURN_ADDRESS = exports.MINUTE = exports.FIVE_MINUTES = exports.TAC_DECIMALS = exports.TON_DECIMALS = exports.ONE_YEAR_SECONDS = exports.FIFTEEN_MINUTES = exports.TAC_SYMBOL = exports.TON_SYMBOL = exports.MAX_MSG_DEPTH = exports.MAX_HIGHLOAD_GROUP_MSG_NUM = exports.MAX_EXT_MSG_SIZE = exports.SOLIDITY_METHOD_NAME_REGEX = exports.SOLIDITY_SIGNATURE_REGEX = exports.DEFAULT_DELAY = exports.MAX_ITERATION_COUNT = exports.NFT_TRANSFER_FORWARD_TON_AMOUNT = exports.JETTON_TRANSFER_FORWARD_TON_AMOUNT = void 0;
|
|
4
4
|
const ton_1 = require("@ton/ton");
|
|
5
|
-
exports.TRANSACTION_TON_AMOUNT = (0, ton_1.toNano)(0.55);
|
|
6
5
|
exports.JETTON_TRANSFER_FORWARD_TON_AMOUNT = (0, ton_1.toNano)(0.2);
|
|
7
6
|
exports.NFT_TRANSFER_FORWARD_TON_AMOUNT = (0, ton_1.toNano)(0.3);
|
|
8
7
|
exports.MAX_ITERATION_COUNT = 120;
|
|
@@ -15,6 +14,26 @@ exports.MAX_MSG_DEPTH = 512;
|
|
|
15
14
|
exports.TON_SYMBOL = 'TON';
|
|
16
15
|
exports.TAC_SYMBOL = 'TAC';
|
|
17
16
|
exports.FIFTEEN_MINUTES = 15 * 60 * 1000;
|
|
17
|
+
exports.ONE_YEAR_SECONDS = 365 * 24 * 3600;
|
|
18
18
|
exports.TON_DECIMALS = 9;
|
|
19
19
|
exports.TAC_DECIMALS = 18;
|
|
20
20
|
exports.FIVE_MINUTES = 5 * 60 * 1000;
|
|
21
|
+
exports.MINUTE = 60 * 1000;
|
|
22
|
+
exports.TON_BURN_ADDRESS = 'EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c';
|
|
23
|
+
exports.DEFAULT_HTTP_CLIENT_TIMEOUT_MS = 30000;
|
|
24
|
+
exports.DEFAULT_RETRY_MAX_COUNT = 5;
|
|
25
|
+
exports.DEFAULT_RETRY_DELAY_MS = 1000;
|
|
26
|
+
exports.DEFAULT_WAIT_TIMEOUT_MS = 300000; // 5 minutes
|
|
27
|
+
exports.DEFAULT_WAIT_MAX_ATTEMPTS = 30;
|
|
28
|
+
exports.DEFAULT_WAIT_DELAY_MS = 10000; // 10 seconds
|
|
29
|
+
exports.DEFAULT_FIND_TX_LIMIT = 100;
|
|
30
|
+
exports.DEFAULT_MAX_SCANNED_TRANSACTIONS = 100;
|
|
31
|
+
exports.DEFAULT_FIND_TX_ARCHIVAL = true;
|
|
32
|
+
exports.DEFAULT_FIND_TX_MAX_DEPTH = 10;
|
|
33
|
+
exports.DEFAULT_RETRY_ON_NOT_FOUND = true;
|
|
34
|
+
exports.DEFAULT_RETRY_ON_NOT_FOUND_RETRIES = 10;
|
|
35
|
+
exports.DEFAULT_RETRY_ON_NOT_FOUND_DELAY_MS = 5000;
|
|
36
|
+
exports.IGNORE_MSG_VALUE_1_NANO = 1n;
|
|
37
|
+
exports.IGNORE_OPCODE = [
|
|
38
|
+
0xd53276db, // Excess
|
|
39
|
+
];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ContractFeeUsageParams, TransactionFeeCalculationStep } from '../structs/InternalStruct';
|
|
2
|
+
export declare const FIXED_POINT_SHIFT: number;
|
|
3
|
+
/**
|
|
4
|
+
* Default contract fee usage parameters used as fallback.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_CONTRACT_FEE_USAGE_PARAMS: ContractFeeUsageParams;
|
|
7
|
+
export declare const createCrossChainLayerTvmMsgToEvmStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
8
|
+
export declare const createJettonWalletInternalTransferStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
9
|
+
export declare const createJettonWalletReceiveStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
10
|
+
export declare const createJettonWalletBurnStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
11
|
+
export declare const createJettonProxyOwnershipAssignedStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
12
|
+
export declare const createJettonMinterBurnNotificationStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
13
|
+
export declare const createNftItemSendStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
14
|
+
export declare const createNftItemBurnStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
15
|
+
export declare const createNftProxyOwnershipAssignedStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
16
|
+
export declare const createErrorNotificationGasStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
17
|
+
export declare const createEstimatedSendTransferGasStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
18
|
+
export declare const createEstimatedReceiveTransferGasStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
19
|
+
export declare const createMintAfterErrorGasStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
20
|
+
export declare const createNftProxyErrorNotificationStep: (params: ContractFeeUsageParams, msgBits: number, msgCells: number) => TransactionFeeCalculationStep;
|
|
21
|
+
export declare const createNftItemErrorNotificationStep: (params: ContractFeeUsageParams) => TransactionFeeCalculationStep;
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNftItemErrorNotificationStep = exports.createNftProxyErrorNotificationStep = exports.createMintAfterErrorGasStep = exports.createEstimatedReceiveTransferGasStep = exports.createEstimatedSendTransferGasStep = exports.createErrorNotificationGasStep = exports.createNftProxyOwnershipAssignedStep = exports.createNftItemBurnStep = exports.createNftItemSendStep = exports.createJettonMinterBurnNotificationStep = exports.createJettonProxyOwnershipAssignedStep = exports.createJettonWalletBurnStep = exports.createJettonWalletReceiveStep = exports.createJettonWalletInternalTransferStep = exports.createCrossChainLayerTvmMsgToEvmStep = exports.DEFAULT_CONTRACT_FEE_USAGE_PARAMS = exports.FIXED_POINT_SHIFT = void 0;
|
|
4
|
+
const Consts_1 = require("./Consts");
|
|
5
|
+
exports.FIXED_POINT_SHIFT = 2 ** 16;
|
|
6
|
+
/**
|
|
7
|
+
* Default contract fee usage parameters used as fallback.
|
|
8
|
+
*/
|
|
9
|
+
exports.DEFAULT_CONTRACT_FEE_USAGE_PARAMS = {
|
|
10
|
+
crossChainLayer: {
|
|
11
|
+
accountBits: 43514,
|
|
12
|
+
accountCells: 100,
|
|
13
|
+
gas: {
|
|
14
|
+
tvmMsgToEvm: 14619,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
jettonWallet: {
|
|
18
|
+
accountBits: 949,
|
|
19
|
+
accountCells: 3,
|
|
20
|
+
estimatedAccountBits: 11000,
|
|
21
|
+
estimatedAccountCells: 25,
|
|
22
|
+
initStateBits: 847,
|
|
23
|
+
initStateCells: 3,
|
|
24
|
+
gas: {
|
|
25
|
+
internalTransfer: 10669,
|
|
26
|
+
receive: 11427,
|
|
27
|
+
burn: 8653,
|
|
28
|
+
estimatedSendTransfer: 11000,
|
|
29
|
+
estimatedReceiveTransfer: 12000,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
jettonProxy: {
|
|
33
|
+
accountBits: 7760,
|
|
34
|
+
accountCells: 16,
|
|
35
|
+
gas: {
|
|
36
|
+
ownershipAssigned: 8515,
|
|
37
|
+
transferNotification: 8515,
|
|
38
|
+
errorNotification: 5556,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
jettonMinter: {
|
|
42
|
+
accountBits: 10208,
|
|
43
|
+
accountCells: 28,
|
|
44
|
+
gas: {
|
|
45
|
+
burnNotification: 10357,
|
|
46
|
+
mintAfterError: 9654,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
nftItem: {
|
|
50
|
+
accountBits: 1422,
|
|
51
|
+
accountCells: 5,
|
|
52
|
+
gas: {
|
|
53
|
+
send: 11722,
|
|
54
|
+
burn: 11552,
|
|
55
|
+
errorNotification: 4638,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
nftProxy: {
|
|
59
|
+
accountBits: 7512,
|
|
60
|
+
accountCells: 15,
|
|
61
|
+
gas: {
|
|
62
|
+
ownershipAssigned: 7688,
|
|
63
|
+
errorNotification: 4737,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
const createCrossChainLayerTvmMsgToEvmStep = (params, msgBits, msgCells) => ({
|
|
68
|
+
accountBits: 0,
|
|
69
|
+
accountCells: 0,
|
|
70
|
+
gasUsed: params.crossChainLayer.gas.tvmMsgToEvm,
|
|
71
|
+
msgBits,
|
|
72
|
+
msgCells,
|
|
73
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
74
|
+
});
|
|
75
|
+
exports.createCrossChainLayerTvmMsgToEvmStep = createCrossChainLayerTvmMsgToEvmStep;
|
|
76
|
+
const createJettonWalletInternalTransferStep = (params, msgBits, msgCells) => ({
|
|
77
|
+
accountBits: params.jettonWallet.accountBits,
|
|
78
|
+
accountCells: params.jettonWallet.accountCells,
|
|
79
|
+
gasUsed: params.jettonWallet.gas.internalTransfer,
|
|
80
|
+
msgBits,
|
|
81
|
+
msgCells,
|
|
82
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
83
|
+
});
|
|
84
|
+
exports.createJettonWalletInternalTransferStep = createJettonWalletInternalTransferStep;
|
|
85
|
+
const createJettonWalletReceiveStep = (params, msgBits, msgCells) => ({
|
|
86
|
+
accountBits: params.jettonWallet.accountBits,
|
|
87
|
+
accountCells: params.jettonWallet.accountCells,
|
|
88
|
+
gasUsed: params.jettonWallet.gas.receive,
|
|
89
|
+
msgBits,
|
|
90
|
+
msgCells,
|
|
91
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
92
|
+
});
|
|
93
|
+
exports.createJettonWalletReceiveStep = createJettonWalletReceiveStep;
|
|
94
|
+
const createJettonWalletBurnStep = (params, msgBits, msgCells) => ({
|
|
95
|
+
accountBits: params.jettonWallet.accountBits,
|
|
96
|
+
accountCells: params.jettonWallet.accountCells,
|
|
97
|
+
gasUsed: params.jettonWallet.gas.burn,
|
|
98
|
+
msgBits,
|
|
99
|
+
msgCells,
|
|
100
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
101
|
+
});
|
|
102
|
+
exports.createJettonWalletBurnStep = createJettonWalletBurnStep;
|
|
103
|
+
const createJettonProxyOwnershipAssignedStep = (params, msgBits, msgCells) => ({
|
|
104
|
+
accountBits: 0,
|
|
105
|
+
accountCells: 0,
|
|
106
|
+
gasUsed: params.jettonProxy.gas.ownershipAssigned,
|
|
107
|
+
msgBits,
|
|
108
|
+
msgCells,
|
|
109
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
110
|
+
});
|
|
111
|
+
exports.createJettonProxyOwnershipAssignedStep = createJettonProxyOwnershipAssignedStep;
|
|
112
|
+
const createJettonMinterBurnNotificationStep = (params, msgBits, msgCells) => ({
|
|
113
|
+
accountBits: params.jettonMinter.accountBits,
|
|
114
|
+
accountCells: params.jettonMinter.accountCells,
|
|
115
|
+
gasUsed: params.jettonMinter.gas.burnNotification,
|
|
116
|
+
msgBits,
|
|
117
|
+
msgCells,
|
|
118
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
119
|
+
});
|
|
120
|
+
exports.createJettonMinterBurnNotificationStep = createJettonMinterBurnNotificationStep;
|
|
121
|
+
const createNftItemSendStep = (params, msgBits, msgCells) => ({
|
|
122
|
+
accountBits: params.nftItem.accountBits,
|
|
123
|
+
accountCells: params.nftItem.accountCells,
|
|
124
|
+
gasUsed: params.nftItem.gas.send,
|
|
125
|
+
msgBits,
|
|
126
|
+
msgCells,
|
|
127
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
128
|
+
});
|
|
129
|
+
exports.createNftItemSendStep = createNftItemSendStep;
|
|
130
|
+
const createNftItemBurnStep = (params, msgBits, msgCells) => ({
|
|
131
|
+
accountBits: params.nftItem.accountBits,
|
|
132
|
+
accountCells: params.nftItem.accountCells,
|
|
133
|
+
gasUsed: params.nftItem.gas.burn,
|
|
134
|
+
msgBits,
|
|
135
|
+
msgCells,
|
|
136
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
137
|
+
});
|
|
138
|
+
exports.createNftItemBurnStep = createNftItemBurnStep;
|
|
139
|
+
const createNftProxyOwnershipAssignedStep = (params, msgBits, msgCells) => ({
|
|
140
|
+
accountBits: 0,
|
|
141
|
+
accountCells: 0,
|
|
142
|
+
gasUsed: params.nftProxy.gas.ownershipAssigned,
|
|
143
|
+
msgBits,
|
|
144
|
+
msgCells,
|
|
145
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
146
|
+
});
|
|
147
|
+
exports.createNftProxyOwnershipAssignedStep = createNftProxyOwnershipAssignedStep;
|
|
148
|
+
const createErrorNotificationGasStep = (params, msgBits, msgCells) => ({
|
|
149
|
+
accountBits: 0,
|
|
150
|
+
accountCells: 0,
|
|
151
|
+
gasUsed: params.jettonProxy.gas.errorNotification,
|
|
152
|
+
msgBits,
|
|
153
|
+
msgCells,
|
|
154
|
+
timeDelta: 0,
|
|
155
|
+
});
|
|
156
|
+
exports.createErrorNotificationGasStep = createErrorNotificationGasStep;
|
|
157
|
+
const createEstimatedSendTransferGasStep = (params, msgBits, msgCells) => ({
|
|
158
|
+
accountBits: 0,
|
|
159
|
+
accountCells: 0,
|
|
160
|
+
gasUsed: params.jettonWallet.gas.estimatedSendTransfer,
|
|
161
|
+
msgBits,
|
|
162
|
+
msgCells,
|
|
163
|
+
timeDelta: 0,
|
|
164
|
+
});
|
|
165
|
+
exports.createEstimatedSendTransferGasStep = createEstimatedSendTransferGasStep;
|
|
166
|
+
const createEstimatedReceiveTransferGasStep = (params, msgBits, msgCells) => ({
|
|
167
|
+
accountBits: 0,
|
|
168
|
+
accountCells: 0,
|
|
169
|
+
gasUsed: params.jettonWallet.gas.estimatedReceiveTransfer,
|
|
170
|
+
msgBits,
|
|
171
|
+
msgCells,
|
|
172
|
+
timeDelta: 0,
|
|
173
|
+
});
|
|
174
|
+
exports.createEstimatedReceiveTransferGasStep = createEstimatedReceiveTransferGasStep;
|
|
175
|
+
const createMintAfterErrorGasStep = (params, msgBits, msgCells) => ({
|
|
176
|
+
accountBits: params.jettonMinter.accountBits,
|
|
177
|
+
accountCells: params.jettonMinter.accountCells,
|
|
178
|
+
gasUsed: params.jettonMinter.gas.mintAfterError,
|
|
179
|
+
msgBits,
|
|
180
|
+
msgCells,
|
|
181
|
+
timeDelta: Consts_1.ONE_YEAR_SECONDS,
|
|
182
|
+
});
|
|
183
|
+
exports.createMintAfterErrorGasStep = createMintAfterErrorGasStep;
|
|
184
|
+
const createNftProxyErrorNotificationStep = (params, msgBits, msgCells) => ({
|
|
185
|
+
accountBits: 0,
|
|
186
|
+
accountCells: 0,
|
|
187
|
+
gasUsed: params.nftProxy.gas.errorNotification,
|
|
188
|
+
msgBits,
|
|
189
|
+
msgCells,
|
|
190
|
+
timeDelta: 0,
|
|
191
|
+
});
|
|
192
|
+
exports.createNftProxyErrorNotificationStep = createNftProxyErrorNotificationStep;
|
|
193
|
+
const createNftItemErrorNotificationStep = (params) => ({
|
|
194
|
+
accountBits: 0,
|
|
195
|
+
accountCells: 0,
|
|
196
|
+
gasUsed: params.nftItem.gas.errorNotification,
|
|
197
|
+
msgBits: 0,
|
|
198
|
+
msgCells: 0,
|
|
199
|
+
timeDelta: 0,
|
|
200
|
+
});
|
|
201
|
+
exports.createNftItemErrorNotificationStep = createNftItemErrorNotificationStep;
|
|
@@ -5,6 +5,7 @@ export declare class LiteSequencerClient implements ILiteSequencerClient {
|
|
|
5
5
|
private readonly maxChunkSize;
|
|
6
6
|
private readonly httpClient;
|
|
7
7
|
constructor(endpoint: string, maxChunkSize?: number, httpClient?: IHttpClient);
|
|
8
|
+
private getRequestLabel;
|
|
8
9
|
getOperationIdByTransactionHash(transactionHash: string): Promise<string>;
|
|
9
10
|
getOperationType(operationId: string): Promise<OperationType>;
|
|
10
11
|
getOperationId(transactionLinker: TransactionLinker): Promise<string>;
|
|
@@ -11,9 +11,13 @@ class LiteSequencerClient {
|
|
|
11
11
|
this.maxChunkSize = maxChunkSize;
|
|
12
12
|
this.httpClient = httpClient;
|
|
13
13
|
}
|
|
14
|
+
getRequestLabel(method, path) {
|
|
15
|
+
return `${method} ${new URL(path, this.endpoint).toString()}`;
|
|
16
|
+
}
|
|
14
17
|
async getOperationIdByTransactionHash(transactionHash) {
|
|
15
18
|
const isEthHash = /^0x[a-fA-F0-9]{64}$/.test(transactionHash);
|
|
16
19
|
const path = isEthHash ? 'tac/operation-id' : 'ton/operation-id';
|
|
20
|
+
const requestLabel = this.getRequestLabel('GET', path);
|
|
17
21
|
try {
|
|
18
22
|
if (isEthHash) {
|
|
19
23
|
const response = await this.httpClient.get(new URL(path, this.endpoint).toString(), {
|
|
@@ -29,15 +33,18 @@ class LiteSequencerClient {
|
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
35
|
catch (error) {
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
37
|
if (error?.response?.status === 404) {
|
|
33
38
|
return '';
|
|
34
39
|
}
|
|
35
|
-
throw (0, errors_1.operationFetchError)(`
|
|
40
|
+
throw (0, errors_1.operationFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
async getOperationType(operationId) {
|
|
44
|
+
const path = 'operation-type';
|
|
45
|
+
const requestLabel = this.getRequestLabel('GET', path);
|
|
39
46
|
try {
|
|
40
|
-
const response = await this.httpClient.get(new URL(
|
|
47
|
+
const response = await this.httpClient.get(new URL(path, this.endpoint).toString(), {
|
|
41
48
|
params: {
|
|
42
49
|
operationId,
|
|
43
50
|
},
|
|
@@ -45,10 +52,12 @@ class LiteSequencerClient {
|
|
|
45
52
|
return response.data.response || '';
|
|
46
53
|
}
|
|
47
54
|
catch (error) {
|
|
48
|
-
throw (0, errors_1.operationFetchError)(`
|
|
55
|
+
throw (0, errors_1.operationFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
async getOperationId(transactionLinker) {
|
|
59
|
+
const path = 'ton/operation-id';
|
|
60
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
52
61
|
const requestBody = {
|
|
53
62
|
shardsKey: transactionLinker.shardsKey,
|
|
54
63
|
caller: transactionLinker.caller,
|
|
@@ -56,23 +65,26 @@ class LiteSequencerClient {
|
|
|
56
65
|
timestamp: transactionLinker.timestamp,
|
|
57
66
|
};
|
|
58
67
|
try {
|
|
59
|
-
const response = await this.httpClient.post(new URL(
|
|
68
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), requestBody);
|
|
60
69
|
return response.data.response || '';
|
|
61
70
|
}
|
|
62
71
|
catch (error) {
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
73
|
if (error?.response?.status === 404) {
|
|
64
74
|
return '';
|
|
65
75
|
}
|
|
66
|
-
throw (0, errors_1.operationFetchError)(`
|
|
76
|
+
throw (0, errors_1.operationFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
67
77
|
}
|
|
68
78
|
}
|
|
69
79
|
async getOperationIdsByShardsKeys(shardsKeys, caller, chunkSize = this.maxChunkSize) {
|
|
80
|
+
const path = 'operation-ids-by-shards-keys';
|
|
81
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
70
82
|
if (!shardsKeys || shardsKeys.length === 0) {
|
|
71
83
|
throw (0, errors_1.emptyArrayError)('shardsKeys');
|
|
72
84
|
}
|
|
73
85
|
try {
|
|
74
86
|
const response = await this.processChunkedRequest(shardsKeys, async (chunk) => {
|
|
75
|
-
const response = await this.httpClient.post(new URL(
|
|
87
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), {
|
|
76
88
|
shardsKeys: chunk,
|
|
77
89
|
caller: caller,
|
|
78
90
|
});
|
|
@@ -81,16 +93,18 @@ class LiteSequencerClient {
|
|
|
81
93
|
return response.response;
|
|
82
94
|
}
|
|
83
95
|
catch (error) {
|
|
84
|
-
throw (0, errors_1.operationFetchError)(`
|
|
96
|
+
throw (0, errors_1.operationFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
85
97
|
}
|
|
86
98
|
}
|
|
87
99
|
async getStageProfilings(operationIds, chunkSize = this.maxChunkSize) {
|
|
100
|
+
const path = 'stage-profiling';
|
|
101
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
88
102
|
if (!operationIds || operationIds.length === 0) {
|
|
89
103
|
throw (0, errors_1.emptyArrayError)('operationIds');
|
|
90
104
|
}
|
|
91
105
|
try {
|
|
92
106
|
const response = await this.processChunkedRequest(operationIds, async (chunk) => {
|
|
93
|
-
const response = await this.httpClient.post(new URL(
|
|
107
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), {
|
|
94
108
|
operationIds: chunk,
|
|
95
109
|
}, {
|
|
96
110
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
@@ -100,16 +114,18 @@ class LiteSequencerClient {
|
|
|
100
114
|
return response.response;
|
|
101
115
|
}
|
|
102
116
|
catch (error) {
|
|
103
|
-
throw (0, errors_1.profilingFetchError)(`
|
|
117
|
+
throw (0, errors_1.profilingFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
104
118
|
}
|
|
105
119
|
}
|
|
106
120
|
async getOperationStatuses(operationIds, chunkSize = this.maxChunkSize) {
|
|
121
|
+
const path = 'status';
|
|
122
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
107
123
|
if (!operationIds || operationIds.length === 0) {
|
|
108
124
|
throw (0, errors_1.emptyArrayError)('operationIds');
|
|
109
125
|
}
|
|
110
126
|
try {
|
|
111
127
|
const response = await this.processChunkedRequest(operationIds, async (chunk) => {
|
|
112
|
-
const response = await this.httpClient.post(new URL(
|
|
128
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), {
|
|
113
129
|
operationIds: chunk,
|
|
114
130
|
}, {
|
|
115
131
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
@@ -119,16 +135,18 @@ class LiteSequencerClient {
|
|
|
119
135
|
return response.response;
|
|
120
136
|
}
|
|
121
137
|
catch (error) {
|
|
122
|
-
throw (0, errors_1.statusFetchError)(`
|
|
138
|
+
throw (0, errors_1.statusFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
123
139
|
}
|
|
124
140
|
}
|
|
125
141
|
async convertCurrency(params) {
|
|
142
|
+
const path = 'convert_currency';
|
|
143
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
126
144
|
try {
|
|
127
145
|
const payload = {
|
|
128
146
|
currency: params.currency,
|
|
129
147
|
value: params.value.toString(),
|
|
130
148
|
};
|
|
131
|
-
const response = await this.httpClient.post(new URL(
|
|
149
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), payload, {
|
|
132
150
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
133
151
|
});
|
|
134
152
|
const raw = response.data.response;
|
|
@@ -150,29 +168,33 @@ class LiteSequencerClient {
|
|
|
150
168
|
};
|
|
151
169
|
}
|
|
152
170
|
catch (error) {
|
|
153
|
-
throw (0, instances_1.convertCurrencyFetchError)(`
|
|
171
|
+
throw (0, instances_1.convertCurrencyFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
154
172
|
}
|
|
155
173
|
}
|
|
156
174
|
async simulateTACMessage(params) {
|
|
175
|
+
const path = 'tac/simulator/simulate-message';
|
|
176
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
157
177
|
try {
|
|
158
|
-
const response = await this.httpClient.post(new URL(
|
|
178
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), params, {
|
|
159
179
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
160
180
|
});
|
|
161
181
|
return response.data.response;
|
|
162
182
|
}
|
|
163
183
|
catch (error) {
|
|
164
|
-
throw (0, instances_1.simulationFetchError)(`
|
|
184
|
+
throw (0, instances_1.simulationFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
165
185
|
}
|
|
166
186
|
}
|
|
167
187
|
async getTVMExecutorFee(params) {
|
|
188
|
+
const path = '/ton/calculator/ton-executor-fee';
|
|
189
|
+
const requestLabel = this.getRequestLabel('POST', path);
|
|
168
190
|
try {
|
|
169
|
-
const response = await this.httpClient.post(new URL(
|
|
191
|
+
const response = await this.httpClient.post(new URL(path, this.endpoint).toString(), params, {
|
|
170
192
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
171
193
|
});
|
|
172
194
|
return response.data.response;
|
|
173
195
|
}
|
|
174
196
|
catch (error) {
|
|
175
|
-
throw (0, instances_1.getTONFeeInfoFetchError)(`
|
|
197
|
+
throw (0, instances_1.getTONFeeInfoFetchError)(`request ${requestLabel} failed to complete request`, error);
|
|
176
198
|
}
|
|
177
199
|
}
|
|
178
200
|
async processChunkedRequest(identifiers, requestFn, chunkSize = this.maxChunkSize) {
|
|
@@ -7,16 +7,16 @@ export declare class OperationTracker implements IOperationTracker {
|
|
|
7
7
|
private readonly clients;
|
|
8
8
|
private readonly logger;
|
|
9
9
|
constructor(network: Network, customLiteSequencerEndpoints?: string[], logger?: ILogger, clientFactory?: ILiteSequencerClientFactory);
|
|
10
|
-
getOperationIdByTransactionHash(transactionHash: string, waitOptions?: WaitOptions<string>): Promise<string>;
|
|
11
|
-
getOperationType(operationId: string, waitOptions?: WaitOptions<OperationType>): Promise<OperationType>;
|
|
12
|
-
getOperationId(transactionLinker: TransactionLinker, waitOptions?: WaitOptions<string>): Promise<string>;
|
|
13
|
-
getOperationIdsByShardsKeys(shardsKeys: string[], caller: string, waitOptions?: WaitOptions<OperationIdsByShardsKey
|
|
14
|
-
getStageProfiling(operationId: string, waitOptions?: WaitOptions<ExecutionStages>): Promise<ExecutionStages>;
|
|
15
|
-
getStageProfilings(operationIds: string[], waitOptions?: WaitOptions<ExecutionStagesByOperationId
|
|
16
|
-
getOperationStatuses(operationIds: string[], waitOptions?: WaitOptions<StatusInfosByOperationId
|
|
17
|
-
getOperationStatus(operationId: string, waitOptions?: WaitOptions<StatusInfo>): Promise<StatusInfo>;
|
|
10
|
+
getOperationIdByTransactionHash(transactionHash: string, waitOptions?: WaitOptions<string> | null): Promise<string>;
|
|
11
|
+
getOperationType(operationId: string, waitOptions?: WaitOptions<OperationType> | null): Promise<OperationType>;
|
|
12
|
+
getOperationId(transactionLinker: TransactionLinker, waitOptions?: WaitOptions<string> | null): Promise<string>;
|
|
13
|
+
getOperationIdsByShardsKeys(shardsKeys: string[], caller: string, waitOptions?: WaitOptions<OperationIdsByShardsKey> | null, chunkSize?: number): Promise<OperationIdsByShardsKey>;
|
|
14
|
+
getStageProfiling(operationId: string, waitOptions?: WaitOptions<ExecutionStages> | null): Promise<ExecutionStages>;
|
|
15
|
+
getStageProfilings(operationIds: string[], waitOptions?: WaitOptions<ExecutionStagesByOperationId> | null, chunkSize?: number): Promise<ExecutionStagesByOperationId>;
|
|
16
|
+
getOperationStatuses(operationIds: string[], waitOptions?: WaitOptions<StatusInfosByOperationId> | null, chunkSize?: number): Promise<StatusInfosByOperationId>;
|
|
17
|
+
getOperationStatus(operationId: string, waitOptions?: WaitOptions<StatusInfo> | null): Promise<StatusInfo>;
|
|
18
18
|
getSimplifiedOperationStatus(transactionLinker: TransactionLinker): Promise<SimplifiedStatuses>;
|
|
19
|
-
convertCurrency(params: ConvertCurrencyParams, waitOptions?: WaitOptions<ConvertedCurrencyResult>): Promise<ConvertedCurrencyResult>;
|
|
20
|
-
simulateTACMessage(params: TACSimulationParams, waitOptions?: WaitOptions<TACSimulationResult>): Promise<TACSimulationResult>;
|
|
21
|
-
getTVMExecutorFee(params: GetTVMExecutorFeeParams, waitOptions?: WaitOptions<SuggestedTVMExecutorFee>): Promise<SuggestedTVMExecutorFee>;
|
|
19
|
+
convertCurrency(params: ConvertCurrencyParams, waitOptions?: WaitOptions<ConvertedCurrencyResult> | null): Promise<ConvertedCurrencyResult>;
|
|
20
|
+
simulateTACMessage(params: TACSimulationParams, waitOptions?: WaitOptions<TACSimulationResult> | null): Promise<TACSimulationResult>;
|
|
21
|
+
getTVMExecutorFee(params: GetTVMExecutorFeeParams, waitOptions?: WaitOptions<SuggestedTVMExecutorFee> | null): Promise<SuggestedTVMExecutorFee>;
|
|
22
22
|
}
|