forked from cerc-io/ipld-eth-server
more explicity payload err and msg
This commit is contained in:
@@ -34,7 +34,7 @@ var _ = Describe("Converter", func() {
|
||||
convertedPayload, ok := payload.(btc.IPLDPayload)
|
||||
Expect(ok).To(BeTrue())
|
||||
Expect(convertedPayload).To(Equal(mocks.MockIPLDPayload))
|
||||
Expect(convertedPayload.Height).To(Equal(mocks.MockBlockHeight))
|
||||
Expect(convertedPayload.BlockHeight).To(Equal(mocks.MockBlockHeight))
|
||||
Expect(convertedPayload.Header).To(Equal(&mocks.MockBlock.Header))
|
||||
Expect(convertedPayload.Txs).To(Equal(mocks.MockTransactions))
|
||||
Expect(convertedPayload.TxMetaData).To(Equal(mocks.MockTxsMetaData))
|
||||
|
||||
@@ -42,7 +42,7 @@ func (s *ResponseFilterer) Filter(filter shared.SubscriptionSettings, payload sh
|
||||
if !ok {
|
||||
return StreamResponse{}, fmt.Errorf("btc filterer expected payload type %T got %T", IPLDPayload{}, payload)
|
||||
}
|
||||
height := int64(btcPayload.Height)
|
||||
height := int64(btcPayload.BlockPayload.BlockHeight)
|
||||
if checkRange(btcFilters.Start.Int64(), btcFilters.End.Int64(), height) {
|
||||
response := new(StreamResponse)
|
||||
if err := s.filterHeaders(btcFilters.HeaderFilter, response, btcPayload); err != nil {
|
||||
|
||||
@@ -75,9 +75,9 @@ func (ps *HTTPPayloadStreamer) Stream(payloadChan chan shared.RawChainData) (sha
|
||||
continue
|
||||
}
|
||||
payloadChan <- BlockPayload{
|
||||
Header: &block.Header,
|
||||
Height: height,
|
||||
Txs: msgTxsToUtilTxs(block.Transactions),
|
||||
Header: &block.Header,
|
||||
BlockHeight: height,
|
||||
Txs: msgTxsToUtilTxs(block.Transactions),
|
||||
}
|
||||
default:
|
||||
}
|
||||
|
||||
@@ -229,9 +229,9 @@ var (
|
||||
btcutil.NewTx(MockBlock.Transactions[2]),
|
||||
}
|
||||
MockBlockPayload = btc.BlockPayload{
|
||||
Header: &MockBlock.Header,
|
||||
Txs: MockTransactions,
|
||||
Height: MockBlockHeight,
|
||||
Header: &MockBlock.Header,
|
||||
Txs: MockTransactions,
|
||||
BlockHeight: MockBlockHeight,
|
||||
}
|
||||
sClass1, addresses1, numOfSigs1, _ = txscript.ExtractPkScriptAddrs([]byte{
|
||||
0x41, // OP_DATA_65
|
||||
|
||||
@@ -55,9 +55,9 @@ func (fetcher *PayloadFetcher) FetchAt(blockHeights []uint64) ([]shared.RawChain
|
||||
return nil, err
|
||||
}
|
||||
blockPayloads[i] = BlockPayload{
|
||||
Height: int64(height),
|
||||
Header: &block.Header,
|
||||
Txs: msgTxsToUtilTxs(block.Transactions),
|
||||
BlockHeight: int64(height),
|
||||
Header: &block.Header,
|
||||
Txs: msgTxsToUtilTxs(block.Transactions),
|
||||
}
|
||||
}
|
||||
return blockPayloads, nil
|
||||
|
||||
@@ -61,7 +61,7 @@ func (pub *IPLDPublisher) Publish(payload shared.StreamedIPLDs) (shared.CIDsForI
|
||||
header := HeaderModel{
|
||||
CID: headerCid,
|
||||
ParentHash: ipldPayload.Header.PrevBlock.String(),
|
||||
BlockNumber: strconv.Itoa(int(ipldPayload.Height)),
|
||||
BlockNumber: strconv.Itoa(int(ipldPayload.BlockPayload.BlockHeight)),
|
||||
BlockHash: ipldPayload.Header.BlockHash().String(),
|
||||
Timestamp: ipldPayload.Header.Timestamp.UnixNano(),
|
||||
Bits: ipldPayload.Header.Bits,
|
||||
|
||||
@@ -49,9 +49,9 @@ func (ps *PayloadStreamer) Stream(payloadChan chan shared.RawChainData) (shared.
|
||||
// Notification handler for block connections, forwards new block data to the payloadChan
|
||||
OnFilteredBlockConnected: func(height int32, header *wire.BlockHeader, txs []*btcutil.Tx) {
|
||||
payloadChan <- BlockPayload{
|
||||
Height: int64(height),
|
||||
Header: header,
|
||||
Txs: txs,
|
||||
BlockHeight: int64(height),
|
||||
Header: header,
|
||||
Txs: txs,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@@ -27,9 +27,9 @@ import (
|
||||
|
||||
// BlockPayload packages the block and tx data received from block connection notifications
|
||||
type BlockPayload struct {
|
||||
Height int64
|
||||
Header *wire.BlockHeader
|
||||
Txs []*btcutil.Tx
|
||||
BlockHeight int64
|
||||
Header *wire.BlockHeader
|
||||
Txs []*btcutil.Tx
|
||||
}
|
||||
|
||||
// IPLDPayload is a custom type which packages raw BTC data for publishing to IPFS and filtering to subscribers
|
||||
@@ -40,6 +40,11 @@ type IPLDPayload struct {
|
||||
TxMetaData []TxModelWithInsAndOuts
|
||||
}
|
||||
|
||||
// Height satisfies the StreamedIPLDs interface
|
||||
func (i IPLDPayload) Height() int64 {
|
||||
return i.BlockPayload.BlockHeight
|
||||
}
|
||||
|
||||
// CIDPayload is a struct to hold all the CIDs and their associated meta data for indexing in Postgres
|
||||
// Returned by IPLDPublisher
|
||||
// Passed to CIDIndexer
|
||||
@@ -78,6 +83,11 @@ type StreamResponse struct {
|
||||
err error
|
||||
}
|
||||
|
||||
// Height satisfies the ServerResponse interface
|
||||
func (sr StreamResponse) Height() int64 {
|
||||
return sr.BlockNumber.Int64()
|
||||
}
|
||||
|
||||
func (sr *StreamResponse) ensureEncoded() {
|
||||
if sr.encoded == nil && sr.err == nil {
|
||||
sr.encoded, sr.err = json.Marshal(sr)
|
||||
|
||||
Reference in New Issue
Block a user