Skip to content

Commit 3d799d7

Browse files
committed
evm: Modular Messaging
1 parent 3f56da6 commit 3d799d7

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

evm/NOTES.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Notes on splitting token from base
2+
3+
## MangerBase
4+
5+
### Implements (Should it implement all these?)
6+
7+
- IManagerBase,
8+
- TransceiverRegistry,
9+
- PausableOwnable,
10+
- ReentrancyGuardUpgradeable,
11+
- Implementation
12+
13+
### Functionality Provided
14+
15+
- Stores the following:
16+
- Transceiver registry
17+
- Thresholds
18+
- Attestations
19+
- Message sequence number
20+
- Has the following functionality:
21+
- `quoteDeliveryPrice`
22+
- Record attestation
23+
- Send message
24+
25+
### Simple Changes Made
26+
27+
- Moved the following from `ManagerBase` to `NttManager:
28+
29+
- Token
30+
- Mode
31+
- `_prepareForTransfer`
32+
33+
### Possible Ideas
34+
35+
- Maybe we could [like an external library](https://book.getfoundry.sh/reference/forge/forge-create#linker-options) for admin functionality.
36+
37+
### Contract Sizes
38+
39+
#### Before we started
40+
41+
```bash
42+
evm (main)$ forge build --sizes --via-ir --skip test
43+
44+
╭-----------------------------------------+------------------+-------------------+--------------------+---------------------╮
45+
| Contract | Runtime Size (B) | Initcode Size (B) | Runtime Margin (B) | Initcode Margin (B) |
46+
+===========================================================================================================================+
47+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
48+
| NttManager | 24,066 | 25,673 | 510 | 23,479 |
49+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
50+
| NttManagerNoRateLimiting | 17,141 | 18,557 | 7,435 | 30,595 |
51+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
52+
| TestManager | 8,981 | 10,259 | 15,595 | 38,893 |
53+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
54+
55+
```
56+
57+
- Note the `TestManager` just instantiates `ManagerBase.sol`.
58+
59+
#### After simple changes
60+
61+
```bash
62+
evm (main)$ forge build --sizes --via-ir --skip test
63+
64+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
65+
| NttManager | 24,066 | 25,676 | 510 | 23,476 |
66+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
67+
| NttManagerNoRateLimiting | 18,788 | 20,281 | 5,788 | 28,871 |
68+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
69+
| TestManager | 8,368 | 9,511 | 16,208 | 39,641 |
70+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
71+
72+
```
73+
74+
```
75+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
76+
| NttManager | 23,907 | 25,510 | 669 | 23,642 |
77+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
78+
| NttManagerHelpersLib | 58 | 87 | 24,518 | 49,065 |
79+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
80+
| NttManagerNoRateLimiting | 18,644 | 20,130 | 5,932 | 29,022 |
81+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
82+
```
83+
84+
- Question: Why did `NttManagerNoRateLimiting` grow so much??
85+
86+
#### Creating TransceiverRegistryAdmin
87+
88+
#### Before
89+
90+
```bash
91+
evm (main)$ forge build --sizes --via-ir --skip test
92+
93+
╭-----------------------------------------+------------------+-------------------+--------------------+---------------------╮
94+
| Contract | Runtime Size (B) | Initcode Size (B) | Runtime Margin (B) | Initcode Margin (B) |
95+
+===========================================================================================================================+
96+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
97+
| NttManager | 24,066 | 25,673 | 510 | 23,479 |
98+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
99+
| NttManagerNoRateLimiting | 17,141 | 18,557 | 7,435 | 30,595 |
100+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
101+
102+
```
103+
104+
#### After
105+
106+
```bash
107+
evm (main)$ forge build --sizes --via-ir --skip test
108+
109+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
110+
| NttManager | 23,220 | 26,937 | 1,356 | 22,215 |
111+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
112+
| NttManagerNoRateLimiting | 16,254 | 19,713 | 8,322 | 29,439 |
113+
|-----------------------------------------+------------------+-------------------+--------------------+---------------------|
114+
115+
```

0 commit comments

Comments
 (0)