forked from TrueCloudLab/neoneo-go
34 lines
849 B
Go
34 lines
849 B
Go
package wrappers
|
|
|
|
import (
|
|
"github.com/CityOfZion/neo-go/pkg/core"
|
|
"github.com/CityOfZion/neo-go/pkg/core/block"
|
|
"github.com/CityOfZion/neo-go/pkg/util"
|
|
)
|
|
|
|
type (
|
|
// Block wrapper used for the representation of
|
|
// block.Block / block.Base on the RPC Server.
|
|
Block struct {
|
|
*block.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 *block.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
|
|
}
|