From 5190ce64e5b06b53bdbea26e0bd537df0cd118d2 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 7 May 2024 09:11:22 +0800 Subject: [PATCH 1/5] test(proposer): change tests to send blob transactions --- internal/docker/nodes/docker-compose.yml | 2 ++ proposer/proposer_test.go | 19 +++---------------- proposer/transaction_builder/common_test.go | 2 +- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/internal/docker/nodes/docker-compose.yml b/internal/docker/nodes/docker-compose.yml index bd0d48940..488010182 100644 --- a/internal/docker/nodes/docker-compose.yml +++ b/internal/docker/nodes/docker-compose.yml @@ -9,6 +9,8 @@ services: - "8545" entrypoint: - anvil + - --chain-id + - "32301" - --host - "0.0.0.0" - --hardfork diff --git a/proposer/proposer_test.go b/proposer/proposer_test.go index 98f12fc64..bdcb7033a 100644 --- a/proposer/proposer_test.go +++ b/proposer/proposer_test.go @@ -6,7 +6,6 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/op-service/eth" "github.com/ethereum-optimism/optimism/op-service/txmgr" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/math" @@ -87,6 +86,8 @@ func (s *ProposerTestSuite) SetupTest() { MaxTierFeePriceBumps: 3, ExtraData: "test", L1BlockBuilderTip: common.Big0, + BlobAllowed: true, + ProposeBlockTxGasLimit: 10000000, TxmgrConfigs: &txmgr.CLIConfig{ L1RPCURL: os.Getenv("L1_NODE_WS_ENDPOINT"), NumConfirmations: 0, @@ -178,22 +179,15 @@ func (s *ProposerTestSuite) TestProposeTxLists() { } // trigger the error - candidate.Blobs = []*eth.Blob{} candidate.GasLimit = 10000000 txCandidates[i] = *candidate } - var errors []error for _, txCandidate := range txCandidates { receipt, err := p.txmgr.Send(ctx, txCandidate) s.Nil(err) - errors = append(errors, encoding.TryParsingCustomErrorFromReceipt(ctx, p.rpc.L1, p.proposerAddress, receipt)) - } - - // confirm errors handled - for _, err := range errors { - s.Equal("L1_BLOB_NOT_AVAILABLE", err.Error()) + s.Nil(encoding.TryParsingCustomErrorFromReceipt(ctx, p.rpc.L1, p.proposerAddress, receipt)) } } @@ -260,9 +254,6 @@ func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { s.Nil(err) s.Equal(true, len(preBuiltTxList) > 0) - txsCh, err := s.getLatestProposedTxs(len(preBuiltTxList), time.Minute) - s.Nil(err) - var ( blockMinGasLimit uint64 = math.MaxUint64 blockMinTxListBytes uint64 = math.MaxUint64 @@ -290,10 +281,6 @@ func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { p.MinProposingInternal = time.Minute s.Nil(p.ProposeOp(context.Background())) - txs := <-txsCh - for i := 0; i < len(txLists); i++ { - s.Equal(txLists[i].Len(), txs[i].Len()) - } } func (s *ProposerTestSuite) TestName() { diff --git a/proposer/transaction_builder/common_test.go b/proposer/transaction_builder/common_test.go index 034236d2d..77f62ebfd 100644 --- a/proposer/transaction_builder/common_test.go +++ b/proposer/transaction_builder/common_test.go @@ -64,7 +64,7 @@ func (s *TransactionBuilderTestSuite) SetupTest() { common.HexToAddress(os.Getenv("TAIKO_L1_ADDRESS")), common.HexToAddress(os.Getenv("TAIKO_L2_ADDRESS")), common.HexToAddress(os.Getenv("ASSIGNMENT_HOOK_ADDRESS")), - 0, + 10000000, "test", ) } From 1c361c09ae56c7df1406ad48a4e596070d9e2be7 Mon Sep 17 00:00:00 2001 From: Gavin Yu Date: Tue, 7 May 2024 09:44:39 +0800 Subject: [PATCH 2/5] Update proposer/proposer_test.go Co-authored-by: David --- proposer/proposer_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposer/proposer_test.go b/proposer/proposer_test.go index bdcb7033a..d6a753370 100644 --- a/proposer/proposer_test.go +++ b/proposer/proposer_test.go @@ -87,7 +87,7 @@ func (s *ProposerTestSuite) SetupTest() { ExtraData: "test", L1BlockBuilderTip: common.Big0, BlobAllowed: true, - ProposeBlockTxGasLimit: 10000000, + ProposeBlockTxGasLimit: 10_000_000, TxmgrConfigs: &txmgr.CLIConfig{ L1RPCURL: os.Getenv("L1_NODE_WS_ENDPOINT"), NumConfirmations: 0, From 05048b9f429649e76a2ce31bfb548acb74c6bcd3 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 7 May 2024 09:59:30 +0800 Subject: [PATCH 3/5] fix lint --- proposer/proposer_test.go | 68 --------------------------------------- 1 file changed, 68 deletions(-) diff --git a/proposer/proposer_test.go b/proposer/proposer_test.go index d6a753370..f2d4c838b 100644 --- a/proposer/proposer_test.go +++ b/proposer/proposer_test.go @@ -21,7 +21,6 @@ import ( "github.com/taikoxyz/taiko-client/driver/chain_syncer/beaconsync" "github.com/taikoxyz/taiko-client/driver/chain_syncer/blob" "github.com/taikoxyz/taiko-client/driver/state" - txlistfetcher "github.com/taikoxyz/taiko-client/driver/txlist_fetcher" "github.com/taikoxyz/taiko-client/internal/testutils" "github.com/taikoxyz/taiko-client/internal/utils" "github.com/taikoxyz/taiko-client/pkg/jwt" @@ -109,36 +108,6 @@ func (s *ProposerTestSuite) SetupTest() { s.cancel = cancel } -func parseTxs(client *rpc.Client, event *bindings.TaikoL1ClientBlockProposed) (types.Transactions, error) { - tx, err := client.L1.TransactionInBlock(context.Background(), event.Raw.BlockHash, event.Raw.TxIndex) - if err != nil { - return nil, err - } - - // Decode transactions list. - var txListDecoder txlistfetcher.TxListFetcher - if event.Meta.BlobUsed { - txListDecoder = txlistfetcher.NewBlobTxListFetcher(client.L1Beacon, rpc.NewBlobDataSource( - context.Background(), - client, - nil, - )) - } else { - txListDecoder = new(txlistfetcher.CalldataFetcher) - } - txListBytes, err := txListDecoder.Fetch(context.Background(), tx, &event.Meta) - if err != nil { - return nil, err - } - - txListBytes, err = utils.Decompress(txListBytes) - if err != nil { - return nil, err - } - - var txs types.Transactions - return txs, rlp.DecodeBytes(txListBytes, &txs) -} func (s *ProposerTestSuite) TestProposeTxLists() { p := s.p ctx := p.ctx @@ -191,40 +160,6 @@ func (s *ProposerTestSuite) TestProposeTxLists() { } } -func (s *ProposerTestSuite) getLatestProposedTxs( - n int, - timeout time.Duration, -) (<-chan []types.Transactions, error) { - sink := make(chan *bindings.TaikoL1ClientBlockProposed) - sub, err := s.p.rpc.TaikoL1.WatchBlockProposed(nil, sink, nil, nil) - if err != nil { - return nil, err - } - - var resCh = make(chan []types.Transactions, 1) - go func() { - defer sub.Unsubscribe() - - txLst := make([]types.Transactions, 0, n) - tick := time.After(timeout) - for len(txLst) < cap(txLst) { - select { - case event := <-sink: - txs, err := parseTxs(s.RPCClient, event) - if err != nil { - log.Error("failed to parse txs", "error", err) - } - txLst = append(txLst, txs) - case <-tick: - return - } - } - resCh <- txLst - }() - - return resCh, nil -} - func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { defer s.Nil(s.s.ProcessL1Blocks(context.Background())) @@ -257,7 +192,6 @@ func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { var ( blockMinGasLimit uint64 = math.MaxUint64 blockMinTxListBytes uint64 = math.MaxUint64 - txLists = make([]types.Transactions, 0, len(preBuiltTxList)) ) for _, txs := range preBuiltTxList { if txs.EstimatedGasUsed <= blockMinGasLimit { @@ -270,7 +204,6 @@ func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { } else { break } - txLists = append(txLists, txs.TxList) } // Start proposer @@ -280,7 +213,6 @@ func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { p.ProposeInterval = time.Second p.MinProposingInternal = time.Minute s.Nil(p.ProposeOp(context.Background())) - } func (s *ProposerTestSuite) TestName() { From f66516024f753fc4ddb01c4503dc810827efea90 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 7 May 2024 10:10:05 +0800 Subject: [PATCH 4/5] Update proposer/transaction_builder/common_test.go --- proposer/transaction_builder/common_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposer/transaction_builder/common_test.go b/proposer/transaction_builder/common_test.go index 77f62ebfd..71e8b4db0 100644 --- a/proposer/transaction_builder/common_test.go +++ b/proposer/transaction_builder/common_test.go @@ -64,7 +64,7 @@ func (s *TransactionBuilderTestSuite) SetupTest() { common.HexToAddress(os.Getenv("TAIKO_L1_ADDRESS")), common.HexToAddress(os.Getenv("TAIKO_L2_ADDRESS")), common.HexToAddress(os.Getenv("ASSIGNMENT_HOOK_ADDRESS")), - 10000000, + 10_000_000, "test", ) } From d4ee8998b14c88a6f7b3ad896d752edbc2e86c6e Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 7 May 2024 10:12:15 +0800 Subject: [PATCH 5/5] optimise code style --- proposer/proposer_test.go | 2 +- proposer/transaction_builder/common_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proposer/proposer_test.go b/proposer/proposer_test.go index f2d4c838b..da7170ae0 100644 --- a/proposer/proposer_test.go +++ b/proposer/proposer_test.go @@ -148,7 +148,7 @@ func (s *ProposerTestSuite) TestProposeTxLists() { } // trigger the error - candidate.GasLimit = 10000000 + candidate.GasLimit = 10_000_000 txCandidates[i] = *candidate } diff --git a/proposer/transaction_builder/common_test.go b/proposer/transaction_builder/common_test.go index 77f62ebfd..71e8b4db0 100644 --- a/proposer/transaction_builder/common_test.go +++ b/proposer/transaction_builder/common_test.go @@ -64,7 +64,7 @@ func (s *TransactionBuilderTestSuite) SetupTest() { common.HexToAddress(os.Getenv("TAIKO_L1_ADDRESS")), common.HexToAddress(os.Getenv("TAIKO_L2_ADDRESS")), common.HexToAddress(os.Getenv("ASSIGNMENT_HOOK_ADDRESS")), - 10000000, + 10_000_000, "test", ) }