Ejemplo n.º 1
0
        public StakePool(StakePoolApiResponse apiResponse)
        {
            Base = apiResponse;

            if (apiResponse.Metadata == null)
            {
                Name = apiResponse.Id;
            }
            else
            {
                Name   = apiResponse.Metadata.Name;
                Ticker = apiResponse.Metadata.Ticker;
            }

            LifeTimeBlocks = apiResponse.Metrics.ProducedBlocks.Quantity;
            Saturation     = apiResponse.Metrics.Saturation;

            ActiveStakeAda    = Convert.ToInt64(BlochChainInfo.GetSaturationAda() * apiResponse.Metrics.Saturation);
            ActiveBlockChance = BlochChainInfo.GetBlockChance(ActiveStakeAda);

            SprdStakeADA = Convert.ToInt64(ActiveStakeAda * 0.23); // Its just a dummy implementaiton with 23 % toDo!
            var missingAda = BlochChainInfo.GetMinimumAdaForOneBlock() - (ActiveStakeAda + SprdStakeADA);

            if (missingAda < 0)
            {
                missingAda = 0;
            }
            MissingAdaForBlock   = Convert.ToInt64(missingAda);
            SprdStakeBlockChance = BlochChainInfo.GetBlockChance(ActiveStakeAda + SprdStakeADA);

            PoolRegistered = DateTime.MinValue; // ToDo
        }
Ejemplo n.º 2
0
        public StakePool(StakePoolApiResponse apiResponse, IEnumerable <SprdPoolInfo> sprdPoolInfos)
        {
            Base = apiResponse;

            if (apiResponse.Metadata == null)
            {
                Name = apiResponse.Id;
            }
            else
            {
                Name   = apiResponse.Metadata.Name;
                Ticker = apiResponse.Metadata.Ticker;
            }

            LifeTimeBlocks = apiResponse.Metrics.ProducedBlocks.Quantity;
            Saturation     = apiResponse.Metrics.Saturation;

            ActiveStakeAda    = Convert.ToInt64(BlochChainInfo.GetSaturationAda() * apiResponse.Metrics.Saturation);
            ActiveBlockChance = BlochChainInfo.GetBlockChance(ActiveStakeAda);

            var sprdPoolInfosForThisPool = sprdPoolInfos.Where(p => p.pool_id == apiResponse.Id).ToList();

            if (sprdPoolInfosForThisPool.Any())
            {
                SprdStakeADA = Convert.ToInt64(sprdPoolInfosForThisPool.Sum(p => p.commited_ada));
            }
            else
            {
                SprdStakeADA = 0;
            }

            var missingAda = BlochChainInfo.GetMinimumAdaForOneBlock() - (ActiveStakeAda + SprdStakeADA);

            if (missingAda < 0)
            {
                missingAda = 0;
            }
            MissingAdaForBlock   = Convert.ToInt64(missingAda);
            SprdStakeBlockChance = BlochChainInfo.GetBlockChance(ActiveStakeAda + SprdStakeADA);

            PoolRegistered = DateTime.MinValue; // ToDo
        }