wownero
/
wownerujo
Archived
4
0
Fork 0

Upgrade to monero v0.11.0.0 (#50)

upstream
m2049r 7 years ago
parent 9b82023a9f
commit bf64f77b10

1
.gitignore vendored

@ -1,2 +1,3 @@
.gradle
build
local.properties

@ -11,7 +11,7 @@ Another Android Monero Wallet
You may lose all your Moneroj if you use this App. Be cautious when spending on the mainnet.
### Random Notes
- Based off monero v0.10.3.1 with pull requests #2238, #2239 and #2289 applied => so can it be used on the mainnet!
- Based off monero v0.11.0.0 with PR #2289 applied
- currently only android32 (runs on 64-bit as well)
- works on the testnet & mainnet
- takes forever to sync due to 32-bit architecture

@ -147,7 +147,7 @@ target_link_libraries( monerujo
blockchain_db
lmdb
#easylogging # not for 0.10.3.1
easylogging
unbound
p2p

@ -465,7 +465,7 @@ JNIEXPORT jboolean JNICALL
Java_com_m2049r_xmrwallet_model_WalletManager_closeJ(JNIEnv *env, jobject instance,
jobject walletInstance) {
Bitmonero::Wallet *wallet = getHandle<Bitmonero::Wallet>(env, walletInstance);
bool closeSuccess = Bitmonero::WalletManagerFactory::getWalletManager()->closeWallet(wallet);
bool closeSuccess = Bitmonero::WalletManagerFactory::getWalletManager()->closeWallet(wallet, false);
if (closeSuccess) {
MyWalletListener *walletListener = getHandle<MyWalletListener>(env, walletInstance,
"listenerHandle");
@ -563,8 +563,13 @@ Java_com_m2049r_xmrwallet_model_Wallet_getIntegratedAddress(JNIEnv *env, jobject
JNIEXPORT jstring JNICALL
Java_com_m2049r_xmrwallet_model_Wallet_getSecretViewKey(JNIEnv *env, jobject instance) {
Bitmonero::Wallet *wallet = getHandle<Bitmonero::Wallet>(env, instance);
//return env->NewStringUTF(wallet->secretViewKey().c_str()); // changed in head
return env->NewStringUTF(wallet->privateViewKey().c_str());
return env->NewStringUTF(wallet->secretViewKey().c_str());
}
JNIEXPORT jstring JNICALL
Java_com_m2049r_xmrwallet_model_Wallet_getSecretSpendKey(JNIEnv *env, jobject instance) {
Bitmonero::Wallet *wallet = getHandle<Bitmonero::Wallet>(env, instance);
return env->NewStringUTF(wallet->secretSpendKey().c_str());
}
JNIEXPORT jboolean JNICALL

@ -100,6 +100,7 @@ public class GenerateReviewFragment extends Fragment {
String address;
String seed;
String viewKey;
String spendKey;
boolean isWatchOnly;
Wallet.Status status;
@ -129,6 +130,7 @@ public class GenerateReviewFragment extends Fragment {
address = wallet.getAddress();
seed = wallet.getSeed();
viewKey = wallet.getSecretViewKey();
spendKey = isWatchOnly ? getActivity().getString(R.string.watchonly_label) : wallet.getSecretSpendKey();
isWatchOnly = wallet.isWatchOnly();
if (closeWallet) wallet.close();
return true;
@ -147,12 +149,7 @@ public class GenerateReviewFragment extends Fragment {
tvWalletAddress.setText(address);
tvWalletMnemonic.setText(seed);
tvWalletViewKey.setText(viewKey);
String spend = isWatchOnly ? "" : "not available - use seed for recovery";
if (spend.length() > 0) { //TODO should be == 64, but spendkey is not in the API yet
tvWalletSpendKey.setText(spend);
} else {
tvWalletSpendKey.setText(getString(R.string.generate_wallet_watchonly));
}
tvWalletSpendKey.setText(spendKey);
} else {
// TODO show proper error message
// TODO end the fragment

@ -511,7 +511,6 @@ public class LoginActivity extends AppCompatActivity
}
}
private class MyProgressDialog extends ProgressDialog {
Activity activity;

@ -67,9 +67,10 @@ public class SendFragment extends Fragment {
Button bReallySend;
ProgressBar pbProgress;
final static int Mixins[] = {4, 6, 8, 10, 13}; // must match the layout XML
final static int Mixins[] = {4, 7, 12, 25}; // must match the layout XML
final static PendingTransaction.Priority Priorities[] =
{PendingTransaction.Priority.Priority_Low,
{PendingTransaction.Priority.Priority_Default,
PendingTransaction.Priority.Priority_Low,
PendingTransaction.Priority.Priority_Medium,
PendingTransaction.Priority.Priority_High}; // must match the layout XML
@ -443,6 +444,7 @@ public class SendFragment extends Fragment {
}
});
builder.setMessage(errorText);
builder.setCancelable(false);
builder.create().show();
}

@ -34,6 +34,7 @@ public class PendingTransaction {
}
public enum Priority {
Priority_Default(0),
Priority_Low(1),
Priority_Medium(2),
Priority_High(3),
@ -41,6 +42,8 @@ public class PendingTransaction {
public static Priority fromInteger(int n) {
switch (n) {
case 0:
return Priority_Default;
case 1:
return Priority_Low;
case 2:

@ -81,6 +81,8 @@ public class Wallet {
public native String getSecretViewKey();
public native String getSecretSpendKey();
public boolean store() {
return store("");
}

@ -193,14 +193,14 @@
<string name="big_amount">999999.999999999999</string>
<string-array name="mixin">
<item>Mixin 4</item>
<item>Mixin 6</item>
<item>Mixin 8</item>
<item>Mixin 10</item>
<item>Mixin 13</item>
<item>Ring Size 5</item>
<item>Ring Size 8</item>
<item>Ring Size 13</item>
<item>Ring Size 26</item>
</string-array>
<string-array name="priority">
<item>Default Priority</item>
<item>Low Priority</item>
<item>Medium Priority</item>
<item>High Priority</item>

@ -156,6 +156,7 @@ struct TransactionInfo
virtual uint64_t fee() const = 0;
virtual uint64_t blockHeight() const = 0;
virtual uint64_t confirmations() const = 0;
virtual uint64_t unlockTime() const = 0;
//! transaction_id
virtual std::string hash() const = 0;
virtual std::time_t timestamp() const = 0;
@ -312,10 +313,28 @@ struct Wallet
virtual std::string integratedAddress(const std::string &payment_id) const = 0;
/*!
* \brief privateViewKey - returns private view key
* \return - private view key
* \brief secretViewKey - returns secret view key
* \return - secret view key
*/
virtual std::string privateViewKey() const = 0;
virtual std::string secretViewKey() const = 0;
/*!
* \brief publicViewKey - returns public view key
* \return - public view key
*/
virtual std::string publicViewKey() const = 0;
/*!
* \brief secretSpendKey - returns secret spend key
* \return - secret spend key
*/
virtual std::string secretSpendKey() const = 0;
/*!
* \brief publicSpendKey - returns public spend key
* \return - public spend key
*/
virtual std::string publicSpendKey() const = 0;
/*!
* \brief store - stores wallet to file.
@ -361,6 +380,12 @@ struct Wallet
*/
virtual void setRefreshFromBlockHeight(uint64_t refresh_from_block_height) = 0;
/*!
* \brief getRestoreHeight - get wallet creation height
*
*/
virtual uint64_t getRefreshFromBlockHeight() const = 0;
/*!
* \brief setRecoveringFromSeed - set state recover form seed
*
@ -571,6 +596,9 @@ struct Wallet
virtual bool verifySignedMessage(const std::string &message, const std::string &addres, const std::string &signature) const = 0;
virtual bool parse_uri(const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector<std::string> &unknown_parameters, std::string &error) = 0;
virtual std::string getDefaultDataDir() const = 0;
/*
* \brief rescanSpent - Rescan spent outputs - Can only be used with trusted daemon
* \return true on success
@ -635,7 +663,7 @@ struct WalletManager
* \param wallet previously opened / created wallet instance
* \return None
*/
virtual bool closeWallet(Wallet *wallet) = 0;
virtual bool closeWallet(Wallet *wallet, bool store = true) = 0;
/*
* ! checks if wallet with the given name already exists
@ -644,7 +672,7 @@ struct WalletManager
/*!
* @brief TODO: delme walletExists - check if the given filename is the wallet
* @param path - filename
* @return
* @return - true if wallet exists
*/
virtual bool walletExists(const std::string &path) = 0;
@ -653,9 +681,9 @@ struct WalletManager
* @param keys_file_name - location of keys file
* @param password - password to verify
* @param watch_only - verify only view keys?
* @return
* @return - true if password is correct
*/
virtual bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, const bool watch_only) = 0;
virtual bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool watch_only) const = 0;
/*!
* \brief findWallets - searches for the wallet files by given path name recursively

@ -1,12 +0,0 @@
## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Sat May 13 17:52:51 CEST 2017
ndk.dir=C\:\\Users\\Test\\AppData\\Local\\Android\\Sdk\\ndk-bundle
sdk.dir=C\:\\Users\\Test\\AppData\\Local\\Android\\Sdk