Skip to content

Commit bb43c60

Browse files
authored
docs: Add architecture and sequence diagrams (#57)
1 parent ac0c654 commit bb43c60

File tree

7 files changed

+429
-10
lines changed

7 files changed

+429
-10
lines changed

.gitignore

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,12 @@ out/
1010
broadcast/*/*/run-*.json
1111
!broadcast/*/*/run-latest.json
1212

13-
14-
# Docs
15-
docs/
16-
1713
# Dotenv file
1814
.env
1915
.last_deploy.json
2016

2117
.idea
2218
.DS_Store
2319
/coverage
24-
lcov.info
20+
lcov.info
2521
lcov.src.info

docs/Architecture-overview.drawio

Lines changed: 375 additions & 0 deletions
Large diffs are not rendered by default.

docs/Architecture-overview.png

271 KB
Loading

docs/Sequence-diagram.mermaid

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
%% https://www.mermaidchart.com/play
2+
3+
sequenceDiagram
4+
actor ethUser as User on Ethereum
5+
box
6+
participant rlc as RLC
7+
participant rlcLu as RLC Liquidity Unifier (LU)
8+
participant ethBridge as LZ Bridge
9+
participant ethEndpoint as LZ Ethereum Endpoint
10+
end
11+
box LayerZero off-chain services
12+
participant dvn as DVNs
13+
participant executors as Executors
14+
end
15+
box Arbitrum
16+
participant arbEndpoint as LZ Arbitrum Endpoint
17+
participant arbBridge as LZ Bridge
18+
participant arbitrumRlc as RLC Crosschain Token
19+
end
20+
actor aUser as User on Arbitrum
21+
22+
rect rgb(204, 235, 255)
23+
ethUser ->> rlc: approve(lzBridge, amount)
24+
ethUser ->> ethBridge: send(sendParam, fee, refundAddress)
25+
ethBridge ->> rlc: _debit(): transferFrom(user, LU, amount)
26+
ethBridge ->> ethEndpoint: send(messagingParams, refundAddress)
27+
ethEndpoint ->> ethEndpoint: emit PacketSent event
28+
ethEndpoint -->> ethUser: Request submitted
29+
dvn ->> ethEndpoint: detect event
30+
dvn ->> arbEndpoint: verify()
31+
executors ->> arbEndpoint: lzReceive()
32+
arbEndpoint ->> arbBridge: lzReceive()
33+
arbBridge ->> arbitrumRlc: _credit(): corsschainMint()
34+
arbitrumRlc ->> arbitrumRlc: _mint()
35+
end
36+
rect rgb(255, 255, 204)
37+
aUser ->> arbBridge: send()
38+
arbBridge ->> arbitrumRlc: _debit(): crosschainBurn()
39+
arbitrumRlc ->> arbitrumRlc: _burn()
40+
arbBridge ->> arbEndpoint: send(messagingParams, refundAddress)
41+
arbEndpoint ->> arbEndpoint: emit PacketSent event
42+
dvn ->> arbEndpoint: detect event
43+
dvn ->> ethEndpoint: verify()
44+
executors ->> ethEndpoint: lzReceive()
45+
ethEndpoint ->> ethBridge: lzReceive()
46+
ethBridge ->> rlcLu: _credit(): corsschainMint()
47+
rlcLu ->> rlc: transfer()
48+
end

docs/Sequence-diagram.png

251 KB
Loading

test/units/UpgradeRLCLiquidityUnifier.t.sol renamed to test/units/RLCLiquidityUnifierUpgrade.t.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
pragma solidity ^0.8.22;
44

55
import {TestHelperOz5} from "@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol";
6-
import {RLCLiquidityUnifierV2} from "../../../../src/mocks/RLCLiquidityUnifierV2Mock.sol";
7-
import {RLCLiquidityUnifier} from "../../../../src/RLCLiquidityUnifier.sol";
6+
import {RLCLiquidityUnifierV2} from "../../src/mocks/RLCLiquidityUnifierV2Mock.sol";
7+
import {RLCLiquidityUnifier} from "../../src/RLCLiquidityUnifier.sol";
88
import {TestUtils} from "./utils/TestUtils.sol";
9-
import {UpgradeUtils} from "../../../../script/lib/UpgradeUtils.sol";
9+
import {UpgradeUtils} from "../../script/lib/UpgradeUtils.sol";
1010
import {RLCMock} from "./mocks/RLCMock.sol";
1111

12-
contract UpgradeRLCLiquidityUnifier is TestHelperOz5 {
12+
contract RLCLiquidityUnifierUpgradeTest is TestHelperOz5 {
1313
using TestUtils for *;
1414

1515
RLCLiquidityUnifier private rlcLiquidityUnifierV1;

test/units/bridges/layerZero/UpgradeIexecLayerZeroBridge.t.sol renamed to test/units/bridges/layerZero/IexecLayerZeroBridgeUpgrade.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {UpgradeUtils} from "../../../../script/lib/UpgradeUtils.sol";
99
import {IexecLayerZeroBridge} from "../../../../src/bridges/layerZero/IexecLayerZeroBridge.sol";
1010
import {RLCCrosschainToken} from "../../../../src/RLCCrosschainToken.sol";
1111

12-
contract UpgradeLayerZeroBridgeTest is TestHelperOz5 {
12+
contract IexecLayerZeroBridgeUpgradeTest is TestHelperOz5 {
1313
using TestUtils for *;
1414

1515
IexecLayerZeroBridge public iexecLayerZeroBridgeV1;

0 commit comments

Comments
 (0)