accounts_cache uml
This commit is contained in:
parent
9f00650c36
commit
8ec25533bc
|
@ -1,3 +1,111 @@
|
||||||
|
`accounts_cache.nim` class diagram
|
||||||
|
==================================
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
|
||||||
|
class AccountsCache {
|
||||||
|
AccountsTrie
|
||||||
|
SavePoint
|
||||||
|
WitnessCache
|
||||||
|
isDirty: bool
|
||||||
|
%% ripemdSpecial: bool
|
||||||
|
}
|
||||||
|
AccountsCache *-- SavePoint
|
||||||
|
AccountsCache *-- WitnessCache
|
||||||
|
|
||||||
|
%% TBD: AccountsTrie
|
||||||
|
|
||||||
|
class SavePoint {
|
||||||
|
parent Savepoint
|
||||||
|
cache
|
||||||
|
selfDestruct: EthAddress []
|
||||||
|
%% logEntries: Log []
|
||||||
|
%% AccessList
|
||||||
|
TransientStorage
|
||||||
|
TransactionState
|
||||||
|
}
|
||||||
|
SavePoint o-- SavePoint
|
||||||
|
SavePoint *-- cache
|
||||||
|
SavePoint *-- TransientStorage
|
||||||
|
SavePoint *-- TransactionState
|
||||||
|
|
||||||
|
class cache {
|
||||||
|
EthAddress → RefAccount
|
||||||
|
EthAddress → RefAccount
|
||||||
|
...
|
||||||
|
}
|
||||||
|
cache o-- "*" RefAccount
|
||||||
|
|
||||||
|
class RefAccount {
|
||||||
|
Account
|
||||||
|
AccountFlags
|
||||||
|
code: seq[byte]
|
||||||
|
original: StorageTable
|
||||||
|
overlay: StorageTable
|
||||||
|
}
|
||||||
|
RefAccount o-- Account
|
||||||
|
RefAccount *-- "*" AccountFlag
|
||||||
|
RefAccount *-- StorageTable
|
||||||
|
|
||||||
|
class Account {
|
||||||
|
nonce
|
||||||
|
balance
|
||||||
|
storageRoot
|
||||||
|
codeHash
|
||||||
|
}
|
||||||
|
|
||||||
|
class AccountFlag {
|
||||||
|
<<enumeration>>
|
||||||
|
Alive
|
||||||
|
IsNew
|
||||||
|
Dirty
|
||||||
|
Touched
|
||||||
|
CodeLoaded
|
||||||
|
CodeChanged
|
||||||
|
StorageChanged
|
||||||
|
NewlyCreated
|
||||||
|
}
|
||||||
|
|
||||||
|
class TransientStorage {
|
||||||
|
EthAddress → StorageTable
|
||||||
|
EthAddress → StorageTable
|
||||||
|
...
|
||||||
|
}
|
||||||
|
TransientStorage *-- "*" StorageTable
|
||||||
|
|
||||||
|
class StorageTable {
|
||||||
|
UInt256 → UInt256
|
||||||
|
UInt256 → UInt256
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
class TransactionState {
|
||||||
|
<<enumeration>>
|
||||||
|
Pending
|
||||||
|
Committed
|
||||||
|
RolledBack
|
||||||
|
}
|
||||||
|
|
||||||
|
class WitnessCache {
|
||||||
|
EthAddress → WitnessData
|
||||||
|
EthAddress → WitnessData
|
||||||
|
...
|
||||||
|
}
|
||||||
|
WitnessCache *-- WitnessData
|
||||||
|
|
||||||
|
class WitnessData {
|
||||||
|
storageKeys: UInt256[]
|
||||||
|
codeTouched: bool
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- To edit live in VSCode, download the Markdown Preview Mermaid Support extension -->
|
||||||
|
|
||||||
|
|
||||||
The file `accounts_cache.nim` has been relocated
|
The file `accounts_cache.nim` has been relocated
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue