diff --git a/go.mod b/go.mod index ccca4780..161ff879 100644 --- a/go.mod +++ b/go.mod @@ -35,8 +35,8 @@ require ( github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/btcsuite/btcd v0.22.0-beta // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect + github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -294,11 +294,11 @@ require ( ) replace ( - github.com/cerc-io/eth-ipfs-state-validator/v5 => git.vdb.to/cerc-io/eth-ipfs-state-validator/v5 v5.1.0-alpha - github.com/cerc-io/eth-iterator-utils => git.vdb.to/cerc-io/eth-iterator-utils v0.1.0 - github.com/cerc-io/eth-testing => git.vdb.to/cerc-io/eth-testing v0.2.1 + github.com/cerc-io/eth-ipfs-state-validator/v5 => git.vdb.to/cerc-io/eth-ipfs-state-validator/v5 v5.1.1-alpha + github.com/cerc-io/eth-iterator-utils => git.vdb.to/cerc-io/eth-iterator-utils v0.1.2 + github.com/cerc-io/eth-testing => git.vdb.to/cerc-io/eth-testing v0.3.1 github.com/cerc-io/ipld-eth-statedb => git.vdb.to/cerc-io/ipld-eth-statedb v0.0.6-alpha - github.com/cerc-io/plugeth-statediff => git.vdb.to/cerc-io/plugeth-statediff v0.1.1 + github.com/cerc-io/plugeth-statediff => git.vdb.to/cerc-io/plugeth-statediff v0.1.4 github.com/ethereum/go-ethereum => git.vdb.to/cerc-io/plugeth v0.0.0-20230808125822-691dc334fab1 github.com/openrelayxyz/plugeth-utils => git.vdb.to/cerc-io/plugeth-utils v0.0.0-20230706160122-cd41de354c46 ) diff --git a/go.sum b/go.sum index 90048471..eb906ca9 100644 --- a/go.sum +++ b/go.sum @@ -45,17 +45,17 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -git.vdb.to/cerc-io/eth-ipfs-state-validator/v5 v5.1.0-alpha h1:jHCtUi2CYJE0CLPHiwBBpHWDSfN1hGMJq8NOiBUHDaQ= -git.vdb.to/cerc-io/eth-ipfs-state-validator/v5 v5.1.0-alpha/go.mod h1:zljw2omf9IEyCT2WmR/gzVKQbsQ1XzPE22noSDQ2l34= -git.vdb.to/cerc-io/eth-iterator-utils v0.1.0 h1:4YALvTld0wfp9KV+pPfPcyJfzVCAkKSEhnxtJiFiNlE= -git.vdb.to/cerc-io/eth-iterator-utils v0.1.0/go.mod h1:oYOOUbNpcuAUoFhfTg6Zab4PyrRIk8SSJ/i34WNE6Fw= -git.vdb.to/cerc-io/eth-testing v0.2.1 h1:IZAX7DVgzPkSmu1xdKZ5aOemdEYbvtgae7GUl/TUNtQ= +git.vdb.to/cerc-io/eth-ipfs-state-validator/v5 v5.1.1-alpha h1:tophBXLyhMKmQILsxjfUTwQW+TGHtEJNajVULJJLhe0= +git.vdb.to/cerc-io/eth-ipfs-state-validator/v5 v5.1.1-alpha/go.mod h1:e/9QV7BeaAvR+E6G3fab5+OxKGOEwCmJzs8WReuqKZM= +git.vdb.to/cerc-io/eth-iterator-utils v0.1.2 h1:PdMR5B9wrQSYuYpFhN+9Kc8AEZ0pTt5eKCmu8oCtFcY= +git.vdb.to/cerc-io/eth-iterator-utils v0.1.2/go.mod h1:OvXbdWbZ5viBXC/Ui1EkhsSmGB+AUX+TjGa3UDAfjfg= +git.vdb.to/cerc-io/eth-testing v0.3.1 h1:sPnlMev6oEgTjsW7GtUkSsjKNG/+X6P9q0izSejLGpM= git.vdb.to/cerc-io/ipld-eth-statedb v0.0.6-alpha h1:0YnoohjuK7w2JhIqLDDyVUNnu1RjyeDqqyhm6MojD74= git.vdb.to/cerc-io/ipld-eth-statedb v0.0.6-alpha/go.mod h1:cCQCfIUX5vTZBHeAfLa8wLUeLKO8kygDPm7Afc+MMI8= git.vdb.to/cerc-io/plugeth v0.0.0-20230808125822-691dc334fab1 h1:KLjxHwp9Zp7xhECccmJS00RiL+VwTuUGLU7qeIctg8g= git.vdb.to/cerc-io/plugeth v0.0.0-20230808125822-691dc334fab1/go.mod h1:cYXZu70+6xmDgIgrTD81GPasv16piiAFJnKyAbwVPMU= -git.vdb.to/cerc-io/plugeth-statediff v0.1.1 h1:qKygQwZO2vECySFpgfaiXwWn275jIV//pwsuNfeCXLo= -git.vdb.to/cerc-io/plugeth-statediff v0.1.1/go.mod h1:61WPXOqJshEkxzalwyyLukTiIBG+Z7WyfvRdhVLfBF8= +git.vdb.to/cerc-io/plugeth-statediff v0.1.4 h1:swDJDAk1/yu6MOHAvxeyZz+MS1H9FCmSWGQRswFxFEw= +git.vdb.to/cerc-io/plugeth-statediff v0.1.4/go.mod h1:PX1bwTwZKzegQu6zYdpuJf1tHNmU0suapKOUUO2xIzs= git.vdb.to/cerc-io/plugeth-utils v0.0.0-20230706160122-cd41de354c46 h1:KYcbbne/RXd7AuxbUd/3hgk1jPN+33k2CKiNsUsMCC0= git.vdb.to/cerc-io/plugeth-utils v0.0.0-20230706160122-cd41de354c46/go.mod h1:VpDN61dxy64zGff05F0adujR5enD/JEdXBkTQ+PaIsQ= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= @@ -118,15 +118,14 @@ github.com/btcsuite/btcd v0.0.0-20190605094302-a0d1e3e36d50/go.mod h1:3J08xEfcug github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= -github.com/btcsuite/btcd v0.22.0-beta h1:LTDpDKUM5EeOFBPM8IXpinEcmZ6FWfNZbE3lfrfdnWo= -github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 h1:KdUfX2zKommPRa+PD0sWZUyXe9w277ABlgELO7H04IM= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= diff --git a/pkg/eth/api_test/api_test.go b/pkg/eth/api_test/api_test.go index b5e50c68..2899e0bb 100644 --- a/pkg/eth/api_test/api_test.go +++ b/pkg/eth/api_test/api_test.go @@ -219,6 +219,7 @@ var _ = BeforeSuite(func() { api, _ = eth.NewPublicEthAPI(backend, nil, eth.APIConfig{StateDiffTimeout: shared.DefaultStateDiffTimeout}) tx, err = indexAndPublisher.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) ipld := sdtypes.IPLD{ CID: ipld.Keccak256ToCid(ipld.RawBinary, test_helpers.CodeHash.Bytes()).String(), @@ -232,7 +233,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) } - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) uncles := test_helpers.MockBlock.Uncles() @@ -248,8 +249,9 @@ var _ = BeforeSuite(func() { tx, err = indexAndPublisher.PushBlock(test_helpers.MockLondonBlock, test_helpers.MockLondonReceipts, test_helpers.MockLondonBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) }) diff --git a/pkg/eth/retriever_test.go b/pkg/eth/retriever_test.go index 5413512b..509e8665 100644 --- a/pkg/eth/retriever_test.go +++ b/pkg/eth/retriever_test.go @@ -53,12 +53,13 @@ var _ = Describe("Retriever", func() { It("Retrieve", func() { tx, err := diffIndexer.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) for _, node := range test_helpers.MockStateNodes { err = diffIndexer.PushStateNode(tx, node, test_helpers.MockBlock.Hash().String()) Expect(err).ToNot(HaveOccurred()) } - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) }) @@ -70,8 +71,9 @@ var _ = Describe("Retriever", func() { It("Gets the number of the first block that has data in the database", func() { tx, err := diffIndexer.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) num, err := retriever.RetrieveFirstBlockNumber() @@ -84,8 +86,9 @@ var _ = Describe("Retriever", func() { payload.Block = newMockBlock(1010101) tx, err := diffIndexer.PushBlock(payload.Block, payload.Receipts, payload.Block.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) num, err := retriever.RetrieveFirstBlockNumber() @@ -100,12 +103,14 @@ var _ = Describe("Retriever", func() { payload2.Block = newMockBlock(5) tx, err := diffIndexer.PushBlock(payload1.Block, payload1.Receipts, payload1.Block.Difficulty()) Expect(err).ToNot(HaveOccurred()) - err = tx.Submit(err) + defer tx.RollbackOnFailure(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) tx, err = diffIndexer.PushBlock(payload2.Block, payload2.Receipts, payload2.Block.Difficulty()) Expect(err).ToNot(HaveOccurred()) - err = tx.Submit(err) + defer tx.RollbackOnFailure(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) num, err := retriever.RetrieveFirstBlockNumber() @@ -122,7 +127,8 @@ var _ = Describe("Retriever", func() { It("Gets the number of the latest block that has data in the database", func() { tx, err := diffIndexer.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) - err = tx.Submit(err) + defer tx.RollbackOnFailure(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) num, err := retriever.RetrieveLastBlockNumber() @@ -135,8 +141,9 @@ var _ = Describe("Retriever", func() { payload.Block = newMockBlock(1010101) tx, err := diffIndexer.PushBlock(payload.Block, payload.Receipts, payload.Block.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) num, err := retriever.RetrieveLastBlockNumber() @@ -151,12 +158,14 @@ var _ = Describe("Retriever", func() { payload2.Block = newMockBlock(5) tx, err := diffIndexer.PushBlock(payload1.Block, payload1.Receipts, payload1.Block.Difficulty()) Expect(err).ToNot(HaveOccurred()) - err = tx.Submit(err) + defer tx.RollbackOnFailure(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) tx, err = diffIndexer.PushBlock(payload2.Block, payload2.Receipts, payload2.Block.Difficulty()) Expect(err).ToNot(HaveOccurred()) - err = tx.Submit(err) + defer tx.RollbackOnFailure(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) num, err := retriever.RetrieveLastBlockNumber() diff --git a/pkg/eth/state_test/state_test.go b/pkg/eth/state_test/state_test.go index c9feecf5..32c1fd69 100644 --- a/pkg/eth/state_test/state_test.go +++ b/pkg/eth/state_test/state_test.go @@ -168,15 +168,17 @@ var _ = BeforeSuite(func() { tx, err := indexAndPublisher.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) // The non-canonical header has a child tx, err = indexAndPublisher.PushBlock(test_helpers.MockChild, test_helpers.MockReceipts, test_helpers.MockChild.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) // iterate over the blocks, generating statediff payloads, and transforming the data into Postgres @@ -204,6 +206,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) tx, err := transformer.PushBlock(block, rcts, mockTD) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) for _, node := range diff.Nodes { err = transformer.PushStateNode(tx, node, block.Hash().String()) @@ -215,7 +218,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) } - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) } diff --git a/pkg/eth/test_helpers/chain_indexer.go b/pkg/eth/test_helpers/chain_indexer.go index 783a27e9..986a5c4e 100644 --- a/pkg/eth/test_helpers/chain_indexer.go +++ b/pkg/eth/test_helpers/chain_indexer.go @@ -60,6 +60,7 @@ func IndexChain(params IndexChainParams) error { if err != nil { return err } + defer tx.RollbackOnFailure(err) if !params.SkipStateNodes { for _, node := range diff.Nodes { @@ -75,7 +76,7 @@ func IndexChain(params IndexChainParams) error { } } } - if err = tx.Submit(err); err != nil { + if err = tx.Submit(); err != nil { return err } } diff --git a/pkg/graphql/graphql_test.go b/pkg/graphql/graphql_test.go index fa26021e..e968d7e8 100644 --- a/pkg/graphql/graphql_test.go +++ b/pkg/graphql/graphql_test.go @@ -96,13 +96,15 @@ var _ = BeforeSuite(func() { tx, err := indexer.PushBlock(test_helpers.MockBlock, test_helpers.MockReceipts, test_helpers.MockBlock.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) // The non-canonical header has a child tx, err = indexer.PushBlock(test_helpers.MockChild, test_helpers.MockReceipts, test_helpers.MockChild.Difficulty()) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) ipld := sdtypes.IPLD{ CID: ipld.Keccak256ToCid(ipld.RawBinary, test_helpers.CodeHash.Bytes()).String(), @@ -111,7 +113,7 @@ var _ = BeforeSuite(func() { err = indexer.PushIPLD(tx, ipld) Expect(err).ToNot(HaveOccurred()) - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) // iterate over the blocks, generating statediff payloads, and transforming the data into Postgres @@ -135,8 +137,9 @@ var _ = BeforeSuite(func() { rcts = receipts[i-1] } - tx, err := indexer.PushBlock(block, rcts, mockTD) + tx, err = indexer.PushBlock(block, rcts, mockTD) Expect(err).ToNot(HaveOccurred()) + defer tx.RollbackOnFailure(err) diff, err := builder.BuildStateDiffObject(args, statediff.Params{}) Expect(err).ToNot(HaveOccurred()) @@ -151,7 +154,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) } - err = tx.Submit(err) + err = tx.Submit() Expect(err).ToNot(HaveOccurred()) } diff --git a/pkg/shared/test_helpers.go b/pkg/shared/test_helpers.go index 3e847836..31b11707 100644 --- a/pkg/shared/test_helpers.go +++ b/pkg/shared/test_helpers.go @@ -93,7 +93,7 @@ func SetupTestStateDiffIndexer(ctx context.Context, chainConfig *params.ChainCon dbconfig, err := postgres.TestConfig.WithEnv() Expect(err).NotTo(HaveOccurred()) - _, stateDiffIndexer, err := indexer.NewStateDiffIndexer(ctx, chainConfig, testInfo, dbconfig) + _, stateDiffIndexer, err := indexer.NewStateDiffIndexer(ctx, chainConfig, testInfo, dbconfig, true) Expect(err).NotTo(HaveOccurred()) return stateDiffIndexer