More upstream fixes

This commit is contained in:
Ferran Borreguero 2024-04-03 09:02:23 +01:00
parent d5cc152b00
commit 6d87f81074
5 changed files with 43 additions and 14 deletions

View file

@ -64,6 +64,7 @@ func NewBuilder(config *BuilderConfig, args *BuilderArgs) (*Builder, error) {
chainConfig: config.ChainConfig,
engine: config.Engine,
chain: config.Chain,
txpool: config.EthBackend.TxPool(),
}
workerParams := &generateParams{

View file

@ -34,7 +34,7 @@ func TestBuilder_AddTxn_Simple(t *testing.T) {
require.NoError(t, err)
require.True(t, res.Success)
require.Len(t, builder.env.receipts, 1)
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress))
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress).ToBig())
// we cannot add the same transaction again. Note that by design the
// function does not error but returns the SimulateTransactionResult.success = false
@ -42,7 +42,7 @@ func TestBuilder_AddTxn_Simple(t *testing.T) {
require.NoError(t, err)
require.False(t, res.Success)
require.Len(t, builder.env.receipts, 1)
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress))
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress).ToBig())
}
func TestBuilder_AddTxns_Simple(t *testing.T) {
@ -60,7 +60,7 @@ func TestBuilder_AddTxns_Simple(t *testing.T) {
for _, r := range res {
require.True(t, r.Success)
}
require.Equal(t, big.NewInt(2000), builder.env.state.GetBalance(testUserAddress))
require.Equal(t, big.NewInt(2000), builder.env.state.GetBalance(testUserAddress).ToBig())
tx3 := backend.newRandomTxWithNonce(2)
tx4 := backend.newRandomTxWithNonce(1000) // fails with nonce too high
@ -71,7 +71,7 @@ func TestBuilder_AddTxns_Simple(t *testing.T) {
require.True(t, res[0].Success)
require.False(t, res[1].Success)
require.Len(t, builder.env.txs, 2)
require.Equal(t, big.NewInt(2000), builder.env.state.GetBalance(testUserAddress))
require.Equal(t, big.NewInt(2000), builder.env.state.GetBalance(testUserAddress).ToBig())
}
func TestBuilder_AddBundles_Simple(t *testing.T) {
@ -99,7 +99,7 @@ func TestBuilder_AddBundles_Simple(t *testing.T) {
require.Len(t, res, 2)
require.True(t, res[0].Success)
require.True(t, res[1].Success)
require.Equal(t, big.NewInt(4000), builder.env.state.GetBalance(testUserAddress))
require.Equal(t, big.NewInt(4000), builder.env.state.GetBalance(testUserAddress).ToBig())
}
func TestBuilder_AddBundles_RevertHashes(t *testing.T) {
@ -122,7 +122,7 @@ func TestBuilder_AddBundles_RevertHashes(t *testing.T) {
require.Len(t, res[0].SimulateTransactionResults, 2)
require.True(t, res[0].SimulateTransactionResults[0].Success)
require.False(t, res[0].SimulateTransactionResults[1].Success)
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
require.True(t, builder.env.state.GetBalance(testUserAddress).IsZero())
bundle.RevertingHashes = []common.Hash{tx2.Hash()}
@ -133,7 +133,7 @@ func TestBuilder_AddBundles_RevertHashes(t *testing.T) {
require.Len(t, res[0].SimulateTransactionResults, 2)
require.True(t, res[0].SimulateTransactionResults[0].Success)
require.False(t, res[0].SimulateTransactionResults[1].Success)
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress))
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress).ToBig())
}
func TestBuilder_AddBundles_InvalidParams(t *testing.T) {
@ -160,7 +160,7 @@ func TestBuilder_AddBundles_InvalidParams(t *testing.T) {
require.False(t, res[0].Success)
require.Equal(t, ErrInvalidBlockNumber.Error(), res[0].Error)
require.Len(t, res[0].SimulateTransactionResults, 0)
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
require.True(t, builder.env.state.GetBalance(testUserAddress).IsZero())
bundle = &suavextypes.Bundle{
Txs: []*types.Transaction{tx1, tx2},
@ -174,7 +174,7 @@ func TestBuilder_AddBundles_InvalidParams(t *testing.T) {
require.False(t, res[0].Success)
require.Equal(t, ErrExceedsMaxBlock.Error(), res[0].Error)
require.Len(t, res[0].SimulateTransactionResults, 0)
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
require.True(t, builder.env.state.GetBalance(testUserAddress).IsZero())
bundle = &suavextypes.Bundle{
Txs: []*types.Transaction{},
@ -185,7 +185,7 @@ func TestBuilder_AddBundles_InvalidParams(t *testing.T) {
require.False(t, res[0].Success)
require.Equal(t, ErrEmptyTxs.Error(), res[0].Error)
require.Len(t, res[0].SimulateTransactionResults, 0)
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
require.True(t, builder.env.state.GetBalance(testUserAddress).IsZero())
}
func TestBuilder_FillTransactions(t *testing.T) {
@ -299,12 +299,11 @@ func newMockBuilderConfig(t *testing.T) (*BuilderConfig, *testWorkerBackend) {
engine := clique.New(config.Clique, db)
w, backend := newTestWorker(t, &config, engine, db, 0)
w.close()
bConfig := &BuilderConfig{
ChainConfig: w.chainConfig,
Engine: w.engine,
EthBackend: w.eth,
EthBackend: backend,
Chain: w.chain,
GasCeil: 10000000,
}

View file

@ -110,6 +110,12 @@ func newTestWorkerBackend(t *testing.T, chainConfig *params.ChainConfig, engine
Config: chainConfig,
Alloc: types.GenesisAlloc{testBankAddress: {Balance: testBankFunds}},
}
// == SUAVE SPECIFIC ==
// Add custom contracts for the genesis
gspec.Alloc[suaveExample1Addr] = core.GenesisAccount{Balance: big.NewInt(0), Code: common.FromHex(suaveExample1Artifact.DeployedBytecode.Object)}
// == END OF SUAVE SPECIFIC ==
switch e := engine.(type) {
case *clique.Clique:
gspec.ExtraData = make([]byte, 32+common.AddressLength+crypto.SignatureLength)
@ -273,3 +279,25 @@ func TestPayloadId(t *testing.T) {
ids[id] = i
}
}
// --- SUAVE SPECIFIC UTILITIES ---
const (
// testCode is the testing contract binary code which will initialises some
// variables in constructor
testCode = "0x60806040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005534801561003457600080fd5b5060fc806100436000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80630c4dae8814603757806398a213cf146053575b600080fd5b603d607e565b6040518082815260200191505060405180910390f35b607c60048036036020811015606757600080fd5b81019080803590602001909291905050506084565b005b60005481565b806000819055507fe9e44f9f7da8c559de847a3232b57364adc0354f15a2cd8dc636d54396f9587a6000546040518082815260200191505060405180910390a15056fea265627a7a723058208ae31d9424f2d0bc2a3da1a5dd659db2d71ec322a17db8f87e19e209e3a1ff4a64736f6c634300050a0032"
// testGas is the gas required for contract deployment.
testGas = 144109
)
func (b *testWorkerBackend) newRandomTx(creation bool) *types.Transaction {
var tx *types.Transaction
gasPrice := big.NewInt(10 * params.InitialBaseFee)
if creation {
tx, _ = types.SignTx(types.NewContractCreation(b.txPool.Nonce(testBankAddress), big.NewInt(0), testGas, gasPrice, common.FromHex(testCode)), types.HomesteadSigner{}, testBankKey)
} else {
tx, _ = types.SignTx(types.NewTransaction(b.txPool.Nonce(testBankAddress), testUserAddress, big.NewInt(1000), params.TxGas, gasPrice, nil), types.HomesteadSigner{}, testBankKey)
}
return tx
}

View file

@ -137,7 +137,7 @@ func (s *SessionManager) NewSession(ctx context.Context, args *api.BuildBlockArg
}
func (s *SessionManager) getSession(sessionId string, allowOnTheFlySession bool) (*miner.Builder, error) {
if sessionId == "" {
if sessionId == "" && allowOnTheFlySession {
return s.newBuilder(&api.BuildBlockArgs{})
}

View file

@ -142,7 +142,8 @@ type testBackend struct {
func (tb *testBackend) newTransfer(t *testing.T, to common.Address, amount *big.Int) *types.Transaction {
gasPrice := big.NewInt(10 * params.InitialBaseFee)
tx, _ := types.SignTx(types.NewTransaction(tb.pool.Nonce(testBankAddress), to, amount, params.TxGas, gasPrice, nil), types.HomesteadSigner{}, testBankKey)
tx, err := types.SignTx(types.NewTransaction(tb.pool.Nonce(testBankAddress), to, amount, params.TxGas, gasPrice, nil), types.HomesteadSigner{}, testBankKey)
require.NoError(t, err)
return tx
}