Merge remote-tracking branch 'origin/master' into exportsave

This commit is contained in:
Overtorment 2020-12-16 14:31:52 +00:00
commit ad57bcea9f
17 changed files with 87 additions and 59 deletions

View file

@ -136,7 +136,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "6.0.0"
versionName "6.0.1"
multiDexEnabled true
missingDimensionStrategy 'react-native-camera', 'general'
testBuildType System.getProperty('testBuildType', 'debug') // This will later be used to control the test apk build type

View file

@ -40,12 +40,14 @@ export class HodlHodlApi {
constructor(apiKey = false) {
this.baseURI = 'https://hodlhodl.com/';
this.apiKey = apiKey || 'cmO8iLFgx9wrxCe9R7zFtbWpqVqpGuDfXR3FJB0PSGCd7EAh3xgG51vBKgNTAF8fEEpS0loqZ9P1fDZt';
this.useragent = process.env.HODLHODL_USERAGENT || 'bluewallet';
this._api = new Frisbee({ baseURI: this.baseURI });
}
_getHeaders() {
return {
headers: {
'User-Agent': this.useragent,
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
Authorization: 'Bearer ' + this.apiKey,
@ -56,6 +58,7 @@ export class HodlHodlApi {
_getHeadersWithoutAuthorization() {
return {
headers: {
'User-Agent': this.useragent,
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
},

View file

@ -1085,4 +1085,8 @@ export class MultisigHDWallet extends AbstractHDElectrumWallet {
if (fp.length !== 8) return false;
return /^[0-9A-F]{8}$/i.test(fp);
}
allowBatchSend() {
return true;
}
}

View file

@ -1513,7 +1513,7 @@
"$(inherited)",
"$(PROJECT_DIR)",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@ -1556,7 +1556,7 @@
"$(inherited)",
"$(PROJECT_DIR)",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@ -1597,7 +1597,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension;
@ -1636,7 +1636,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension;
PRODUCT_NAME = "BlueWallet - Bitcoin Price";
@ -1675,7 +1675,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.PriceWidget;
@ -1717,7 +1717,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.PriceWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1757,7 +1757,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.MarketWidget;
@ -1800,7 +1800,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.MarketWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1841,7 +1841,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationAndMarketWidget;
@ -1885,7 +1885,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationAndMarketWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1926,7 +1926,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationWidget;
@ -1969,7 +1969,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -2111,7 +2111,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch.extension;
@ -2151,7 +2151,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch.extension;
PRODUCT_NAME = "${TARGET_NAME}";
@ -2185,7 +2185,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
IBSC_MODULE = BlueWalletWatch_Extension;
INFOPLIST_FILE = BlueWalletWatch/Info.plist;
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch;
@ -2221,7 +2221,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
IBSC_MODULE = BlueWalletWatch_Extension;
INFOPLIST_FILE = BlueWalletWatch/Info.plist;
MARKETING_VERSION = 6.0.0;
MARKETING_VERSION = 6.0.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch;
PRODUCT_NAME = "$(TARGET_NAME)";

View file

@ -35,7 +35,7 @@ Private Schlüssel verlassen niemals Dein Gerät.
Du kontrollierst Deine privaten Schlüssel
Definierbare Transaktionsgebühren
Starting from 1 Satoshi. Defined by you, the user
Beginnend bei 1 Satoshi. Du entscheidest.
Replace-By-Fee
(RBF) Speed-up your transactions by increasing the fee (BIP125)

View file

@ -1 +1 @@
BlueWallet - Cartera Bitcoin
BlueWallet - Cartera de Bitcoin

View file

@ -1,7 +1,8 @@
* Open Source
* Volledig versleutelt
* Plausible deniability
* Plausibele ontkenning
* Aanpasbare transactievergoedingen
* Replace-By-Fee
* Watch-only (Sentinel)
* SegWit
* Watch-only portomonnees
* Lightning network

View file

@ -1,48 +1,53 @@
Uma carteira de Bitcoin que permite guardar, enviar Bitcoin, receber Bitcoin e comprar Bitcoin, com foco na segurança e simplicidade.
Uma carteira Bitcoin que permite armazenar, enviar bitcoin, receber bitcoin e comprar bitcoin com foco em segurança e simplicidade.
Na BlueWallet, uma Carteira de Bitcoin em que você controla as chaves privadas. Uma Carteira de Bitcoin criada por utilizadores de Bitcoin para a comunidade.
BlueWallet é uma carteira de bitcoin onde você tem posse das chaves privadas. Uma carteira Bitcoin criada para a comunidade por usuários do Bitcoin.
Você pode fazer transações com qualquer pessoa no mundo e transformar o sistema financeiro diretamente do seu bolso.
Você pode fazer transações com qualquer pessoa no mundo e transformar o sistema financeiro direto do seu bolso.
Pode criar gratuitamente uma quantidade ilimitada de carteiras de Bitcoin ou importar as carteiras que já tem para o seu aplicativo BlueWallet. É fácil e rápido!
Crie um número ilimitado de carteiras de bitcoin gratuitamente ou importe sua carteira existente. É simples e fácil.
---
_____
O que você vai encontrar:
Entenda o que oferecemos:
1 - Segurança em primeiro lugar
Código aberto/Open Source
Com licença MIT, você pode construí-lo e executá-lo por conta própria. Feito em React Native.
1 - Criada com segurança em mente
Open Source
Licença MIT, você pode compilar e rodar a sua própria versão! Feita com ReactNative
Negação plausível
Senha falsa que decripta wallets falsas. Para casos especias onde possa ser obrigado a revelar a sua senha, pode revelar a senha falsa, mantenha as suas bitcoin protegidas.
Senha que descriptografa carteiras de bitcoin falsas para utilizar em situações de estresse
Encriptação completa
Construída em cima da multi-camada de criptografia do iOS, A BlueWallet criptografa tudo com uma adicional senha de usuário.
Totalmente criptografada
Além da criptografia multicamadas do iOS, criptografamos tudo com senhas adicionais
Carteiras SegWit e HD
SegWit suportado (Ajuda a diminuir as taxas ainda mais) e carteiras HD ativadas.
Nó completo
Conecte com seu full node Bitcoin usando Electrum
2 - Focada na sua experiência
Armazenamento frio (Cold)
Conecte com sua hardwallet e mantenha suas moedas em armazenamento frio
Esteja em control
As chaves privadas nunca deixam o celular, você controla as suas chaves privadas.
2 - Foco na sua experiência
Fique no controle
As chaves privadas nunca saem do dispositivo.
Você controla suas chaves privadas
Taxas flexíveis
A começar em 1 Satoshi. Não page a mais por transações.
A partir de 1 satoshi. Você decide
Substituição de Taxa (RBF)
Acelere as suas transações aumentando a taxa (BIP125). Pode também alterar o endereço de destinatário em transações não confirmadas.
Replace-By-Fee
(RBF) Acelere suas transações aumentando a taxa depois de enviar (BIP125)
Carteira de Watch-only
Carteira de Watch-only/assistir apenas, observe o seu armazenamento externo de Bitcoin sem ter de lhe tocar.
Carteiras Watch-only
Carteiras somente leitura para você observar seu armazenamento frio sem tocar a hardwallet.
Lightning Network
Carteira de Lightning sem configurações. Transações baratas e ultra rápidas com a melhor experiência do Bitcoin.
Carteira Lightning sem precisar configurar nada. Transações muito baratas e rápidas para ter a melhor experiência com o Bitcoin.
Comprar Bitcoin
Agora já pode comprar Bitcoin diretamente sem sair da sua carteira e com as suas chaves privadas.
Compre Bitcoin
Faça parte da revolução financeira aberta com a habilidade de comprar Bitcoin direto na sua carteira.
Local Trader
Plataforma p2p Bitcoin de trading, que permite comprar e vender bitcoin diretamente para outros usuários sem terceiros.
Trader local
Uma plataforma de negociação de Bitcoin p2p que permite comprar e vender bitcoin de outros usuários diretamente, sem terceiros.

View file

@ -1,7 +1,7 @@
Особенности
* Открытый исходный код
* Все данные шифруются
* Правдоподобное отрицание
* Двойное дно
* Гибкие настройки комиссии
* Повышение комиссии за транзакцию (RBF)
* SegWit
* Lightning network

View file

@ -304,6 +304,7 @@
"cancel_explain": "We will replace this transaction with the one that pays you and has higher fees. This effectively cancels transaction. This is called RBF—Replace by Fee.",
"cancel_no": "This transaction is not replaceable.",
"cancel_title": "Cancel this transaction (RBF)",
"confirmations_lowercase": "{confirmations} confirmations",
"cpfp_create": "Create",
"cpfp_exp": "We will create another transaction that spends your unconfirmed transaction. The total fee will be higher than the original transaction fee, so it should be mined faster. This is called CPFP - Child Pays For Parent.",
"cpfp_no_bump": "This transaction is not bumpable",
@ -442,6 +443,7 @@
"needs": "It needs",
"what_is_vault_description_number_of_vault_keys": " {m} vault keys ",
"what_is_vault_description_to_spend": "to spend and a third one you \ncan use as backup.",
"what_is_vault_description_to_spend_other": "to spend.",
"quorum": "{m} of {n} quorum",
"quorum_header": "Quorum",
"of": "of",

View file

@ -388,6 +388,7 @@
"cancel_explain": "Reemplazaremos esta transacción con la que te paga y tiene tasas más altas, lo que cancelará la transacción. A esto se le llama RBF (Replace By Fee).",
"cancel_no": "Esta transacción no se puede reemplazar",
"cancel_title": "Cancelar esta transacción (RBF)",
"confirmations_lowercase": "{confirmations} confirmaciones",
"cpfp_create": "Crear",
"cpfp_exp": "Crearemos otra transacción que gastará tu otra transacción aun no confirmada. La comisión total será mayor que la comisión original, lo cual debería hacer que sea minada antes. A esto se le llama CPFP (Child Pays For Parent).",
"cpfp_no_bump": "Esta transacción no se puede acelerar",

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "bluewallet",
"version": "6.0.0",
"version": "6.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View file

@ -1,6 +1,6 @@
{
"name": "bluewallet",
"version": "6.0.0",
"version": "6.0.1",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.10.4",

View file

@ -78,7 +78,7 @@ export default class SendCreate extends Component {
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('Storage Permission: Granted');
const filePath = RNFS.DownloadDirectoryPath + `/${this.fileName}`;
const filePath = RNFS.DownloadDirectoryPath + `/${fileName}`;
try {
await RNFS.writeFile(filePath, this.state.tx);
alert(loc.formatString(loc.send.txSaved, { filePath }));

View file

@ -336,7 +336,11 @@ const TransactionsStatus = () => {
)}
<View style={[styles.confirmations, stylesHook.confirmations]}>
<Text style={styles.confirmationsText}>{tx.confirmations > 6 ? '6+' : tx.confirmations} confirmations</Text>
<Text style={styles.confirmationsText}>
{loc.formatString(loc.transactions.confirmations_lowercase, {
confirmations: tx.confirmations > 6 ? '6+' : tx.confirmations,
})}
</Text>
</View>
</BlueCard>

View file

@ -205,7 +205,9 @@ const WalletsAddMultisig = () => {
<Text style={[styles.textdescBold, stylesHook.textdesc]}>
{loc.formatString(loc.multisig.what_is_vault_description_number_of_vault_keys, { m })}
</Text>
<Text style={[styles.textdesc, stylesHook.textdesc]}>{loc.multisig.what_is_vault_description_to_spend}</Text>
<Text style={[styles.textdesc, stylesHook.textdesc]}>
{m === 2 && n === 3 ? loc.multisig.what_is_vault_description_to_spend : loc.multisig.what_is_vault_description_to_spend_other}
</Text>
</Text>
</View>
{isAdvancedModeEnabledRender && (

View file

@ -85,7 +85,13 @@ it('can create escrow address', () => {
// console.log(tx.toHex());
});
describe('HodlHodl API', function () {
/**
* Use only for development.
* Run via `NODE_OPTIONS=--insecure-http-parser=true ./node_modules/.bin/jest tests/integration/hodlhodl.test.js`
* Also, process.env.HODLHODL_USERAGENT might be needed.
* All those a part of HodlHodl DDOS protection.
*/
describe.skip('HodlHodl API', function () {
it('can fetch countries & and own country code', async () => {
if (process.env.GITHUB_ACTIONS) {
// dont run here as it always fails