mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-09-29 18:01:06 +00:00
Merge remote-tracking branch 'origin/staging' into staging
# Conflicts: # lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart
This commit is contained in:
commit
7ea374d6e4
43 changed files with 1700 additions and 2127 deletions
1
assets/lottie/arrow_rotate.json
Normal file
1
assets/lottie/arrow_rotate.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"v":"5.10.2","fr":30,"ip":0,"op":60,"w":30,"h":30,"nm":"arrow-rotate","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow-rotate","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44,"s":[200]},{"t":60,"s":[360]}],"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.828],[0,0],[3.389,0],[1.441,-4.074],[-0.781,-0.277],[-0.276,0.778],[-3.22,0],[-1.369,-1.823],[0,0],[0,-0.83],[-0.83,0],[0,0],[-0.023,0],[0,0],[0,0.83],[0,0],[0.83,0]],"o":[[0,0],[-1.964,-2.437],[-4.533,0],[-0.276,0.741],[0.781,0.277],[1.031,-2.916],[2.494,0],[0,0],[-0.83,0],[0,0.83],[0,0],[0.023,0],[0,0],[0.83,0],[0,0],[0,-0.828],[-0.83,0]],"v":[[8.25,-8.25],[8.25,-6.497],[-0.042,-10.5],[-9.902,-3.502],[-8.988,-1.584],[-7.073,-2.498],[-0.042,-7.5],[6,-4.5],[4.5,-4.5],[3,-3],[4.5,-1.5],[8.452,-1.5],[8.522,-1.5],[9.75,-1.5],[11.25,-3],[11.25,-8.25],[9.75,-9.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.828,0],[0,0.83],[0,0],[-3.347,0],[-1.439,4.073],[0.783,0.277],[0.277,-0.778],[3.262,0],[1.411,1.823],[0,0],[0,0.83],[0.83,0],[0,0],[0,-0.83]],"o":[[0,0.83],[0.828,0],[0,0],[1.922,2.438],[4.575,0],[0.277,-0.783],[-0.778,-0.277],[-1.031,2.916],[-2.452,0],[0,0],[0.83,0],[0,-0.83],[0,0],[-0.828,0],[0,0]],"v":[[-11.25,8.25],[-9.75,9.75],[-8.25,8.25],[-8.25,6.497],[0,10.5],[9.9,3.502],[8.986,1.584],[7.073,2.498],[0,7.5],[-6.042,4.5],[-4.5,4.5],[-3,3],[-4.5,1.5],[-9.75,1.5],[-11.25,3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0}],"markers":[]}
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 3.66875V2.5C13.5 1.94781 13.9469 1.5 14.5 1.5C15.0531 1.5 15.5 1.94781 15.5 2.5V6C15.5 6.55313 15.0531 7 14.5 7H13.6812C13.6656 7 13.65 7 13.6344 7H11C10.4469 7 10 6.55313 10 6C10 5.44688 10.4469 5 11 5H12C11.0875 3.78438 9.63438 3 7.97188 3C5.825 3 3.97187 4.39062 3.28437 6.33437C3.10031 6.85312 2.52875 7.12812 2.00813 6.94375C1.4875 6.75937 1.21438 6.15938 1.39844 5.66563C2.35906 2.94938 4.95 1 7.97188 1C10.2313 1 12.1906 2.04438 13.5 3.66875ZM1.5 14.5C0.947812 14.5 0.5 14.0531 0.5 13.5V10C0.5 9.44688 0.947812 9 1.5 9H5C5.55313 9 6 9.44688 6 10C6 10.5531 5.55313 11 5 11H3.97187C4.9125 12.2156 6.36563 13 8 13C10.175 13 12.0281 11.6094 12.7156 9.66562C12.9 9.14687 13.4719 8.87187 13.9906 9.05625C14.5125 9.24062 14.7844 9.8125 14.6 10.3344C13.6406 13.05 11.05 15 8 15C5.76875 15 3.78125 13.9563 2.5 12.3313V13.5C2.5 14.0531 2.05219 14.5 1.5 14.5Z" fill="#232323"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 992 B |
|
@ -9,7 +9,7 @@ Here you will find instructions on how to install the necessary tools for buildi
|
|||
|
||||
The following prerequisites can be installed with the setup script [`scripts/setup.sh`](./../scripts/setup.sh) or manually as described below:
|
||||
|
||||
- Flutter 3.7.6 [(install manually or with git, do not install with snap)](https://docs.flutter.dev/get-started/install)
|
||||
- Flutter 3.7.11 [(install manually or with git, do not install with snap)](https://docs.flutter.dev/get-started/install)
|
||||
- Dart SDK Requirement (>=2.19.0, up until <3.0.0) (normally included with a flutter install)
|
||||
- Android setup ([Android Studio](https://developer.android.com/studio) and subsequent dependencies)
|
||||
|
||||
|
@ -41,11 +41,17 @@ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-
|
|||
Install [Rust](https://www.rust-lang.org/tools/install) with command:
|
||||
```
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
rustup install 1.67.1
|
||||
rustup default 1.67.1
|
||||
```
|
||||
|
||||
Install the additional components for Rust:
|
||||
```
|
||||
cargo install cargo-ndk
|
||||
cargo install cargo-ndk --version 2.12.7
|
||||
```
|
||||
Android specific dependencies:
|
||||
```
|
||||
sudo apt-get install libc6-dev-i386
|
||||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
||||
```
|
||||
Linux desktop specific dependencies:
|
||||
|
@ -134,4 +140,4 @@ Use Tools > SDK Manager to install the SDK Tools > Android SDK (API 30), SDK Too
|
|||
|
||||
Then install the Flutter plugin and restart the IDE. In Android Studio's options for the Flutter language, enable auto format on save to match the project's code style. If you have problems with the Dart SDK, make sure to run `flutter` in a terminal to download it (use `source ~/.bashrc` to update your environment variables if you're still using the same terminal from which you ran `setup.sh`)
|
||||
|
||||
Make a Pixel 4 (API 30) x86_64 emulator with 2GB of storage space for emulation
|
||||
Make a Pixel 4 (API 30) x86_64 emulator with 2GB of storage space for emulation
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:stackwallet/models/paynym/paynym_code.dart';
|
|||
class PaynymAccount {
|
||||
final String nymID;
|
||||
final String nymName;
|
||||
final bool segwit;
|
||||
|
||||
final List<PaynymCode> codes;
|
||||
|
||||
|
@ -13,9 +14,13 @@ class PaynymAccount {
|
|||
/// list of nymId
|
||||
final List<PaynymAccountLite> following;
|
||||
|
||||
PaynymCode get nonSegwitPaymentCode =>
|
||||
codes.firstWhere((element) => !element.segwit);
|
||||
|
||||
PaynymAccount(
|
||||
this.nymID,
|
||||
this.nymName,
|
||||
this.segwit,
|
||||
this.codes,
|
||||
this.followers,
|
||||
this.following,
|
||||
|
@ -24,6 +29,7 @@ class PaynymAccount {
|
|||
PaynymAccount.fromMap(Map<String, dynamic> map)
|
||||
: nymID = map["nymID"] as String,
|
||||
nymName = map["nymName"] as String,
|
||||
segwit = map["segwit"] as bool,
|
||||
codes = (map["codes"] as List<dynamic>)
|
||||
.map((e) => PaynymCode.fromMap(Map<String, dynamic>.from(e as Map)))
|
||||
.toList(),
|
||||
|
@ -39,6 +45,7 @@ class PaynymAccount {
|
|||
PaynymAccount copyWith({
|
||||
String? nymID,
|
||||
String? nymName,
|
||||
bool? segwit,
|
||||
List<PaynymCode>? codes,
|
||||
List<PaynymAccountLite>? followers,
|
||||
List<PaynymAccountLite>? following,
|
||||
|
@ -46,6 +53,7 @@ class PaynymAccount {
|
|||
return PaynymAccount(
|
||||
nymID ?? this.nymID,
|
||||
nymName ?? this.nymName,
|
||||
segwit ?? this.segwit,
|
||||
codes ?? this.codes,
|
||||
followers ?? this.followers,
|
||||
following ?? this.following,
|
||||
|
@ -55,6 +63,7 @@ class PaynymAccount {
|
|||
Map<String, dynamic> toMap() => {
|
||||
"nymID": nymID,
|
||||
"nymName": nymName,
|
||||
"segwit": segwit,
|
||||
"codes": codes.map((e) => e.toMap()),
|
||||
"followers": followers.map((e) => e.toMap()),
|
||||
"following": followers.map((e) => e.toMap()),
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart';
|
||||
import 'package:stackwallet/widgets/desktop/desktop_dialog.dart';
|
||||
import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart';
|
||||
import 'package:stackwallet/widgets/desktop/secondary_button.dart';
|
||||
|
@ -21,37 +20,15 @@ class RestoringDialog extends StatefulWidget {
|
|||
State<RestoringDialog> createState() => _RestoringDialogState();
|
||||
}
|
||||
|
||||
class _RestoringDialogState extends State<RestoringDialog>
|
||||
with TickerProviderStateMixin {
|
||||
late AnimationController? _spinController;
|
||||
late Animation<double> _spinAnimation;
|
||||
|
||||
class _RestoringDialogState extends State<RestoringDialog> {
|
||||
late final Future<void> Function() onCancel;
|
||||
@override
|
||||
void initState() {
|
||||
onCancel = widget.onCancel;
|
||||
|
||||
_spinController = AnimationController(
|
||||
duration: const Duration(seconds: 2),
|
||||
vsync: this,
|
||||
)..repeat();
|
||||
|
||||
_spinAnimation = CurvedAnimation(
|
||||
parent: _spinController!,
|
||||
curve: Curves.linear,
|
||||
);
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_spinController?.dispose();
|
||||
_spinController = null;
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (Util.isDesktop) {
|
||||
|
@ -69,14 +46,9 @@ class _RestoringDialogState extends State<RestoringDialog>
|
|||
const Spacer(
|
||||
flex: 1,
|
||||
),
|
||||
RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(Assets.svg.arrowRotate3,
|
||||
width: 40,
|
||||
height: 40,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.accentColorDark),
|
||||
const RotatingArrows(
|
||||
width: 40,
|
||||
height: 40,
|
||||
),
|
||||
const Spacer(
|
||||
flex: 2,
|
||||
|
@ -127,14 +99,9 @@ class _RestoringDialogState extends State<RestoringDialog>
|
|||
child: StackDialog(
|
||||
title: "Restoring wallet",
|
||||
message: "This may take a while. Please do not exit this screen.",
|
||||
icon: RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(Assets.svg.arrowRotate3,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.accentColorDark),
|
||||
icon: const RotatingArrows(
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
rightButton: TextButton(
|
||||
style: Theme.of(context)
|
||||
|
|
|
@ -109,7 +109,7 @@ class _ConfirmChangeNowSendViewState
|
|||
time,
|
||||
]);
|
||||
|
||||
sendProgressController.triggerSuccess();
|
||||
sendProgressController.triggerSuccess?.call();
|
||||
await Future<void>.delayed(const Duration(seconds: 5));
|
||||
|
||||
txid = results.first as String;
|
||||
|
|
|
@ -447,7 +447,7 @@ class _AddNewPaynymFollowViewState
|
|||
child: PaynymCard(
|
||||
key: UniqueKey(),
|
||||
label: _searchResult!.nymName,
|
||||
paymentCodeString: _searchResult!.codes.first.code,
|
||||
paymentCodeString: _searchResult!.nonSegwitPaymentCode.code,
|
||||
walletId: widget.walletId,
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart';
|
||||
import 'package:stackwallet/widgets/desktop/desktop_dialog.dart';
|
||||
import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart';
|
||||
import 'package:stackwallet/widgets/desktop/secondary_button.dart';
|
||||
|
@ -18,34 +17,7 @@ class ClaimingPaynymDialog extends StatefulWidget {
|
|||
State<ClaimingPaynymDialog> createState() => _RestoringDialogState();
|
||||
}
|
||||
|
||||
class _RestoringDialogState extends State<ClaimingPaynymDialog>
|
||||
with TickerProviderStateMixin {
|
||||
late AnimationController? _spinController;
|
||||
late Animation<double> _spinAnimation;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_spinController = AnimationController(
|
||||
duration: const Duration(seconds: 2),
|
||||
vsync: this,
|
||||
)..repeat();
|
||||
|
||||
_spinAnimation = CurvedAnimation(
|
||||
parent: _spinController!,
|
||||
curve: Curves.linear,
|
||||
);
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_spinController?.dispose();
|
||||
_spinController = null;
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
class _RestoringDialogState extends State<ClaimingPaynymDialog> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (Util.isDesktop) {
|
||||
|
@ -62,15 +34,9 @@ class _RestoringDialogState extends State<ClaimingPaynymDialog>
|
|||
),
|
||||
],
|
||||
),
|
||||
RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate,
|
||||
color:
|
||||
Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
width: 40,
|
||||
height: 40,
|
||||
),
|
||||
const RotatingArrows(
|
||||
width: 40,
|
||||
height: 40,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(40),
|
||||
|
@ -115,15 +81,9 @@ class _RestoringDialogState extends State<ClaimingPaynymDialog>
|
|||
child: StackDialog(
|
||||
title: "Claiming PayNym",
|
||||
message: "We are generating your PayNym",
|
||||
icon: RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate,
|
||||
color:
|
||||
Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
icon: const RotatingArrows(
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
rightButton: SecondaryButton(
|
||||
label: "Cancel",
|
||||
|
|
|
@ -55,7 +55,7 @@ class PaynymQrPopup extends StatelessWidget {
|
|||
child: Row(
|
||||
children: [
|
||||
PayNymBot(
|
||||
paymentCodeString: paynymAccount.codes.first.code,
|
||||
paymentCodeString: paynymAccount.nonSegwitPaymentCode.code,
|
||||
size: isDesktop ? 56 : 36,
|
||||
),
|
||||
const SizedBox(
|
||||
|
@ -108,7 +108,7 @@ class PaynymQrPopup extends StatelessWidget {
|
|||
height: 6,
|
||||
),
|
||||
Text(
|
||||
paynymAccount.codes.first.code,
|
||||
paynymAccount.nonSegwitPaymentCode.code,
|
||||
style: isDesktop
|
||||
? STextStyles.desktopTextSmall(context)
|
||||
: STextStyles.infoSmall(context).copyWith(
|
||||
|
@ -127,7 +127,7 @@ class PaynymQrPopup extends StatelessWidget {
|
|||
onTap: () async {
|
||||
await Clipboard.setData(
|
||||
ClipboardData(
|
||||
text: paynymAccount.codes.first.code,
|
||||
text: paynymAccount.nonSegwitPaymentCode.code,
|
||||
),
|
||||
);
|
||||
unawaited(
|
||||
|
@ -150,7 +150,7 @@ class PaynymQrPopup extends StatelessWidget {
|
|||
QrImage(
|
||||
padding: const EdgeInsets.all(0),
|
||||
size: 130,
|
||||
data: paynymAccount.codes.first.code,
|
||||
data: paynymAccount.nonSegwitPaymentCode.code,
|
||||
foregroundColor:
|
||||
Theme.of(context).extension<StackColors>()!.textDark,
|
||||
),
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:stackwallet/models/paynym/paynym_account.dart';
|
||||
import 'package:stackwallet/pages/paynym/dialogs/claiming_paynym_dialog.dart';
|
||||
import 'package:stackwallet/pages/paynym/paynym_home_view.dart';
|
||||
import 'package:stackwallet/pages/wallet_view/wallet_view.dart';
|
||||
|
@ -11,7 +12,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart';
|
|||
import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart';
|
||||
import 'package:stackwallet/services/mixins/paynym_wallet_interface.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
|
@ -36,6 +36,29 @@ class PaynymClaimView extends ConsumerStatefulWidget {
|
|||
}
|
||||
|
||||
class _PaynymClaimViewState extends ConsumerState<PaynymClaimView> {
|
||||
Future<bool> _addSegwitCode(PaynymAccount myAccount) async {
|
||||
final manager =
|
||||
ref.read(walletsChangeNotifierProvider).getManager(widget.walletId);
|
||||
|
||||
// get wallet to access paynym calls
|
||||
final wallet = manager.wallet as PaynymWalletInterface;
|
||||
|
||||
final token = await ref
|
||||
.read(paynymAPIProvider)
|
||||
.token(myAccount.nonSegwitPaymentCode.code);
|
||||
final signature = await wallet.signStringWithNotificationKey(token.value!);
|
||||
|
||||
final pCodeSegwit = await wallet.getPaymentCode(isSegwit: true);
|
||||
final addResult = await ref.read(paynymAPIProvider).add(
|
||||
token.value!,
|
||||
signature,
|
||||
myAccount.nymID,
|
||||
pCodeSegwit.toString(),
|
||||
);
|
||||
|
||||
return addResult.value ?? false;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
debugPrint("BUILD: $runtimeType");
|
||||
|
@ -169,8 +192,7 @@ class _PaynymClaimViewState extends ConsumerState<PaynymClaimView> {
|
|||
if (shouldCancel) return;
|
||||
|
||||
// get payment code
|
||||
final pCode = await wallet.getPaymentCode(
|
||||
DerivePathTypeExt.primaryFor(manager.coin));
|
||||
final pCode = await wallet.getPaymentCode(isSegwit: false);
|
||||
|
||||
if (shouldCancel) return;
|
||||
|
||||
|
@ -185,6 +207,18 @@ class _PaynymClaimViewState extends ConsumerState<PaynymClaimView> {
|
|||
if (created.value!.claimed) {
|
||||
// payment code already claimed
|
||||
debugPrint("pcode already claimed!!");
|
||||
|
||||
final account =
|
||||
await ref.read(paynymAPIProvider).nym(pCode.toString());
|
||||
if (!account.value!.segwit) {
|
||||
for (int i = 0; i < 100; i++) {
|
||||
final result = await _addSegwitCode(account.value!);
|
||||
if (result == true) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
if (isDesktop) {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
|
@ -223,6 +257,14 @@ class _PaynymClaimViewState extends ConsumerState<PaynymClaimView> {
|
|||
if (claim.value?.claimed == pCode.toString()) {
|
||||
final account =
|
||||
await ref.read(paynymAPIProvider).nym(pCode.toString());
|
||||
if (!account.value!.segwit) {
|
||||
for (int i = 0; i < 100; i++) {
|
||||
final result = await _addSegwitCode(account.value!);
|
||||
if (result == true) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ref.read(myPaynymAccountStateProvider.state).state =
|
||||
account.value!;
|
||||
|
|
|
@ -275,8 +275,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
paymentCodeString: ref
|
||||
.watch(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
),
|
||||
),
|
||||
|
@ -298,8 +297,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
ref
|
||||
.watch(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
12,
|
||||
5),
|
||||
|
@ -330,8 +328,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
text: ref
|
||||
.read(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
),
|
||||
);
|
||||
|
@ -376,8 +373,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
ref
|
||||
.read(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
sharePositionOrigin: sharePositionOrigin);
|
||||
},
|
||||
|
@ -447,8 +443,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
paymentCodeString: ref
|
||||
.watch(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
),
|
||||
),
|
||||
|
@ -473,8 +468,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
ref
|
||||
.watch(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
12,
|
||||
5),
|
||||
|
@ -501,8 +495,7 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
|
|||
text: ref
|
||||
.read(myPaynymAccountStateProvider.state)
|
||||
.state!
|
||||
.codes
|
||||
.first
|
||||
.nonSegwitPaymentCode
|
||||
.code,
|
||||
),
|
||||
);
|
||||
|
|
|
@ -8,7 +8,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart';
|
|||
import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart';
|
||||
import 'package:stackwallet/services/mixins/paynym_wallet_interface.dart';
|
||||
import 'package:stackwallet/utilities/constants.dart';
|
||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart';
|
||||
import 'package:stackwallet/utilities/logger.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
|
@ -75,7 +74,7 @@ class _PaynymFollowersListState extends ConsumerState<PaynymFollowersList> {
|
|||
|
||||
// get payment code
|
||||
final pCode = await wallet.getPaymentCode(
|
||||
DerivePathTypeExt.primaryFor(manager.coin),
|
||||
isSegwit: false,
|
||||
);
|
||||
|
||||
// get account from api
|
||||
|
|
|
@ -8,7 +8,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart';
|
|||
import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart';
|
||||
import 'package:stackwallet/services/mixins/paynym_wallet_interface.dart';
|
||||
import 'package:stackwallet/utilities/constants.dart';
|
||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart';
|
||||
import 'package:stackwallet/utilities/logger.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
|
@ -75,7 +74,7 @@ class _PaynymFollowingListState extends ConsumerState<PaynymFollowingList> {
|
|||
|
||||
// get payment code
|
||||
final pCode = await wallet.getPaymentCode(
|
||||
DerivePathTypeExt.primaryFor(manager.coin),
|
||||
isSegwit: false,
|
||||
);
|
||||
|
||||
// get account from api
|
||||
|
|
|
@ -233,6 +233,7 @@ class _ReceiveViewState extends ConsumerState<ReceiveView> {
|
|||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
HapticFeedback.lightImpact();
|
||||
clipboard.setData(
|
||||
ClipboardData(text: receivingAddress),
|
||||
);
|
||||
|
|
|
@ -135,7 +135,7 @@ class _ConfirmTransactionViewState
|
|||
time,
|
||||
]);
|
||||
|
||||
sendProgressController.triggerSuccess();
|
||||
sendProgressController.triggerSuccess?.call();
|
||||
await Future<void>.delayed(const Duration(seconds: 5));
|
||||
|
||||
txid = results.first as String;
|
||||
|
|
|
@ -453,11 +453,12 @@ class _SendViewState extends ConsumerState<SendView> {
|
|||
final wallet = manager.wallet as PaynymWalletInterface;
|
||||
final paymentCode = PaymentCode.fromPaymentCode(
|
||||
widget.accountLite!.code,
|
||||
wallet.networkType,
|
||||
networkType: wallet.networkType,
|
||||
);
|
||||
final feeRate = ref.read(feeRateTypeStateProvider);
|
||||
txDataFuture = wallet.preparePaymentCodeSend(
|
||||
paymentCode: paymentCode,
|
||||
isSegwit: widget.accountLite!.segwit,
|
||||
amount: amount,
|
||||
args: {
|
||||
"feeRate": feeRate,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/color_theme.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart';
|
||||
import 'package:stackwallet/widgets/desktop/secondary_button.dart';
|
||||
import 'package:stackwallet/widgets/stack_dialog.dart';
|
||||
|
||||
|
@ -23,38 +23,16 @@ class BuildingTransactionDialog extends StatefulWidget {
|
|||
State<BuildingTransactionDialog> createState() => _RestoringDialogState();
|
||||
}
|
||||
|
||||
class _RestoringDialogState extends State<BuildingTransactionDialog>
|
||||
with TickerProviderStateMixin {
|
||||
late AnimationController? _spinController;
|
||||
late Animation<double> _spinAnimation;
|
||||
|
||||
class _RestoringDialogState extends State<BuildingTransactionDialog> {
|
||||
late final VoidCallback onCancel;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
onCancel = widget.onCancel;
|
||||
|
||||
_spinController = AnimationController(
|
||||
duration: const Duration(seconds: 2),
|
||||
vsync: this,
|
||||
)..repeat();
|
||||
|
||||
_spinAnimation = CurvedAnimation(
|
||||
parent: _spinController!,
|
||||
curve: Curves.linear,
|
||||
);
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_spinController?.dispose();
|
||||
_spinController = null;
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isChans = Theme.of(context).extension<StackColors>()!.themeType ==
|
||||
|
@ -80,15 +58,9 @@ class _RestoringDialogState extends State<BuildingTransactionDialog>
|
|||
),
|
||||
),
|
||||
if (!isChans)
|
||||
RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate,
|
||||
color:
|
||||
Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
const RotatingArrows(
|
||||
width: 40,
|
||||
height: 40,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 40,
|
||||
|
@ -151,16 +123,9 @@ class _RestoringDialogState extends State<BuildingTransactionDialog>
|
|||
)
|
||||
: StackDialog(
|
||||
title: "Generating transaction",
|
||||
icon: RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.accentColorDark,
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
icon: const RotatingArrows(
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
rightButton: TextButton(
|
||||
style: Theme.of(context)
|
||||
|
|
|
@ -113,7 +113,7 @@ class _RestoringDialogState extends State<SendingTransactionDialog> {
|
|||
}
|
||||
|
||||
class ProgressAndSuccessController {
|
||||
late VoidCallback triggerSuccess;
|
||||
VoidCallback? triggerSuccess;
|
||||
}
|
||||
|
||||
class ProgressAndSuccess extends StatefulWidget {
|
||||
|
|
|
@ -162,7 +162,7 @@ class GlobalSettingsView extends StatelessWidget {
|
|||
height: 8,
|
||||
),
|
||||
SettingsListButton(
|
||||
iconAssetName: Assets.svg.arrowRotate3,
|
||||
iconAssetName: Assets.svg.arrowRotate,
|
||||
iconSize: 18,
|
||||
title: "Syncing preferences",
|
||||
onPressed: () {
|
||||
|
|
|
@ -214,7 +214,7 @@ class _StackRestoreProgressViewState
|
|||
@override
|
||||
void initState() {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||
_restore();
|
||||
unawaited(_restore());
|
||||
});
|
||||
super.initState();
|
||||
}
|
||||
|
@ -325,7 +325,7 @@ class _StackRestoreProgressViewState
|
|||
: null,
|
||||
)
|
||||
: RoundedContainer(
|
||||
padding: EdgeInsets.all(0),
|
||||
padding: EdgeInsets.zero,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.popupBG,
|
||||
|
@ -411,7 +411,7 @@ class _StackRestoreProgressViewState
|
|||
: null,
|
||||
)
|
||||
: RoundedContainer(
|
||||
padding: EdgeInsets.all(0),
|
||||
padding: EdgeInsets.zero,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.popupBG,
|
||||
|
@ -497,7 +497,7 @@ class _StackRestoreProgressViewState
|
|||
: null,
|
||||
)
|
||||
: RoundedContainer(
|
||||
padding: EdgeInsets.all(0),
|
||||
padding: EdgeInsets.zero,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.popupBG,
|
||||
|
@ -548,44 +548,42 @@ class _StackRestoreProgressViewState
|
|||
final state = ref.watch(stackRestoringUIStateProvider
|
||||
.select((value) => value.trades));
|
||||
return !isDesktop
|
||||
? Container(
|
||||
child: RestoringItemCard(
|
||||
left: SizedBox(
|
||||
width: 32,
|
||||
height: 32,
|
||||
child: RoundedContainer(
|
||||
padding: const EdgeInsets.all(0),
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.buttonBackSecondary,
|
||||
child: Center(
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate2,
|
||||
width: 16,
|
||||
height: 16,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.accentColorDark,
|
||||
),
|
||||
? RestoringItemCard(
|
||||
left: SizedBox(
|
||||
width: 32,
|
||||
height: 32,
|
||||
child: RoundedContainer(
|
||||
padding: const EdgeInsets.all(0),
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.buttonBackSecondary,
|
||||
child: Center(
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowsTwoWay,
|
||||
width: 16,
|
||||
height: 16,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.accentColorDark,
|
||||
),
|
||||
),
|
||||
),
|
||||
right: SizedBox(
|
||||
width: 20,
|
||||
height: 20,
|
||||
child: _getIconForState(state),
|
||||
),
|
||||
title: "Exchange history",
|
||||
subTitle: state == StackRestoringStatus.failed
|
||||
? Text(
|
||||
"Something went wrong",
|
||||
style: STextStyles.errorSmall(context),
|
||||
)
|
||||
: null,
|
||||
),
|
||||
right: SizedBox(
|
||||
width: 20,
|
||||
height: 20,
|
||||
child: _getIconForState(state),
|
||||
),
|
||||
title: "Exchange history",
|
||||
subTitle: state == StackRestoringStatus.failed
|
||||
? Text(
|
||||
"Something went wrong",
|
||||
style: STextStyles.errorSmall(context),
|
||||
)
|
||||
: null,
|
||||
)
|
||||
: RoundedContainer(
|
||||
padding: EdgeInsets.all(0),
|
||||
padding: EdgeInsets.zero,
|
||||
color: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.popupBG,
|
||||
|
@ -603,7 +601,7 @@ class _StackRestoreProgressViewState
|
|||
.buttonBackSecondary,
|
||||
child: Center(
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate2,
|
||||
Assets.svg.arrowsTwoWay,
|
||||
width: 16,
|
||||
height: 16,
|
||||
color: Theme.of(context)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart';
|
||||
import 'package:stackwallet/widgets/conditional_parent.dart';
|
||||
import 'package:stackwallet/widgets/desktop/desktop_dialog.dart';
|
||||
import 'package:stackwallet/widgets/stack_dialog.dart';
|
||||
|
@ -66,18 +64,12 @@ class _RescanningDialogState extends State<RescanningDialog>
|
|||
maxWidth: 500,
|
||||
child: child,
|
||||
),
|
||||
child: StackDialog(
|
||||
child: const StackDialog(
|
||||
title: "Rescanning blockchain",
|
||||
message: "This may take a while. Please do not exit this screen.",
|
||||
icon: RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate3,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color:
|
||||
Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
),
|
||||
icon: RotatingArrows(
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
// rightButton: TextButton(
|
||||
// style: Theme.of(context).textButtonTheme.style?.copyWith(
|
||||
|
|
|
@ -269,7 +269,7 @@ class _WalletSettingsViewState extends State<WalletSettingsView> {
|
|||
height: 8,
|
||||
),
|
||||
SettingsListButton(
|
||||
iconAssetName: Assets.svg.arrowRotate3,
|
||||
iconAssetName: Assets.svg.arrowRotate,
|
||||
title: "Syncing preferences",
|
||||
onPressed: () {
|
||||
Navigator.of(context).pushNamed(
|
||||
|
|
|
@ -3,15 +3,14 @@ import 'dart:async';
|
|||
import 'package:event_bus/event_bus.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:stackwallet/pages/token_view/token_view.dart';
|
||||
import 'package:stackwallet/providers/global/wallets_provider.dart';
|
||||
import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart';
|
||||
import 'package:stackwallet/services/event_bus/global_event_bus.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/constants.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart';
|
||||
|
||||
/// [eventBus] should only be set during testing
|
||||
class WalletRefreshButton extends ConsumerStatefulWidget {
|
||||
|
@ -36,30 +35,16 @@ class WalletRefreshButton extends ConsumerStatefulWidget {
|
|||
ConsumerState<WalletRefreshButton> createState() => _RefreshButtonState();
|
||||
}
|
||||
|
||||
class _RefreshButtonState extends ConsumerState<WalletRefreshButton>
|
||||
with TickerProviderStateMixin {
|
||||
class _RefreshButtonState extends ConsumerState<WalletRefreshButton> {
|
||||
late final EventBus eventBus;
|
||||
|
||||
late AnimationController? _spinController;
|
||||
late Animation<double> _spinAnimation;
|
||||
late RotatingArrowsController _spinController;
|
||||
|
||||
late StreamSubscription<dynamic> _syncStatusSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_spinController = AnimationController(
|
||||
duration: const Duration(seconds: 2),
|
||||
vsync: this,
|
||||
);
|
||||
|
||||
_spinAnimation = CurvedAnimation(
|
||||
parent: _spinController!,
|
||||
curve: Curves.linear,
|
||||
);
|
||||
|
||||
if (widget.initialSyncStatus == WalletSyncStatus.syncing) {
|
||||
_spinController?.repeat();
|
||||
}
|
||||
_spinController = RotatingArrowsController();
|
||||
|
||||
eventBus =
|
||||
widget.eventBus != null ? widget.eventBus! : GlobalEventBus.instance;
|
||||
|
@ -71,26 +56,26 @@ class _RefreshButtonState extends ConsumerState<WalletRefreshButton>
|
|||
widget.tokenContractAddress == null) {
|
||||
switch (event.newStatus) {
|
||||
case WalletSyncStatus.unableToSync:
|
||||
_spinController?.stop();
|
||||
_spinController.stop?.call();
|
||||
break;
|
||||
case WalletSyncStatus.synced:
|
||||
_spinController?.stop();
|
||||
_spinController.stop?.call();
|
||||
break;
|
||||
case WalletSyncStatus.syncing:
|
||||
unawaited(_spinController?.repeat());
|
||||
_spinController.repeat?.call();
|
||||
break;
|
||||
}
|
||||
} else if (widget.tokenContractAddress != null &&
|
||||
event.walletId == widget.walletId + widget.tokenContractAddress!) {
|
||||
switch (event.newStatus) {
|
||||
case WalletSyncStatus.unableToSync:
|
||||
_spinController?.stop();
|
||||
_spinController.stop?.call();
|
||||
break;
|
||||
case WalletSyncStatus.synced:
|
||||
_spinController?.stop();
|
||||
_spinController.stop?.call();
|
||||
break;
|
||||
case WalletSyncStatus.syncing:
|
||||
unawaited(_spinController?.repeat());
|
||||
_spinController.repeat?.call();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -102,9 +87,6 @@ class _RefreshButtonState extends ConsumerState<WalletRefreshButton>
|
|||
|
||||
@override
|
||||
void dispose() {
|
||||
_spinController?.dispose();
|
||||
_spinController = null;
|
||||
|
||||
_syncStatusSubscription.cancel();
|
||||
|
||||
super.dispose();
|
||||
|
@ -117,62 +99,56 @@ class _RefreshButtonState extends ConsumerState<WalletRefreshButton>
|
|||
return SizedBox(
|
||||
height: isDesktop ? 22 : 36,
|
||||
width: isDesktop ? 22 : 36,
|
||||
child: Semantics(
|
||||
label: "Refresh Button. Refreshes The Values In Page.",
|
||||
excludeSemantics: true,
|
||||
child: MaterialButton(
|
||||
color: isDesktop
|
||||
? Theme.of(context).extension<StackColors>()!.buttonBackSecondary
|
||||
: null,
|
||||
splashColor: Theme.of(context).extension<StackColors>()!.highlight,
|
||||
onPressed: () {
|
||||
if (widget.tokenContractAddress == null) {
|
||||
final managerProvider = ref
|
||||
.read(walletsChangeNotifierProvider)
|
||||
.getManagerProvider(widget.walletId);
|
||||
final isRefreshing = ref.read(managerProvider).isRefreshing;
|
||||
if (!isRefreshing) {
|
||||
_spinController?.repeat();
|
||||
ref
|
||||
.read(managerProvider)
|
||||
.refresh()
|
||||
.then((_) => _spinController?.stop());
|
||||
}
|
||||
} else {
|
||||
if (!ref.read(tokenServiceProvider)!.isRefreshing) {
|
||||
ref.read(tokenServiceProvider)!.refresh();
|
||||
}
|
||||
child: MaterialButton(
|
||||
color: isDesktop
|
||||
? Theme.of(context).extension<StackColors>()!.buttonBackSecondary
|
||||
: null,
|
||||
splashColor: Theme.of(context).extension<StackColors>()!.highlight,
|
||||
onPressed: () {
|
||||
if (widget.tokenContractAddress == null) {
|
||||
final managerProvider = ref
|
||||
.read(walletsChangeNotifierProvider)
|
||||
.getManagerProvider(widget.walletId);
|
||||
final isRefreshing = ref.read(managerProvider).isRefreshing;
|
||||
if (!isRefreshing) {
|
||||
_spinController.repeat?.call();
|
||||
ref
|
||||
.read(managerProvider)
|
||||
.refresh()
|
||||
.then((_) => _spinController.stop?.call());
|
||||
}
|
||||
},
|
||||
elevation: 0,
|
||||
highlightElevation: 0,
|
||||
hoverElevation: 0,
|
||||
padding: EdgeInsets.zero,
|
||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(
|
||||
Constants.size.circularBorderRadius,
|
||||
),
|
||||
),
|
||||
child: RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate,
|
||||
width: isDesktop ? 12 : 24,
|
||||
height: isDesktop ? 12 : 24,
|
||||
color: widget.overrideIconColor != null
|
||||
? widget.overrideIconColor!
|
||||
: isDesktop
|
||||
? Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.textFieldDefaultSearchIconRight
|
||||
: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.textFavoriteCard,
|
||||
),
|
||||
} else {
|
||||
if (!ref.read(tokenServiceProvider)!.isRefreshing) {
|
||||
ref.read(tokenServiceProvider)!.refresh();
|
||||
}
|
||||
}
|
||||
},
|
||||
elevation: 0,
|
||||
highlightElevation: 0,
|
||||
hoverElevation: 0,
|
||||
padding: EdgeInsets.zero,
|
||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(
|
||||
Constants.size.circularBorderRadius,
|
||||
),
|
||||
),
|
||||
)
|
||||
child: RotatingArrows(
|
||||
spinByDefault: widget.initialSyncStatus == WalletSyncStatus.syncing,
|
||||
width: isDesktop ? 12 : 24,
|
||||
height: isDesktop ? 12 : 24,
|
||||
controller: _spinController,
|
||||
color: widget.overrideIconColor != null
|
||||
? widget.overrideIconColor!
|
||||
: isDesktop
|
||||
? Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.textFieldDefaultSearchIconRight
|
||||
: Theme.of(context)
|
||||
.extension<StackColors>()!
|
||||
.textFavoriteCard,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart';
|
||||
import 'package:stackwallet/widgets/stack_dialog.dart';
|
||||
|
||||
class CancellingTransactionProgressDialog extends StatefulWidget {
|
||||
|
@ -13,51 +11,19 @@ class CancellingTransactionProgressDialog extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _CancellingTransactionProgressDialogState
|
||||
extends State<CancellingTransactionProgressDialog>
|
||||
with TickerProviderStateMixin {
|
||||
late AnimationController? _spinController;
|
||||
late Animation<double> _spinAnimation;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_spinController = AnimationController(
|
||||
duration: const Duration(seconds: 2),
|
||||
vsync: this,
|
||||
)..repeat();
|
||||
|
||||
_spinAnimation = CurvedAnimation(
|
||||
parent: _spinController!,
|
||||
curve: Curves.linear,
|
||||
);
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_spinController?.dispose();
|
||||
_spinController = null;
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
extends State<CancellingTransactionProgressDialog> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return WillPopScope(
|
||||
onWillPop: () async {
|
||||
return false;
|
||||
},
|
||||
child: StackDialog(
|
||||
child: const StackDialog(
|
||||
title: "Cancelling transaction",
|
||||
message: "This may take a while. Please do not exit this screen.",
|
||||
icon: RotationTransition(
|
||||
turns: _spinAnimation,
|
||||
child: SvgPicture.asset(
|
||||
Assets.svg.arrowRotate3,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
),
|
||||
icon: RotatingArrows(
|
||||
width: 24,
|
||||
height: 24,
|
||||
),
|
||||
// rightButton: TextButton(
|
||||
// style: Theme.of(context).textButtonTheme.style?.copyWith(
|
||||
|
|
|
@ -43,7 +43,6 @@ import 'package:stackwallet/utilities/clipboard_interface.dart';
|
|||
import 'package:stackwallet/utilities/constants.dart';
|
||||
import 'package:stackwallet/utilities/enums/backup_frequency_type.dart';
|
||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart';
|
||||
import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart';
|
||||
import 'package:stackwallet/utilities/logger.dart';
|
||||
import 'package:stackwallet/utilities/show_loading.dart';
|
||||
|
@ -912,7 +911,8 @@ class _WalletViewState extends ConsumerState<WalletView> {
|
|||
manager.wallet as PaynymWalletInterface;
|
||||
|
||||
final code = await paynymInterface.getPaymentCode(
|
||||
DerivePathTypeExt.primaryFor(manager.coin));
|
||||
isSegwit: false,
|
||||
);
|
||||
|
||||
final account = await ref
|
||||
.read(paynymAPIProvider)
|
||||
|
@ -928,7 +928,8 @@ class _WalletViewState extends ConsumerState<WalletView> {
|
|||
|
||||
// check if account exists and for matching code to see if claimed
|
||||
if (account.value != null &&
|
||||
account.value!.codes.first.claimed) {
|
||||
account.value!.nonSegwitPaymentCode.claimed &&
|
||||
account.value!.segwit) {
|
||||
ref.read(myPaynymAccountStateProvider.state).state =
|
||||
account.value!;
|
||||
|
||||
|
|
|
@ -262,11 +262,12 @@ class _DesktopSendState extends ConsumerState<DesktopSend> {
|
|||
final wallet = manager.wallet as PaynymWalletInterface;
|
||||
final paymentCode = PaymentCode.fromPaymentCode(
|
||||
widget.accountLite!.code,
|
||||
wallet.networkType,
|
||||
networkType: wallet.networkType,
|
||||
);
|
||||
final feeRate = ref.read(feeRateTypeStateProvider);
|
||||
txDataFuture = wallet.preparePaymentCodeSend(
|
||||
paymentCode: paymentCode,
|
||||
isSegwit: widget.accountLite!.segwit,
|
||||
amount: amount,
|
||||
args: {
|
||||
"feeRate": feeRate,
|
||||
|
|
|
@ -21,7 +21,6 @@ import 'package:stackwallet/utilities/amount/amount.dart';
|
|||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/constants.dart';
|
||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart';
|
||||
import 'package:stackwallet/utilities/logger.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
|
@ -271,8 +270,7 @@ class _DesktopWalletFeaturesState extends ConsumerState<DesktopWalletFeatures> {
|
|||
|
||||
final wallet = manager.wallet as PaynymWalletInterface;
|
||||
|
||||
final code =
|
||||
await wallet.getPaymentCode(DerivePathTypeExt.primaryFor(manager.coin));
|
||||
final code = await wallet.getPaymentCode(isSegwit: false);
|
||||
|
||||
final account = await ref.read(paynymAPIProvider).nym(code.toString());
|
||||
|
||||
|
@ -285,7 +283,9 @@ class _DesktopWalletFeaturesState extends ConsumerState<DesktopWalletFeatures> {
|
|||
Navigator.of(context, rootNavigator: true).pop();
|
||||
|
||||
// check if account exists and for matching code to see if claimed
|
||||
if (account.value != null && account.value!.codes.first.claimed) {
|
||||
if (account.value != null &&
|
||||
account.value!.nonSegwitPaymentCode.claimed &&
|
||||
account.value!.segwit) {
|
||||
ref.read(myPaynymAccountStateProvider.state).state = account.value!;
|
||||
|
||||
await Navigator.of(context).pushNamed(
|
||||
|
|
|
@ -164,6 +164,7 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
// _checkP2PKHChangeAddressForTransactions,
|
||||
dustLimitP2PKH: DUST_LIMIT_P2PKH.raw.toInt(),
|
||||
minConfirms: MINIMUM_CONFIRMATIONS,
|
||||
dustLimit: DUST_LIMIT.raw.toInt(),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -422,7 +423,7 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
level: LogLevel.Info);
|
||||
}
|
||||
|
||||
Future<Tuple2<List<isar_models.Address>, DerivePathType>> _checkGaps(
|
||||
Future<Tuple3<List<isar_models.Address>, DerivePathType, int>> _checkGaps(
|
||||
int maxNumberOfIndexesToCheck,
|
||||
int maxUnusedAddressGap,
|
||||
int txCountBatchSize,
|
||||
|
@ -432,6 +433,8 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
) async {
|
||||
List<isar_models.Address> addressArray = [];
|
||||
int gapCounter = 0;
|
||||
int highestIndexWithHistory = 0;
|
||||
|
||||
for (int index = 0;
|
||||
index < maxNumberOfIndexesToCheck && gapCounter < maxUnusedAddressGap;
|
||||
index += txCountBatchSize) {
|
||||
|
@ -505,6 +508,9 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
if (count > 0) {
|
||||
iterationsAddressArray.add(txCountCallArgs["${_id}_$k"]!);
|
||||
|
||||
// update highest
|
||||
highestIndexWithHistory = index + k;
|
||||
|
||||
// reset counter
|
||||
gapCounter = 0;
|
||||
}
|
||||
|
@ -517,7 +523,7 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
// cache all the transactions while waiting for the current function to finish.
|
||||
unawaited(getTransactionCacheEarly(iterationsAddressArray));
|
||||
}
|
||||
return Tuple2(addressArray, type);
|
||||
return Tuple3(addressArray, type, highestIndexWithHistory);
|
||||
}
|
||||
|
||||
Future<void> getTransactionCacheEarly(List<String> allAddresses) async {
|
||||
|
@ -561,9 +567,9 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
DerivePathType.bip84,
|
||||
];
|
||||
|
||||
final List<Future<Tuple2<List<isar_models.Address>, DerivePathType>>>
|
||||
final List<Future<Tuple3<List<isar_models.Address>, DerivePathType, int>>>
|
||||
receiveFutures = [];
|
||||
final List<Future<Tuple2<List<isar_models.Address>, DerivePathType>>>
|
||||
final List<Future<Tuple3<List<isar_models.Address>, DerivePathType, int>>>
|
||||
changeFutures = [];
|
||||
|
||||
const receiveChain = 0;
|
||||
|
@ -622,6 +628,7 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
|
||||
final List<isar_models.Address> addressesToStore = [];
|
||||
|
||||
int highestReceivingIndexWithHistory = 0;
|
||||
// If restoring a wallet that never received any funds, then set receivingArray manually
|
||||
// If we didn't do this, it'd store an empty array
|
||||
for (final tuple in receiveResults) {
|
||||
|
@ -633,10 +640,13 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
);
|
||||
addressesToStore.add(address);
|
||||
} else {
|
||||
highestReceivingIndexWithHistory =
|
||||
max(tuple.item3, highestReceivingIndexWithHistory);
|
||||
addressesToStore.addAll(tuple.item1);
|
||||
}
|
||||
}
|
||||
|
||||
int highestChangeIndexWithHistory = 0;
|
||||
// If restoring a wallet that never sent any funds with change, then set changeArray
|
||||
// manually. If we didn't do this, it'd store an empty array.
|
||||
for (final tuple in changeResults) {
|
||||
|
@ -648,10 +658,20 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
);
|
||||
addressesToStore.add(address);
|
||||
} else {
|
||||
highestChangeIndexWithHistory =
|
||||
max(tuple.item3, highestChangeIndexWithHistory);
|
||||
addressesToStore.addAll(tuple.item1);
|
||||
}
|
||||
}
|
||||
|
||||
// remove extra addresses to help minimize risk of creating a large gap
|
||||
addressesToStore.removeWhere((e) =>
|
||||
e.subType == isar_models.AddressSubType.change &&
|
||||
e.derivationIndex > highestChangeIndexWithHistory);
|
||||
addressesToStore.removeWhere((e) =>
|
||||
e.subType == isar_models.AddressSubType.receiving &&
|
||||
e.derivationIndex > highestReceivingIndexWithHistory);
|
||||
|
||||
if (isRescan) {
|
||||
await db.updateOrPutAddresses(addressesToStore);
|
||||
} else {
|
||||
|
@ -659,10 +679,11 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
}
|
||||
|
||||
// get own payment code
|
||||
final myCode = await getPaymentCode(DerivePathType.bip44, root);
|
||||
// isSegwit does not matter here at all
|
||||
final myCode = await getPaymentCode(isSegwit: false);
|
||||
|
||||
// refresh transactions to pick up any received notification transactions
|
||||
await _refreshTransactions();
|
||||
await _refreshNotificationAddressTransactions();
|
||||
|
||||
try {
|
||||
final Set<String> codesToCheck = {};
|
||||
|
@ -691,7 +712,10 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
);
|
||||
}
|
||||
|
||||
await _updateUTXOs();
|
||||
await Future.wait([
|
||||
_refreshTransactions(),
|
||||
_updateUTXOs(),
|
||||
]);
|
||||
|
||||
await Future.wait([
|
||||
updateCachedId(walletId),
|
||||
|
@ -915,7 +939,8 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
GlobalEventBus.instance.fire(RefreshPercentChangedEvent(0.0, walletId));
|
||||
|
||||
GlobalEventBus.instance.fire(RefreshPercentChangedEvent(0.1, walletId));
|
||||
final myCode = await getPaymentCode(DerivePathType.bip44);
|
||||
// isSegwit does not matter here at all
|
||||
final myCode = await getPaymentCode(isSegwit: false);
|
||||
final Set<String> codesToCheck = {};
|
||||
final nym = await PaynymIsApi().nym(myCode.toString());
|
||||
if (nym.value != null) {
|
||||
|
@ -1221,6 +1246,11 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
}
|
||||
|
||||
await _prefs.init();
|
||||
|
||||
// this will add the notification address to the db if it isn't
|
||||
// already there for older wallets
|
||||
await getMyNotificationAddress();
|
||||
|
||||
// await _checkCurrentChangeAddressesForTransactions();
|
||||
// await _checkCurrentReceivingAddressesForTransactions();
|
||||
}
|
||||
|
@ -1346,10 +1376,12 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
.getAddresses(walletId)
|
||||
.filter()
|
||||
.not()
|
||||
.typeEqualTo(isar_models.AddressType.nonWallet)
|
||||
.and()
|
||||
.not()
|
||||
.subTypeEqualTo(isar_models.AddressSubType.nonWallet)
|
||||
.group(
|
||||
(q) => q
|
||||
.typeEqualTo(isar_models.AddressType.nonWallet)
|
||||
.or()
|
||||
.subTypeEqualTo(isar_models.AddressSubType.nonWallet),
|
||||
)
|
||||
.findAll();
|
||||
return allAddresses;
|
||||
}
|
||||
|
@ -1444,6 +1476,10 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
_generateAddressForChain(1, 0, DerivePathType.bip49),
|
||||
]);
|
||||
|
||||
// this will add the notification address to the db if it isn't
|
||||
// already there so it can be watched
|
||||
await getMyNotificationAddress();
|
||||
|
||||
await db.putAddresses(initialAddresses);
|
||||
|
||||
Logging.instance.log("_generateNewWalletFinished", level: LogLevel.Info);
|
||||
|
@ -1517,42 +1553,6 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
);
|
||||
}
|
||||
|
||||
/// Returns the latest receiving/change (external/internal) address for the wallet depending on [chain]
|
||||
/// and
|
||||
/// [chain] - Use 0 for receiving (external), 1 for change (internal). Should not be any other value!
|
||||
Future<String> _getCurrentAddressForChain(
|
||||
int chain,
|
||||
DerivePathType derivePathType,
|
||||
) async {
|
||||
final subType = chain == 0 // Here, we assume that chain == 1 if it isn't 0
|
||||
? isar_models.AddressSubType.receiving
|
||||
: isar_models.AddressSubType.change;
|
||||
|
||||
isar_models.AddressType type;
|
||||
isar_models.Address? address;
|
||||
switch (derivePathType) {
|
||||
case DerivePathType.bip44:
|
||||
type = isar_models.AddressType.p2pkh;
|
||||
break;
|
||||
case DerivePathType.bip49:
|
||||
type = isar_models.AddressType.p2sh;
|
||||
break;
|
||||
case DerivePathType.bip84:
|
||||
type = isar_models.AddressType.p2wpkh;
|
||||
break;
|
||||
default:
|
||||
throw Exception("DerivePathType unsupported");
|
||||
}
|
||||
address = await db
|
||||
.getAddresses(walletId)
|
||||
.filter()
|
||||
.typeEqualTo(type)
|
||||
.subTypeEqualTo(subType)
|
||||
.sortByDerivationIndexDesc()
|
||||
.findFirst();
|
||||
return address!.value;
|
||||
}
|
||||
|
||||
String _buildDerivationStorageKey({
|
||||
required int chain,
|
||||
required DerivePathType derivePathType,
|
||||
|
@ -2020,6 +2020,60 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
return false;
|
||||
}
|
||||
|
||||
Future<void> _refreshNotificationAddressTransactions() async {
|
||||
final address = await getMyNotificationAddress();
|
||||
final hashes = await _fetchHistory([address.value]);
|
||||
|
||||
List<Map<String, dynamic>> allTransactions = [];
|
||||
|
||||
final currentHeight = await chainHeight;
|
||||
|
||||
for (final txHash in hashes) {
|
||||
final storedTx = await db
|
||||
.getTransactions(walletId)
|
||||
.filter()
|
||||
.txidEqualTo(txHash["tx_hash"] as String)
|
||||
.findFirst();
|
||||
|
||||
// TODO: remove bip47Notification type check sometime after Q2 2023
|
||||
if (storedTx == null ||
|
||||
storedTx.subType ==
|
||||
isar_models.TransactionSubType.bip47Notification ||
|
||||
!storedTx.isConfirmed(currentHeight, MINIMUM_CONFIRMATIONS)) {
|
||||
final tx = await cachedElectrumXClient.getTransaction(
|
||||
txHash: txHash["tx_hash"] as String,
|
||||
verbose: true,
|
||||
coin: coin,
|
||||
);
|
||||
|
||||
tx["address"] = await db
|
||||
.getAddresses(walletId)
|
||||
.filter()
|
||||
.valueEqualTo(txHash["address"] as String)
|
||||
.findFirst();
|
||||
tx["height"] = txHash["height"];
|
||||
allTransactions.add(tx);
|
||||
}
|
||||
}
|
||||
|
||||
final List<Tuple2<isar_models.Transaction, isar_models.Address?>> txnsData =
|
||||
[];
|
||||
|
||||
for (final txObject in allTransactions) {
|
||||
final data = await parseTransaction(
|
||||
txObject,
|
||||
cachedElectrumXClient,
|
||||
[address],
|
||||
coin,
|
||||
MINIMUM_CONFIRMATIONS,
|
||||
walletId,
|
||||
);
|
||||
|
||||
txnsData.add(data);
|
||||
}
|
||||
await db.addNewTransactionData(txnsData, walletId);
|
||||
}
|
||||
|
||||
Future<void> _refreshTransactions() async {
|
||||
final List<isar_models.Address> allAddresses =
|
||||
await _fetchAllOwnAddresses();
|
||||
|
@ -2282,8 +2336,7 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
utxoSigningData: utxoSigningData,
|
||||
recipients: [
|
||||
recipientAddress,
|
||||
await _getCurrentAddressForChain(
|
||||
1, DerivePathTypeExt.primaryFor(coin)),
|
||||
await currentChangeAddress,
|
||||
],
|
||||
satoshiAmounts: [
|
||||
satoshiAmountToSend,
|
||||
|
@ -2326,8 +2379,7 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
feeForTwoOutputs) {
|
||||
// generate new change address if current change address has been used
|
||||
await _checkChangeAddressForTransactions();
|
||||
final String newChangeAddress = await _getCurrentAddressForChain(
|
||||
1, DerivePathTypeExt.primaryFor(coin));
|
||||
final String newChangeAddress = await currentChangeAddress;
|
||||
|
||||
int feeBeingPaid =
|
||||
satoshisBeingUsed - satoshiAmountToSend - changeOutputSize;
|
||||
|
@ -2554,43 +2606,67 @@ class BitcoinWallet extends CoinServiceAPI
|
|||
String? pubKey;
|
||||
String? wif;
|
||||
|
||||
// fetch receiving derivations if null
|
||||
receiveDerivations[sd.derivePathType] ??= await _fetchDerivations(
|
||||
chain: 0,
|
||||
derivePathType: sd.derivePathType,
|
||||
);
|
||||
final receiveDerivation =
|
||||
receiveDerivations[sd.derivePathType]![sd.utxo.address!];
|
||||
final address = await db.getAddress(walletId, sd.utxo.address!);
|
||||
if (address?.derivationPath != null) {
|
||||
final bip32.BIP32 node;
|
||||
if (address!.subType == isar_models.AddressSubType.paynymReceive) {
|
||||
final code = await paymentCodeStringByKey(address.otherData!);
|
||||
|
||||
if (receiveDerivation != null) {
|
||||
pubKey = receiveDerivation["pubKey"] as String;
|
||||
wif = receiveDerivation["wif"] as String;
|
||||
} else {
|
||||
// fetch change derivations if null
|
||||
changeDerivations[sd.derivePathType] ??= await _fetchDerivations(
|
||||
chain: 1,
|
||||
derivePathType: sd.derivePathType,
|
||||
);
|
||||
final changeDerivation =
|
||||
changeDerivations[sd.derivePathType]![sd.utxo.address!];
|
||||
if (changeDerivation != null) {
|
||||
pubKey = changeDerivation["pubKey"] as String;
|
||||
wif = changeDerivation["wif"] as String;
|
||||
}
|
||||
}
|
||||
final bip47base = await getBip47BaseNode();
|
||||
|
||||
if (wif == null || pubKey == null) {
|
||||
final address = await db.getAddress(walletId, sd.utxo.address!);
|
||||
if (address?.derivationPath != null) {
|
||||
final node = await Bip32Utils.getBip32Node(
|
||||
final privateKey = await getPrivateKeyForPaynymReceivingAddress(
|
||||
paymentCodeString: code!,
|
||||
index: address.derivationIndex,
|
||||
);
|
||||
|
||||
node = bip32.BIP32.fromPrivateKey(
|
||||
privateKey,
|
||||
bip47base.chainCode,
|
||||
bip32.NetworkType(
|
||||
wif: _network.wif,
|
||||
bip32: bip32.Bip32Type(
|
||||
public: _network.bip32.public,
|
||||
private: _network.bip32.private,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
node = await Bip32Utils.getBip32Node(
|
||||
(await mnemonicString)!,
|
||||
(await mnemonicPassphrase)!,
|
||||
_network,
|
||||
address!.derivationPath!.value,
|
||||
address.derivationPath!.value,
|
||||
);
|
||||
}
|
||||
|
||||
wif = node.toWIF();
|
||||
pubKey = Format.uint8listToString(node.publicKey);
|
||||
wif = node.toWIF();
|
||||
pubKey = Format.uint8listToString(node.publicKey);
|
||||
}
|
||||
|
||||
if (wif == null || pubKey == null) {
|
||||
// fetch receiving derivations if null
|
||||
receiveDerivations[sd.derivePathType] ??= await _fetchDerivations(
|
||||
chain: 0,
|
||||
derivePathType: sd.derivePathType,
|
||||
);
|
||||
final receiveDerivation =
|
||||
receiveDerivations[sd.derivePathType]![sd.utxo.address!];
|
||||
|
||||
if (receiveDerivation != null) {
|
||||
pubKey = receiveDerivation["pubKey"] as String;
|
||||
wif = receiveDerivation["wif"] as String;
|
||||
} else {
|
||||
// fetch change derivations if null
|
||||
changeDerivations[sd.derivePathType] ??= await _fetchDerivations(
|
||||
chain: 1,
|
||||
derivePathType: sd.derivePathType,
|
||||
);
|
||||
final changeDerivation =
|
||||
changeDerivations[sd.derivePathType]![sd.utxo.address!];
|
||||
if (changeDerivation != null) {
|
||||
pubKey = changeDerivation["pubKey"] as String;
|
||||
wif = changeDerivation["wif"] as String;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2733,7 +2733,9 @@ class BitcoinCashWallet extends CoinServiceAPI
|
|||
required List<String> recipients,
|
||||
required List<int> satoshiAmounts,
|
||||
}) async {
|
||||
final builder = bitbox.Bitbox.transactionBuilder();
|
||||
final builder = bitbox.Bitbox.transactionBuilder(
|
||||
testnet: coin == Coin.bitcoincashTestnet,
|
||||
);
|
||||
|
||||
// retrieve address' utxos from the rest api
|
||||
List<bitbox.Utxo> _utxos =
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -206,7 +206,7 @@ class _SVG {
|
|||
String get pending => "assets/svg/pending.svg";
|
||||
String get radio => "assets/svg/signal-stream.svg";
|
||||
String get arrowRotate => "assets/svg/arrow-rotate.svg";
|
||||
String get arrowRotate2 => "assets/svg/arrow-rotate2.svg";
|
||||
String get arrowsTwoWay => "assets/svg/arrow-rotate2.svg";
|
||||
String get alertCircle => "assets/svg/alert-circle.svg";
|
||||
String get checkCircle => "assets/svg/circle-check.svg";
|
||||
String get clipboard => "assets/svg/clipboard.svg";
|
||||
|
@ -222,7 +222,6 @@ class _SVG {
|
|||
String get networkWired => "assets/svg/network-wired-2.svg";
|
||||
String get addressBook => "assets/svg/address-book.svg";
|
||||
String get addressBook2 => "assets/svg/address-book2.svg";
|
||||
String get arrowRotate3 => "assets/svg/rotate-exclamation.svg";
|
||||
String get delete => "assets/svg/delete.svg";
|
||||
String get arrowRight => "assets/svg/arrow-right.svg";
|
||||
String get dollarSign => "assets/svg/dollar-sign.svg";
|
||||
|
@ -417,6 +416,7 @@ class _ANIMATIONS {
|
|||
String get test2 => "assets/lottie/test2.json";
|
||||
String get iconSend => "assets/lottie/icon_send.json";
|
||||
String get loaderAndCheckmark => "assets/lottie/loader_and_checkmark.json";
|
||||
String get arrowRotate => "assets/lottie/arrow_rotate.json";
|
||||
}
|
||||
|
||||
class _GIF {
|
||||
|
|
|
@ -25,14 +25,18 @@ class PaynymIsApi {
|
|||
version +
|
||||
(endpoint.startsWith("/") ? endpoint : "/$endpoint");
|
||||
final uri = Uri.parse(url);
|
||||
final headers = {
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
}..addAll(additionalHeaders);
|
||||
final response = await http.post(
|
||||
uri,
|
||||
headers: {
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
}..addAll(additionalHeaders),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
||||
debugPrint("Paynym request uri: $uri");
|
||||
debugPrint("Paynym request body: $body");
|
||||
debugPrint("Paynym request headers: $headers");
|
||||
debugPrint("Paynym response code: ${response.statusCode}");
|
||||
debugPrint("Paynym response body: ${response.body}");
|
||||
|
||||
|
@ -543,24 +547,44 @@ class PaynymIsApi {
|
|||
// | 401 | Unauthorized token or signature or Unclaimed payment code |
|
||||
//
|
||||
// ------
|
||||
Future<PaynymResponse<bool>> add(
|
||||
String token,
|
||||
String signature,
|
||||
String nym,
|
||||
String code,
|
||||
) async {
|
||||
final result = await _post(
|
||||
"/nym/add",
|
||||
{
|
||||
"nym": nym,
|
||||
"code": code,
|
||||
"signature": signature,
|
||||
},
|
||||
{
|
||||
"auth-token": token,
|
||||
},
|
||||
);
|
||||
|
||||
// NOT USED
|
||||
// Future<Map<String, dynamic>> add(
|
||||
// String token,
|
||||
// String signature,
|
||||
// String nym,
|
||||
// String code,
|
||||
// ) async {
|
||||
// return _post(
|
||||
// "/add",
|
||||
// {
|
||||
// "nym": nym,
|
||||
// "code": code,
|
||||
// "signature": signature,
|
||||
// },
|
||||
// {
|
||||
// "auth-token": token,
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
String message;
|
||||
bool value = false;
|
||||
|
||||
switch (result.item2) {
|
||||
case 200:
|
||||
message = "Code added successfully";
|
||||
value = true;
|
||||
break;
|
||||
case 400:
|
||||
message = "Bad request";
|
||||
break;
|
||||
case 401:
|
||||
message = "Unauthorized token or signature or Unclaimed payment code";
|
||||
break;
|
||||
case 404:
|
||||
message = "Nym not found";
|
||||
break;
|
||||
default:
|
||||
message = result.item1["message"] as String? ?? "Unknown error";
|
||||
}
|
||||
return PaynymResponse(value, result.item2, message);
|
||||
}
|
||||
}
|
||||
|
|
87
lib/widgets/animated_widgets/rotating_arrows.dart
Normal file
87
lib/widgets/animated_widgets/rotating_arrows.dart
Normal file
|
@ -0,0 +1,87 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:lottie/lottie.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
|
||||
class RotatingArrowsController {
|
||||
VoidCallback? forward;
|
||||
VoidCallback? repeat;
|
||||
VoidCallback? stop;
|
||||
}
|
||||
|
||||
class RotatingArrows extends StatefulWidget {
|
||||
const RotatingArrows({
|
||||
Key? key,
|
||||
required this.height,
|
||||
required this.width,
|
||||
this.controller,
|
||||
this.color,
|
||||
this.spinByDefault = true,
|
||||
}) : super(key: key);
|
||||
|
||||
final double height;
|
||||
final double width;
|
||||
final RotatingArrowsController? controller;
|
||||
final Color? color;
|
||||
final bool spinByDefault;
|
||||
|
||||
@override
|
||||
State<RotatingArrows> createState() => _RotatingArrowsState();
|
||||
}
|
||||
|
||||
class _RotatingArrowsState extends State<RotatingArrows>
|
||||
with SingleTickerProviderStateMixin {
|
||||
late final AnimationController animationController;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
animationController = AnimationController(vsync: this);
|
||||
|
||||
widget.controller?.forward = animationController.forward;
|
||||
widget.controller?.repeat = animationController.repeat;
|
||||
widget.controller?.stop = animationController.stop;
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
animationController.dispose();
|
||||
widget.controller?.forward = null;
|
||||
widget.controller?.repeat = null;
|
||||
widget.controller?.stop = null;
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Lottie.asset(
|
||||
Assets.lottie.arrowRotate,
|
||||
controller: animationController,
|
||||
height: widget.height,
|
||||
width: widget.width,
|
||||
delegates: LottieDelegates(
|
||||
values: [
|
||||
ValueDelegate.color(
|
||||
const ["**"],
|
||||
value: widget.color ??
|
||||
Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
),
|
||||
ValueDelegate.strokeColor(
|
||||
const ["**"],
|
||||
value: widget.color ??
|
||||
Theme.of(context).extension<StackColors>()!.accentColorDark,
|
||||
),
|
||||
],
|
||||
),
|
||||
onLoaded: (composition) {
|
||||
animationController.duration = composition.duration;
|
||||
|
||||
// if controller was not set just assume continuous repeat
|
||||
if (widget.spinByDefault) {
|
||||
animationController.repeat();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
|
@ -11,7 +11,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart';
|
|||
import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart';
|
||||
import 'package:stackwallet/services/mixins/paynym_wallet_interface.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/utilities/util.dart';
|
||||
import 'package:stackwallet/widgets/desktop/primary_button.dart';
|
||||
|
@ -68,8 +67,7 @@ class _PaynymFollowToggleButtonState
|
|||
.read(paynymAPIProvider)
|
||||
.nym(widget.paymentCodeStringToFollow, true);
|
||||
|
||||
final myPCode =
|
||||
await wallet.getPaymentCode(DerivePathTypeExt.primaryFor(manager.coin));
|
||||
final myPCode = await wallet.getPaymentCode(isSegwit: false);
|
||||
|
||||
PaynymResponse<String> token =
|
||||
await ref.read(paynymAPIProvider).token(myPCode.toString());
|
||||
|
@ -77,8 +75,8 @@ class _PaynymFollowToggleButtonState
|
|||
// sign token with notification private key
|
||||
String signature = await wallet.signStringWithNotificationKey(token.value!);
|
||||
|
||||
var result = await ref.read(paynymAPIProvider).follow(
|
||||
token.value!, signature, followedAccount.value!.codes.first.code);
|
||||
var result = await ref.read(paynymAPIProvider).follow(token.value!,
|
||||
signature, followedAccount.value!.nonSegwitPaymentCode.code);
|
||||
|
||||
int i = 0;
|
||||
for (;
|
||||
|
@ -90,8 +88,8 @@ class _PaynymFollowToggleButtonState
|
|||
// sign token with notification private key
|
||||
signature = await wallet.signStringWithNotificationKey(token.value!);
|
||||
|
||||
result = await ref.read(paynymAPIProvider).follow(
|
||||
token.value!, signature, followedAccount.value!.codes.first.code);
|
||||
result = await ref.read(paynymAPIProvider).follow(token.value!, signature,
|
||||
followedAccount.value!.nonSegwitPaymentCode.code);
|
||||
await Future<void>.delayed(const Duration(milliseconds: 200));
|
||||
|
||||
print("RRR result: $result");
|
||||
|
@ -118,8 +116,8 @@ class _PaynymFollowToggleButtonState
|
|||
PaynymAccountLite(
|
||||
followedAccount.value!.nymID,
|
||||
followedAccount.value!.nymName,
|
||||
followedAccount.value!.codes.first.code,
|
||||
followedAccount.value!.codes.first.segwit,
|
||||
followedAccount.value!.nonSegwitPaymentCode.code,
|
||||
followedAccount.value!.segwit,
|
||||
),
|
||||
);
|
||||
|
||||
|
@ -169,8 +167,7 @@ class _PaynymFollowToggleButtonState
|
|||
.read(paynymAPIProvider)
|
||||
.nym(widget.paymentCodeStringToFollow, true);
|
||||
|
||||
final myPCode =
|
||||
await wallet.getPaymentCode(DerivePathTypeExt.primaryFor(manager.coin));
|
||||
final myPCode = await wallet.getPaymentCode(isSegwit: false);
|
||||
|
||||
PaynymResponse<String> token =
|
||||
await ref.read(paynymAPIProvider).token(myPCode.toString());
|
||||
|
@ -178,8 +175,8 @@ class _PaynymFollowToggleButtonState
|
|||
// sign token with notification private key
|
||||
String signature = await wallet.signStringWithNotificationKey(token.value!);
|
||||
|
||||
var result = await ref.read(paynymAPIProvider).unfollow(
|
||||
token.value!, signature, followedAccount.value!.codes.first.code);
|
||||
var result = await ref.read(paynymAPIProvider).unfollow(token.value!,
|
||||
signature, followedAccount.value!.nonSegwitPaymentCode.code);
|
||||
|
||||
int i = 0;
|
||||
for (;
|
||||
|
@ -191,8 +188,8 @@ class _PaynymFollowToggleButtonState
|
|||
// sign token with notification private key
|
||||
signature = await wallet.signStringWithNotificationKey(token.value!);
|
||||
|
||||
result = await ref.read(paynymAPIProvider).unfollow(
|
||||
token.value!, signature, followedAccount.value!.codes.first.code);
|
||||
result = await ref.read(paynymAPIProvider).unfollow(token.value!,
|
||||
signature, followedAccount.value!.nonSegwitPaymentCode.code);
|
||||
await Future<void>.delayed(const Duration(milliseconds: 200));
|
||||
print("unfollow RRR result: $result");
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/text_styles.dart';
|
||||
|
@ -276,6 +277,7 @@ class PinKeyboard extends StatelessWidget {
|
|||
|
||||
void _numberHandler(String number) {
|
||||
onNumberKeyPressed.call(number);
|
||||
HapticFeedback.lightImpact();
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -111,11 +111,11 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: "48dd65f88822fba8543826274f6d51c17f735f93"
|
||||
resolved-ref: "48dd65f88822fba8543826274f6d51c17f735f93"
|
||||
ref: "38847255d035c0f6ec5bc93d19130ec804cf90e9"
|
||||
resolved-ref: "38847255d035c0f6ec5bc93d19130ec804cf90e9"
|
||||
url: "https://github.com/cypherstack/bip47.git"
|
||||
source: git
|
||||
version: "1.0.0"
|
||||
version: "2.0.0"
|
||||
bitbox:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
|
@ -11,7 +11,7 @@ description: Stack Wallet
|
|||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||
# Read more about iOS versioning at
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
version: 1.7.2+162
|
||||
version: 1.7.4+164
|
||||
|
||||
environment:
|
||||
sdk: ">=2.17.0 <3.0.0"
|
||||
|
@ -60,7 +60,7 @@ dependencies:
|
|||
bip47:
|
||||
git:
|
||||
url: https://github.com/cypherstack/bip47.git
|
||||
ref: 48dd65f88822fba8543826274f6d51c17f735f93
|
||||
ref: 38847255d035c0f6ec5bc93d19130ec804cf90e9
|
||||
|
||||
# Utility plugins
|
||||
# provider: ^6.0.1
|
||||
|
@ -248,7 +248,6 @@ flutter:
|
|||
- assets/svg/chevron-up.svg
|
||||
- assets/svg/lock-keyhole.svg
|
||||
- assets/svg/lock-open.svg
|
||||
- assets/svg/rotate-exclamation.svg
|
||||
- assets/svg/folder-down.svg
|
||||
- assets/svg/network-wired.svg
|
||||
- assets/svg/network-wired-2.svg
|
||||
|
@ -383,6 +382,7 @@ flutter:
|
|||
- assets/lottie/test2.json
|
||||
- assets/lottie/icon_send.json
|
||||
- assets/lottie/loader_and_checkmark.json
|
||||
- assets/lottie/arrow_rotate.json
|
||||
|
||||
# gifs
|
||||
- assets/gif/
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'dart:async' as _i23;
|
|||
import 'dart:typed_data' as _i30;
|
||||
import 'dart:ui' as _i25;
|
||||
|
||||
import 'package:bip32/bip32.dart' as _i18;
|
||||
import 'package:bip32/bip32.dart' as _i17;
|
||||
import 'package:bip47/bip47.dart' as _i19;
|
||||
import 'package:bitcoindart/bitcoindart.dart' as _i14;
|
||||
import 'package:flutter/foundation.dart' as _i4;
|
||||
|
@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart' as _i13;
|
|||
import 'package:stackwallet/electrumx_rpc/cached_electrumx.dart' as _i11;
|
||||
import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i10;
|
||||
import 'package:stackwallet/models/balance.dart' as _i12;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i18;
|
||||
import 'package:stackwallet/models/node_model.dart' as _i26;
|
||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i9;
|
||||
import 'package:stackwallet/models/signing_data.dart' as _i29;
|
||||
|
@ -209,8 +209,8 @@ class _FakeTuple2_14<T1, T2> extends _i1.SmartFake
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
||||
_FakeAddress_15(
|
||||
class _FakeBIP32_15 extends _i1.SmartFake implements _i17.BIP32 {
|
||||
_FakeBIP32_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -219,8 +219,8 @@ class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeBIP32_16 extends _i1.SmartFake implements _i18.BIP32 {
|
||||
_FakeBIP32_16(
|
||||
class _FakeAddress_16 extends _i1.SmartFake implements _i18.Address {
|
||||
_FakeAddress_16(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -987,16 +987,16 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
returnValue: _i22.Coin.bitcoin,
|
||||
) as _i22.Coin);
|
||||
@override
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i18.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i18.UTXO>>.value(<_i18.UTXO>[]),
|
||||
) as _i23.Future<List<_i18.UTXO>>);
|
||||
@override
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i18.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
_i23.Future<List<_i18.Transaction>>.value(<_i18.Transaction>[]),
|
||||
) as _i23.Future<List<_i18.Transaction>>);
|
||||
@override
|
||||
_i23.Future<String> get currentReceivingAddress => (super.noSuchMethod(
|
||||
Invocation.getter(#currentReceivingAddress),
|
||||
|
@ -1406,7 +1406,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
required bool? coinControl,
|
||||
required bool? isSendAll,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i17.UTXO>? utxos,
|
||||
List<_i18.UTXO>? utxos,
|
||||
}) =>
|
||||
super.noSuchMethod(Invocation.method(
|
||||
#coinSelection,
|
||||
|
@ -1423,7 +1423,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
));
|
||||
@override
|
||||
_i23.Future<List<_i29.SigningData>> fetchBuildTxData(
|
||||
List<_i17.UTXO>? utxosToUse) =>
|
||||
List<_i18.UTXO>? utxosToUse) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchBuildTxData,
|
||||
|
@ -1677,10 +1677,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i16.Tuple2<_i17.Transaction, _i17.Address>> parseTransaction(
|
||||
_i23.Future<_i16.Tuple2<_i18.Transaction, _i18.Address>> parseTransaction(
|
||||
Map<String, dynamic>? txData,
|
||||
dynamic electrumxClient,
|
||||
List<_i17.Address>? myAddresses,
|
||||
List<_i18.Address>? myAddresses,
|
||||
_i22.Coin? coin,
|
||||
int? minConfirms,
|
||||
String? walletId,
|
||||
|
@ -1698,8 +1698,8 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
returnValue:
|
||||
_i23.Future<_i16.Tuple2<_i17.Transaction, _i17.Address>>.value(
|
||||
_FakeTuple2_14<_i17.Transaction, _i17.Address>(
|
||||
_i23.Future<_i16.Tuple2<_i18.Transaction, _i18.Address>>.value(
|
||||
_FakeTuple2_14<_i18.Transaction, _i18.Address>(
|
||||
this,
|
||||
Invocation.method(
|
||||
#parseTransaction,
|
||||
|
@ -1713,7 +1713,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Tuple2<_i17.Transaction, _i17.Address>>);
|
||||
) as _i23.Future<_i16.Tuple2<_i18.Transaction, _i18.Address>>);
|
||||
@override
|
||||
void initPaynymWalletInterface({
|
||||
required String? walletId,
|
||||
|
@ -1723,6 +1723,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
required _i13.MainDB? db,
|
||||
required _i10.ElectrumX? electrumXClient,
|
||||
required _i7.SecureStorageInterface? secureStorage,
|
||||
required int? dustLimit,
|
||||
required int? dustLimitP2PKH,
|
||||
required int? minConfirms,
|
||||
required _i23.Future<String?> Function()? getMnemonicString,
|
||||
|
@ -1741,7 +1742,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
})?
|
||||
prepareSend,
|
||||
required _i23.Future<int> Function({required String address})? getTxCount,
|
||||
required _i23.Future<List<_i29.SigningData>> Function(List<_i17.UTXO>)?
|
||||
required _i23.Future<List<_i29.SigningData>> Function(List<_i18.UTXO>)?
|
||||
fetchBuildTxData,
|
||||
required _i23.Future<void> Function()? refresh,
|
||||
required _i23.Future<void> Function()? checkChangeAddressForTransactions,
|
||||
|
@ -1758,6 +1759,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
#db: db,
|
||||
#electrumXClient: electrumXClient,
|
||||
#secureStorage: secureStorage,
|
||||
#dustLimit: dustLimit,
|
||||
#dustLimitP2PKH: dustLimitP2PKH,
|
||||
#minConfirms: minConfirms,
|
||||
#getMnemonicString: getMnemonicString,
|
||||
|
@ -1776,28 +1778,74 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i17.Address> currentReceivingPaynymAddress(
|
||||
_i19.PaymentCode? sender) =>
|
||||
_i23.Future<_i17.BIP32> getBip47BaseNode() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i30.Uint8List> getPrivateKeyForPaynymReceivingAddress({
|
||||
required String? paymentCodeString,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPrivateKeyForPaynymReceivingAddress,
|
||||
[],
|
||||
{
|
||||
#paymentCodeString: paymentCodeString,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i30.Uint8List>.value(_i30.Uint8List(0)),
|
||||
) as _i23.Future<_i30.Uint8List>);
|
||||
@override
|
||||
_i23.Future<_i18.Address> currentReceivingPaynymAddress({
|
||||
required _i19.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
returnValue: _i23.Future<_i18.Address>.value(_FakeAddress_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.Address>);
|
||||
) as _i23.Future<_i18.Address>);
|
||||
@override
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions(
|
||||
_i19.PaymentCode? sender) =>
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions({
|
||||
required _i19.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#checkCurrentPaynymReceivingAddressForTransactions,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
|
@ -1813,81 +1861,33 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i18.BIP32> deriveNotificationBip32Node({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i17.BIP32> deriveNotificationBip32Node() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.BIP32>.value(_FakeBIP32_16(
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i18.BIP32>);
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i18.BIP32> deriveReceivingPrivateKeyNode({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.BIP32>.value(_FakeBIP32_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i18.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i19.PaymentCode> getPaymentCode(
|
||||
_i28.DerivePathType? derivePathType, [
|
||||
_i18.BIP32? bip32Root,
|
||||
]) =>
|
||||
_i23.Future<_i19.PaymentCode> getPaymentCode({required bool? isSegwit}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
returnValue: _i23.Future<_i19.PaymentCode>.value(_FakePaymentCode_17(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i19.PaymentCode>);
|
||||
|
@ -1912,6 +1912,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
@override
|
||||
_i23.Future<Map<String, dynamic>> preparePaymentCodeSend({
|
||||
required _i19.PaymentCode? paymentCode,
|
||||
required bool? isSegwit,
|
||||
required _i15.Amount? amount,
|
||||
Map<String, dynamic>? args,
|
||||
}) =>
|
||||
|
@ -1921,6 +1922,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#paymentCode: paymentCode,
|
||||
#isSegwit: isSegwit,
|
||||
#amount: amount,
|
||||
#args: args,
|
||||
},
|
||||
|
@ -1929,9 +1931,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
_i23.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i23.Future<Map<String, dynamic>>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> nextUnusedSendAddressFrom({
|
||||
_i23.Future<_i18.Address> nextUnusedSendAddressFrom({
|
||||
required _i19.PaymentCode? pCode,
|
||||
required _i18.BIP32? privateKeyNode,
|
||||
required bool? isSegwit,
|
||||
required _i17.BIP32? privateKeyNode,
|
||||
int? startIndex = 0,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -1940,29 +1943,31 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
returnValue: _i23.Future<_i18.Address>.value(_FakeAddress_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#nextUnusedSendAddressFrom,
|
||||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.Address>);
|
||||
) as _i23.Future<_i18.Address>);
|
||||
@override
|
||||
_i23.Future<Map<String, dynamic>> prepareNotificationTx({
|
||||
required int? selectedTxFeeRate,
|
||||
required String? targetPaymentCodeString,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i17.UTXO>? utxos,
|
||||
List<_i18.UTXO>? utxos,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
@ -1999,34 +2004,24 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
returnValue: _i23.Future<bool>.value(false),
|
||||
) as _i23.Future<bool>);
|
||||
@override
|
||||
_i23.Future<_i19.PaymentCode?> unBlindedPaymentCodeFromTransaction({
|
||||
required _i17.Transaction? transaction,
|
||||
required _i17.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i19.PaymentCode?> unBlindedPaymentCodeFromTransaction(
|
||||
{required _i18.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransaction,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i19.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i19.PaymentCode?>);
|
||||
@override
|
||||
_i23.Future<_i19.PaymentCode?> unBlindedPaymentCodeFromTransactionBad({
|
||||
required _i17.Transaction? transaction,
|
||||
required _i17.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i19.PaymentCode?> unBlindedPaymentCodeFromTransactionBad(
|
||||
{required _i18.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransactionBad,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i19.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i19.PaymentCode?>);
|
||||
|
@ -2071,111 +2066,40 @@ class MockBitcoinWallet extends _i1.Mock implements _i27.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<void> restoreHistoryWith(
|
||||
_i19.PaymentCode? other,
|
||||
int? maxUnusedAddressGap,
|
||||
int? maxNumberOfIndexesToCheck,
|
||||
) =>
|
||||
_i23.Future<void> restoreHistoryWith({
|
||||
required _i19.PaymentCode? other,
|
||||
required bool? checkSegwitAsWell,
|
||||
required int? maxUnusedAddressGap,
|
||||
required int? maxNumberOfIndexesToCheck,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#restoreHistoryWith,
|
||||
[
|
||||
other,
|
||||
maxUnusedAddressGap,
|
||||
maxNumberOfIndexesToCheck,
|
||||
],
|
||||
[],
|
||||
{
|
||||
#other: other,
|
||||
#checkSegwitAsWell: checkSegwitAsWell,
|
||||
#maxUnusedAddressGap: maxUnusedAddressGap,
|
||||
#maxNumberOfIndexesToCheck: maxNumberOfIndexesToCheck,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> generatePaynymSendAddressFromKeyPair({
|
||||
required _i14.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i28.DerivePathType? derivePathType,
|
||||
required _i19.PaymentCode? toPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> generatePaynymReceivingAddressFromKeyPair({
|
||||
required _i14.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i28.DerivePathType? derivePathType,
|
||||
required _i19.PaymentCode? fromPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> getMyNotificationAddress(
|
||||
_i28.DerivePathType? derivePathType, [
|
||||
_i18.BIP32? bip32Root,
|
||||
]) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i18.Address> getMyNotificationAddress() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
returnValue: _i23.Future<_i18.Address>.value(_FakeAddress_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.Address>);
|
||||
) as _i23.Future<_i18.Address>);
|
||||
@override
|
||||
_i23.Future<List<String>> lookupKey(String? paymentCodeString) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -2812,16 +2736,16 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
|||
),
|
||||
) as _i12.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i18.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
_i23.Future<List<_i18.Transaction>>.value(<_i18.Transaction>[]),
|
||||
) as _i23.Future<List<_i18.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i18.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i18.UTXO>>.value(<_i18.UTXO>[]),
|
||||
) as _i23.Future<List<_i18.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
@ -3180,16 +3104,16 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
|||
),
|
||||
) as _i12.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i18.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
_i23.Future<List<_i18.Transaction>>.value(<_i18.Transaction>[]),
|
||||
) as _i23.Future<List<_i18.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i18.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i18.UTXO>>.value(<_i18.UTXO>[]),
|
||||
) as _i23.Future<List<_i18.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'dart:async' as _i23;
|
|||
import 'dart:typed_data' as _i29;
|
||||
import 'dart:ui' as _i25;
|
||||
|
||||
import 'package:bip32/bip32.dart' as _i17;
|
||||
import 'package:bip32/bip32.dart' as _i16;
|
||||
import 'package:bip47/bip47.dart' as _i18;
|
||||
import 'package:bitcoindart/bitcoindart.dart' as _i13;
|
||||
import 'package:flutter/foundation.dart' as _i4;
|
||||
|
@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart' as _i12;
|
|||
import 'package:stackwallet/electrumx_rpc/cached_electrumx.dart' as _i10;
|
||||
import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i9;
|
||||
import 'package:stackwallet/models/balance.dart' as _i11;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i16;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||
import 'package:stackwallet/models/node_model.dart' as _i31;
|
||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
||||
import 'package:stackwallet/models/signing_data.dart' as _i28;
|
||||
|
@ -194,8 +194,8 @@ class _FakeTuple2_13<T1, T2> extends _i1.SmartFake
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
||||
_FakeAddress_14(
|
||||
class _FakeBIP32_14 extends _i1.SmartFake implements _i16.BIP32 {
|
||||
_FakeBIP32_14(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -204,8 +204,8 @@ class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeBIP32_15 extends _i1.SmartFake implements _i17.BIP32 {
|
||||
_FakeBIP32_15(
|
||||
class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
||||
_FakeAddress_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -779,16 +779,16 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValue: _i22.Coin.bitcoin,
|
||||
) as _i22.Coin);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<String> get currentReceivingAddress => (super.noSuchMethod(
|
||||
Invocation.getter(#currentReceivingAddress),
|
||||
|
@ -1197,7 +1197,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
required bool? coinControl,
|
||||
required bool? isSendAll,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
super.noSuchMethod(Invocation.method(
|
||||
#coinSelection,
|
||||
|
@ -1214,7 +1214,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
));
|
||||
@override
|
||||
_i23.Future<List<_i28.SigningData>> fetchBuildTxData(
|
||||
List<_i16.UTXO>? utxosToUse) =>
|
||||
List<_i17.UTXO>? utxosToUse) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchBuildTxData,
|
||||
|
@ -1468,10 +1468,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>> parseTransaction(
|
||||
_i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>> parseTransaction(
|
||||
Map<String, dynamic>? txData,
|
||||
dynamic electrumxClient,
|
||||
List<_i16.Address>? myAddresses,
|
||||
List<_i17.Address>? myAddresses,
|
||||
_i22.Coin? coin,
|
||||
int? minConfirms,
|
||||
String? walletId,
|
||||
|
@ -1489,8 +1489,8 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
returnValue:
|
||||
_i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>.value(
|
||||
_FakeTuple2_13<_i16.Transaction, _i16.Address>(
|
||||
_i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>.value(
|
||||
_FakeTuple2_13<_i17.Transaction, _i17.Address>(
|
||||
this,
|
||||
Invocation.method(
|
||||
#parseTransaction,
|
||||
|
@ -1504,7 +1504,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>);
|
||||
) as _i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>);
|
||||
@override
|
||||
void initPaynymWalletInterface({
|
||||
required String? walletId,
|
||||
|
@ -1514,6 +1514,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
required _i12.MainDB? db,
|
||||
required _i9.ElectrumX? electrumXClient,
|
||||
required _i19.SecureStorageInterface? secureStorage,
|
||||
required int? dustLimit,
|
||||
required int? dustLimitP2PKH,
|
||||
required int? minConfirms,
|
||||
required _i23.Future<String?> Function()? getMnemonicString,
|
||||
|
@ -1532,7 +1533,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
})?
|
||||
prepareSend,
|
||||
required _i23.Future<int> Function({required String address})? getTxCount,
|
||||
required _i23.Future<List<_i28.SigningData>> Function(List<_i16.UTXO>)?
|
||||
required _i23.Future<List<_i28.SigningData>> Function(List<_i17.UTXO>)?
|
||||
fetchBuildTxData,
|
||||
required _i23.Future<void> Function()? refresh,
|
||||
required _i23.Future<void> Function()? checkChangeAddressForTransactions,
|
||||
|
@ -1549,6 +1550,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
#db: db,
|
||||
#electrumXClient: electrumXClient,
|
||||
#secureStorage: secureStorage,
|
||||
#dustLimit: dustLimit,
|
||||
#dustLimitP2PKH: dustLimitP2PKH,
|
||||
#minConfirms: minConfirms,
|
||||
#getMnemonicString: getMnemonicString,
|
||||
|
@ -1567,28 +1569,74 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i16.Address> currentReceivingPaynymAddress(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i23.Future<_i16.BIP32> getBip47BaseNode() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i29.Uint8List> getPrivateKeyForPaynymReceivingAddress({
|
||||
required String? paymentCodeString,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPrivateKeyForPaynymReceivingAddress,
|
||||
[],
|
||||
{
|
||||
#paymentCodeString: paymentCodeString,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i29.Uint8List>.value(_i29.Uint8List(0)),
|
||||
) as _i23.Future<_i29.Uint8List>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> currentReceivingPaynymAddress({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#checkCurrentPaynymReceivingAddressForTransactions,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
|
@ -1604,81 +1652,33 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i17.BIP32> deriveNotificationBip32Node({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i16.BIP32> deriveNotificationBip32Node() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
returnValue: _i23.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
) as _i23.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i17.BIP32> deriveReceivingPrivateKeyNode({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode> getPaymentCode(
|
||||
_i27.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
_i23.Future<_i18.PaymentCode> getPaymentCode({required bool? isSegwit}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode>.value(_FakePaymentCode_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i18.PaymentCode>);
|
||||
|
@ -1703,6 +1703,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
@override
|
||||
_i23.Future<Map<String, dynamic>> preparePaymentCodeSend({
|
||||
required _i18.PaymentCode? paymentCode,
|
||||
required bool? isSegwit,
|
||||
required _i14.Amount? amount,
|
||||
Map<String, dynamic>? args,
|
||||
}) =>
|
||||
|
@ -1712,6 +1713,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#paymentCode: paymentCode,
|
||||
#isSegwit: isSegwit,
|
||||
#amount: amount,
|
||||
#args: args,
|
||||
},
|
||||
|
@ -1720,9 +1722,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
_i23.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i23.Future<Map<String, dynamic>>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> nextUnusedSendAddressFrom({
|
||||
_i23.Future<_i17.Address> nextUnusedSendAddressFrom({
|
||||
required _i18.PaymentCode? pCode,
|
||||
required _i17.BIP32? privateKeyNode,
|
||||
required bool? isSegwit,
|
||||
required _i16.BIP32? privateKeyNode,
|
||||
int? startIndex = 0,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -1731,29 +1734,31 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#nextUnusedSendAddressFrom,
|
||||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<Map<String, dynamic>> prepareNotificationTx({
|
||||
required int? selectedTxFeeRate,
|
||||
required String? targetPaymentCodeString,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
@ -1790,34 +1795,24 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValue: _i23.Future<bool>.value(false),
|
||||
) as _i23.Future<bool>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransaction,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i18.PaymentCode?>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransactionBad,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i18.PaymentCode?>);
|
||||
|
@ -1862,111 +1857,40 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<void> restoreHistoryWith(
|
||||
_i18.PaymentCode? other,
|
||||
int? maxUnusedAddressGap,
|
||||
int? maxNumberOfIndexesToCheck,
|
||||
) =>
|
||||
_i23.Future<void> restoreHistoryWith({
|
||||
required _i18.PaymentCode? other,
|
||||
required bool? checkSegwitAsWell,
|
||||
required int? maxUnusedAddressGap,
|
||||
required int? maxNumberOfIndexesToCheck,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#restoreHistoryWith,
|
||||
[
|
||||
other,
|
||||
maxUnusedAddressGap,
|
||||
maxNumberOfIndexesToCheck,
|
||||
],
|
||||
[],
|
||||
{
|
||||
#other: other,
|
||||
#checkSegwitAsWell: checkSegwitAsWell,
|
||||
#maxUnusedAddressGap: maxUnusedAddressGap,
|
||||
#maxNumberOfIndexesToCheck: maxNumberOfIndexesToCheck,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> generatePaynymSendAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i27.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? toPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> generatePaynymReceivingAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i27.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? fromPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> getMyNotificationAddress(
|
||||
_i27.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i17.Address> getMyNotificationAddress() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<List<String>> lookupKey(String? paymentCodeString) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -2386,16 +2310,16 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
@ -2754,16 +2678,16 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'dart:async' as _i22;
|
|||
import 'dart:typed_data' as _i29;
|
||||
import 'dart:ui' as _i24;
|
||||
|
||||
import 'package:bip32/bip32.dart' as _i17;
|
||||
import 'package:bip32/bip32.dart' as _i16;
|
||||
import 'package:bip47/bip47.dart' as _i18;
|
||||
import 'package:bitcoindart/bitcoindart.dart' as _i13;
|
||||
import 'package:flutter/foundation.dart' as _i4;
|
||||
|
@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart' as _i12;
|
|||
import 'package:stackwallet/electrumx_rpc/cached_electrumx.dart' as _i10;
|
||||
import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i9;
|
||||
import 'package:stackwallet/models/balance.dart' as _i11;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i16;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
||||
import 'package:stackwallet/models/signing_data.dart' as _i27;
|
||||
import 'package:stackwallet/services/coins/bitcoin/bitcoin_wallet.dart' as _i25;
|
||||
|
@ -192,8 +192,8 @@ class _FakeTuple2_13<T1, T2> extends _i1.SmartFake
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
||||
_FakeAddress_14(
|
||||
class _FakeBIP32_14 extends _i1.SmartFake implements _i16.BIP32 {
|
||||
_FakeBIP32_14(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -202,8 +202,8 @@ class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeBIP32_15 extends _i1.SmartFake implements _i17.BIP32 {
|
||||
_FakeBIP32_15(
|
||||
class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
||||
_FakeAddress_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -766,16 +766,16 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
returnValue: _i21.Coin.bitcoin,
|
||||
) as _i21.Coin);
|
||||
@override
|
||||
_i22.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i22.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i22.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i22.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i22.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i22.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
_i22.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i22.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i22.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i22.Future<List<_i16.Transaction>>);
|
||||
_i22.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i22.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i22.Future<String> get currentReceivingAddress => (super.noSuchMethod(
|
||||
Invocation.getter(#currentReceivingAddress),
|
||||
|
@ -1184,7 +1184,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
required bool? coinControl,
|
||||
required bool? isSendAll,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
super.noSuchMethod(Invocation.method(
|
||||
#coinSelection,
|
||||
|
@ -1201,7 +1201,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
));
|
||||
@override
|
||||
_i22.Future<List<_i27.SigningData>> fetchBuildTxData(
|
||||
List<_i16.UTXO>? utxosToUse) =>
|
||||
List<_i17.UTXO>? utxosToUse) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchBuildTxData,
|
||||
|
@ -1455,10 +1455,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i22.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>> parseTransaction(
|
||||
_i22.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>> parseTransaction(
|
||||
Map<String, dynamic>? txData,
|
||||
dynamic electrumxClient,
|
||||
List<_i16.Address>? myAddresses,
|
||||
List<_i17.Address>? myAddresses,
|
||||
_i21.Coin? coin,
|
||||
int? minConfirms,
|
||||
String? walletId,
|
||||
|
@ -1476,8 +1476,8 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
returnValue:
|
||||
_i22.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>.value(
|
||||
_FakeTuple2_13<_i16.Transaction, _i16.Address>(
|
||||
_i22.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>.value(
|
||||
_FakeTuple2_13<_i17.Transaction, _i17.Address>(
|
||||
this,
|
||||
Invocation.method(
|
||||
#parseTransaction,
|
||||
|
@ -1491,7 +1491,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>);
|
||||
) as _i22.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>);
|
||||
@override
|
||||
void initPaynymWalletInterface({
|
||||
required String? walletId,
|
||||
|
@ -1501,6 +1501,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
required _i12.MainDB? db,
|
||||
required _i9.ElectrumX? electrumXClient,
|
||||
required _i28.SecureStorageInterface? secureStorage,
|
||||
required int? dustLimit,
|
||||
required int? dustLimitP2PKH,
|
||||
required int? minConfirms,
|
||||
required _i22.Future<String?> Function()? getMnemonicString,
|
||||
|
@ -1519,7 +1520,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
})?
|
||||
prepareSend,
|
||||
required _i22.Future<int> Function({required String address})? getTxCount,
|
||||
required _i22.Future<List<_i27.SigningData>> Function(List<_i16.UTXO>)?
|
||||
required _i22.Future<List<_i27.SigningData>> Function(List<_i17.UTXO>)?
|
||||
fetchBuildTxData,
|
||||
required _i22.Future<void> Function()? refresh,
|
||||
required _i22.Future<void> Function()? checkChangeAddressForTransactions,
|
||||
|
@ -1536,6 +1537,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
#db: db,
|
||||
#electrumXClient: electrumXClient,
|
||||
#secureStorage: secureStorage,
|
||||
#dustLimit: dustLimit,
|
||||
#dustLimitP2PKH: dustLimitP2PKH,
|
||||
#minConfirms: minConfirms,
|
||||
#getMnemonicString: getMnemonicString,
|
||||
|
@ -1554,28 +1556,74 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i22.Future<_i16.Address> currentReceivingPaynymAddress(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i22.Future<_i16.BIP32> getBip47BaseNode() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
returnValue: _i22.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i22.Future<_i29.Uint8List> getPrivateKeyForPaynymReceivingAddress({
|
||||
required String? paymentCodeString,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPrivateKeyForPaynymReceivingAddress,
|
||||
[],
|
||||
{
|
||||
#paymentCodeString: paymentCodeString,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i29.Uint8List>.value(_i29.Uint8List(0)),
|
||||
) as _i22.Future<_i29.Uint8List>);
|
||||
@override
|
||||
_i22.Future<_i17.Address> currentReceivingPaynymAddress({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i22.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i16.Address>);
|
||||
) as _i22.Future<_i17.Address>);
|
||||
@override
|
||||
_i22.Future<void> checkCurrentPaynymReceivingAddressForTransactions(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i22.Future<void> checkCurrentPaynymReceivingAddressForTransactions({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#checkCurrentPaynymReceivingAddressForTransactions,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<void>.value(),
|
||||
returnValueForMissingStub: _i22.Future<void>.value(),
|
||||
|
@ -1591,81 +1639,33 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
returnValueForMissingStub: _i22.Future<void>.value(),
|
||||
) as _i22.Future<void>);
|
||||
@override
|
||||
_i22.Future<_i17.BIP32> deriveNotificationBip32Node({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
_i22.Future<_i16.BIP32> deriveNotificationBip32Node() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
returnValue: _i22.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i17.BIP32>);
|
||||
) as _i22.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i22.Future<_i17.BIP32> deriveReceivingPrivateKeyNode({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i22.Future<_i18.PaymentCode> getPaymentCode(
|
||||
_i26.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
_i22.Future<_i18.PaymentCode> getPaymentCode({required bool? isSegwit}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
returnValue: _i22.Future<_i18.PaymentCode>.value(_FakePaymentCode_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i18.PaymentCode>);
|
||||
|
@ -1690,6 +1690,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
@override
|
||||
_i22.Future<Map<String, dynamic>> preparePaymentCodeSend({
|
||||
required _i18.PaymentCode? paymentCode,
|
||||
required bool? isSegwit,
|
||||
required _i14.Amount? amount,
|
||||
Map<String, dynamic>? args,
|
||||
}) =>
|
||||
|
@ -1699,6 +1700,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#paymentCode: paymentCode,
|
||||
#isSegwit: isSegwit,
|
||||
#amount: amount,
|
||||
#args: args,
|
||||
},
|
||||
|
@ -1707,9 +1709,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
_i22.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i22.Future<Map<String, dynamic>>);
|
||||
@override
|
||||
_i22.Future<_i16.Address> nextUnusedSendAddressFrom({
|
||||
_i22.Future<_i17.Address> nextUnusedSendAddressFrom({
|
||||
required _i18.PaymentCode? pCode,
|
||||
required _i17.BIP32? privateKeyNode,
|
||||
required bool? isSegwit,
|
||||
required _i16.BIP32? privateKeyNode,
|
||||
int? startIndex = 0,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -1718,29 +1721,31 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i22.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#nextUnusedSendAddressFrom,
|
||||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i16.Address>);
|
||||
) as _i22.Future<_i17.Address>);
|
||||
@override
|
||||
_i22.Future<Map<String, dynamic>> prepareNotificationTx({
|
||||
required int? selectedTxFeeRate,
|
||||
required String? targetPaymentCodeString,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
@ -1777,34 +1782,24 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
returnValue: _i22.Future<bool>.value(false),
|
||||
) as _i22.Future<bool>);
|
||||
@override
|
||||
_i22.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i22.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransaction,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i22.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i22.Future<_i18.PaymentCode?>);
|
||||
@override
|
||||
_i22.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i22.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransactionBad,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i22.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i22.Future<_i18.PaymentCode?>);
|
||||
|
@ -1849,111 +1844,40 @@ class MockBitcoinWallet extends _i1.Mock implements _i25.BitcoinWallet {
|
|||
returnValueForMissingStub: _i22.Future<void>.value(),
|
||||
) as _i22.Future<void>);
|
||||
@override
|
||||
_i22.Future<void> restoreHistoryWith(
|
||||
_i18.PaymentCode? other,
|
||||
int? maxUnusedAddressGap,
|
||||
int? maxNumberOfIndexesToCheck,
|
||||
) =>
|
||||
_i22.Future<void> restoreHistoryWith({
|
||||
required _i18.PaymentCode? other,
|
||||
required bool? checkSegwitAsWell,
|
||||
required int? maxUnusedAddressGap,
|
||||
required int? maxNumberOfIndexesToCheck,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#restoreHistoryWith,
|
||||
[
|
||||
other,
|
||||
maxUnusedAddressGap,
|
||||
maxNumberOfIndexesToCheck,
|
||||
],
|
||||
[],
|
||||
{
|
||||
#other: other,
|
||||
#checkSegwitAsWell: checkSegwitAsWell,
|
||||
#maxUnusedAddressGap: maxUnusedAddressGap,
|
||||
#maxNumberOfIndexesToCheck: maxNumberOfIndexesToCheck,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<void>.value(),
|
||||
returnValueForMissingStub: _i22.Future<void>.value(),
|
||||
) as _i22.Future<void>);
|
||||
@override
|
||||
_i22.Future<_i16.Address> generatePaynymSendAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i26.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? toPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i16.Address>);
|
||||
@override
|
||||
_i22.Future<_i16.Address> generatePaynymReceivingAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i26.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? fromPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i22.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i16.Address>);
|
||||
@override
|
||||
_i22.Future<_i16.Address> getMyNotificationAddress(
|
||||
_i26.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
(super.noSuchMethod(
|
||||
_i22.Future<_i17.Address> getMyNotificationAddress() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
returnValue: _i22.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i22.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i22.Future<_i16.Address>);
|
||||
) as _i22.Future<_i17.Address>);
|
||||
@override
|
||||
_i22.Future<List<String>> lookupKey(String? paymentCodeString) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -2111,16 +2035,16 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i22.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i22.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i22.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i22.Future<List<_i16.Transaction>>);
|
||||
_i22.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i22.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i22.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i22.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i22.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i22.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i22.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i22.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
@ -2479,16 +2403,16 @@ class MockCoinServiceAPI extends _i1.Mock implements _i19.CoinServiceAPI {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i22.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i22.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i22.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i22.Future<List<_i16.Transaction>>);
|
||||
_i22.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i22.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i22.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i22.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i22.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i22.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i22.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i22.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'dart:async' as _i21;
|
|||
import 'dart:typed_data' as _i28;
|
||||
import 'dart:ui' as _i23;
|
||||
|
||||
import 'package:bip32/bip32.dart' as _i17;
|
||||
import 'package:bip32/bip32.dart' as _i16;
|
||||
import 'package:bip47/bip47.dart' as _i18;
|
||||
import 'package:bitcoindart/bitcoindart.dart' as _i13;
|
||||
import 'package:flutter/foundation.dart' as _i4;
|
||||
|
@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart' as _i12;
|
|||
import 'package:stackwallet/electrumx_rpc/cached_electrumx.dart' as _i10;
|
||||
import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i9;
|
||||
import 'package:stackwallet/models/balance.dart' as _i11;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i16;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
||||
import 'package:stackwallet/models/signing_data.dart' as _i26;
|
||||
import 'package:stackwallet/services/coins/bitcoin/bitcoin_wallet.dart' as _i24;
|
||||
|
@ -192,8 +192,8 @@ class _FakeTuple2_13<T1, T2> extends _i1.SmartFake
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
||||
_FakeAddress_14(
|
||||
class _FakeBIP32_14 extends _i1.SmartFake implements _i16.BIP32 {
|
||||
_FakeBIP32_14(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -202,8 +202,8 @@ class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeBIP32_15 extends _i1.SmartFake implements _i17.BIP32 {
|
||||
_FakeBIP32_15(
|
||||
class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
||||
_FakeAddress_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -521,16 +521,16 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
returnValue: _i20.Coin.bitcoin,
|
||||
) as _i20.Coin);
|
||||
@override
|
||||
_i21.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i21.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i21.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i21.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i21.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i21.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
_i21.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i21.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i21.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i21.Future<List<_i16.Transaction>>);
|
||||
_i21.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i21.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i21.Future<String> get currentReceivingAddress => (super.noSuchMethod(
|
||||
Invocation.getter(#currentReceivingAddress),
|
||||
|
@ -939,7 +939,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
required bool? coinControl,
|
||||
required bool? isSendAll,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
super.noSuchMethod(Invocation.method(
|
||||
#coinSelection,
|
||||
|
@ -956,7 +956,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
));
|
||||
@override
|
||||
_i21.Future<List<_i26.SigningData>> fetchBuildTxData(
|
||||
List<_i16.UTXO>? utxosToUse) =>
|
||||
List<_i17.UTXO>? utxosToUse) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchBuildTxData,
|
||||
|
@ -1210,10 +1210,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i21.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>> parseTransaction(
|
||||
_i21.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>> parseTransaction(
|
||||
Map<String, dynamic>? txData,
|
||||
dynamic electrumxClient,
|
||||
List<_i16.Address>? myAddresses,
|
||||
List<_i17.Address>? myAddresses,
|
||||
_i20.Coin? coin,
|
||||
int? minConfirms,
|
||||
String? walletId,
|
||||
|
@ -1231,8 +1231,8 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
returnValue:
|
||||
_i21.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>.value(
|
||||
_FakeTuple2_13<_i16.Transaction, _i16.Address>(
|
||||
_i21.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>.value(
|
||||
_FakeTuple2_13<_i17.Transaction, _i17.Address>(
|
||||
this,
|
||||
Invocation.method(
|
||||
#parseTransaction,
|
||||
|
@ -1246,7 +1246,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>);
|
||||
) as _i21.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>);
|
||||
@override
|
||||
void initPaynymWalletInterface({
|
||||
required String? walletId,
|
||||
|
@ -1256,6 +1256,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
required _i12.MainDB? db,
|
||||
required _i9.ElectrumX? electrumXClient,
|
||||
required _i27.SecureStorageInterface? secureStorage,
|
||||
required int? dustLimit,
|
||||
required int? dustLimitP2PKH,
|
||||
required int? minConfirms,
|
||||
required _i21.Future<String?> Function()? getMnemonicString,
|
||||
|
@ -1274,7 +1275,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
})?
|
||||
prepareSend,
|
||||
required _i21.Future<int> Function({required String address})? getTxCount,
|
||||
required _i21.Future<List<_i26.SigningData>> Function(List<_i16.UTXO>)?
|
||||
required _i21.Future<List<_i26.SigningData>> Function(List<_i17.UTXO>)?
|
||||
fetchBuildTxData,
|
||||
required _i21.Future<void> Function()? refresh,
|
||||
required _i21.Future<void> Function()? checkChangeAddressForTransactions,
|
||||
|
@ -1291,6 +1292,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
#db: db,
|
||||
#electrumXClient: electrumXClient,
|
||||
#secureStorage: secureStorage,
|
||||
#dustLimit: dustLimit,
|
||||
#dustLimitP2PKH: dustLimitP2PKH,
|
||||
#minConfirms: minConfirms,
|
||||
#getMnemonicString: getMnemonicString,
|
||||
|
@ -1309,28 +1311,74 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i21.Future<_i16.Address> currentReceivingPaynymAddress(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i21.Future<_i16.BIP32> getBip47BaseNode() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
returnValue: _i21.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i21.Future<_i28.Uint8List> getPrivateKeyForPaynymReceivingAddress({
|
||||
required String? paymentCodeString,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPrivateKeyForPaynymReceivingAddress,
|
||||
[],
|
||||
{
|
||||
#paymentCodeString: paymentCodeString,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i28.Uint8List>.value(_i28.Uint8List(0)),
|
||||
) as _i21.Future<_i28.Uint8List>);
|
||||
@override
|
||||
_i21.Future<_i17.Address> currentReceivingPaynymAddress({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i21.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i16.Address>);
|
||||
) as _i21.Future<_i17.Address>);
|
||||
@override
|
||||
_i21.Future<void> checkCurrentPaynymReceivingAddressForTransactions(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i21.Future<void> checkCurrentPaynymReceivingAddressForTransactions({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#checkCurrentPaynymReceivingAddressForTransactions,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<void>.value(),
|
||||
returnValueForMissingStub: _i21.Future<void>.value(),
|
||||
|
@ -1346,81 +1394,33 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
returnValueForMissingStub: _i21.Future<void>.value(),
|
||||
) as _i21.Future<void>);
|
||||
@override
|
||||
_i21.Future<_i17.BIP32> deriveNotificationBip32Node({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
_i21.Future<_i16.BIP32> deriveNotificationBip32Node() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
returnValue: _i21.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i17.BIP32>);
|
||||
) as _i21.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i21.Future<_i17.BIP32> deriveReceivingPrivateKeyNode({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i21.Future<_i18.PaymentCode> getPaymentCode(
|
||||
_i25.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
_i21.Future<_i18.PaymentCode> getPaymentCode({required bool? isSegwit}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
returnValue: _i21.Future<_i18.PaymentCode>.value(_FakePaymentCode_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i18.PaymentCode>);
|
||||
|
@ -1445,6 +1445,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
@override
|
||||
_i21.Future<Map<String, dynamic>> preparePaymentCodeSend({
|
||||
required _i18.PaymentCode? paymentCode,
|
||||
required bool? isSegwit,
|
||||
required _i14.Amount? amount,
|
||||
Map<String, dynamic>? args,
|
||||
}) =>
|
||||
|
@ -1454,6 +1455,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#paymentCode: paymentCode,
|
||||
#isSegwit: isSegwit,
|
||||
#amount: amount,
|
||||
#args: args,
|
||||
},
|
||||
|
@ -1462,9 +1464,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
_i21.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i21.Future<Map<String, dynamic>>);
|
||||
@override
|
||||
_i21.Future<_i16.Address> nextUnusedSendAddressFrom({
|
||||
_i21.Future<_i17.Address> nextUnusedSendAddressFrom({
|
||||
required _i18.PaymentCode? pCode,
|
||||
required _i17.BIP32? privateKeyNode,
|
||||
required bool? isSegwit,
|
||||
required _i16.BIP32? privateKeyNode,
|
||||
int? startIndex = 0,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -1473,29 +1476,31 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i21.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#nextUnusedSendAddressFrom,
|
||||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i16.Address>);
|
||||
) as _i21.Future<_i17.Address>);
|
||||
@override
|
||||
_i21.Future<Map<String, dynamic>> prepareNotificationTx({
|
||||
required int? selectedTxFeeRate,
|
||||
required String? targetPaymentCodeString,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
@ -1532,34 +1537,24 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
returnValue: _i21.Future<bool>.value(false),
|
||||
) as _i21.Future<bool>);
|
||||
@override
|
||||
_i21.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i21.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransaction,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i21.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i21.Future<_i18.PaymentCode?>);
|
||||
@override
|
||||
_i21.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i21.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransactionBad,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i21.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i21.Future<_i18.PaymentCode?>);
|
||||
|
@ -1604,111 +1599,40 @@ class MockBitcoinWallet extends _i1.Mock implements _i24.BitcoinWallet {
|
|||
returnValueForMissingStub: _i21.Future<void>.value(),
|
||||
) as _i21.Future<void>);
|
||||
@override
|
||||
_i21.Future<void> restoreHistoryWith(
|
||||
_i18.PaymentCode? other,
|
||||
int? maxUnusedAddressGap,
|
||||
int? maxNumberOfIndexesToCheck,
|
||||
) =>
|
||||
_i21.Future<void> restoreHistoryWith({
|
||||
required _i18.PaymentCode? other,
|
||||
required bool? checkSegwitAsWell,
|
||||
required int? maxUnusedAddressGap,
|
||||
required int? maxNumberOfIndexesToCheck,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#restoreHistoryWith,
|
||||
[
|
||||
other,
|
||||
maxUnusedAddressGap,
|
||||
maxNumberOfIndexesToCheck,
|
||||
],
|
||||
[],
|
||||
{
|
||||
#other: other,
|
||||
#checkSegwitAsWell: checkSegwitAsWell,
|
||||
#maxUnusedAddressGap: maxUnusedAddressGap,
|
||||
#maxNumberOfIndexesToCheck: maxNumberOfIndexesToCheck,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<void>.value(),
|
||||
returnValueForMissingStub: _i21.Future<void>.value(),
|
||||
) as _i21.Future<void>);
|
||||
@override
|
||||
_i21.Future<_i16.Address> generatePaynymSendAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i25.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? toPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i16.Address>);
|
||||
@override
|
||||
_i21.Future<_i16.Address> generatePaynymReceivingAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i25.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? fromPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i21.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i16.Address>);
|
||||
@override
|
||||
_i21.Future<_i16.Address> getMyNotificationAddress(
|
||||
_i25.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
(super.noSuchMethod(
|
||||
_i21.Future<_i17.Address> getMyNotificationAddress() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
returnValue: _i21.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i21.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i21.Future<_i16.Address>);
|
||||
) as _i21.Future<_i17.Address>);
|
||||
@override
|
||||
_i21.Future<List<String>> lookupKey(String? paymentCodeString) =>
|
||||
(super.noSuchMethod(
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'dart:async' as _i23;
|
|||
import 'dart:typed_data' as _i29;
|
||||
import 'dart:ui' as _i25;
|
||||
|
||||
import 'package:bip32/bip32.dart' as _i17;
|
||||
import 'package:bip32/bip32.dart' as _i16;
|
||||
import 'package:bip47/bip47.dart' as _i18;
|
||||
import 'package:bitcoindart/bitcoindart.dart' as _i13;
|
||||
import 'package:flutter/foundation.dart' as _i4;
|
||||
|
@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart' as _i12;
|
|||
import 'package:stackwallet/electrumx_rpc/cached_electrumx.dart' as _i10;
|
||||
import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i9;
|
||||
import 'package:stackwallet/models/balance.dart' as _i11;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i16;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||
import 'package:stackwallet/models/node_model.dart' as _i30;
|
||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
||||
import 'package:stackwallet/models/signing_data.dart' as _i28;
|
||||
|
@ -193,8 +193,8 @@ class _FakeTuple2_13<T1, T2> extends _i1.SmartFake
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
||||
_FakeAddress_14(
|
||||
class _FakeBIP32_14 extends _i1.SmartFake implements _i16.BIP32 {
|
||||
_FakeBIP32_14(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -203,8 +203,8 @@ class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeBIP32_15 extends _i1.SmartFake implements _i17.BIP32 {
|
||||
_FakeBIP32_15(
|
||||
class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
||||
_FakeAddress_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -778,16 +778,16 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValue: _i22.Coin.bitcoin,
|
||||
) as _i22.Coin);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<String> get currentReceivingAddress => (super.noSuchMethod(
|
||||
Invocation.getter(#currentReceivingAddress),
|
||||
|
@ -1196,7 +1196,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
required bool? coinControl,
|
||||
required bool? isSendAll,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
super.noSuchMethod(Invocation.method(
|
||||
#coinSelection,
|
||||
|
@ -1213,7 +1213,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
));
|
||||
@override
|
||||
_i23.Future<List<_i28.SigningData>> fetchBuildTxData(
|
||||
List<_i16.UTXO>? utxosToUse) =>
|
||||
List<_i17.UTXO>? utxosToUse) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchBuildTxData,
|
||||
|
@ -1467,10 +1467,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>> parseTransaction(
|
||||
_i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>> parseTransaction(
|
||||
Map<String, dynamic>? txData,
|
||||
dynamic electrumxClient,
|
||||
List<_i16.Address>? myAddresses,
|
||||
List<_i17.Address>? myAddresses,
|
||||
_i22.Coin? coin,
|
||||
int? minConfirms,
|
||||
String? walletId,
|
||||
|
@ -1488,8 +1488,8 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
returnValue:
|
||||
_i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>.value(
|
||||
_FakeTuple2_13<_i16.Transaction, _i16.Address>(
|
||||
_i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>.value(
|
||||
_FakeTuple2_13<_i17.Transaction, _i17.Address>(
|
||||
this,
|
||||
Invocation.method(
|
||||
#parseTransaction,
|
||||
|
@ -1503,7 +1503,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>);
|
||||
) as _i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>);
|
||||
@override
|
||||
void initPaynymWalletInterface({
|
||||
required String? walletId,
|
||||
|
@ -1513,6 +1513,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
required _i12.MainDB? db,
|
||||
required _i9.ElectrumX? electrumXClient,
|
||||
required _i19.SecureStorageInterface? secureStorage,
|
||||
required int? dustLimit,
|
||||
required int? dustLimitP2PKH,
|
||||
required int? minConfirms,
|
||||
required _i23.Future<String?> Function()? getMnemonicString,
|
||||
|
@ -1531,7 +1532,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
})?
|
||||
prepareSend,
|
||||
required _i23.Future<int> Function({required String address})? getTxCount,
|
||||
required _i23.Future<List<_i28.SigningData>> Function(List<_i16.UTXO>)?
|
||||
required _i23.Future<List<_i28.SigningData>> Function(List<_i17.UTXO>)?
|
||||
fetchBuildTxData,
|
||||
required _i23.Future<void> Function()? refresh,
|
||||
required _i23.Future<void> Function()? checkChangeAddressForTransactions,
|
||||
|
@ -1548,6 +1549,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
#db: db,
|
||||
#electrumXClient: electrumXClient,
|
||||
#secureStorage: secureStorage,
|
||||
#dustLimit: dustLimit,
|
||||
#dustLimitP2PKH: dustLimitP2PKH,
|
||||
#minConfirms: minConfirms,
|
||||
#getMnemonicString: getMnemonicString,
|
||||
|
@ -1566,28 +1568,74 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i16.Address> currentReceivingPaynymAddress(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i23.Future<_i16.BIP32> getBip47BaseNode() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i29.Uint8List> getPrivateKeyForPaynymReceivingAddress({
|
||||
required String? paymentCodeString,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPrivateKeyForPaynymReceivingAddress,
|
||||
[],
|
||||
{
|
||||
#paymentCodeString: paymentCodeString,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i29.Uint8List>.value(_i29.Uint8List(0)),
|
||||
) as _i23.Future<_i29.Uint8List>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> currentReceivingPaynymAddress({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#checkCurrentPaynymReceivingAddressForTransactions,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
|
@ -1603,81 +1651,33 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i17.BIP32> deriveNotificationBip32Node({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i16.BIP32> deriveNotificationBip32Node() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
returnValue: _i23.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
) as _i23.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i17.BIP32> deriveReceivingPrivateKeyNode({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode> getPaymentCode(
|
||||
_i27.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
_i23.Future<_i18.PaymentCode> getPaymentCode({required bool? isSegwit}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode>.value(_FakePaymentCode_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i18.PaymentCode>);
|
||||
|
@ -1702,6 +1702,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
@override
|
||||
_i23.Future<Map<String, dynamic>> preparePaymentCodeSend({
|
||||
required _i18.PaymentCode? paymentCode,
|
||||
required bool? isSegwit,
|
||||
required _i14.Amount? amount,
|
||||
Map<String, dynamic>? args,
|
||||
}) =>
|
||||
|
@ -1711,6 +1712,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#paymentCode: paymentCode,
|
||||
#isSegwit: isSegwit,
|
||||
#amount: amount,
|
||||
#args: args,
|
||||
},
|
||||
|
@ -1719,9 +1721,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
_i23.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i23.Future<Map<String, dynamic>>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> nextUnusedSendAddressFrom({
|
||||
_i23.Future<_i17.Address> nextUnusedSendAddressFrom({
|
||||
required _i18.PaymentCode? pCode,
|
||||
required _i17.BIP32? privateKeyNode,
|
||||
required bool? isSegwit,
|
||||
required _i16.BIP32? privateKeyNode,
|
||||
int? startIndex = 0,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -1730,29 +1733,31 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#nextUnusedSendAddressFrom,
|
||||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<Map<String, dynamic>> prepareNotificationTx({
|
||||
required int? selectedTxFeeRate,
|
||||
required String? targetPaymentCodeString,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
@ -1789,34 +1794,24 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValue: _i23.Future<bool>.value(false),
|
||||
) as _i23.Future<bool>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransaction,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i18.PaymentCode?>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransactionBad,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i18.PaymentCode?>);
|
||||
|
@ -1861,111 +1856,40 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<void> restoreHistoryWith(
|
||||
_i18.PaymentCode? other,
|
||||
int? maxUnusedAddressGap,
|
||||
int? maxNumberOfIndexesToCheck,
|
||||
) =>
|
||||
_i23.Future<void> restoreHistoryWith({
|
||||
required _i18.PaymentCode? other,
|
||||
required bool? checkSegwitAsWell,
|
||||
required int? maxUnusedAddressGap,
|
||||
required int? maxNumberOfIndexesToCheck,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#restoreHistoryWith,
|
||||
[
|
||||
other,
|
||||
maxUnusedAddressGap,
|
||||
maxNumberOfIndexesToCheck,
|
||||
],
|
||||
[],
|
||||
{
|
||||
#other: other,
|
||||
#checkSegwitAsWell: checkSegwitAsWell,
|
||||
#maxUnusedAddressGap: maxUnusedAddressGap,
|
||||
#maxNumberOfIndexesToCheck: maxNumberOfIndexesToCheck,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> generatePaynymSendAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i27.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? toPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> generatePaynymReceivingAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i27.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? fromPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> getMyNotificationAddress(
|
||||
_i27.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i17.Address> getMyNotificationAddress() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<List<String>> lookupKey(String? paymentCodeString) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -2323,16 +2247,16 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
@ -2691,16 +2615,16 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'dart:async' as _i23;
|
|||
import 'dart:typed_data' as _i29;
|
||||
import 'dart:ui' as _i25;
|
||||
|
||||
import 'package:bip32/bip32.dart' as _i17;
|
||||
import 'package:bip32/bip32.dart' as _i16;
|
||||
import 'package:bip47/bip47.dart' as _i18;
|
||||
import 'package:bitcoindart/bitcoindart.dart' as _i13;
|
||||
import 'package:flutter/foundation.dart' as _i4;
|
||||
|
@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart' as _i12;
|
|||
import 'package:stackwallet/electrumx_rpc/cached_electrumx.dart' as _i10;
|
||||
import 'package:stackwallet/electrumx_rpc/electrumx.dart' as _i9;
|
||||
import 'package:stackwallet/models/balance.dart' as _i11;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i16;
|
||||
import 'package:stackwallet/models/isar/models/isar_models.dart' as _i17;
|
||||
import 'package:stackwallet/models/node_model.dart' as _i30;
|
||||
import 'package:stackwallet/models/paymint/fee_object_model.dart' as _i8;
|
||||
import 'package:stackwallet/models/signing_data.dart' as _i28;
|
||||
|
@ -193,8 +193,8 @@ class _FakeTuple2_13<T1, T2> extends _i1.SmartFake
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
||||
_FakeAddress_14(
|
||||
class _FakeBIP32_14 extends _i1.SmartFake implements _i16.BIP32 {
|
||||
_FakeBIP32_14(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -203,8 +203,8 @@ class _FakeAddress_14 extends _i1.SmartFake implements _i16.Address {
|
|||
);
|
||||
}
|
||||
|
||||
class _FakeBIP32_15 extends _i1.SmartFake implements _i17.BIP32 {
|
||||
_FakeBIP32_15(
|
||||
class _FakeAddress_15 extends _i1.SmartFake implements _i17.Address {
|
||||
_FakeAddress_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
|
@ -778,16 +778,16 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValue: _i22.Coin.bitcoin,
|
||||
) as _i22.Coin);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<String> get currentReceivingAddress => (super.noSuchMethod(
|
||||
Invocation.getter(#currentReceivingAddress),
|
||||
|
@ -1196,7 +1196,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
required bool? coinControl,
|
||||
required bool? isSendAll,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
super.noSuchMethod(Invocation.method(
|
||||
#coinSelection,
|
||||
|
@ -1213,7 +1213,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
));
|
||||
@override
|
||||
_i23.Future<List<_i28.SigningData>> fetchBuildTxData(
|
||||
List<_i16.UTXO>? utxosToUse) =>
|
||||
List<_i17.UTXO>? utxosToUse) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchBuildTxData,
|
||||
|
@ -1467,10 +1467,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>> parseTransaction(
|
||||
_i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>> parseTransaction(
|
||||
Map<String, dynamic>? txData,
|
||||
dynamic electrumxClient,
|
||||
List<_i16.Address>? myAddresses,
|
||||
List<_i17.Address>? myAddresses,
|
||||
_i22.Coin? coin,
|
||||
int? minConfirms,
|
||||
String? walletId,
|
||||
|
@ -1488,8 +1488,8 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
returnValue:
|
||||
_i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>.value(
|
||||
_FakeTuple2_13<_i16.Transaction, _i16.Address>(
|
||||
_i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>.value(
|
||||
_FakeTuple2_13<_i17.Transaction, _i17.Address>(
|
||||
this,
|
||||
Invocation.method(
|
||||
#parseTransaction,
|
||||
|
@ -1503,7 +1503,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i15.Tuple2<_i16.Transaction, _i16.Address>>);
|
||||
) as _i23.Future<_i15.Tuple2<_i17.Transaction, _i17.Address>>);
|
||||
@override
|
||||
void initPaynymWalletInterface({
|
||||
required String? walletId,
|
||||
|
@ -1513,6 +1513,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
required _i12.MainDB? db,
|
||||
required _i9.ElectrumX? electrumXClient,
|
||||
required _i19.SecureStorageInterface? secureStorage,
|
||||
required int? dustLimit,
|
||||
required int? dustLimitP2PKH,
|
||||
required int? minConfirms,
|
||||
required _i23.Future<String?> Function()? getMnemonicString,
|
||||
|
@ -1531,7 +1532,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
})?
|
||||
prepareSend,
|
||||
required _i23.Future<int> Function({required String address})? getTxCount,
|
||||
required _i23.Future<List<_i28.SigningData>> Function(List<_i16.UTXO>)?
|
||||
required _i23.Future<List<_i28.SigningData>> Function(List<_i17.UTXO>)?
|
||||
fetchBuildTxData,
|
||||
required _i23.Future<void> Function()? refresh,
|
||||
required _i23.Future<void> Function()? checkChangeAddressForTransactions,
|
||||
|
@ -1548,6 +1549,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
#db: db,
|
||||
#electrumXClient: electrumXClient,
|
||||
#secureStorage: secureStorage,
|
||||
#dustLimit: dustLimit,
|
||||
#dustLimitP2PKH: dustLimitP2PKH,
|
||||
#minConfirms: minConfirms,
|
||||
#getMnemonicString: getMnemonicString,
|
||||
|
@ -1566,28 +1568,74 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: null,
|
||||
);
|
||||
@override
|
||||
_i23.Future<_i16.Address> currentReceivingPaynymAddress(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i23.Future<_i16.BIP32> getBip47BaseNode() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getBip47BaseNode,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i29.Uint8List> getPrivateKeyForPaynymReceivingAddress({
|
||||
required String? paymentCodeString,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPrivateKeyForPaynymReceivingAddress,
|
||||
[],
|
||||
{
|
||||
#paymentCodeString: paymentCodeString,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i29.Uint8List>.value(_i29.Uint8List(0)),
|
||||
) as _i23.Future<_i29.Uint8List>);
|
||||
@override
|
||||
_i23.Future<_i17.Address> currentReceivingPaynymAddress({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#currentReceivingPaynymAddress,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions(
|
||||
_i18.PaymentCode? sender) =>
|
||||
_i23.Future<void> checkCurrentPaynymReceivingAddressForTransactions({
|
||||
required _i18.PaymentCode? sender,
|
||||
required bool? isSegwit,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#checkCurrentPaynymReceivingAddressForTransactions,
|
||||
[sender],
|
||||
[],
|
||||
{
|
||||
#sender: sender,
|
||||
#isSegwit: isSegwit,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
|
@ -1603,81 +1651,33 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i17.BIP32> deriveNotificationBip32Node({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i16.BIP32> deriveNotificationBip32Node() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
returnValue: _i23.Future<_i16.BIP32>.value(_FakeBIP32_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveNotificationBip32Node,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
) as _i23.Future<_i16.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i17.BIP32> deriveReceivingPrivateKeyNode({
|
||||
required String? mnemonic,
|
||||
required String? mnemonicPassphrase,
|
||||
required int? index,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i17.BIP32>.value(_FakeBIP32_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#deriveReceivingPrivateKeyNode,
|
||||
[],
|
||||
{
|
||||
#mnemonic: mnemonic,
|
||||
#mnemonicPassphrase: mnemonicPassphrase,
|
||||
#index: index,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i17.BIP32>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode> getPaymentCode(
|
||||
_i27.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
_i23.Future<_i18.PaymentCode> getPaymentCode({required bool? isSegwit}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode>.value(_FakePaymentCode_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getPaymentCode,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
{#isSegwit: isSegwit},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i18.PaymentCode>);
|
||||
|
@ -1702,6 +1702,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
@override
|
||||
_i23.Future<Map<String, dynamic>> preparePaymentCodeSend({
|
||||
required _i18.PaymentCode? paymentCode,
|
||||
required bool? isSegwit,
|
||||
required _i14.Amount? amount,
|
||||
Map<String, dynamic>? args,
|
||||
}) =>
|
||||
|
@ -1711,6 +1712,7 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#paymentCode: paymentCode,
|
||||
#isSegwit: isSegwit,
|
||||
#amount: amount,
|
||||
#args: args,
|
||||
},
|
||||
|
@ -1719,9 +1721,10 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
_i23.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i23.Future<Map<String, dynamic>>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> nextUnusedSendAddressFrom({
|
||||
_i23.Future<_i17.Address> nextUnusedSendAddressFrom({
|
||||
required _i18.PaymentCode? pCode,
|
||||
required _i17.BIP32? privateKeyNode,
|
||||
required bool? isSegwit,
|
||||
required _i16.BIP32? privateKeyNode,
|
||||
int? startIndex = 0,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -1730,29 +1733,31 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#nextUnusedSendAddressFrom,
|
||||
[],
|
||||
{
|
||||
#pCode: pCode,
|
||||
#isSegwit: isSegwit,
|
||||
#privateKeyNode: privateKeyNode,
|
||||
#startIndex: startIndex,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<Map<String, dynamic>> prepareNotificationTx({
|
||||
required int? selectedTxFeeRate,
|
||||
required String? targetPaymentCodeString,
|
||||
int? additionalOutputs = 0,
|
||||
List<_i16.UTXO>? utxos,
|
||||
List<_i17.UTXO>? utxos,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
@ -1789,34 +1794,24 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValue: _i23.Future<bool>.value(false),
|
||||
) as _i23.Future<bool>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransaction(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransaction,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i18.PaymentCode?>);
|
||||
@override
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad({
|
||||
required _i16.Transaction? transaction,
|
||||
required _i16.Address? myNotificationAddress,
|
||||
}) =>
|
||||
_i23.Future<_i18.PaymentCode?> unBlindedPaymentCodeFromTransactionBad(
|
||||
{required _i17.Transaction? transaction}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#unBlindedPaymentCodeFromTransactionBad,
|
||||
[],
|
||||
{
|
||||
#transaction: transaction,
|
||||
#myNotificationAddress: myNotificationAddress,
|
||||
},
|
||||
{#transaction: transaction},
|
||||
),
|
||||
returnValue: _i23.Future<_i18.PaymentCode?>.value(),
|
||||
) as _i23.Future<_i18.PaymentCode?>);
|
||||
|
@ -1861,111 +1856,40 @@ class MockBitcoinWallet extends _i1.Mock implements _i26.BitcoinWallet {
|
|||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<void> restoreHistoryWith(
|
||||
_i18.PaymentCode? other,
|
||||
int? maxUnusedAddressGap,
|
||||
int? maxNumberOfIndexesToCheck,
|
||||
) =>
|
||||
_i23.Future<void> restoreHistoryWith({
|
||||
required _i18.PaymentCode? other,
|
||||
required bool? checkSegwitAsWell,
|
||||
required int? maxUnusedAddressGap,
|
||||
required int? maxNumberOfIndexesToCheck,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#restoreHistoryWith,
|
||||
[
|
||||
other,
|
||||
maxUnusedAddressGap,
|
||||
maxNumberOfIndexesToCheck,
|
||||
],
|
||||
[],
|
||||
{
|
||||
#other: other,
|
||||
#checkSegwitAsWell: checkSegwitAsWell,
|
||||
#maxUnusedAddressGap: maxUnusedAddressGap,
|
||||
#maxNumberOfIndexesToCheck: maxNumberOfIndexesToCheck,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<void>.value(),
|
||||
returnValueForMissingStub: _i23.Future<void>.value(),
|
||||
) as _i23.Future<void>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> generatePaynymSendAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i27.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? toPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymSendAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#toPaymentCode: toPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> generatePaynymReceivingAddressFromKeyPair({
|
||||
required _i13.ECPair? pair,
|
||||
required int? derivationIndex,
|
||||
required _i27.DerivePathType? derivePathType,
|
||||
required _i18.PaymentCode? fromPaymentCode,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
this,
|
||||
Invocation.method(
|
||||
#generatePaynymReceivingAddressFromKeyPair,
|
||||
[],
|
||||
{
|
||||
#pair: pair,
|
||||
#derivationIndex: derivationIndex,
|
||||
#derivePathType: derivePathType,
|
||||
#fromPaymentCode: fromPaymentCode,
|
||||
},
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
@override
|
||||
_i23.Future<_i16.Address> getMyNotificationAddress(
|
||||
_i27.DerivePathType? derivePathType, [
|
||||
_i17.BIP32? bip32Root,
|
||||
]) =>
|
||||
(super.noSuchMethod(
|
||||
_i23.Future<_i17.Address> getMyNotificationAddress() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
returnValue: _i23.Future<_i16.Address>.value(_FakeAddress_14(
|
||||
returnValue: _i23.Future<_i17.Address>.value(_FakeAddress_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getMyNotificationAddress,
|
||||
[
|
||||
derivePathType,
|
||||
bip32Root,
|
||||
],
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i23.Future<_i16.Address>);
|
||||
) as _i23.Future<_i17.Address>);
|
||||
@override
|
||||
_i23.Future<List<String>> lookupKey(String? paymentCodeString) =>
|
||||
(super.noSuchMethod(
|
||||
|
@ -2323,16 +2247,16 @@ class MockManager extends _i1.Mock implements _i6.Manager {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
@ -2691,16 +2615,16 @@ class MockCoinServiceAPI extends _i1.Mock implements _i20.CoinServiceAPI {
|
|||
),
|
||||
) as _i11.Balance);
|
||||
@override
|
||||
_i23.Future<List<_i16.Transaction>> get transactions => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.Transaction>> get transactions => (super.noSuchMethod(
|
||||
Invocation.getter(#transactions),
|
||||
returnValue:
|
||||
_i23.Future<List<_i16.Transaction>>.value(<_i16.Transaction>[]),
|
||||
) as _i23.Future<List<_i16.Transaction>>);
|
||||
_i23.Future<List<_i17.Transaction>>.value(<_i17.Transaction>[]),
|
||||
) as _i23.Future<List<_i17.Transaction>>);
|
||||
@override
|
||||
_i23.Future<List<_i16.UTXO>> get utxos => (super.noSuchMethod(
|
||||
_i23.Future<List<_i17.UTXO>> get utxos => (super.noSuchMethod(
|
||||
Invocation.getter(#utxos),
|
||||
returnValue: _i23.Future<List<_i16.UTXO>>.value(<_i16.UTXO>[]),
|
||||
) as _i23.Future<List<_i16.UTXO>>);
|
||||
returnValue: _i23.Future<List<_i17.UTXO>>.value(<_i17.UTXO>[]),
|
||||
) as _i23.Future<List<_i17.UTXO>>);
|
||||
@override
|
||||
set walletName(String? newName) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
|
|
Loading…
Reference in a new issue