private void checkAddress(AbstractAddress expected, AbstractAddress address) throws ShapeShiftException { if (!expected.getType().equals(address.getType()) || !expected.toString().equals(address.toString())) { String errorMsg = String.format("Address mismatch, expected %s but got %s.", expected, address); throw new ShapeShiftException(errorMsg); } }
@Override public long getItemId(final int position) { if (position == addresses.size()) { return 0; } return addresses.get(position).getId(); }
public static boolean is(CoinType myType, AbstractAddress address) { return address != null && myType.equals(address.getType()); } }
private String getAccountInfo(AbstractAddress address) { StringBuilder builder = new StringBuilder(); builder.append(getBaseUrl()).append(GET_REQUEST).append(GET_ACCOUNT) .append("&account=").append(address.toString()); return builder.toString(); }
boolean isExchangeNeeded() { return !sourceType.equals(sendToAddress.getType()); }
public URI getAddressRequestUriResponse(AbstractAddress address) { return getAddressRequestUriResponse(address.toString()); }
public ContentValues getContentValues() { ContentValues values = new ContentValues(); values.put(KEY_STATUS, status); values.put(KEY_DEPOSIT_ADDRESS, depositAddress.toString()); values.put(KEY_DEPOSIT_COIN_ID, depositAddress.getType().getId()); values.put(KEY_DEPOSIT_AMOUNT_UNIT, depositAmount.value); values.put(KEY_DEPOSIT_TXID, depositTransactionId); if (withdrawAddress != null) values.put(KEY_WITHDRAW_ADDRESS, withdrawAddress.toString()); if (withdrawAddress != null) values.put(KEY_WITHDRAW_COIN_ID, withdrawAddress.getType().getId()); if (withdrawAmount != null) values.put(KEY_WITHDRAW_AMOUNT_UNIT, withdrawAmount.value); if (withdrawTransactionId != null) values.put(KEY_WITHDRAW_TXID, withdrawTransactionId); return values; }
public static void edit(final FragmentManager fm, @Nonnull final AbstractAddress address) { edit(fm, address.getType(), address, null); }
public static List<CoinType> getPossibleTypes(AbstractAddress address) throws AddressMalformedException { return getPossibleTypes(address.toString()); }
@Override public Value getValue(AbstractWallet wallet) { if (tx.getSenderId() == wallet.getReceiveAddress().getId()) { return Value.valueOf(wallet.getCoinType(), -1 * tx.getAmountNQT()); } else { return Value.valueOf(wallet.getCoinType(), tx.getAmountNQT()); } }
@Override public int update(final Uri uri, final ContentValues values, final String selection, final String[] selectionArgs) { final AbstractAddress address = getDepositAddress(uri); values.put(KEY_DEPOSIT_COIN_ID, address.getType().getId()); values.put(KEY_DEPOSIT_ADDRESS, address.toString()); final int count = helper.getWritableDatabase().update(DATABASE_TABLE, values, KEY_DEPOSIT_COIN_ID + "=? AND " + KEY_DEPOSIT_ADDRESS + "=?", new String[]{address.getType().getId(), address.toString()}); if (count > 0) getContext().getContentResolver().notifyChange(uri, null); return count; }
/** * Get accounts that watch a specific address. Returns empty list if no account exists */ public List<WalletAccount> getAccounts(final AbstractAddress address) { lock.lock(); try { ImmutableList.Builder<WalletAccount> builder = ImmutableList.builder(); CoinType type = address.getType(); if (isAccountExists(type)) { for (WalletAccount account : accountsByType.get(type)) { if (account.isAddressMine(address)) { builder.add(account); } } } return builder.build(); } finally { lock.unlock(); } }
public static boolean hasMultipleTypes(AbstractAddress address) { return hasMultipleTypes(address.toString()); }
public static String resolveLabel(final Context context, final AbstractAddress address) { String label = null; if (context != null) { final Uri uri = contentUri(context.getPackageName(), address.getType()) .buildUpon().appendPath(address.toString()).build(); final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); if (cursor != null) { if (cursor.moveToFirst()) { label = cursor.getString(cursor.getColumnIndexOrThrow(AddressBookProvider.KEY_LABEL)); } cursor.close(); } } return label; }
public void onAddressSelected(AbstractAddress selectedAddress) { setAddress(selectedAddress, true); sendAmountType = selectedAddress.getType(); updateView(); }
@Override public boolean onActionItemClicked(ActionMode mode, MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.action_change_address_type: if (listener != null) listener.showPayToDialog(getAddress().toString()); mode.finish(); return true; } return super.onActionItemClicked(mode, menuItem); } };
public static boolean producesAddress(Script script, AbstractAddress address) { try { return BitAddress.from(address.getType(), script).equals(address); } catch (AddressMalformedException e) { return false; } } }
private void createAddress(WalletPocketHD account, @Nullable String newLabel) { if (account.canCreateFreshReceiveAddress()) { try { AbstractAddress newAddress = account.getFreshReceiveAddress( app.getConfiguration().isManualAddressManagement()); if (newLabel != null && !newLabel.isEmpty()) { final Uri uri = AddressBookProvider.contentUri(getActivity().getPackageName(), account.getCoinType()) .buildUpon().appendPath(newAddress.toString()).build(); final ContentValues values = new ContentValues(); values.put(AddressBookProvider.KEY_LABEL, newLabel); if (resolver != null) resolver.insert(uri, values); } } catch (Bip44KeyLookAheadExceededException e) { // Should not happen as we already checked if we can create a new address Toast.makeText(getActivity(), R.string.too_many_unused_addresses, Toast.LENGTH_LONG).show(); } } else { Toast.makeText(getContext(), R.string.too_many_unused_addresses, Toast.LENGTH_LONG).show(); } } }
public static BitAddress from(AbstractAddress address) throws AddressMalformedException { try { if (address instanceof BitAddress) { return (BitAddress) address; } else if (address instanceof Address) { return new BitAddress((Address) address); } else { return new BitAddress(address.getType(), address.toString()); } } catch (AddressFormatException e) { throw new AddressMalformedException(e); } }