2021-12-24 12:52:08 +00:00
|
|
|
import 'dart:convert';
|
|
|
|
import 'package:cw_bitcoin/bitcoin_amount_format.dart';
|
|
|
|
import 'package:cw_core/balance.dart';
|
|
|
|
|
|
|
|
class ElectrumBalance extends Balance {
|
Cw 453 (#1306)
* feat: rebase btc-addr-types, migrate to bitcoin_base
* feat: allow scanning elect-rs using get_tweaks
* feat: scanning and adding addresses working with getTweaks, add btc SP address type
* chore: pubspec.lock
* chore: pubspec.lock
* fix: scan when switching, fix multiple unspents in same tx
* fix: initial scan
* fix: initial scan
* fix: scanning issues
* fix: sync, storing silent unspents
* chore: deps
* fix: label issues, clear spent utxo
* chore: deps
* fix: build
* fix: missing types
* feat: new electrs API & changes, fixes for last block scanning
* feat: Scan Silent Payments homepage toggle
* chore: build configure
* feat: generic fixes, testnet UI improvements, useSSL on bitcoin nodes
* fix: invalid Object in sendData
* feat: improve addresses page & address book displays
* feat: silent payments labeled addresses disclaimer
* fix: missing i18n
* chore: print
* feat: single block scan, rescan by date working for btc mainnet
* feat: new cake features page replace market page, move sp scan toggle, auto switch node pop up alert
* feat: delete silent addresses
* fix: red dot in non ssl nodes
* fix: inconsistent connection states, fix tx history
* fix: tx & balance displays, cpfp sending
* feat: new rust lib
* chore: node path
* fix: check node based on network
* fix: missing txcount from addresses
* style: padding in feature page cards
* fix: restore not getting all wallet addresses by type
* fix: auto switch node broken
* fix: silent payment txs not being restored
* feat: change scanning to subscription model, sync improvements
* fix: scan re-subscription
* fix: default nodes
* fix: improve scanning by date, fix single block scan
* refactor: common function for input tx selection
* fix: nodes & build
* fix: send all with multiple outs
* refactor: unchanged file
* Update pr_test_build.yml
* chore: upgrade
* chore: merge changes
* refactor: unchanged files [skip ci]
* fix: scan fixes, add date, allow sending while scanning
* feat: sync fixes, sp settings
* feat: fix resyncing
* fix: date from height logic, status disconnected & chain tip get
* fix: params
* feat: electrum migration if using cake electrum
* fix nodes
update versions
* re-enable tron
* update sp_scanner to work on iOS [skip ci]
* fix: wrong socket for old electrum nodes
* Fix unchecked wallet type call
* fix: double balance
* feat: node domain
* fix: menu name
* fix: update tip on set scanning
* fix: connection switching back and forth
* feat: check if node is electrs, and supports sp
* chore: fix build
* minor enhancements
* fixes and enhancements
* solve conflicts with main
* fix: status toggle
* minor enhancement
* Monero.com fixes
* update sp_scanner to include windows and linux
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2024-05-29 14:43:48 +00:00
|
|
|
ElectrumBalance({
|
|
|
|
required this.confirmed,
|
|
|
|
required this.unconfirmed,
|
|
|
|
required this.frozen,
|
2024-09-12 18:36:29 +00:00
|
|
|
this.secondConfirmed,
|
|
|
|
this.secondUnconfirmed,
|
|
|
|
}) : super(
|
|
|
|
confirmed,
|
|
|
|
unconfirmed,
|
|
|
|
secondAvailable: secondConfirmed,
|
|
|
|
secondAdditional: secondUnconfirmed,
|
|
|
|
);
|
2021-12-24 12:52:08 +00:00
|
|
|
|
2022-10-12 17:09:57 +00:00
|
|
|
static ElectrumBalance? fromJSON(String? jsonSource) {
|
2021-12-24 12:52:08 +00:00
|
|
|
if (jsonSource == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
final decoded = json.decode(jsonSource) as Map;
|
|
|
|
|
|
|
|
return ElectrumBalance(
|
2022-10-12 17:09:57 +00:00
|
|
|
confirmed: decoded['confirmed'] as int? ?? 0,
|
2023-04-20 13:46:41 +00:00
|
|
|
unconfirmed: decoded['unconfirmed'] as int? ?? 0,
|
|
|
|
frozen: decoded['frozen'] as int? ?? 0);
|
2021-12-24 12:52:08 +00:00
|
|
|
}
|
|
|
|
|
Cw 453 (#1306)
* feat: rebase btc-addr-types, migrate to bitcoin_base
* feat: allow scanning elect-rs using get_tweaks
* feat: scanning and adding addresses working with getTweaks, add btc SP address type
* chore: pubspec.lock
* chore: pubspec.lock
* fix: scan when switching, fix multiple unspents in same tx
* fix: initial scan
* fix: initial scan
* fix: scanning issues
* fix: sync, storing silent unspents
* chore: deps
* fix: label issues, clear spent utxo
* chore: deps
* fix: build
* fix: missing types
* feat: new electrs API & changes, fixes for last block scanning
* feat: Scan Silent Payments homepage toggle
* chore: build configure
* feat: generic fixes, testnet UI improvements, useSSL on bitcoin nodes
* fix: invalid Object in sendData
* feat: improve addresses page & address book displays
* feat: silent payments labeled addresses disclaimer
* fix: missing i18n
* chore: print
* feat: single block scan, rescan by date working for btc mainnet
* feat: new cake features page replace market page, move sp scan toggle, auto switch node pop up alert
* feat: delete silent addresses
* fix: red dot in non ssl nodes
* fix: inconsistent connection states, fix tx history
* fix: tx & balance displays, cpfp sending
* feat: new rust lib
* chore: node path
* fix: check node based on network
* fix: missing txcount from addresses
* style: padding in feature page cards
* fix: restore not getting all wallet addresses by type
* fix: auto switch node broken
* fix: silent payment txs not being restored
* feat: change scanning to subscription model, sync improvements
* fix: scan re-subscription
* fix: default nodes
* fix: improve scanning by date, fix single block scan
* refactor: common function for input tx selection
* fix: nodes & build
* fix: send all with multiple outs
* refactor: unchanged file
* Update pr_test_build.yml
* chore: upgrade
* chore: merge changes
* refactor: unchanged files [skip ci]
* fix: scan fixes, add date, allow sending while scanning
* feat: sync fixes, sp settings
* feat: fix resyncing
* fix: date from height logic, status disconnected & chain tip get
* fix: params
* feat: electrum migration if using cake electrum
* fix nodes
update versions
* re-enable tron
* update sp_scanner to work on iOS [skip ci]
* fix: wrong socket for old electrum nodes
* Fix unchecked wallet type call
* fix: double balance
* feat: node domain
* fix: menu name
* fix: update tip on set scanning
* fix: connection switching back and forth
* feat: check if node is electrs, and supports sp
* chore: fix build
* minor enhancements
* fixes and enhancements
* solve conflicts with main
* fix: status toggle
* minor enhancement
* Monero.com fixes
* update sp_scanner to include windows and linux
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2024-05-29 14:43:48 +00:00
|
|
|
int confirmed;
|
|
|
|
int unconfirmed;
|
2023-04-20 13:46:41 +00:00
|
|
|
final int frozen;
|
2024-09-12 18:36:29 +00:00
|
|
|
int? secondConfirmed;
|
|
|
|
int? secondUnconfirmed;
|
2021-12-24 12:52:08 +00:00
|
|
|
|
|
|
|
@override
|
2024-01-08 14:03:46 +00:00
|
|
|
String get formattedAvailableBalance => bitcoinAmountToString(amount: confirmed - frozen);
|
2021-12-24 12:52:08 +00:00
|
|
|
|
|
|
|
@override
|
2024-01-08 14:03:46 +00:00
|
|
|
String get formattedAdditionalBalance => bitcoinAmountToString(amount: unconfirmed);
|
2023-04-20 13:46:41 +00:00
|
|
|
|
2023-12-13 14:43:26 +00:00
|
|
|
@override
|
|
|
|
String get formattedUnAvailableBalance {
|
2023-04-20 13:46:41 +00:00
|
|
|
final frozenFormatted = bitcoinAmountToString(amount: frozen);
|
|
|
|
return frozenFormatted == '0.0' ? '' : frozenFormatted;
|
|
|
|
}
|
2021-12-24 12:52:08 +00:00
|
|
|
|
2024-09-12 18:36:29 +00:00
|
|
|
@override
|
|
|
|
String get formattedSecondAvailableBalance => bitcoinAmountToString(amount: secondConfirmed ?? 0);
|
|
|
|
|
|
|
|
@override
|
|
|
|
String get formattedSecondAdditionalBalance => bitcoinAmountToString(amount: secondUnconfirmed ?? 0);
|
|
|
|
|
|
|
|
String toJSON() => json.encode({
|
|
|
|
'confirmed': confirmed,
|
|
|
|
'unconfirmed': unconfirmed,
|
|
|
|
'frozen': frozen,
|
|
|
|
'secondConfirmed': secondConfirmed,
|
|
|
|
'secondUnconfirmed': secondUnconfirmed
|
|
|
|
});
|
2021-12-24 12:52:08 +00:00
|
|
|
}
|