eth/tracers, internal/ethapi: remove unnecessary map pointer in state override (#30094)

pull/30228/head
caseylove 2 months ago committed by GitHub
parent 4dfc75deef
commit ac0f220040
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 10
      eth/tracers/api_test.go
  2. 16
      internal/ethapi/api.go
  3. 6
      internal/ethapi/api_test.go

@ -843,7 +843,7 @@ func TestTracingWithOverrides(t *testing.T) {
byte(vm.PUSH1), 00, byte(vm.PUSH1), 00,
byte(vm.RETURN), byte(vm.RETURN),
}), }),
StateDiff: &map[common.Hash]common.Hash{ StateDiff: map[common.Hash]common.Hash{
common.HexToHash("0x03"): common.HexToHash("0x11"), common.HexToHash("0x03"): common.HexToHash("0x11"),
}, },
}, },
@ -898,9 +898,9 @@ func newAccounts(n int) (accounts []Account) {
return accounts return accounts
} }
func newRPCBalance(balance *big.Int) **hexutil.Big { func newRPCBalance(balance *big.Int) *hexutil.Big {
rpcBalance := (*hexutil.Big)(balance) rpcBalance := (*hexutil.Big)(balance)
return &rpcBalance return rpcBalance
} }
func newRPCBytes(bytes []byte) *hexutil.Bytes { func newRPCBytes(bytes []byte) *hexutil.Bytes {
@ -908,7 +908,7 @@ func newRPCBytes(bytes []byte) *hexutil.Bytes {
return &rpcBytes return &rpcBytes
} }
func newStates(keys []common.Hash, vals []common.Hash) *map[common.Hash]common.Hash { func newStates(keys []common.Hash, vals []common.Hash) map[common.Hash]common.Hash {
if len(keys) != len(vals) { if len(keys) != len(vals) {
panic("invalid input") panic("invalid input")
} }
@ -916,7 +916,7 @@ func newStates(keys []common.Hash, vals []common.Hash) *map[common.Hash]common.H
for i := 0; i < len(keys); i++ { for i := 0; i < len(keys); i++ {
m[keys[i]] = vals[i] m[keys[i]] = vals[i]
} }
return &m return m
} }
func TestTraceChain(t *testing.T) { func TestTraceChain(t *testing.T) {

@ -968,11 +968,11 @@ func (api *BlockChainAPI) GetBlockReceipts(ctx context.Context, blockNrOrHash rp
// if stateDiff is set, all diff will be applied first and then execute the call // if stateDiff is set, all diff will be applied first and then execute the call
// message. // message.
type OverrideAccount struct { type OverrideAccount struct {
Nonce *hexutil.Uint64 `json:"nonce"` Nonce *hexutil.Uint64 `json:"nonce"`
Code *hexutil.Bytes `json:"code"` Code *hexutil.Bytes `json:"code"`
Balance **hexutil.Big `json:"balance"` Balance *hexutil.Big `json:"balance"`
State *map[common.Hash]common.Hash `json:"state"` State map[common.Hash]common.Hash `json:"state"`
StateDiff *map[common.Hash]common.Hash `json:"stateDiff"` StateDiff map[common.Hash]common.Hash `json:"stateDiff"`
} }
// StateOverride is the collection of overridden accounts. // StateOverride is the collection of overridden accounts.
@ -994,7 +994,7 @@ func (diff *StateOverride) Apply(statedb *state.StateDB) error {
} }
// Override account balance. // Override account balance.
if account.Balance != nil { if account.Balance != nil {
u256Balance, _ := uint256.FromBig((*big.Int)(*account.Balance)) u256Balance, _ := uint256.FromBig((*big.Int)(account.Balance))
statedb.SetBalance(addr, u256Balance, tracing.BalanceChangeUnspecified) statedb.SetBalance(addr, u256Balance, tracing.BalanceChangeUnspecified)
} }
if account.State != nil && account.StateDiff != nil { if account.State != nil && account.StateDiff != nil {
@ -1002,11 +1002,11 @@ func (diff *StateOverride) Apply(statedb *state.StateDB) error {
} }
// Replace entire state if caller requires. // Replace entire state if caller requires.
if account.State != nil { if account.State != nil {
statedb.SetStorage(addr, *account.State) statedb.SetStorage(addr, account.State)
} }
// Apply state diff into specified accounts. // Apply state diff into specified accounts.
if account.StateDiff != nil { if account.StateDiff != nil {
for key, value := range *account.StateDiff { for key, value := range account.StateDiff {
statedb.SetState(addr, key, value) statedb.SetState(addr, key, value)
} }
} }

@ -913,7 +913,7 @@ func TestCall(t *testing.T) {
overrides: StateOverride{ overrides: StateOverride{
randomAccounts[2].addr: OverrideAccount{ randomAccounts[2].addr: OverrideAccount{
Code: hex2Bytes("6080604052348015600f57600080fd5b506004361060285760003560e01c80638381f58a14602d575b600080fd5b60336049565b6040518082815260200191505060405180910390f35b6000548156fea2646970667358221220eab35ffa6ab2adfe380772a48b8ba78e82a1b820a18fcb6f59aa4efb20a5f60064736f6c63430007040033"), Code: hex2Bytes("6080604052348015600f57600080fd5b506004361060285760003560e01c80638381f58a14602d575b600080fd5b60336049565b6040518082815260200191505060405180910390f35b6000548156fea2646970667358221220eab35ffa6ab2adfe380772a48b8ba78e82a1b820a18fcb6f59aa4efb20a5f60064736f6c63430007040033"),
StateDiff: &map[common.Hash]common.Hash{{}: common.BigToHash(big.NewInt(123))}, StateDiff: map[common.Hash]common.Hash{{}: common.BigToHash(big.NewInt(123))},
}, },
}, },
want: "0x000000000000000000000000000000000000000000000000000000000000007b", want: "0x000000000000000000000000000000000000000000000000000000000000007b",
@ -1343,9 +1343,9 @@ func newAccounts(n int) (accounts []account) {
return accounts return accounts
} }
func newRPCBalance(balance *big.Int) **hexutil.Big { func newRPCBalance(balance *big.Int) *hexutil.Big {
rpcBalance := (*hexutil.Big)(balance) rpcBalance := (*hexutil.Big)(balance)
return &rpcBalance return rpcBalance
} }
func hex2Bytes(str string) *hexutil.Bytes { func hex2Bytes(str string) *hexutil.Bytes {

Loading…
Cancel
Save