forked from TrueCloudLab/neoneo-go
* added headersOp for safely processing headers * Better handling of protocol messages. * housekeeping + cleanup tests * Added more blockchain logic + unit tests * fixed unreachable error. * added structured logging for all (node) components. * added relay flag + bumped version
40 lines
843 B
Go
40 lines
843 B
Go
package core
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"time"
|
|
|
|
"github.com/CityOfZion/neo-go/pkg/core/transaction"
|
|
"github.com/CityOfZion/neo-go/pkg/util"
|
|
)
|
|
|
|
func newBlock(index uint32, txs ...*transaction.Transaction) *Block {
|
|
b := &Block{
|
|
BlockBase: BlockBase{
|
|
Version: 0,
|
|
PrevHash: sha256.Sum256([]byte("a")),
|
|
MerkleRoot: sha256.Sum256([]byte("b")),
|
|
Timestamp: uint32(time.Now().UTC().Unix()),
|
|
Index: index,
|
|
ConsensusData: 1111,
|
|
NextConsensus: util.Uint160{},
|
|
Script: &transaction.Witness{
|
|
VerificationScript: []byte{0x0},
|
|
InvocationScript: []byte{0x1},
|
|
},
|
|
},
|
|
Transactions: txs,
|
|
}
|
|
hash, err := b.createHash()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
b.hash = hash
|
|
return b
|
|
}
|
|
|
|
func newTX(t transaction.TXType) *transaction.Transaction {
|
|
return &transaction.Transaction{
|
|
Type: t,
|
|
}
|
|
}
|