Skip to content

Commit eeeecbe

Browse files
committed
ras: renaming EIP-1253 note
1 parent 1673073 commit eeeecbe

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Tasks
2+
3+
## Transient perspective and columns
4+
5+
- `PEEK_AT_TRANSIENT ≡ TRN`
6+
- it can only be on during `TX_EXEC`
7+
- transient columns
8+
```rust
9+
transient/ADDRESS_HI
10+
transient/ADDRESS_LO
11+
transient/STORAGE_KEY_HI
12+
transient/STORAGE_KEY_LO
13+
transient/VALUE_CURR_HI
14+
transient/VALUE_CURR_LO
15+
transient/VALUE_NEXT_HI
16+
transient/VALUE_NEXT_LO
17+
```
18+
- macros
19+
```rust
20+
sameTransientStorageValue[ relof ]
21+
undoTransientStorageValueUpdate[ relof_undo, relof_do ]
22+
```
23+
24+
## Instruction handling
25+
26+
- updating the storage family
27+
- flags, including staticFlag
28+
- decoded flags
29+
- processing
30+
- acceptable exceptions
31+
- exceptions:
32+
- SUX
33+
- OOGX
34+
```rust
35+
STACK
36+
```
37+
- STATICX (TSTORE only)
38+
```rust
39+
STACK
40+
CONTEXT
41+
```
42+
- unexceptional WILL_REVERT
43+
```rust
44+
STACK
45+
CONTEXT
46+
TRANSIENT // doing
47+
TRANSIENT // undoing
48+
```
49+
- unexceptional WONT_REVERT
50+
```rust
51+
STACK
52+
CONTEXT
53+
TRANSIENT // doing
54+
```
55+
- starting with `STATICX` we check whether the context is static
56+
- as soon as unexceptional we also retrieve the `context/ACCOUNT_ADDRESS`
57+
- just as with `SLOAD` we don't print anything on the stack unless the instruction is unexceptional
58+
- contrary to `SSTORE` / `SLOAD` we don't have to read storage to price it, in particular we don't need to retrieve transient storage data and play with warmth
59+
- if `CN_WILL_REVERT` we require two rows for `TSTORE`
60+
61+
## Consistency arguments
62+
63+
- permutation according to
64+
```rust
65+
(
66+
// order imposing columns
67+
+ PEEK_AT_TRANSIENT,
68+
+ ABSOLUTE_TRANSACTION_NUMBER,
69+
+ transient/ADDRESS_HI,
70+
+ transient/ADDRESS_LO,
71+
+ transient/STORAGE_KEY_HI,
72+
+ transient/STORAGE_KEY_LO,
73+
+ DOM_STAMP,
74+
- SUB_STAMP,
75+
// along for the ride
76+
transient/VALUE_CURR_HI,
77+
transient/VALUE_CURR_LO,
78+
transient/VALUE_NEXT_HI,
79+
transient/VALUE_NEXT_LO,
80+
)
81+
```
82+
- extraneous columns
83+
```rust
84+
// tcp ≡ transient consistency permutation
85+
tcp_FIRST_IN_TXN
86+
tcp_AGAIN_IN_TXN
87+
// no ``tcp_FINAL_IN_TXN'' column required
88+
```
89+
- constraints
90+
- standard constraints for FIRST/AGAIN
91+
- consistency is trivial: FIRST you have zero, when when meeting an [ADDRESS,STORAGE_KEY] pair AGAIN you get the previously updated value

0 commit comments

Comments
 (0)