Search in sources :

Example 21 with OTAPI_Func

use of com.moneychanger.core.util.OTAPI_Func in project otapij by FellowTraveler.

the class Contract method issueAssetType.

public boolean issueAssetType(String serverID, String nymID, String contract) throws InterruptedException {
    if (!otapiJNI.OTAPI_Basic_IsNym_RegisteredAtServer(nymID, serverID)) {
        OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.CREATE_USER_ACCT, serverID, nymID);
        String strResponse = OTAPI_Func.SendRequest(theRequest, "CREATE_USER_ACCT");
        if (!Utility.VerifyStringVal(strResponse)) {
            System.out.println("IN issueAssetType: OTAPI_Func.SendRequest(() failed. (I give up.) ");
            return false;
        }
    }
    // -----------------------------------------------
    OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.ISSUE_ASSET_TYPE, serverID, nymID, contract);
    String strResponse = OTAPI_Func.SendRequest(theRequest, "ISSUE_ASSET_TYPE");
    if (!Utility.VerifyStringVal(strResponse)) {
        System.out.println("IN issueAssetType: OTAPI_Func.SendRequest(() failed. (I give up.) ");
        return false;
    }
    System.out.println("IN issueAssetType: Success. ");
    return true;
}
Also used : OTAPI_Func(com.moneychanger.core.util.OTAPI_Func)

Example 22 with OTAPI_Func

use of com.moneychanger.core.util.OTAPI_Func in project otapij by FellowTraveler.

the class Market method getNymOfferList.

public static Map getNymOfferList(String serverID, String nymID) throws InterruptedException {
    Map nymOffersData = new HashMap();
    // ----------------------------------------------------------
    OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.GET_NYM_MARKET_OFFERS, serverID, nymID);
    String strResponse = OTAPI_Func.SendRequest(theRequest, "GET_NYM_MARKET_OFFERS");
    if (!Utility.VerifyStringVal(strResponse)) {
        System.out.println("IN getNymOfferList: OTAPI_Func.SendRequest(() failed. (I give up.) ");
        return null;
    }
    if (otapiJNI.OTAPI_Basic_Message_GetDepth(strResponse) == 0) {
        return nymOffersData;
    }
    OfferListNym offerListNym = Helpers.getNYMOffer(serverID, nymID);
    if (offerListNym == null) {
        System.out.println("getNymOfferList - offerListNym returns null");
        return null;
    }
    for (int j = 0; j < offerListNym.GetOfferDataNymCount(); j++) {
        OfferDataNym offerDataNym = offerListNym.GetOfferDataNym(j);
        if (offerDataNym == null) {
            continue;
        }
        String[] nymDataRow = new String[3];
        //offerDataNym.getSelling()
        nymDataRow[0] = offerDataNym.getTransaction_id();
        nymDataRow[1] = offerDataNym.getSelling() == true ? "Ask" : "Bid";
        nymDataRow[2] = offerDataNym.getAsset_acct_id();
        nymOffersData.put(offerDataNym.getTransaction_id(), nymDataRow);
    }
    return nymOffersData;
}
Also used : OfferListNym(org.opentransactions.otapi.OfferListNym) HashMap(java.util.HashMap) OTAPI_Func(com.moneychanger.core.util.OTAPI_Func) OfferDataNym(org.opentransactions.otapi.OfferDataNym) HashMap(java.util.HashMap) Map(java.util.Map)

Example 23 with OTAPI_Func

use of com.moneychanger.core.util.OTAPI_Func in project otapij by FellowTraveler.

the class Market method getMarketDetails.

public static MarketDetails getMarketDetails(String marketID, String serverID, String nymID) throws InterruptedException {
    if (!Utility.VerifyStringVal(marketID) || !Utility.VerifyStringVal(serverID) || !Utility.VerifyStringVal(nymID)) {
        System.out.println("getMarketDetails - returns null , marketID:" + marketID + " serverID:" + serverID + " nymID:" + nymID);
        return null;
    }
    Map askGridData = new HashMap();
    Map bidGridData = new HashMap();
    Map nymGridData = new HashMap();
    //Map tradeMarketData = new HashMap();
    List tradeMarketData = new ArrayList();
    MarketList marketList = Helpers.getMarketList(serverID);
    MarketDetails marketDetails = null;
    if (marketList == null) {
        System.out.println("getMarketDetails - marketList returns null");
        return null;
    }
    int nMarketDataCount = (int) marketList.GetMarketDataCount();
    for (int i = 0; i < nMarketDataCount; i++) {
        MarketData marketData = marketList.GetMarketData(i);
        if (marketData == null) {
            continue;
        }
        if (marketID.equals(marketData.getMarket_id())) {
            marketDetails = new MarketDetails();
            MarketTicker marketTicker = new MarketTicker();
            marketTicker.setLastPrice(marketData.getLast_sale_price());
            marketTicker.setHighestBid(marketData.getCurrent_bid());
            marketTicker.setLowestAsk(marketData.getCurrent_ask());
            marketTicker.setHighPrice(marketData.getRecent_highest_bid());
            marketTicker.setLowPrice(marketData.getRecent_lowest_ask());
            marketDetails.setMarketTicker(marketTicker);
            marketDetails.setAssetTypeID(!Utility.VerifyStringVal(marketData.getAsset_type_id()) ? "" : marketData.getAsset_type_id());
            marketDetails.setCurrencyID(!Utility.VerifyStringVal(marketData.getCurrency_type_id()) ? "" : marketData.getCurrency_type_id());
            marketDetails.setServerID(!Utility.VerifyStringVal(marketData.getServer_id()) ? "" : marketData.getServer_id());
            marketDetails.setGranularity(!Utility.VerifyStringVal(marketData.getScale()) ? "" : marketData.getScale().toString());
            if (marketDetails.getAssetTypeID().equals("")) {
                marketDetails.setAssetTypeName("");
            } else {
                marketDetails.setAssetTypeName(otapiJNI.OTAPI_Basic_GetAssetType_Name(marketDetails.getAssetTypeID()));
            }
            if (marketDetails.getServerID().equals("")) {
                marketDetails.setServerName("");
            } else {
                marketDetails.setServerName(otapiJNI.OTAPI_Basic_GetServer_Name(marketDetails.getServerID()));
            }
            if (marketDetails.getCurrencyID().equals("")) {
                marketDetails.setCurrencyName("");
            } else {
                marketDetails.setCurrencyName(otapiJNI.OTAPI_Basic_GetAssetType_Name(marketDetails.getCurrencyID()));
            }
            marketDetails.setNbrAsks(!Utility.VerifyStringVal(marketData.getNumber_asks()) ? "" : marketData.getNumber_asks());
            marketDetails.setNbrBids(!Utility.VerifyStringVal(marketData.getNumber_bids()) ? "" : marketData.getNumber_bids());
            marketDetails.setTotalAssets(!Utility.VerifyStringVal(marketData.getTotal_assets()) ? "" : marketData.getTotal_assets());
            // ----------------------------------------------------------
            OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.GET_MARKET_OFFERS, serverID, nymID, marketID, Configuration.getMarketMaxDepth());
            String strResponse = OTAPI_Func.SendRequest(theRequest, "GET_MARKET_OFFERS");
            if (!Utility.VerifyStringVal(strResponse)) {
                System.out.println("IN getMarketDetails: OTAPI_Func.SendRequest(() failed. (I give up.) ");
                return null;
            }
            if (otapiJNI.OTAPI_Basic_Message_GetDepth(strResponse) > 0) {
                OfferListMarket offerListMarket = Helpers.getMarketOffer(serverID, marketID);
                if (offerListMarket == null) {
                    System.out.println("getMarketDetails - offerListMarket returns null");
                    return null;
                }
                // ----------------------------------------------------
                for (int j = 0; j < offerListMarket.GetAskDataCount(); j++) {
                    AskData askData = offerListMarket.GetAskData(j);
                    if (askData == null) {
                        continue;
                    }
                    String[] askRow = new String[4];
                    askRow[0] = askData.getPrice_per_scale();
                    askRow[1] = askData.getAvailable_assets();
                    askRow[3] = askData.getMinimum_increment();
                    try {
                        Long lScale = Long.valueOf(marketDetails.getGranularity());
                        // this price is "per scale"
                        Long lPrice = Long.valueOf(askRow[0]);
                        // Total overall quantity available
                        Long lQuantity = Long.valueOf(askRow[1]);
                        // Number of scale units available in total quanity. (120 total at scale of 10, is 12 units.)
                        Long lScaleUnits = Long.valueOf(lQuantity / lScale);
                        // // Total value of available units is price times scale units.
                        Long lTotalCost = Long.valueOf(lPrice * lScaleUnits);
                        // At $5 per scale, at 12 units, is $60 total for 120 total assets. (The number 60 goes here, plus the currency symbol todo.)
                        askRow[2] = String.valueOf(lTotalCost);
                    //                          askRow[2] = String.valueOf(Double.parseDouble(askRow[0]) * Double.parseDouble(askRow[1]));
                    } catch (NumberFormatException nfe) {
                        nfe.printStackTrace();
                        System.out.println("getMarketDetails: Invalid number returned");
                        askRow[2] = "";
                    }
                    askGridData.put(askData.getTransaction_id(), askRow);
                }
                // ----------------------------------------------------
                for (int j = 0; j < offerListMarket.GetBidDataCount(); j++) {
                    BidData bidData = offerListMarket.GetBidData(j);
                    if (bidData == null) {
                        continue;
                    }
                    String[] bidRow = new String[4];
                    bidRow[0] = bidData.getPrice_per_scale();
                    bidRow[1] = bidData.getAvailable_assets();
                    bidRow[3] = bidData.getMinimum_increment();
                    try {
                        Long lScale = Long.valueOf(marketDetails.getGranularity());
                        // this price is "per scale"
                        Long lPrice = Long.valueOf(bidRow[0]);
                        // Total overall quantity available
                        Long lQuantity = Long.valueOf(bidRow[1]);
                        // Number of scale units available in total quanity. (120 total at scale of 10, is 12 units.)
                        Long lScaleUnits = Long.valueOf(lQuantity / lScale);
                        // // Total value of available units is price times scale units.
                        Long lTotalCost = Long.valueOf(lPrice * lScaleUnits);
                        // At $5 per scale, at 12 units, is $60 total for 120 total assets. (The number 60 goes here, plus the currency symbol todo.)
                        bidRow[2] = String.valueOf(lTotalCost);
                    //                          bidRow[2] = String.valueOf(Double.parseDouble(bidRow[0]) * Double.parseDouble(bidRow[1]));
                    } catch (NumberFormatException nfe) {
                        nfe.printStackTrace();
                        System.out.println("getMarketDetails: Invalid number returned");
                        bidRow[2] = "";
                    }
                    bidGridData.put(bidData.getTransaction_id(), bidRow);
                }
            }
            // ----------------------------------------------------------
            OTAPI_Func theRequest2 = new OTAPI_Func(OTAPI_Func.FT.GET_MARKET_RECENT_TRADES, serverID, nymID, marketID);
            String strResponse2 = OTAPI_Func.SendRequest(theRequest2, "GET_MARKET_RECENT_TRADES");
            if (!Utility.VerifyStringVal(strResponse2)) {
                System.out.println("IN getMarketDetails: OTAPI_Func.SendRequest(() failed. (I give up.) ");
                return null;
            }
            if (otapiJNI.OTAPI_Basic_Message_GetDepth(strResponse2) > 0) {
                TradeListMarket tradeListMarket = Helpers.getMarketTradeList(serverID, marketID);
                if (tradeListMarket == null) {
                    System.out.println("getMarketDetails - tradeListMarket returns null");
                    return null;
                }
                for (int j = 0; j < tradeListMarket.GetTradeDataMarketCount(); j++) {
                    TradeDataMarket tradeDataMarket = tradeListMarket.GetTradeDataMarket(j);
                    if (tradeDataMarket == null) {
                        continue;
                    }
                    String[] tradeDataRow = new String[5];
                    tradeDataRow[2] = !Utility.VerifyStringVal(tradeDataMarket.getAmount_sold()) ? "" : tradeDataMarket.getAmount_sold();
                    tradeDataRow[4] = !Utility.VerifyStringVal(tradeDataMarket.getDate()) ? "" : tradeDataMarket.getDate();
                    System.out.println("tradeDataMarket.getDate():" + tradeDataMarket.getDate());
                    try {
                        tradeDataRow[4] = String.valueOf(new Date(Long.parseLong(tradeDataRow[4]) * 1000));
                    } catch (NumberFormatException nfe) {
                        nfe.printStackTrace();
                        System.out.println("Invalid number returned by timestmp:" + tradeDataRow[4]);
                        tradeDataRow[4] = "";
                    }
                    tradeDataRow[1] = !Utility.VerifyStringVal(tradeDataMarket.getPrice()) ? "" : tradeDataMarket.getPrice();
                    tradeDataRow[0] = !Utility.VerifyStringVal(tradeDataMarket.getTransaction_id()) ? "" : tradeDataMarket.getTransaction_id();
                    try {
                        Long lScale = Long.valueOf(marketDetails.getGranularity());
                        // this price is "per scale"
                        Long lPrice = Long.valueOf(tradeDataRow[1]);
                        // Total overall quantity available
                        Long lQuantity = Long.valueOf(tradeDataRow[2]);
                        // Number of scale units available in total quanity. (120 total at scale of 10, is 12 units.)
                        Long lScaleUnits = Long.valueOf(lQuantity / lScale);
                        // // Total value of available units is price times scale units.
                        Long lTotalCost = Long.valueOf(lPrice * lScaleUnits);
                        // At $5 per scale, at 12 units, is $60 total for 120 total assets. (The number 60 goes here, plus the currency symbol todo.)
                        tradeDataRow[3] = String.valueOf(lTotalCost);
                    //                          tradeDataRow[3] = String.valueOf(Double.parseDouble(tradeDataRow[2]) * Double.parseDouble(tradeDataRow[1]));
                    } catch (NumberFormatException nfe) {
                        nfe.printStackTrace();
                        System.out.println("Invalid number returned by timestmp:" + tradeDataRow[3]);
                        tradeDataRow[3] = "";
                    }
                    tradeMarketData.add(tradeDataRow);
                }
            }
            // ----------------------------------------------------------
            OTAPI_Func theRequest3 = new OTAPI_Func(OTAPI_Func.FT.GET_NYM_MARKET_OFFERS, serverID, nymID);
            String strResponse3 = OTAPI_Func.SendRequest(theRequest3, "GET_NYM_MARKET_OFFERS");
            if (!Utility.VerifyStringVal(strResponse3)) {
                System.out.println("IN getMarketDetails: OTAPI_Func.SendRequest(() failed. (I give up.) ");
                return null;
            }
            if (otapiJNI.OTAPI_Basic_Message_GetDepth(strResponse3) > 0) {
                OfferListNym offerListNym = Helpers.getNYMOffer(serverID, nymID);
                if (offerListNym == null) {
                    System.out.println("getMarketDetails - offerListNym returns null");
                    return null;
                }
                for (int j = 0; j < offerListNym.GetOfferDataNymCount(); j++) {
                    OfferDataNym offerDataNym = offerListNym.GetOfferDataNym(j);
                    if (offerDataNym == null) {
                        continue;
                    }
                    String[] nymDataRow = new String[3];
                    //offerDataNym.getSelling()
                    if (Utility.VerifyStringVal(marketData.getAsset_type_id()) && Utility.VerifyStringVal(marketData.getCurrency_type_id()) && Utility.VerifyStringVal(marketData.getScale()) && Utility.VerifyStringVal(offerDataNym.getAsset_type_id()) && Utility.VerifyStringVal(offerDataNym.getScale()) && Utility.VerifyStringVal(offerDataNym.getCurrency_type_id()) && marketData.getAsset_type_id().equals(offerDataNym.getAsset_type_id()) && marketData.getCurrency_type_id().equals(offerDataNym.getCurrency_type_id()) && marketData.getScale().equals(offerDataNym.getScale())) {
                        nymDataRow[0] = offerDataNym.getTransaction_id();
                        nymDataRow[1] = offerDataNym.getSelling() == true ? "Ask" : "Bid";
                        nymDataRow[2] = offerDataNym.getAsset_acct_id();
                        nymGridData.put(offerDataNym.getTransaction_id(), nymDataRow);
                    }
                }
            }
            marketDetails.setMarketAsk(askGridData);
            marketDetails.setMarketBid(bidGridData);
            marketDetails.setMarketRecentTrades(tradeMarketData);
            marketDetails.setNymOffers(nymGridData);
            break;
        }
    }
    return marketDetails;
}
Also used : OfferListNym(org.opentransactions.otapi.OfferListNym) MarketData(org.opentransactions.otapi.MarketData) HashMap(java.util.HashMap) OTAPI_Func(com.moneychanger.core.util.OTAPI_Func) TradeDataMarket(org.opentransactions.otapi.TradeDataMarket) ArrayList(java.util.ArrayList) OfferDataNym(org.opentransactions.otapi.OfferDataNym) BidData(org.opentransactions.otapi.BidData) Date(java.util.Date) TradeListMarket(org.opentransactions.otapi.TradeListMarket) AskData(org.opentransactions.otapi.AskData) OfferListMarket(org.opentransactions.otapi.OfferListMarket) ArrayList(java.util.ArrayList) List(java.util.List) MarketList(org.opentransactions.otapi.MarketList) MarketDetails(com.moneychanger.core.dataobjects.MarketDetails) MarketTicker(com.moneychanger.core.dataobjects.MarketTicker) MarketList(org.opentransactions.otapi.MarketList) HashMap(java.util.HashMap) Map(java.util.Map)

Example 24 with OTAPI_Func

use of com.moneychanger.core.util.OTAPI_Func in project otapij by FellowTraveler.

the class Payments method proposePaymentPlan.

public static boolean proposePaymentPlan(String serverID, String validToDate, String senderAcctID, String senderNymID, String planConsideration, String recepientAcctID, String recepientNymID, String initPayAmt, String initPayDelay, String payPlanAmt, String payPlanDelay, String payPlanPeriod, String payPlanLen, String payPlanMax) {
    String validFrom = "0";
    boolean status = false;
    System.out.println("proposePaymentPlan - serverID:" + serverID + ",validToDate:" + validToDate + ",validFrom:" + validFrom + ",senderAcctID:" + senderAcctID + ",senderNymID:" + senderNymID + ",planConsideration:" + planConsideration + ",recepientAcctID:" + recepientAcctID + ",recepientNymID:" + recepientNymID + ",initPayAmt:" + initPayAmt);
    System.out.println("proposePaymentPlan - initPayDelay:" + initPayDelay + ",payPlanAmt:" + payPlanAmt + ",payPlanDelay:" + payPlanDelay + ",payPlanPeriod:" + payPlanPeriod + ",payPlanLen:" + payPlanLen + ",payPlanMax:" + payPlanMax);
    String plan = otapiJNI.OTAPI_Basic_ProposePaymentPlan(serverID, validFrom, validToDate, senderAcctID, senderNymID, planConsideration, recepientAcctID, recepientNymID, initPayAmt, initPayDelay, payPlanAmt, payPlanDelay, payPlanPeriod, payPlanLen, Integer.valueOf(payPlanMax).intValue());
    if (!Utility.VerifyStringVal(plan)) {
        System.out.println("proposePaymentPlan - OT_API_ProposePaymentPlan returned null");
        return false;
    }
    String pubKey = otapiJNI.OTAPI_Basic_LoadUserPubkey_Encryption(recepientNymID);
    if (!Utility.VerifyStringVal(pubKey)) {
        System.out.println("proposePaymentPlan - OT_API_LoadUserPubkey returned null for recipient nym:" + recepientNymID);
        return false;
    }
    OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.SEND_USER_INSTRUMENT, serverID, senderNymID, recepientNymID, pubKey, plan);
    System.out.println(" theRequest :" + theRequest);
    String strResponse = theRequest.SendRequest(theRequest, "SEND_USER_INSTRUMENT");
    System.out.println(" strResponse:" + strResponse);
    if (Utility.VerifyStringVal(strResponse)) {
        status = true;
    }
    return status;
}
Also used : OTAPI_Func(com.moneychanger.core.util.OTAPI_Func)

Example 25 with OTAPI_Func

use of com.moneychanger.core.util.OTAPI_Func in project otapij by FellowTraveler.

the class NYM method deleteNym.

public boolean deleteNym(String nymID, String serverID, boolean deleteWalletNym) {
    OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.DELETE_USER_ACCT, serverID, nymID);
    String strResponse = OTAPI_Func.SendRequest(theRequest, "DELETE_USER_ACCT");
    if (!Utility.VerifyStringVal(strResponse)) {
        System.out.println("IN deleteNym: OTAPI_Func.SendRequest() failed. (I give up.) ");
        return false;
    }
    if (deleteWalletNym) {
        return deleteWalletNym(nymID);
    }
    return true;
}
Also used : OTAPI_Func(com.moneychanger.core.util.OTAPI_Func)

Aggregations

OTAPI_Func (com.moneychanger.core.util.OTAPI_Func)30 HashMap (java.util.HashMap)3 Map (java.util.Map)3 MarketData (org.opentransactions.otapi.MarketData)3 MarketList (org.opentransactions.otapi.MarketList)3 MarketTicker (com.moneychanger.core.dataobjects.MarketTicker)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 OfferDataNym (org.opentransactions.otapi.OfferDataNym)2 OfferListNym (org.opentransactions.otapi.OfferListNym)2 MarketDetails (com.moneychanger.core.dataobjects.MarketDetails)1 Date (java.util.Date)1 AskData (org.opentransactions.otapi.AskData)1 BidData (org.opentransactions.otapi.BidData)1 OfferListMarket (org.opentransactions.otapi.OfferListMarket)1 Storable (org.opentransactions.otapi.Storable)1 StringMap (org.opentransactions.otapi.StringMap)1 TradeDataMarket (org.opentransactions.otapi.TradeDataMarket)1 TradeListMarket (org.opentransactions.otapi.TradeListMarket)1 Utility (org.opentransactions.otjavalib.util.Utility)1