mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
More upstream fixes
This commit is contained in:
parent
d5cc152b00
commit
6d87f81074
5 changed files with 43 additions and 14 deletions
|
|
@ -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{
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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{})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue