mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 23:26:44 +00:00
Merge branch 'feature/gas-full-cycle-and-reason' into feature/firehose-extended-tracer
# Conflicts: # core/vm/evm.go
This commit is contained in:
commit
90adcd0a1e
1 changed files with 21 additions and 7 deletions
|
|
@ -185,7 +185,9 @@ func (evm *EVM) Call(caller ContractRef, addr common.Address, input []byte, gas
|
|||
evm.Config.Tracer.CaptureStart(caller.Address(), addr, false, input, gas, value)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) { // Lazy evaluation of the parameters
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureEnd(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
} else {
|
||||
|
|
@ -193,7 +195,9 @@ func (evm *EVM) Call(caller ContractRef, addr common.Address, input []byte, gas
|
|||
evm.Config.Tracer.CaptureEnter(CALL, caller.Address(), addr, input, gas, value)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
}
|
||||
|
|
@ -268,7 +272,9 @@ func (evm *EVM) CallCode(caller ContractRef, addr common.Address, input []byte,
|
|||
evm.Config.Tracer.CaptureEnter(CALLCODE, caller.Address(), addr, input, gas, value)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
}
|
||||
|
|
@ -325,7 +331,9 @@ func (evm *EVM) DelegateCall(caller ContractRef, addr common.Address, input []by
|
|||
evm.Config.Tracer.CaptureEnter(DELEGATECALL, caller.Address(), addr, input, gas, parent.value)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
}
|
||||
|
|
@ -369,7 +377,9 @@ func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte
|
|||
evm.Config.Tracer.CaptureEnter(STATICCALL, caller.Address(), addr, input, gas, nil)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
}
|
||||
|
|
@ -439,14 +449,18 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64,
|
|||
evm.Config.Tracer.CaptureStart(caller.Address(), address, true, codeAndHash.code, gas, value)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureEnd(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
} else {
|
||||
evm.Config.Tracer.CaptureEnter(typ, caller.Address(), address, codeAndHash.code, gas, value)
|
||||
evm.Config.Tracer.OnGasChange(0, gas, GasChangeCallInitialBalance)
|
||||
defer func(startGas uint64) {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
if leftOverGas != 0 {
|
||||
evm.Config.Tracer.OnGasChange(leftOverGas, 0, GasChangeCallLeftOverReturned)
|
||||
}
|
||||
evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err)
|
||||
}(gas)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue