From 8457a45c2a3599616623d01bc8fe0a4d28b545d5 Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Wed, 11 Jun 2025 18:44:06 +0200 Subject: [PATCH 1/3] update-payjoin (#2281) * feat: upgrade to flutter_payjoin 0.23.0 * fix: dependency discrepancy freezed_annotation * feat(cw_bitcoin): use latest payjoin deps * ci: update rust toolchain * Update pubspec.yaml * trial: downgrade flutter payjoin ffi * some checks * trial 2 * [skip ci] use correct image for CI * fix: bump flutter sdk to 3.29.0 * partial revert --------- Co-authored-by: Czarek Nakamoto Co-authored-by: Omar Hatem --- .../workflows/automated_integration_test.yml | 2 +- .github/workflows/pr_test_build_android.yml | 7 +- .github/workflows/pr_test_build_linux.yml | 2 +- Dockerfile | 18 +- cw_bitcoin/lib/bitcoin_wallet_addresses.dart | 13 +- cw_bitcoin/lib/payjoin/manager.dart | 36 ++-- cw_bitcoin/lib/payjoin/payjoin_persister.dart | 66 ++++++ .../lib/payjoin/payjoin_receive_worker.dart | 11 +- .../lib/payjoin/payjoin_send_worker.dart | 11 +- cw_bitcoin/pubspec.lock | 189 +++++++++--------- cw_bitcoin/pubspec.yaml | 10 +- cw_bitcoin_cash/pubspec.yaml | 6 +- cw_core/pubspec.lock | 94 ++++----- cw_core/pubspec.yaml | 4 +- cw_decred/pubspec.lock | 14 +- cw_decred/pubspec.yaml | 4 +- cw_ethereum/pubspec.yaml | 2 +- cw_evm/pubspec.yaml | 4 +- cw_monero/pubspec.lock | 8 +- cw_monero/pubspec.yaml | 4 +- cw_nano/pubspec.lock | 137 +++++++------ cw_nano/pubspec.yaml | 5 +- cw_polygon/pubspec.yaml | 2 +- cw_solana/pubspec.yaml | 4 +- cw_tron/pubspec.yaml | 4 +- cw_wownero/pubspec.lock | 55 +++-- cw_wownero/pubspec.yaml | 6 +- cw_zano/pubspec.lock | 55 +++-- cw_zano/pubspec.yaml | 6 +- docs/builds/ANDROID.md | 4 +- docs/builds/IOS.md | 8 +- docs/builds/LINUX.md | 4 +- docs/builds/MACOS.md | 8 +- docs/builds/WINDOWS.md | 6 +- lib/bitcoin/cw_bitcoin.dart | 1 + pubspec_base.yaml | 9 +- scripts/linux/build_cake_release.sh | 2 +- scripts/windows/Dockerfile.windows | 2 +- 38 files changed, 477 insertions(+), 346 deletions(-) create mode 100644 cw_bitcoin/lib/payjoin/payjoin_persister.dart diff --git a/.github/workflows/automated_integration_test.yml b/.github/workflows/automated_integration_test.yml index 84c680dda..a26e3645d 100644 --- a/.github/workflows/automated_integration_test.yml +++ b/.github/workflows/automated_integration_test.yml @@ -55,7 +55,7 @@ jobs: - name: Flutter action uses: subosito/flutter-action@v1 with: - flutter-version: "3.27.4" + flutter-version: "3.27.0" channel: stable - name: Install package dependencies diff --git a/.github/workflows/pr_test_build_android.yml b/.github/workflows/pr_test_build_android.yml index 8f6139747..cdbd7ca37 100644 --- a/.github/workflows/pr_test_build_android.yml +++ b/.github/workflows/pr_test_build_android.yml @@ -9,7 +9,7 @@ jobs: PR_test_build: runs-on: linux-amd64 container: - image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 + image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly env: STORE_PASS: test@cake_wallet KEY_PASS: test@cake_wallet @@ -253,6 +253,11 @@ jobs: - name: Build generated code run: | + flutter --version + flutter clean + rm -rf .dart_tool + rm pubspec.lock + flutter pub get ./model_generator.sh async - name: Generate key properties diff --git a/.github/workflows/pr_test_build_linux.yml b/.github/workflows/pr_test_build_linux.yml index 476a033a0..119cd7530 100644 --- a/.github/workflows/pr_test_build_linux.yml +++ b/.github/workflows/pr_test_build_linux.yml @@ -9,7 +9,7 @@ jobs: PR_test_build: runs-on: linux-amd64 container: - image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 + image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly env: STORE_PASS: test@cake_wallet KEY_PASS: test@cake_wallet diff --git a/Dockerfile b/Dockerfile index 84179d645..151b7af20 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# docker buildx build --push --pull --platform linux/amd64,linux/arm64 . -f Dockerfile -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 +# docker buildx build --push --pull --platform linux/amd64,linux/arm64 . -f Dockerfile -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly # Heavily inspired by cirrusci images # https://github.com/cirruslabs/docker-images-android/blob/master/sdk/tools/Dockerfile @@ -15,11 +15,11 @@ LABEL org.opencontainers.image.source=https://github.com/cake-tech/cake_wallet ENV GOLANG_VERSION=1.24.1 # Pin Flutter version to latest known-working version -ENV FLUTTER_VERSION=3.27.4 +ENV FLUTTER_VERSION=3.27.0 # Pin Android Studio, platform, and build tools versions to latest known-working version # Comes from https://developer.android.com/studio/#command-tools -ENV ANDROID_SDK_TOOLS_VERSION=11076708 +ENV ANDROID_SDK_TOOLS_VERSION=13114758 # Comes from https://developer.android.com/studio/releases/build-tools ENV ANDROID_PLATFORM_VERSION=35 ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 @@ -164,9 +164,12 @@ RUN (addgroup kvm || true) && \ ENV PATH=${HOME}/.cargo/bin:${PATH} RUN curl https://sh.rustup.rs -sSf | bash -s -- -y && \ cargo install cargo-ndk && \ + for toolchain in stable nightly; \ + do \ for target in aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu aarch64-unknown-linux-gnu; \ do \ - rustup target add --toolchain stable $target; \ + rustup target add --toolchain $toolchain $target; \ + done \ done # Download and install Flutter @@ -175,8 +178,11 @@ ENV FLUTTER_HOME=${HOME}/sdks/flutter/${FLUTTER_VERSION} ENV FLUTTER_ROOT=$FLUTTER_HOME ENV PATH=${PATH}:${FLUTTER_HOME}/bin:${FLUTTER_HOME}/bin/cache/dart-sdk/bin -RUN git clone --depth 1 --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git ${FLUTTER_HOME} \ - && yes | flutter doctor --android-licenses \ +RUN git clone --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git ${FLUTTER_HOME} && \ + cd ${FLUTTER_HOME} && \ + git fetch -a + +RUN yes | flutter doctor --android-licenses \ && flutter doctor \ && chown -R root:root ${FLUTTER_HOME} diff --git a/cw_bitcoin/lib/bitcoin_wallet_addresses.dart b/cw_bitcoin/lib/bitcoin_wallet_addresses.dart index 0fefe4e57..a92c4770f 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_addresses.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_addresses.dart @@ -31,12 +31,10 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S final PayjoinManager payjoinManager; - @observable payjoin.Receiver? currentPayjoinReceiver; - @computed - String? get payjoinEndpoint => - currentPayjoinReceiver?.pjUriBuilder().build().pjEndpoint(); + @observable + String? payjoinEndpoint = null; @override String getAddress( @@ -59,14 +57,19 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S return generateP2WPKHAddress(hd: hd, index: index, network: network); } + @action Future initPayjoin() async { + await payjoinManager.initPayjoin(); currentPayjoinReceiver = await payjoinManager.initReceiver(primaryAddress); - + payjoinEndpoint = (await currentPayjoinReceiver?.pjUri())?.pjEndpoint(); + payjoinManager.resumeSessions(); } + @action Future newPayjoinReceiver() async { currentPayjoinReceiver = await payjoinManager.initReceiver(primaryAddress); + payjoinEndpoint = (await currentPayjoinReceiver?.pjUri())?.pjEndpoint(); printV("Initializing new Payjoin Receiver"); payjoinManager.spawnNewReceiver(receiver: currentPayjoinReceiver!); diff --git a/cw_bitcoin/lib/payjoin/manager.dart b/cw_bitcoin/lib/payjoin/manager.dart index 7ba3ceb9b..ad6fef0d8 100644 --- a/cw_bitcoin/lib/payjoin/manager.dart +++ b/cw_bitcoin/lib/payjoin/manager.dart @@ -6,6 +6,7 @@ import 'dart:typed_data'; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_wallet.dart'; import 'package:cw_bitcoin/bitcoin_wallet_addresses.dart'; +import 'package:cw_bitcoin/payjoin/payjoin_persister.dart'; import 'package:cw_bitcoin/payjoin/payjoin_receive_worker.dart'; import 'package:cw_bitcoin/payjoin/payjoin_send_worker.dart'; import 'package:cw_bitcoin/payjoin/payjoin_session_errors.dart'; @@ -16,6 +17,7 @@ import 'package:cw_core/utils/print_verbose.dart'; import 'package:payjoin_flutter/common.dart'; import 'package:payjoin_flutter/receive.dart'; import 'package:payjoin_flutter/send.dart'; +import 'package:payjoin_flutter/src/config.dart' as pj_config; import 'package:payjoin_flutter/uri.dart' as PayjoinUri; class PayjoinManager { @@ -31,11 +33,13 @@ class PayjoinManager { 'https://ohttp.cakewallet.com', ]; - static Future randomOhttpRelayUrl() => PayjoinUri.Url.fromStr( - ohttpRelayUrls[Random.secure().nextInt(ohttpRelayUrls.length)]); + static String randomOhttpRelayUrl() => + ohttpRelayUrls[Random.secure().nextInt(ohttpRelayUrls.length)]; static const payjoinDirectoryUrl = 'https://payjo.in'; + Future initPayjoin() => pj_config.PConfig.initializeApp(); + Future resumeSessions() async { final allSessions = _payjoinStorage.readAllOpenSessions(_wallet.id); @@ -43,11 +47,11 @@ class PayjoinManager { if (session.isSenderSession) { printV("Resuming Payjoin Sender Session ${session.pjUri!}"); return _spawnSender( - sender: Sender.fromJson(session.sender!), + sender: Sender.fromJson(json: session.sender!), pjUri: session.pjUri!, ); } - final receiver = Receiver.fromJson(session.receiver!); + final receiver = Receiver.fromJson(json: session.receiver!); printV("Resuming Payjoin Receiver Session ${receiver.id()}"); return _spawnReceiver(receiver: receiver); }); @@ -66,7 +70,12 @@ class PayjoinManager { psbtBase64: originalPsbt, pjUri: pjUri, ); - return senderBuilder.buildRecommended(minFeeRate: minFeeRateSatPerKwu); + final persister = PayjoinSenderPersister.impl(); + final newSender = + await senderBuilder.buildRecommended(minFeeRate: minFeeRateSatPerKwu); + final senderToken = await newSender.persist(persister: persister); + + return Sender.load(token: senderToken, persister: persister); } catch (e) { throw Exception('Error initializing Payjoin Sender: $e'); } @@ -143,21 +152,21 @@ class PayjoinManager { Future initReceiver(String address, [bool isTestnet = false]) async { try { - final payjoinDirectory = - await PayjoinUri.Url.fromStr(payjoinDirectoryUrl); - final ohttpKeys = await PayjoinUri.fetchOhttpKeys( ohttpRelay: await randomOhttpRelayUrl(), - payjoinDirectory: payjoinDirectory, + payjoinDirectory: payjoinDirectoryUrl, ); - final receiver = await Receiver.create( + final newReceiver = await NewReceiver.create( address: address, network: isTestnet ? Network.testnet : Network.bitcoin, - directory: payjoinDirectory, + directory: payjoinDirectoryUrl, ohttpKeys: ohttpKeys, - ohttpRelay: await randomOhttpRelayUrl(), ); + final persister = PayjoinReceiverPersister.impl(); + final receiverToken = await newReceiver.persist(persister: persister); + final receiver = + await Receiver.load(persister: persister, token: receiverToken); await _payjoinStorage.insertReceiverSession(receiver, _wallet.id); @@ -195,7 +204,8 @@ class PayjoinManager { rawAmount = getOutputAmountFromTx(tx, _wallet); break; case PayjoinReceiverRequestTypes.checkIsOwned: - (_wallet.walletAddresses as BitcoinWalletAddresses).newPayjoinReceiver(); + (_wallet.walletAddresses as BitcoinWalletAddresses) + .newPayjoinReceiver(); _payjoinStorage.markReceiverSessionInProgress(receiver.id()); final inputScript = message['input_script'] as Uint8List; diff --git a/cw_bitcoin/lib/payjoin/payjoin_persister.dart b/cw_bitcoin/lib/payjoin/payjoin_persister.dart new file mode 100644 index 000000000..4e395e36a --- /dev/null +++ b/cw_bitcoin/lib/payjoin/payjoin_persister.dart @@ -0,0 +1,66 @@ +import 'package:payjoin_flutter/src/generated/api/receive.dart'; +import 'package:payjoin_flutter/src/generated/api/send.dart'; + +class PayjoinSenderPersister implements DartSenderPersister { + static DartSenderPersister impl() { + final impl = PayjoinSenderPersister(); + return DartSenderPersister( + save: (sender) => impl.save(sender: sender), + load: (token) => impl.load(token: token), + ); + } + + final Map _store = {}; + + Future save({required FfiSender sender}) async { + final token = sender.key(); + _store[token.toBytes().toString()] = sender; + return token; + } + + Future load({required SenderToken token}) async { + final sender = _store[token.toBytes().toString()]; + if (sender == null) { + throw Exception('Sender not found for the provided token.'); + } + return sender; + } + + @override + void dispose() => _store.clear(); + + @override + bool get isDisposed => _store.isEmpty; +} + +class PayjoinReceiverPersister implements DartReceiverPersister { + static DartReceiverPersister impl() { + final impl = PayjoinReceiverPersister(); + return DartReceiverPersister( + save: (receiver) => impl.save(receiver: receiver), + load: (token) => impl.load(token: token), + ); + } + + final Map _store = {}; + + Future save({required FfiReceiver receiver}) async { + final token = receiver.key(); + _store[token.toBytes().toString()] = receiver; + return token; + } + + Future load({required ReceiverToken token}) async { + final receiver = _store[token.toBytes().toString()]; + if (receiver == null) { + throw Exception('Receiver not found for the provided token.'); + } + return receiver; + } + + @override + void dispose() => _store.clear(); + + @override + bool get isDisposed => _store.isEmpty; +} diff --git a/cw_bitcoin/lib/payjoin/payjoin_receive_worker.dart b/cw_bitcoin/lib/payjoin/payjoin_receive_worker.dart index a499660b0..e86624291 100644 --- a/cw_bitcoin/lib/payjoin/payjoin_receive_worker.dart +++ b/cw_bitcoin/lib/payjoin/payjoin_receive_worker.dart @@ -4,6 +4,7 @@ import 'dart:isolate'; import 'dart:typed_data'; import 'package:blockchain_utils/blockchain_utils.dart'; +import 'package:cw_bitcoin/payjoin/manager.dart'; import 'package:cw_bitcoin/payjoin/payjoin_session_errors.dart'; import 'package:cw_bitcoin/psbt/signer.dart'; import 'package:cw_core/utils/print_verbose.dart'; @@ -42,7 +43,7 @@ class PayjoinReceiverWorker { try { final httpClient = http.Client(); - final receiver = Receiver.fromJson(receiverJson); + final receiver = Receiver.fromJson(json: receiverJson); final uncheckedProposal = await worker.receiveUncheckedProposal(httpClient, receiver); @@ -101,7 +102,8 @@ class PayjoinReceiverWorker { http.Client httpClient, Receiver session) async { while (true) { printV("Polling for Proposal (${session.id()})"); - final extractReq = await session.extractReq(); + final extractReq = await session.extractReq( + ohttpRelay: PayjoinManager.randomOhttpRelayUrl()); final request = extractReq.$1; final url = Uri.parse(request.url.asString()); @@ -116,7 +118,8 @@ class PayjoinReceiverWorker { Future sendFinalProposal( http.Client httpClient, PayjoinProposal finalProposal) async { - final req = await finalProposal.extractV2Req(); + final req = await finalProposal.extractReq( + ohttpRelay: PayjoinManager.randomOhttpRelayUrl()); final proposalReq = req.$1; final proposalCtx = req.$2; @@ -214,6 +217,6 @@ class PayjoinReceiverWorker { sequence: 0, ); - return InputPair.newInstance(txin, psbtin); + return InputPair.newInstance(txin: txin, psbtin: psbtin); } } diff --git a/cw_bitcoin/lib/payjoin/payjoin_send_worker.dart b/cw_bitcoin/lib/payjoin/payjoin_send_worker.dart index f720bac01..f02e59f47 100644 --- a/cw_bitcoin/lib/payjoin/payjoin_send_worker.dart +++ b/cw_bitcoin/lib/payjoin/payjoin_send_worker.dart @@ -9,6 +9,8 @@ import 'package:http/http.dart' as http; import 'package:payjoin_flutter/common.dart'; import 'package:payjoin_flutter/send.dart'; import 'package:payjoin_flutter/src/generated/frb_generated.dart' as pj; +import 'package:payjoin_flutter/src/generated/api/send/error.dart' as pj_error; +import 'package:payjoin_flutter/uri.dart' as pj_uri; enum PayjoinSenderRequestTypes { requestPosted, @@ -29,7 +31,7 @@ class PayjoinSenderWorker { final senderJson = args[1] as String; final pjUrl = args[2] as String; - final sender = Sender.fromJson(senderJson); + final sender = Sender.fromJson(json: senderJson); final worker = PayjoinSenderWorker._(sendPort, pjUrl); try { @@ -51,9 +53,7 @@ class PayjoinSenderWorker { return await _runSenderV2(sender, httpClient); } catch (e) { printV(e); - if (e is PayjoinException && - // TODO condition on error type instead of message content - e.message?.contains('parse receiver public key') == true) { + if (e is pj_error.FfiCreateRequestError) { return await _runSenderV1(sender, httpClient); } else if (e is HttpException) { printV(e); @@ -68,7 +68,8 @@ class PayjoinSenderWorker { Future _runSenderV2(Sender sender, http.Client httpClient) async { try { final postRequest = await sender.extractV2( - ohttpProxyUrl: await PayjoinManager.randomOhttpRelayUrl(), + ohttpProxyUrl: + await pj_uri.Url.fromStr(PayjoinManager.randomOhttpRelayUrl()), ); final postResult = await _postRequest(httpClient, postRequest.$1); diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 77037a979..83af100ae 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -5,34 +5,39 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "76.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.11.0" args: dependency: transitive description: name: args - sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" asn1lib: dependency: transitive description: name: asn1lib - sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" + sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" url: "https://pub.dev" source: hosted - version: "1.5.8" + version: "1.5.9" async: dependency: transitive description: @@ -121,10 +126,10 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_cli_annotations: dependency: transitive description: @@ -137,42 +142,42 @@ packages: dependency: transitive description: name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" build_daemon: dependency: transitive description: name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.4" build_resolvers: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.10" + version: "8.0.0" built_collection: dependency: transitive description: @@ -185,10 +190,10 @@ packages: dependency: transitive description: name: built_value - sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61" + sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27" url: "https://pub.dev" source: hosted - version: "8.9.4" + version: "8.10.1" cake_backup: dependency: transitive description: @@ -296,10 +301,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.8" dart_varuint_bitcoin: dependency: transitive description: @@ -389,10 +394,10 @@ packages: dependency: transitive description: name: flutter_rust_bridge - sha256: "3292ad6085552987b8b3b9a7e5805567f4013372d302736b702801acb001ee00" + sha256: "5a5c7a5deeef2cc2ffe6076a33b0429f4a20ceac22a397297aed2b1eb067e611" url: "https://pub.dev" source: hosted - version: "2.7.1" + version: "2.9.0" flutter_test: dependency: "direct dev" description: flutter @@ -402,10 +407,10 @@ packages: dependency: transitive description: name: flutter_web_bluetooth - sha256: "1363831def5eed1e1064d1eca04e8ccb35446e8f758579c3c519e156b77926da" + sha256: ad26a1b3fef95b86ea5f63793b9a0cdc1a33490f35d754e4e711046cae3ebbf8 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -415,10 +420,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "3.0.0" frontend_server_client: dependency: transitive description: @@ -439,18 +444,18 @@ packages: dependency: transitive description: name: google_identity_services_web - sha256: "55580f436822d64c8ff9a77e37d61f5fb1e6c7ec9d632a43ee324e2a05c3c6c9" + sha256: "5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454" url: "https://pub.dev" source: hosted - version: "0.3.3" + version: "0.3.3+1" googleapis_auth: dependency: transitive description: name: googleapis_auth - sha256: befd71383a955535060acde8792e7efc11d2fccd03dd1d3ec434e85b68775938 + sha256: b81fe352cc4a330b3710d2b7ad258d9bcef6f909bb759b306bf42973a7d046db url: "https://pub.dev" source: hosted - version: "1.6.0" + version: "2.0.0" graphs: dependency: transitive description: @@ -463,10 +468,10 @@ packages: dependency: "direct main" description: name: grpc - sha256: "5b99b7a420937d4361ece68b798c9af8e04b5bc128a7859f2a4be87427694813" + sha256: "30e1edae6846b163a64f6d8716e3443980fe1f7d2d1f086f011d24ea186f2582" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.4" hex: dependency: transitive description: @@ -487,18 +492,18 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" http2: dependency: transitive description: @@ -519,10 +524,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" intl: dependency: "direct main" description: @@ -592,10 +597,10 @@ packages: dependency: "direct main" description: name: ledger_flutter_plus - sha256: "1c03f3c4a9754b5f0170a9eb9552ec54fa86e985f8ee71a255ee2c5629b53d31" + sha256: "531da5daba5731d9eca2732881ef2f039b97bf8aa3564e7098dfa99a9b07a8e6" url: "https://pub.dev" source: hosted - version: "1.5.1" + version: "1.5.3" ledger_litecoin: dependency: "direct main" description: @@ -621,6 +626,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -665,10 +678,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: e0abbbc651a69550440f6b65c99ec222a1e2a4afd7baec8ba0f3088c7ca582a8 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.7.1" nested: dependency: transitive description: @@ -690,10 +703,10 @@ packages: dependency: transitive description: name: package_config - sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" path: dependency: transitive description: @@ -714,10 +727,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 url: "https://pub.dev" source: hosted - version: "2.2.15" + version: "2.2.17" path_provider_foundation: dependency: transitive description: @@ -754,11 +767,11 @@ packages: dependency: "direct main" description: path: "." - ref: "6a3eb32fb9467ac12e7b75d3de47de4ca44fd88c" - resolved-ref: "6a3eb32fb9467ac12e7b75d3de47de4ca44fd88c" - url: "https://github.com/konstantinullrich/payjoin-flutter" + ref: da83a23f3a011cb49eb3b6513cd485b3fb8867ff + resolved-ref: da83a23f3a011cb49eb3b6513cd485b3fb8867ff + url: "https://github.com/OmarHatem28/payjoin-flutter" source: git - version: "0.21.0" + version: "0.23.0" petitparser: dependency: transitive description: @@ -811,26 +824,26 @@ packages: dependency: transitive description: name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" url: "https://pub.dev" source: hosted - version: "6.1.2" + version: "6.1.5" pub_semver: dependency: transitive description: name: pub_semver - sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" quiver: dependency: transitive description: @@ -859,18 +872,18 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "846849e3e9b68f3ef4b60c60cf4b3e02e9321bc7f4d8c4692cf87ffa82fc8a3a" + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.5.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: a768fc8ede5f0c8e6150476e14f38e2417c0864ca36bb4582be8e21925a03c22 + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.4.10" shared_preferences_foundation: dependency: transitive description: @@ -915,18 +928,18 @@ packages: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" sky_engine: dependency: transitive description: flutter @@ -944,18 +957,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.5" source_span: dependency: transitive description: @@ -973,14 +986,6 @@ packages: url: "https://github.com/cake-tech/sp_scanner" source: git version: "0.0.1" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" stack_trace: dependency: transitive description: @@ -1057,10 +1062,10 @@ packages: dependency: transitive description: name: universal_ble - sha256: "1fad089150a29db82b3b7d60327e18c5ad6b3a5bb509defc1c690b0a76b9c098" + sha256: "35d210e93a5938c6a6d1fd3c710cf4ac90b1bdd1b11c8eb2beeb32600672e6e6" url: "https://pub.dev" source: hosted - version: "0.15.0" + version: "0.17.0" universal_platform: dependency: transitive description: @@ -1077,14 +1082,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.0" - uuid: - dependency: transitive - description: - name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff - url: "https://pub.dev" - source: hosted - version: "4.5.1" vector_math: dependency: transitive description: @@ -1121,18 +1118,18 @@ packages: dependency: transitive description: name: web_socket - sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" url: "https://pub.dev" source: hosted - version: "0.1.6" + version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" xdg_directories: dependency: transitive description: @@ -1166,5 +1163,5 @@ packages: source: hosted version: "2.2.2" sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index f45258f92..09369de8e 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -42,8 +42,8 @@ dependencies: url: https://github.com/cake-tech/bech32.git payjoin_flutter: git: - url: https://github.com/konstantinullrich/payjoin-flutter - ref: 6a3eb32fb9467ac12e7b75d3de47de4ca44fd88c #cake-v1 + url: https://github.com/OmarHatem28/payjoin-flutter + ref: da83a23f3a011cb49eb3b6513cd485b3fb8867ff #cake-v2 ledger_flutter_plus: ^1.4.1 ledger_bitcoin: git: @@ -58,10 +58,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 - build_resolvers: ^2.0.9 + build_runner: ^2.4.15 + build_resolvers: ^2.4.4 mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 9a5c4f14f..e78261f9a 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -7,7 +7,7 @@ homepage: https://cakewallet.com environment: sdk: '>=2.19.0 <3.0.0' - flutter: ">=1.17.0" + flutter: ">=1.20.0" dependencies: flutter: @@ -33,9 +33,9 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.15 mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index 36bba72b6..c4e178ccf 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -26,18 +26,18 @@ packages: dependency: transitive description: name: args - sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" asn1lib: dependency: transitive description: name: asn1lib - sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" + sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" url: "https://pub.dev" source: hosted - version: "1.5.8" + version: "1.5.9" async: dependency: transitive description: @@ -67,50 +67,50 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_config: dependency: transitive description: name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" build_daemon: dependency: transitive description: name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.4" build_resolvers: dependency: "direct dev" description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.3.2" + version: "8.0.0" built_collection: dependency: transitive description: @@ -123,10 +123,10 @@ packages: dependency: transitive description: name: built_value - sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61" + sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27" url: "https://pub.dev" source: hosted - version: "8.9.4" + version: "8.10.1" cake_backup: dependency: "direct main" description: @@ -212,10 +212,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.3.8" decimal: dependency: "direct main" description: @@ -326,10 +326,10 @@ packages: dependency: "direct main" description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" http_multi_server: dependency: transitive description: @@ -342,10 +342,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" intl: dependency: "direct main" description: @@ -462,10 +462,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: "990da80722f7d7c0017dec92040b31545d625b15d40204c36a1e63d167c73cdc" + sha256: e0abbbc651a69550440f6b65c99ec222a1e2a4afd7baec8ba0f3088c7ca582a8 url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.7.1" nested: dependency: transitive description: @@ -479,7 +479,7 @@ packages: description: path: "." ref: cake-update-v2 - resolved-ref: "93440dc5126369b873ca1fccc13c3c1240b1c5c2" + resolved-ref: "01cbbacbb05d2113aafa8b7c4a2bb766f749d8d8" url: "https://github.com/cake-tech/on_chain.git" source: git version: "3.7.0" @@ -487,10 +487,10 @@ packages: dependency: transitive description: name: package_config - sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" path: dependency: transitive description: @@ -511,10 +511,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 url: "https://pub.dev" source: hosted - version: "2.2.15" + version: "2.2.17" path_provider_foundation: dependency: transitive description: @@ -583,26 +583,26 @@ packages: dependency: transitive description: name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" url: "https://pub.dev" source: hosted - version: "6.1.2" + version: "6.1.5" pub_semver: dependency: transitive description: name: pub_semver - sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" rational: dependency: transitive description: @@ -615,18 +615,18 @@ packages: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" sky_engine: dependency: transitive description: flutter @@ -780,18 +780,18 @@ packages: dependency: transitive description: name: web_socket - sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" url: "https://pub.dev" source: hosted - version: "0.1.6" + version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" xdg_directories: dependency: transitive description: @@ -809,5 +809,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 9b38b61a7..03f039d9a 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -39,8 +39,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 - build_resolvers: ^2.0.9 + build_runner: ^2.4.15 + build_resolvers: ^2.4.4 mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 diff --git a/cw_decred/pubspec.lock b/cw_decred/pubspec.lock index f9954fe53..f1d4dd57a 100644 --- a/cw_decred/pubspec.lock +++ b/cw_decred/pubspec.lock @@ -91,26 +91,26 @@ packages: dependency: "direct dev" description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.3.2" + version: "8.0.0" built_collection: dependency: transitive description: @@ -848,5 +848,5 @@ packages: source: hosted version: "2.2.2" sdks: - dart: ">=3.5.0 <4.0.0" + dart: ">=3.6.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_decred/pubspec.yaml b/cw_decred/pubspec.yaml index fcb2ac5ec..989831a89 100644 --- a/cw_decred/pubspec.yaml +++ b/cw_decred/pubspec.yaml @@ -19,8 +19,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 - build_resolvers: ^2.0.9 + build_runner: ^2.4.15 + build_resolvers: ^2.4.4 mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 ffigen: ^16.1.0 diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 462e1d77e..c68f78fc9 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -29,7 +29,7 @@ dependency_overrides: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.15 flutter: # assets: diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index 326ff4dc9..2e37a3b6e 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -41,9 +41,9 @@ dependency_overrides: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.15 mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 flutter_lints: ^2.0.0 flutter: diff --git a/cw_monero/pubspec.lock b/cw_monero/pubspec.lock index 02dcffa34..c449b8c8c 100644 --- a/cw_monero/pubspec.lock +++ b/cw_monero/pubspec.lock @@ -131,18 +131,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.10" + version: "8.0.0" built_collection: dependency: transitive description: diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index 71d1b0c9b..a11e85b6c 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -34,8 +34,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 - build_resolvers: ^2.0.9 + build_runner: ^2.4.15 + build_resolvers: ^2.4.4 mobx_codegen: ^2.0.7 mockito: ^5.4.5 hive_generator: ^2.0.1 diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index ca8b61974..20b18e6ed 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -5,34 +5,39 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "76.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.11.0" args: dependency: transitive description: name: args - sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" asn1lib: dependency: transitive description: name: asn1lib - sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" + sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" url: "https://pub.dev" source: hosted - version: "1.5.8" + version: "1.5.9" async: dependency: transitive description: @@ -86,50 +91,50 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_config: dependency: transitive description: name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" build_daemon: dependency: transitive description: name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.4" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: - dependency: "direct overridden" + dependency: transitive description: name: build_runner_core - sha256: "0671ad4162ed510b70d0eb4ad6354c249f8429cab4ae7a4cec86bbc2886eb76e" + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.7+1" + version: "8.0.0" built_collection: dependency: transitive description: @@ -142,10 +147,10 @@ packages: dependency: transitive description: name: built_value - sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61" + sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27" url: "https://pub.dev" source: hosted - version: "8.9.4" + version: "8.10.1" cake_backup: dependency: transitive description: @@ -238,10 +243,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.8" decimal: dependency: "direct main" description: @@ -373,18 +378,18 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" http_multi_server: dependency: transitive description: @@ -397,10 +402,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" intl: dependency: transitive description: @@ -473,6 +478,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -517,10 +530,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: e0abbbc651a69550440f6b65c99ec222a1e2a4afd7baec8ba0f3088c7ca582a8 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.7.1" nanodart: dependency: transitive description: @@ -551,7 +564,7 @@ packages: description: path: "." ref: cake-update-v2 - resolved-ref: "93440dc5126369b873ca1fccc13c3c1240b1c5c2" + resolved-ref: "01cbbacbb05d2113aafa8b7c4a2bb766f749d8d8" url: "https://github.com/cake-tech/on_chain.git" source: git version: "3.7.0" @@ -559,10 +572,10 @@ packages: dependency: transitive description: name: package_config - sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" path: dependency: transitive description: @@ -583,10 +596,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 url: "https://pub.dev" source: hosted - version: "2.2.15" + version: "2.2.17" path_provider_foundation: dependency: transitive description: @@ -663,26 +676,26 @@ packages: dependency: transitive description: name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" url: "https://pub.dev" source: hosted - version: "6.1.2" + version: "6.1.5" pub_semver: dependency: transitive description: name: pub_semver - sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" rational: dependency: transitive description: @@ -695,18 +708,18 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "846849e3e9b68f3ef4b60c60cf4b3e02e9321bc7f4d8c4692cf87ffa82fc8a3a" + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.5.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: a768fc8ede5f0c8e6150476e14f38e2417c0864ca36bb4582be8e21925a03c22 + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.4.10" shared_preferences_foundation: dependency: transitive description: @@ -751,18 +764,18 @@ packages: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" sky_engine: dependency: transitive description: flutter @@ -780,18 +793,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.5" source_span: dependency: transitive description: @@ -916,18 +929,18 @@ packages: dependency: transitive description: name: web_socket - sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" url: "https://pub.dev" source: hosted - version: "0.1.6" + version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" xdg_directories: dependency: transitive description: @@ -945,5 +958,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index 3ddd9769e..a85a4aee5 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -31,13 +31,12 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.15 mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 - build_runner_core: 7.2.7+1 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_polygon/pubspec.yaml b/cw_polygon/pubspec.yaml index 8421562b4..bcbd80443 100644 --- a/cw_polygon/pubspec.yaml +++ b/cw_polygon/pubspec.yaml @@ -34,7 +34,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.4.7 + build_runner: ^2.4.15 # For information on the generic Dart part of this file, see the diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index 82b5a2bc0..c91ca6efc 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -33,9 +33,9 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.4.7 + build_runner: ^2.4.15 mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_tron/pubspec.yaml b/cw_tron/pubspec.yaml index 80ea7ee51..57c99286c 100644 --- a/cw_tron/pubspec.yaml +++ b/cw_tron/pubspec.yaml @@ -31,9 +31,9 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.3.3 + build_runner: ^2.4.15 mobx_codegen: ^2.1.1 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_wownero/pubspec.lock b/cw_wownero/pubspec.lock index dba8fb36b..dac4bda39 100644 --- a/cw_wownero/pubspec.lock +++ b/cw_wownero/pubspec.lock @@ -5,18 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "76.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.11.0" args: dependency: transitive description: @@ -86,26 +91,26 @@ packages: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.10" + version: "8.0.0" built_collection: dependency: transitive description: @@ -214,10 +219,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.8" decimal: dependency: transitive description: @@ -336,10 +341,10 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: @@ -428,6 +433,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -472,10 +485,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: e0abbbc651a69550440f6b65c99ec222a1e2a4afd7baec8ba0f3088c7ca582a8 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.7.1" monero: dependency: "direct main" description: @@ -679,18 +692,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.5" source_span: dependency: transitive description: @@ -844,5 +857,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.5.0 <4.0.0" + dart: ">=3.6.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_wownero/pubspec.yaml b/cw_wownero/pubspec.yaml index 6c1f37a40..4fda054b5 100644 --- a/cw_wownero/pubspec.yaml +++ b/cw_wownero/pubspec.yaml @@ -31,10 +31,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 - build_resolvers: ^2.0.9 + build_runner: ^2.4.15 + build_resolvers: ^2.4.4 mobx_codegen: ^2.0.7 - hive_generator: ^1.1.3 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/cw_zano/pubspec.lock b/cw_zano/pubspec.lock index 5dc9b5c4b..3c790399c 100644 --- a/cw_zano/pubspec.lock +++ b/cw_zano/pubspec.lock @@ -5,18 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "76.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.11.0" args: dependency: transitive description: @@ -86,26 +91,26 @@ packages: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.10" + version: "8.0.0" built_collection: dependency: transitive description: @@ -214,10 +219,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.8" decimal: dependency: "direct main" description: @@ -333,10 +338,10 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "2.0.1" http: dependency: "direct main" description: @@ -433,6 +438,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -477,10 +490,10 @@ packages: dependency: "direct dev" description: name: mobx_codegen - sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c + sha256: e0abbbc651a69550440f6b65c99ec222a1e2a4afd7baec8ba0f3088c7ca582a8 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.7.1" monero: dependency: "direct main" description: @@ -676,18 +689,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.5" source_span: dependency: transitive description: @@ -841,5 +854,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.5.0 <4.0.0" + dart: ">=3.6.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_zano/pubspec.yaml b/cw_zano/pubspec.yaml index f69f427dc..529fe04eb 100644 --- a/cw_zano/pubspec.yaml +++ b/cw_zano/pubspec.yaml @@ -30,10 +30,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.4.15 mobx_codegen: ^2.1.1 - build_resolvers: ^2.0.9 - hive_generator: ^1.1.3 + build_resolvers: ^2.4.4 + hive_generator: ^2.0.1 dependency_overrides: watcher: ^1.1.0 diff --git a/docs/builds/ANDROID.md b/docs/builds/ANDROID.md index 226883679..d7bc584ad 100644 --- a/docs/builds/ANDROID.md +++ b/docs/builds/ANDROID.md @@ -18,8 +18,8 @@ In order to build the latest version of Cake Wallet, simply run the following: git clone --branch main https://github.com/cake-tech/cake_wallet.git # NOTE: Replace `main` with the latest release tag available at https://github.com/cake-tech/cake_wallet/releases/latest. cd cake_wallet -# docker build -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 . # Uncomment to build the docker image yourself instead of pulling it from the registry -docker run -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 bash -x << EOF +# docker build -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly . # Uncomment to build the docker image yourself instead of pulling it from the registry +docker run -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly bash -x << EOF set -x -e pushd scripts/android source ./app_env.sh cakewallet diff --git a/docs/builds/IOS.md b/docs/builds/IOS.md index 44abaa805..1d23b917c 100644 --- a/docs/builds/IOS.md +++ b/docs/builds/IOS.md @@ -7,7 +7,7 @@ The following are the system requirements to build Cake Wallet for your iOS devi ```txt macOS 15.3.1 Xcode 16.2 -Flutter 3.27.4 +Flutter 3.27.0 ``` NOTE: Newer versions of macOS and Xcode may also work, but have not been confirmed to work by the Cake team. @@ -43,9 +43,9 @@ To enable iOS build support for Xcode, perform the following: ### 3. Installing Flutter -Install Flutter, specifically version `3.27.4` by following the [official docs](https://docs.flutter.dev/get-started/install/macos/desktop?tab=download). +Install Flutter, specifically version `3.27.0` by following the [official docs](https://docs.flutter.dev/get-started/install/macos/desktop?tab=download). -NOTE: as `3.27.4` is not the latest version, you'll need to download it from instead of the link in the docs above. +NOTE: as `3.27.0` is not the latest version, you'll need to download it from instead of the link in the docs above. ### 4. Installing Rust @@ -65,7 +65,7 @@ The output of this command should appear like this, indicating successful instal ```zsh Doctor summary (to see all details, run flutter doctor -v): -[✓] Flutter (Channel stable, 3.27.4, on macOS 15.x.x) +[✓] Flutter (Channel stable, 3.27.0, on macOS 15.x.x) [✓] Xcode - develop for iOS and macOS (Xcode 16.2) ``` diff --git a/docs/builds/LINUX.md b/docs/builds/LINUX.md index a97a269a5..0f438a1d6 100644 --- a/docs/builds/LINUX.md +++ b/docs/builds/LINUX.md @@ -20,8 +20,8 @@ In order to build the latest version of Cake Wallet, simply run the following: git clone --branch main https://github.com/cake-tech/cake_wallet.git # NOTE: Replace `main` with the latest release tag available at https://github.com/cake-tech/cake_wallet/releases/latest. cd cake_wallet -# docker build -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 . # Uncomment to build the docker image yourself instead of pulling it from the registry -docker run --privileged -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1 bash -x << EOF +# docker build -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly . # Uncomment to build the docker image yourself instead of pulling it from the registry +docker run --privileged -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly bash -x << EOF set -x -e pushd scripts ./gen_android_manifest.sh diff --git a/docs/builds/MACOS.md b/docs/builds/MACOS.md index 46a9842a4..7e0f39aab 100644 --- a/docs/builds/MACOS.md +++ b/docs/builds/MACOS.md @@ -7,7 +7,7 @@ The following are the system requirements to build Cake Wallet for your macOS de ```txt macOS 15.3.1 Xcode 16.2 -Flutter 3.27.4 +Flutter 3.27.0 ``` ### 1. Installing dependencies @@ -34,9 +34,9 @@ sudo xcodebuild -runFirstLaunch ### 3. Installing Flutter -Install Flutter, specifically version `3.27.4` by following the [official docs](https://docs.flutter.dev/get-started/install/macos/desktop?tab=download). +Install Flutter, specifically version `3.27.0` by following the [official docs](https://docs.flutter.dev/get-started/install/macos/desktop?tab=download). -NOTE: as `3.27.4` is not the latest version, you'll need to download it from instead of the link in the docs above. +NOTE: as `3.27.0` is not the latest version, you'll need to download it from instead of the link in the docs above. ### 4. Installing Rust @@ -56,7 +56,7 @@ The output of this command should appear like this, indicating successful instal ```zsh Doctor summary (to see all details, run flutter doctor -v): -[✓] Flutter (Channel stable, 3.27.4, on macOS 15.x.x) +[✓] Flutter (Channel stable, 3.27.0, on macOS 15.x.x) ... [✓] Xcode - develop for iOS and macOS (Xcode 16.2) ... diff --git a/docs/builds/WINDOWS.md b/docs/builds/WINDOWS.md index 4fec78dc0..7a86dac49 100644 --- a/docs/builds/WINDOWS.md +++ b/docs/builds/WINDOWS.md @@ -6,18 +6,18 @@ The following are the system requirements to build Cake Wallet for your Windows ```txt Windows 10 or later (64-bit), x86-64 based -Flutter 3.27.4 +Flutter 3.27.0 ``` ### 1. Installing Flutter -Install Flutter, specifically version `3.27.4` by following the [official docs](https://docs.flutter.dev/get-started/install/windows). +Install Flutter, specifically version `3.27.0` by following the [official docs](https://docs.flutter.dev/get-started/install/windows). In order for Flutter to function, you'll also need to enable Developer Mode: Start Menu > search for "Run" > type `ms-settings:developers`, and turn on Developer Mode. -NOTE: as `3.27.4` is not the latest version, you'll need to download it from instead of the link in the docs above. +NOTE: as `3.27.0` is not the latest version, you'll need to download it from instead of the link in the docs above. ### 2. Install Development Tools diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index cbdb343fe..131bc3a02 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -747,5 +747,6 @@ class CWBitcoin extends Bitcoin { final _wallet = wallet as ElectrumWallet; (_wallet.walletAddresses as BitcoinWalletAddresses).payjoinManager.cleanupSessions(); (_wallet.walletAddresses as BitcoinWalletAddresses).currentPayjoinReceiver = null; + (_wallet.walletAddresses as BitcoinWalletAddresses).payjoinEndpoint = null; } } diff --git a/pubspec_base.yaml b/pubspec_base.yaml index e43de5ca1..21166bd74 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -116,7 +116,7 @@ dependencies: git: url: https://github.com/cake-tech/on_chain.git ref: cake-update-v2 - reown_walletkit: ^1.1.2 + reown_walletkit: ^1.1.5+1 blockchain_utils: git: url: https://github.com/cake-tech/blockchain_utils @@ -124,7 +124,7 @@ dependencies: flutter_daemon: git: url: https://github.com/MrCyjaneK/flutter_daemon - ref: 6d5270d64b5dd588fce12fd0a0c7314c37e6cff1 + ref: c24ee99f2f3070ea02d8108bbdd7727d73f7e5f1 flutter_local_notifications: ^19.0.0 dev_dependencies: @@ -133,10 +133,10 @@ dev_dependencies: integration_test: sdk: flutter mocktail: ^1.0.4 - build_runner: ^2.3.3 + build_runner: ^2.4.15 logging: ^1.2.0 mobx_codegen: ^2.1.1 - build_resolvers: ^2.0.9 + build_resolvers: ^2.4.4 hive_generator: ^2.0.1 # flutter_launcher_icons: ^0.11.0 # check flutter_launcher_icons for usage @@ -167,6 +167,7 @@ dependency_overrides: url: https://github.com/vespr-wallet/ledger-flutter-plus ref: c2e341d8038f1108690ad6f80f7b4b7156aacc76 web_socket_channel: ^3.0.2 + freezed_annotation: 2.4.4 flutter_icons: image_path: "assets/images/app_logo.png" diff --git a/scripts/linux/build_cake_release.sh b/scripts/linux/build_cake_release.sh index e8ad6fc54..16f228d2e 100755 --- a/scripts/linux/build_cake_release.sh +++ b/scripts/linux/build_cake_release.sh @@ -14,7 +14,7 @@ cd "$SCRIPT_DIR" BUILD_AMD64=false BUILD_ARM64=false APP_TYPE="cakewallet" -DOCKER_IMAGE="ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-go1.24.1" +DOCKER_IMAGE="ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.0-go1.24.1-ruststablenightly" # Parse arguments for arg in "$@" diff --git a/scripts/windows/Dockerfile.windows b/scripts/windows/Dockerfile.windows index 893009b8f..a534be5e4 100644 --- a/scripts/windows/Dockerfile.windows +++ b/scripts/windows/Dockerfile.windows @@ -4,7 +4,7 @@ FROM mcr.microsoft.com/windows/servercore:ltsc2022 -ENV FLUTTER_VERSION=3.27.4 +ENV FLUTTER_VERSION=3.27.0 ENV GIT_VERSION=2.47.1 ENV VS_INSTALLED_DIR="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools" ENV PATH="C:\Users\ContainerAdministrator\.cargo\bin;C:\ProgramData\chocolatey\bin;C:\flutter\flutter\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps" From e5d0194f11dde616de8018bbd66d653ccff13f4a Mon Sep 17 00:00:00 2001 From: Luis Miguel Date: Wed, 11 Jun 2025 23:48:10 +0200 Subject: [PATCH 2/3] Improving spanish translation (#2313) Thanks for contibuting --- res/values/strings_es.arb | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 5d43cb1a2..06cda2251 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -78,7 +78,7 @@ "background_sync_on_battery_low": "Sincronizar con batería baja", "background_sync_on_charging": "Sincronizar solo al cargar", "background_sync_on_device_idle": "Sincronizar solo cuando el dispositivo no se usa", - "background_sync_on_unmetered_network": "Requerir una red no metida", + "background_sync_on_unmetered_network": "Requerir una red no medida", "backup": "Apoyo", "backup_file": "Archivo de respaldo", "backup_password": "Contraseña de respaldo", @@ -203,7 +203,7 @@ "contractSymbol": "Símbolo de contrato", "copied_key_to_clipboard": "Copiado ${key} al portapapeles", "copied_to_clipboard": "Copiado al portapapeles", - "copy": "Dupdo", + "copy": "Copiar", "copy_address": "Copiar dirección ", "copy_id": "Copiar ID", "copy_payjoin_address": "Copiar dirección de payjoin", @@ -565,7 +565,7 @@ "payjoin_request_awaiting_tx": "Esperando transacción", "payjoin_request_in_progress": "En curso", "payjoin_unavailable": "Payjoin no disponible", - "payjoin_unavailable_sheet_content": "Recibir una transacción Payjoin requiere que tenga Bitcoin listo para usar. \\ N \\ nas pronto como su billetera tenga fondos, Payjoin estará habilitado automáticamente.", + "payjoin_unavailable_sheet_content": "Recibir una transacción Payjoin requiere que tenga Bitcoin listo para usar.\n\nTan pronto como su billetera tenga fondos, Payjoin se habilitará automáticamente.", "payjoin_unavailable_sheet_title": "¿Por qué no está disponible Payjoin?", "payment_id": "ID de pago: ", "payment_made_easy": "Pagos hechos fáciles", @@ -668,7 +668,7 @@ "restore_from_date_or_blockheight": "Ingrese una fecha unos días antes de crear esta billetera. O si conoce la altura del bloque, ingréselo en su lugar", "restore_from_seed_placeholder": "Ingrese o pegue su frase de código aquí", "restore_new_seed": "Nueva semilla", - "restore_next": "Próximo", + "restore_next": "Seguir", "restore_recover": "Recuperar", "restore_restore_wallet": "Recuperar Cartera", "restore_seed_keys_restore": "Restauración de semillas / llaves", @@ -684,7 +684,7 @@ "restore_wallet_restore_description": "Restaurar billetera", "robinhood_option_description": "Compra y transfiere instantáneamente utilizando su tarjeta de débito, cuenta bancaria o saldo de Robinhood. Solo EE. UU.", "router_no_route": "No hay ruta definida para ${name}", - "save": "Salvar", + "save": "Guardar", "save_backup_password": "Asegúrese de haber guardado su contraseña de respaldo. No podrá importar sus archivos de respaldo sin él.", "save_backup_password_alert": "Guardar contraseña de respaldo", "save_to_downloads": "Guardar en Descargas", @@ -723,7 +723,7 @@ "seed_language_italian": "Italiana/Italiano", "seed_language_japanese": "Japonés", "seed_language_korean": "Coreano", - "seed_language_next": "Próximo", + "seed_language_next": "Seguir", "seed_language_portuguese": "Portugués", "seed_language_russian": "Ruso", "seed_language_spanish": "Español", @@ -806,21 +806,21 @@ "setup_pin": "PIN de configuración", "setup_successful": "Tu PIN se ha configurado correctamente!", "setup_totp_recommended": "Configurar TOTP", - "setup_warning_2fa_text": "Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n\nEl soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas.\nCake 2FA es una segunda autenticación para ciertas acciones en la billetera. Antes de usar Cake 2FA, recomendamos leer la guía.NO es tan seguro como el almacenamiento en frío.\n\nSi pierde el acceso a su aplicación 2FA o a sus claves TOTP, perderá el acceso a esta billetera. ", + "setup_warning_2fa_text": "Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n\nEl soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas.\nCake 2FA es una segunda autenticación para ciertas acciones en la billetera. Antes de usar Cake 2FA, recomendamos leer la guía. NO es tan seguro como el almacenamiento en frío.\n\nSi pierde el acceso a su aplicación 2FA o a sus claves TOTP, perderá el acceso a esta billetera. ", "setup_your_debit_card": "Configura tu tarjeta de débito", "share": "Compartir", "share_address": "Compartir dirección", "shared_seed_wallet_groups": "Grupos de billetera de semillas compartidas", - "show": "Espectáculo", + "show": "Mostrar", "show_address_book_popup": "Mostrar la ventana emergente de la libreta de direcciones", - "show_balance": "Prensa larga para mostrar equilibrio", - "show_balance_toast": "Prensa larga para esconder o mostrar equilibrio", + "show_balance": "Pulsación larga para mostrar balance", + "show_balance_toast": "Pulsación larga para ocultar o mostrar balance", "show_details": "Mostrar detalles", "show_keys": "Mostrar semilla/claves", "show_market_place": "Mostrar mercado", "show_seed": "Mostrar semilla", "sign_all": "Firmar todo", - "sign_message": "Mensaje de firma", + "sign_message": "Firmar mensaje", "sign_one": "Firmar", "sign_up": "Registrarse", "sign_verify_message": "Firmar / verificar", @@ -859,9 +859,9 @@ "success": "Éxito", "successful": "Exitoso", "support_description_guides": "Documentación y apoyo para problemas comunes", - "support_description_live_chat": "¡GRATIS y RÁPIDO! Los representantes de apoyo capacitado están disponibles para ayudar", - "support_description_other_links": "Únete a nuestras comunidades o comunícate con nosotros nuestros socios a través de otros métodos", - "support_title_guides": "Documentos de billetera de pastel", + "support_description_live_chat": "¡Gratis y rápido! Los representantes de soporte están disponibles para ayudar", + "support_description_other_links": "Únete a nuestras comunidades o comunícate con nosotros o nuestros socios a través de otros métodos", + "support_title_guides": "Documentación de Cake Wallet", "support_title_live_chat": "Soporte en tiempo real", "support_title_other_links": "Otros enlaces de soporte", "supported": "Compatible", @@ -985,7 +985,7 @@ "unavailable_balance": "Saldo no disponible", "unavailable_balance_description": "Saldo no disponible: este total incluye fondos que están bloqueados en transacciones pendientes y aquellos que usted ha congelado activamente en su configuración de control de monedas. Los saldos bloqueados estarán disponibles una vez que se completen sus respectivas transacciones, mientras que los saldos congelados permanecerán inaccesibles para las transacciones hasta que usted decida descongelarlos.", "unconfirmed": "Saldo no confirmado", - "understand": "Entiendo", + "understand": "Entendido", "unlock": "desbloquear", "unmatched_currencies": "La moneda de tu billetera actual no coincide con la del QR escaneado", "unrestricted_background_service": "Servicio de sincronización sin restricciones", @@ -1011,7 +1011,7 @@ "value_type": "Tipo de valor", "variable_pair_not_supported": "Este par de variables no es compatible con los intercambios seleccionados", "verification": "Verificación", - "verify_message": "Mensaje de verificación", + "verify_message": "Verificar mensaje", "verify_seed": "Verificar semilla", "verify_with_2fa": "Verificar con Cake 2FA", "version": "Versión ${currentVersion}", From fe0c9ecc0eb6480a259152cfbd7d954698427ea5 Mon Sep 17 00:00:00 2001 From: David Adegoke <64401859+Blazebrain@users.noreply.github.com> Date: Sat, 14 Jun 2025 02:18:46 +0100 Subject: [PATCH 3/3] CW-1084: Solana Issues (#2305) * fix(solana-issues): Fix missing solana transaction history entries * fix(solana-issues): Fixes issues relating to Solana Transaction History This change: - Modifies transaction parsing logic to handle more scenarios and better parse Solana transaction data. - Adds partial filter for spam transactions * fix(solana-issues): Enhance transaction parsing for Associated Token Account (ATA) programs This change: - Adds logic to differentiate between create account and token transfer transactions for the ATA program. - Introduces a check to skip transactions that only create accounts without associated token transfers. * fix(solana-issues): Improve transaction update logic and enhance error handling This change: - Updates the transaction update callback to only trigger when new valid transactions are present. - Enhances error handling for insufficient funds by distinguishing between errors for sender and receiver. --- cw_solana/lib/solana_client.dart | 379 ++++++++++++++--------- lib/view_model/send/send_view_model.dart | 11 +- res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 1 + res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 3 +- res/values/strings_hr.arb | 1 + res/values/strings_hy.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_vi.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + 30 files changed, 263 insertions(+), 157 deletions(-) diff --git a/cw_solana/lib/solana_client.dart b/cw_solana/lib/solana_client.dart index 05b0cec82..128366c73 100644 --- a/cw_solana/lib/solana_client.dart +++ b/cw_solana/lib/solana_client.dart @@ -13,13 +13,17 @@ import 'package:cw_solana/solana_transaction_model.dart'; import 'package:cw_solana/spl_token.dart'; import 'package:http/http.dart' as http; import 'package:on_chain/solana/solana.dart'; +import 'package:on_chain/solana/src/instructions/associated_token_account/constant.dart'; import 'package:on_chain/solana/src/models/pda/pda.dart'; import 'package:blockchain_utils/blockchain_utils.dart'; +import 'package:on_chain/solana/src/rpc/models/models/confirmed_transaction_meta.dart'; import '.secrets.g.dart' as secrets; class SolanaWalletClient { final httpClient = http.Client(); SolanaRPC? _provider; + // Minimum amount in SOL to consider a transaction valid (to filter spam) + static const double minValidAmount = 0.00000003; bool connect(Node node) { try { @@ -155,170 +159,88 @@ class SolanaWalletClient { if (meta == null || transaction == null) return null; final int fee = meta.fee; + final feeInSol = fee / SolanaUtils.lamportsPerSol; final message = transaction.message; final instructions = message.compiledInstructions; - String sender = ""; - String receiver = ""; - String signature = (txResponse.transaction?.signatures.isEmpty ?? true) ? "" : Base58Encoder.encode(txResponse.transaction!.signatures.first); + for (final instruction in instructions) { final programId = message.accountKeys[instruction.programIdIndex]; - if (programId == SystemProgramConst.programId) { + if (programId == SystemProgramConst.programId || + programId == ComputeBudgetConst.programId) { // For native solana transactions + if (instruction.accounts.length < 2) continue; - if (txResponse.version == TransactionType.legacy) { - // For legacy transfers, the fee payer (index 0) is the sender. - sender = message.accountKeys[0].address; + // Get the fee payer index based on transaction type + // For legacy transfers, the first account is usually the fee payer + // For versioned, the first account in instruction is usually the fee payer + final feePayerIndex = + txResponse.version == TransactionType.legacy ? 0 : instruction.accounts[0]; - final senderPreBalance = meta.preBalances[0]; - final senderPostBalance = meta.postBalances[0]; - final feeForTx = fee / SolanaUtils.lamportsPerSol; + final transactionModel = await _parseNativeTransaction( + message: message, + meta: meta, + fee: fee, + feeInSol: feeInSol, + feePayerIndex: feePayerIndex, + walletAddress: walletAddress, + signature: signature, + blockTime: blockTime, + ); - // The loss on the sender's account would include both the transfer amount and the fee. - // So we would subtract the fee to calculate the actual amount that was transferred (in lamports). - final transferLamports = (senderPreBalance - senderPostBalance) - BigInt.from(fee); - - // Next, we attempt to find the receiver by comparing the balance changes. - // (The index 0 is for the sender so we skip it.) - bool foundReceiver = false; - for (int i = 1; i < meta.preBalances.length; i++) { - // The increase in balance on the receiver account should correspond to the transfer amount we calculated earlieer. - final pre = meta.preBalances[i]; - final post = meta.postBalances[i]; - if ((post - pre) == transferLamports) { - receiver = message.accountKeys[i].address; - foundReceiver = true; - break; - } - } - - if (!foundReceiver) { - // Optionally (and rarely), if no account shows the exact expected change, - // we set the receiver address to unknown. - receiver = "unknown"; - } - - final amount = transferLamports / BigInt.from(1e9); - - return SolanaTransactionModel( - isOutgoingTx: sender == walletAddress, - from: sender, - to: receiver, - id: signature, - amount: amount.abs(), - programId: SystemProgramConst.programId.address, - tokenSymbol: 'SOL', - blockTimeInInt: blockTime?.toInt() ?? 0, - fee: feeForTx, - ); - } else { - if (instruction.accounts.length < 2) continue; - final senderIndex = instruction.accounts[0]; - final receiverIndex = instruction.accounts[1]; - - sender = message.accountKeys[senderIndex].address; - receiver = message.accountKeys[receiverIndex].address; - - final feeForTx = fee / SolanaUtils.lamportsPerSol; - - final preBalances = meta.preBalances; - final postBalances = meta.postBalances; - - final amountInString = - (((preBalances[senderIndex] - postBalances[senderIndex]) / BigInt.from(1e9)) - .toDouble() - - feeForTx) - .toStringAsFixed(6); - - final amount = double.parse(amountInString); - - return SolanaTransactionModel( - isOutgoingTx: sender == walletAddress, - from: sender, - to: receiver, - id: signature, - amount: amount.abs(), - programId: SystemProgramConst.programId.address, - tokenSymbol: 'SOL', - blockTimeInInt: blockTime?.toInt() ?? 0, - fee: feeForTx, - ); + if (transactionModel != null) { + return transactionModel; } } else if (programId == SPLTokenProgramConst.tokenProgramId) { // For SPL Token transactions if (instruction.accounts.length < 2) continue; - final preBalances = meta.preTokenBalances; - final postBalances = meta.postTokenBalances; - - double amount = 0.0; - bool isOutgoing = false; - String? mintAddress; - - double userPreAmount = 0.0; - if (preBalances != null && preBalances.isNotEmpty) { - for (final preBal in preBalances) { - if (preBal.owner?.address == walletAddress) { - userPreAmount = preBal.uiTokenAmount.uiAmount ?? 0.0; - - mintAddress = preBal.mint.address; - break; - } - } - } - - double userPostAmount = 0.0; - if (postBalances != null && postBalances.isNotEmpty) { - for (final postBal in postBalances) { - if (postBal.owner?.address == walletAddress) { - userPostAmount = postBal.uiTokenAmount.uiAmount ?? 0.0; - - mintAddress ??= postBal.mint.address; - break; - } - } - } - - final diff = userPreAmount - userPostAmount; - final rawAmount = diff.abs(); - - final amountInString = rawAmount.toStringAsFixed(6); - amount = double.parse(amountInString); - - isOutgoing = diff > 0; - - if (mintAddress == null && instruction.accounts.length >= 4) { - final mintIndex = instruction.accounts[3]; - mintAddress = message.accountKeys[mintIndex].address; - } - - final sender = message.accountKeys[instruction.accounts[0]].address; - final receiver = message.accountKeys[instruction.accounts[1]].address; - - String? tokenSymbol = splTokenSymbol; - - if (tokenSymbol == null && mintAddress != null) { - final token = await getTokenInfo(mintAddress); - tokenSymbol = token?.symbol; - } - - return SolanaTransactionModel( - isOutgoingTx: isOutgoing, - from: sender, - to: receiver, - id: signature, - amount: amount, - programId: SPLTokenProgramConst.tokenProgramId.address, - blockTimeInInt: blockTime?.toInt() ?? 0, - tokenSymbol: tokenSymbol ?? '', - fee: fee / SolanaUtils.lamportsPerSol, + final transactionModel = await _parseSPLTokenTransaction( + message: message, + meta: meta, + fee: fee, + feeInSol: feeInSol, + instruction: instruction, + walletAddress: walletAddress, + signature: signature, + blockTime: blockTime, + splTokenSymbol: splTokenSymbol, ); + + if (transactionModel != null) { + return transactionModel; + } + } else if (programId == AssociatedTokenAccountProgramConst.associatedTokenProgramId) { + // For ATA program, we need to check if this is a create account transaction + // or if it's part of a normal token transfer + + // We skip this transaction if this is the only instruction (this means that it's a create account transaction) + if (instructions.length == 1) { + return null; + } + + // We look for a token transfer instruction in the same transaction + bool hasTokenTransfer = false; + for (final otherInstruction in instructions) { + final otherProgramId = message.accountKeys[otherInstruction.programIdIndex]; + if (otherProgramId == SPLTokenProgramConst.tokenProgramId) { + hasTokenTransfer = true; + break; + } + } + + // If there's no token transfer instruction, it means this is just an ATA creation transaction + if (!hasTokenTransfer) { + return null; + } + + continue; } else { return null; } @@ -330,6 +252,144 @@ class SolanaWalletClient { return null; } + Future _parseNativeTransaction({ + required VersionedMessage message, + required ConfirmedTransactionMeta meta, + required int fee, + required double feeInSol, + required int feePayerIndex, + required String walletAddress, + required String signature, + required BigInt? blockTime, + }) async { + // Calculate total balance changes across all accounts + BigInt totalBalanceChange = BigInt.zero; + String? sender; + String? receiver; + + for (int i = 0; i < meta.preBalances.length; i++) { + final preBalance = meta.preBalances[i]; + final postBalance = meta.postBalances[i]; + final balanceChange = preBalance - postBalance; + + if (balanceChange > BigInt.zero) { + // This account sent funds + sender = message.accountKeys[i].address; + totalBalanceChange += balanceChange; + } else if (balanceChange < BigInt.zero) { + // This account received funds + receiver = message.accountKeys[i].address; + } + } + + // We subtract the fee from total balance change if the fee payer is the sender + if (sender == message.accountKeys[feePayerIndex].address) { + totalBalanceChange -= BigInt.from(fee); + } + + if (sender == null || receiver == null) { + return null; + } + + final amount = totalBalanceChange / BigInt.from(1e9); + final amountInSol = amount.abs().toDouble(); + + // Skip transactions with very small amounts (likely spam) + if (amountInSol < minValidAmount) { + return null; + } + + return SolanaTransactionModel( + isOutgoingTx: sender == walletAddress, + from: sender, + to: receiver, + id: signature, + amount: amountInSol, + programId: SystemProgramConst.programId.address, + tokenSymbol: 'SOL', + blockTimeInInt: blockTime?.toInt() ?? 0, + fee: feeInSol, + ); + } + + Future _parseSPLTokenTransaction({ + required VersionedMessage message, + required ConfirmedTransactionMeta meta, + required int fee, + required double feeInSol, + required CompiledInstruction instruction, + required String walletAddress, + required String signature, + required BigInt? blockTime, + String? splTokenSymbol, + }) async { + final preBalances = meta.preTokenBalances; + final postBalances = meta.postTokenBalances; + + double amount = 0.0; + bool isOutgoing = false; + String? mintAddress; + + double userPreAmount = 0.0; + if (preBalances != null && preBalances.isNotEmpty) { + for (final preBal in preBalances) { + if (preBal.owner?.address == walletAddress) { + userPreAmount = preBal.uiTokenAmount.uiAmount ?? 0.0; + + mintAddress = preBal.mint.address; + break; + } + } + } + + double userPostAmount = 0.0; + if (postBalances != null && postBalances.isNotEmpty) { + for (final postBal in postBalances) { + if (postBal.owner?.address == walletAddress) { + userPostAmount = postBal.uiTokenAmount.uiAmount ?? 0.0; + + mintAddress ??= postBal.mint.address; + break; + } + } + } + + final diff = userPreAmount - userPostAmount; + final rawAmount = diff.abs(); + + final amountInString = rawAmount.toStringAsFixed(6); + amount = double.parse(amountInString); + + isOutgoing = diff > 0; + + if (mintAddress == null && instruction.accounts.length >= 4) { + final mintIndex = instruction.accounts[3]; + mintAddress = message.accountKeys[mintIndex].address; + } + + final sender = message.accountKeys[instruction.accounts[0]].address; + final receiver = message.accountKeys[instruction.accounts[1]].address; + + String? tokenSymbol = splTokenSymbol; + + if (tokenSymbol == null && mintAddress != null) { + final token = await getTokenInfo(mintAddress); + tokenSymbol = token?.symbol; + } + + return SolanaTransactionModel( + isOutgoingTx: isOutgoing, + from: sender, + to: receiver, + id: signature, + amount: amount, + programId: SPLTokenProgramConst.tokenProgramId.address, + blockTimeInInt: blockTime?.toInt() ?? 0, + tokenSymbol: tokenSymbol ?? '', + fee: feeInSol, + ); + } + /// Load the Address's transactions into the account Future> fetchTransactions( SolAddress address, { @@ -381,11 +441,13 @@ class SolanaWalletClient { transactions.addAll(parsedTransactions.whereType().toList()); - // Calling the callback after each batch is processed, therefore passing the current list of transactions. - onUpdate(List.from(transactions)); + // Only update UI if we have new valid transactions + if (parsedTransactions.isNotEmpty) { + onUpdate(List.from(transactions)); + } if (i + batchSize < signatures.length) { - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 300)); } } @@ -732,19 +794,24 @@ class SolanaWalletClient { SolanaAccountInfo? accountInfo; try { accountInfo = await _provider!.request( - SolanaRPCGetAccountInfo(account: associatedTokenAccount.address), + SolanaRPCGetAccountInfo( + account: associatedTokenAccount.address, + commitment: Commitment.confirmed, + ), ); } catch (e) { accountInfo = null; } - // If aacountInfo is null, signifies that the associatedTokenAccount has only been created locally and not been broadcasted to the blockchain. + // If account exists, we return the associated token account if (accountInfo != null) return associatedTokenAccount; if (!shouldCreateATA) return null; + final payerAddress = payerPrivateKey.publicKey().toAddress(); + final createAssociatedTokenAccount = AssociatedTokenAccountProgram.associatedTokenAccount( - payer: payerPrivateKey.publicKey().toAddress(), + payer: payerAddress, associatedToken: associatedTokenAccount.address, owner: ownerAddress, mint: mintAddress, @@ -753,19 +820,23 @@ class SolanaWalletClient { final blockhash = await _getLatestBlockhash(Commitment.confirmed); final transaction = SolanaTransaction( - payerKey: payerPrivateKey.publicKey().toAddress(), + payerKey: payerAddress, instructions: [createAssociatedTokenAccount], recentBlockhash: blockhash, + type: TransactionType.v0, ); - transaction.sign([payerPrivateKey]); + final serializedTransaction = await _signTransactionInternal( + ownerPrivateKey: payerPrivateKey, + transaction: transaction, + ); await sendTransaction( - serializedTransaction: transaction.serializeString(), + serializedTransaction: serializedTransaction, commitment: Commitment.confirmed, ); - // Delay for propagation on the blockchain for newly created associated token addresses + // Wait for confirmation await Future.delayed(const Duration(seconds: 2)); return associatedTokenAccount; @@ -890,7 +961,7 @@ class SolanaWalletClient { }) async { /// Sign the transaction with the owner's private key. final ownerSignature = ownerPrivateKey.sign(transaction.serializeMessage()); - + transaction.addSignature(ownerPrivateKey.publicKey().toAddress(), ownerSignature); /// Serialize the transaction. diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index be354d976..0a4b7e841 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -767,8 +767,15 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return S.current.solana_no_associated_token_account_exception; } - if (errorMessage.contains('insufficient funds for rent')) { - return S.current.insufficientFundsForRentError; + if (errorMessage.contains('insufficient funds for rent') && + errorMessage.contains('Transaction simulation failed') && + errorMessage.contains('account_index')) { + final accountIndexMatch = RegExp(r'account_index: (\d+)').firstMatch(errorMessage); + if (accountIndexMatch != null) { + return int.parse(accountIndexMatch.group(1)!) == 0 + ? S.current.insufficientFundsForRentError + : S.current.insufficientFundsForRentErrorReceiver; + } } return errorMessage; diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 3c0d4f48e..81f7fcb33 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "ليس لديك ما يكفي من SOL لتغطية المعاملة ورسوم المعاملات الخاصة بها. يرجى إضافة المزيد من SOL إلى محفظتك أو تقليل كمية SOL التي ترسلها.", "insufficient_lamports": "ليس لديك ما يكفي من SOL لتغطية المعاملة ورسوم المعاملات الخاصة بها. تحتاج على الأقل ${solValueNeeded} sol. يرجى إضافة المزيد من sol إلى محفظتك أو تقليل مبلغ sol الذي ترسله", "insufficientFundsForRentError": "ليس لديك ما يكفي من SOL لتغطية رسوم المعاملة والإيجار للحساب. يرجى إضافة المزيد من sol إلى محفظتك أو تقليل مبلغ sol الذي ترسله", + "insufficientFundsForRentErrorReceiver": "لا يحتوي حساب المتلقي على ما يكفي من SOL لتغطية الإيجار. يرجى اطلب من المتلقي إضافة المزيد من SOL إلى حسابه.", "introducing_cake_pay": "نقدم لكم Cake Pay!", "invalid_input": "مدخل غير صالح", "invalid_password": "رمز مرور خاطئ", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index e86a17f95..e952d3728 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Нямате достатъчно SOL, за да покриете транзакцията и таксата му за транзакция. Моля, добавете повече SOL към портфейла си или намалете сумата на SOL, която изпращате.", "insufficient_lamports": "Нямате достатъчно SOL, за да покриете транзакцията и таксата му за транзакция. Имате нужда от поне ${solValueNeeded} sol. Моля, добавете повече SOL към портфейла си или намалете сумата на SOL, която изпращате", "insufficientFundsForRentError": "Нямате достатъчно SOL, за да покриете таксата за транзакцията и наемането на сметката. Моля, добавете повече SOL към портфейла си или намалете сумата на SOL, която изпращате", + "insufficientFundsForRentErrorReceiver": "Сметката на приемника няма достатъчно SOL, за да покрие наема. Моля, помолете приемника да добави още SOL към техния акаунт.", "introducing_cake_pay": "Запознайте се с Cake Pay!", "invalid_input": "Невалиден вход", "invalid_password": "Невалидна парола", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 21a8b2cd4..1b17c4362 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Nemáte dostatek SOL na pokrytí transakce a jejího transakčního poplatku. Laskavě přidejte do své peněženky více solu nebo snižte množství Sol, kterou odesíláte.", "insufficient_lamports": "Nemáte dostatek SOL na pokrytí transakce a jejího transakčního poplatku. Potřebujete alespoň ${solValueNeeded} sol. Laskavě přidejte do své peněženky více SOL nebo snižte množství Sol, kterou odesíláte", "insufficientFundsForRentError": "Nemáte dostatek SOL na pokrytí transakčního poplatku a nájemného za účet. Laskavě přidejte do své peněženky více SOL nebo snižte množství Sol, kterou odesíláte", + "insufficientFundsForRentErrorReceiver": "Účet přijímače nemá dostatek SOL na pokrytí nájemného. Požádejte přijímač, aby na jejich účet přidal další SOL.", "introducing_cake_pay": "Představujeme Cake Pay!", "invalid_input": "Neplatný vstup", "invalid_password": "Neplatné heslo", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 17e75ded0..27a312b5c 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Sie haben nicht genug SOL, um die Transaktion und ihre Transaktionsgebühr abzudecken. Bitte fügen Sie Ihrer Wallet mehr Sol hinzu oder reduzieren Sie die SOL-Menge, die Sie senden.", "insufficient_lamports": "Sie haben nicht genug SOL, um die Transaktion und ihre Transaktionsgebühr abzudecken. Sie brauchen mindestens ${solValueNeeded} Sol. Bitte fügen Sie mehr Sol zu Ihrer Wallet hinzu oder reduzieren Sie den von Ihnen gesendeten Sol-Betrag", "insufficientFundsForRentError": "Sie haben nicht genug SOL, um die Transaktionsgebühr und die Miete für das Konto zu decken. Bitte fügen Sie mehr Sol zu Ihrer Wallet hinzu oder reduzieren Sie den von Ihnen gesendeten Sol-Betrag", + "insufficientFundsForRentErrorReceiver": "Das Konto des Empfängers hat nicht genug SOL, um die Miete zu decken. Bitte bitten Sie den Empfänger, ihr Konto mehr Sol hinzuzufügen.", "introducing_cake_pay": "Einführung von Cake Pay!", "invalid_input": "Ungültige Eingabe", "invalid_password": "Ungültiges Passwort", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 59533730e..725ab95a3 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "You do not have enough SOL to cover the transaction and its transaction fee. Kindly add more SOL to your wallet or reduce the SOL amount you\\'re sending.", "insufficient_lamports": "You do not have enough SOL to cover the transaction and its transaction fee. You need at least ${solValueNeeded} SOL. Kindly add more SOL to your wallet or reduce the SOL amount you\\'re sending", "insufficientFundsForRentError": "You do not have enough SOL to cover the transaction fee and rent for the account. Kindly add more SOL to your wallet or reduce the SOL amount you\\'re sending", + "insufficientFundsForRentErrorReceiver": "The receiver's account does not have enough SOL to cover the rent. Please ask the receiver to add more SOL to their account.", "introducing_cake_pay": "Introducing Cake Pay!", "invalid_input": "Invalid input", "invalid_password": "Invalid password", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 06cda2251..7c1bc280c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "No tienes suficiente SOL para cubrir la transacción y su tarifa de transacción. Por favor, agrega más SOL a su billetera o reduce la cantidad de sol que está enviando.", "insufficient_lamports": "No tienes suficiente SOL para cubrir la transacción y su tarifa de transacción. Necesita al menos ${solValueNeeded} sol. Por favor, agrega más sol a su billetera o reduzca la cantidad de sol que está enviando", "insufficientFundsForRentError": "No tienes suficiente SOL para cubrir la tarifa de transacción y alquilar para la cuenta. Por favor, agrega más sol a su billetera o reduce la cantidad de sol que está enviando", + "insufficientFundsForRentErrorReceiver": "La cuenta del receptor no tiene suficiente SOL para cubrir el alquiler. Pida al receptor que agregue más SOL a su cuenta.", "introducing_cake_pay": "¡Presentamos Cake Pay!", "invalid_input": "Entrada inválida", "invalid_password": "Contraseña invalida", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 302435dcb..d762c558d 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Vous n'avez pas assez de sol pour couvrir la transaction et ses frais de transaction. Veuillez ajouter plus de Sol à votre portefeuille ou réduire la quantité de Sol que vous envoyez.", "insufficient_lamports": "Vous n'avez pas assez de sol pour couvrir la transaction et ses frais de transaction. Vous avez besoin d'au moins ${solValueNeeded} sol. Veuillez ajouter plus de Sol à votre portefeuille ou réduire la quantité de sol que vous envoyez", "insufficientFundsForRentError": "Vous n'avez pas assez de SOL pour couvrir les frais de transaction et le loyer pour le compte. Veuillez ajouter plus de Sol à votre portefeuille ou réduire la quantité de sol que vous envoyez", + "insufficientFundsForRentErrorReceiver": "Le compte du récepteur n'a pas assez de sol pour couvrir le loyer. Veuillez demander au récepteur d'ajouter plus de Sol à son compte.", "introducing_cake_pay": "Présentation de Cake Pay !", "invalid_input": "Entrée invalide", "invalid_password": "Mot de passe incorrect", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 6a3d2f2f0..ad4db22e5 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Ba ku da isasshen sool don rufe ma'amala da kuɗin ma'amala. Da unara ƙara ƙarin sool a cikin walat ɗinku ko rage adadin Sol ɗin da kuke aikawa.", "insufficient_lamports": "Ba ku da isasshen sool don rufe ma'amala da kuɗin ma'amala. Kuna buƙatar aƙalla ${solValueNeeded} Sol. Da kyau ƙara ƙarin sool zuwa walat ɗinku ko rage adadin Sol ɗin da kuke aikawa", "insufficientFundsForRentError": "Ba ku da isasshen Sol don rufe kuɗin ma'amala da haya don asusun. Da kyau ƙara ƙarin sool zuwa walat ɗinku ko rage adadin Sol ɗin da kuke aikawa", + "insufficientFundsForRentErrorReceiver": "Asusun mai karba bashi da isasshen soya don rufe haya. Da fatan za a nemi mai karba don ƙara ƙarin sol zuwa asusun su.", "introducing_cake_pay": "Gabatar da Cake Pay!", "invalid_input": "Shigar da ba daidai ba", "invalid_password": "Kalmar sirri mara inganci", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index bad13b469..819486206 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "आपके पास लेनदेन और इसके लेनदेन शुल्क को कवर करने के लिए पर्याप्त सोल नहीं है। कृपया अपने बटुए में अधिक सोल जोड़ें या आपके द्वारा भेजे जा रहे सोल राशि को कम करें।", "insufficient_lamports": "आपके पास लेनदेन और इसके लेनदेन शुल्क को कवर करने के लिए पर्याप्त सोल नहीं है। आपको कम से कम ${solValueNeeded} सोल की आवश्यकता है। कृपया अपने बटुए में अधिक सोल जोड़ें या सोल राशि को कम करें जिसे आप भेज रहे हैं", "insufficientFundsForRentError": "आपके पास लेन -देन शुल्क और खाते के लिए किराए को कवर करने के लिए पर्याप्त सोल नहीं है। कृपया अपने बटुए में अधिक सोल जोड़ें या सोल राशि को कम करें जिसे आप भेज रहे हैं", + "insufficientFundsForRentErrorReceiver": "रिसीवर के खाते में किराए को कवर करने के लिए पर्याप्त सोल नहीं है। कृपया रिसीवर को उनके खाते में अधिक सोल जोड़ने के लिए कहें।", "introducing_cake_pay": "परिचय Cake Pay!", "invalid_input": "अमान्य निवेश", "invalid_password": "अवैध पासवर्ड", @@ -569,8 +570,8 @@ "payjoin_unavailable_sheet_title": "Payjoin अनुपलब्ध क्यों है?", "payment_id": "भुगतान ID: ", "payment_made_easy": "भुगतान आसान किया गया", - "payment_was_received": "आपका भुगतान प्राप्त हुआ था।", "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।", + "payment_was_received": "आपका भुगतान प्राप्त हुआ था।", "payments": "भुगतान", "pending": " (अपूर्ण)", "percentageOf": "${amount} का", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 286ced787..43025f45c 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Nemate dovoljno SOL -a da pokriva transakciju i njegovu transakcijsku naknadu. Ljubazno dodajte više sol u svoj novčanik ili smanjite količinu SOL -a koju šaljete.", "insufficient_lamports": "Nemate dovoljno SOL -a da pokriva transakciju i njegovu transakcijsku naknadu. Trebate najmanje ${solValueNeeded} sol. Ljubazno dodajte više sol u svoj novčanik ili smanjite količinu SOL -a koju šaljete", "insufficientFundsForRentError": "Nemate dovoljno SOL -a za pokrivanje naknade za transakciju i najamninu za račun. Ljubazno dodajte više sol u svoj novčanik ili smanjite količinu SOL -a koju šaljete", + "insufficientFundsForRentErrorReceiver": "Račun prijemnika nema dovoljno SOL -a da pokriva najamninu. Molimo zamolite prijemnika da doda više SOL -a na svoj račun.", "introducing_cake_pay": "Predstavljamo Cake Pay!", "invalid_input": "Pogrešan unos", "invalid_password": "Netočna zaporka", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index b4d095027..57203b934 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Դուք չունեք բավարար SOL՝ գործարքն և գործարքի վարձը ծածկելու համար։ Խնդրում ենք ավելացնել ավելի շատ SOL ձեր դրամապանակում կամ նվազեցնել ուղարկվող SOL-ի քանակը։", "insufficient_lamports": "Դուք չունեք բավարար SOL՝ գործարքն և գործարքի վարձը ծածկելու համար։ Ձեզ անհրաժեշտ է առնվազն ${solValueNeeded} SOL։ Խնդրում ենք ավելացնել ավելի շատ SOL ձեր դրամապանակում կամ նվազեցնել ուղարկվող SOL-ի քանակը։", "insufficientFundsForRentError": "Ձեր մնացորդը բավարար չէ վարձակալության համար: Խնդրում ենք ավելացնել մնացորդը կամ նվազեցնել ուղարկվող գումարը", + "insufficientFundsForRentErrorReceiver": "Ստացողի հաշիվը չունի բավարար SOL, վարձավճարը ծածկելու համար: Խնդրում ենք ստանալ ստացողին ավելի շատ սոլ ավելացնել իրենց հաշվին:", "introducing_cake_pay": "Ներկայացնում ենք Cake Pay!", "invalid_input": "Սխալ մուտք", "invalid_password": "Սխալ գաղտնաբառ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index d1d699150..b7cf3e84e 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Anda tidak memiliki cukup SOL untuk menutupi transaksi dan biaya transaksinya. Mohon tambahkan lebih banyak sol ke dompet Anda atau kurangi jumlah sol yang Anda kirim.", "insufficient_lamports": "Anda tidak memiliki cukup SOL untuk menutupi transaksi dan biaya transaksinya. Anda membutuhkan setidaknya ${solValueNeeded} sol. Mohon tambahkan lebih banyak sol ke dompet Anda atau kurangi jumlah sol yang Anda kirim", "insufficientFundsForRentError": "Anda tidak memiliki cukup SOL untuk menutupi biaya transaksi dan menyewa untuk akun tersebut. Mohon tambahkan lebih banyak sol ke dompet Anda atau kurangi jumlah sol yang Anda kirim", + "insufficientFundsForRentErrorReceiver": "Akun penerima tidak memiliki cukup SOL untuk menutupi sewa. Silakan minta penerima untuk menambahkan lebih banyak SOL ke akun mereka.", "introducing_cake_pay": "Perkenalkan Cake Pay!", "invalid_input": "Masukan tidak valid", "invalid_password": "Kata sandi salah", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 019885f42..6edfc837a 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Non hai abbastanza SOL per coprire la transazione e la sua quota di transazione. Aggiungi più SOL al tuo portafoglio, o riduci l'importo di SOL che stai inviando.", "insufficient_lamports": "Non hai abbastanza SOL per coprire la transazione e la sua quota di transazione. Hai bisogno di almeno ${solValueNeeded} SOL. Aggiungi più SOL al tuo portafoglio, o riduci l'importo di SOL che stai inviando", "insufficientFundsForRentError": "Non hai abbastanza SOL per coprire la tassa di transazione e l'affitto per il conto. Aggiungi più SOL al tuo portafoglio, o riduci l'importo di SOL che stai inviando", + "insufficientFundsForRentErrorReceiver": "L'account del destinatario non ha abbastanza SOL per coprire l'affitto. Si prega di chiedere al destinatario di aggiungere più SOL al loro account.", "introducing_cake_pay": "Vi presentiamo Cake Pay!", "invalid_input": "Inserimento non valido", "invalid_password": "Password non valida", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index c9021d7da..60b964f6d 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -419,6 +419,7 @@ "insufficient_lamport_for_tx": "トランザクションとその取引手数料をカバーするのに十分なSOLがありません。財布にソルを追加するか、送信するソル量を減らしてください。", "insufficient_lamports": "トランザクションとその取引手数料をカバーするのに十分なSOLがありません。少なくとも${solValueNeeded} solが必要です。財布にソルを追加するか、送信するソル量を減らしてください", "insufficientFundsForRentError": "アカウントの取引料金とレンタルをカバーするのに十分なソルがありません。財布にソルを追加するか、送信するソル量を減らしてください", + "insufficientFundsForRentErrorReceiver": "受信者のアカウントには、家賃をカバーするのに十分なソルがありません。レシーバーにアカウントにソルを追加するように依頼してください。", "introducing_cake_pay": "序章Cake Pay!", "invalid_input": "無効入力", "invalid_password": "無効なパスワード", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index a7ada45e7..31a9c5d0b 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "트랜잭션 및 트랜잭션 수수료를 충당하기에 SOL이 부족합니다. 지갑에 SOL을 더 추가하거나 보내는 SOL 금액을 줄이세요.", "insufficient_lamports": "트랜잭션 및 트랜잭션 수수료를 충당하기에 SOL이 부족합니다. 최소 ${solValueNeeded} SOL이 필요합니다. 지갑에 SOL을 더 추가하거나 보내는 SOL 금액을 줄이세요.", "insufficientFundsForRentError": "계정의 트랜잭션 수수료 및 렌트를 충당하기에 SOL이 부족합니다. 지갑에 SOL을 더 추가하거나 보내는 SOL 금액을 줄이세요.", + "insufficientFundsForRentErrorReceiver": "수신기의 계정에는 임대료를 충당하기에 충분한 SOL이 없습니다. 수신기에게 계정에 더 많은 솔을 추가하도록 요청하십시오.", "introducing_cake_pay": "Cake Pay를 소개합니다!", "invalid_input": "잘못된 입력", "invalid_password": "잘못된 비밀번호", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 47f7acd20..9b0bb0025 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "သငျသညျငွေပေးငွေယူနှင့်၎င်း၏ငွေပေးငွေယူကြေးကိုဖုံးလွှမ်းရန် sol ရှိသည်မဟုတ်ကြဘူး။ ကြင်နာစွာသင်၏ပိုက်ဆံအိတ်သို့ပိုမို sol ကိုထပ်ထည့်ပါသို့မဟုတ်သင်ပို့လွှတ်ခြင်း sol ပမာဏကိုလျှော့ချပါ။", "insufficient_lamports": "သငျသညျငွေပေးငွေယူနှင့်၎င်း၏ငွေပေးငွေယူကြေးကိုဖုံးလွှမ်းရန် sol ရှိသည်မဟုတ်ကြဘူး။ သင်အနည်းဆုံး ${solValueNeeded} s ကိုလိုအပ်ပါတယ်။ ကြင်နာစွာသင်၏ပိုက်ဆံအိတ်သို့ပိုမို sol ကိုထပ်ထည့်ပါသို့မဟုတ်သင်ပို့နေသော sol ပမာဏကိုလျှော့ချပါ", "insufficientFundsForRentError": "သင်ငွေပေးချေမှုအခကြေးငွေကိုဖုံးအုပ်ရန်နှင့်အကောင့်ငှားရန်လုံလောက်သော sol ရှိသည်မဟုတ်ကြဘူး။ ကြင်နာစွာသင်၏ပိုက်ဆံအိတ်သို့ပိုမို sol ကိုပိုမိုထည့်ပါသို့မဟုတ်သင်ပို့ခြင်း sol ပမာဏကိုလျှော့ချပါ", + "insufficientFundsForRentErrorReceiver": "လက်ခံသူ၏အကောင့်တွင်အိမ်ငှားခကိုဖုံးအုပ်ရန်အစွမ်းမရှိနိုင်ပါ။ ကျေးဇူးပြု. လက်ခံသူအားသူတို့၏အကောင့်သို့ထပ်မံထည့်သွင်းရန်တောင်းဆိုပါ။", "introducing_cake_pay": "Cake Pay ကို မိတ်ဆက်ခြင်း။", "invalid_input": "ထည့်သွင်းမှု မမှန်ကန်ပါ။", "invalid_password": "မမှန်ကန်သောစကားဝှက်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 41212aa5e..a58748b4e 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "U hebt niet genoeg SOL om de transactie en de transactiekosten te dekken. Voeg vriendelijk meer SOL toe aan uw portemonnee of verminder de SOL -hoeveelheid die u verzendt.", "insufficient_lamports": "U hebt niet genoeg SOL om de transactie en de transactiekosten te dekken. Je hebt minstens ${solValueNeeded} sol nodig. Voeg vriendelijk meer Sol toe aan uw portemonnee of verminder de SOL -hoeveelheid die u verzendt", "insufficientFundsForRentError": "U hebt niet genoeg SOL om de transactiekosten en huur voor de rekening te dekken. Voeg vriendelijk meer SOL toe aan uw portemonnee of verminder de SOL -hoeveelheid die u verzendt", + "insufficientFundsForRentErrorReceiver": "De account van de ontvanger heeft niet genoeg SOL om de huur te dekken. Vraag de ontvanger om meer SOL aan hun account toe te voegen.", "introducing_cake_pay": "Introductie van Cake Pay!", "invalid_input": "Ongeldige invoer", "invalid_password": "Ongeldig wachtwoord", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 16480285c..9dd895716 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Nie masz wystarczającej ilości SOL, aby pokryć transakcję i opłatę za transakcję. Dodaj więcej SOL do portfela lub zmniejsz wysyłaną kwotę SOL.", "insufficient_lamports": "Nie masz wystarczającej ilości SOL, aby pokryć transakcję i opłatę za transakcję. Potrzebujesz przynajmniej ${solValueNeeded} SOL. Uprzejmie dodaj więcej SOL do portfela lub zmniejsz wysyłaną kwotę SOL, którą wysyłasz", "insufficientFundsForRentError": "Nie masz wystarczającej ilości SOL, aby pokryć opłatę za transakcję i czynsz za konto. Dodaj więcej SOL do portfela lub zmniejsz kwotę, którą wysyłasz", + "insufficientFundsForRentErrorReceiver": "Konto odbiorcy nie ma wystarczającej ilości SOL, aby pokryć czynsz. Poproś odbiorcę o dodanie więcej SOL do ich konta.", "introducing_cake_pay": "Przedstawiamy Cake Pay!", "invalid_input": "Nieprawidłowe dane wejściowe", "invalid_password": "Nieprawidłowe hasło", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 0f2213d2b..fe54b1fd9 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Você não tem Sol suficiente para cobrir a transação e sua taxa de transação. Por favor, adicione mais sol à sua carteira ou reduza a quantidade de sol que você envia.", "insufficient_lamports": "Você não tem Sol suficiente para cobrir a transação e sua taxa de transação. Você precisa de pelo menos ${solValueNeeded} sol. Por favor, adicione mais sol à sua carteira ou reduza a quantidade de sol que você está enviando", "insufficientFundsForRentError": "Você não tem Sol suficiente para cobrir a taxa de transação e o aluguel da conta. Por favor, adicione mais sol à sua carteira ou reduza a quantidade de sol que você envia", + "insufficientFundsForRentErrorReceiver": "A conta do receptor não possui SOL suficiente para cobrir o aluguel. Por favor, peça ao destinatário que adicione mais sol à sua conta.", "introducing_cake_pay": "Apresentando o Cake Pay!", "invalid_input": "Entrada inválida", "invalid_password": "Senha inválida", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index bbbc03164..b1e49867a 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "У вас недостаточно Sol, чтобы покрыть транзакцию и плату за транзакцию. Пожалуйста, добавьте больше Sol в свой кошелек или уменьшите сумму Sol, которую вы отправляете.", "insufficient_lamports": "У вас недостаточно Sol, чтобы покрыть транзакцию и плату за транзакцию. Вам нужен как минимум ${solValueNeeded} sol. Пожалуйста, добавьте больше Sol в свой кошелек или уменьшите сумму Sol, которую вы отправляете", "insufficientFundsForRentError": "У вас недостаточно Sol, чтобы покрыть плату за транзакцию и аренду для счета. Пожалуйста, добавьте больше Sol в свой кошелек или уменьшите сумму Sol, которую вы отправляете", + "insufficientFundsForRentErrorReceiver": "У счета приемника не хватает Sol, чтобы покрыть арендную плату. Пожалуйста, попросите приемника добавить больше SOL в свою учетную запись.", "introducing_cake_pay": "Представляем Cake Pay!", "invalid_input": "Неверный Ввод", "invalid_password": "Неверный пароль", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index c5b540398..b1913d990 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "คุณไม่มีโซลเพียงพอที่จะครอบคลุมการทำธุรกรรมและค่าธรรมเนียมการทำธุรกรรม กรุณาเพิ่มโซลให้มากขึ้นลงในกระเป๋าเงินของคุณหรือลดจำนวนโซลที่คุณส่งมา", "insufficient_lamports": "คุณไม่มีโซลเพียงพอที่จะครอบคลุมการทำธุรกรรมและค่าธรรมเนียมการทำธุรกรรม คุณต้องการอย่างน้อย ${solValueNeeded} SOL กรุณาเพิ่มโซลให้มากขึ้นลงในกระเป๋าเงินของคุณหรือลดจำนวนโซลที่คุณกำลังส่ง", "insufficientFundsForRentError": "คุณไม่มีโซลเพียงพอที่จะครอบคลุมค่าธรรมเนียมการทำธุรกรรมและค่าเช่าสำหรับบัญชี กรุณาเพิ่มโซลให้มากขึ้นลงในกระเป๋าเงินของคุณหรือลดจำนวนโซลที่คุณส่งมา", + "insufficientFundsForRentErrorReceiver": "บัญชีของผู้รับไม่เพียงพอที่จะครอบคลุมค่าเช่า โปรดขอให้ผู้รับเพิ่ม SOL เพิ่มเติมในบัญชีของพวกเขา", "introducing_cake_pay": "ยินดีต้อนรับสู่ Cake Pay!", "invalid_input": "อินพุตไม่ถูกต้อง", "invalid_password": "รหัสผ่านไม่ถูกต้อง", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 23fedcdda..34adc4ad7 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "Wala kang sapat na SOL upang masakop ang transaksyon at ang bayad sa transaksyon nito. Mabuting magdagdag ng higit pa sa iyong pitaka o bawasan ang sol na halaga na iyong ipinapadala.", "insufficient_lamports": "Wala kang sapat na SOL upang masakop ang transaksyon at ang bayad sa transaksyon nito. Kailangan mo ng hindi bababa sa ${solValueNeeded} sol. Mabait na magdagdag ng higit pang sol sa iyong pitaka o bawasan ang dami ng iyong ipinapadala", "insufficientFundsForRentError": "Wala kang sapat na SOL upang masakop ang fee sa transaksyon at upa para sa account. Mabait na magdagdag ng higit pa sa iyong wallet o bawasan ang halaga ng SOL na iyong ipinapadala", + "insufficientFundsForRentErrorReceiver": "Ang account ng tatanggap ay walang sapat na sol upang masakop ang upa. Mangyaring hilingin sa tatanggap na magdagdag ng higit pang SOL sa kanilang account.", "introducing_cake_pay": "Pagpapakilala ng Cake Pay!", "invalid_input": "Di-wastong input", "invalid_password": "Di-wastong password", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 9396a9108..276f0c174 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "İşlemi ve işlem ücretini karşılamak için yeterli SOL'unuz yok. Lütfen cüzdanınıza daha fazla SOL ekleyin veya gönderdiğiniz sol miktarını azaltın.", "insufficient_lamports": "İşlemi ve işlem ücretini karşılamak için yeterli SOL'unuz yok. En az ${solValueNeeded} Sol'a ihtiyacınız var. Lütfen cüzdanınıza daha fazla sol ekleyin veya gönderdiğiniz sol miktarını azaltın", "insufficientFundsForRentError": "İşlem ücretini karşılamak ve hesap için kiralamak için yeterli SOL'nuz yok. Lütfen cüzdanınıza daha fazla sol ekleyin veya gönderdiğiniz sol miktarını azaltın", + "insufficientFundsForRentErrorReceiver": "Alıcının hesabının kirayı karşılamak için yeterli SOL yoktur. Lütfen alıcıdan hesaplarına daha fazla SOL eklemesini isteyin.", "introducing_cake_pay": "Cake Pay ile tanışın!", "invalid_input": "Geçersiz Giriş", "invalid_password": "Geçersiz şifre", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 07e38ff3b..ac9e34fac 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "У вас недостатньо SOL, щоб покрити транзакцію та її плату за трансакцію. Будь ласка, додайте до свого гаманця більше SOL або зменшіть суму, яку ви надсилаєте.", "insufficient_lamports": "У вас недостатньо SOL, щоб покрити транзакцію та її плату за трансакцію. Вам потрібно щонайменше ${solValueNeeded} sol. Будь ласка, додайте до свого гаманця більше SOL або зменшіть суму Sol, яку ви надсилаєте", "insufficientFundsForRentError": "У вас недостатньо SOL, щоб покрити плату за транзакцію та оренду на рахунок. Будь ласка, додайте до свого гаманця більше SOL або зменшіть суму, яку ви надсилаєте", + "insufficientFundsForRentErrorReceiver": "На рахунку одержувача не вистачає SOL, щоб покрити оренду. Будь ласка, попросіть одержувача додати більше SOL до свого рахунку.", "introducing_cake_pay": "Представляємо Cake Pay!", "invalid_input": "Неправильні дані", "invalid_password": "Недійсний пароль", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 9e4676d13..2a511adf9 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "آپ کے پاس ٹرانزیکشن اور اس کے لین دین کی فیس کا احاطہ کرنے کے لئے کافی SOL نہیں ہے۔ برائے مہربانی اپنے بٹوے میں مزید سول شامل کریں یا آپ کو بھیجنے والی سول رقم کو کم کریں۔", "insufficient_lamports": "آپ کے پاس ٹرانزیکشن اور اس کے لین دین کی فیس کا احاطہ کرنے کے لئے کافی SOL نہیں ہے۔ آپ کو کم از کم ${solValueNeeded} sol کی ضرورت ہے۔ برائے مہربانی اپنے بٹوے میں مزید SOL شامل کریں یا آپ جس SOL رقم کو بھیج رہے ہو اسے کم کریں", "insufficientFundsForRentError": "آپ کے پاس ٹرانزیکشن فیس اور اکاؤنٹ کے لئے کرایہ لینے کے ل enough اتنا SOL نہیں ہے۔ برائے مہربانی اپنے بٹوے میں مزید سول شامل کریں یا آپ کو بھیجنے والی سول رقم کو کم کریں", + "insufficientFundsForRentErrorReceiver": "وصول کنندہ کے اکاؤنٹ میں کرایہ کا احاطہ کرنے کے لئے کافی SOL نہیں ہے۔ براہ کرم وصول کنندہ سے ان کے اکاؤنٹ میں مزید SOL شامل کرنے کو کہیں۔", "introducing_cake_pay": "Cake پے کا تعارف!", "invalid_input": "غلط ان پٹ", "invalid_password": "غلط پاسورڈ", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index 157232156..133ddbe30 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -417,6 +417,7 @@ "insufficient_lamport_for_tx": "Bạn không có đủ SOL để thanh toán giao dịch và phí giao dịch. Vui lòng thêm SOL vào ví của bạn hoặc giảm số lượng SOL bạn đang gửi.", "insufficient_lamports": "Bạn không có đủ SOL để thanh toán giao dịch và phí giao dịch. Bạn cần ít nhất ${solValueNeeded} SOL. Vui lòng thêm SOL vào ví của bạn hoặc giảm số lượng SOL bạn đang gửi", "insufficientFundsForRentError": "Bạn không có đủ SOL để thanh toán phí giao dịch và phí thuê cho tài khoản. Vui lòng thêm SOL vào ví của bạn hoặc giảm số lượng SOL bạn đang gửi", + "insufficientFundsForRentErrorReceiver": "Tài khoản của người nhận không có đủ SOL để trang trải tiền thuê nhà. Vui lòng yêu cầu người nhận thêm SOL vào tài khoản của họ.", "introducing_cake_pay": "Giới thiệu Cake Pay!", "invalid_input": "Nhập không hợp lệ", "invalid_password": "Mật khẩu không hợp lệ", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 2ab9c0a42..1d9f8ef88 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -419,6 +419,7 @@ "insufficient_lamport_for_tx": "O ko ni sosi to lati bo idunadura ati idiyele iṣowo rẹ. Fi agbara kun Sol diẹ sii si apamọwọ rẹ tabi dinku sodo naa ti o \\ 'tun n firanṣẹ.", "insufficient_lamports": "O ko ni sosi to lati bo idunadura ati idiyele iṣowo rẹ. O nilo o kere ju ${solValueNeeded}. Fi agbara kun Sol diẹ sii si apamọwọ rẹ tabi dinku soso ti o n firanṣẹ", "insufficientFundsForRentError": "O ko ni Sol kan lati bo owo isanwo naa ki o yalo fun iroyin naa. Fi agbara kun Sol diẹ sii si apamọwọ rẹ tabi dinku soso naa ti o \\ 'tun n firanṣẹ", + "insufficientFundsForRentErrorReceiver": "Akọọlẹ olugba ko ni Sol lati bo iyalo naa. Jọwọ beere olugba lati ṣafikun Sol diẹ sii si akọọlẹ wọn.", "introducing_cake_pay": "Ẹ bá Cake Pay!", "invalid_input": "Iṣawọle ti ko tọ", "invalid_password": "Ọrọ igbaniwọle ti ko wulo", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index e1b71508f..fd3526e13 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -418,6 +418,7 @@ "insufficient_lamport_for_tx": "您没有足够的溶胶来支付交易及其交易费用。请在您的钱包中添加更多溶胶或减少您发送的溶胶量。", "insufficient_lamports": "您没有足够的溶胶来支付交易及其交易费用。您至少需要${solValueNeeded} sol。请在您的钱包中添加更多溶胶或减少您发送的溶胶量", "insufficientFundsForRentError": "您没有足够的溶胶来支付该帐户的交易费和租金。请在钱包中添加更多溶胶或减少您发送的溶胶量", + "insufficientFundsForRentErrorReceiver": "接收器的帐户没有足够的溶胶来支付租金。请要求接收器向其帐户添加更多SOL。", "introducing_cake_pay": "介绍 Cake Pay!", "invalid_input": "输入无效", "invalid_password": "无效的密码",