diff --git a/resources/images/wallets/internal_message_dark.svg b/resources/images/wallets/internal_message_dark.svg new file mode 100644 index 000000000..b5acd9d71 --- /dev/null +++ b/resources/images/wallets/internal_message_dark.svg @@ -0,0 +1,3 @@ + + +
internal_extension
(#6578746e)
internal_extension...
V4 Wallet Contract (Sender)
V4 Wallet Cont...


User
User...
V5 Wallet Contract
(Receiver)
V5 Wallet Cont...
Execute Actions on V5 wallet
Execute Actio...
V4 Wallet Contract (Sender)
V4 Wallet Cont...


User
User...
V5 Wallet Contract
(Receiver)
V5 Wallet Cont...
internal_signed
(#7369e74)
internal_signed...
Execute Actions on V5 wallet
Execute Actio...
\ No newline at end of file diff --git a/resources/images/wallets/internal_message_light.svg b/resources/images/wallets/internal_message_light.svg new file mode 100644 index 000000000..b5acd9d71 --- /dev/null +++ b/resources/images/wallets/internal_message_light.svg @@ -0,0 +1,3 @@ + + +
internal_extension
(#6578746e)
internal_extension...
V4 Wallet Contract (Sender)
V4 Wallet Cont...


User
User...
V5 Wallet Contract
(Receiver)
V5 Wallet Cont...
Execute Actions on V5 wallet
Execute Actio...
V4 Wallet Contract (Sender)
V4 Wallet Cont...


User
User...
V5 Wallet Contract
(Receiver)
V5 Wallet Cont...
internal_signed
(#7369e74)
internal_signed...
Execute Actions on V5 wallet
Execute Actio...
\ No newline at end of file diff --git a/resources/images/wallets/simple_opcode_dark.svg b/resources/images/wallets/simple_opcode_dark.svg new file mode 100644 index 000000000..4c2683478 --- /dev/null +++ b/resources/images/wallets/simple_opcode_dark.svg @@ -0,0 +1,3 @@ + + +
Verify signature,
extract body slice 
Verify signature,...
Read opcode = 0x0
Read opcode = 0x0
Loop over message
entries
Loop over message...
Inbound External Message (signed)
Inbound External Message (signed)
send_raw_message
mode: 8 bits
^Cell: Message 1 
send_raw_message...
Message Entry 2
Message Entry 2
Message Entry 3
Message Entry 3
Internal OutMsgs (HashmapE)
Internal OutMsgs (HashmapE)
Message Entry 1
Message Entry 1
Message Entry 4
Message Entry 4
send_raw_message
mode: 8 bits
^Cell: Message 2
send_raw_message...
send_raw_message
mode: 8 bits
^Cell: Message 3
send_raw_message...
send_raw_message
mode: 8 bits
^Cell: Message 4
send_raw_message...
\ No newline at end of file diff --git a/resources/images/wallets/simple_opcode_light.svg b/resources/images/wallets/simple_opcode_light.svg new file mode 100644 index 000000000..4c2683478 --- /dev/null +++ b/resources/images/wallets/simple_opcode_light.svg @@ -0,0 +1,3 @@ + + +
Verify signature,
extract body slice 
Verify signature,...
Read opcode = 0x0
Read opcode = 0x0
Loop over message
entries
Loop over message...
Inbound External Message (signed)
Inbound External Message (signed)
send_raw_message
mode: 8 bits
^Cell: Message 1 
send_raw_message...
Message Entry 2
Message Entry 2
Message Entry 3
Message Entry 3
Internal OutMsgs (HashmapE)
Internal OutMsgs (HashmapE)
Message Entry 1
Message Entry 1
Message Entry 4
Message Entry 4
send_raw_message
mode: 8 bits
^Cell: Message 2
send_raw_message...
send_raw_message
mode: 8 bits
^Cell: Message 3
send_raw_message...
send_raw_message
mode: 8 bits
^Cell: Message 4
send_raw_message...
\ No newline at end of file diff --git a/standard/wallets/v4.mdx b/standard/wallets/v4.mdx index 9ffc03672..4941363fd 100644 --- a/standard/wallets/v4.mdx +++ b/standard/wallets/v4.mdx @@ -4,6 +4,7 @@ sidebarTitle: "V4" --- import { Aside } from '/snippets/aside.jsx'; +import { Image } from '/snippets/image.jsx'; This version retains all the functionality of the previous versions and introduces plugins. @@ -105,28 +106,11 @@ Next, let's explore the types of messages: The simple send operation processes a chain of messages, where each message contains a mode and a reference to the actual message cell: -```mermaid -graph TB - A["External Message Body"] --> B["opcode = 0x0"] - B --> C["Message Chain Processing"] - - C --> D["Message 1"] - D --> E["mode: 8 bits"] - D --> F["^Cell: Message 1"] - - C --> G["Message 2"] - G --> H["mode: 8 bits"] - G --> I["^Cell: Message 2"] - - C --> J["..."] - J --> K["Up to 4 messages total"] - - style A fill:#e1f5fe - style E fill:#fff3e0 - style F fill:#f3e5f5 - style H fill:#fff3e0 - style I fill:#f3e5f5 -``` +Simple send operation message chain **Processing logic:** diff --git a/standard/wallets/v5-api.mdx b/standard/wallets/v5-api.mdx index 317f4acaf..dc9f55c84 100644 --- a/standard/wallets/v5-api.mdx +++ b/standard/wallets/v5-api.mdx @@ -4,6 +4,7 @@ sidebarTitle: "How to interact" --- import { Aside } from "/snippets/aside.jsx"; +import { Image } from '/snippets/image.jsx'; This article provides overview of wallet V5 public interfaces, how to interact with them and serialize used data structures. @@ -461,24 +462,11 @@ You can send this BoC to the network in any convenient way, e.g. with API provid These two types of messages are internal messages, meaning that they need to come from another contract. However strange that may sound, the easiest way to send internal message from another contract is to ask another wallet contract to send internal message to our wallet contract with body that will contain our constructed message. -```mermaid -graph LR - A["👤 User"] --> B["📱 V4 Wallet Contract
(Sender)"] - - B -->|"Internal message with body:
🔐 internal_signed (#73696e74)
or
🔧 internal_extension (#6578746e)"| C["🏦 V5 Wallet Contract
(Receiver)"] - - C --> D["⚡ Execute Actions
on V5 wallet"] - - classDef user fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - classDef v4wallet fill:#fff3e0,stroke:#f57c00,stroke-width:2px - classDef v5wallet fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - classDef action fill:#ffebee,stroke:#d32f2f,stroke-width:2px - - class A user - class B v4wallet - class C v5wallet - class D action -``` +Internal message flow For simplicity, we will use wallet V4 contract with existing client serialization library that will take care of all low level stuff.