@@ -620,7 +620,7 @@ func (s *BlockChainAPI) BlockNumber() hexutil.Uint64 {
620
620
// given block number. The rpc.LatestBlockNumber and rpc.PendingBlockNumber meta
621
621
// block numbers are also allowed.
622
622
func (s * BlockChainAPI ) GetBalance (ctx context.Context , address common.Address , blockNrOrHash rpc.BlockNumberOrHash ) (* hexutil.Big , error ) {
623
- state , _ , release , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
623
+ state , _ , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
624
624
if state == nil || err != nil {
625
625
if client := fallbackClientFor (s .b , err ); client != nil {
626
626
var res hexutil.Big
@@ -629,7 +629,6 @@ func (s *BlockChainAPI) GetBalance(ctx context.Context, address common.Address,
629
629
}
630
630
return nil , err
631
631
}
632
- defer release ()
633
632
return (* hexutil .Big )(state .GetBalance (address )), state .Error ()
634
633
}
635
634
@@ -682,11 +681,10 @@ func (s *BlockChainAPI) GetProof(ctx context.Context, address common.Address, st
682
681
}
683
682
}
684
683
685
- state , _ , release , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
684
+ state , _ , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
686
685
if state == nil || err != nil {
687
686
return nil , err
688
687
}
689
- defer release ()
690
688
if storageTrie , err = state .StorageTrie (address ); err != nil {
691
689
return nil , err
692
690
}
@@ -869,7 +867,7 @@ func (s *BlockChainAPI) GetUncleCountByBlockHash(ctx context.Context, blockHash
869
867
870
868
// GetCode returns the code stored at the given address in the state for the given block number.
871
869
func (s * BlockChainAPI ) GetCode (ctx context.Context , address common.Address , blockNrOrHash rpc.BlockNumberOrHash ) (hexutil.Bytes , error ) {
872
- state , _ , release , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
870
+ state , _ , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
873
871
if state == nil || err != nil {
874
872
if client := fallbackClientFor (s .b , err ); client != nil {
875
873
var res hexutil.Bytes
@@ -878,7 +876,6 @@ func (s *BlockChainAPI) GetCode(ctx context.Context, address common.Address, blo
878
876
}
879
877
return nil , err
880
878
}
881
- defer release ()
882
879
code := state .GetCode (address )
883
880
return code , state .Error ()
884
881
}
@@ -891,7 +888,7 @@ func (s *BlockChainAPI) GetStorageAt(ctx context.Context, address common.Address
891
888
if err != nil {
892
889
return nil , fmt .Errorf ("unable to decode storage key: %s" , err )
893
890
}
894
- state , _ , release , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
891
+ state , _ , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
895
892
if state == nil || err != nil {
896
893
if client := fallbackClientFor (s .b , err ); client != nil {
897
894
var res hexutil.Bytes
@@ -900,7 +897,6 @@ func (s *BlockChainAPI) GetStorageAt(ctx context.Context, address common.Address
900
897
}
901
898
return nil , err
902
899
}
903
- defer release ()
904
900
res := state .GetState (address , key )
905
901
return res [:], state .Error ()
906
902
}
@@ -1129,11 +1125,10 @@ func doCall(ctx context.Context, b Backend, args TransactionArgs, state *state.S
1129
1125
func DoCall (ctx context.Context , b Backend , args TransactionArgs , blockNrOrHash rpc.BlockNumberOrHash , overrides * StateOverride , blockOverrides * BlockOverrides , timeout time.Duration , globalGasCap uint64 , runMode core.MessageRunMode ) (* core.ExecutionResult , error ) {
1130
1126
defer func (start time.Time ) { log .Debug ("Executing EVM call finished" , "runtime" , time .Since (start )) }(time .Now ())
1131
1127
1132
- state , header , release , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1128
+ state , header , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1133
1129
if state == nil || err != nil {
1134
1130
return nil , err
1135
1131
}
1136
- defer release ()
1137
1132
1138
1133
return doCall (ctx , b , args , state , header , overrides , blockOverrides , timeout , globalGasCap , runMode )
1139
1134
}
@@ -1237,11 +1232,10 @@ func DoEstimateGas(ctx context.Context, b Backend, args TransactionArgs, blockNr
1237
1232
}
1238
1233
// Recap the highest gas limit with account's available balance.
1239
1234
if feeCap .BitLen () != 0 {
1240
- state , _ , release , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1235
+ state , _ , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1241
1236
if err != nil {
1242
1237
return 0 , err
1243
1238
}
1244
- defer release ()
1245
1239
err = overrides .Apply (state )
1246
1240
if err != nil {
1247
1241
return 0 , err
@@ -1271,11 +1265,10 @@ func DoEstimateGas(ctx context.Context, b Backend, args TransactionArgs, blockNr
1271
1265
// Arbitrum: raise the gas cap to ignore L1 costs so that it's compute-only
1272
1266
vanillaGasCap := gasCap
1273
1267
{
1274
- state , header , release , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1268
+ state , header , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1275
1269
if state == nil || err != nil {
1276
1270
return 0 , err
1277
1271
}
1278
- defer release ()
1279
1272
gasCap , err = args .L2OnlyGasCap (gasCap , header , state , core .MessageGasEstimationMode )
1280
1273
if err != nil {
1281
1274
return 0 , err
@@ -1302,11 +1295,10 @@ func DoEstimateGas(ctx context.Context, b Backend, args TransactionArgs, blockNr
1302
1295
}
1303
1296
return result .Failed (), result , nil
1304
1297
}
1305
- state , header , release , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1298
+ state , header , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1306
1299
if state == nil || err != nil {
1307
1300
return 0 , err
1308
1301
}
1309
- defer release ()
1310
1302
err = overrides .Apply (state )
1311
1303
if err != nil {
1312
1304
return 0 , err
@@ -1703,11 +1695,10 @@ func (s *BlockChainAPI) CreateAccessList(ctx context.Context, args TransactionAr
1703
1695
// If the transaction itself fails, an vmErr is returned.
1704
1696
func AccessList (ctx context.Context , b Backend , blockNrOrHash rpc.BlockNumberOrHash , args TransactionArgs ) (acl types.AccessList , gasUsed uint64 , vmErr error , err error ) {
1705
1697
// Retrieve the execution context
1706
- db , header , release , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1698
+ db , header , err := b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1707
1699
if db == nil || err != nil {
1708
1700
return nil , 0 , nil , err
1709
1701
}
1710
- defer release ()
1711
1702
// If the gas amount is not set, default to RPC gas cap.
1712
1703
if args .Gas == nil {
1713
1704
tmp := hexutil .Uint64 (b .RPCGasCap ())
@@ -1838,7 +1829,7 @@ func (s *TransactionAPI) GetTransactionCount(ctx context.Context, address common
1838
1829
return (* hexutil .Uint64 )(& nonce ), nil
1839
1830
}
1840
1831
// Resolve block number and use its state to ask for the nonce
1841
- state , _ , release , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1832
+ state , _ , err := s .b .StateAndHeaderByNumberOrHash (ctx , blockNrOrHash )
1842
1833
if state == nil || err != nil {
1843
1834
if client := fallbackClientFor (s .b , err ); client != nil {
1844
1835
var res hexutil.Uint64
@@ -1847,7 +1838,6 @@ func (s *TransactionAPI) GetTransactionCount(ctx context.Context, address common
1847
1838
}
1848
1839
return nil , err
1849
1840
}
1850
- defer release ()
1851
1841
nonce := state .GetNonce (address )
1852
1842
return (* hexutil .Uint64 )(& nonce ), state .Error ()
1853
1843
}
0 commit comments