protected override BlockProcessor CreateBlockProcessor() { var validator = new AuRaParameters.Validator() { Addresses = TestItem.Addresses, ValidatorType = AuRaParameters.ValidatorType.List }; TransactionPermissionContractVersions = new LruCache <Keccak, UInt256>(PermissionBasedTxFilter.Cache.MaxCacheSize, nameof(TransactionPermissionContract)); var transactionPermissionContract = new VersionedTransactionPermissionContract(new AbiEncoder(), _contractAddress, 1, new ReadOnlyTxProcessorSource(DbProvider, BlockTree, SpecProvider, LimboLogs.Instance), TransactionPermissionContractVersions); TxPermissionFilterCache = new PermissionBasedTxFilter.Cache(); PermissionBasedTxFilter = new PermissionBasedTxFilter(transactionPermissionContract, TxPermissionFilterCache, State, LimboLogs.Instance); return(new AuRaBlockProcessor( SpecProvider, Always.Valid, new RewardCalculator(SpecProvider), TxProcessor, StateDb, CodeDb, State, Storage, TxPool, ReceiptStorage, LimboLogs.Instance, BlockTree, PermissionBasedTxFilter)); }
public bool allows_transactions_before_transitions(long blockNumber) { var transactionPermissionContract = new VersionedTransactionPermissionContract(new AbiEncoder(), TestItem.AddressA, 5, Substitute.For <IReadOnlyTransactionProcessorSource>(), new LruCacheWithRecycling <Keccak, UInt256>(100, "TestCache")); var filter = new TxPermissionFilter(transactionPermissionContract, new ITxPermissionFilter.Cache(), Substitute.For <IStateProvider>(), LimboLogs.Instance); return(filter.IsAllowed(Build.A.Transaction.WithSenderAddress(TestItem.AddressB).TestObject, Build.A.BlockHeader.WithNumber(blockNumber).TestObject)); }
protected override BlockProcessor CreateBlockProcessor() { var validator = new AuRaParameters.Validator() { Addresses = TestItem.Addresses, ValidatorType = AuRaParameters.ValidatorType.List }; var transactionPermissionContract = new VersionedTransactionPermissionContract(TxProcessor, new AbiEncoder(), _contractAddress, 1, new ReadOnlyTransactionProcessorSource(DbProvider, BlockTree, SpecProvider, LimboLogs.Instance)); TxPermissionFilterCache = new ITxPermissionFilter.Cache(); TxPermissionFilter = new TxPermissionFilter(transactionPermissionContract, TxPermissionFilterCache, State, LimboLogs.Instance); return(new AuRaBlockProcessor(SpecProvider, Always.Valid, new RewardCalculator(SpecProvider), TxProcessor, StateDb, CodeDb, State, Storage, TxPool, ReceiptStorage, LimboLogs.Instance, BlockTree, TxPermissionFilter)); }
public bool allows_transactions_before_transitions(long blockNumber) { var transactionPermissionContract = new VersionedTransactionPermissionContract( Substitute.For <ITransactionProcessor>(), new AbiEncoder(), TestItem.AddressA, 5, Substitute.For <IReadOnlyTransactionProcessorSource>()); var filter = new TxPermissionFilter(transactionPermissionContract, new ITxPermissionFilter.Cache(), Substitute.For <IStateProvider>(), LimboLogs.Instance); try { return(filter.IsAllowed(Build.A.Transaction.TestObject, Build.A.BlockHeader.WithNumber(blockNumber).TestObject)); } catch (Exception) { // TODO: previously it was throwing exceptions as well return(false); } }