Implement CalcGasPrice for ethereum/go-ethereum#77
This commit is contained in:
		| @@ -154,6 +154,35 @@ func (block *Block) PayFee(addr []byte, fee *big.Int) bool { | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| func (block *Block) CalcGasLimit(parent *Block) *big.Int { | ||||
| 	if block.Number == big.NewInt(0) { | ||||
| 		return ethutil.BigPow(10, 6) | ||||
| 	} | ||||
| 	previous := new(big.Int).Mul(big.NewInt(1023), parent.GasLimit) | ||||
| 	current := new(big.Rat).Mul(new(big.Rat).SetInt(block.GasUsed), big.NewRat(6, 5)) | ||||
| 	curInt := new(big.Int).Div(current.Num(), current.Denom()) | ||||
|  | ||||
| 	result := new(big.Int).Add(previous, curInt) | ||||
| 	result.Div(result, big.NewInt(1024)) | ||||
|  | ||||
| 	min := ethutil.BigPow(10, 4) | ||||
|  | ||||
| 	return ethutil.BigMax(min, result) | ||||
| 	/* | ||||
| 		base := new(big.Int) | ||||
| 		base2 := new(big.Int) | ||||
| 		parentGL := bc.CurrentBlock.GasLimit | ||||
| 		parentUsed := bc.CurrentBlock.GasUsed | ||||
|  | ||||
| 		base.Mul(parentGL, big.NewInt(1024-1)) | ||||
| 		base2.Mul(parentUsed, big.NewInt(6)) | ||||
| 		base2.Div(base2, big.NewInt(5)) | ||||
| 		base.Add(base, base2) | ||||
| 		base.Div(base, big.NewInt(1024)) | ||||
| 	*/ | ||||
|  | ||||
| } | ||||
|  | ||||
| func (block *Block) BlockInfo() BlockInfo { | ||||
| 	bi := BlockInfo{} | ||||
| 	data, _ := ethutil.Config.Db.Get(append(block.Hash(), []byte("Info")...)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user