Skip to content

Commit fa29bf1

Browse files
authored
Merge pull request #378 from OffchainLabs/selfdestruct_accounting
Add balance acocunting to opSelfdestruct6780
2 parents ea3be60 + 6bd7e08 commit fa29bf1

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

core/vm/instructions.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -866,6 +866,10 @@ func opSelfdestruct6780(pc *uint64, interpreter *EVMInterpreter, scope *ScopeCon
866866
interpreter.evm.StateDB.SubBalance(scope.Contract.Address(), balance, tracing.BalanceDecreaseSelfdestruct)
867867
interpreter.evm.StateDB.AddBalance(beneficiary.Bytes20(), balance, tracing.BalanceIncreaseSelfdestruct)
868868
interpreter.evm.StateDB.Selfdestruct6780(scope.Contract.Address())
869+
if beneficiary.Bytes20() == scope.Contract.Address() {
870+
// Arbitrum: calling selfdestruct(this) burns the balance
871+
interpreter.evm.StateDB.ExpectBalanceBurn(balance.ToBig())
872+
}
869873
if tracer := interpreter.evm.Config.Tracer; tracer != nil {
870874
if tracer.OnEnter != nil {
871875
tracer.OnEnter(interpreter.evm.depth, byte(SELFDESTRUCT), scope.Contract.Address(), beneficiary.Bytes20(), []byte{}, 0, balance.ToBig())

0 commit comments

Comments
 (0)