eoa

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2024 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Overview

Package eoa defines well-known (non-fireblocks) eoa private keys used in an omni network.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Address

func Address(network netconf.ID, role Role) (common.Address, bool)

Address returns the address for the EOA identified by the network and role.

func DevAccount0 added in v0.11.0

func DevAccount0() common.Address

func DevAccount1 added in v0.11.0

func DevAccount1() common.Address

func DevAccount2 added in v0.11.0

func DevAccount2() common.Address

func DevAccount3 added in v0.11.0

func DevAccount3() common.Address

func DevAccount4 added in v0.11.0

func DevAccount4() common.Address

func DevAccount5 added in v0.11.0

func DevAccount5() common.Address

func DevAccount6 added in v0.11.0

func DevAccount6() common.Address

func DevAccount7 added in v0.11.0

func DevAccount7() common.Address

func DevAccount8 added in v0.11.0

func DevAccount8() common.Address

func DevAccount9 added in v0.11.0

func DevAccount9() common.Address

func DevAccounts added in v0.11.0

func DevAccounts() []common.Address

func DevPrivateKey added in v0.11.0

func DevPrivateKey(account common.Address) (*ecdsa.PrivateKey, bool)

func DevPrivateKey0 added in v0.11.0

func DevPrivateKey0() *ecdsa.PrivateKey

func DevPrivateKey1 added in v0.11.0

func DevPrivateKey1() *ecdsa.PrivateKey

func DevPrivateKey2 added in v0.11.0

func DevPrivateKey2() *ecdsa.PrivateKey

func DevPrivateKey3 added in v0.11.0

func DevPrivateKey3() *ecdsa.PrivateKey

func DevPrivateKey4 added in v0.11.0

func DevPrivateKey4() *ecdsa.PrivateKey

func DevPrivateKey5 added in v0.11.0

func DevPrivateKey5() *ecdsa.PrivateKey

func DevPrivateKey6 added in v0.11.0

func DevPrivateKey6() *ecdsa.PrivateKey

func DevPrivateKey7 added in v0.11.0

func DevPrivateKey7() *ecdsa.PrivateKey

func DevPrivateKey8 added in v0.11.0

func DevPrivateKey8() *ecdsa.PrivateKey

func DevPrivateKey9 added in v0.11.0

func DevPrivateKey9() *ecdsa.PrivateKey

func DevPrivateKeys added in v0.11.0

func DevPrivateKeys() []*ecdsa.PrivateKey

func IsDevAccount added in v0.11.0

func IsDevAccount(addr common.Address) bool

func MustAddress

func MustAddress(network netconf.ID, role Role) common.Address

MustAddress returns the address for the EOA identified by the network and role.

func MustAddresses

func MustAddresses(network netconf.ID, roles ...Role) []common.Address

MustAddresses returns the addresses for the network and roles.

func PrivateKey

func PrivateKey(ctx context.Context, network netconf.ID, role Role) (*ecdsa.PrivateKey, error)

PrivateKey returns the private key for the EOA identified by the network and role.

Types

type Account

type Account struct {
	Type    Type
	Role    Role
	Address common.Address
	// contains filtered or unexported fields
}

Account defines a EOA account used within the Omni network.

func AccountForRole

func AccountForRole(network netconf.ID, role Role) (Account, bool)

AccountForRole returns the account for the network and role.

func AllAccounts

func AllAccounts(network netconf.ID) []Account

AllAccounts returns all accounts for the network.

type FundThresholds

type FundThresholds struct {
	// contains filtered or unexported fields
}

func GetFundThresholds

func GetFundThresholds(token tokens.Token, network netconf.ID, role Role) (FundThresholds, bool)

func (FundThresholds) MinBalance

func (t FundThresholds) MinBalance() *big.Int

func (FundThresholds) TargetBalance

func (t FundThresholds) TargetBalance() *big.Int

type Role

type Role string
const (
	// RoleCold is the main cold wallet with most security, it funds the hot wallet.
	RoleCold Role = "cold"
	// RoleHot is used to fund omni accounts on all networks.
	RoleHot Role = "hot"
	// RoleRelayer is the relayer eoa on all networks. It creates submissions to portals.
	RoleRelayer Role = "relayer"
	// RoleMonitor is the monitor service eoa on all networks. It is used by the feemanager.
	RoleMonitor Role = "monitor"
	// RoleCreate3Deployer is used to deploy our create3 factories on all chains. This MUST only be done once with nonce 0.
	RoleCreate3Deployer Role = "create3-deployer"
	// RoleDeployer is used to deploy official omni contracts on all chains.
	RoleDeployer Role = "deployer"
	// RoleManager is used to manage the omni contracts on all chains. It has admin privileges on official omni contracts.
	// The manager can make non-compromising managing actions:
	// - managing validator allow list
	// - pausing / unpausing contracts
	// - configuration of contracts.
	RoleManager Role = "manager"
	// RoleUpgrader is the owner of each proxy contract and can trigger upgrade actions.
	// The upgrader can do compromising destructive actions:
	// - trigger / cancel upgrade actions
	// - trigger Halo upgrades
	// - register new portals.
	RoleUpgrader Role = "upgrader"
	// RoleTester is used for general tasks and testing in non-mainnet networks.
	RoleTester Role = "tester"
	// RoleXCaller is used for testing xcalls on a network.
	RoleXCaller Role = "xcaller"
	// RolveSolver is the allowed solver for solve inbox / outboxes.
	RoleSolver Role = "solver"
)

func AllRoles

func AllRoles() []Role

func (Role) Verify

func (r Role) Verify() error

type Type

type Type string
const (
	TypeRemote    Type = "remote"     // stored in (fireblocks) accessible via API to sign
	TypeSecret    Type = "secret"     // stored in GCP can be downloaded to disk
	TypeWellKnown Type = "well-known" // well-known eoa private keys in the repo
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL