34 lines
803 B
Go
34 lines
803 B
Go
|
package wrappers
|
||
|
|
||
|
import (
|
||
|
"github.com/CityOfZion/neo-go/pkg/core"
|
||
|
"github.com/CityOfZion/neo-go/pkg/util"
|
||
|
)
|
||
|
|
||
|
type (
|
||
|
// Block wrapper used for the representation of
|
||
|
// core.Block / core.BlockBase on the RPC Server.
|
||
|
Block struct {
|
||
|
*core.Block
|
||
|
Confirmations uint32 `json:"confirmations"`
|
||
|
NextBlockHash util.Uint256 `json:"nextblockhash,omitempty"`
|
||
|
Hash util.Uint256 `json:"hash"`
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// NewBlock creates a new Block wrapper.
|
||
|
func NewBlock(block *core.Block, chain core.Blockchainer) Block {
|
||
|
blockWrapper := Block{
|
||
|
Block: block,
|
||
|
Hash: block.Hash(),
|
||
|
}
|
||
|
|
||
|
hash := chain.GetHeaderHash(int(block.Index) + 1)
|
||
|
if !hash.Equals(util.Uint256{}) {
|
||
|
blockWrapper.NextBlockHash = hash
|
||
|
}
|
||
|
|
||
|
blockWrapper.Confirmations = chain.BlockHeight() - block.Index - 1
|
||
|
return blockWrapper
|
||
|
}
|