|
1 | 1 | package services |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "context" |
5 | 4 | "math/big" |
6 | 5 | "testing" |
7 | 6 |
|
8 | 7 | "github.com/holiman/uint256" |
9 | 8 | "github.com/morph-l2/go-ethereum/common" |
10 | 9 | "github.com/morph-l2/go-ethereum/core/types" |
11 | | - "github.com/morph-l2/go-ethereum/crypto" |
12 | 10 | "github.com/morph-l2/go-ethereum/crypto/kzg4844" |
13 | 11 | "github.com/stretchr/testify/require" |
14 | 12 |
|
15 | | - "morph-l2/tx-submitter/mock" |
16 | 13 | "morph-l2/tx-submitter/utils" |
17 | 14 | ) |
18 | 15 |
|
@@ -55,92 +52,76 @@ func TestSendTx(t *testing.T) { |
55 | 52 | } |
56 | 53 |
|
57 | 54 | func TestGetGasTipAndCap(t *testing.T) { |
58 | | - l1Mock := mock.NewL1ClientWrapper() |
59 | 55 | initTip := big.NewInt(1e9) |
60 | | - |
61 | 56 | baseFee := big.NewInt(1e9) |
62 | 57 | block := types.NewBlockWithHeader( |
63 | 58 | &types.Header{ |
64 | 59 | BaseFee: baseFee, |
65 | 60 | }, |
66 | 61 | ) |
| 62 | + |
| 63 | + r, l1Mock, _, _ := setupTestRollup(t) |
67 | 64 | l1Mock.TipCap = initTip |
68 | 65 | l1Mock.Block = block |
69 | | - config := utils.Config{ |
70 | | - MaxTip: 10e9, |
71 | | - MaxBaseFee: 100e9, |
72 | | - MinTip: 1e9, |
73 | | - TipFeeBump: 100, |
74 | | - } |
75 | | - r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) |
| 66 | + |
76 | 67 | tip, feecap, blobfee, err := r.GetGasTipAndCap() |
77 | 68 | require.NoError(t, err) |
78 | 69 | require.NotNil(t, tip) |
79 | 70 | require.NotNil(t, feecap) |
80 | 71 | require.NotNil(t, blobfee) |
81 | 72 | require.Equal(t, initTip, tip) |
82 | 73 |
|
83 | | - config = utils.Config{ |
84 | | - MaxTip: 10e9, |
85 | | - MaxBaseFee: 100e9, |
86 | | - MinTip: 1e9, |
87 | | - TipFeeBump: 200, |
88 | | - } |
89 | | - r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) |
| 74 | + // Test with different TipFeeBump |
| 75 | + r, l1Mock, _, _ = setupTestRollup(t) |
| 76 | + l1Mock.TipCap = initTip |
| 77 | + l1Mock.Block = block |
| 78 | + r.cfg.TipFeeBump = 200 |
| 79 | + |
90 | 80 | tip, feecap, blobfee, err = r.GetGasTipAndCap() |
91 | 81 | require.NoError(t, err) |
92 | 82 | require.NotNil(t, tip) |
93 | 83 | require.NotNil(t, feecap) |
94 | 84 | require.NotNil(t, blobfee) |
95 | 85 | require.Equal(t, tip, initTip.Mul(initTip, big.NewInt(2))) |
96 | 86 |
|
97 | | - config = utils.Config{ |
98 | | - MaxTip: 10e9, |
99 | | - MaxBaseFee: baseFee.Uint64() - 1, |
100 | | - MinTip: 1e9, |
101 | | - TipFeeBump: 200, |
102 | | - } |
103 | | - r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) |
| 87 | + // Test with base fee too high |
| 88 | + r, l1Mock, _, _ = setupTestRollup(t) |
| 89 | + l1Mock.TipCap = initTip |
| 90 | + l1Mock.Block = block |
| 91 | + r.cfg.MaxBaseFee = baseFee.Uint64() - 1 |
| 92 | + |
104 | 93 | _, _, _, err = r.GetGasTipAndCap() |
105 | 94 | require.ErrorContains(t, err, "base fee is too high") |
106 | 95 |
|
107 | | - config = utils.Config{ |
108 | | - MaxTip: initTip.Uint64() - 1, |
109 | | - MaxBaseFee: 100e9, |
110 | | - MinTip: 1e9, |
111 | | - TipFeeBump: 200, |
112 | | - } |
113 | | - r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) |
| 96 | + // Test with tip too high |
| 97 | + r, l1Mock, _, _ = setupTestRollup(t) |
| 98 | + l1Mock.TipCap = initTip |
| 99 | + l1Mock.Block = block |
| 100 | + r.cfg.MaxTip = initTip.Uint64() - 1 |
| 101 | + |
114 | 102 | _, _, _, err = r.GetGasTipAndCap() |
115 | 103 | require.ErrorContains(t, err, "tip is too high") |
116 | | - |
117 | 104 | } |
118 | 105 |
|
119 | 106 | func TestReSubmitTx(t *testing.T) { |
120 | | - l1Mock := mock.NewL1ClientWrapper() |
121 | 107 | marketTip := big.NewInt(3e9) // 3 Gwei market tip |
122 | 108 | baseFee := big.NewInt(2e9) // 2 Gwei base fee |
123 | 109 | block := types.NewBlockWithHeader( |
124 | 110 | &types.Header{ |
125 | 111 | BaseFee: baseFee, |
126 | 112 | }, |
127 | 113 | ) |
| 114 | + |
| 115 | + r, l1Mock, _, _ := setupTestRollup(t) |
128 | 116 | l1Mock.TipCap = marketTip |
129 | 117 | l1Mock.Block = block |
130 | | - config := utils.Config{ |
131 | | - MaxTip: 10e12, |
132 | | - MaxBaseFee: 100e9, |
133 | | - MinTip: 1e9, |
134 | | - TipFeeBump: 0, // no bump for replace mode |
135 | | - } |
136 | | - |
137 | | - priv, err := crypto.GenerateKey() |
138 | | - require.NoError(t, err) |
139 | | - |
140 | | - r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, priv, common.Address{}, nil, config, nil, nil, nil, nil, nil) |
| 118 | + r.cfg.MaxTip = 10e12 |
| 119 | + r.cfg.MaxBaseFee = 100e9 |
| 120 | + r.cfg.MinTip = 1e9 |
| 121 | + r.cfg.TipFeeBump = 0 // no bump for replace mode |
141 | 122 |
|
142 | 123 | // Test nil tx |
143 | | - _, err = r.ReSubmitTx(false, nil) |
| 124 | + _, err := r.ReSubmitTx(false, nil) |
144 | 125 | require.ErrorContains(t, err, "nil tx") |
145 | 126 |
|
146 | 127 | t.Run("DynamicFeeTx", func(t *testing.T) { |
@@ -275,34 +256,24 @@ func TestReSubmitTx(t *testing.T) { |
275 | 256 |
|
276 | 257 | func TestCancelTx(t *testing.T) { |
277 | 258 | // Setup mock L1 client |
278 | | - l1Mock := mock.NewL1ClientWrapper() |
279 | 259 | initTip := big.NewInt(1e9) |
280 | 260 | baseFee := big.NewInt(1e9) |
281 | 261 | block := types.NewBlockWithHeader( |
282 | 262 | &types.Header{ |
283 | 263 | BaseFee: baseFee, |
284 | 264 | }, |
285 | 265 | ) |
| 266 | + |
| 267 | + r, l1Mock, _, _ := setupTestRollup(t) |
286 | 268 | l1Mock.TipCap = initTip |
287 | 269 | l1Mock.Block = block |
288 | | - |
289 | | - // Setup config |
290 | | - config := utils.Config{ |
291 | | - MaxTip: 10e12, |
292 | | - MaxBaseFee: 100e9, |
293 | | - MinTip: 1e9, |
294 | | - TipFeeBump: 120, // 20% bump |
295 | | - } |
296 | | - |
297 | | - // Setup private key |
298 | | - priv, err := crypto.GenerateKey() |
299 | | - require.NoError(t, err) |
300 | | - |
301 | | - // Create rollup instance |
302 | | - r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, priv, common.Address{}, nil, config, nil, nil, nil, nil, nil) |
| 270 | + r.cfg.MaxTip = 10e12 |
| 271 | + r.cfg.MaxBaseFee = 100e9 |
| 272 | + r.cfg.MinTip = 1e9 |
| 273 | + r.cfg.TipFeeBump = 120 // 20% bump |
303 | 274 |
|
304 | 275 | // Test 1: Cancel nil transaction |
305 | | - _, err = r.CancelTx(nil) |
| 276 | + _, err := r.CancelTx(nil) |
306 | 277 | require.Error(t, err) |
307 | 278 | require.Contains(t, err.Error(), "nil tx") |
308 | 279 |
|
|
0 commit comments