Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(e2e): remove most netconf usage #2187

Merged
merged 1 commit into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions e2e/app/admin/bridgespec.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (s BridgeSpec) Verify() error {
func EnsureBridgeSpec(ctx context.Context, def app.Definition, cfg Config, specOverride *NetworkBridgeSpec) error {
s := setup(def, cfg)

l1Chain, ok := s.network.EthereumChain()
l1Chain, ok := s.testnet.EthereumChain()
if !ok {
return errors.New("no ethereum chain")
}
Expand Down Expand Up @@ -120,12 +120,12 @@ func EnsureBridgeSpec(ctx context.Context, def app.Definition, cfg Config, specO

// ensureNativeBridgeSpec ensures that the live native bridge contract is configured as per the local spec.
func ensureNativeBridgeSpec(ctx context.Context, s shared, c chain, specOverride *BridgeSpec) error {
local := bridgeSpec[s.network.ID].Native
local := bridgeSpec[s.testnet.Network].Native
if specOverride != nil {
local = *specOverride
}

ethCl, err := ethclient.Dial(c.Name, c.rpc)
ethCl, err := ethclient.Dial(c.Name, c.RPCEndpoint)
if err != nil {
return errors.Wrap(err, "dial eth client")
}
Expand All @@ -152,17 +152,17 @@ func ensureNativeBridgeSpec(ctx context.Context, s shared, c chain, specOverride

// ensureL1BridgeSpec ensures that the live L1 bridge contract is configured as per the local spec.
func ensureL1BridgeSpec(ctx context.Context, s shared, c chain, specOverride *BridgeSpec) error {
local := bridgeSpec[s.network.ID].L1
local := bridgeSpec[s.testnet.Network].L1
if specOverride != nil {
local = *specOverride
}

ethCl, err := ethclient.Dial(c.Name, c.rpc)
ethCl, err := ethclient.Dial(c.Name, c.RPCEndpoint)
if err != nil {
return errors.Wrap(err, "dial eth client")
}

addrs, err := contracts.GetAddresses(ctx, s.network.ID)
addrs, err := contracts.GetAddresses(ctx, s.testnet.Network)
if err != nil {
return errors.Wrap(err, "get addrs")
}
Expand Down
49 changes: 25 additions & 24 deletions e2e/app/admin/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/omni-network/omni/e2e/app"
"github.com/omni-network/omni/e2e/app/eoa"
fbproxy "github.com/omni-network/omni/e2e/fbproxy/app"
"github.com/omni-network/omni/e2e/types"
"github.com/omni-network/omni/lib/anvil"
"github.com/omni-network/omni/lib/contracts"
"github.com/omni-network/omni/lib/errors"
Expand All @@ -33,16 +34,18 @@ type shared struct {
upgrader common.Address
deployer common.Address
endpoints xchain.RPCEndpoints
network netconf.Network
testnet types.Testnet
cfg Config
fireAPIKey string
fireKeyPath string
}

// chain contains chain specific resources, exteding netconf.Chain with an rpc endpoint.
// chain contains chain specific resources, extending EVMChain with the PortalAddress and an RPCEndpoint endpoint.
// Netconf.Chain cannot be used since we don't know the DeployHeight.
type chain struct {
netconf.Chain
rpc string
types.EVMChain
PortalAddress common.Address
RPCEndpoint string
}

// setup returns common resources for all admin operations.
Expand All @@ -52,7 +55,6 @@ func setup(def app.Definition, cfg Config) shared {
upgrader := eoa.MustAddress(netID, eoa.RoleUpgrader)
deployer := eoa.MustAddress(netID, eoa.RoleDeployer)
endpoints := app.ExternalEndpoints(def)
network := app.NetworkFromDef(def)

// addrs set lazily in setupChain

Expand All @@ -61,7 +63,7 @@ func setup(def app.Definition, cfg Config) shared {
upgrader: upgrader,
deployer: deployer,
endpoints: endpoints,
network: network,
testnet: def.Testnet,
cfg: cfg,
fireAPIKey: def.Cfg.FireAPIKey,
fireKeyPath: def.Cfg.FireKeyPath,
Expand All @@ -71,34 +73,33 @@ func setup(def app.Definition, cfg Config) shared {
// setupChain returns chain specific resources.
// starts and fbproxy for non-devnet chains.
func setupChain(ctx context.Context, s shared, name string) (chain, error) {
c, ok := s.network.ChainByName(name)
c, ok := s.testnet.EVMChainByName(name)
if !ok {
return chain{}, errors.New("chain not found", "chain", name)
}

rpc, err := s.endpoints.ByNameOrID(c.Name, c.ID)
rpc, err := s.endpoints.ByNameOrID(c.Name, c.ChainID)
if err != nil {
return chain{}, errors.Wrap(err, "rpc endpoint")
}

// add portal address if not already set
if c.PortalAddress == (common.Address{}) {
addrs, err := contracts.GetAddresses(ctx, s.network.ID)
if err != nil {
return chain{}, errors.Wrap(err, "get addresses")
}

c.PortalAddress = addrs.Portal
addrs, err := contracts.GetAddresses(ctx, s.testnet.Network)
if err != nil {
return chain{}, errors.Wrap(err, "get addresses")
}

if s.fireAPIKey != "" || s.fireKeyPath != "" {
rpc, err = startFBProxy(ctx, s.network.ID, rpc, s.fireAPIKey, s.fireKeyPath)
rpc, err = startFBProxy(ctx, s.testnet.Network, rpc, s.fireAPIKey, s.fireKeyPath)
if err != nil {
return chain{}, errors.Wrap(err, "start fb proxy")
}
}

return chain{Chain: c, rpc: rpc}, nil
return chain{
EVMChain: c,
PortalAddress: addrs.Portal,
RPCEndpoint: rpc,
}, nil
}

type runOpts struct {
Expand All @@ -125,7 +126,7 @@ func (s shared) run(
o(&opts)
}

names, err := maybeAll(s.network, s.cfg.Chain, opts.exclude)
names, err := maybeAll(s.testnet.EVMChains(), s.cfg.Chain, opts.exclude)
if err != nil {
return err
}
Expand All @@ -145,24 +146,24 @@ func (s shared) run(
}

// maybeAll returns all chains if chain is empty, otherwise returns chain.
func maybeAll(network netconf.Network, chain string, exclude []string) ([]string, error) {
func maybeAll(chains []types.EVMChain, chain string, exclude []string) ([]string, error) {
excluded := make(map[string]bool)
for _, e := range exclude {
excluded[e] = true
}

if chain == "" {
var chains []string
var resp []string

for _, c := range network.EVMChains() {
for _, c := range chains {
if excluded[c.Name] {
continue
}

chains = append(chains, c.Name)
resp = append(resp, c.Name)
}

return chains, nil
return resp, nil
}

if excluded[chain] {
Expand Down
4 changes: 2 additions & 2 deletions e2e/app/admin/pausebridge.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func pauseBridge(ctx context.Context, s shared, c chain, addr common.Address, ac
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -37,7 +37,7 @@ func unpauseBridge(ctx context.Context, s shared, c chain, addr common.Address,
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand Down
4 changes: 2 additions & 2 deletions e2e/app/admin/pauseportal.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func pausePortal(ctx context.Context, s shared, c chain) error {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -35,7 +35,7 @@ func unpausePortal(ctx context.Context, s shared, c chain) error {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand Down
16 changes: 8 additions & 8 deletions e2e/app/admin/pausexcall.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func pauseXCall(ctx context.Context, s shared, c chain) error {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -29,19 +29,19 @@ func pauseXCall(ctx context.Context, s shared, c chain) error {

// pauseXCallTo pauses xcalls to a chain, on a chain.
func pauseXCallTo(ctx context.Context, s shared, c chain, toID uint64) error {
to, ok := s.network.Chain(toID)
to, ok := s.testnet.EVMChainByID(toID)
if !ok {
return errors.New("chain id not in network", "chain", toID)
}

log.Info(ctx, "Pausing xcall...", "chain", c.Name, "to", to.Name, "addr", c.PortalAddress)

calldata, err := adminABI.Pack("pauseXCallTo", s.manager, c.PortalAddress, to.ID)
calldata, err := adminABI.Pack("pauseXCallTo", s.manager, c.PortalAddress, to.ChainID)
if err != nil {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -60,7 +60,7 @@ func unpauseXCall(ctx context.Context, s shared, c chain) error {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -72,19 +72,19 @@ func unpauseXCall(ctx context.Context, s shared, c chain) error {

// pauseXCallTo pauses xcalls to a chain, on a chain.
func unpauseXCallTo(ctx context.Context, s shared, c chain, toID uint64) error {
to, ok := s.network.Chain(toID)
to, ok := s.testnet.EVMChainByID(toID)
if !ok {
return errors.New("chain id not in network", "chain", toID)
}

log.Info(ctx, "Unpausing xcall...", "chain", c.Name, "to", to.Name, "addr", c.PortalAddress)

calldata, err := adminABI.Pack("unpauseXCallTo", s.manager, c.PortalAddress, to.ID)
calldata, err := adminABI.Pack("unpauseXCallTo", s.manager, c.PortalAddress, to.ChainID)
if err != nil {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand Down
16 changes: 8 additions & 8 deletions e2e/app/admin/pausexsubmit.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func pauseXSubmit(ctx context.Context, s shared, c chain) error {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -29,19 +29,19 @@ func pauseXSubmit(ctx context.Context, s shared, c chain) error {

// pauseXSubmitFrom pauses xsubmits from a chain, on a chain.
func pauseXSubmitFrom(ctx context.Context, s shared, c chain, fromID uint64) error {
from, ok := s.network.Chain(fromID)
from, ok := s.testnet.EVMChainByID(fromID)
if !ok {
return errors.New("chain id not in network", "chain", fromID)
}

log.Info(ctx, "Pausing xsubmit...", "chain", c.Name, "from", from.Name, "addr", c.PortalAddress)

calldata, err := adminABI.Pack("pauseXSubmitFrom", s.manager, c.PortalAddress, from.ID)
calldata, err := adminABI.Pack("pauseXSubmitFrom", s.manager, c.PortalAddress, from.ChainID)
if err != nil {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -60,7 +60,7 @@ func unpauseXSubmit(ctx context.Context, s shared, c chain) error {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand All @@ -72,19 +72,19 @@ func unpauseXSubmit(ctx context.Context, s shared, c chain) error {

// pauseXSubmitFrom pauses xsubmits from a chain, on a chain.
func unpauseXSubmitFrom(ctx context.Context, s shared, c chain, fromID uint64) error {
from, ok := s.network.Chain(fromID)
from, ok := s.testnet.EVMChainByID(fromID)
if !ok {
return errors.New("chain id not in network", "chain", fromID)
}

log.Info(ctx, "Unpausing xsubmit...", "chain", c.Name, "from", from.Name, "addr", c.PortalAddress)

calldata, err := adminABI.Pack("unpauseXSubmitFrom", s.manager, c.PortalAddress, from.ID)
calldata, err := adminABI.Pack("unpauseXSubmitFrom", s.manager, c.PortalAddress, from.ChainID)
if err != nil {
return errors.Wrap(err, "pack calldata", "chain", c.Name)
}

out, err := s.runForge(ctx, c.rpc, calldata, s.manager)
out, err := s.runForge(ctx, c.RPCEndpoint, calldata, s.manager)
if err != nil {
return errors.Wrap(err, "run forge", "out", out, "chain", c.Name)
}
Expand Down
Loading
Loading