"pending" convention should be -2 instead of 0

This commit is contained in:
Taylor Gerring 2015-03-23 16:36:12 +01:00
parent 2f8601ef38
commit 5707912e2f
2 changed files with 15 additions and 2 deletions

View File

@ -26,7 +26,7 @@ func blockHeight(raw interface{}, number *int64) (err error) {
case "latest": case "latest":
*number = -1 *number = -1
case "pending": case "pending":
*number = 0 *number = -2
default: default:
*number = common.String2Big(str).Int64() *number = common.String2Big(str).Int64()
} }

View File

@ -176,9 +176,12 @@ func (self *XEth) AtStateNum(num int64) *XEth {
chain := self.Backend().ChainManager() chain := self.Backend().ChainManager()
var block *types.Block var block *types.Block
// -1 generally means "latest"
// -2 means "pending", which has no blocknum
if num < 0 { if num < 0 {
num = chain.CurrentBlock().Number().Int64() + num + 1 num = chain.CurrentBlock().Number().Int64()
} }
block = chain.GetBlockByNumber(uint64(num)) block = chain.GetBlockByNumber(uint64(num))
var st *state.StateDB var st *state.StateDB
@ -229,6 +232,11 @@ func (self *XEth) EthTransactionByHash(hash string) *types.Transaction {
} }
func (self *XEth) BlockByNumber(num int64) *Block { func (self *XEth) BlockByNumber(num int64) *Block {
if num == -2 {
// "pending" is non-existant
return &Block{}
}
if num == -1 { if num == -1 {
return NewBlock(self.chainManager.CurrentBlock()) return NewBlock(self.chainManager.CurrentBlock())
} }
@ -237,6 +245,11 @@ func (self *XEth) BlockByNumber(num int64) *Block {
} }
func (self *XEth) EthBlockByNumber(num int64) *types.Block { func (self *XEth) EthBlockByNumber(num int64) *types.Block {
if num == -2 {
// "pending" is non-existant
return &types.Block{}
}
if num == -1 { if num == -1 {
return self.chainManager.CurrentBlock() return self.chainManager.CurrentBlock()
} }