コード例 #1
0
                public static CoinProfile Create(INTMinerRoot root, MineWorkData mineWorkData, Guid coinId)
                {
                    if (root.CoinSet.TryGetCoin(coinId, out ICoin coin))
                    {
                        var data = GetCoinProfileData(mineWorkData, coin.GetId());
                        if (data == null)
                        {
                            Guid  poolId = Guid.Empty;
                            IPool pool   = root.PoolSet.OrderBy(a => a.SortNumber).FirstOrDefault(a => a.CoinId == coinId);
                            if (pool != null)
                            {
                                poolId = pool.GetId();
                            }
                            string      wallet       = coin.TestWallet;
                            Guid        coinKernelId = Guid.Empty;
                            ICoinKernel coinKernel   = root.CoinKernelSet.OrderBy(a => a.SortNumber).FirstOrDefault(a => a.CoinId == coinId);
                            if (coinKernel != null)
                            {
                                coinKernelId = coinKernel.GetId();
                            }
                            data = CoinProfileData.CreateDefaultData(coinId, poolId, wallet, coinKernelId);
                        }
                        CoinProfile coinProfile = new CoinProfile(mineWorkData, data);

                        return(coinProfile);
                    }
                    else
                    {
                        return(Empty);
                    }
                }
コード例 #2
0
                public static CoinProfile Create(INTMinerRoot root, Guid coinId)
                {
                    if (root.ServerContext.CoinSet.TryGetCoin(coinId, out ICoin coin))
                    {
                        var data = GetCoinProfileData(coin.GetId());
                        if (data == null)
                        {
                            Guid  poolId = Guid.Empty;
                            IPool pool   = root.ServerContext.PoolSet.AsEnumerable().OrderBy(a => a.SortNumber).FirstOrDefault(a => a.CoinId == coinId);
                            if (pool != null)
                            {
                                poolId = pool.GetId();
                            }
                            string wallet       = coin.TestWallet;
                            Guid   coinKernelId = GetDefaultCoinKernelId(coin);
                            data = CoinProfileData.CreateDefaultData(coinId, poolId, wallet, coinKernelId);
                        }
                        else
                        {
                            if (!root.ServerContext.CoinKernelSet.TryGetCoinKernel(data.CoinKernelId, out ICoinKernel coinKernel))
                            {
                                data.CoinKernelId = GetDefaultCoinKernelId(coin);
                            }
                        }
                        CoinProfile coinProfile = new CoinProfile(data);

                        return(coinProfile);
                    }
                    else
                    {
                        return(Empty);
                    }
                }
コード例 #3
0
ファイル: CoinProfileSet.cs プロジェクト: TimeYM/ntminer
            public static CoinProfile Create(INTMinerRoot root, Guid coinId)
            {
                if (root.CoinSet.TryGetCoin(coinId, out ICoin coin))
                {
                    CoinProfile coinProfile = new CoinProfile(root, coin);

                    return(coinProfile);
                }
                else
                {
                    return(Empty);
                }
            }
コード例 #4
0
 public ICoinProfile GetCoinProfile(Guid coinId)
 {
     if (_dicById.ContainsKey(coinId))
     {
         return(_dicById[coinId]);
     }
     lock (_locker) {
         if (_dicById.ContainsKey(coinId))
         {
             return(_dicById[coinId]);
         }
         CoinProfile coinProfile = CoinProfile.Create(_root, _mineWorkData, coinId);
         _dicById.Add(coinId, coinProfile);
         return(coinProfile);
     }
 }
コード例 #5
0
            public void SetCoinProfileProperty(Guid coinId, string propertyName, object value)
            {
                CoinProfile coinProfile = (CoinProfile)GetCoinProfile(coinId);

                coinProfile.SetValue(propertyName, value);
            }