Ejemplo n.º 1
0
            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);
            }
        }