core: optimize IntrinsicGas
This commit is contained in:
parent
a8889b092b
commit
0b22ad99c1
@ -77,13 +77,20 @@ func MessageGasValue(msg Message) *big.Int {
|
|||||||
// with the given data.
|
// with the given data.
|
||||||
func IntrinsicGas(data []byte) *big.Int {
|
func IntrinsicGas(data []byte) *big.Int {
|
||||||
igas := new(big.Int).Set(params.TxGas)
|
igas := new(big.Int).Set(params.TxGas)
|
||||||
|
if len(data) > 0 {
|
||||||
|
var nz int64
|
||||||
for _, byt := range data {
|
for _, byt := range data {
|
||||||
if byt != 0 {
|
if byt != 0 {
|
||||||
igas.Add(igas, params.TxDataNonZeroGas)
|
nz++
|
||||||
} else {
|
|
||||||
igas.Add(igas, params.TxDataZeroGas)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
m := big.NewInt(nz)
|
||||||
|
m.Mul(m, params.TxDataNonZeroGas)
|
||||||
|
igas.Add(igas, m)
|
||||||
|
m.SetInt64(int64(len(data)) - nz)
|
||||||
|
m.Mul(m, params.TxDataZeroGas)
|
||||||
|
igas.Add(igas, m)
|
||||||
|
}
|
||||||
return igas
|
return igas
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user