diff --git a/cmd/subscribe.go b/cmd/subscribe.go index 9d15a614..c8d9f7a1 100644 --- a/cmd/subscribe.go +++ b/cmd/subscribe.go @@ -20,7 +20,6 @@ import ( "fmt" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" @@ -129,7 +128,7 @@ func subscribe() { } // This assumes leafs only for _, stateNode := range ethData.StateNodes { - var acct state.Account + var acct types.StateAccount err = rlp.DecodeBytes(stateNode.IPLD.Data, &acct) if err != nil { logWithCommand.Error(err) diff --git a/docker-compose.yml b/docker-compose.yml index 15c73bce..5ed1cfca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: restart: unless-stopped depends_on: - statediff-migrations - image: vulcanize/dapptools:v0.29.0-v1.10.8-statediff-0.0.27 + image: vulcanize/dapptools:v0.30.0-v1.10.9-statediff-0.0.27 environment: DB_USER: vdbm DB_NAME: vulcanize_public diff --git a/go.mod b/go.mod index 605a16f4..6c146140 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/vulcanize/ipld-eth-server go 1.13 require ( - github.com/ethereum/go-ethereum v1.10.8 + github.com/ethereum/go-ethereum v1.10.9 github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29 github.com/ipfs/go-block-format v0.0.2 github.com/ipfs/go-cid v0.0.7 @@ -26,7 +26,7 @@ require ( github.com/tklauser/go-sysconf v0.3.6 // indirect github.com/vulcanize/eth-ipfs-state-validator v0.0.1 github.com/vulcanize/gap-filler v0.3.1 - github.com/vulcanize/ipfs-ethdb v0.0.4 + github.com/vulcanize/ipfs-ethdb v0.0.5 ) -replace github.com/ethereum/go-ethereum v1.10.8 => github.com/vulcanize/go-ethereum v1.10.8-statediff-0.0.26.0.20210920070539-b1f2fcf09700 +replace github.com/ethereum/go-ethereum v1.10.9 => github.com/vulcanize/go-ethereum v1.10.9-statediff-0.0.27 diff --git a/go.sum b/go.sum index 49252f8a..ab438547 100644 --- a/go.sum +++ b/go.sum @@ -299,8 +299,9 @@ github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -361,6 +362,8 @@ github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBt github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= @@ -638,7 +641,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= -github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356 h1:I/yrLt2WilKxlQKCM52clh5rGzTKpVctGT1lH4Dc8Jw= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -1023,8 +1025,11 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -1285,8 +1290,8 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= -github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 h1:xQdMZ1WLrgkkvOZ/LDQxjVxMLdby7osSh4ZEVa5sIjs= -github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/texttheater/golang-levenshtein v0.0.0-20180516184445-d188e65d659e/go.mod h1:XDKHRm5ThF8YJjx001LtgelzsoaEcvnA7lVWz9EeX3g= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= @@ -1315,11 +1320,11 @@ github.com/vulcanize/eth-ipfs-state-validator v0.0.1 h1:CsKerIVD7Dq1SvWK93b3LOVY github.com/vulcanize/eth-ipfs-state-validator v0.0.1/go.mod h1:NxzWqnHkHG4a1gsQJ0MJgkDU2vmy5w4iGOX693HMbIU= github.com/vulcanize/gap-filler v0.3.1 h1:N5d+jCJo/VTWFvBSbTD7biRhK/OqDZzi1tgA85SIBKs= github.com/vulcanize/gap-filler v0.3.1/go.mod h1:qowG1cgshVpBqMokiWro/1xhh0uypw7oAu8FQ42JMy4= -github.com/vulcanize/go-ethereum v1.10.8-statediff-0.0.26.0.20210920070539-b1f2fcf09700 h1:DfOrj4ePv++iP2RBibMmRmswIhpU1MoJcGFbqsWCRTY= -github.com/vulcanize/go-ethereum v1.10.8-statediff-0.0.26.0.20210920070539-b1f2fcf09700/go.mod h1:nXs5fPBjAVzBmIGtrc0f7akQwkXI5Mi+6I1QcbD2br0= +github.com/vulcanize/go-ethereum v1.10.9-statediff-0.0.27 h1:4GZATtsOg9bzrY0sBQhhxwqWylO24Sd5P2UEDaLoJD4= +github.com/vulcanize/go-ethereum v1.10.9-statediff-0.0.27/go.mod h1:nv19ii04Wh0KEJiF9GiHFyVOxmMzAPnhx1loIxwgTeM= github.com/vulcanize/ipfs-ethdb v0.0.3/go.mod h1:VHyO1HhUYRtxsQ0EpF06VGGP8w4zGjvd+hXL6GK35xw= -github.com/vulcanize/ipfs-ethdb v0.0.4 h1:rAnkju1NUSBFZgRVUZQOXebA9Kkyq4L8sCzJfeXPjPY= -github.com/vulcanize/ipfs-ethdb v0.0.4/go.mod h1:IueWysMbZu0uFmu+ia6mEnyWsTvwe2q2lbYdy2muRUM= +github.com/vulcanize/ipfs-ethdb v0.0.5 h1:8hTTIP+fj8hXM6gVt/JoV7l0lVabnJUreXCEhc3Srq8= +github.com/vulcanize/ipfs-ethdb v0.0.5/go.mod h1:dITNR40SaglTI6EbIFiMpTs1bCnHj4yG9uR8l920+WU= github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a h1:G++j5e0OC488te356JvdhaM8YS6nMsjLAYF7JxCv07w= diff --git a/pkg/eth/api.go b/pkg/eth/api.go index a05f5d6c..15d6ea17 100644 --- a/pkg/eth/api.go +++ b/pkg/eth/api.go @@ -123,7 +123,7 @@ func (pea *PublicEthAPI) GetHeaderByHash(ctx context.Context, hash common.Hash) // rpcMarshalHeader uses the generalized output filler, then adds the total difficulty field func (pea *PublicEthAPI) rpcMarshalHeader(header *types.Header) (map[string]interface{}, error) { - fields := RPCMarshalHeader(header, pea.B.Config.ChainConfig.Clique != nil) + fields := RPCMarshalHeader(header) td, err := pea.B.GetTd(header.Hash()) if err != nil { return nil, err @@ -1077,7 +1077,7 @@ func (pea *PublicEthAPI) writeStateDiffFor(blockHash common.Hash) { // rpcMarshalBlock uses the generalized output filler, then adds the total difficulty field func (pea *PublicEthAPI) rpcMarshalBlock(b *types.Block, inclTx bool, fullTx bool) (map[string]interface{}, error) { - fields, err := RPCMarshalBlock(b, inclTx, fullTx, pea.B.Config.ChainConfig.Clique != nil) + fields, err := RPCMarshalBlock(b, inclTx, fullTx) if err != nil { return nil, err } @@ -1093,7 +1093,7 @@ func (pea *PublicEthAPI) rpcMarshalBlock(b *types.Block, inclTx bool, fullTx boo // rpcMarshalBlockWithUncleHashes uses the generalized output filler, then adds the total difficulty field func (pea *PublicEthAPI) rpcMarshalBlockWithUncleHashes(b *types.Block, uncleHashes []common.Hash, inclTx bool, fullTx bool) (map[string]interface{}, error) { - fields, err := RPCMarshalBlockWithUncleHashes(b, uncleHashes, inclTx, fullTx, pea.B.Config.ChainConfig.Clique != nil) + fields, err := RPCMarshalBlockWithUncleHashes(b, uncleHashes, inclTx, fullTx) if err != nil { return nil, err } diff --git a/pkg/eth/api_test.go b/pkg/eth/api_test.go index b6be7f5d..fa5025c2 100644 --- a/pkg/eth/api_test.go +++ b/pkg/eth/api_test.go @@ -210,7 +210,9 @@ var _ = Describe("API", func() { db, err = SetupDB() Expect(err).ToNot(HaveOccurred()) - indexAndPublisher := indexer.NewStateDiffIndexer(chainConfig, db) + + indexAndPublisher, err := indexer.NewStateDiffIndexer(chainConfig, db) + Expect(err).ToNot(HaveOccurred()) backend, err := eth.NewEthBackend(db, ð.Config{ ChainConfig: chainConfig, VMConfig: vm.Config{}, @@ -254,7 +256,9 @@ var _ = Describe("API", func() { // setting chain config to for london block chainConfig.LondonBlock = big.NewInt(2) - indexAndPublisher = indexer.NewStateDiffIndexer(chainConfig, db) + indexAndPublisher, err = indexer.NewStateDiffIndexer(chainConfig, db) + Expect(err).ToNot(HaveOccurred()) + tx, err = indexAndPublisher.PushBlock(test_helpers.MockLondonBlock, test_helpers.MockLondonReceipts, test_helpers.MockLondonBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) diff --git a/pkg/eth/backend.go b/pkg/eth/backend.go index 3f0a6857..1e1445f3 100644 --- a/pkg/eth/backend.go +++ b/pkg/eth/backend.go @@ -627,7 +627,7 @@ func (b *Backend) GetEVM(ctx context.Context, msg core.Message, state *state.Sta } // GetAccountByNumberOrHash returns the account object for the provided address at the block corresponding to the provided number or hash -func (b *Backend) GetAccountByNumberOrHash(ctx context.Context, address common.Address, blockNrOrHash rpc.BlockNumberOrHash) (*state.Account, error) { +func (b *Backend) GetAccountByNumberOrHash(ctx context.Context, address common.Address, blockNrOrHash rpc.BlockNumberOrHash) (*types.StateAccount, error) { if blockNr, ok := blockNrOrHash.Number(); ok { return b.GetAccountByNumber(ctx, address, blockNr) } @@ -638,7 +638,7 @@ func (b *Backend) GetAccountByNumberOrHash(ctx context.Context, address common.A } // GetAccountByNumber returns the account object for the provided address at the canonical block at the provided height -func (b *Backend) GetAccountByNumber(ctx context.Context, address common.Address, blockNumber rpc.BlockNumber) (*state.Account, error) { +func (b *Backend) GetAccountByNumber(ctx context.Context, address common.Address, blockNumber rpc.BlockNumber) (*types.StateAccount, error) { var err error number := blockNumber.Int64() if blockNumber == rpc.LatestBlockNumber { @@ -667,7 +667,7 @@ func (b *Backend) GetAccountByNumber(ctx context.Context, address common.Address } // GetAccountByHash returns the account object for the provided address at the block with the provided hash -func (b *Backend) GetAccountByHash(ctx context.Context, address common.Address, hash common.Hash) (*state.Account, error) { +func (b *Backend) GetAccountByHash(ctx context.Context, address common.Address, hash common.Hash) (*types.StateAccount, error) { _, err := b.HeaderByHash(context.Background(), hash) if err == sql.ErrNoRows { return nil, errHeaderHashNotFound @@ -680,7 +680,7 @@ func (b *Backend) GetAccountByHash(ctx context.Context, address common.Address, return nil, err } - acct := new(state.Account) + acct := new(types.StateAccount) return acct, rlp.DecodeBytes(accountRlp, acct) } diff --git a/pkg/eth/backend_utils.go b/pkg/eth/backend_utils.go index ec0be108..763811cb 100644 --- a/pkg/eth/backend_utils.go +++ b/pkg/eth/backend_utils.go @@ -26,22 +26,14 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/math" - "github.com/ethereum/go-ethereum/consensus/clique" "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" ) // RPCMarshalHeader converts the given header to the RPC output. // This function is eth/internal so we have to make our own version here... -func RPCMarshalHeader(head *types.Header, extractMiner bool) map[string]interface{} { - if extractMiner { - if err := recoverMiner(head); err != nil { - return nil - } - } - +func RPCMarshalHeader(head *types.Header) map[string]interface{} { headerMap := map[string]interface{}{ "number": (*hexutil.Big)(head.Number), "hash": head.Hash(), @@ -71,8 +63,8 @@ func RPCMarshalHeader(head *types.Header, extractMiner bool) map[string]interfac // RPCMarshalBlock converts the given block to the RPC output which depends on fullTx. If inclTx is true transactions are // returned. When fullTx is true the returned block contains full transaction details, otherwise it will only contain // transaction hashes. -func RPCMarshalBlock(block *types.Block, inclTx bool, fullTx bool, extractMiner bool) (map[string]interface{}, error) { - fields := RPCMarshalHeader(block.Header(), extractMiner) +func RPCMarshalBlock(block *types.Block, inclTx bool, fullTx bool) (map[string]interface{}, error) { + fields := RPCMarshalHeader(block.Header()) fields["size"] = hexutil.Uint64(block.Size()) if inclTx { @@ -105,8 +97,8 @@ func RPCMarshalBlock(block *types.Block, inclTx bool, fullTx bool, extractMiner } // RPCMarshalBlockWithUncleHashes marshals the block with the provided uncle hashes -func RPCMarshalBlockWithUncleHashes(block *types.Block, uncleHashes []common.Hash, inclTx bool, fullTx bool, extractMiner bool) (map[string]interface{}, error) { - fields := RPCMarshalHeader(block.Header(), extractMiner) +func RPCMarshalBlockWithUncleHashes(block *types.Block, uncleHashes []common.Hash, inclTx bool, fullTx bool) (map[string]interface{}, error) { + fields := RPCMarshalHeader(block.Header()) fields["size"] = hexutil.Uint64(block.Size()) if inclTx { @@ -303,24 +295,3 @@ func toBlockNumArg(number *big.Int) string { } return hexutil.EncodeBig(number) } - -func recoverMiner(header *types.Header) error { - // Retrieve the signature from the header extra-data - if len(header.Extra) < crypto.SignatureLength { - return errMissingSignature - } - - signature := header.Extra[len(header.Extra)-crypto.SignatureLength:] - - // Recover the public key and the Ethereum address - pubkey, err := crypto.Ecrecover(clique.SealHash(header).Bytes(), signature) - if err != nil { - return err - } - - var signer common.Address - copy(signer[:], crypto.Keccak256(pubkey[1:])[12:]) - header.Coinbase = signer - - return nil -} diff --git a/pkg/eth/cid_retriever_test.go b/pkg/eth/cid_retriever_test.go index 248ab071..f6b74b99 100644 --- a/pkg/eth/cid_retriever_test.go +++ b/pkg/eth/cid_retriever_test.go @@ -219,7 +219,9 @@ var _ = Describe("Retriever", func() { var err error db, err = SetupDB() Expect(err).ToNot(HaveOccurred()) - diffIndexer = indexer.NewStateDiffIndexer(params.TestChainConfig, db) + diffIndexer, err = indexer.NewStateDiffIndexer(params.TestChainConfig, db) + Expect(err).ToNot(HaveOccurred()) + retriever = eth.NewCIDRetriever(db) }) AfterEach(func() { diff --git a/pkg/eth/eth_state_test.go b/pkg/eth/eth_state_test.go index 6ff70c25..f7dccc31 100644 --- a/pkg/eth/eth_state_test.go +++ b/pkg/eth/eth_state_test.go @@ -76,7 +76,10 @@ var _ = Describe("eth state reading tests", func() { var err error db, err = SetupDB() Expect(err).ToNot(HaveOccurred()) - transformer := indexer.NewStateDiffIndexer(chainConfig, db) + + transformer, err := indexer.NewStateDiffIndexer(chainConfig, db) + Expect(err).ToNot(HaveOccurred()) + backend, err = eth.NewEthBackend(db, ð.Config{ ChainConfig: chainConfig, VMConfig: vm.Config{}, @@ -155,7 +158,8 @@ var _ = Describe("eth state reading tests", func() { } // Insert some non-canonical data into the database so that we test our ability to discern canonicity - indexAndPublisher := indexer.NewStateDiffIndexer(chainConfig, db) + indexAndPublisher, err := indexer.NewStateDiffIndexer(chainConfig, db) + Expect(err).ToNot(HaveOccurred()) tx, err := indexAndPublisher.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) diff --git a/pkg/eth/ipld_fetcher_test.go b/pkg/eth/ipld_fetcher_test.go index 66dcc17a..c6699a09 100644 --- a/pkg/eth/ipld_fetcher_test.go +++ b/pkg/eth/ipld_fetcher_test.go @@ -41,7 +41,9 @@ var _ = Describe("IPLDFetcher", func() { ) db, err = SetupDB() Expect(err).ToNot(HaveOccurred()) - pubAndIndexer = indexer.NewStateDiffIndexer(params.TestChainConfig, db) + pubAndIndexer, err = indexer.NewStateDiffIndexer(params.TestChainConfig, db) + Expect(err).ToNot(HaveOccurred()) + tx, err = pubAndIndexer.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) for _, node := range test_helpers.MockStateNodes { err = pubAndIndexer.PushStateNode(tx, node) diff --git a/pkg/eth/test_helpers/test_data.go b/pkg/eth/test_helpers/test_data.go index 72cf3184..fff0806b 100644 --- a/pkg/eth/test_helpers/test_data.go +++ b/pkg/eth/test_helpers/test_data.go @@ -24,7 +24,6 @@ import ( "math/big" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/params" @@ -341,7 +340,7 @@ var ( ContractCodeHash = crypto.Keccak256Hash(MockContractByteCode) contractPath = common.Bytes2Hex([]byte{'\x06'}) ContractLeafKey = testhelpers.AddressToLeafKey(ContractAddress) - ContractAccount, _ = rlp.EncodeToBytes(state.Account{ + ContractAccount, _ = rlp.EncodeToBytes(types.StateAccount{ Nonce: nonce1, Balance: big.NewInt(0), CodeHash: ContractCodeHash.Bytes(), @@ -359,7 +358,7 @@ var ( AccountCodeHash = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") AccountAddresss = common.HexToAddress("0x0D3ab14BBaD3D99F4203bd7a11aCB94882050E7e") AccountLeafKey = testhelpers.Account2LeafKey - Account, _ = rlp.EncodeToBytes(state.Account{ + Account, _ = rlp.EncodeToBytes(types.StateAccount{ Nonce: nonce0, Balance: AccountBalance, CodeHash: AccountCodeHash.Bytes(), diff --git a/pkg/graphql/graphql_test.go b/pkg/graphql/graphql_test.go index 2e7ce074..68e394db 100644 --- a/pkg/graphql/graphql_test.go +++ b/pkg/graphql/graphql_test.go @@ -81,7 +81,9 @@ var _ = Describe("GraphQL", func() { var err error db, err = SetupDB() Expect(err).ToNot(HaveOccurred()) - transformer := indexer.NewStateDiffIndexer(chainConfig, db) + + transformer, err := indexer.NewStateDiffIndexer(chainConfig, db) + Expect(err).ToNot(HaveOccurred()) backend, err = eth.NewEthBackend(db, ð.Config{ ChainConfig: chainConfig, VMConfig: vm.Config{}, @@ -144,7 +146,9 @@ var _ = Describe("GraphQL", func() { } // Insert some non-canonical data into the database so that we test our ability to discern canonicity - indexAndPublisher := indexer.NewStateDiffIndexer(chainConfig, db) + indexAndPublisher, err := indexer.NewStateDiffIndexer(chainConfig, db) + Expect(err).ToNot(HaveOccurred()) + blockHash = test_helpers.MockBlock.Hash() contractAddress = test_helpers.ContractAddr