mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-01-05 18:39:25 +00:00
105 lines
3.3 KiB
Dart
105 lines
3.3 KiB
Dart
import 'package:cw_core/crypto_currency.dart';
|
|
import 'package:cw_core/hive_type_ids.dart';
|
|
import 'package:cw_zano/zano_formatter.dart';
|
|
import 'package:hive/hive.dart';
|
|
|
|
part 'zano_asset.g.dart';
|
|
|
|
@HiveType(typeId: ZanoAsset.typeId)
|
|
class ZanoAsset extends CryptoCurrency with HiveObjectMixin {
|
|
@HiveField(0)
|
|
final String fullName;
|
|
@HiveField(1)
|
|
final String ticker;
|
|
@HiveField(2)
|
|
final String assetId;
|
|
@HiveField(3)
|
|
final int decimalPoint;
|
|
@HiveField(4, defaultValue: true)
|
|
bool _enabled;
|
|
@HiveField(5)
|
|
final String? iconPath;
|
|
// @HiveField(6)
|
|
// final String? tag;
|
|
@HiveField(6)
|
|
final String owner;
|
|
@HiveField(7)
|
|
final String metaInfo;
|
|
@HiveField(8)
|
|
final BigInt currentSupply;
|
|
@HiveField(9)
|
|
final bool hiddenSupply;
|
|
@HiveField(10)
|
|
final BigInt totalMaxSupply;
|
|
@HiveField(11)
|
|
final bool isInGlobalWhitelist;
|
|
|
|
bool get enabled => _enabled;
|
|
|
|
set enabled(bool value) => _enabled = value;
|
|
|
|
ZanoAsset({
|
|
this.fullName = '',
|
|
this.ticker = '',
|
|
required this.assetId,
|
|
this.decimalPoint = ZanoFormatter.defaultDecimalPoint,
|
|
bool enabled = true,
|
|
this.iconPath,
|
|
this.owner = defaultOwner,
|
|
this.metaInfo = '',
|
|
required this.currentSupply,
|
|
this.hiddenSupply = false,
|
|
required this.totalMaxSupply,
|
|
this.isInGlobalWhitelist = false,
|
|
}) : _enabled = enabled,
|
|
super(
|
|
name: fullName,
|
|
title: ticker.toUpperCase(),
|
|
fullName: fullName,
|
|
tag: 'ZANO',
|
|
iconPath: iconPath,
|
|
decimals: decimalPoint,
|
|
);
|
|
|
|
ZanoAsset.copyWith(ZanoAsset other, {String? icon, String? assetId, bool enabled = true})
|
|
: this.fullName = other.fullName,
|
|
this.ticker = other.ticker,
|
|
this.assetId = assetId ?? other.assetId,
|
|
this.decimalPoint = other.decimalPoint,
|
|
this._enabled = enabled && other.enabled,
|
|
this.iconPath = icon,
|
|
this.currentSupply = other.currentSupply,
|
|
this.hiddenSupply = other.hiddenSupply,
|
|
this.metaInfo = other.metaInfo,
|
|
this.owner = other.owner,
|
|
this.totalMaxSupply = other.totalMaxSupply,
|
|
this.isInGlobalWhitelist = other.isInGlobalWhitelist,
|
|
super(
|
|
name: other.name,
|
|
title: other.ticker.toUpperCase(),
|
|
fullName: other.name,
|
|
tag: 'ZANO',
|
|
iconPath: icon,
|
|
decimals: other.decimalPoint,
|
|
enabled: enabled,
|
|
);
|
|
|
|
factory ZanoAsset.fromJson(Map<String, dynamic> json, {bool isInGlobalWhitelist = false}) => ZanoAsset(
|
|
assetId: json['asset_id'] as String? ?? '',
|
|
currentSupply: ZanoFormatter.bigIntFromDynamic(json['current_supply']),
|
|
decimalPoint: json['decimal_point'] as int? ?? ZanoFormatter.defaultDecimalPoint,
|
|
fullName: json['full_name'] as String? ?? '',
|
|
hiddenSupply: json['hidden_supply'] as bool? ?? false,
|
|
metaInfo: json['meta_info'] as String? ?? '',
|
|
owner: json['owner'] as String? ?? '',
|
|
ticker: json['ticker'] as String? ?? '',
|
|
totalMaxSupply: ZanoFormatter.bigIntFromDynamic(json['total_max_supply']),
|
|
isInGlobalWhitelist: isInGlobalWhitelist,
|
|
);
|
|
|
|
|
|
|
|
static const typeId = ZANO_ASSET_TYPE_ID;
|
|
static const zanoAssetsBoxName = 'zanoAssetsBox';
|
|
static const defaultOwner = '0000000000000000000000000000000000000000000000000000000000000000';
|
|
}
|