remove LIMIT 100; method to check continuity of headers returned but doesn't require
the set to start at a specific block number; config for account_transformer; review fixes; update schema
This commit is contained in:
@@ -67,6 +67,9 @@ func (ci *ColdImporter) createBlocksAndTransactions(hash []byte, i int64) (int64
|
||||
|
||||
func (ci *ColdImporter) createReceiptsAndLogs(hash []byte, number int64, blockId int64) error {
|
||||
receipts := ci.ethDB.GetBlockReceipts(hash, number)
|
||||
coreReceipts := common.ToCoreReceipts(receipts)
|
||||
coreReceipts, err := common.ToCoreReceipts(receipts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return ci.receiptRepository.CreateReceiptsAndLogs(blockId, coreReceipts)
|
||||
}
|
||||
|
||||
@@ -126,7 +126,8 @@ var _ = Describe("Geth cold importer", func() {
|
||||
|
||||
err := importer.Execute(blockNumber, blockNumber, "node_id")
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
expectedReceipts := vulcCommon.ToCoreReceipts(fakeReceipts)
|
||||
expectedReceipts, err := vulcCommon.ToCoreReceipts(fakeReceipts)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
mockReceiptRepository.AssertCreateReceiptsAndLogsCalledWith(blockId, expectedReceipts)
|
||||
})
|
||||
|
||||
|
||||
@@ -290,7 +290,8 @@ var _ = Describe("Conversion of GethBlock to core.Block", func() {
|
||||
Expect(coreTransaction.Nonce).To(Equal(gethTransaction.Nonce()))
|
||||
|
||||
coreReceipt := coreTransaction.Receipt
|
||||
expectedReceipt := vulcCommon.ToCoreReceipt(gethReceipt)
|
||||
expectedReceipt, err := vulcCommon.ToCoreReceipt(gethReceipt)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(coreReceipt).To(Equal(expectedReceipt))
|
||||
})
|
||||
|
||||
@@ -329,7 +330,8 @@ var _ = Describe("Conversion of GethBlock to core.Block", func() {
|
||||
Expect(coreTransaction.To).To(Equal(""))
|
||||
|
||||
coreReceipt := coreTransaction.Receipt
|
||||
expectedReceipt := vulcCommon.ToCoreReceipt(gethReceipt)
|
||||
expectedReceipt, err := vulcCommon.ToCoreReceipt(gethReceipt)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(coreReceipt).To(Equal(expectedReceipt))
|
||||
})
|
||||
})
|
||||
|
||||
@@ -26,16 +26,19 @@ import (
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
)
|
||||
|
||||
func ToCoreReceipts(gethReceipts types.Receipts) []core.Receipt {
|
||||
func ToCoreReceipts(gethReceipts types.Receipts) ([]core.Receipt, error) {
|
||||
var coreReceipts []core.Receipt
|
||||
for _, receipt := range gethReceipts {
|
||||
coreReceipt := ToCoreReceipt(receipt)
|
||||
coreReceipt, err := ToCoreReceipt(receipt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
coreReceipts = append(coreReceipts, coreReceipt)
|
||||
}
|
||||
return coreReceipts
|
||||
return coreReceipts, nil
|
||||
}
|
||||
|
||||
func ToCoreReceipt(gethReceipt *types.Receipt) core.Receipt {
|
||||
func ToCoreReceipt(gethReceipt *types.Receipt) (core.Receipt, error) {
|
||||
bloom := hexutil.Encode(gethReceipt.Bloom.Bytes())
|
||||
var postState string
|
||||
var status int
|
||||
@@ -43,6 +46,12 @@ func ToCoreReceipt(gethReceipt *types.Receipt) core.Receipt {
|
||||
logs := dereferenceLogs(gethReceipt)
|
||||
contractAddress := setContractAddress(gethReceipt)
|
||||
|
||||
rlpBuff := new(bytes.Buffer)
|
||||
receiptForStorage := types.ReceiptForStorage(*gethReceipt)
|
||||
err := receiptForStorage.EncodeRLP(rlpBuff)
|
||||
if err != nil {
|
||||
return core.Receipt{}, err
|
||||
}
|
||||
return core.Receipt{
|
||||
Bloom: bloom,
|
||||
ContractAddress: contractAddress,
|
||||
@@ -52,7 +61,8 @@ func ToCoreReceipt(gethReceipt *types.Receipt) core.Receipt {
|
||||
StateRoot: postState,
|
||||
TxHash: gethReceipt.TxHash.Hex(),
|
||||
Status: status,
|
||||
}
|
||||
Rlp: rlpBuff.Bytes(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func setContractAddress(gethReceipt *types.Receipt) string {
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package common_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
@@ -40,6 +41,11 @@ var _ = Describe("Conversion of GethReceipt to core.Receipt", func() {
|
||||
TxHash: common.HexToHash("0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017"),
|
||||
}
|
||||
|
||||
rlpBuff := new(bytes.Buffer)
|
||||
receiptForStorage := types.ReceiptForStorage(receipt)
|
||||
err := receiptForStorage.EncodeRLP(rlpBuff)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
expected := core.Receipt{
|
||||
Bloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
ContractAddress: "",
|
||||
@@ -49,9 +55,11 @@ var _ = Describe("Conversion of GethReceipt to core.Receipt", func() {
|
||||
StateRoot: "0x88abf7e73128227370aa7baa3dd4e18d0af70e92ef1f9ef426942fbe2dddb733",
|
||||
Status: -99,
|
||||
TxHash: receipt.TxHash.Hex(),
|
||||
Rlp: rlpBuff.Bytes(),
|
||||
}
|
||||
|
||||
coreReceipt := vulcCommon.ToCoreReceipt(&receipt)
|
||||
coreReceipt, err := vulcCommon.ToCoreReceipt(&receipt)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(coreReceipt.Bloom).To(Equal(expected.Bloom))
|
||||
Expect(coreReceipt.ContractAddress).To(Equal(expected.ContractAddress))
|
||||
Expect(coreReceipt.CumulativeGasUsed).To(Equal(expected.CumulativeGasUsed))
|
||||
@@ -60,7 +68,7 @@ var _ = Describe("Conversion of GethReceipt to core.Receipt", func() {
|
||||
Expect(coreReceipt.StateRoot).To(Equal(expected.StateRoot))
|
||||
Expect(coreReceipt.Status).To(Equal(expected.Status))
|
||||
Expect(coreReceipt.TxHash).To(Equal(expected.TxHash))
|
||||
|
||||
Expect(bytes.Compare(coreReceipt.Rlp, expected.Rlp)).To(Equal(0))
|
||||
})
|
||||
|
||||
It("converts geth receipt to internal receipt format (post Byzantium has status", func() {
|
||||
@@ -74,6 +82,11 @@ var _ = Describe("Conversion of GethReceipt to core.Receipt", func() {
|
||||
TxHash: common.HexToHash("0xe340558980f89d5f86045ac11e5cc34e4bcec20f9f1e2a427aa39d87114e8223"),
|
||||
}
|
||||
|
||||
rlpBuff := new(bytes.Buffer)
|
||||
receiptForStorage := types.ReceiptForStorage(receipt)
|
||||
err := receiptForStorage.EncodeRLP(rlpBuff)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
expected := core.Receipt{
|
||||
Bloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
ContractAddress: receipt.ContractAddress.Hex(),
|
||||
@@ -83,9 +96,11 @@ var _ = Describe("Conversion of GethReceipt to core.Receipt", func() {
|
||||
StateRoot: "",
|
||||
Status: 1,
|
||||
TxHash: receipt.TxHash.Hex(),
|
||||
Rlp: rlpBuff.Bytes(),
|
||||
}
|
||||
|
||||
coreReceipt := vulcCommon.ToCoreReceipt(&receipt)
|
||||
coreReceipt, err := vulcCommon.ToCoreReceipt(&receipt)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(coreReceipt.Bloom).To(Equal(expected.Bloom))
|
||||
Expect(coreReceipt.ContractAddress).To(Equal(""))
|
||||
Expect(coreReceipt.CumulativeGasUsed).To(Equal(expected.CumulativeGasUsed))
|
||||
@@ -94,5 +109,6 @@ var _ = Describe("Conversion of GethReceipt to core.Receipt", func() {
|
||||
Expect(coreReceipt.StateRoot).To(Equal(expected.StateRoot))
|
||||
Expect(coreReceipt.Status).To(Equal(expected.Status))
|
||||
Expect(coreReceipt.TxHash).To(Equal(expected.TxHash))
|
||||
Expect(bytes.Compare(coreReceipt.Rlp, expected.Rlp)).To(Equal(0))
|
||||
})
|
||||
})
|
||||
|
||||
@@ -127,7 +127,10 @@ func (rtc *RpcTransactionConverter) appendReceiptToTransaction(transaction core.
|
||||
if err != nil {
|
||||
return transaction, err
|
||||
}
|
||||
receipt := vulcCommon.ToCoreReceipt(gethReceipt)
|
||||
receipt, err := vulcCommon.ToCoreReceipt(gethReceipt)
|
||||
if err != nil {
|
||||
return transaction, err
|
||||
}
|
||||
transaction.Receipt = receipt
|
||||
return transaction, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user