示例#1
0
 public ReturnObject CreateNewAddress(string password)
 {
     try
     {
         ReturnObject result =
             EthereumSendRPC(EthereumRpcList.RpcName.PersonalNewAccount, new Object[] { password });
         Console.WriteLine(result);
         if (result.Status == Status.STATUS_ERROR)
         {
             return(result);
         }
         else
         {
             //	Console.WriteLine();
             EthRpcJson.Getter getter =
                 JsonHelper.DeserializeObject <EthRpcJson.Getter>(result.Data);
             return(new ReturnObject
             {
                 Status = Status.STATUS_COMPLETED,
                 Data = getter.Result.ToString()
             });
         }
     }
     catch (Exception e)
     {
         return(new ReturnObject
         {
             Status = Status.STATUS_ERROR,
             Message = e.Message
         });
     }
 }
示例#2
0
 public ReturnObject GetBlockByNumber(int blockNumber)
 {
     try
     {
         ReturnObject result = EthereumSendRPC(EthereumRpcList.RpcName.EthGetBlockByNumber,
                                               new Object[] { blockNumber.IntToHex(), true });
         //Console.WriteLine(_result);
         if (result.Status == Status.STATUS_ERROR)
         {
             return(result);
         }
         else
         {
             //	Console.WriteLine();
             EthRpcJson.Getter getter =
                 JsonHelper.DeserializeObject <EthRpcJson.Getter>(result.Data);
             return(new ReturnObject
             {
                 Status = Status.STATUS_COMPLETED,
                 Data = JsonHelper.SerializeObject(getter.Result)
             });
         }
     }
     catch (Exception e)
     {
         return(new ReturnObject
         {
             Status = Status.STATUS_ERROR,
             Message = e.Message
         });
     }
 }
示例#3
0
        public ReturnObject GetBlockNumber()
        {
            try
            {
                var result = EthereumSendRPC(EthereumRpcList.RpcName.EthBlockNumber);
                if (result.Status == Status.STATUS_ERROR)
                {
                    return(result);
                }
                else
                {
                    EthRpcJson.Getter getter =
                        JsonHelper.DeserializeObject <EthRpcJson.Getter>(result.Data);
                    int _blockNumber = -1;
                    if (!getter.Result.ToString().HexToInt(out _blockNumber))
                    {
                        throw new Exception("cant get int from hex");
                    }

                    return(new ReturnObject
                    {
                        Status = Status.STATUS_COMPLETED,
                        Data = _blockNumber.ToString()
                    });
                }
            }
            catch (Exception e)
            {
                return(new ReturnObject
                {
                    Status = Status.STATUS_ERROR,
                    Message = e.Message
                });
            }

            //return
        }
示例#4
0
        /// <summary>
        /// Send Transaction with  Passphrase
        /// </summary>
        /// <param name="from"></param>
        /// <param name="toAddress"></param>
        /// <param name="amount"></param>
        /// <param name="passphrase"></param>
        /// <returns></returns>
        public ReturnObject SendTransactionWithPassphrase(string from, string toAddress, decimal amount,
                                                          string passphrase)
        {
            try
            {
                decimal weiAmount = EtherToWei(amount);
                EthRpcJson.TransactionInfor sender = new EthRpcJson.TransactionInfor()
                {
                    From  = from,
                    To    = toAddress,
                    Value = ((BigInteger)weiAmount).ToHex()
                };

                //var tx = { from: "0x391694e7e0b0cce554cb130d723a9d27458f9298", to: "0xafa3f8684e54059998bc3a7b0d2b0da075154d66", value: web3.toWei(1.23, "ether")};
                var result = EthereumSendRPC(EthereumRpcList.RpcName.PersonalSendTransaction,
                                             new Object[] { sender, passphrase });
                if (result.Status == Status.STATUS_ERROR)
                {
                    return(result);
                }

                EthRpcJson.Getter getter = JsonHelper.DeserializeObject <EthRpcJson.Getter>(result.Data);
                return(new ReturnObject
                {
                    Status = Status.STATUS_COMPLETED,
                    Data = getter.Result.ToString()
                });
            }
            catch (Exception e)
            {
                return(new ReturnObject
                {
                    Status = Status.STATUS_ERROR,
                    Message = e.Message
                });
            }
        }