mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-22 19:49:22 +00:00
ens working
This commit is contained in:
parent
d8d2335a5f
commit
a52c7b053e
33 changed files with 133 additions and 63 deletions
|
@ -211,9 +211,9 @@ I/flutter ( 4474): Gas Used: 53000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String?> checkEnsName(String ensName) async {
|
Future<String> checkEnsName(String ensName) async {
|
||||||
if (_client == null) {
|
if (_client == null) {
|
||||||
return null;
|
return "";
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
final ens = Ens(client: _client!);
|
final ens = Ens(client: _client!);
|
||||||
|
@ -222,7 +222,7 @@ I/flutter ( 4474): Gas Used: 53000
|
||||||
return addr.hex;
|
return addr.hex;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print(e);
|
print(e);
|
||||||
return null;
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -508,4 +508,8 @@ abstract class EthereumWalletBase
|
||||||
@override
|
@override
|
||||||
String signMessage(String message, {String? address = null}) =>
|
String signMessage(String message, {String? address = null}) =>
|
||||||
bytesToHex(_ethPrivateKey.signPersonalMessageToUint8List(ascii.encode(message)));
|
bytesToHex(_ethPrivateKey.signPersonalMessageToUint8List(ascii.encode(message)));
|
||||||
|
|
||||||
|
Future<String> fetchEnsAddress(String name) async {
|
||||||
|
return await _client.checkEnsName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
import 'package:cake_wallet/core/address_validator.dart';
|
import 'package:cake_wallet/core/address_validator.dart';
|
||||||
import 'package:cake_wallet/core/yat_service.dart';
|
import 'package:cake_wallet/core/yat_service.dart';
|
||||||
|
import 'package:cake_wallet/di.dart';
|
||||||
import 'package:cake_wallet/entities/openalias_record.dart';
|
import 'package:cake_wallet/entities/openalias_record.dart';
|
||||||
import 'package:cake_wallet/entities/parsed_address.dart';
|
import 'package:cake_wallet/entities/parsed_address.dart';
|
||||||
import 'package:cake_wallet/entities/unstoppable_domain_address.dart';
|
import 'package:cake_wallet/entities/unstoppable_domain_address.dart';
|
||||||
import 'package:cake_wallet/entities/emoji_string_extension.dart';
|
import 'package:cake_wallet/entities/emoji_string_extension.dart';
|
||||||
|
import 'package:cake_wallet/ethereum/ethereum.dart';
|
||||||
|
import 'package:cake_wallet/store/app_store.dart';
|
||||||
import 'package:cake_wallet/twitter/twitter_api.dart';
|
import 'package:cake_wallet/twitter/twitter_api.dart';
|
||||||
import 'package:cw_core/crypto_currency.dart';
|
import 'package:cw_core/crypto_currency.dart';
|
||||||
import 'package:cw_core/wallet_type.dart';
|
import 'package:cw_core/wallet_type.dart';
|
||||||
import 'package:cake_wallet/entities/fio_address_provider.dart';
|
import 'package:cake_wallet/entities/fio_address_provider.dart';
|
||||||
|
import 'package:cw_ethereum/ethereum_wallet.dart';
|
||||||
|
|
||||||
class AddressResolver {
|
class AddressResolver {
|
||||||
AddressResolver({required this.yatService, required this.walletType});
|
AddressResolver({required this.yatService, required this.walletType});
|
||||||
|
@ -104,6 +108,15 @@ class AddressResolver {
|
||||||
return ParsedAddress.fetchOpenAliasAddress(record: record, name: text);
|
return ParsedAddress.fetchOpenAliasAddress(record: record, name: text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (text.contains(".")) {
|
||||||
|
var wallet = getIt.get<AppStore>().wallet!;
|
||||||
|
if (wallet.type == WalletType.ethereum) {
|
||||||
|
final address = await ethereum!.fetchEnsAddress(wallet, text);
|
||||||
|
if (address.isNotEmpty) {
|
||||||
|
return ParsedAddress.fetchEnsAddress(name: text, address: address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print(e.toString());
|
print(e.toString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:cake_wallet/entities/openalias_record.dart';
|
import 'package:cake_wallet/entities/openalias_record.dart';
|
||||||
import 'package:cake_wallet/entities/yat_record.dart';
|
import 'package:cake_wallet/entities/yat_record.dart';
|
||||||
|
|
||||||
enum ParseFrom { unstoppableDomains, openAlias, yatRecord, fio, notParsed, twitter, contact }
|
enum ParseFrom { unstoppableDomains, openAlias, yatRecord, fio, notParsed, twitter, ens, contact }
|
||||||
|
|
||||||
class ParsedAddress {
|
class ParsedAddress {
|
||||||
ParsedAddress({
|
ParsedAddress({
|
||||||
|
@ -77,8 +77,17 @@ class ParsedAddress {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
factory ParsedAddress.fetchEnsAddress({required String address, required String name}) {
|
||||||
|
return ParsedAddress(
|
||||||
|
addresses: [address],
|
||||||
|
name: name,
|
||||||
|
parseFrom: ParseFrom.ens,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
final List<String> addresses;
|
final List<String> addresses;
|
||||||
final String name;
|
final String name;
|
||||||
final String description;
|
final String description;
|
||||||
final ParseFrom parseFrom;
|
final ParseFrom parseFrom;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,4 +131,9 @@ class CWEthereum extends Ethereum {
|
||||||
void updateEtherscanUsageState(WalletBase wallet, bool isEnabled) {
|
void updateEtherscanUsageState(WalletBase wallet, bool isEnabled) {
|
||||||
(wallet as EthereumWallet).updateEtherscanUsageState(isEnabled);
|
(wallet as EthereumWallet).updateEtherscanUsageState(isEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String> fetchEnsAddress(WalletBase wallet, String name) async {
|
||||||
|
return (wallet as EthereumWallet).fetchEnsAddress(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,11 @@ Future<String> extractAddressFromParsed(
|
||||||
content = S.of(context).address_from_domain(parsedAddress.name);
|
content = S.of(context).address_from_domain(parsedAddress.name);
|
||||||
address = parsedAddress.addresses.first;
|
address = parsedAddress.addresses.first;
|
||||||
break;
|
break;
|
||||||
|
case ParseFrom.ens:
|
||||||
|
title = S.of(context).address_detected;
|
||||||
|
content = S.of(context).address_from_ens(parsedAddress.name);
|
||||||
|
address = parsedAddress.addresses.first;
|
||||||
|
break;
|
||||||
case ParseFrom.openAlias:
|
case ParseFrom.openAlias:
|
||||||
title = S.of(context).address_detected;
|
title = S.of(context).address_detected;
|
||||||
content = S.of(context).extracted_address_content('${parsedAddress.name} (OpenAlias)');
|
content = S.of(context).extracted_address_content('${parsedAddress.name} (OpenAlias)');
|
||||||
|
|
|
@ -688,5 +688,6 @@
|
||||||
"onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.",
|
"onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.",
|
||||||
"default_buy_provider": "مزود شراء الافتراضي",
|
"default_buy_provider": "مزود شراء الافتراضي",
|
||||||
"ask_each_time": "اسأل في كل مرة",
|
"ask_each_time": "اسأل في كل مرة",
|
||||||
"buy_provider_unavailable": "مزود حاليا غير متوفر."
|
"buy_provider_unavailable": "مزود حاليا غير متوفر.",
|
||||||
|
"address_from_ens": "هذا ${domain} العنوان من ON ENS"
|
||||||
}
|
}
|
|
@ -684,5 +684,6 @@
|
||||||
"onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.",
|
"onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.",
|
||||||
"default_buy_provider": "Доставчик по подразбиране купува",
|
"default_buy_provider": "Доставчик по подразбиране купува",
|
||||||
"ask_each_time": "Питайте всеки път",
|
"ask_each_time": "Питайте всеки път",
|
||||||
"buy_provider_unavailable": "Понастоящем доставчик не е наличен."
|
"buy_provider_unavailable": "Понастоящем доставчик не е наличен.",
|
||||||
|
"address_from_ens": "Този адрес ${domain} е от on ens"
|
||||||
}
|
}
|
|
@ -684,5 +684,6 @@
|
||||||
"onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.",
|
"onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.",
|
||||||
"default_buy_provider": "Výchozí poskytovatel nákupu",
|
"default_buy_provider": "Výchozí poskytovatel nákupu",
|
||||||
"ask_each_time": "Zeptejte se pokaždé",
|
"ask_each_time": "Zeptejte se pokaždé",
|
||||||
"buy_provider_unavailable": "Poskytovatel aktuálně nedostupný."
|
"buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.",
|
||||||
|
"address_from_ens": "Tato adresa je z ${domain} On On ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.",
|
"onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.",
|
||||||
"default_buy_provider": "Standard-Kaufanbieter",
|
"default_buy_provider": "Standard-Kaufanbieter",
|
||||||
"ask_each_time": "Jedes Mal fragen",
|
"ask_each_time": "Jedes Mal fragen",
|
||||||
"buy_provider_unavailable": "Anbieter derzeit nicht verfügbar."
|
"buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.",
|
||||||
|
"address_from_ens": "Diese Adresse ${domain} stammt von one"
|
||||||
}
|
}
|
|
@ -693,5 +693,6 @@
|
||||||
"default_buy_provider": "Default Buy Provider",
|
"default_buy_provider": "Default Buy Provider",
|
||||||
"ask_each_time": "Ask each time",
|
"ask_each_time": "Ask each time",
|
||||||
"robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.",
|
"robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.",
|
||||||
"buy_provider_unavailable": "Provider currently unavailable."
|
"buy_provider_unavailable": "Provider currently unavailable.",
|
||||||
|
"address_from_ens": "This address is from ${domain} on ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.",
|
"onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.",
|
||||||
"default_buy_provider": "Proveedor de compra predeterminado",
|
"default_buy_provider": "Proveedor de compra predeterminado",
|
||||||
"ask_each_time": "Pregunta cada vez",
|
"ask_each_time": "Pregunta cada vez",
|
||||||
"buy_provider_unavailable": "Proveedor actualmente no disponible."
|
"buy_provider_unavailable": "Proveedor actualmente no disponible.",
|
||||||
|
"address_from_ens": "Esta dirección ${domain} es de en ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Achetez rapidement la crypto avec de nombreux méthodes de paiement. Disponible dans la plupart des pays. Les écarts et les frais varient.",
|
"onramper_option_description": "Achetez rapidement la crypto avec de nombreux méthodes de paiement. Disponible dans la plupart des pays. Les écarts et les frais varient.",
|
||||||
"default_buy_provider": "Fournisseur d'achat par défaut",
|
"default_buy_provider": "Fournisseur d'achat par défaut",
|
||||||
"ask_each_time": "Demandez à chaque fois",
|
"ask_each_time": "Demandez à chaque fois",
|
||||||
"buy_provider_unavailable": "Fournisseur actuellement indisponible."
|
"buy_provider_unavailable": "Fournisseur actuellement indisponible.",
|
||||||
|
"address_from_ens": "Cette adresse ${domain} est d'où"
|
||||||
}
|
}
|
|
@ -670,5 +670,6 @@
|
||||||
"onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.",
|
"onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.",
|
||||||
"default_buy_provider": "Tsohuwar Siyarwa",
|
"default_buy_provider": "Tsohuwar Siyarwa",
|
||||||
"ask_each_time": "Tambaya kowane lokaci",
|
"ask_each_time": "Tambaya kowane lokaci",
|
||||||
"buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu."
|
"buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.",
|
||||||
|
"address_from_ens": "Wannan adireshin ${domain} yana fitowa ne"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।",
|
"onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।",
|
||||||
"default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता",
|
"default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता",
|
||||||
"ask_each_time": "हर बार पूछें",
|
"ask_each_time": "हर बार पूछें",
|
||||||
"buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।"
|
"buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।",
|
||||||
|
"address_from_ens": "यह पता ${domain} ENS से है"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.",
|
"onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.",
|
||||||
"default_buy_provider": "Zadani davatelj kupnje",
|
"default_buy_provider": "Zadani davatelj kupnje",
|
||||||
"ask_each_time": "Pitajte svaki put",
|
"ask_each_time": "Pitajte svaki put",
|
||||||
"buy_provider_unavailable": "Davatelj trenutno nije dostupan."
|
"buy_provider_unavailable": "Davatelj trenutno nije dostupan.",
|
||||||
|
"address_from_ens": "Ova adresa je ${domain} iz ENS -a"
|
||||||
}
|
}
|
|
@ -680,5 +680,6 @@
|
||||||
"onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.",
|
"onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.",
|
||||||
"default_buy_provider": "Penyedia beli default",
|
"default_buy_provider": "Penyedia beli default",
|
||||||
"ask_each_time": "Tanyakan setiap kali",
|
"ask_each_time": "Tanyakan setiap kali",
|
||||||
"buy_provider_unavailable": "Penyedia saat ini tidak tersedia."
|
"buy_provider_unavailable": "Penyedia saat ini tidak tersedia.",
|
||||||
|
"address_from_ens": "Alamat ini ${domain} berasal dari ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.",
|
"onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.",
|
||||||
"default_buy_provider": "Provider di acquisto predefinito",
|
"default_buy_provider": "Provider di acquisto predefinito",
|
||||||
"ask_each_time": "Chiedi ogni volta",
|
"ask_each_time": "Chiedi ogni volta",
|
||||||
"buy_provider_unavailable": "Provider attualmente non disponibile."
|
"buy_provider_unavailable": "Provider attualmente non disponibile.",
|
||||||
|
"address_from_ens": "Questo indirizzo ${domain} è da On ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。",
|
"onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。",
|
||||||
"default_buy_provider": "デフォルトの購入プロバイダー",
|
"default_buy_provider": "デフォルトの購入プロバイダー",
|
||||||
"ask_each_time": "毎回尋ねてください",
|
"ask_each_time": "毎回尋ねてください",
|
||||||
"buy_provider_unavailable": "現在、プロバイダーは利用できません。"
|
"buy_provider_unavailable": "現在、プロバイダーは利用できません。",
|
||||||
|
"address_from_ens": "このアドレスは ${domain} onsからです"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.",
|
"onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.",
|
||||||
"default_buy_provider": "기본 구매 제공자",
|
"default_buy_provider": "기본 구매 제공자",
|
||||||
"ask_each_time": "매번 물어보십시오",
|
"ask_each_time": "매번 물어보십시오",
|
||||||
"buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다."
|
"buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.",
|
||||||
|
"address_from_ens": "이 주소는 ${domain} ON ENS에서 나온 것입니다"
|
||||||
}
|
}
|
|
@ -690,5 +690,6 @@
|
||||||
"onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။",
|
"onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။",
|
||||||
"default_buy_provider": "Default Provider ကိုဝယ်ပါ",
|
"default_buy_provider": "Default Provider ကိုဝယ်ပါ",
|
||||||
"ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ",
|
"ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ",
|
||||||
"buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။"
|
"buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။",
|
||||||
|
"address_from_ens": "ဒီလိပ်စာ ${domain} ens ကနေဖြစ်ပါတယ်"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.",
|
"onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.",
|
||||||
"default_buy_provider": "Standaard Koopprovider",
|
"default_buy_provider": "Standaard Koopprovider",
|
||||||
"ask_each_time": "Vraag het elke keer",
|
"ask_each_time": "Vraag het elke keer",
|
||||||
"buy_provider_unavailable": "Provider momenteel niet beschikbaar."
|
"buy_provider_unavailable": "Provider momenteel niet beschikbaar.",
|
||||||
|
"address_from_ens": "Dit adres ${domain} is van ON ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.",
|
"onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.",
|
||||||
"default_buy_provider": "Domyślny dostawca zakupu",
|
"default_buy_provider": "Domyślny dostawca zakupu",
|
||||||
"ask_each_time": "Zapytaj za każdym razem",
|
"ask_each_time": "Zapytaj za każdym razem",
|
||||||
"buy_provider_unavailable": "Dostawca obecnie niedostępny."
|
"buy_provider_unavailable": "Dostawca obecnie niedostępny.",
|
||||||
|
"address_from_ens": "Ten adres ${domain} pochodzi z end"
|
||||||
}
|
}
|
|
@ -691,5 +691,6 @@
|
||||||
"onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.",
|
"onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.",
|
||||||
"default_buy_provider": "Provedor de compra padrão",
|
"default_buy_provider": "Provedor de compra padrão",
|
||||||
"ask_each_time": "Pergunte cada vez",
|
"ask_each_time": "Pergunte cada vez",
|
||||||
"buy_provider_unavailable": "Provedor atualmente indisponível."
|
"buy_provider_unavailable": "Provedor atualmente indisponível.",
|
||||||
|
"address_from_ens": "Este endereço ${domain} é de ON ENS"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.",
|
"onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.",
|
||||||
"default_buy_provider": "По умолчанию поставщик покупки",
|
"default_buy_provider": "По умолчанию поставщик покупки",
|
||||||
"ask_each_time": "Спросите каждый раз",
|
"ask_each_time": "Спросите каждый раз",
|
||||||
"buy_provider_unavailable": "Поставщик в настоящее время недоступен."
|
"buy_provider_unavailable": "Поставщик в настоящее время недоступен.",
|
||||||
|
"address_from_ens": "Этот адрес ${domain} с On ons"
|
||||||
}
|
}
|
|
@ -690,5 +690,6 @@
|
||||||
"onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป",
|
"onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป",
|
||||||
"default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น",
|
"default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น",
|
||||||
"ask_each_time": "ถามทุกครั้ง",
|
"ask_each_time": "ถามทุกครั้ง",
|
||||||
"buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน"
|
"buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน",
|
||||||
|
"address_from_ens": "ที่อยู่นี้มาจาก ${domain} ENS"
|
||||||
}
|
}
|
|
@ -690,5 +690,6 @@
|
||||||
"onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.",
|
"onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.",
|
||||||
"default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı",
|
"default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı",
|
||||||
"ask_each_time": "Her seferinde sor",
|
"ask_each_time": "Her seferinde sor",
|
||||||
"buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor."
|
"buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.",
|
||||||
|
"address_from_ens": "Bu adres ${domain} ON ENS'ten"
|
||||||
}
|
}
|
|
@ -692,5 +692,6 @@
|
||||||
"onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.",
|
"onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.",
|
||||||
"default_buy_provider": "Постачальник покупки за замовчуванням",
|
"default_buy_provider": "Постачальник покупки за замовчуванням",
|
||||||
"ask_each_time": "Запитайте кожен раз",
|
"ask_each_time": "Запитайте кожен раз",
|
||||||
"buy_provider_unavailable": "В даний час постачальник недоступний."
|
"buy_provider_unavailable": "В даний час постачальник недоступний.",
|
||||||
|
"address_from_ens": "Ця адреса ${domain} з ENS"
|
||||||
}
|
}
|
|
@ -684,5 +684,6 @@
|
||||||
"onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔",
|
"onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔",
|
||||||
"default_buy_provider": "پہلے سے طے شدہ خریدنے والا",
|
"default_buy_provider": "پہلے سے طے شدہ خریدنے والا",
|
||||||
"ask_each_time": "ہر بار پوچھیں",
|
"ask_each_time": "ہر بار پوچھیں",
|
||||||
"buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔"
|
"buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔",
|
||||||
|
"address_from_ens": "یہ پتہ آن ${domain}پر ہے"
|
||||||
}
|
}
|
|
@ -686,5 +686,6 @@
|
||||||
"onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.",
|
"onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.",
|
||||||
"default_buy_provider": "Aiyipada Ra Olupese",
|
"default_buy_provider": "Aiyipada Ra Olupese",
|
||||||
"ask_each_time": "Beere lọwọ kọọkan",
|
"ask_each_time": "Beere lọwọ kọọkan",
|
||||||
"buy_provider_unavailable": "Olupese lọwọlọwọ ko si."
|
"buy_provider_unavailable": "Olupese lọwọlọwọ ko si.",
|
||||||
|
"address_from_ens": "Adirẹsi yii ti ${domain} wa ni ens"
|
||||||
}
|
}
|
|
@ -691,5 +691,6 @@
|
||||||
"onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。",
|
"onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。",
|
||||||
"default_buy_provider": "默认购买提供商",
|
"default_buy_provider": "默认购买提供商",
|
||||||
"ask_each_time": "每次问",
|
"ask_each_time": "每次问",
|
||||||
"buy_provider_unavailable": "提供者目前不可用。"
|
"buy_provider_unavailable": "提供者目前不可用。",
|
||||||
|
"address_from_ens": "此地址${domain}来自ENS"
|
||||||
}
|
}
|
|
@ -18,8 +18,10 @@ Future<void> main(List<String> args) async {
|
||||||
await generateMonero(hasMonero);
|
await generateMonero(hasMonero);
|
||||||
await generateHaven(hasHaven);
|
await generateHaven(hasHaven);
|
||||||
await generateEthereum(hasEthereum);
|
await generateEthereum(hasEthereum);
|
||||||
await generatePubspec(hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum);
|
await generatePubspec(
|
||||||
await generateWalletTypes(hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum);
|
hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum);
|
||||||
|
await generateWalletTypes(
|
||||||
|
hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> generateBitcoin(bool hasImplementation) async {
|
Future<void> generateBitcoin(bool hasImplementation) async {
|
||||||
|
@ -88,12 +90,12 @@ abstract class Bitcoin {
|
||||||
const bitcoinEmptyDefinition = 'Bitcoin? bitcoin;\n';
|
const bitcoinEmptyDefinition = 'Bitcoin? bitcoin;\n';
|
||||||
const bitcoinCWDefinition = 'Bitcoin? bitcoin = CWBitcoin();\n';
|
const bitcoinCWDefinition = 'Bitcoin? bitcoin = CWBitcoin();\n';
|
||||||
|
|
||||||
final output = '$bitcoinCommonHeaders\n'
|
final output = '$bitcoinCommonHeaders\n' +
|
||||||
+ (hasImplementation ? '$bitcoinCWHeaders\n' : '\n')
|
(hasImplementation ? '$bitcoinCWHeaders\n' : '\n') +
|
||||||
+ (hasImplementation ? '$bitcoinCwPart\n\n' : '\n')
|
(hasImplementation ? '$bitcoinCwPart\n\n' : '\n') +
|
||||||
+ (hasImplementation ? bitcoinCWDefinition : bitcoinEmptyDefinition)
|
(hasImplementation ? bitcoinCWDefinition : bitcoinEmptyDefinition) +
|
||||||
+ '\n'
|
'\n' +
|
||||||
+ bitcoinContent;
|
bitcoinContent;
|
||||||
|
|
||||||
if (outputFile.existsSync()) {
|
if (outputFile.existsSync()) {
|
||||||
await outputFile.delete();
|
await outputFile.delete();
|
||||||
|
@ -268,12 +270,12 @@ abstract class MoneroAccountList {
|
||||||
const moneroEmptyDefinition = 'Monero? monero;\n';
|
const moneroEmptyDefinition = 'Monero? monero;\n';
|
||||||
const moneroCWDefinition = 'Monero? monero = CWMonero();\n';
|
const moneroCWDefinition = 'Monero? monero = CWMonero();\n';
|
||||||
|
|
||||||
final output = '$moneroCommonHeaders\n'
|
final output = '$moneroCommonHeaders\n' +
|
||||||
+ (hasImplementation ? '$moneroCWHeaders\n' : '\n')
|
(hasImplementation ? '$moneroCWHeaders\n' : '\n') +
|
||||||
+ (hasImplementation ? '$moneroCwPart\n\n' : '\n')
|
(hasImplementation ? '$moneroCwPart\n\n' : '\n') +
|
||||||
+ (hasImplementation ? moneroCWDefinition : moneroEmptyDefinition)
|
(hasImplementation ? moneroCWDefinition : moneroEmptyDefinition) +
|
||||||
+ '\n'
|
'\n' +
|
||||||
+ moneroContent;
|
moneroContent;
|
||||||
|
|
||||||
if (outputFile.existsSync()) {
|
if (outputFile.existsSync()) {
|
||||||
await outputFile.delete();
|
await outputFile.delete();
|
||||||
|
@ -283,7 +285,6 @@ abstract class MoneroAccountList {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> generateHaven(bool hasImplementation) async {
|
Future<void> generateHaven(bool hasImplementation) async {
|
||||||
|
|
||||||
final outputFile = File(havenOutputPath);
|
final outputFile = File(havenOutputPath);
|
||||||
const havenCommonHeaders = """
|
const havenCommonHeaders = """
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
|
@ -448,12 +449,12 @@ abstract class HavenAccountList {
|
||||||
const havenEmptyDefinition = 'Haven? haven;\n';
|
const havenEmptyDefinition = 'Haven? haven;\n';
|
||||||
const havenCWDefinition = 'Haven? haven = CWHaven();\n';
|
const havenCWDefinition = 'Haven? haven = CWHaven();\n';
|
||||||
|
|
||||||
final output = '$havenCommonHeaders\n'
|
final output = '$havenCommonHeaders\n' +
|
||||||
+ (hasImplementation ? '$havenCWHeaders\n' : '\n')
|
(hasImplementation ? '$havenCWHeaders\n' : '\n') +
|
||||||
+ (hasImplementation ? '$havenCwPart\n\n' : '\n')
|
(hasImplementation ? '$havenCwPart\n\n' : '\n') +
|
||||||
+ (hasImplementation ? havenCWDefinition : havenEmptyDefinition)
|
(hasImplementation ? havenCWDefinition : havenEmptyDefinition) +
|
||||||
+ '\n'
|
'\n' +
|
||||||
+ havenContent;
|
havenContent;
|
||||||
|
|
||||||
if (outputFile.existsSync()) {
|
if (outputFile.existsSync()) {
|
||||||
await outputFile.delete();
|
await outputFile.delete();
|
||||||
|
@ -463,7 +464,6 @@ abstract class HavenAccountList {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> generateEthereum(bool hasImplementation) async {
|
Future<void> generateEthereum(bool hasImplementation) async {
|
||||||
|
|
||||||
final outputFile = File(ethereumOutputPath);
|
final outputFile = File(ethereumOutputPath);
|
||||||
const ethereumCommonHeaders = """
|
const ethereumCommonHeaders = """
|
||||||
import 'package:cake_wallet/view_model/send/output.dart';
|
import 'package:cake_wallet/view_model/send/output.dart';
|
||||||
|
@ -525,18 +525,19 @@ abstract class Ethereum {
|
||||||
|
|
||||||
CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction);
|
CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction);
|
||||||
void updateEtherscanUsageState(WalletBase wallet, bool isEnabled);
|
void updateEtherscanUsageState(WalletBase wallet, bool isEnabled);
|
||||||
|
Future<String> fetchEnsAddress(WalletBase wallet, String name);
|
||||||
}
|
}
|
||||||
""";
|
""";
|
||||||
|
|
||||||
const ethereumEmptyDefinition = 'Ethereum? ethereum;\n';
|
const ethereumEmptyDefinition = 'Ethereum? ethereum;\n';
|
||||||
const ethereumCWDefinition = 'Ethereum? ethereum = CWEthereum();\n';
|
const ethereumCWDefinition = 'Ethereum? ethereum = CWEthereum();\n';
|
||||||
|
|
||||||
final output = '$ethereumCommonHeaders\n'
|
final output = '$ethereumCommonHeaders\n' +
|
||||||
+ (hasImplementation ? '$ethereumCWHeaders\n' : '\n')
|
(hasImplementation ? '$ethereumCWHeaders\n' : '\n') +
|
||||||
+ (hasImplementation ? '$ethereumCwPart\n\n' : '\n')
|
(hasImplementation ? '$ethereumCwPart\n\n' : '\n') +
|
||||||
+ (hasImplementation ? ethereumCWDefinition : ethereumEmptyDefinition)
|
(hasImplementation ? ethereumCWDefinition : ethereumEmptyDefinition) +
|
||||||
+ '\n'
|
'\n' +
|
||||||
+ ethereumContent;
|
ethereumContent;
|
||||||
|
|
||||||
if (outputFile.existsSync()) {
|
if (outputFile.existsSync()) {
|
||||||
await outputFile.delete();
|
await outputFile.delete();
|
||||||
|
@ -545,8 +546,12 @@ abstract class Ethereum {
|
||||||
await outputFile.writeAsString(output);
|
await outputFile.writeAsString(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> generatePubspec({required bool hasMonero, required bool hasBitcoin, required bool hasHaven, required bool hasEthereum}) async {
|
Future<void> generatePubspec(
|
||||||
const cwCore = """
|
{required bool hasMonero,
|
||||||
|
required bool hasBitcoin,
|
||||||
|
required bool hasHaven,
|
||||||
|
required bool hasEthereum}) async {
|
||||||
|
const cwCore = """
|
||||||
cw_core:
|
cw_core:
|
||||||
path: ./cw_core
|
path: ./cw_core
|
||||||
""";
|
""";
|
||||||
|
@ -606,7 +611,11 @@ Future<void> generatePubspec({required bool hasMonero, required bool hasBitcoin,
|
||||||
await outputFile.writeAsString(outputContent);
|
await outputFile.writeAsString(outputContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> generateWalletTypes({required bool hasMonero, required bool hasBitcoin, required bool hasHaven, required bool hasEthereum}) async {
|
Future<void> generateWalletTypes(
|
||||||
|
{required bool hasMonero,
|
||||||
|
required bool hasBitcoin,
|
||||||
|
required bool hasHaven,
|
||||||
|
required bool hasEthereum}) async {
|
||||||
final walletTypesFile = File(walletTypesPath);
|
final walletTypesFile = File(walletTypesPath);
|
||||||
|
|
||||||
if (walletTypesFile.existsSync()) {
|
if (walletTypesFile.existsSync()) {
|
||||||
|
|
Loading…
Reference in a new issue