Browse Source

ethw test

master
yuriy0803 3 years ago
parent
commit
ee5965e990
  1. 17
      payouts/unlocker.go
  2. 1
      rpc/rpc.go
  3. 25
      util/util.go

17
payouts/unlocker.go

@ -337,6 +337,23 @@ func (u *BlockUnlocker) handleBlock(block *rpc.GetBlockReply, candidate *storage
reward.Add(reward, extraTxReward) reward.Add(reward, extraTxReward)
} }
// Remove Burnt Fees, post London (Base Fee Per Gas * Gas Used)
baseFeePerGas := new(big.Int)
bigBaseFeePerGas := util.DecodeValueHex(block.BaseFeePerGas)
baseFeePerGas.SetString(bigBaseFeePerGas, 10)
log.Println("baseFeePerGas: ", baseFeePerGas)
log.Println("block.BaseFeePerGas: ", block.BaseFeePerGas)
//gasUsed := big.NewInt(int64(block.GasUsed))
gasUsed := new(big.Int)
bigGasUsed := util.DecodeValueHex(block.GasUsed)
gasUsed.SetString(bigGasUsed, 10)
log.Println("gasUsed: ", gasUsed)
burntFees := new(big.Int).Mul(baseFeePerGas, gasUsed)
log.Println("BurntFees: ", burntFees)
reward.Sub(reward, burntFees)
candidate.Orphan = false candidate.Orphan = false
candidate.Hash = block.Hash candidate.Hash = block.Hash
candidate.Reward = reward candidate.Reward = reward

1
rpc/rpc.go

@ -34,6 +34,7 @@ type GetBlockReply struct {
Miner string `json:"miner"` Miner string `json:"miner"`
Difficulty string `json:"difficulty"` Difficulty string `json:"difficulty"`
GasLimit string `json:"gasLimit"` GasLimit string `json:"gasLimit"`
BaseFeePerGas string `json:"baseFeePerGas"`
GasUsed string `json:"gasUsed"` GasUsed string `json:"gasUsed"`
Timestamp string `json:"timestamp"` Timestamp string `json:"timestamp"`
Transactions []Tx `json:"transactions"` Transactions []Tx `json:"transactions"`

25
util/util.go

@ -94,3 +94,28 @@ func DiffIntToFloat(diffInt int64) (diffFloat float64) {
func ToHex1(n int64) string { func ToHex1(n int64) string {
return strconv.FormatInt(n, 10) return strconv.FormatInt(n, 10)
} }
// https://github.com/octanolabs/go-spectrum/blob/21ca5a2f3fec6c4bd12d5cc0a93b40cd305036fc/util/util.go
func DecodeValueHex(val string) string {
if len(val) < 2 || val == "0x0" {
return "0"
}
if val[:2] == "0x" {
x, err := hexutil.DecodeBig(val)
if err != nil {
// log.Error("errorDecodeValueHex", "str", val, "err", err)
}
return x.String()
} else {
x, ok := big.NewInt(0).SetString(val, 16)
if !ok {
// log.Error("errorDecodeValueHex", "str", val, "ok", ok)
}
return x.String()
}
}

Loading…
Cancel
Save