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. 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/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. 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). 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)