mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
Remove AddBundle from api
This commit is contained in:
parent
80d21f6c44
commit
0b871ae9fd
7 changed files with 95 additions and 141 deletions
|
|
@ -156,18 +156,6 @@ func (b *Builder) addBundle(bundle *suavextypes.Bundle, env *environment) (*suav
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (b *Builder) AddBundle(bundle *suavextypes.Bundle) (*suavextypes.SimulateBundleResult, error) {
|
||||
snap := b.env.copy()
|
||||
result, err := b.addBundle(bundle, snap)
|
||||
|
||||
if err != nil {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
b.env = snap
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (b *Builder) AddBundles(bundles []*suavextypes.Bundle) ([]*suavextypes.SimulateBundleResult, error) {
|
||||
var results []*suavextypes.SimulateBundleResult
|
||||
snap := b.env.copy()
|
||||
|
|
|
|||
|
|
@ -74,114 +74,10 @@ func TestBuilder_AddTxns_Simple(t *testing.T) {
|
|||
require.Equal(t, big.NewInt(2000), builder.env.state.GetBalance(testUserAddress))
|
||||
}
|
||||
|
||||
func TestBuilder_AddBundle_Simple(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
builder, err := NewBuilder(config, &BuilderArgs{})
|
||||
require.NoError(t, err)
|
||||
|
||||
tx1 := backend.newRandomTx(false)
|
||||
tx2 := backend.newRandomTxWithNonce(1)
|
||||
|
||||
bundle := &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
}
|
||||
|
||||
res, err := builder.AddBundle(bundle)
|
||||
require.NoError(t, err)
|
||||
require.True(t, res.Success)
|
||||
require.Len(t, res.SimulateTransactionResults, 2)
|
||||
require.Equal(t, big.NewInt(2000), builder.env.state.GetBalance(testUserAddress))
|
||||
}
|
||||
|
||||
func TestBuilder_AddBundle_RevertHashes(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
builder, err := NewBuilder(config, &BuilderArgs{})
|
||||
require.NoError(t, err)
|
||||
|
||||
tx1 := backend.newRandomTx(false)
|
||||
tx2 := backend.newRandomTxWithNonce(3) // fails with nonce too high
|
||||
|
||||
bundle := &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
}
|
||||
|
||||
res, err := builder.AddBundle(bundle)
|
||||
require.NoError(t, err)
|
||||
require.False(t, res.Success)
|
||||
require.Len(t, res.SimulateTransactionResults, 2)
|
||||
require.True(t, res.SimulateTransactionResults[0].Success)
|
||||
require.False(t, res.SimulateTransactionResults[1].Success)
|
||||
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
|
||||
|
||||
bundle.RevertingHashes = []common.Hash{tx2.Hash()}
|
||||
|
||||
res, err = builder.AddBundle(bundle)
|
||||
require.NoError(t, err)
|
||||
require.True(t, res.Success)
|
||||
require.Len(t, res.SimulateTransactionResults, 2)
|
||||
require.True(t, res.SimulateTransactionResults[0].Success)
|
||||
require.False(t, res.SimulateTransactionResults[1].Success)
|
||||
require.Equal(t, big.NewInt(1000), builder.env.state.GetBalance(testUserAddress))
|
||||
}
|
||||
|
||||
func TestBuilder_AddBundle_InvalidParams(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
// set builder target block number to 10
|
||||
backend.insertRandomBlocks(9)
|
||||
|
||||
builder, err := NewBuilder(config, &BuilderArgs{})
|
||||
require.Equal(t, uint64(10), builder.env.header.Number.Uint64())
|
||||
require.NoError(t, err)
|
||||
|
||||
tx1 := backend.newRandomTx(false)
|
||||
tx2 := backend.newRandomTx(false)
|
||||
|
||||
bundle := &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
BlockNumber: big.NewInt(20),
|
||||
}
|
||||
|
||||
res, err := builder.AddBundle(bundle)
|
||||
require.NoError(t, err)
|
||||
require.False(t, res.Success)
|
||||
require.Equal(t, ErrInvalidBlockNumber.Error(), res.Error)
|
||||
require.Len(t, res.SimulateTransactionResults, 0)
|
||||
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
|
||||
|
||||
bundle = &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
BlockNumber: big.NewInt(5),
|
||||
MaxBlock: big.NewInt(6),
|
||||
}
|
||||
|
||||
res, err = builder.AddBundle(bundle)
|
||||
require.NoError(t, err)
|
||||
require.False(t, res.Success)
|
||||
require.Equal(t, ErrExceedsMaxBlock.Error(), res.Error)
|
||||
require.Len(t, res.SimulateTransactionResults, 0)
|
||||
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
|
||||
|
||||
bundle = &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{},
|
||||
}
|
||||
|
||||
res, err = builder.AddBundle(bundle)
|
||||
require.NoError(t, err)
|
||||
require.False(t, res.Success)
|
||||
require.Equal(t, ErrEmptyTxs.Error(), res.Error)
|
||||
require.Len(t, res.SimulateTransactionResults, 0)
|
||||
require.Equal(t, big.NewInt(0), builder.env.state.GetBalance(testUserAddress))
|
||||
}
|
||||
|
||||
func TestBuilder_AddBundles_Simple(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
builder, err := NewBuilder(config, &BuilderArgs{
|
||||
Slot: 10,
|
||||
})
|
||||
builder, err := NewBuilder(config, &BuilderArgs{})
|
||||
require.NoError(t, err)
|
||||
|
||||
tx1 := backend.newRandomTx(false)
|
||||
|
|
@ -206,6 +102,92 @@ func TestBuilder_AddBundles_Simple(t *testing.T) {
|
|||
require.Equal(t, big.NewInt(4000), builder.env.state.GetBalance(testUserAddress))
|
||||
}
|
||||
|
||||
func TestBuilder_AddBundles_RevertHashes(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
builder, err := NewBuilder(config, &BuilderArgs{})
|
||||
require.NoError(t, err)
|
||||
|
||||
tx1 := backend.newRandomTx(false)
|
||||
tx2 := backend.newRandomTxWithNonce(3) // fails with nonce too high
|
||||
|
||||
bundle := &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
}
|
||||
|
||||
res, err := builder.AddBundles([]*suavextypes.Bundle{bundle})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, res, 1)
|
||||
require.False(t, res[0].Success)
|
||||
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))
|
||||
|
||||
bundle.RevertingHashes = []common.Hash{tx2.Hash()}
|
||||
|
||||
res, err = builder.AddBundles([]*suavextypes.Bundle{bundle})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, res, 1)
|
||||
require.True(t, res[0].Success)
|
||||
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))
|
||||
}
|
||||
|
||||
func TestBuilder_AddBundles_InvalidParams(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
// set builder target block number to 10
|
||||
backend.insertRandomBlocks(9)
|
||||
|
||||
builder, err := NewBuilder(config, &BuilderArgs{})
|
||||
require.Equal(t, uint64(10), builder.env.header.Number.Uint64())
|
||||
require.NoError(t, err)
|
||||
|
||||
tx1 := backend.newRandomTx(false)
|
||||
tx2 := backend.newRandomTx(false)
|
||||
|
||||
bundle := &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
BlockNumber: big.NewInt(20),
|
||||
}
|
||||
|
||||
res, err := builder.AddBundles([]*suavextypes.Bundle{bundle})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, res, 1)
|
||||
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))
|
||||
|
||||
bundle = &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{tx1, tx2},
|
||||
BlockNumber: big.NewInt(5),
|
||||
MaxBlock: big.NewInt(6),
|
||||
}
|
||||
|
||||
res, err = builder.AddBundles([]*suavextypes.Bundle{bundle})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, res, 1)
|
||||
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))
|
||||
|
||||
bundle = &suavextypes.Bundle{
|
||||
Txs: []*types.Transaction{},
|
||||
}
|
||||
|
||||
res, err = builder.AddBundles([]*suavextypes.Bundle{bundle})
|
||||
require.NoError(t, err)
|
||||
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))
|
||||
}
|
||||
|
||||
func TestBuilder_FillTransactions(t *testing.T) {
|
||||
t.Parallel()
|
||||
config, backend := newMockBuilderConfig(t)
|
||||
|
|
|
|||
|
|
@ -93,7 +93,6 @@ type API interface {
|
|||
NewSession(ctx context.Context, args *BuildBlockArgs) (string, error)
|
||||
AddTransaction(ctx context.Context, sessionId string, tx *types.Transaction) (*SimulateTransactionResult, error)
|
||||
AddTransactions(ctx context.Context, sessionId string, txs types.Transactions) ([]*SimulateTransactionResult, error)
|
||||
AddBundle(ctx context.Context, sessionId string, bundle *Bundle) (*SimulateBundleResult, error)
|
||||
AddBundles(ctx context.Context, sessionId string, bundles []*Bundle) ([]*SimulateBundleResult, error)
|
||||
BuildBlock(ctx context.Context, sessionId string) error
|
||||
Bid(ctx context.Context, sessioId string, blsPubKey phase0.BLSPubKey) (*SubmitBlockRequest, error)
|
||||
|
|
|
|||
|
|
@ -48,12 +48,6 @@ func (a *APIClient) AddTransactions(ctx context.Context, sessionId string, txs t
|
|||
return receipt, err
|
||||
}
|
||||
|
||||
func (a *APIClient) AddBundle(ctx context.Context, sessionId string, bundle *Bundle) (*SimulateBundleResult, error) {
|
||||
var receipt *SimulateBundleResult
|
||||
err := a.rpc.CallContext(ctx, &receipt, "suavex_addBundle", sessionId, bundle)
|
||||
return receipt, err
|
||||
}
|
||||
|
||||
func (a *APIClient) AddBundles(ctx context.Context, sessionId string, bundles []*Bundle) ([]*SimulateBundleResult, error) {
|
||||
var receipt []*SimulateBundleResult
|
||||
err := a.rpc.CallContext(ctx, &receipt, "suavex_addBundles", sessionId, bundles)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ type SessionManager interface {
|
|||
NewSession(context.Context, *BuildBlockArgs) (string, error)
|
||||
AddTransaction(sessionId string, tx *types.Transaction) (*SimulateTransactionResult, error)
|
||||
AddTransactions(sessionId string, txs types.Transactions) ([]*SimulateTransactionResult, error)
|
||||
AddBundle(sessionId string, bundle *Bundle) (*SimulateBundleResult, error)
|
||||
AddBundles(sessionId string, bundles []*Bundle) ([]*SimulateBundleResult, error)
|
||||
BuildBlock(sessionId string) error
|
||||
Bid(sessionId string, blsPubKey phase0.BLSPubKey) (*SubmitBlockRequest, error)
|
||||
|
|
@ -43,10 +42,6 @@ func (s *Server) AddTransactions(ctx context.Context, sessionId string, txs type
|
|||
return s.sessionMngr.AddTransactions(sessionId, txs)
|
||||
}
|
||||
|
||||
func (s *Server) AddBundle(ctx context.Context, sessionId string, bundle *Bundle) (*SimulateBundleResult, error) {
|
||||
return s.sessionMngr.AddBundle(sessionId, bundle)
|
||||
}
|
||||
|
||||
func (s *Server) AddBundles(ctx context.Context, sessionId string, bundles []*Bundle) ([]*SimulateBundleResult, error) {
|
||||
return s.sessionMngr.AddBundles(sessionId, bundles)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,14 @@ func TestAPI(t *testing.T) {
|
|||
txn := types.NewTransaction(0, common.Address{}, big.NewInt(1), 1, big.NewInt(1), []byte{})
|
||||
_, err = c.AddTransaction(context.Background(), "1", txn)
|
||||
require.NoError(t, err)
|
||||
_, err = c.AddTransactions(context.Background(), "1", []*types.Transaction{txn})
|
||||
require.NoError(t, err)
|
||||
|
||||
bundle := &Bundle{
|
||||
Txs: []*types.Transaction{txn},
|
||||
}
|
||||
_, err = c.AddBundles(context.Background(), "1", []*Bundle{bundle})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
type nullSessionManager struct{}
|
||||
|
|
@ -43,10 +51,6 @@ func (nullSessionManager) AddTransactions(sessionId string, txs types.Transactio
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
func (nullSessionManager) AddBundle(sessionId string, bundle *Bundle) (*SimulateBundleResult, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (nullSessionManager) AddBundles(sessionId string, bundles []*Bundle) ([]*SimulateBundleResult, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,14 +158,6 @@ func (s *SessionManager) AddTransactions(sessionId string, txs types.Transaction
|
|||
return builder.AddTransactions(txs)
|
||||
}
|
||||
|
||||
func (s *SessionManager) AddBundle(sessionId string, bundle *api.Bundle) (*api.SimulateBundleResult, error) {
|
||||
builder, err := s.getSession(sessionId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return builder.AddBundle(bundle)
|
||||
}
|
||||
|
||||
func (s *SessionManager) AddBundles(sessionId string, bundles []*api.Bundle) ([]*api.SimulateBundleResult, error) {
|
||||
builder, err := s.getSession(sessionId)
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in a new issue