Exemplo n.º 1
0
 public NodeServices(DataFolder dataFolder, ChainIndexer chainIndexer, Network network,
                     IBroadcasterManager broadcasterManager, ILoggerFactory loggerFactory,
                     INodeLifetime nodeLifetime, ISignals signals, IBlockStore blockStore,
                     ITimeSyncBehaviorState timeSyncBehaviorState, IInitialBlockDownloadState initialBlockDownloadState,
                     IBlockProvider blockProvider, IConsensusManager consensusManager, IStakeChain stakeChain,
                     ICoinView coinView, IDateTimeProvider dateTimeProvider, IChainState chainState)
 {
     C.Network = network;
     Log.SetLogger(loggerFactory.CreateLogger(nameof(X1Wallet)));
     this.LoggerFactory             = loggerFactory;
     this.DataFolder                = dataFolder;
     this.ChainIndexer              = chainIndexer;
     this.BroadcasterManager        = broadcasterManager;
     this.NodeLifetime              = nodeLifetime;
     this.InitialBlockDownloadState = initialBlockDownloadState;
     this.Signals               = signals;
     this.BlockStore            = blockStore;
     this.TimeSyncBehaviorState = timeSyncBehaviorState;
     this.BlockProvider         = blockProvider;
     this.ConsensusManager      = consensusManager;
     this.PosCoinviewRule       = consensusManager?.ConsensusRules.GetRule <PosCoinviewRule>();
     this.StakeChain            = stakeChain;
     this.DateTimeProvider      = dateTimeProvider;
     this.CoinView              = coinView;
     this.ChainState            = chainState;
 }
Exemplo n.º 2
0
        public void Test()
        {
            var posCoinviewRule = new PosCoinviewRule {
                Parent = this.InitializeConsensusRules()
            };

            posCoinviewRule.Logger = new Mock <ILogger>().Object;
            posCoinviewRule.Initialize();

            var network       = posCoinviewRule.Parent.Network;
            var blockInterval = network.Consensus.PosRewardReductionBlockInterval;

            Assert.Equal(new Money(15, MoneyUnit.BTC), posCoinviewRule.GetProofOfStakeReward(500));
            Assert.Equal(new Money(13.875m, MoneyUnit.BTC), posCoinviewRule.GetProofOfStakeReward(500 + blockInterval));
            Assert.Equal(new Money(12.83437500m, MoneyUnit.BTC), posCoinviewRule.GetProofOfStakeReward(500 + (blockInterval * 2)));
            Assert.Equal(new Money(11.87179687m, MoneyUnit.BTC), posCoinviewRule.GetProofOfStakeReward(500 + (blockInterval * 3)));
            Assert.Equal(new Money(10.98141210m, MoneyUnit.BTC), posCoinviewRule.GetProofOfStakeReward(500 + (blockInterval * 4)));
            Assert.Equal(new Money(10.15780620m, MoneyUnit.BTC), posCoinviewRule.GetProofOfStakeReward(500 + (blockInterval * 5)));
        }