public DeltaStateCalculationStep(IStateProvider stateProvider, IDeltaExecutor deltaExecutor, ILogger logger) { // note that this mus be a different state provider and a different executor _stateProvider = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider)); _deltaExecutor = deltaExecutor ?? throw new ArgumentNullException(nameof(deltaExecutor)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public LedgerTests() { _testScheduler = new TestScheduler(); _fakeRepository = Substitute.For <IAccountRepository>(); _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256")); _mapperProvider = new TestMapperProvider(); _logger = Substitute.For <ILogger>(); _mempool = Substitute.For <IMempool <PublicEntryDao> >(); _deltaHashProvider = Substitute.For <IDeltaHashProvider>(); _receipts = Substitute.For <ITransactionRepository>(); _synchroniser = Substitute.For <ISynchroniser>(); _genesisHash = _hashProvider.ComputeUtf8MultiHash("genesis").ToCid(); _synchroniser.DeltaCache.GenesisHash.Returns(_genesisHash); _executor = Substitute.For <IDeltaExecutor>(); _stateProvider = Substitute.For <IStateProvider>(); _storageProvider = Substitute.For <IStorageProvider>(); _cryptoContext = new FfiWrapper(); _signingContext = new SigningContext { NetworkType = NetworkType.Devnet, SignatureType = SignatureType.TransactionPublic }; _deltaIndexService = new DeltaIndexService(new InMemoryRepository <DeltaIndexDao, string>()); }
public Web3EthApi(IDeltaExecutor deltaExecutor, IStateReader stateReader, IStateRootResolver stateRootResolver, IDeltaResolver deltaResolver) { DeltaExecutor = deltaExecutor ?? throw new ArgumentNullException(nameof(deltaExecutor)); StateReader = stateReader ?? throw new ArgumentNullException(nameof(stateReader)); StateRootResolver = stateRootResolver ?? throw new ArgumentNullException(nameof(stateRootResolver)); DeltaResolver = deltaResolver ?? throw new ArgumentNullException(nameof(deltaResolver)); }
public Ledger(IDeltaExecutor deltaExecutor, IStateProvider stateProvider, IStorageProvider storageProvider, ISnapshotableDb stateDb, ISnapshotableDb codeDb, IAccountRepository accounts, IDeltaHashProvider deltaHashProvider, ILedgerSynchroniser synchroniser, IMempool <PublicEntryDao> mempool, IMapperProvider mapperProvider, ILogger logger) { Accounts = accounts; _deltaExecutor = deltaExecutor; _stateProvider = stateProvider; _storageProvider = storageProvider; _stateDb = stateDb; _codeDb = codeDb; _synchroniser = synchroniser; _mempool = mempool; _mapperProvider = mapperProvider; _logger = logger; _deltaUpdatesSubscription = deltaHashProvider.DeltaHashUpdates.Subscribe(Update); LatestKnownDelta = _synchroniser.DeltaCache.GenesisHash; }
public Web3EthApi(IStateReader stateReader, IDeltaResolver deltaResolver, IDeltaCache deltaCache, IDeltaExecutor executor, IStorageProvider storageProvider, IStateProvider stateProvider, ITransactionRepository receipts, ITransactionReceivedEvent transactionReceived, IPeerRepository peerRepository, IMempool <PublicEntryDao> mempoolRepository, IDfsService dfsService, IHashProvider hashProvider, SyncState syncState, IMapperProvider mapperProvider, IPeerSettings peerSettings) { _receipts = receipts; _transactionReceived = transactionReceived ?? throw new ArgumentNullException(nameof(transactionReceived)); HashProvider = hashProvider; _peerId = peerSettings.PeerId; _mempoolRepository = mempoolRepository; PeerRepository = peerRepository; _mapperProvider = mapperProvider; StateReader = stateReader ?? throw new ArgumentNullException(nameof(stateReader)); DeltaResolver = deltaResolver ?? throw new ArgumentNullException(nameof(deltaResolver)); DeltaCache = deltaCache ?? throw new ArgumentNullException(nameof(deltaCache)); Executor = executor ?? throw new ArgumentNullException(nameof(executor)); StorageProvider = storageProvider ?? throw new ArgumentNullException(nameof(storageProvider)); StateProvider = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider)); DfsService = dfsService; SyncState = syncState; }
public void Init() { _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256")); _random = new Random(1); _randomFactory = Substitute.For <IDeterministicRandomFactory>(); _randomFactory.GetDeterministicRandomFromSeed(Arg.Any <byte[]>()) .Returns(ci => new IsaacRandom(((byte[])ci[0]).ToHex())); _producerId = PeerIdHelper.GetPeerId("producer"); _peerSettings = _producerId.ToSubstitutedPeerSettings(); _previousDeltaHash = _hashProvider.ComputeUtf8MultiHash("previousDelta").ToCid(); _zeroCoinbaseEntry = new CoinbaseEntry { Amount = UInt256.Zero.ToUint256ByteString(), ReceiverPublicKey = _producerId.PublicKey.ToByteString() }; _logger = Substitute.For <ILogger>(); _cache = Substitute.For <IDeltaCache>(); Delta previousDelta = new Delta(); previousDelta.StateRoot = ByteString.CopyFrom(Keccak.EmptyTreeHash.Bytes); _cache.TryGetOrAddConfirmedDelta(Arg.Any <Cid>(), out Arg.Any <Delta>()).Returns(x => { x[1] = previousDelta; return(true); }); _dateTimeProvider = new DateTimeProvider(); IDb codeDb = new MemDb(); ISnapshotableDb stateDb = new StateDb(); ISpecProvider specProvider = new CatalystSpecProvider(); _cryptoContext = new FfiWrapper(); _stateProvider = new StateProvider(stateDb, codeDb, LimboLogs.Instance); IStorageProvider storageProvider = new StorageProvider(stateDb, _stateProvider, LimboLogs.Instance); KatVirtualMachine virtualMachine = new KatVirtualMachine(_stateProvider, storageProvider, new StateUpdateHashProvider(), specProvider, new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256")), new FfiWrapper(), LimboLogs.Instance); _deltaExecutor = new DeltaExecutor(specProvider, _stateProvider, storageProvider, virtualMachine, _cryptoContext, _logger); }
public Ledger(IDeltaExecutor deltaExecutor, IStateProvider stateProvider, IStorageProvider storageProvider, ISnapshotableDb stateDb, IDb codeDb, IAccountRepository accounts, IDeltaIndexService deltaIndexService, ITransactionRepository receipts, IDeltaHashProvider deltaHashProvider, ISynchroniser synchroniser, IMempool <PublicEntryDao> mempool, IMapperProvider mapperProvider, IHashProvider hashProvider, ILogger logger) { Accounts = accounts; _deltaExecutor = deltaExecutor; _stateProvider = stateProvider; _storageProvider = storageProvider; _stateDb = stateDb; _codeDb = codeDb; _mempool = mempool; _mapperProvider = mapperProvider; _hashProvider = hashProvider; _logger = logger; _receipts = receipts; _synchroniser = synchroniser; _deltaUpdatesSubscription = deltaHashProvider.DeltaHashUpdates.Subscribe(Update); _deltaIndexService = deltaIndexService; var latestDeltaIndex = _deltaIndexService.LatestDeltaIndex(); if (latestDeltaIndex != null) { _latestKnownDelta = latestDeltaIndex.Cid; _latestKnownDeltaNumber = (long)latestDeltaIndex.Height; return; } _latestKnownDelta = _synchroniser.DeltaCache.GenesisHash; WriteLatestKnownDelta(_latestKnownDelta); }
public DeltaBuilder(IDeltaTransactionRetriever transactionRetriever, IDeterministicRandomFactory randomFactory, IHashProvider hashProvider, IPeerSettings peerSettings, IDeltaCache deltaCache, IDateTimeProvider dateTimeProvider, IStateProvider stateProvider, IDeltaExecutor deltaExecutor, ILogger logger) { _transactionRetriever = transactionRetriever; _randomFactory = randomFactory; _hashProvider = hashProvider; _producerUniqueId = peerSettings.PeerId; _deltaCache = deltaCache; _dateTimeProvider = dateTimeProvider; _stateProvider = stateProvider; _deltaExecutor = deltaExecutor; _logger = logger; PrepareSteps(); }