Search in sources :

Example 1 with Address

use of run.wallet.iota.model.Address in project run-wallet-android by runplay.

the class GetAccountDataRequestHandler method handle.

@Override
public ApiResponse handle(ApiRequest inrequest) {
    GetAccountDataRequest request = (GetAccountDataRequest) inrequest;
    GetTransferResponse gtr = null;
    StopWatch stopWatch = new StopWatch();
    NodeInfoResponse nodeInfo = Store.getNodeInfo();
    Wallet wallet = Store.getWallet(context, request.getSeed());
    if (wallet != null && nodeInfo != null) {
        List<Address> alreadyAddress = Store.getAddresses(context, request.getSeed());
        List<Address> usingAddress = Store.getDisplayAddresses(alreadyAddress);
        List<Address> checkAddress = new ArrayList<>();
        if (request.getIfSingleAddressOrNull() != null) {
            Address address = Store.isAlreadyAddress(request.getIfSingleAddressOrNull(), alreadyAddress);
            if (address != null) {
                checkAddress.add(address);
            }
        } else {
            for (Address add : usingAddress) {
                if (!add.isUsed() || (add.isUsed() && (add.getPendingValue() != 0 || add.getValue() != 0))) {
                    if (request.isForce() || nodeInfo.getLatestMilestoneIndex() != add.getLastMilestone()) {
                        checkAddress.add(add);
                    }
                }
            }
        }
        if (!checkAddress.isEmpty()) {
            try {
                List<String> checkAddressString = new ArrayList<>();
                List<String> checkAddressBal = new ArrayList<>();
                for (Address addr : checkAddress) {
                    checkAddressBal.add(addr.getAddress());
                }
                GetBalancesResponse gbal = apiProxy.getBalances(100, checkAddressBal);
                for (int i = 0; i < gbal.getBalances().length; i++) {
                    Address addr = checkAddress.get(i);
                    long gotBalance = Sf.toLong(gbal.getBalances()[i]);
                    if (addr.getValue() != gotBalance || addr.getPendingValue() != 0) {
                        addr.setValue(gotBalance);
                        checkAddressString.add(addr.getAddress());
                    }
                }
                if (!checkAddressString.isEmpty()) {
                    Bundle[] bundles = apiProxy.bundlesFromAddresses(checkAddressString.toArray(new String[checkAddressString.size()]), true);
                    gtr = GetTransferResponse.create(bundles, stopWatch.getElapsedTimeMili());
                }
                List<Transfer> transfers = new ArrayList<>();
                if (gtr != null && gtr.getTransfers().length > 0) {
                    List<Transfer> alreadyTransfer = Store.getTransfers(context, request.getSeed());
                    Audit.bundlePopulateTransfers(gtr.getTransfers(), transfers, alreadyAddress);
                    if (request.getIfSingleAddressOrNull() != null) {
                        Audit.setTransfersToAddresses(request.getSeed(), transfers, alreadyAddress, wallet, alreadyTransfer);
                    } else {
                        Audit.setTransfersToAddresses(request.getSeed(), transfers, alreadyAddress, wallet, alreadyTransfer);
                    }
                    Audit.processNudgeAttempts(context, request.getSeed(), transfers);
                    Store.updateAccountData(context, request.getSeed(), wallet, transfers, alreadyAddress);
                }
                if (request.getIfSingleAddressOrNull() == null) {
                    WalletAddressesFragment.setShouldRefresh(true);
                    WalletTransfersFragment.setShouldRefresh(true);
                    List<String> checkOthersString = new ArrayList<>();
                    for (Address address : checkAddress) {
                        if (!checkAddressString.contains(address.getAddress()))
                            checkOthersString.add(address.getAddress());
                    }
                    if (!checkOthersString.isEmpty()) {
                        Bundle[] bundles = apiProxy.bundlesFromAddresses(checkOthersString.toArray(new String[checkOthersString.size()]), true);
                        gtr = GetTransferResponse.create(bundles, stopWatch.getElapsedTimeMili());
                    }
                    if (gtr != null && gtr.getTransfers().length > 0) {
                        transfers = new ArrayList<>();
                        List<Transfer> alreadyTransfer = Store.getTransfers(context, request.getSeed());
                        Audit.bundlePopulateTransfers(gtr.getTransfers(), transfers, alreadyAddress);
                        if (request.getIfSingleAddressOrNull() != null) {
                            Audit.setTransfersToAddresses(request.getSeed(), transfers, alreadyAddress, wallet, alreadyTransfer);
                        } else {
                            Audit.setTransfersToAddresses(request.getSeed(), transfers, alreadyAddress, wallet, alreadyTransfer);
                        }
                        Audit.processNudgeAttempts(context, request.getSeed(), transfers);
                        Store.updateAccountData(context, request.getSeed(), wallet, transfers, alreadyAddress);
                    }
                }
            } catch (Exception e) {
                Log.e("ERR066", "ERROR: " + e.getMessage());
            }
        }
        AppService.setFastMode();
        return new GetAccountDataResponse();
    }
    return new ApiResponse();
}
Also used : GetBalancesResponse(jota.dto.response.GetBalancesResponse) GetTransferResponse(jota.dto.response.GetTransferResponse) Address(run.wallet.iota.model.Address) Wallet(run.wallet.iota.model.Wallet) Bundle(jota.model.Bundle) NodeInfoResponse(run.wallet.iota.api.responses.NodeInfoResponse) ArrayList(java.util.ArrayList) ArgumentException(jota.error.ArgumentException) ApiResponse(run.wallet.iota.api.responses.ApiResponse) StopWatch(jota.utils.StopWatch) GetAccountDataResponse(run.wallet.iota.api.responses.GetAccountDataResponse) GetAccountDataRequest(run.wallet.iota.api.requests.GetAccountDataRequest) Transfer(run.wallet.iota.model.Transfer)

Example 2 with Address

use of run.wallet.iota.model.Address in project run-wallet-android by runplay.

the class GetFirstLoadRequestHandler method handle.

@Override
public ApiResponse handle(ApiRequest request) {
    FirstTimeHolder holder = new FirstTimeHolder();
    // StopWatch stopWatch = new StopWatch();
    GetFirstLoadRequest firstLoadRequest = (GetFirstLoadRequest) request;
    Wallet wallet = null;
    List<Address> allAddresses = new ArrayList<>();
    List<Transfer> transfers = new ArrayList<>();
    long started = System.currentTimeMillis();
    if (!firstLoadRequest.getSeed().isappgenerated) {
        holders.put(firstLoadRequest.getSeed().id, holder);
        while (holder.userConfirmedBalance == null || started < System.currentTimeMillis() - 60000) {
            try {
                this.wait(1000);
            } catch (Exception e) {
            }
        }
    } else {
        holder.userConfirmedBalance = false;
        holders.put(firstLoadRequest.getSeed().id, holder);
    }
    boolean userDeclaredBalance = holder.userConfirmedBalance == null ? false : holder.userConfirmedBalance.booleanValue();
    holder.userConfirmedBalance = userDeclaredBalance ? Boolean.TRUE : Boolean.FALSE;
    // Log.e("FL","uc="+holder.userConfirmedBalance+" - ud="+userDeclaredBalance);
    if (!userDeclaredBalance || firstLoadRequest.getSeed().isappgenerated) {
        try {
            final GetNewAddressResponse gna = apiProxy.getNewAddress(String.valueOf(Store.getSeedRaw(context, firstLoadRequest.getSeed())), firstLoadRequest.getSecurity(), 0, false, 1, false);
            for (String add : gna.getAddresses()) {
                Address newaddress = new Address(add, false, false);
                newaddress.setIndexName(1);
                allAddresses.add(newaddress);
            }
        } catch (Exception e) {
        }
        wallet = new Wallet(firstLoadRequest.getSeed().id, 0, System.currentTimeMillis());
    } else {
        long timestamp = System.currentTimeMillis();
        holder.showWaitMessage = true;
        holder.predictaddress = 0;
        Map<Integer, Address> already = new HashMap<>();
        int start = 0;
        boolean stop = false;
        List<Bundle> allbundles = new ArrayList<>();
        Map<String, Boolean> hasalready = new HashMap<>();
        wallet = new Wallet(((GetFirstLoadRequest) request).getSeed().id, 0, System.currentTimeMillis());
        List<Transfer> addInTransfers = new ArrayList<>();
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        final int maxAddresses = Sf.toInt(prefs.getString(Constants.PREF_FIRST_LOAD_ATTEMPTS, "" + Constants.PREF_FIRST_LOAD_ATTEMPTS_DEFAULT));
        final int stopWhenCountEmpty = Sf.toInt(prefs.getString(Constants.PREF_FIRST_LOAD_RANGE, "" + Constants.PREF_FIRST_LOAD_RANGE_DEFAULT));
        while (!stop) {
            Address alreadyAddress = already.get(start);
            Map<String, Boolean> snapshotBalanceAlreadyAddresses = new HashMap();
            boolean foundTransfers = false;
            if (alreadyAddress != null) {
                holder.countaddress++;
                alreadyAddress.setIndex(start);
                alreadyAddress.setIndexName(start + 1);
                allAddresses.add(alreadyAddress);
            } else {
                Address newaddress = null;
                long useBalance = 0L;
                try {
                    GetNewAddressResponse gnr = apiProxy.getNewAddress(String.valueOf(Store.getSeedRaw(context, firstLoadRequest.getSeed())), firstLoadRequest.getSecurity(), start, false, 1, false);
                    String add = gnr.getAddresses().get(0);
                    // Log.e("FIRST-TIME", "CALC ADDRESS: " + add + " -- " + start+"-");
                    newaddress = new Address(add, false, false);
                    holder.countaddress++;
                    newaddress.setIndex(start);
                    newaddress.setIndexName(start + 1);
                    allAddresses.add(newaddress);
                    List<String> tmpadd = new ArrayList<>();
                    tmpadd.add(newaddress.getAddress());
                    GetBalancesResponse gbal = apiProxy.getBalances(100, tmpadd);
                    useBalance = Sf.toLong(gbal.getBalances()[0]);
                    newaddress.setValue(useBalance);
                    newaddress.setLastMilestone(gbal.getMilestoneIndex());
                    newaddress.setAttached(true);
                    Bundle[] bundles = apiProxy.bundlesFromAddresses(new String[] { newaddress.getAddress() }, true);
                    if (bundles != null && bundles.length > 0) {
                        newaddress.setAttached(true);
                        foundTransfers = true;
                        for (int i = 0; i < bundles.length; i++) {
                            String hash = bundles[i].getTransactions().get(0).getHash();
                            if (hasalready.get(hash) == null) {
                                hasalready.put(hash, true);
                                allbundles.add(bundles[i]);
                            }
                        }
                    }
                    long oldWallet = wallet.getBalance();
                    long expecting = oldWallet + useBalance;
                    holder.predictaddress = expecting;
                    transfers.clear();
                    Audit.bundlePopulateTransfers(allbundles.toArray(new Bundle[allbundles.size()]), transfers, allAddresses);
                    Audit.setTransfersToAddresses(((GetFirstLoadRequest) request).getSeed(), transfers, allAddresses, wallet, addInTransfers);
                    if (wallet.getBalance() != expecting && useBalance > 0) {
                        if (snapshotBalanceAlreadyAddresses.get(newaddress.getAddress()) == null) {
                            long theBalance = expecting - wallet.getBalance();
                            // Log.e("MK-SNAP","snap::: set-bal: "+theBalance+" - wallet:"+wallet.getBalance()+" - expect:"+expecting+" - add-bal"+useBalance+" - snap-add-tran-value:"+newaddress.getValue()+"  - on-address:"+newaddress.getAddress());
                            Transfer addInTran = new Transfer(timestamp, newaddress.getAddress(), "SNAP" + SeedRandomGenerator.generateNewSeed().substring(0, 23), true, theBalance, "Snapshot balance confirmed", "SNAP999999999999999999");
                            TransferTransaction tt = new TransferTransaction(newaddress.getAddress(), theBalance);
                            List<TransferTransaction> tmptt = new ArrayList<>();
                            tmptt.add(tt);
                            addInTran.setTransactions(tmptt);
                            addInTransfers.add(addInTran);
                            Audit.setTransfersToAddresses(((GetFirstLoadRequest) request).getSeed(), transfers, allAddresses, wallet, addInTransfers);
                        }
                    }
                    snapshotBalanceAlreadyAddresses.put(newaddress.getAddress(), true);
                    holder.counttransfers = transfers.size();
                } catch (Exception e) {
                    Log.e("ERR-FLR020", "address index: " + start + ", ex: " + e.getMessage());
                }
            }
            int lastComplete = 0;
            // boolean hasLastComplete=false;
            for (int i = 0; i < allAddresses.size(); i++) {
                Address tmpadd = allAddresses.get(i);
                if (tmpadd.getValue() != 0) {
                    lastComplete = i;
                }
            }
            // Log.e("WALLET","current value: "+wallet.getBalance()+" - "+wallet.getBalancePendingIn()+" -- "+wallet.getBalancePendingOut());
            int countempty = 0;
            if (!foundTransfers && lastComplete > 0 && allAddresses.size() >= stopWhenCountEmpty) {
                for (int i = allAddresses.size() - 1; i >= 0 && i > lastComplete; i--) {
                    countempty++;
                }
            }
            start++;
            // Log.e("COUNT_EMPTY",allAddresses.size()+" addresses, empty: "+countempty);
            if (countempty >= stopWhenCountEmpty || start > maxAddresses) {
                stop = true;
            }
        }
        for (Transfer tran : transfers) {
            if (!tran.getTransactions().isEmpty()) {
                if (tran.getTimestamp() < timestamp)
                    timestamp = tran.getTimestamp();
            }
        }
        timestamp = timestamp - 600000;
        for (Transfer addIn : addInTransfers) {
            addIn.setTimestamp(--timestamp);
        }
        allAddresses = allAddresses.subList(0, allAddresses.size() - (stopWhenCountEmpty));
        Audit.setTransfersToAddresses(((GetFirstLoadRequest) request).getSeed(), transfers, allAddresses, wallet, addInTransfers);
    }
    boolean hasTransfer = false;
    for (int i = allAddresses.size() - 1; i >= 0; i--) {
        Address address = allAddresses.get(i);
        if (address.getValue() != 0 || address.getPendingValue() != 0) {
            hasTransfer = true;
        } else if (hasTransfer) {
            address.setUsed(true);
        }
    }
    Store.setAccountData(context, ((GetFirstLoadRequest) request).getSeed(), wallet, transfers, allAddresses);
    holder.isFinished = true;
    AppService.auditAddressesWithDelay(context, ((GetFirstLoadRequest) request).getSeed());
    return new GetFirstLoadResponse();
}
Also used : GetNewAddressResponse(jota.dto.response.GetNewAddressResponse) GetBalancesResponse(jota.dto.response.GetBalancesResponse) Address(run.wallet.iota.model.Address) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) SharedPreferences(android.content.SharedPreferences) Wallet(run.wallet.iota.model.Wallet) Bundle(jota.model.Bundle) Transfer(run.wallet.iota.model.Transfer) GetFirstLoadResponse(run.wallet.iota.api.responses.GetFirstLoadResponse) TransferTransaction(run.wallet.iota.model.TransferTransaction) GetFirstLoadRequest(run.wallet.iota.api.requests.GetFirstLoadRequest)

Example 3 with Address

use of run.wallet.iota.model.Address in project run-wallet-android by runplay.

the class GetNewAddressRequestHandler method handle.

@Override
public ApiResponse handle(ApiRequest request) {
    ApiResponse response;
    GetNewAddressRequest gnr = ((GetNewAddressRequest) request);
    List<Address> alreadyAddress = Store.getAddresses(context, gnr.getSeed());
    gnr.setIndex(alreadyAddress.size());
    try {
        jota.dto.response.GetNewAddressResponse resp = apiProxy.getNewAddress(String.valueOf(Store.getSeedRaw(context, gnr.getSeed())), gnr.getSecurity(), alreadyAddress.size(), gnr.isChecksum(), 1, gnr.isReturnAll());
        /*
            jota.dto.response.GetNewAddressResponse resp=apiProxy.getNewAddress(((GetNewAddressRequest) request).getSeedValue(),
                    ((GetNewAddressRequest) request).getSecurity(),
                    ((GetNewAddressRequest) request).getIndex(),
                    ((GetNewAddressRequest) request).isChecksum(),
                    ((GetNewAddressRequest) request).getTotal(),
                    ((GetNewAddressRequest) request).isReturnAll());
            */
        response = new GetNewAddressResponse(gnr.getSeed(), resp);
        Store.addAddress(context, gnr, (GetNewAddressResponse) response);
        AppService.auditAddresses(context, gnr.getSeed());
    // SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
    // if (prefs.getBoolean(Constants.PREFERENCES_LOCAL_POW, true)
    // && !((GetNewAddressResponse) response).getAddresses().isEmpty()) {
    // AppService.attachNewAddress(context,((GetNewAddressRequest) request).getSeed(),((GetNewAddressResponse) response).getAddresses().get(0));
    // }
    } catch (ArgumentException e) {
        response = new NetworkError();
    }
    return response;
}
Also used : GetNewAddressResponse(run.wallet.iota.api.responses.GetNewAddressResponse) Address(run.wallet.iota.model.Address) GetNewAddressRequest(run.wallet.iota.api.requests.GetNewAddressRequest) NetworkError(run.wallet.iota.api.responses.error.NetworkError) ArgumentException(jota.error.ArgumentException) ApiResponse(run.wallet.iota.api.responses.ApiResponse)

Example 4 with Address

use of run.wallet.iota.model.Address in project run-wallet-android by runplay.

the class MessageNewAddressRequestHandler method handle.

@Override
public ApiResponse handle(ApiRequest request) {
    ApiResponse response;
    List<Address> addressList = MsgStore.getAddresses();
    try {
        jota.dto.response.GetNewAddressResponse resp = apiProxy.getNewAddress(String.valueOf(Store.getSeedRaw(context, ((MessageNewAddressRequest) request).getSeed())), ((MessageNewAddressRequest) request).getSecurity(), addressList.size(), ((MessageNewAddressRequest) request).isChecksum(), 1, ((MessageNewAddressRequest) request).isReturnAll());
        response = new MessageNewAddressResponse(resp);
    // Store.addAddress(context,((MessageNewAddressRequest) request).getSeed(),(MessageNewAddressResponse)response);
    } catch (ArgumentException e) {
        response = new NetworkError();
    }
    return response;
}
Also used : Address(run.wallet.iota.model.Address) MessageNewAddressResponse(run.wallet.iota.api.responses.MessageNewAddressResponse) NetworkError(run.wallet.iota.api.responses.error.NetworkError) ArgumentException(jota.error.ArgumentException) ApiResponse(run.wallet.iota.api.responses.ApiResponse)

Example 5 with Address

use of run.wallet.iota.model.Address in project run-wallet-android by runplay.

the class NudgeRequestHandlerOld method doNudge.

public static ApiResponse doNudge(RunIotaAPI apiProxy, Context context, ApiRequest inrequest) {
    ApiResponse response;
    int notificationId = Utils.createNewID();
    // int notificationId = Utils.createNewID();
    NudgeRequest request = (NudgeRequest) inrequest;
    // NotificationHelper.requestNotification(context, R.drawable.send_white, context.getString(R.string.notification_replay_bundle_request_title), notificationId);
    Transfer nudgeMe = request.getTransfer();
    try {
        List<Address> alreadyAddress = Store.getAddresses(context, request.getSeed());
        String useAddress = null;
        Address fullAddress = null;
        List<Address> emptyAttached = Store.getEmptyAttached(alreadyAddress);
        // allows up to 5 pre hidden addresses
        int max = Store.getAutoAttach() + 5;
        if (emptyAttached.size() <= max) {
            GetNewAddressRequest gnr = new GetNewAddressRequest(request.getSeed());
            gnr.setIndex(alreadyAddress.size());
            final GetNewAddressResponse gna = apiProxy.getNewAddress(String.valueOf(Store.getSeedRaw(context, request.getSeed())), gnr.getSecurity(), alreadyAddress.size(), gnr.isChecksum(), 1, gnr.isReturnAll());
            run.wallet.iota.api.responses.GetNewAddressResponse gnar = new run.wallet.iota.api.responses.GetNewAddressResponse(request.getSeed(), gna);
            Store.addAddress(context, gnr, gnar);
            alreadyAddress = Store.getAddresses(context, request.getSeed());
            useAddress = gnar.getAddresses().get(0);
            fullAddress = Store.isAlreadyAddress(useAddress, alreadyAddress);
        } else {
            fullAddress = emptyAttached.get(0);
            useAddress = fullAddress.getAddress();
        }
        // useAddress=nudgeMe
        // }
        NudgeResponse nresp = null;
        if (useAddress != null) {
            List<Transfer> transfers = new ArrayList<>();
            List<Transfer> alreadyTransfers = Store.getTransfers(context, request.getSeed());
            Transfer already = Store.isAlreadyTransfer(nudgeMe.getHash(), alreadyTransfers);
            if (already != null) {
                RunSendTransferResponse rstr = apiProxy.sendNudgeTransfer(String.valueOf(Store.getSeedRaw(context, request.getSeed())), nudgeMe.getHash(), useAddress, fullAddress.getIndex(), fullAddress.getSecurity(), request.getDepth(), request.getMinWeightMagnitude());
                nresp = new NudgeResponse(rstr);
                String gotHash = null;
                if (nresp != null && nresp.getSuccessfully()) {
                    gotHash = nresp.getHashes().get(0);
                    already.addNudgeHash(gotHash);
                } else {
                    already.addNudgeHash("Failed nudge");
                }
                jota.dto.response.GetNodeInfoResponse nodeInfo = apiProxy.getNodeInfo();
                if (nodeInfo != null) {
                    already.setMilestone(nodeInfo.getLatestMilestoneIndex());
                }
                if (gotHash != null) {
                    Transfer transfer = new Transfer(useAddress, 0, "RUN9NUDGE9HASH9" + nudgeMe.getHash() + "9END", RunIotaAPI.NUDGE_TAG);
                    transfer.setHash(gotHash);
                    transfer.setTimestamp(System.currentTimeMillis());
                    if (nodeInfo != null) {
                        transfer.setMilestoneCreated(nodeInfo.getLatestMilestoneIndex());
                    }
                    transfers.add(transfer);
                    Wallet wallet = Store.getWallet(context, request.getSeed());
                    Audit.setTransfersToAddresses(request.getSeed(), transfers, alreadyAddress, wallet, alreadyTransfers);
                    Audit.processNudgeAttempts(context, request.getSeed(), transfers);
                    Store.updateAccountData(context, request.getSeed(), wallet, transfers, alreadyAddress);
                }
                if (!AppService.isAppStarted()) {
                    NotificationHelper.responseNotification(context, R.drawable.nudge_orange, context.getString(R.string.notification_nudge_succeeded_title), notificationId);
                } else {
                    NotificationHelper.vibrate(context);
                }
                return nresp;
            }
        }
        // if(nresp==null) {
        NetworkError error = new NetworkError();
        error.setErrorType(NetworkErrorType.INVALID_HASH_ERROR);
        return error;
    } catch (ArgumentException e) {
        Log.e("NUDGE", "error: " + e.getMessage());
        NetworkError error = new NetworkError();
        error.setErrorType(NetworkErrorType.INVALID_HASH_ERROR);
        response = error;
    }
    return response;
}
Also used : GetNewAddressResponse(jota.dto.response.GetNewAddressResponse) Address(run.wallet.iota.model.Address) GetNewAddressRequest(run.wallet.iota.api.requests.GetNewAddressRequest) ArrayList(java.util.ArrayList) NudgeResponse(run.wallet.iota.api.responses.NudgeResponse) ApiResponse(run.wallet.iota.api.responses.ApiResponse) ArgumentException(jota.error.ArgumentException) Wallet(run.wallet.iota.model.Wallet) NudgeRequest(run.wallet.iota.api.requests.NudgeRequest) NetworkError(run.wallet.iota.api.responses.error.NetworkError) RunSendTransferResponse(jota.dto.response.RunSendTransferResponse) Transfer(run.wallet.iota.model.Transfer)

Aggregations

Address (run.wallet.iota.model.Address)23 ArrayList (java.util.ArrayList)10 Transfer (run.wallet.iota.model.Transfer)9 ApiResponse (run.wallet.iota.api.responses.ApiResponse)8 ArgumentException (jota.error.ArgumentException)7 NetworkError (run.wallet.iota.api.responses.error.NetworkError)6 Wallet (run.wallet.iota.model.Wallet)6 LinearLayout (android.widget.LinearLayout)5 TextView (android.widget.TextView)5 TransferTransaction (run.wallet.iota.model.TransferTransaction)5 GetNewAddressResponse (jota.dto.response.GetNewAddressResponse)4 Bundle (jota.model.Bundle)4 Paint (android.graphics.Paint)3 GetBalancesResponse (jota.dto.response.GetBalancesResponse)3 GetTransferResponse (jota.dto.response.GetTransferResponse)3 StopWatch (jota.utils.StopWatch)3 GetNewAddressRequest (run.wallet.iota.api.requests.GetNewAddressRequest)3 NudgeTransfer (run.wallet.iota.model.NudgeTransfer)3 SharedPreferences (android.content.SharedPreferences)2 Bundle (android.os.Bundle)2