diff --git a/App.test.js b/App.test.js
index 6033d4bb..b5c8c685 100644
--- a/App.test.js
+++ b/App.test.js
@@ -294,6 +294,8 @@ it('Wallet can fetch TXs', async () => {
delete tx0.confirmations;
delete txExpected.confirmations;
+ delete tx0.preference; // that bs is not always the same
+ delete txExpected.preference;
assert.deepEqual(tx0, txExpected);
});
diff --git a/LightningCustodianWallet.test.js b/LightningCustodianWallet.test.js
index 0903baee..fd8ab390 100644
--- a/LightningCustodianWallet.test.js
+++ b/LightningCustodianWallet.test.js
@@ -298,6 +298,17 @@ describe('LightningCustodianWallet', () => {
await l2.checkRouteInvoice(invoice);
+ // first, tip invoice without amount should not work:
+ let gotError = false;
+ try {
+ await l2.payInvoice(invoice);
+ } catch (_) {
+ gotError = true;
+ }
+ assert.ok(gotError);
+
+ // then, pay:
+
let start = +new Date();
await l2.payInvoice(invoice, 3);
let end = +new Date();
diff --git a/ios/BlueWallet/Info.plist b/ios/BlueWallet/Info.plist
index 986d5684..5ff3e57d 100644
--- a/ios/BlueWallet/Info.plist
+++ b/ios/BlueWallet/Info.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 3.5.6
+ 3.5.7
CFBundleSignature
????
CFBundleURLTypes
@@ -33,7 +33,7 @@
CFBundleVersion
- 223
+ 224
ITSAppUsesNonExemptEncryption
LSRequiresIPhoneOS
diff --git a/ios/fastlane/metadata/en-US/release_notes.txt b/ios/fastlane/metadata/en-US/release_notes.txt
index e56eec84..be66e970 100644
--- a/ios/fastlane/metadata/en-US/release_notes.txt
+++ b/ios/fastlane/metadata/en-US/release_notes.txt
@@ -1,3 +1,19 @@
+v.3.5.6
+-------
+
+ADD: Loading indicator for wallet name change and wallet delete
+ADD: Added CZK fiat
+ADD: Alert user if they are trying to create a lightning wallet without a bitcoin wallet
+ADD: French
+ADD: DK - Danish Language Support
+ADD: Thai locale
+ADD: Dutch translation
+FIX: Main wallet list shows transaction unit that is preferred by wallet
+FIX: Export QRCode was too big on iPad
+FIX: Don't override existing tx information when scanning invalid QR
+FIX: Satoshis are now human-readable
+FIX: crash when RBF
+
v3.5.5
------
@@ -22,4 +38,4 @@ FIX: Don't allow user to pay for an invoice created with the same wallet.
FIX: If. balance was not a string, app would crash.
FIX: Changed language selection screen to FlatList
FIX: Made amount tap area larger
-FIX: Fixed an issue in currency settings where the checkmark wouldn't be in the correct preference
\ No newline at end of file
+FIX: Fixed an issue in currency settings where the checkmark wouldn't be in the correct preference* Merge branch 'master' of github.com:BlueWallet/BlueWallet
diff --git a/loc/hr_HR.js b/loc/hr_HR.js
new file mode 100644
index 00000000..4a2c094e
--- /dev/null
+++ b/loc/hr_HR.js
@@ -0,0 +1,212 @@
+module.exports = {
+ _: {
+ storage_is_encrypted: 'Vaš spremnik je kriptiran. Za dekripcoju je potrebna lozinka.',
+ enter_password: 'Unesi lozinku',
+ bad_password: 'Kriva lozinka, pokušaj ponovo',
+ months_ago: 'mjesecima unazad',
+ days_ago: 'danima unazad',
+ hours_ago: 'satima unazad',
+ minutes_ago: 'minutama unazad',
+ never: 'nikad',
+ },
+ wallets: {
+ select_wallet: 'Odaberi volet',
+ options: 'opcije',
+ list: {
+ app_name: 'Blue Wallet',
+ title: 'Voleti',
+ header: 'Volet je par privatnog ključa (tajna!) i javne adrese' + 'koju slobodno možete dijeliti kada primate novce.',
+ add: 'Dodaj volet',
+ create_a_wallet: 'Stvori novi volet',
+ create_a_wallet1: 'Ne košta ništa i možete',
+ create_a_wallet2: 'ih stvoriti moliko želite',
+ latest_transaction: 'posljednja transakcija',
+ empty_txs1: 'Vaše transakcije će se pojaviti ovdje',
+ empty_txs2: 'trenutno nema nijedne',
+ tap_here_to_buy: 'Klikni ovdje za kupnju Bitkoina',
+ },
+ reorder: {
+ title: 'Uredi volete',
+ },
+ add: {
+ title: 'Dodaj volet',
+ description: 'Možete ili skenirati bekap papirnati volet (u WIF - Wallet Import Format), ili stvoriti novi volet. Segwit je podržan.',
+ scan: 'Skeniraj',
+ create: 'Stvori',
+ label_new_segwit: 'Novi SegWit',
+ label_new_lightning: 'Novi Lightning',
+ wallet_name: 'ime voleta',
+ wallet_type: 'tip',
+ or: 'ili',
+ import_wallet: 'Unesi volet',
+ imported: 'Unešeno',
+ coming_soon: 'Dolazi uskoro',
+ lightning: 'Lightning',
+ bitcoin: 'Bitcoin',
+ },
+ details: {
+ title: 'Volet',
+ address: 'Adresa',
+ type: 'Tip',
+ label: 'Oznaka',
+ destination: 'odredište',
+ description: 'opis',
+ are_you_sure: 'Jesi li ziher?',
+ yes_delete: 'Da, briši',
+ no_cancel: 'Ne, otiaži',
+ delete: 'Obriši',
+ save: 'Pohrani',
+ delete_this_wallet: 'Obriši ovaj volet',
+ export_backup: 'Izvoz / bekap',
+ buy_bitcoin: 'Kupi Bitcoin',
+ show_xpub: 'Prikaži voletov XPUB',
+ },
+ export: {
+ title: 'izvoz voleta',
+ },
+ xpub: {
+ title: 'volet XPUB',
+ copiedToClipboard: 'Kopirano u međuspremnik.',
+ },
+ import: {
+ title: 'unesi',
+ explanation:
+ 'Ovdje upiši svoj mnemonik slijed riječi, privatni ključ, WIF, ili što već imaš. BlueWallet će pokušati porocijeniti format i unesti tvoj volet.',
+ imported: 'Uneseno',
+ error: 'Neuspješan unos. Molimo pažljivo provjerite ispravnost unesenih podataka.',
+ success: 'Uspjeh',
+ do_import: 'Unesi',
+ scan_qr: 'ili skeniraj QR kod?',
+ },
+ scanQrWif: {
+ go_back: 'Povratak',
+ cancel: 'Otkaži',
+ decoding: 'Dekodiranje',
+ input_password: 'Unesi lozinku',
+ password_explain: 'Ovo je BIP38 enkriptiran privatni ključ',
+ bad_password: 'Pogrešna lozinka',
+ wallet_already_exists: 'Ovaj volet već postoji',
+ bad_wif: 'Pogrešan WIF',
+ imported_wif: 'Unesen WIF ',
+ with_address: ' sa adresom ',
+ imported_segwit: 'Unesen SegWit',
+ imported_legacy: 'Unesen Legacy',
+ imported_watchonly: 'Unesen samo za pregled',
+ },
+ },
+ transactions: {
+ list: {
+ tabBarLabel: 'Transakcije',
+ title: 'transakcije',
+ description: 'Popis dolaznih i odlaznih transakcija vašeg voleta.',
+ conf: 'konf.',
+ },
+ details: {
+ title: 'Transakcija',
+ from: 'Od',
+ to: 'Za',
+ copy: 'Kopiraj',
+ transaction_details: 'Detalji transakcije',
+ show_in_block_explorer: 'Prikaži u blok eksploreru',
+ },
+ },
+ send: {
+ header: 'Šalji',
+ details: {
+ title: 'Stvori transakciju',
+ amount_field_is_not_valid: 'Iznos nije ispravan',
+ fee_field_is_not_valid: 'Ovo polje nije ispravno',
+ address_field_is_not_valid: 'Polje adrese nije ispravno',
+ total_exceeds_balance: 'Iznos je veći od raspoloživog.',
+ create_tx_error: 'Pogreška prilikom stvaranja transakcije. Molimo provijeri da je adresa ispravna.',
+ address: 'adresa',
+ amount_placeholder: 'iznos za slanje (u BTC)',
+ fee_placeholder: 'plus trošak transakcije (u BTC)',
+ note_placeholder: 'bilješka za evidenciju',
+ cancel: 'Otkaži',
+ scan: 'Skeniraj',
+ send: 'Šalji',
+ create: 'Stvori',
+ remaining_balance: 'Preostali saldo',
+ },
+ confirm: {
+ header: 'Potvrdi',
+ sendNow: 'Pošalji sad',
+ },
+ success: {
+ done: 'U redu',
+ },
+ create: {
+ details: 'Detalji',
+ title: 'stvori transakciju',
+ error: 'Pogreška. Neispravna adresa ili iznos slanja?',
+ go_back: 'Nazad',
+ this_is_hex: 'Ovoj je hex transakcije, potpisan i spreman za objavljivanje na mrežu.',
+ to: 'Za',
+ amount: 'Iznos',
+ fee: 'Trošak slanja',
+ tx_size: 'TX veličina',
+ satoshi_per_byte: 'Satoshi / byte',
+ memo: 'Bilješka',
+ broadcast: 'Objavi',
+ not_enough_fee: 'Trošak slanja je premal. Povećaj ga.',
+ },
+ },
+ receive: {
+ header: 'Primanje',
+ details: {
+ title: 'Pokaži ovu adresu platitelju',
+ share: 'pokaži',
+ copiedToClipboard: 'Kopirano u međuspremnik.',
+ label: 'Opis',
+ setAmount: 'Odredi iznos za primiti',
+ },
+ },
+ buyBitcoin: {
+ header: 'Kupi Bitcoin',
+ tap_your_address: 'Klikni na adresu za spremanje u međuspremnik:',
+ copied: 'Spremljeno u međuspremnik!',
+ },
+ settings: {
+ header: 'Postavke',
+ plausible_deniability: 'Fejk volet...',
+ storage_not_encrypted: 'Spremnik: nije kriptiran',
+ storage_encrypted: 'Spremnik: je kriptiran',
+ password: 'Lozinka',
+ password_explain: 'Upiši lozinku koja će dekriptirati spremnik.',
+ retype_password: 'Ponovi lozinku',
+ passwords_do_not_match: 'Lozinke su različite',
+ encrypt_storage: 'Kriptiraj spremnik',
+ about: 'Iznos',
+ language: 'Jezik',
+ currency: 'Valuta',
+ },
+ plausibledeniability: {
+ title: 'Fejk volet',
+ help:
+ 'U iznimnim okolnostima netko gadan (pa još ako drži oklagiju) te' +
+ 'može neljubazno pritisnuti da mu otkriješ lozinku za ovaj volet.' +
+ 'BlueWallet ti čuva leđa buraz. Nemaš brige. Gledaj.' +
+ 'Stvoriti ćemo dupli volet sa drugačijom lozinkom. Haha, žišku?' +
+ 'Pa kad se ovaj počne pjeniti a ti vidiš da je vrag odnio šalu' +
+ 'ti mu podvali ovaj drugi volet. Eto mu ga. Nek si cucla.',
+ help2: 'Novi spremnik će biti posve funkcionalan, možeš pohraniti koliko' + 'misliš da je potrebno da izgleda uvjerljivo.',
+ create_fake_storage: 'Stvori fejk enkriptirani spremnik',
+ go_back: 'Povratak',
+ create_password: 'Unesi lozinku',
+ create_password_explanation: 'Lozinka za fejk spremnik treba biti drugačija od lozinke za oriđi spremnik',
+ password_should_not_match: 'Lozinka za fejk spremnik treba biti drugačija od lozinke za oriđi spremnik',
+ retype_password: 'Ponovi lozinku',
+ passwords_do_not_match: 'Lozinke ne pašu, pokušaj ponovo',
+ success: 'Uspjeh',
+ },
+ lnd: {
+ title: 'Uredi novčeke',
+ choose_source_wallet: 'Odaberi izvor',
+ refill_lnd_balance: 'Dopuni Lightning volet saldo',
+ refill: 'Dopuni',
+ withdraw: 'Isprazni',
+ expired: 'Isteklo',
+ sameWalletAsInvoiceError: 'Ne možeš platiti račun s istim voletom s kojim si račun stvorio, ono.',
+ },
+};
diff --git a/loc/index.js b/loc/index.js
index f08d7a0a..886a5c0a 100644
--- a/loc/index.js
+++ b/loc/index.js
@@ -33,7 +33,8 @@ let strings;
locale === 'cs-cz' ||
locale === 'th-th' ||
locale === 'da-dk' ||
- locale === 'nl-nl'
+ locale === 'nl-nl' ||
+ locale === 'hr-hr'
) {
locale = locale.replace('-', '_');
strings.setLanguage(locale);
@@ -57,6 +58,7 @@ strings = new Localization({
th_th: require('./th_TH.js'),
nl_nl: require('./nl_NL.js'),
fr_fr: require('./fr_FR.js'),
+ hr_hr: require('./hr_HR.js'),
});
strings.saveLanguage = lang => AsyncStorage.setItem(AppStorage.LANG, lang);
diff --git a/models/fiatUnit.js b/models/fiatUnit.js
index d6e8ceb5..5d4d94bf 100644
--- a/models/fiatUnit.js
+++ b/models/fiatUnit.js
@@ -6,6 +6,7 @@ export const FiatUnit = Object.freeze({
CNY: { endPointKey: 'CNY', symbol: '¥', locale: 'zh-CN' },
EUR: { endPointKey: 'EUR', symbol: '€', locale: 'en-EN' },
GBP: { endPointKey: 'GBP', symbol: '£', locale: 'en-GB' },
+ HRK: { endPointKey: 'HRK', symbol: 'HRK', locale: 'hr-HR' },
INR: { endPointKey: 'INR', symbol: '₹', locale: 'hi-HN' },
JPY: { endPointKey: 'JPY', symbol: '¥', locale: 'ja-JP' },
RUB: { endPointKey: 'RUB', symbol: '₽', locale: 'ru-RU' },
diff --git a/package.json b/package.json
index 51c57c40..0345718e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "BlueWallet",
- "version": "3.5.5",
+ "version": "3.5.6",
"devDependencies": {
"babel-eslint": "^8.2.6",
"babel-jest": "23.6.0",
diff --git a/screen/settings/language.js b/screen/settings/language.js
index 09e4fe25..b5af8d0b 100644
--- a/screen/settings/language.js
+++ b/screen/settings/language.js
@@ -19,6 +19,7 @@ export default class Language extends Component {
availableLanguages: [
{ label: 'English', value: 'en' },
{ label: 'Česky (CZ)', value: 'cs_cz' },
+ { label: 'Croatian (HR)', value: 'hr_hr' },
{ label: 'Danish (DK)', value: 'da_dk' },
{ label: 'Deutsch (DE)', value: 'de_de' },
{ label: 'Dutch (NL)', value: 'nl_nl' },