From 7d88e78fa823479b3a83352e29853038ca193e59 Mon Sep 17 00:00:00 2001 From: ramil Date: Mon, 19 Apr 2021 15:40:42 +0300 Subject: [PATCH] test eth_chainId --- docker-compose.yml | 2 +- test/integration_test.go | 283 ++++++++++++++++++++------------------- 2 files changed, 149 insertions(+), 136 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5b366e96..160113c3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: dapptools: restart: unless-stopped depends_on: - - db + - statediff-migrations image: vulcanize/dapptools:v0.29.0-v1.10.2-statediff-0.0.19 environment: DB_USER: vdbm diff --git a/test/integration_test.go b/test/integration_test.go index 79cbecb5..0b72d507 100644 --- a/test/integration_test.go +++ b/test/integration_test.go @@ -2,11 +2,12 @@ package integration_test import ( "context" + "fmt" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/common" - //"github.com/ethereum/go-ethereum" - //"github.com/ethereum/go-ethereum/common" - //"github.com/ethereum/go-ethereum/rlp" + "github.com/ethereum/go-ethereum/core/types" + + "github.com/ethereum/go-ethereum/rlp" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" integration "github.com/vulcanize/ipld-eth-server/test" @@ -58,138 +59,150 @@ var _ = Describe("Integration test", func() { Expect(ipldBlock).To(BeZero()) }) - //It("get block by number", func() { - // Expect(contractErr).ToNot(HaveOccurred()) - // - // blockNum := contract.BlockNumber - // - // gethBlock, err := gethClient.BlockByNumber(ctx, big.NewInt(int64(blockNum))) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldBlock, err := ipldClient.BlockByNumber(ctx, big.NewInt(int64(blockNum))) - // Expect(err).ToNot(HaveOccurred()) - // - // // check headers are equals - // Expect(gethBlock.Header()).To(Equal(ipldBlock.Header())) - // - // gethTxs := gethBlock.Transactions() - // ipldTxs := ipldBlock.Transactions() - // - // Expect(gethTxs.Len()).To(Equal(ipldTxs.Len())) - // Expect(types.TxDifference(gethTxs, ipldTxs).Len()).To(Equal(0)) - //}) - // - //It("get block by hash", func() { - // - // gethBlock, err := gethClient.BlockByHash(ctx, common.HexToHash(contract.BlockHash)) - // fmt.Printf("contract info: %+v", contract) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldBlock, err := ipldClient.BlockByHash(ctx, common.HexToHash(contract.BlockHash)) - // Expect(err).ToNot(HaveOccurred()) - // - // // check headers are equals - // Expect(gethBlock).To(Equal(ipldBlock)) - // Expect(gethBlock.Header()).To(Equal(ipldBlock.Header())) - // - // gethTxs := gethBlock.Transactions() - // ipldTxs := ipldBlock.Transactions() - // - // Expect(gethTxs.Len()).To(Equal(ipldTxs.Len())) - // Expect(types.TxDifference(gethTxs, ipldTxs).Len()).To(Equal(0)) - //}) + It("get block by number", func() { + Expect(contractErr).ToNot(HaveOccurred()) + + blockNum := contract.BlockNumber + + gethBlock, err := gethClient.BlockByNumber(ctx, big.NewInt(int64(blockNum))) + Expect(err).ToNot(HaveOccurred()) + + ipldBlock, err := ipldClient.BlockByNumber(ctx, big.NewInt(int64(blockNum))) + Expect(err).ToNot(HaveOccurred()) + + // check headers are equals + Expect(gethBlock.Header()).To(Equal(ipldBlock.Header())) + + gethTxs := gethBlock.Transactions() + ipldTxs := ipldBlock.Transactions() + + Expect(gethTxs.Len()).To(Equal(ipldTxs.Len())) + Expect(types.TxDifference(gethTxs, ipldTxs).Len()).To(Equal(0)) + }) + + It("get block by hash", func() { + + gethBlock, err := gethClient.BlockByHash(ctx, common.HexToHash(contract.BlockHash)) + fmt.Printf("contract info: %+v", contract) + Expect(err).ToNot(HaveOccurred()) + + ipldBlock, err := ipldClient.BlockByHash(ctx, common.HexToHash(contract.BlockHash)) + Expect(err).ToNot(HaveOccurred()) + + // check headers are equals + Expect(gethBlock).To(Equal(ipldBlock)) + Expect(gethBlock.Header()).To(Equal(ipldBlock.Header())) + + gethTxs := gethBlock.Transactions() + ipldTxs := ipldBlock.Transactions() + + Expect(gethTxs.Len()).To(Equal(ipldTxs.Len())) + Expect(types.TxDifference(gethTxs, ipldTxs).Len()).To(Equal(0)) + }) }) - //Describe("Transaction", func() { - // txHash := "0xdb3d5ef2d4e3260e1b8c1bcbb09b2d8fe7a6423196a20b8a3fa6c09dd9d79073" - // blockHash := "0xb821ca79bd37174368073e469db92ead75148a95f7c24c49f2435fb7c7797588" - // - // It("Get tx by hash", func() { - // gethTx, _, err := gethClient.TransactionByHash(ctx, common.HexToHash(txHash)) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldTx, _, err := ipldClient.TransactionByHash(ctx, common.HexToHash(txHash)) - // Expect(err).ToNot(HaveOccurred()) - // - // Expect(gethTx).To(Equal(ipldTx)) - // - // Expect(gethTx.Hash()).To(Equal(ipldTx.Hash())) - // }) - // - // It("Get tx by block hash and index", func() { - // gethTx, err := gethClient.TransactionInBlock(ctx, common.HexToHash(blockHash), 0) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldTx, err := ipldClient.TransactionInBlock(ctx, common.HexToHash(blockHash), 0) - // Expect(err).ToNot(HaveOccurred()) - // - // Expect(gethTx).To(Equal(ipldTx)) - // - // Expect(gethTx.Hash()).To(Equal(ipldTx.Hash())) - // }) - // - //}) - // - //Describe("Receipt", func() { - // txHash := "0xdb3d5ef2d4e3260e1b8c1bcbb09b2d8fe7a6423196a20b8a3fa6c09dd9d79073" - // - // It("Get tx receipt", func() { - // gethReceipt, err := gethClient.TransactionReceipt(ctx, common.HexToHash(txHash)) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldReceipt, err := ipldClient.TransactionReceipt(ctx, common.HexToHash(txHash)) - // Expect(err).ToNot(HaveOccurred()) - // - // Expect(gethReceipt).To(Equal(ipldReceipt)) - // - // rlpGeth, err := rlp.EncodeToBytes(gethReceipt) - // Expect(err).ToNot(HaveOccurred()) - // - // rlpIpld, err := rlp.EncodeToBytes(ipldReceipt) - // Expect(err).ToNot(HaveOccurred()) - // - // Expect(rlpGeth).To(Equal(rlpIpld)) - // }) - //}) - // - //Describe("FilterLogs", func() { - // //txHash := "0xdb3d5ef2d4e3260e1b8c1bcbb09b2d8fe7a6423196a20b8a3fa6c09dd9d79073" - // //blockHash := "0xb821ca79bd37174368073e469db92ead75148a95f7c24c49f2435fb7c7797588" - // blockHash := common.HexToHash( - // "0xb821ca79bd37174368073e469db92ead75148a95f7c24c49f2435fb7c7797588", - // ) - // - // It("with blockhash", func() { - // filterQuery := ethereum.FilterQuery{ - // //Addresses: addresses, - // BlockHash: &blockHash, - // Topics: [][]common.Hash{}, - // } - // - // gethLogs, err := gethClient.FilterLogs(ctx, filterQuery) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldLogs, err := ipldClient.FilterLogs(ctx, filterQuery) - // Expect(err).ToNot(HaveOccurred()) - // - // // not empty list - // Expect(gethLogs).ToNot(BeEmpty()) - // - // Expect(len(gethLogs)).To(Equal(len(ipldLogs))) - // Expect(gethLogs).To(Equal(ipldLogs)) - // }) - //}) - // - //Describe("CodeAt", func() { - // contractAddress := "0xdEE08501Ef5b68339ca920227d6520A10B72b65b" - // It("Get code of deployed contract without block number", func() { - // gethCode, err := gethClient.CodeAt(ctx, common.HexToAddress(contractAddress), nil) - // Expect(err).ToNot(HaveOccurred()) - // - // ipldCode, err := ipldClient.CodeAt(ctx, common.HexToAddress(contractAddress), nil) - // Expect(err).ToNot(HaveOccurred()) - // - // Expect(gethCode).To(Equal(ipldCode)) - // }) - //}) + Describe("Transaction", func() { + txHash := "0xdb3d5ef2d4e3260e1b8c1bcbb09b2d8fe7a6423196a20b8a3fa6c09dd9d79073" + blockHash := "0xb821ca79bd37174368073e469db92ead75148a95f7c24c49f2435fb7c7797588" + + It("Get tx by hash", func() { + gethTx, _, err := gethClient.TransactionByHash(ctx, common.HexToHash(txHash)) + Expect(err).ToNot(HaveOccurred()) + + ipldTx, _, err := ipldClient.TransactionByHash(ctx, common.HexToHash(txHash)) + Expect(err).ToNot(HaveOccurred()) + + Expect(gethTx).To(Equal(ipldTx)) + + Expect(gethTx.Hash()).To(Equal(ipldTx.Hash())) + }) + + It("Get tx by block hash and index", func() { + gethTx, err := gethClient.TransactionInBlock(ctx, common.HexToHash(blockHash), 0) + Expect(err).ToNot(HaveOccurred()) + + ipldTx, err := ipldClient.TransactionInBlock(ctx, common.HexToHash(blockHash), 0) + Expect(err).ToNot(HaveOccurred()) + + Expect(gethTx).To(Equal(ipldTx)) + + Expect(gethTx.Hash()).To(Equal(ipldTx.Hash())) + }) + + }) + + Describe("Receipt", func() { + txHash := "0xdb3d5ef2d4e3260e1b8c1bcbb09b2d8fe7a6423196a20b8a3fa6c09dd9d79073" + + It("Get tx receipt", func() { + gethReceipt, err := gethClient.TransactionReceipt(ctx, common.HexToHash(txHash)) + Expect(err).ToNot(HaveOccurred()) + + ipldReceipt, err := ipldClient.TransactionReceipt(ctx, common.HexToHash(txHash)) + Expect(err).ToNot(HaveOccurred()) + + Expect(gethReceipt).To(Equal(ipldReceipt)) + + rlpGeth, err := rlp.EncodeToBytes(gethReceipt) + Expect(err).ToNot(HaveOccurred()) + + rlpIpld, err := rlp.EncodeToBytes(ipldReceipt) + Expect(err).ToNot(HaveOccurred()) + + Expect(rlpGeth).To(Equal(rlpIpld)) + }) + }) + + Describe("FilterLogs", func() { + //txHash := "0xdb3d5ef2d4e3260e1b8c1bcbb09b2d8fe7a6423196a20b8a3fa6c09dd9d79073" + //blockHash := "0xb821ca79bd37174368073e469db92ead75148a95f7c24c49f2435fb7c7797588" + blockHash := common.HexToHash( + "0xb821ca79bd37174368073e469db92ead75148a95f7c24c49f2435fb7c7797588", + ) + + It("with blockhash", func() { + filterQuery := ethereum.FilterQuery{ + //Addresses: addresses, + BlockHash: &blockHash, + Topics: [][]common.Hash{}, + } + + gethLogs, err := gethClient.FilterLogs(ctx, filterQuery) + Expect(err).ToNot(HaveOccurred()) + + ipldLogs, err := ipldClient.FilterLogs(ctx, filterQuery) + Expect(err).ToNot(HaveOccurred()) + + // not empty list + Expect(gethLogs).ToNot(BeEmpty()) + + Expect(len(gethLogs)).To(Equal(len(ipldLogs))) + Expect(gethLogs).To(Equal(ipldLogs)) + }) + }) + + Describe("CodeAt", func() { + contractAddress := "0xdEE08501Ef5b68339ca920227d6520A10B72b65b" + It("Get code of deployed contract without block number", func() { + gethCode, err := gethClient.CodeAt(ctx, common.HexToAddress(contractAddress), nil) + Expect(err).ToNot(HaveOccurred()) + + ipldCode, err := ipldClient.CodeAt(ctx, common.HexToAddress(contractAddress), nil) + Expect(err).ToNot(HaveOccurred()) + + Expect(gethCode).To(Equal(ipldCode)) + }) + }) + + Describe("Chain ID", func() { + FIt("Check chain id", func() { + gethChainId, err := gethClient.ChainID(ctx) + Expect(err).ToNot(HaveOccurred()) + + ipldChainId, err := ipldClient.ChainID(ctx) + Expect(err).ToNot(HaveOccurred()) + + Expect(gethChainId).To(Equal(ipldChainId)) + }) + }) })