public static (TxPriorityContract?Contract, TxPriorityContract.LocalDataSource?DataSource) CreateTxPrioritySources( IAuraConfig config, AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource) { Address.TryParse(config.TxPriorityContractAddress, out Address? txPriorityContractAddress); bool usesTxPriorityContract = txPriorityContractAddress != null; TxPriorityContract?txPriorityContract = null; if (usesTxPriorityContract) { txPriorityContract = new TxPriorityContract(api.AbiEncoder, txPriorityContractAddress, readOnlyTxProcessorSource); } string?auraConfigTxPriorityConfigFilePath = config.TxPriorityConfigFilePath; bool usesTxPriorityLocalData = auraConfigTxPriorityConfigFilePath != null; if (usesTxPriorityLocalData) { api.TxPriorityContractLocalDataSource ??= new TxPriorityContract.LocalDataSource(auraConfigTxPriorityConfigFilePath, api.EthereumJsonSerializer, api.FileSystem, api.LogManager); } return(txPriorityContract, api.TxPriorityContractLocalDataSource); }
public async Task With_steps_from_here_AuRa() { AuRaNethermindApi runnerContext = new AuRaNethermindApi( new ConfigProvider(), new EthereumJsonSerializer(), LimboLogs.Instance); IEthereumStepsLoader stepsLoader = new EthereumStepsLoader(GetType().Assembly); EthereumStepsManager stepsManager = new EthereumStepsManager( stepsLoader, runnerContext, LimboLogs.Instance); using CancellationTokenSource source = new CancellationTokenSource(TimeSpan.FromSeconds(1)); try { await stepsManager.InitializeAll(source.Token); } catch (Exception e) { if (!(e is OperationCanceledException)) { throw new AssertionFailedException($"Exception should be {nameof(OperationCanceledException)}"); } } }
public static ITxFilter?CreateTxPermissionFilter(AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource) { if (api.ChainSpec == null) { throw new StepDependencyException(nameof(api.ChainSpec)); } if (api.ChainSpec.Parameters.TransactionPermissionContract != null) { api.TxFilterCache ??= new PermissionBasedTxFilter.Cache(); var txPermissionFilter = new PermissionBasedTxFilter( new VersionedTransactionPermissionContract(api.AbiEncoder, api.ChainSpec.Parameters.TransactionPermissionContract, api.ChainSpec.Parameters.TransactionPermissionContractTransition ?? 0, readOnlyTxProcessorSource, api.TransactionPermissionContractVersions, api.LogManager), api.TxFilterCache, api.LogManager); return(txPermissionFilter); } return(null); }
private static ITxFilter CreateBaseAuRaTxFilter( IMiningConfig miningConfig, AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource, IDictionaryContractDataStore <TxPriorityContract.Destination>?minGasPricesContractDataStore, ISpecProvider specProvider) { IMinGasPriceTxFilter minGasPriceTxFilter = CreateStandardMinGasPriceTxFilter(miningConfig, specProvider); ITxFilter gasPriceTxFilter = minGasPriceTxFilter; if (minGasPricesContractDataStore != null) { gasPriceTxFilter = new MinGasPriceContractTxFilter(minGasPriceTxFilter, minGasPricesContractDataStore); } Address?registrar = api.ChainSpec?.Parameters.Registrar; if (registrar != null) { RegisterContract registerContract = new(api.AbiEncoder, registrar, readOnlyTxProcessorSource); CertifierContract certifierContract = new(api.AbiEncoder, registerContract, readOnlyTxProcessorSource); return(new TxCertifierFilter(certifierContract, gasPriceTxFilter, specProvider, api.LogManager)); } return(gasPriceTxFilter); }
public static ITxFilter CreateAuRaTxFilter( AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource, ISpecProvider specProvider) { ITxFilter baseAuRaTxFilter = CreateBaseAuRaTxFilter(api, readOnlyTxProcessorSource, specProvider); ITxFilter?txPermissionFilter = CreateTxPermissionFilter(api, readOnlyTxProcessorSource); return(txPermissionFilter != null ? new CompositeTxFilter(baseAuRaTxFilter, txPermissionFilter) : baseAuRaTxFilter); }
public static ITxFilter CreateAuRaTxFilter( IMiningConfig miningConfig, AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource, IDictionaryContractDataStore <TxPriorityContract.Destination>?minGasPricesContractDataStore) { ITxFilter baseAuRaTxFilter = CreateBaseAuRaTxFilter(miningConfig, api, readOnlyTxProcessorSource, minGasPricesContractDataStore); ITxFilter?txPermissionFilter = CreateTxPermissionFilter(api, readOnlyTxProcessorSource); return(txPermissionFilter != null ? new CompositeTxFilter(baseAuRaTxFilter, txPermissionFilter) : baseAuRaTxFilter); }
public static DictionaryContractDataStore <TxPriorityContract.Destination>?CreateMinGasPricesDataStore( AuRaNethermindApi api, TxPriorityContract?txPriorityContract, TxPriorityContract.LocalDataSource?localDataSource) { return(txPriorityContract != null || localDataSource != null ? new DictionaryContractDataStore <TxPriorityContract.Destination>( new TxPriorityContract.DestinationSortedListContractDataStoreCollection(), txPriorityContract?.MinGasPrices, api.BlockTree, api.ReceiptFinder, api.LogManager, localDataSource?.GetMinGasPricesLocalDataSource()) : null); }
private static ITxFilter CreateBaseAuRaTxFilter( AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource, ISpecProvider specProvider) { Address?registrar = api.ChainSpec?.Parameters.Registrar; if (registrar != null) { RegisterContract registerContract = new(api.AbiEncoder, registrar, readOnlyTxProcessorSource); CertifierContract certifierContract = new(api.AbiEncoder, registerContract, readOnlyTxProcessorSource); return(new TxCertifierFilter(certifierContract, NullTxFilter.Instance, specProvider, api.LogManager)); } return(NullTxFilter.Instance); }
protected override BlockProcessor NewBlockProcessor(AuRaNethermindApi api, ITxFilter txFilter, ContractRewriter contractRewriter) { return(new AuRaMergeBlockProcessor( _api.PoSSwitcher !, _api.SpecProvider !, _api.BlockValidator !, _api.RewardCalculatorSource !.Get(_api.TransactionProcessor !), new BlockProcessor.BlockValidationTransactionsExecutor(_api.TransactionProcessor !, _api.StateProvider !), _api.StateProvider !, _api.StorageProvider !, _api.ReceiptStorage !, _api.LogManager, _api.BlockTree !, txFilter, GetGasLimitCalculator(), contractRewriter )); }
public InitializeNetworkAuRa(AuRaNethermindApi context) : base(context) { }
public StartBlockProducerAuRa(AuRaNethermindApi api) : base(api) { _api = api; }
public InitializeBlockchainAuRa(AuRaNethermindApi api) : base(api) { _api = api; _auraConfig = NethermindApi.Config <IAuraConfig>(); }
public InitRlpAuRa(AuRaNethermindApi context) : base(context) { }
public InitializeNetworkAuRa(AuRaNethermindApi api) : base(api) { }
public StepCAuRa(AuRaNethermindApi runnerContext) { }
public StartBlockProducerAuRa(AuRaNethermindApi api) : base(api) { _api = api; _auraConfig = NethermindApi.Config <IAuraConfig>(); }
public LoadGenesisBlockAuRa(AuRaNethermindApi api) : base(api) { _api = api; }
public StartBlockProcessorAuRa(AuRaNethermindApi api) : base(api) { }
public InitializeBlockchainAuRa(AuRaNethermindApi api) : base(api) { _api = api; }