core/state: optimize Set

This commit is contained in:
cuiweixie 2026-01-07 21:00:33 +08:00
parent eaaa5b716d
commit 9c287db442

View file

@ -35,18 +35,20 @@ func newTransientStorage() transientStorage {
// Set sets the transient-storage `value` for `key` at the given `addr`. // Set sets the transient-storage `value` for `key` at the given `addr`.
func (t transientStorage) Set(addr common.Address, key, value common.Hash) { func (t transientStorage) Set(addr common.Address, key, value common.Hash) {
storage, ok := t[addr]
if value == (common.Hash{}) { // this is a 'delete' if value == (common.Hash{}) { // this is a 'delete'
if _, ok := t[addr]; ok { if ok {
delete(t[addr], key) delete(storage, key)
if len(t[addr]) == 0 { if len(storage) == 0 {
delete(t, addr) delete(t, addr)
} }
} }
} else { } else {
if _, ok := t[addr]; !ok { if !ok {
t[addr] = make(Storage) storage = make(Storage)
t[addr] = storage
} }
t[addr][key] = value storage[key] = value
} }
} }