private String getExchageRate() throws Exception {
        String rtnVal = "";
        Communicator comm = new Communicator();
        String url = "https://quotation-api-cdn.dunamu.com/v1/forex/recent?codes=FRX.KRWUSD";
        String recv = comm.getHttpFromURL(url);
        JSONArray jsonA = new JSONArray(recv);
        JSONObject json = jsonA.getJSONObject(0);
        rtnVal = String.valueOf(json.getDouble("basePrice"));
        return rtnVal;

}

 

 

private String getExchageRateEURUSD() throws Exception {
     String rtnVal = "";
     Communicator comm = new Communicator();
     String url = "https://quotation-api-cdn.dunamu.com/v1/forex/recent?codes=FRX.EURUSD";
     String recv = comm.getHttpFromURL(url);
     JSONArray jsonA = new JSONArray(recv);
     JSONObject json = jsonA.getJSONObject(0);
     rtnVal = String.valueOf(json.getDouble("basePrice"));
     return rtnVal;
}

 

private String getExchageRateEURKRW() throws Exception {
     String rtnVal = "";
     Communicator comm = new Communicator();
     String url = "https://quotation-api-cdn.dunamu.com/v1/forex/recent?codes=FRX.KRWEUR";
     String recv = comm.getHttpFromURL(url);
     JSONArray jsonA = new JSONArray(recv);
     JSONObject json = jsonA.getJSONObject(0);
     rtnVal = String.valueOf(1 / json.getDouble("basePrice"));
     return rtnVal;
}
    
private String getExchageRateKRWEUR() throws Exception {
     String rtnVal = "";
     Communicator comm = new Communicator();
     String url = "https://quotation-api-cdn.dunamu.com/v1/forex/recent?codes=FRX.KRWEUR";
     String recv = comm.getHttpFromURL(url);
     JSONArray jsonA = new JSONArray(recv);
     JSONObject json = jsonA.getJSONObject(0);
     rtnVal = String.valueOf(json.getDouble("basePrice"));
     return rtnVal;
 }

 

유로 포함 환율 가져오는 함수

AND

HTTP 통신 자바클래스 입니다 (다양한 형태 함수 인터페이즈 제공)

 

Communicator.java
0.02MB

사용법은 소스를 분석해서 사용하시기 바랍니다.

AND

import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Date;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

/*web3j import*/

import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameterName;
import org.web3j.protocol.core.methods.response.EthGetBalance;
import org.web3j.utils.Convert;
import org.web3j.utils.Convert.Unit;

 

public String getBalanceToken(String addr) throws Exception
{
     List lst = new ArrayList();
     String url = "https://api.etherscan.io/api?module=account&action=balance&"
     + "apikey=이더스캔페이지에서 등록한 API KEY"; 
     url += "&address=" + addr;
     url += "&contractaddress=컨트렉트 ADDRESS";
     Communicator comm = new Communicator();
     String strJson = comm.getHttpJsonFromURL(url);
     JSONObject jsonObj = new JSONObject(strJson);
     String status = jsonObj.getString("status");
     String rtnVal = "0.0";
     if (status.equals("1"))
     {
         BigDecimal temp = new BigDecimal(jsonObj.getString("result"));
 
         String formatString = "##,###,###,###,###,##0.0000000000000000";
         Convert.Unit unit = Convert.Unit.ETHER;
         
         String tempA = temp.toString();
         BigDecimal tempB = Convert.fromWei(tempA, unit);

         rtnVal = new DecimalFormat(formatString).format(tempB);
   }

   return rtnVal;
}

 

사용법 : getBalanceToken("지갑주소") 호출

 

* Communicator 클래스는 본 블로그의 자바 카테고리에서 다운로드 가능함

AND

- 이더리움 API를 이용해 이더리움 트랜잭션 로그를 파싱 후 List로 변환 함수

 

public List getTranLogs(String addr) throws Exception
{
     List lst = new ArrayList();
     String url = "http://api.etherscan.io/api?module=account&action=txlist&"
           + "apikey=이더스캔API페이지에서 받은 API KEY 값&sort=desc";
     url = url + "&address=" + addr;

     Communicator comm = new Communicator();
     String strJson = comm.getHttpJsonFromURL(url);
     JSONObject jsonObj = new JSONObject(strJson);
     String status = jsonObj.getString("status");
     if (status.equals("1"))
     {
         JSONArray jsonArr = jsonObj.getJSONArray("result");
         for (int i=0; i<jsonArr.length(); i++)
         {
              JSONObject json = jsonArr.getJSONObject(i);
              String from = json.getString("from");
              String to = json.getString("to");
              String value = json.getString("value");
              String category = "보냄";
              String targetaddr = "";
              if (from.toUpperCase().contains(addr.toUpperCase())) {
                   category = "보냄";
                   targetaddr = to;
               }else if (to.toUpperCase().contains(addr.toUpperCase())) {
                  category = "받음";
                 targetaddr = from;
              }
              String timestamp = json.getString("timeStamp");
              HashMap map = new HashMap();
              double amount = Convert.fromWei(value, (Convert.Unit)Convert.Unit.ETHER).doubleValue();
              String temp = new DecimalFormat("##,###,###,###,###,##0.0000000000000000").format(amount);
              map.put("amount", temp);
              map.put("category", category);
              map.put("address", targetaddr);

              Date date = new Date(Long.parseLong(timestamp)*1000);    
              SimpleDateFormat ConTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
              String createTime = ConTimeFormat.format(date);
              map.put("time", createTime);
              lst.add(map);
         }
    }
    return lst;
}

 

사용법 : getTranLogs("트랜잭션 조회할 이더리움 주소") 함수 호출

AND

이더리움 블럭체인 네트워크 데몬 geth 다운로드 URL

 

https://geth.ethereum.org/downloads/

AND