diff --git a/foundations/statuses.mdx b/foundations/statuses.mdx index 65eff103..a229fb5f 100644 --- a/foundations/statuses.mdx +++ b/foundations/statuses.mdx @@ -2,6 +2,8 @@ title: "Account statuses" --- +import { Image } from '/snippets/image.jsx'; + This article describes the four possible states of an account on TON Blockchain. Understanding these states is crucial for accurately predicting transaction outcomes and ensuring the correct deployment. @@ -42,7 +44,11 @@ We present here a diagram that describes all potential changes in the account st In the diagram below, there are four nodes representing the four different account statuses. Each arrow and loop corresponds to a change in the account status at the end of a given transaction. The parameters in the blocks above the arrows (and loops) briefly describe what caused the transaction and also contain some fields that affect the change in the account status. -![alt text](/resources/images/status-changes-diagram.svg) +Status changes diagram So, let's look at what changes can occur to a `nonexist` account depending on the messages that come to it. diff --git a/resources/images/status-changes-diagram.svg b/resources/images/status-changes-diagram.svg deleted file mode 100644 index afeaf918..00000000 --- a/resources/images/status-changes-diagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/resources/images/statuses_dark.svg b/resources/images/statuses_dark.svg new file mode 100644 index 00000000..1e1a69cf --- /dev/null +++ b/resources/images/statuses_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/statuses_light.svg b/resources/images/statuses_light.svg new file mode 100644 index 00000000..be80da17 --- /dev/null +++ b/resources/images/statuses_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/wallets/gasless_dark.svg b/resources/images/wallets/gasless_dark.svg new file mode 100644 index 00000000..54e0b9b3 --- /dev/null +++ b/resources/images/wallets/gasless_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/wallets/gasless_light.svg b/resources/images/wallets/gasless_light.svg new file mode 100644 index 00000000..83e4e119 --- /dev/null +++ b/resources/images/wallets/gasless_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/wallets/msg_flow_dark.svg b/resources/images/wallets/msg_flow_dark.svg new file mode 100644 index 00000000..1bcf42d5 --- /dev/null +++ b/resources/images/wallets/msg_flow_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/wallets/msg_flow_light.svg b/resources/images/wallets/msg_flow_light.svg new file mode 100644 index 00000000..496c153f --- /dev/null +++ b/resources/images/wallets/msg_flow_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/wallets/wallet-contract-V5.png b/resources/images/wallets/wallet-contract-V5.png deleted file mode 100644 index 40a80948..00000000 Binary files a/resources/images/wallets/wallet-contract-V5.png and /dev/null differ diff --git a/resources/images/wallets/wallet_contract_v5_dark.svg b/resources/images/wallets/wallet_contract_v5_dark.svg new file mode 100644 index 00000000..b9893571 --- /dev/null +++ b/resources/images/wallets/wallet_contract_v5_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/wallets/wallet_contract_v5_light.svg b/resources/images/wallets/wallet_contract_v5_light.svg new file mode 100644 index 00000000..ba5568bf --- /dev/null +++ b/resources/images/wallets/wallet_contract_v5_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/standard/wallets/highload/v3/specification.mdx b/standard/wallets/highload/v3/specification.mdx index 6e4d5dfe..9318939a 100644 --- a/standard/wallets/highload/v3/specification.mdx +++ b/standard/wallets/highload/v3/specification.mdx @@ -4,6 +4,7 @@ sidebarTitle: "Specification" --- import { Aside } from '/snippets/aside.jsx'; +import { Image } from '/snippets/image.jsx'; This page provides a complete technical specification for Highload Wallet v3, covering storage structure, message formats, replay protection, limitations, and security mechanisms. @@ -48,7 +49,7 @@ _ shift:uint13 bit_number:(## 10) { bit_number >= 0 } { bit_number < 1023 } = Qu ### External message structure ```tlb -_ {n:#} subwallet_id:uint32 message_to_send:^Cell send_mode:uint8 query_id:QueryId +_ {n:#} subwallet_id:uint32 message_to_send:^Cell send_mode:uint8 query_id:QueryId created_at:uint64 timeout:uint22 = MsgInner; msg_body$_ {n:#} signature:bits512 ^(MsgInner) = ExternalInMsgBody; @@ -455,43 +456,11 @@ Highload v3 can send **only ONE internal message** per external message. For bat Highload v3 uses a two-transaction pattern to safely send messages: -```text -+------------------------------------------+ -| Transaction 1: External Message | -| | -| 1. Verify signature (exit 33) | -| 2. Check subwallet_id (exit 34) | -| 3. Check timeout matches (exit 38) | -| 4. Check created_at validity (exit 35) | -| - Not too old (> now - timeout) | -| - Not from future (<= now) | -| 5. Check query_id in old_queries (36) | -| 6. Check query_id in queries (36) | -| 7. Mark query_id as processed | -| 8. Commit storage changes | -| 9. Validate message_to_send (exit 37) | -| 10. Send INTERNAL message to self | -| | -| ✓ Replay protection applied | -| ✓ Storage changes committed | -+------------------------------------------+ - | - v -+------------------------------------------+ -| Transaction 2: Internal Message | -| (wallet sends to itself) | -| | -| 1. Validate sender = self | -| 2. Check op = 0xae42e5a4 | -| 3. Extract action list from message | -| 4. Apply actions (send messages) | -| 5. Prevent code changes (set_code) | -| | -| Note: If this transaction fails, | -| replay protection from Transaction 1 | -| remains intact (no rollback) | -+------------------------------------------+ -``` +Message sending flow