mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
* Feat: Implement Solana wallet using on_chain * v4.23.0 release candidate (#1974) * v4.23.0 release candidate * - Fix restoring zano from QR - Fix Zano confirmations count - Fix birdpay - Fix balance display * Fix Zano assets showing amount before they are added * - handle fetching token data while the API is busy - potential fix for duplicate transactions * fix receive confirmations, maybe * revert onChangeWallet cleanup * Fix confirmations not updating * improve zano wallet opening, fix CI commands and messages on slack (#1979) Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * Cache wallet when creating/restoring as well * - hardcode Trocador Maximum limit for Zano temporarily - Configure Cake Zano node to use SSL * reformatting [skip ci] * revert to non-ssl * update build numbers [skip ci] * disable zano for desktop [skip ci] --------- Co-authored-by: cyan <cyjan@mrcyjanek.net> * CW-711 passphrase for XMR/WOWcreation (#1992) * add monero passphrase add wownero passphrase add passphrase to seed screen * obscure passphrase by default disable passphrase create for zano * Update lib/view_model/wallet_keys_view_model.dart [skip ci] * Update lib/src/screens/wallet_keys/wallet_keys_page.dart [skip ci] * Update lib/view_model/advanced_privacy_settings_view_model.dart * dynamic passphrase icon * fix polyseed not being encrypted by passphrase --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * show Zano keys properly in the keys tab (#2004) * fix: Switch private key hex encoding * Modified existing implementation to use older version of packages * fix: Fetch direct transaction history amounts instead of decimals, and add Create Account Instructions to Transaction History List * fix: Remove Create Account entries in Transaction History and disable activating token accounts of selected tokens * feat: Add passphrase support to Solana * fix: Issues with transaction amount and dissappearing transaction history items (very annoying bug) * fix: Issue with flipping transactions and incorrect transaction status * PR Review fixes --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> Co-authored-by: cyan <cyjan@mrcyjanek.net>
77 lines
2.1 KiB
Dart
77 lines
2.1 KiB
Dart
import 'package:cw_core/format_amount.dart';
|
|
import 'package:cw_core/transaction_direction.dart';
|
|
import 'package:cw_core/transaction_info.dart';
|
|
|
|
class SolanaTransactionInfo extends TransactionInfo {
|
|
SolanaTransactionInfo({
|
|
required this.id,
|
|
required this.blockTime,
|
|
required this.to,
|
|
required this.from,
|
|
required this.direction,
|
|
required this.solAmount,
|
|
this.tokenSymbol = "SOL",
|
|
required this.isPending,
|
|
required this.txFee,
|
|
}) : amount = solAmount.toInt();
|
|
|
|
final String id;
|
|
final String? to;
|
|
final String? from;
|
|
final int amount;
|
|
final bool isPending;
|
|
final double solAmount;
|
|
final String tokenSymbol;
|
|
final DateTime blockTime;
|
|
final double txFee;
|
|
final TransactionDirection direction;
|
|
|
|
String? _fiatAmount;
|
|
|
|
@override
|
|
DateTime get date => blockTime;
|
|
|
|
@override
|
|
String amountFormatted() {
|
|
String stringBalance = solAmount.toString();
|
|
if (stringBalance.toString().length >= 12) {
|
|
stringBalance = stringBalance.substring(0, 12);
|
|
}
|
|
return '$stringBalance $tokenSymbol';
|
|
}
|
|
|
|
@override
|
|
String fiatAmount() => _fiatAmount ?? '';
|
|
|
|
@override
|
|
void changeFiatAmount(String amount) => _fiatAmount = formatAmount(amount);
|
|
|
|
@override
|
|
String feeFormatted() => '${txFee.toString()} SOL';
|
|
|
|
factory SolanaTransactionInfo.fromJson(Map<String, dynamic> data) {
|
|
return SolanaTransactionInfo(
|
|
id: data['id'] as String,
|
|
solAmount: data['solAmount'],
|
|
direction: parseTransactionDirectionFromInt(data['direction'] as int),
|
|
blockTime: DateTime.fromMillisecondsSinceEpoch(data['blockTime'] as int),
|
|
isPending: data['isPending'] as bool,
|
|
tokenSymbol: data['tokenSymbol'] as String,
|
|
to: data['to'],
|
|
from: data['from'],
|
|
txFee: data['txFee'],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'solAmount': solAmount,
|
|
'direction': direction.index,
|
|
'blockTime': blockTime.millisecondsSinceEpoch,
|
|
'isPending': isPending,
|
|
'tokenSymbol': tokenSymbol,
|
|
'to': to,
|
|
'from': from,
|
|
'txFee': txFee,
|
|
};
|
|
}
|