func CreateTestDirectoryBlockHeader(prevBlock *directoryBlock.DirectoryBlock) *directoryBlock.DBlockHeader { header := new(directoryBlock.DBlockHeader) header.SetBodyMR(primitives.Sha(primitives.NewZeroHash().Bytes())) header.SetBlockCount(0) header.SetNetworkID(0xffff) if prevBlock == nil { header.SetDBHeight(0) header.SetPrevLedgerKeyMR(primitives.NewZeroHash()) header.SetPrevKeyMR(primitives.NewZeroHash()) header.SetTimestamp(1234) } else { header.SetDBHeight(prevBlock.Header.GetDBHeight() + 1) header.SetPrevLedgerKeyMR(prevBlock.GetHash()) keyMR, err := prevBlock.BuildKeyMerkleRoot() if err != nil { panic(err) } header.SetPrevKeyMR(keyMR) header.SetTimestamp(prevBlock.Header.GetTimestamp() + 1) } header.SetVersion(1) return header }
func CreateTestDirectoryBlockHeader(prevBlock *directoryBlock.DirectoryBlock) *directoryBlock.DBlockHeader { header := new(directoryBlock.DBlockHeader) header.SetBodyMR(primitives.Sha(primitives.NewZeroHash().Bytes())) header.SetBlockCount(0) header.SetNetworkID(constants.MAIN_NETWORK_ID) if prevBlock == nil { header.SetDBHeight(0) header.SetPrevFullHash(primitives.NewZeroHash()) header.SetPrevKeyMR(primitives.NewZeroHash()) header.SetTimestamp(primitives.NewTimestampFromMinutes(1234)) } else { header.SetDBHeight(prevBlock.Header.GetDBHeight() + 1) header.SetPrevFullHash(prevBlock.GetHash()) keyMR, err := prevBlock.BuildKeyMerkleRoot() if err != nil { panic(err) } header.SetPrevKeyMR(keyMR) header.SetTimestamp(primitives.NewTimestampFromMinutes(prevBlock.Header.GetTimestamp().GetTimeMinutesUInt32() + 1)) } header.SetVersion(1) return header }
func CreateTestAnchorEnry(dBlock *directoryBlock.DirectoryBlock) *entryBlock.Entry { answer := entryBlock.NewEntry() answer.ChainID = GetAnchorChainID() answer.Version = 0 answer.ExtIDs = nil height := dBlock.GetHeader().GetDBHeight() ar := anchor.CreateAnchorRecordFromDBlock(dBlock) ar.Bitcoin = new(anchor.BitcoinStruct) ar.Bitcoin.Address = "1HLoD9E4SDFFPDiYfNYnkBLQ85Y51J3Zb1" ar.Bitcoin.TXID = fmt.Sprintf("%x", IntToByteSlice(int(height))) ar.Bitcoin.BlockHeight = int32(height) ar.Bitcoin.BlockHash = fmt.Sprintf("%x", IntToByteSlice(255-int(height))) ar.Bitcoin.Offset = int32(height % 10) hex, err := ar.MarshalAndSign(NewPrimitivesPrivateKey(0)) if err != nil { panic(err) } answer.Content = primitives.ByteSlice{Bytes: hex} return answer }
func (db *Overlay) FetchDirectoryBlockHead() (interfaces.IDirectoryBlock, error) { blk := new(directoryBlock.DirectoryBlock) block, err := db.FetchChainHeadByChainID(DIRECTORYBLOCK, primitives.NewHash(blk.GetChainID().Bytes()), blk) if err != nil { return nil, err } if block == nil { return nil, nil } return block.(interfaces.IDirectoryBlock), nil }
func CreateTestDirectoryBlock(prevBlock *directoryBlock.DirectoryBlock) *directoryBlock.DirectoryBlock { dblock := new(directoryBlock.DirectoryBlock) dblock.SetHeader(CreateTestDirectoryBlockHeader(prevBlock)) de := new(directoryBlock.DBEntry) de.ChainID = primitives.NewZeroHash() de.KeyMR = primitives.NewZeroHash() err := dblock.SetDBEntries(append(make([]interfaces.IDBEntry, 0, 5), de)) if err != nil { panic(err) } //dblock.GetHeader().SetBlockCount(uint32(len(dblock.GetDBEntries()))) return dblock }