Skip to content

Commit 5879790

Browse files
committed
review
1 parent ba4bb89 commit 5879790

6 files changed

Lines changed: 18 additions & 13 deletions

File tree

vms/saevm/network/network.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (C) 2019, Ava Labs, Inc. All rights reserved.
22
// See the file LICENSE for licensing terms.
33

4+
// Package network provides the P2P network for the SAE VM.
45
package network
56

67
import (
@@ -19,6 +20,8 @@ var (
1920
_ common.AppHandler = (*Network)(nil)
2021
)
2122

23+
// Network contains the [p2p.Network] and all coupled state for use by the SAE
24+
// VM. It should only be constructed with [New].
2225
type Network struct {
2326
*p2p.Network
2427
ValidatorPeers *p2p.Validators

vms/saevm/sae/always.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,7 @@ func (vm *SinceGenesis[_]) Initialize(
7979
return fmt.Errorf("network.New(...): %v", err)
8080
}
8181
vm.VM, err = NewVM(ctx, vm.hooks, vm.config, snowCtx, config, db, vm.Network)
82-
if err != nil {
83-
return err
84-
}
85-
return nil
82+
return err
8683
}
8784

8885
// Shutdown gracefully closes the VM.

vms/saevm/sae/rpc.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ import (
1010
"github.com/ava-labs/libevm/ethdb"
1111
"github.com/ava-labs/libevm/event"
1212

13+
"github.com/ava-labs/avalanchego/network/p2p"
1314
"github.com/ava-labs/avalanchego/utils/logging"
1415
"github.com/ava-labs/avalanchego/vms/saevm/blocks"
1516
"github.com/ava-labs/avalanchego/vms/saevm/hook"
17+
"github.com/ava-labs/avalanchego/vms/saevm/network"
1618
"github.com/ava-labs/avalanchego/vms/saevm/saexec"
1719
"github.com/ava-labs/avalanchego/vms/saevm/txgossip"
1820

@@ -27,19 +29,21 @@ func (vm *VM) GethRPCBackends() saerpc.GethBackends {
2729
}
2830

2931
func (vm *VM) chain() saerpc.Chain {
30-
return chain{vm, vm.exec}
32+
return chain{vm, vm.exec, vm.network}
3133
}
3234

3335
type chain struct {
3436
*VM
3537
*saexec.Executor
38+
network *network.Network
3639
}
3740

3841
func (c chain) Logger() logging.Logger { return c.VM.snowCtx.Log }
3942
func (c chain) Hooks() hook.Points { return c.hooks }
4043
func (c chain) DB() ethdb.Database { return c.db }
4144
func (c chain) XDB() saetypes.ExecutionResults { return c.xdb }
4245
func (c chain) Mempool() *txgossip.Set { return c.mempool }
46+
func (c chain) Peers() *p2p.Peers { return c.network.Peers }
4347
func (c chain) LastAccepted() *blocks.Block { return c.last.accepted.Load() }
4448
func (c chain) LastSettled() *blocks.Block { return c.last.settled.Load() }
4549

vms/saevm/sae/rpc/rpc.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ type Chain interface {
4242
ChainConfig() *params.ChainConfig
4343

4444
// Consensus and block-building
45-
blocks.Chain
45+
Peers() *p2p.Peers
4646
Mempool() *txgossip.Set
47+
blocks.Chain
4748
ChainContext() core.ChainContext
4849

4950
// Execution results and replay
@@ -97,10 +98,11 @@ type Provider struct {
9798
}
9899

99100
// New constructs a new [Provider].
100-
func New(chain Chain, peers *p2p.Peers, config Config) (*Provider, error) {
101+
func New(chain Chain, config Config) (*Provider, error) {
101102
if err := config.Verify(); err != nil {
102103
return nil, err
103104
}
105+
104106
price, err := gasprice.NewEstimator(&estimatorBackend{chain}, chain.Logger(), gasprice.DefaultConfig())
105107
if err != nil {
106108
return nil, fmt.Errorf("gasprice.NewEstimator(...): %v", err)
@@ -135,7 +137,7 @@ func New(chain Chain, peers *p2p.Peers, config Config) (*Provider, error) {
135137
filters.NewFilterSystem(back, filters.Config{}),
136138
false, /*isLightClient*/
137139
)
138-
srv, err := back.server(peers, filter)
140+
srv, err := back.server(filter)
139141
if err != nil {
140142
filters.CloseAPI(filter)
141143
return nil, errors.Join(err, back.close())

vms/saevm/sae/rpc/server.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"github.com/ava-labs/libevm/libevm/debug"
1212
"github.com/ava-labs/libevm/libevm/ethapi"
1313
"github.com/ava-labs/libevm/rpc"
14-
15-
"github.com/ava-labs/avalanchego/network/p2p"
1614
)
1715

1816
// Taken as the default from geth / libevm's `node.DefaultConfig`.
@@ -24,7 +22,7 @@ func (p *Provider) Server() *rpc.Server {
2422
return p.server
2523
}
2624

27-
func (b *backend) server(peers *p2p.Peers, filter *filters.FilterAPI) (*rpc.Server, error) {
25+
func (b *backend) server(filter *filters.FilterAPI) (*rpc.Server, error) {
2826
type api struct {
2927
namespace string
3028
api any
@@ -41,7 +39,7 @@ func (b *backend) server(peers *p2p.Peers, filter *filters.FilterAPI) (*rpc.Serv
4139
// - net_listening
4240
// - net_peerCount
4341
// - net_version
44-
{"net", newNetAPI(peers, b.ChainConfig().ChainID.Uint64())},
42+
{"net", newNetAPI(b.Peers(), b.ChainConfig().ChainID.Uint64())},
4543
// geth-specific APIs:
4644
// - txpool_content
4745
// - txpool_contentFrom

vms/saevm/sae/vm.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
// canonical on disk with its post-execution state committed before [NewVM] is
4949
// called.
5050
type VM struct {
51+
network *network.Network
5152
hooks hook.Points
5253
config Config
5354
snowCtx *snow.Context
@@ -271,7 +272,7 @@ func NewVM[T hook.Transaction](
271272
}
272273

273274
{ // ========== RPC Provider ==========
274-
r, err := rpc.New(chain{vm, vm.exec}, network.Peers, cfg.RPCConfig)
275+
r, err := rpc.New(vm.chain(), cfg.RPCConfig)
275276
if err != nil {
276277
return nil, err
277278
}

0 commit comments

Comments
 (0)