... | ... | @@ -16,9 +16,28 @@ copy类操作指的是在EVM中进行不定长的一段数据拷贝,例如`CAL |
|
|
- `CALLDATA_FROMPUBLIC`:外界(交易、公开数据)的`CALLDATA`输入
|
|
|
- `CALLDATA_FROMCALL`:合约调用另一个合约的`CALLDATA`输入
|
|
|
|
|
|
下图展示了数据的位置可能是:`state`子电路中的`memory`、`calldata`、`returndata`,`bytecode`子电路中的`bytecode`,`public`子电路中的`calldata`和`log`。
|
|
|
下列表格展示了数据的来源可能是:`state`子电路中的`memory`、`calldata`、`returndata`,`bytecode`子电路中的`bytecode`,`public`子电路中的`calldata`和`logdata`。
|
|
|
|
|
|
#### state子电路
|
|
|
| state | | | | | |
|
|
|
| ---------- | ------- | ---------- | ----- | -------- | -------- |
|
|
|
| Memory | call_id | pointer_lo | stamp | value_lo | is_write |
|
|
|
| Calldata | call_id | pointer_lo | stamp | value_lo | is_write |
|
|
|
| Returndata | call_id | pointer_lo | stamp | value_lo | is_write |
|
|
|
|
|
|
#### bytecode子电路
|
|
|
| bytecode | | |
|
|
|
| -------- | ---- | -------- |
|
|
|
| pc | addr | bytecode |
|
|
|
|
|
|
|
|
|
#### public子电路
|
|
|
|
|
|
| public | | | | |
|
|
|
| ---------- | ------------ | ------- | -------- | ---- |
|
|
|
| TxCalldata | block_tx_idx | log_idx | byte | |
|
|
|
| TxLogData | block_tx_idx | log_idx | data_idx | data |
|
|
|
|
|
|

|
|
|
|
|
|
- `CODECOPY`, `EXTCODECOPY`:从`bytecode`到`memory`
|
|
|
- `CALLDATACOPY`:从`calldata`(state中的)到`memory`
|
... | ... | |