2023-06-21 00:46:58 +00:00
|
|
|
import 'package:cw_core/keyable.dart';
|
|
|
|
import 'package:hive/hive.dart';
|
|
|
|
|
|
|
|
part 'erc20_token.g.dart';
|
|
|
|
|
|
|
|
@HiveType(typeId: Erc20Token.typeId)
|
|
|
|
class Erc20Token extends HiveObject with Keyable {
|
|
|
|
@HiveField(0)
|
|
|
|
final String name;
|
|
|
|
@HiveField(1)
|
|
|
|
final String symbol;
|
|
|
|
@HiveField(2)
|
|
|
|
final String contractAddress;
|
2023-06-22 21:17:54 +00:00
|
|
|
@HiveField(3)
|
|
|
|
final int decimal;
|
|
|
|
@HiveField(4, defaultValue: false)
|
|
|
|
final bool enabled;
|
|
|
|
|
|
|
|
Erc20Token({
|
|
|
|
required this.name,
|
|
|
|
required this.symbol,
|
|
|
|
required this.contractAddress,
|
|
|
|
required this.decimal,
|
|
|
|
this.enabled = false,
|
|
|
|
});
|
2023-06-21 00:46:58 +00:00
|
|
|
|
|
|
|
static const typeId = 12;
|
|
|
|
static const boxName = 'Erc20Tokens';
|
|
|
|
|
|
|
|
@override
|
|
|
|
bool operator ==(other) =>
|
|
|
|
other is Erc20Token &&
|
2023-06-22 21:17:54 +00:00
|
|
|
(other.name == name &&
|
|
|
|
other.symbol == symbol &&
|
|
|
|
other.contractAddress == contractAddress &&
|
|
|
|
other.decimal == decimal);
|
2023-06-21 00:46:58 +00:00
|
|
|
|
|
|
|
@override
|
2023-06-22 21:17:54 +00:00
|
|
|
int get hashCode => name.hashCode ^ symbol.hashCode ^ contractAddress.hashCode ^ decimal.hashCode;
|
2023-06-21 00:46:58 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
dynamic get keyIndex {
|
|
|
|
_keyIndex ??= key;
|
|
|
|
return _keyIndex;
|
|
|
|
}
|
|
|
|
|
|
|
|
dynamic _keyIndex;
|
|
|
|
}
|