From 0dbcb0be5319f9ab1b29f9621507ec2bdd43a4d7 Mon Sep 17 00:00:00 2001
From: AlexG <39581753+Reveloper@users.noreply.github.com>
Date: Fri, 12 Jan 2024 10:44:03 +0900
Subject: [PATCH 1/4] high_load_wallet_cation
---
docs/participate/wallets/contracts.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/docs/participate/wallets/contracts.md b/docs/participate/wallets/contracts.md
index 225ab87aa1..ee8ea39e9c 100644
--- a/docs/participate/wallets/contracts.md
+++ b/docs/participate/wallets/contracts.md
@@ -71,6 +71,23 @@ This wallet is made for those who need to send hundreds of transactions in a sho
It allows you to send up to `254` transactions in one smart contract call. It also uses a slightly different approach to solve replay attacks instead of seqno, so you can call this wallet several times at once to send even thousands of transactions in a second.
+:::caution Limitations
+Note, when dealing with highload-wallet the following limits need to be checked and taken into account.
+:::
+
+1. **Storage size limit.** Currently, size of contract storage should be less than 65535 cells. If size of
+old_queries will grow above this limit, exception in ActionPhase will be thrown and transaction will fail.
+Failed transaction may be replayed.
+2. **Gas limit.** Currently, gas limit is 1'000'000 GAS units, that means that there is a limit of how much
+old queries may be cleaned in one tx. If number of expired queries will be higher, contract will stuck.
+
+That means that it is not recommended to set too high expiration date:
+number of queries during expiration timespan should not exceed 1000.
+
+Also, number of expired queries cleaned in one transaction should be below 100.
+
+
+
Wallet source code:
* [ton/crypto/smartcont/highload-wallet-v2-code.fc](https://github.com/ton-blockchain/ton/blob/master/crypto/smartcont/highload-wallet-v2-code.fc)
From 9e47d1cfaa4d402343b673506c632b71ae129df6 Mon Sep 17 00:00:00 2001
From: AlexG <39581753+Reveloper@users.noreply.github.com>
Date: Mon, 15 Jan 2024 11:11:17 +0900
Subject: [PATCH 2/4] added_tvm_exit_code_36_descr
---
docs/learn/tvm-instructions/tvm-exit-codes.md | 45 ++++++++++---------
1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/docs/learn/tvm-instructions/tvm-exit-codes.md b/docs/learn/tvm-instructions/tvm-exit-codes.md
index f81d4f28c2..11e0f5d6f6 100644
--- a/docs/learn/tvm-instructions/tvm-exit-codes.md
+++ b/docs/learn/tvm-instructions/tvm-exit-codes.md
@@ -9,27 +9,28 @@ The list of standard exit codes contains all universal TVM exit codes defined fo
:::
| Exit Code | TVM Phase | Description |
-|-----------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `0` | Compute Phase | Standard successful execution exit code. |
-| `1` | Compute Phase | Alternative successful execution exit code. |
-| `2` | Compute Phase | Stack underflow. Last op-code consumed more elements than there are on the stacks. 1 |
-| `3` | Compute Phase | Stack overflow. More values have been stored on a stack than allowed by this version of TVM. |
-| `4` | Compute Phase | Integer overflow. Integer does not fit into −2256 ≤ x < 2256 or a division by zero has occurred. |
-| `5` | Compute Phase | Integer out of expected range. |
-| `6` | Compute Phase | Invalid opcode. Instruction is unknown in the current TVM version. |
-| `7` | Compute Phase | Type check error. An argument to a primitive is of an incorrect value type. 1 |
-| `8` | Compute Phase | Cell overflow. Writing to builder is not possible since after operation there would be more than 1023 bits or 4 references. |
-| `9` | Compute Phase | Cell underflow. Read from slice primitive tried to read more bits or references than there are. |
-| `10` | Compute Phase | Dictionary error. Error during manipulation with dictionary (hashmaps). |
-| `11` | Compute Phase | Most oftenly caused by trying to call get-method whose id wasn't found in the code (missing `method_id` modifier or wrong get-method name specified when trying to call it). In [TVM docs](https://ton.org/tvm.pdf) its described as "Unknown error, may be thrown by user programs". |
-| `12` | Compute Phase | Thrown by TVM in situations deemed impossible. |
-| `13` | Compute Phase | Out of gas error. Thrown by TVM when the remaining gas becomes negative. |
-| `-14` | Compute Phase | It means out of gas error, same as `13`. Negative, because it [cannot be faked](https://github.com/ton-blockchain/ton/blob/20758d6bdd0c1327091287e8a620f660d1a9f4da/crypto/vm/vm.cpp#L492) |
-| `32` | Action Phase | Action list is invalid. Set during action phase if c5 register after execution contains unparsable object. |
-| `-32` | Action Phase | (the same as prev 32) - Method ID not found. Returned by TonLib during an attempt to execute non-existent get method. |
-| `33` | Action Phase | Action list is too long. |
-| `34` | Action Phase | Action is invalid or not supported. Set during action phase if current action cannot be applied. |
-| `37` | Action Phase | Not enough TON. Message sends too much TON (or there is not enough TON after deducting fees). |
-| `38` | Action Phase | Not enough extra-currencies. |
+|----------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `0` | Compute Phase | Standard successful execution exit code. |
+| `1` | Compute Phase | Alternative successful execution exit code. |
+| `2` | Compute Phase | Stack underflow. Last op-code consumed more elements than there are on the stacks. 1 |
+| `3` | Compute Phase | Stack overflow. More values have been stored on a stack than allowed by this version of TVM. |
+| `4` | Compute Phase | Integer overflow. Integer does not fit into −2256 ≤ x < 2256 or a division by zero has occurred. |
+| `5` | Compute Phase | Integer out of expected range. |
+| `6` | Compute Phase | Invalid opcode. Instruction is unknown in the current TVM version. |
+| `7` | Compute Phase | Type check error. An argument to a primitive is of an incorrect value type. 1 |
+| `8` | Compute Phase | Cell overflow. Writing to builder is not possible since after operation there would be more than 1023 bits or 4 references. |
+| `9` | Compute Phase | Cell underflow. Read from slice primitive tried to read more bits or references than there are. |
+| `10` | Compute Phase | Dictionary error. Error during manipulation with dictionary (hashmaps). |
+| `11` | Compute Phase | Most oftenly caused by trying to call get-method whose id wasn't found in the code (missing `method_id` modifier or wrong get-method name specified when trying to call it). In [TVM docs](https://ton.org/tvm.pdf) its described as "Unknown error, may be thrown by user programs". |
+| `12` | Compute Phase | Thrown by TVM in situations deemed impossible. |
+| `13` | Compute Phase | Out of gas error. Thrown by TVM when the remaining gas becomes negative. |
+| `-14` | Compute Phase | It means out of gas error, same as `13`. Negative, because it [cannot be faked](https://github.com/ton-blockchain/ton/blob/20758d6bdd0c1327091287e8a620f660d1a9f4da/crypto/vm/vm.cpp#L492) |
+| `32` | Action Phase | Action list is invalid. Set during action phase if c5 register after execution contains unparsable object. |
+| `-32` | Action Phase | (the same as prev 32) - Method ID not found. Returned by TonLib during an attempt to execute non-existent get method. |
+| `33` | Action Phase | Action list is too long. |
+| `34` | Action Phase | Action is invalid or not supported. Set during action phase if current action cannot be applied.
|
+| `36` | Action Phase | Invalid Source address in outbound message. |
+| `37` | Action Phase | Not enough TON. Message sends too much TON (or there is not enough TON after deducting fees). |
+| `38` | Action Phase | Not enough extra-currencies. |
1 If you encounter such exception in a _func_ contract it probably means a type error in `asm` declarations.
From 7f5804a0001a2c0a3f2a3b8c58788170273c62e8 Mon Sep 17 00:00:00 2001
From: AlexG <39581753+Reveloper@users.noreply.github.com>
Date: Mon, 15 Jan 2024 11:23:41 +0900
Subject: [PATCH 3/4] NFTscan_api_added
---
docs/develop/dapps/apis/README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/develop/dapps/apis/README.md b/docs/develop/dapps/apis/README.md
index 3661c13e2b..de53341c3b 100644
--- a/docs/develop/dapps/apis/README.md
+++ b/docs/develop/dapps/apis/README.md
@@ -9,6 +9,7 @@
- [tonapi.io](https://docs.tonconsole.com/tonapi/api-v2) - fast indexed API which provides basic data about accounts, transactions, blocks, application-specific data about NFT, Auctions, Jettons, TON DNS, Subscriptions. It also provides annotated data on transaction chains.
- [dton.io](https://dton.io/graphql/) - GraphQL API with that can provide data about accounts, transactions and blocks, as well as application-specific data about NFT, Auctions, Jettons and TON DNS.
- [ton-api-v4](https://mainnet-v4.tonhubapi.com) - another lite-api focused on speed via aggressive cashing in CDN.
+- [docs.nftscan.com](https://docs.nftscan.com/reference/ton/model/asset-model) - NFT APIs for TON blockchain.
- [evercloud.dev](https://ton-mainnet.evercloud.dev/graphql) - GraphQL API for basic queries in TON.
- [everspace.center](https://everspace.center/toncoin) - Simple RPC API for accessing TON Blockchain.
From 4a26c6812041706cec09ef0b158585689289ca84 Mon Sep 17 00:00:00 2001
From: AlexG <39581753+Reveloper@users.noreply.github.com>
Date: Mon, 15 Jan 2024 11:38:11 +0900
Subject: [PATCH 4/4] fixes_beauty
---
docs/develop/overview.mdx | 2 +-
docs/participate/run-nodes/full-node.mdx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/develop/overview.mdx b/docs/develop/overview.mdx
index 75efd0b997..ac74c8b583 100644
--- a/docs/develop/overview.mdx
+++ b/docs/develop/overview.mdx
@@ -83,7 +83,7 @@ Take your first steps in DApps development with a comprehensive DApps building g
- [TON Hello World: Step by step guide for building your first web client](https://ton-community.github.io/tutorials/03-client/)
- [Telegram bot integration via TON Connect](/develop/dapps/ton-connect/tg-bot-integration)
-### SDKs and Examples
+### APIs and SDKs
* [APIs](/develop/dapps/apis)
* [SDKs](/develop/dapps/apis/sdk)
diff --git a/docs/participate/run-nodes/full-node.mdx b/docs/participate/run-nodes/full-node.mdx
index 35914c84ab..3f6ae15487 100644
--- a/docs/participate/run-nodes/full-node.mdx
+++ b/docs/participate/run-nodes/full-node.mdx
@@ -573,7 +573,7 @@ It should allow incoming connections on one specific port and outgoing connectio
### Validator console is not settings
-If you encounter this error, it indicates that you are running `MyTonCtrl` from a user other than the one you used for the installation.
+If you encounter the `Validator console is not settings` error, it indicates that you are running `MyTonCtrl` from a user other than the one you used for the installation.
:::tip Solution
Run `MyTonCtrl` from the user you've installed it (non-root sudo user).