public static async Task <ApiResponse> StopEngine()
        {
            ApiResponse response = new ApiResponse();

            try
            {
                BlockChainEngine engine = new BlockChainEngine();
                await engine.StopEngine();
            }
            catch (ApiCustomException ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Api error code is:" + ex.ErrorCode.ToString());
                Logger.Singleton.Error("Api error reason is:" + ex.InnerException.ToString());
                response.Error = new ApiError(ex.ErrorCode, ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Custom error code is:" + ex.HResult);
                Logger.Singleton.Error("Custom error reason is:" + ex.InnerException);
                response.Error = new ApiError(ex.HResult, ex.Message);
            }
            return(response);
        }
        public static async Task <ApiResponse> GetBlockCount()
        {
            ApiResponse response = new ApiResponse();

            try
            {
                BlockChainEngine engine = new BlockChainEngine();
                long             result = await engine.GetBlockCount();

                response.Result = Newtonsoft.Json.Linq.JToken.FromObject(result);
            }
            catch (ApiCustomException ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Api error code is:" + ex.ErrorCode.ToString());
                Logger.Singleton.Error("Api error reason is:" + ex.InnerException.ToString());
                response.Error = new ApiError(ex.ErrorCode, ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Custom error code is:" + ex.HResult);
                Logger.Singleton.Error("Custom error reason is:" + ex.InnerException);
                response.Error = new ApiError(ex.HResult, ex.Message);
            }
            return(response);
        }
예제 #3
0
        public static async Task <ApiResponse> GetBlockHash(long height)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                BlockChainEngine engine = new BlockChainEngine();
                string           result = await engine.GetBlockHash(height);

                if (!string.IsNullOrEmpty(result))
                {
                    response.Result = Newtonsoft.Json.Linq.JToken.FromObject(result);
                }
                else
                {
                    response.Result = null;
                }
            }
            catch (ApiCustomException ex)
            {
                Logger.Singleton.Error(ex.ToString());
                Logger.Singleton.Error("Api error code is:" + ex.ErrorCode.ToString());
                Logger.Singleton.Error("Api error reason is:" + ex.InnerException.ToString());
                response.Error = new ApiError(ex.ErrorCode, ex.ToString());
            }
            catch (Exception ex)
            {
                Logger.Singleton.Error(ex.ToString());
                Logger.Singleton.Error("Custom error code is:" + ex.HResult);
                Logger.Singleton.Error("Custom error reason is:" + ex.InnerException);
                response.Error = new ApiError(ex.HResult, ex.ToString());
            }
            return(response);
        }
        public static async Task <ApiResponse> GenerateNewBlock(string minerName, string address, int format = 0)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                BlockChainEngine engine = new BlockChainEngine();
                BlockInfoOM      result = await engine.GenerateNewBlock(minerName, address, format);

                if (result != null)
                {
                    response.Result = Newtonsoft.Json.Linq.JToken.FromObject(result);
                }
                else
                {
                    response.Result = null;
                }
            }
            catch (ApiCustomException ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Api error code is:" + ex.ErrorCode.ToString());
                Logger.Singleton.Error("Api error reason is:" + ex.InnerException.ToString());
                response.Error = new ApiError(ex.ErrorCode, ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Custom error code is:" + ex.HResult);
                Logger.Singleton.Error("Custom error reason is:" + ex.InnerException);
                response.Error = new ApiError(ex.HResult, ex.Message);
            }
            return(response);
        }
        public async Task GenerateNewBlock()
        {
            BlockChainEngine engine = new BlockChainEngine();
            BlockInfoOM      result = await engine.GenerateNewBlock("Zhangsan", "", 1);

            Assert.IsNotNull(result);
        }
        public async Task GetBlockHeader()
        {
            BlockChainEngine engine = new BlockChainEngine();
            BlockHeaderOM    result = await engine.GetBlockHeader("B6D9FD10775254A86E836F211205D8A21D0F3FF3821C9E6F1F99377BFB4DADFA", 1);

            Assert.IsNotNull(result);
        }
        public async Task GetDifficulty()
        {
            BlockChainEngine  engine = new BlockChainEngine();
            BlockDifficultyOM result = await engine.GetDifficulty();

            Assert.IsNotNull(result);
        }
        public async Task GetBlockHash()
        {
            BlockChainEngine engine = new BlockChainEngine();
            string           result = await engine.GetBlockHash(29);

            Assert.IsNotNull(result);
        }
        public async Task GetBlockCount()
        {
            BlockChainEngine engine = new BlockChainEngine();
            long             result = await engine.GetBlockCount();

            Assert.IsNotNull(result);
        }
        public async Task GetBlockChainStatus()
        {
            BlockChainEngine   engine = new BlockChainEngine();
            BlockChainStatusOM result = await engine.GetBlockChainStatus();

            Assert.IsNotNull(result);
        }
        public async Task GetChainTips()
        {
            BlockChainEngine engine = new BlockChainEngine();

            ChainTipsOM[] result = await engine.GetChainTips();

            Assert.IsNotNull(result);
        }
예제 #12
0
        public static async Task <ApiResponse> GetBlockChainStatus()
        {
            ApiResponse response = new ApiResponse();

            try
            {
                BlockChainEngine   engine = new BlockChainEngine();
                BlockChainStatus   status = new BlockChainStatus();
                BlockChainStatusOM result = await engine.GetBlockChainStatus();

                if (result != null)
                {
                    status.ChainService = result.ChainService;
                    status.BlockService = result.BlockService;
                    status.P2pService   = result.P2pService;
                    status.RpcService   = result.RpcService;
                    status.ChainNetwork = result.ChainNetwork;
                    status.Height       = result.Height;

                    response.Result = Newtonsoft.Json.Linq.JToken.FromObject(status);
                }
                else
                {
                    response.Result = null;
                }
            }
            catch (ApiCustomException ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Api error code is:" + ex.ErrorCode.ToString());
                Logger.Singleton.Error("Api error reason is:" + ex.InnerException.ToString());
                response.Error = new ApiError(ex.ErrorCode, ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Singleton.Error(ex.Message);
                Logger.Singleton.Error("Custom error code is:" + ex.HResult);
                Logger.Singleton.Error("Custom error reason is:" + ex.InnerException);
                response.Error = new ApiError(ex.HResult, ex.Message);
            }
            return(response);
        }
예제 #13
0
        public static async Task <ApiResponse> SignMessage(string address, string message)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                BlockChainEngine engine = new BlockChainEngine();
                MessageOM        result = await engine.SignMessage(address, message);

                Message entity = new Message();
                entity.PublicKey = result.PublicKey;
                entity.Signature = result.Signature;
                if (result != null)
                {
                    response.Result = Newtonsoft.Json.Linq.JToken.FromObject(entity);
                }
                else
                {
                    response.Result = null;
                }
                return(response);
            }
            catch (ApiCustomException ex)
            {
                Logger.Singleton.Error(ex.ToString());
                Logger.Singleton.Error("Api error code is:" + ex.ErrorCode.ToString());
                Logger.Singleton.Error("Api error reason is:" + ex.InnerException.ToString());
                response.Error = new ApiError(ex.ErrorCode, ex.ToString());
            }
            catch (Exception ex)
            {
                Logger.Singleton.Error(ex.ToString());
                Logger.Singleton.Error("Custom error code is:" + ex.HResult);
                Logger.Singleton.Error("Custom error reason is:" + ex.InnerException);
                response.Error = new ApiError(ex.HResult, ex.ToString());
            }
            return(response);
        }
 public async Task SubmitBlock()
 {
     BlockChainEngine engine = new BlockChainEngine();
     await engine.SubmitBlock("1234567890ABCDEF");
 }
 public async Task StopEngine()
 {
     BlockChainEngine engine = new BlockChainEngine();
     await engine.StopEngine();
 }