Documentation
¶
Index ¶
- Constants
- Variables
- func GetEVMTriggerLog(ctx context.Context, ethClient *ethclient.Client) (*evmpb.Log, error)
- func GetEVMTriggerLogFromValues(ctx context.Context, ethClient *ethclient.Client, txHashStr string, ...) (*evmpb.Log, error)
- func RunRPCHealthCheck(clients map[uint64]chain.ChainClient, experimentalSelectors map[uint64]bool) error
- type EVMChainCapabilities
- type EVMChainLimits
- type EVMChainType
- func (ct *EVMChainType) CollectCLIInputs(v *viper.Viper) map[string]string
- func (ct *EVMChainType) ExecuteTrigger(ctx context.Context, selector uint64, registrationID string, ...) error
- func (ct *EVMChainType) Name() string
- func (ct *EVMChainType) ParseTriggerChainSelector(triggerID string) (uint64, bool)
- func (ct *EVMChainType) RegisterCapabilities(ctx context.Context, cfg chain.CapabilityConfig) ([]services.Service, error)
- func (ct *EVMChainType) ResolveClients(v *viper.Viper) (chain.ResolvedChains, error)
- func (ct *EVMChainType) ResolveKey(creSettings *settings.Settings, broadcast bool) (interface{}, error)
- func (ct *EVMChainType) ResolveTriggerData(ctx context.Context, selector uint64, params chain.TriggerParams) (interface{}, error)
- func (ct *EVMChainType) RunHealthCheck(resolved chain.ResolvedChains) error
- func (ct *EVMChainType) SupportedChains() []chain.ChainConfig
- func (ct *EVMChainType) Supports(selector uint64) bool
- type LimitedEVMChain
- func (l *LimitedEVMChain) AckEvent(ctx context.Context, triggerId string, eventId string, method string) caperrors.Error
- func (l *LimitedEVMChain) BalanceAt(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.BalanceAtReply], caperrors.Error)
- func (l *LimitedEVMChain) CallContract(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.CallContractReply], caperrors.Error)
- func (l *LimitedEVMChain) ChainSelector() uint64
- func (l *LimitedEVMChain) Close() error
- func (l *LimitedEVMChain) Description() string
- func (l *LimitedEVMChain) EstimateGas(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.EstimateGasReply], caperrors.Error)
- func (l *LimitedEVMChain) FilterLogs(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.FilterLogsReply], caperrors.Error)
- func (l *LimitedEVMChain) GetTransactionByHash(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.GetTransactionByHashReply], ...)
- func (l *LimitedEVMChain) GetTransactionReceipt(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.GetTransactionReceiptReply], ...)
- func (l *LimitedEVMChain) HeaderByNumber(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.HeaderByNumberReply], caperrors.Error)
- func (l *LimitedEVMChain) HealthReport() map[string]error
- func (l *LimitedEVMChain) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
- func (l *LimitedEVMChain) Name() string
- func (l *LimitedEVMChain) Ready() error
- func (l *LimitedEVMChain) RegisterLogTrigger(ctx context.Context, triggerID string, metadata commonCap.RequestMetadata, ...) (<-chan commonCap.TriggerAndId[*evmcappb.Log], caperrors.Error)
- func (l *LimitedEVMChain) Start(ctx context.Context) error
- func (l *LimitedEVMChain) UnregisterLogTrigger(ctx context.Context, triggerID string, metadata commonCap.RequestMetadata, ...) caperrors.Error
- func (l *LimitedEVMChain) WriteReport(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*evmcappb.WriteReportReply], caperrors.Error)
Constants ¶
const ( TriggerInputTxHash = "evm-tx-hash" TriggerInputEventIndex = "evm-event-index" )
CLI input keys consumed from chain.TriggerParams.ChainTypeInputs.
Variables ¶
var SupportedChains = []chain.ChainConfig{ {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA.Selector, Forwarder: "0x15fC6ae953E024d975e77382eEeC56A9101f9F88"}, {Selector: chainselectors.ETHEREUM_MAINNET.Selector, Forwarder: "0xa3d1ad4ac559a6575a114998affb2fb2ec97a7d9"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_BASE_1.Selector, Forwarder: "0x82300bd7c3958625581cc2f77bc6464dcecdf3e5"}, {Selector: chainselectors.ETHEREUM_MAINNET_BASE_1.Selector, Forwarder: "0x5e342a8438b4f5d39e72875fcee6f76b39cce548"}, {Selector: chainselectors.AVALANCHE_TESTNET_FUJI.Selector, Forwarder: "0x2e7371a5d032489e4f60216d8d898a4c10805963"}, {Selector: chainselectors.AVALANCHE_MAINNET.Selector, Forwarder: "0xdc21e279934ff6721cadfdd112dafb3261f09a2c"}, {Selector: chainselectors.POLYGON_TESTNET_AMOY.Selector, Forwarder: "0x3675a5eb2286a3f87e8278fc66edf458a2e3bb74"}, {Selector: chainselectors.POLYGON_MAINNET.Selector, Forwarder: "0xf458d621885e29a5003ea9bbba5280d54e19b1ce"}, {Selector: chainselectors.BINANCE_SMART_CHAIN_TESTNET.Selector, Forwarder: "0xa238e42cb8782808dbb2f37e19859244ec4779b0"}, {Selector: chainselectors.BINANCE_SMART_CHAIN_MAINNET.Selector, Forwarder: "0x6f3239bbb26e98961e1115aba83f8a282e5508c8"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_ARBITRUM_1.Selector, Forwarder: "0xd41263567ddfead91504199b8c6c87371e83ca5d"}, {Selector: chainselectors.ETHEREUM_MAINNET_ARBITRUM_1.Selector, Forwarder: "0xd770499057619c9a76205fd4168161cf94abc532"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_OPTIMISM_1.Selector, Forwarder: "0xa2888380dff3704a8ab6d1cd1a8f69c15fea5ee3"}, {Selector: chainselectors.ETHEREUM_MAINNET_OPTIMISM_1.Selector, Forwarder: "0x9119a1501550ed94a3f2794038ed9258337afa18"}, {Selector: chainselectors.PRIVATE_TESTNET_ANDESITE.Selector, Forwarder: "0xcF4629d8DC7a5fa17F4D77233F5b953225669821"}, {Selector: chainselectors.ETHEREUM_MAINNET_ZKSYNC_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_ZKSYNC_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.JOVAY_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.JOVAY_MAINNET.Selector, Forwarder: "0x2B3068C4B288A2CD1f8B3613b8f33ef7cEecadC4"}, {Selector: chainselectors.PHAROS_ATLANTIC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.PHAROS_MAINNET.Selector, Forwarder: "0x2B3068C4B288A2CD1f8B3613b8f33ef7cEecadC4"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_WORLDCHAIN_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_MAINNET_WORLDCHAIN_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.PLASMA_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.PLASMA_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_LINEA_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_MAINNET_LINEA_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.INK_TESTNET_SEPOLIA.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_MAINNET_INK_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.HYPERLIQUID_TESTNET.Selector, Forwarder: "0xB27fA1c28288c50542527F64BCda22C9FbAc24CB"}, {Selector: chainselectors.HYPERLIQUID_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.APECHAIN_TESTNET_CURTIS.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ARC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.XLAYER_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_MAINNET_XLAYER_1.Selector, Forwarder: "0x2B3068C4B288A2CD1f8B3613b8f33ef7cEecadC4"}, {Selector: chainselectors.MEGAETH_TESTNET_2.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.MEGAETH_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.CELO_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.GNOSIS_CHAIN_TESTNET_CHIADO.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.GNOSIS_CHAIN_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.CRONOS_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_MANTLE_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_MAINNET_MANTLE_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.TAC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_UNICHAIN_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_TESTNET_SEPOLIA_SCROLL_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.ETHEREUM_MAINNET_SCROLL_1.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.SONIC_TESTNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.SONIC_MAINNET.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, {Selector: chainselectors.DTCC_TESTNET_ANDESITE.Selector, Forwarder: "0x6E9EE680ef59ef64Aa8C7371279c27E496b5eDc1"}, }
SupportedChains is the canonical list of EVM chains supported for simulation.
Functions ¶
func GetEVMTriggerLog ¶
GetEVMTriggerLog prompts user for EVM trigger data and fetches the log interactively.
func GetEVMTriggerLogFromValues ¶
func GetEVMTriggerLogFromValues(ctx context.Context, ethClient *ethclient.Client, txHashStr string, eventIndex uint64) (*evmpb.Log, error)
GetEVMTriggerLogFromValues fetches a log given tx hash string and event index. Unlike GetEVMTriggerLog (interactive), this does not emit ui.Success messages to keep non-interactive/CI output clean.
func RunRPCHealthCheck ¶
func RunRPCHealthCheck(clients map[uint64]chain.ChainClient, experimentalSelectors map[uint64]bool) error
RunRPCHealthCheck validates RPC connectivity for all configured EVM clients. The experimentalSelectors set identifies which selectors are experimental chains.
Types ¶
type EVMChainCapabilities ¶
type EVMChainCapabilities struct {
EVMChains map[uint64]*fakes.FakeEVMChain
}
EVMChainCapabilities holds the EVM chain capability servers created for simulation.
func NewEVMChainCapabilities ¶
func NewEVMChainCapabilities( ctx context.Context, lggr logger.Logger, registry *capabilities.Registry, clients map[uint64]*ethclient.Client, forwarders map[uint64]string, privateKey *ecdsa.PrivateKey, dryRunChainWrite bool, limits EVMChainLimits, ) (*EVMChainCapabilities, error)
NewEVMChainCapabilities creates EVM chain capability servers and registers them with the capability registry. Cron and HTTP triggers are not created here — they are chain-agnostic and managed by the simulate command directly.
func (*EVMChainCapabilities) Close ¶
func (c *EVMChainCapabilities) Close() error
Close closes all EVM chains.
type EVMChainLimits ¶
EVMChainLimits is the EVM-scoped limit contract LimitedEVMChain enforces. It extends chain.Limits with EVM-specific accessors (e.g. gas limit) so non-EVM chain types cannot accidentally depend on EVM semantics.
type EVMChainType ¶
type EVMChainType struct {
// contains filtered or unexported fields
}
EVMChainType implements chain.ChainType for EVM-based blockchains.
func (*EVMChainType) CollectCLIInputs ¶
func (ct *EVMChainType) CollectCLIInputs(v *viper.Viper) map[string]string
func (*EVMChainType) ExecuteTrigger ¶
func (*EVMChainType) Name ¶
func (ct *EVMChainType) Name() string
func (*EVMChainType) ParseTriggerChainSelector ¶
func (ct *EVMChainType) ParseTriggerChainSelector(triggerID string) (uint64, bool)
func (*EVMChainType) RegisterCapabilities ¶
func (ct *EVMChainType) RegisterCapabilities(ctx context.Context, cfg chain.CapabilityConfig) ([]services.Service, error)
func (*EVMChainType) ResolveClients ¶
func (ct *EVMChainType) ResolveClients(v *viper.Viper) (chain.ResolvedChains, error)
func (*EVMChainType) ResolveKey ¶
func (ct *EVMChainType) ResolveKey(creSettings *settings.Settings, broadcast bool) (interface{}, error)
ResolveKey parses the user's ECDSA private key from settings. When broadcast is true, an invalid or default-sentinel key is a hard error. Otherwise a sentinel key is used with a warning so non-broadcast simulations can run.
func (*EVMChainType) ResolveTriggerData ¶
func (ct *EVMChainType) ResolveTriggerData(ctx context.Context, selector uint64, params chain.TriggerParams) (interface{}, error)
ResolveTriggerData fetches the EVM log payload for the given selector from CLI-supplied or interactively-prompted inputs.
func (*EVMChainType) RunHealthCheck ¶
func (ct *EVMChainType) RunHealthCheck(resolved chain.ResolvedChains) error
func (*EVMChainType) SupportedChains ¶
func (ct *EVMChainType) SupportedChains() []chain.ChainConfig
func (*EVMChainType) Supports ¶
func (ct *EVMChainType) Supports(selector uint64) bool
Supports reports whether an EVM chain capability is live for the selector.
type LimitedEVMChain ¶
type LimitedEVMChain struct {
// contains filtered or unexported fields
}
LimitedEVMChain wraps an evmserver.ClientCapability and enforces chain write report size and gas limits.
func NewLimitedEVMChain ¶
func NewLimitedEVMChain(inner evmserver.ClientCapability, limits EVMChainLimits) *LimitedEVMChain
func (*LimitedEVMChain) BalanceAt ¶
func (l *LimitedEVMChain) BalanceAt(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.BalanceAtRequest) (*commonCap.ResponseAndMetadata[*evmcappb.BalanceAtReply], caperrors.Error)
func (*LimitedEVMChain) CallContract ¶
func (l *LimitedEVMChain) CallContract(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.CallContractRequest) (*commonCap.ResponseAndMetadata[*evmcappb.CallContractReply], caperrors.Error)
func (*LimitedEVMChain) ChainSelector ¶
func (l *LimitedEVMChain) ChainSelector() uint64
func (*LimitedEVMChain) Close ¶
func (l *LimitedEVMChain) Close() error
func (*LimitedEVMChain) Description ¶
func (l *LimitedEVMChain) Description() string
func (*LimitedEVMChain) EstimateGas ¶
func (l *LimitedEVMChain) EstimateGas(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.EstimateGasRequest) (*commonCap.ResponseAndMetadata[*evmcappb.EstimateGasReply], caperrors.Error)
func (*LimitedEVMChain) FilterLogs ¶
func (l *LimitedEVMChain) FilterLogs(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.FilterLogsRequest) (*commonCap.ResponseAndMetadata[*evmcappb.FilterLogsReply], caperrors.Error)
func (*LimitedEVMChain) GetTransactionByHash ¶
func (l *LimitedEVMChain) GetTransactionByHash(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.GetTransactionByHashRequest) (*commonCap.ResponseAndMetadata[*evmcappb.GetTransactionByHashReply], caperrors.Error)
func (*LimitedEVMChain) GetTransactionReceipt ¶
func (l *LimitedEVMChain) GetTransactionReceipt(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.GetTransactionReceiptRequest) (*commonCap.ResponseAndMetadata[*evmcappb.GetTransactionReceiptReply], caperrors.Error)
func (*LimitedEVMChain) HeaderByNumber ¶
func (l *LimitedEVMChain) HeaderByNumber(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.HeaderByNumberRequest) (*commonCap.ResponseAndMetadata[*evmcappb.HeaderByNumberReply], caperrors.Error)
func (*LimitedEVMChain) HealthReport ¶
func (l *LimitedEVMChain) HealthReport() map[string]error
func (*LimitedEVMChain) Initialise ¶
func (l *LimitedEVMChain) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
func (*LimitedEVMChain) Name ¶
func (l *LimitedEVMChain) Name() string
func (*LimitedEVMChain) Ready ¶
func (l *LimitedEVMChain) Ready() error
func (*LimitedEVMChain) RegisterLogTrigger ¶
func (l *LimitedEVMChain) RegisterLogTrigger(ctx context.Context, triggerID string, metadata commonCap.RequestMetadata, input *evmcappb.FilterLogTriggerRequest) (<-chan commonCap.TriggerAndId[*evmcappb.Log], caperrors.Error)
func (*LimitedEVMChain) UnregisterLogTrigger ¶
func (l *LimitedEVMChain) UnregisterLogTrigger(ctx context.Context, triggerID string, metadata commonCap.RequestMetadata, input *evmcappb.FilterLogTriggerRequest) caperrors.Error
func (*LimitedEVMChain) WriteReport ¶
func (l *LimitedEVMChain) WriteReport(ctx context.Context, metadata commonCap.RequestMetadata, input *evmcappb.WriteReportRequest) (*commonCap.ResponseAndMetadata[*evmcappb.WriteReportReply], caperrors.Error)