public SmartContractConsensusRules(
     ConcurrentChain chain,
     ICheckpoints checkpoints,
     ConsensusSettings consensusSettings,
     IDateTimeProvider dateTimeProvider,
     ISmartContractExecutorFactory executorFactory,
     ILoggerFactory loggerFactory,
     Network network,
     NodeDeployments nodeDeployments,
     ContractStateRepositoryRoot originalStateRoot,
     ILookaheadBlockPuller puller,
     ICoinView utxoSet,
     ISmartContractReceiptStorage receiptStorage)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, utxoSet, puller)
 {
     this.ExecutorFactory   = executorFactory;
     this.OriginalStateRoot = originalStateRoot;
     this.ReceiptStorage    = receiptStorage;
 }
 public SmartContractsController(
     IBroadcasterManager broadcasterManager,
     IConsensusLoop consensus,
     IDateTimeProvider dateTimeProvider,
     ILoggerFactory loggerFactory,
     Network network,
     ISmartContractReceiptStorage receiptStorage,
     ContractStateRepositoryRoot stateRoot,
     IWalletManager walletManager,
     IWalletTransactionHandler walletTransactionHandler)
 {
     this.receiptStorage           = receiptStorage;
     this.stateRoot                = stateRoot;
     this.walletTransactionHandler = walletTransactionHandler;
     this.logger             = loggerFactory.CreateLogger(this.GetType().FullName);
     this.network            = network;
     this.coinType           = (CoinType)network.Consensus.CoinType;
     this.walletManager      = walletManager;
     this.broadcasterManager = broadcasterManager;
 }