|
17 | 17 | package logger
|
18 | 18 |
|
19 | 19 | import (
|
| 20 | + "fmt" |
20 | 21 | "maps"
|
21 | 22 |
|
22 | 23 | "github.com/ethereum/go-ethereum/common"
|
@@ -116,6 +117,7 @@ type AccessListTracer struct {
|
116 | 117 | // An optional AccessList can be specified to occupy slots and addresses in
|
117 | 118 | // the resulting accesslist.
|
118 | 119 | func NewAccessListTracer(acl types.AccessList, addressesToExclude map[common.Address]struct{}) *AccessListTracer {
|
| 120 | + fmt.Println("new access list tracer", acl, addressesToExclude) |
119 | 121 | list := newAccessList()
|
120 | 122 | for _, al := range acl {
|
121 | 123 | if _, ok := addressesToExclude[al.Address]; !ok {
|
@@ -144,17 +146,20 @@ func (a *AccessListTracer) OnOpcode(pc uint64, opcode byte, gas, cost uint64, sc
|
144 | 146 | op := vm.OpCode(opcode)
|
145 | 147 | if (op == vm.SLOAD || op == vm.SSTORE) && stackLen >= 1 {
|
146 | 148 | slot := common.Hash(stackData[stackLen-1].Bytes32())
|
| 149 | + fmt.Println("adding slot to access list tracer", slot, scope.Address()) |
147 | 150 | a.list.addSlot(scope.Address(), slot)
|
148 | 151 | }
|
149 | 152 | if (op == vm.EXTCODECOPY || op == vm.EXTCODEHASH || op == vm.EXTCODESIZE || op == vm.BALANCE || op == vm.SELFDESTRUCT) && stackLen >= 1 {
|
150 | 153 | addr := common.Address(stackData[stackLen-1].Bytes20())
|
151 | 154 | if _, ok := a.excl[addr]; !ok {
|
| 155 | + fmt.Println("adding norm address to access list tracer", addr) |
152 | 156 | a.list.addAddress(addr)
|
153 | 157 | }
|
154 | 158 | }
|
155 | 159 | if (op == vm.DELEGATECALL || op == vm.CALL || op == vm.STATICCALL || op == vm.CALLCODE) && stackLen >= 5 {
|
156 | 160 | addr := common.Address(stackData[stackLen-2].Bytes20())
|
157 | 161 | if _, ok := a.excl[addr]; !ok {
|
| 162 | + fmt.Println("adding call address to access list tracer", addr) |
158 | 163 | a.list.addAddress(addr)
|
159 | 164 | }
|
160 | 165 | }
|
|
0 commit comments