From 6fbc16fc2967694463fcd8b91ea50820e018be3b Mon Sep 17 00:00:00 2001 From: maskpp Date: Mon, 5 Feb 2024 12:00:32 +0800 Subject: [PATCH] fix bug --- go.mod | 2 +- go.sum | 2 -- proposer/proposer.go | 54 +++++++++++++++++++-------------------- proposer/proposer_test.go | 18 +++---------- 4 files changed, 30 insertions(+), 46 deletions(-) diff --git a/go.mod b/go.mod index 2437fc213..0054fe236 100644 --- a/go.mod +++ b/go.mod @@ -220,4 +220,4 @@ require ( sigs.k8s.io/yaml v1.3.0 // indirect ) -replace github.com/ethereum/go-ethereum v1.13.8 => github.com/taikoxyz/taiko-geth v0.0.0-20240118064628-88e3acd1f435 +replace github.com/ethereum/go-ethereum v1.13.8 => /Users/huan/projects/taiko/taiko-geth diff --git a/go.sum b/go.sum index 9a3f4f892..13da6601e 100644 --- a/go.sum +++ b/go.sum @@ -992,8 +992,6 @@ github.com/swaggo/swag v1.16.2 h1:28Pp+8DkQoV+HLzLx8RGJZXNGKbFqnuvSbAAtoxiY04= github.com/swaggo/swag v1.16.2/go.mod h1:6YzXnDcpr0767iOejs318CwYkCQqyGer6BizOg03f+E= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= -github.com/taikoxyz/taiko-geth v0.0.0-20240118064628-88e3acd1f435 h1:XaAE25G77ghpc2LdID3iVdyi916cMa2ifTQN5Ck7eYE= -github.com/taikoxyz/taiko-geth v0.0.0-20240118064628-88e3acd1f435/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU= github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4= diff --git a/proposer/proposer.go b/proposer/proposer.go index 0ccaea26d..e2fe872bc 100644 --- a/proposer/proposer.go +++ b/proposer/proposer.go @@ -311,10 +311,22 @@ func (p *Proposer) sendProposeBlockTxWithBlobHash( ctx context.Context, txListBytes []byte, nonce *uint64, - assignment *encoding.ProverAssignment, - assignedProver common.Address, - maxFee *big.Int, isReplacement bool) (*types.Transaction, error) { + // Make sidecar in order to get blob hash. + sideCar, err := rpc.MakeSidecarWithSingleBlob(txListBytes) + if err != nil { + return nil, err + } + + assignment, assignedProver, maxFee, err := p.proverSelector.AssignProver( + ctx, + p.tierFees, + sideCar.BlobHashes()[0], + ) + if err != nil { + return nil, err + } + // Propose the transactions list opts, err := getTxOpts(ctx, p.rpc.L1, p.L1ProposerPrivKey, p.rpc.L1ChainID, maxFee) if err != nil { @@ -368,12 +380,6 @@ func (p *Proposer) sendProposeBlockTxWithBlobHash( Hook: p.AssignmentHookAddress, Data: hookInputData, }) - - // Make sidecar in order to get blob hash. - sideCar, err := rpc.MakeSidecarWithSingleBlob(txListBytes) - if err != nil { - return nil, err - } encodedParams, err := encoding.EncodeBlockParams(&encoding.BlockParams{ AssignedProver: assignedProver, ExtraData: rpc.StringToBytes32(p.ExtraData), @@ -400,6 +406,7 @@ func (p *Proposer) sendProposeBlockTxWithBlobHash( // Create blob tx and send it. opts.NoSend = false + opts.GasLimit = 0 proposeTx, err := p.rpc.L1.TransactBlobTx(opts, &p.TaikoL1Address, rawTx.Data(), sideCar) if err != nil { return nil, err @@ -415,11 +422,17 @@ func (p *Proposer) sendProposeBlockTx( ctx context.Context, txListBytes []byte, nonce *uint64, - assignment *encoding.ProverAssignment, - assignedProver common.Address, - maxFee *big.Int, isReplacement bool, ) (*types.Transaction, error) { + assignment, assignedProver, maxFee, err := p.proverSelector.AssignProver( + ctx, + p.tierFees, + crypto.Keccak256Hash(txListBytes), + ) + if err != nil { + return nil, err + } + // Propose the transactions list opts, err := getTxOpts(ctx, p.rpc.L1, p.L1ProposerPrivKey, p.rpc.L1ChainID, maxFee) if err != nil { @@ -507,34 +520,22 @@ func (p *Proposer) ProposeTxList( txNum uint, nonce *uint64, ) error { - assignment, proverAddress, maxFee, err := p.proverSelector.AssignProver( - ctx, - p.tierFees, - crypto.Keccak256Hash(txListBytes), - ) - if err != nil { - return err - } - var ( isReplacement bool tx *types.Transaction + err error ) if err = backoff.Retry( func() error { if ctx.Err() != nil { return nil } - // Send tx list by blob tx. if p.BlobAllowed { tx, err = p.sendProposeBlockTxWithBlobHash( ctx, txListBytes, nonce, - assignment, - proverAddress, - maxFee, isReplacement, ) } else { @@ -542,9 +543,6 @@ func (p *Proposer) ProposeTxList( ctx, txListBytes, nonce, - assignment, - proverAddress, - maxFee, isReplacement, ) } diff --git a/proposer/proposer_test.go b/proposer/proposer_test.go index c5d288712..8f16b2ed2 100644 --- a/proposer/proposer_test.go +++ b/proposer/proposer_test.go @@ -177,8 +177,8 @@ func (s *ProposerTestSuite) TestSendProposeBlockTx() { []byte{}, ) - s.SetL1Automine(false) - defer s.SetL1Automine(true) + //s.SetL1Automine(false) + //defer s.SetL1Automine(true) signedTx, err := types.SignTx(tx, types.LatestSignerForChainID(s.RPCClient.L1ChainID), s.p.L1ProposerPrivKey) s.Nil(err) @@ -188,34 +188,22 @@ func (s *ProposerTestSuite) TestSendProposeBlockTx() { encoded, err := rlp.EncodeToBytes(emptyTxs) s.Nil(err) - signedAssignment, proverAddress, fee, err := s.p.proverSelector.AssignProver( - context.Background(), - s.p.tierFees, - crypto.Keccak256Hash(encoded), - ) - s.Nil(err) - var ( ctx = context.Background() newTx *types.Transaction ) + nonce++ if s.p.BlobAllowed { newTx, err = s.p.sendProposeBlockTxWithBlobHash( ctx, encoded, &nonce, - signedAssignment, - proverAddress, - fee, true) } else { newTx, err = s.p.sendProposeBlockTx( context.Background(), encoded, &nonce, - signedAssignment, - proverAddress, - fee, true, ) }