switch values that change over time to computed properties

This commit is contained in:
julian 2023-01-10 11:22:52 -06:00
parent 86956b3fad
commit 3de937fe03
4 changed files with 119 additions and 514 deletions

View file

@ -1,3 +1,5 @@
import 'dart:math';
import 'package:isar/isar.dart';
import 'package:stackwallet/models/isar/models/blockchain_data/input.dart';
import 'package:stackwallet/models/isar/models/blockchain_data/output.dart';
@ -11,10 +13,6 @@ class Transaction {
late String txid;
late bool confirmed;
late int confirmations;
late int timestamp;
@enumerated
@ -28,8 +26,6 @@ class Transaction {
// TODO: do we need this?
// late List<dynamic> aliens;
late String worthAtBlockTimestamp;
late int fee;
late String address;
@ -47,6 +43,15 @@ class Transaction {
final outputs = IsarLinks<Output>();
final note = IsarLink<TransactionNote>();
int getConfirmations(int currentChainHeight) {
return max(0, currentChainHeight - height);
}
bool isConfirmed(int currentChainHeight, int minimumConfirms) {
final confirmations = getConfirmations(currentChainHeight);
return confirmations >= minimumConfirms;
}
}
// Used in Isar db and stored there as int indexes so adding/removing values

View file

@ -32,62 +32,47 @@ const TransactionSchema = CollectionSchema(
name: r'cancelled',
type: IsarType.bool,
),
r'confirmations': PropertySchema(
id: 3,
name: r'confirmations',
type: IsarType.long,
),
r'confirmed': PropertySchema(
id: 4,
name: r'confirmed',
type: IsarType.bool,
),
r'fee': PropertySchema(
id: 5,
id: 3,
name: r'fee',
type: IsarType.long,
),
r'height': PropertySchema(
id: 6,
id: 4,
name: r'height',
type: IsarType.long,
),
r'otherData': PropertySchema(
id: 7,
id: 5,
name: r'otherData',
type: IsarType.string,
),
r'slateId': PropertySchema(
id: 8,
id: 6,
name: r'slateId',
type: IsarType.string,
),
r'subType': PropertySchema(
id: 9,
id: 7,
name: r'subType',
type: IsarType.byte,
enumMap: _TransactionsubTypeEnumValueMap,
),
r'timestamp': PropertySchema(
id: 10,
id: 8,
name: r'timestamp',
type: IsarType.long,
),
r'txType': PropertySchema(
id: 11,
id: 9,
name: r'txType',
type: IsarType.byte,
enumMap: _TransactiontxTypeEnumValueMap,
),
r'txid': PropertySchema(
id: 12,
id: 10,
name: r'txid',
type: IsarType.string,
),
r'worthAtBlockTimestamp': PropertySchema(
id: 13,
name: r'worthAtBlockTimestamp',
type: IsarType.string,
)
},
estimateSize: _transactionEstimateSize,
@ -143,7 +128,6 @@ int _transactionEstimateSize(
}
}
bytesCount += 3 + object.txid.length * 3;
bytesCount += 3 + object.worthAtBlockTimestamp.length * 3;
return bytesCount;
}
@ -156,17 +140,14 @@ void _transactionSerialize(
writer.writeString(offsets[0], object.address);
writer.writeLong(offsets[1], object.amount);
writer.writeBool(offsets[2], object.cancelled);
writer.writeLong(offsets[3], object.confirmations);
writer.writeBool(offsets[4], object.confirmed);
writer.writeLong(offsets[5], object.fee);
writer.writeLong(offsets[6], object.height);
writer.writeString(offsets[7], object.otherData);
writer.writeString(offsets[8], object.slateId);
writer.writeByte(offsets[9], object.subType.index);
writer.writeLong(offsets[10], object.timestamp);
writer.writeByte(offsets[11], object.txType.index);
writer.writeString(offsets[12], object.txid);
writer.writeString(offsets[13], object.worthAtBlockTimestamp);
writer.writeLong(offsets[3], object.fee);
writer.writeLong(offsets[4], object.height);
writer.writeString(offsets[5], object.otherData);
writer.writeString(offsets[6], object.slateId);
writer.writeByte(offsets[7], object.subType.index);
writer.writeLong(offsets[8], object.timestamp);
writer.writeByte(offsets[9], object.txType.index);
writer.writeString(offsets[10], object.txid);
}
Transaction _transactionDeserialize(
@ -179,22 +160,19 @@ Transaction _transactionDeserialize(
object.address = reader.readString(offsets[0]);
object.amount = reader.readLong(offsets[1]);
object.cancelled = reader.readBool(offsets[2]);
object.confirmations = reader.readLong(offsets[3]);
object.confirmed = reader.readBool(offsets[4]);
object.fee = reader.readLong(offsets[5]);
object.height = reader.readLong(offsets[6]);
object.fee = reader.readLong(offsets[3]);
object.height = reader.readLong(offsets[4]);
object.id = id;
object.otherData = reader.readStringOrNull(offsets[7]);
object.slateId = reader.readStringOrNull(offsets[8]);
object.otherData = reader.readStringOrNull(offsets[5]);
object.slateId = reader.readStringOrNull(offsets[6]);
object.subType =
_TransactionsubTypeValueEnumMap[reader.readByteOrNull(offsets[9])] ??
_TransactionsubTypeValueEnumMap[reader.readByteOrNull(offsets[7])] ??
TransactionSubType.none;
object.timestamp = reader.readLong(offsets[10]);
object.timestamp = reader.readLong(offsets[8]);
object.txType =
_TransactiontxTypeValueEnumMap[reader.readByteOrNull(offsets[11])] ??
_TransactiontxTypeValueEnumMap[reader.readByteOrNull(offsets[9])] ??
TransactionType.outgoing;
object.txid = reader.readString(offsets[12]);
object.worthAtBlockTimestamp = reader.readString(offsets[13]);
object.txid = reader.readString(offsets[10]);
return object;
}
@ -214,26 +192,20 @@ P _transactionDeserializeProp<P>(
case 3:
return (reader.readLong(offset)) as P;
case 4:
return (reader.readBool(offset)) as P;
return (reader.readLong(offset)) as P;
case 5:
return (reader.readLong(offset)) as P;
return (reader.readStringOrNull(offset)) as P;
case 6:
return (reader.readLong(offset)) as P;
return (reader.readStringOrNull(offset)) as P;
case 7:
return (reader.readStringOrNull(offset)) as P;
case 8:
return (reader.readStringOrNull(offset)) as P;
case 9:
return (_TransactionsubTypeValueEnumMap[reader.readByteOrNull(offset)] ??
TransactionSubType.none) as P;
case 10:
case 8:
return (reader.readLong(offset)) as P;
case 11:
case 9:
return (_TransactiontxTypeValueEnumMap[reader.readByteOrNull(offset)] ??
TransactionType.outgoing) as P;
case 12:
return (reader.readString(offset)) as P;
case 13:
case 10:
return (reader.readString(offset)) as P;
default:
throw IsarError('Unknown property with id $propertyId');
@ -557,72 +529,6 @@ extension TransactionQueryFilter
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
confirmationsEqualTo(int value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'confirmations',
value: value,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
confirmationsGreaterThan(
int value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'confirmations',
value: value,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
confirmationsLessThan(
int value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'confirmations',
value: value,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
confirmationsBetween(
int lower,
int upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'confirmations',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
confirmedEqualTo(bool value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'confirmed',
value: value,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> feeEqualTo(
int value) {
return QueryBuilder.apply(this, (query) {
@ -1383,143 +1289,6 @@ extension TransactionQueryFilter
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampEqualTo(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'worthAtBlockTimestamp',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampGreaterThan(
String value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'worthAtBlockTimestamp',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampLessThan(
String value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'worthAtBlockTimestamp',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampBetween(
String lower,
String upper, {
bool includeLower = true,
bool includeUpper = true,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'worthAtBlockTimestamp',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampStartsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.startsWith(
property: r'worthAtBlockTimestamp',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampEndsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.endsWith(
property: r'worthAtBlockTimestamp',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampContains(String value, {bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.contains(
property: r'worthAtBlockTimestamp',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampMatches(String pattern,
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.matches(
property: r'worthAtBlockTimestamp',
wildcard: pattern,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampIsEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'worthAtBlockTimestamp',
value: '',
));
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
worthAtBlockTimestampIsNotEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
property: r'worthAtBlockTimestamp',
value: '',
));
});
}
}
extension TransactionQueryObject
@ -1701,31 +1470,6 @@ extension TransactionQuerySortBy
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> sortByConfirmations() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmations', Sort.asc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy>
sortByConfirmationsDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmations', Sort.desc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> sortByConfirmed() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmed', Sort.asc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> sortByConfirmedDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmed', Sort.desc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> sortByFee() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'fee', Sort.asc);
@ -1821,20 +1565,6 @@ extension TransactionQuerySortBy
return query.addSortBy(r'txid', Sort.desc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy>
sortByWorthAtBlockTimestamp() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'worthAtBlockTimestamp', Sort.asc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy>
sortByWorthAtBlockTimestampDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'worthAtBlockTimestamp', Sort.desc);
});
}
}
extension TransactionQuerySortThenBy
@ -1875,31 +1605,6 @@ extension TransactionQuerySortThenBy
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> thenByConfirmations() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmations', Sort.asc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy>
thenByConfirmationsDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmations', Sort.desc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> thenByConfirmed() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmed', Sort.asc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> thenByConfirmedDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'confirmed', Sort.desc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy> thenByFee() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'fee', Sort.asc);
@ -2007,20 +1712,6 @@ extension TransactionQuerySortThenBy
return query.addSortBy(r'txid', Sort.desc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy>
thenByWorthAtBlockTimestamp() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'worthAtBlockTimestamp', Sort.asc);
});
}
QueryBuilder<Transaction, Transaction, QAfterSortBy>
thenByWorthAtBlockTimestampDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'worthAtBlockTimestamp', Sort.desc);
});
}
}
extension TransactionQueryWhereDistinct
@ -2044,18 +1735,6 @@ extension TransactionQueryWhereDistinct
});
}
QueryBuilder<Transaction, Transaction, QDistinct> distinctByConfirmations() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'confirmations');
});
}
QueryBuilder<Transaction, Transaction, QDistinct> distinctByConfirmed() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'confirmed');
});
}
QueryBuilder<Transaction, Transaction, QDistinct> distinctByFee() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'fee');
@ -2106,14 +1785,6 @@ extension TransactionQueryWhereDistinct
return query.addDistinctBy(r'txid', caseSensitive: caseSensitive);
});
}
QueryBuilder<Transaction, Transaction, QDistinct>
distinctByWorthAtBlockTimestamp({bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'worthAtBlockTimestamp',
caseSensitive: caseSensitive);
});
}
}
extension TransactionQueryProperty
@ -2142,18 +1813,6 @@ extension TransactionQueryProperty
});
}
QueryBuilder<Transaction, int, QQueryOperations> confirmationsProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'confirmations');
});
}
QueryBuilder<Transaction, bool, QQueryOperations> confirmedProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'confirmed');
});
}
QueryBuilder<Transaction, int, QQueryOperations> feeProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'fee');
@ -2203,11 +1862,4 @@ extension TransactionQueryProperty
return query.addPropertyName(r'txid');
});
}
QueryBuilder<Transaction, String, QQueryOperations>
worthAtBlockTimestampProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'worthAtBlockTimestamp');
});
}
}

View file

@ -1,3 +1,5 @@
import 'dart:math';
import 'package:isar/isar.dart';
part 'utxo.g.dart';
@ -14,24 +16,29 @@ class UTXO {
late int value;
late String fiatWorth;
late String txName;
late bool blocked;
late String? blockedReason;
late bool isCoinbase;
}
@Embedded()
class Status {
late bool confirmed;
late int confirmations;
late String blockHash;
late int blockHeight;
late int blockTime;
int getConfirmations(int currentChainHeight) {
return max(0, currentChainHeight - blockHeight);
}
bool isConfirmed(int currentChainHeight, int minimumConfirms) {
final confirmations = getConfirmations(currentChainHeight);
return confirmations >= minimumConfirms;
}
}

View file

@ -22,9 +22,9 @@ const UTXOSchema = CollectionSchema(
name: r'blocked',
type: IsarType.bool,
),
r'fiatWorth': PropertySchema(
r'blockedReason': PropertySchema(
id: 1,
name: r'fiatWorth',
name: r'blockedReason',
type: IsarType.string,
),
r'isCoinbase': PropertySchema(
@ -79,7 +79,12 @@ int _uTXOEstimateSize(
Map<Type, List<int>> allOffsets,
) {
var bytesCount = offsets.last;
bytesCount += 3 + object.fiatWorth.length * 3;
{
final value = object.blockedReason;
if (value != null) {
bytesCount += 3 + value.length * 3;
}
}
bytesCount += 3 +
StatusSchema.estimateSize(object.status, allOffsets[Status]!, allOffsets);
bytesCount += 3 + object.txName.length * 3;
@ -94,7 +99,7 @@ void _uTXOSerialize(
Map<Type, List<int>> allOffsets,
) {
writer.writeBool(offsets[0], object.blocked);
writer.writeString(offsets[1], object.fiatWorth);
writer.writeString(offsets[1], object.blockedReason);
writer.writeBool(offsets[2], object.isCoinbase);
writer.writeObject<Status>(
offsets[3],
@ -116,7 +121,7 @@ UTXO _uTXODeserialize(
) {
final object = UTXO();
object.blocked = reader.readBool(offsets[0]);
object.fiatWorth = reader.readString(offsets[1]);
object.blockedReason = reader.readStringOrNull(offsets[1]);
object.id = id;
object.isCoinbase = reader.readBool(offsets[2]);
object.status = reader.readObjectOrNull<Status>(
@ -142,7 +147,7 @@ P _uTXODeserializeProp<P>(
case 0:
return (reader.readBool(offset)) as P;
case 1:
return (reader.readString(offset)) as P;
return (reader.readStringOrNull(offset)) as P;
case 2:
return (reader.readBool(offset)) as P;
case 3:
@ -262,59 +267,75 @@ extension UTXOQueryFilter on QueryBuilder<UTXO, UTXO, QFilterCondition> {
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthEqualTo(
String value, {
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonIsNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNull(
property: r'blockedReason',
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonIsNotNull() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(const FilterCondition.isNotNull(
property: r'blockedReason',
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonEqualTo(
String? value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'fiatWorth',
property: r'blockedReason',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthGreaterThan(
String value, {
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonGreaterThan(
String? value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'fiatWorth',
property: r'blockedReason',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthLessThan(
String value, {
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonLessThan(
String? value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'fiatWorth',
property: r'blockedReason',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthBetween(
String lower,
String upper, {
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonBetween(
String? lower,
String? upper, {
bool includeLower = true,
bool includeUpper = true,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'fiatWorth',
property: r'blockedReason',
lower: lower,
includeLower: includeLower,
upper: upper,
@ -324,69 +345,69 @@ extension UTXOQueryFilter on QueryBuilder<UTXO, UTXO, QFilterCondition> {
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthStartsWith(
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonStartsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.startsWith(
property: r'fiatWorth',
property: r'blockedReason',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthEndsWith(
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonEndsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.endsWith(
property: r'fiatWorth',
property: r'blockedReason',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthContains(
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonContains(
String value,
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.contains(
property: r'fiatWorth',
property: r'blockedReason',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthMatches(
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonMatches(
String pattern,
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.matches(
property: r'fiatWorth',
property: r'blockedReason',
wildcard: pattern,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthIsEmpty() {
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonIsEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'fiatWorth',
property: r'blockedReason',
value: '',
));
});
}
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> fiatWorthIsNotEmpty() {
QueryBuilder<UTXO, UTXO, QAfterFilterCondition> blockedReasonIsNotEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
property: r'fiatWorth',
property: r'blockedReason',
value: '',
));
});
@ -839,15 +860,15 @@ extension UTXOQuerySortBy on QueryBuilder<UTXO, UTXO, QSortBy> {
});
}
QueryBuilder<UTXO, UTXO, QAfterSortBy> sortByFiatWorth() {
QueryBuilder<UTXO, UTXO, QAfterSortBy> sortByBlockedReason() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'fiatWorth', Sort.asc);
return query.addSortBy(r'blockedReason', Sort.asc);
});
}
QueryBuilder<UTXO, UTXO, QAfterSortBy> sortByFiatWorthDesc() {
QueryBuilder<UTXO, UTXO, QAfterSortBy> sortByBlockedReasonDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'fiatWorth', Sort.desc);
return query.addSortBy(r'blockedReason', Sort.desc);
});
}
@ -925,15 +946,15 @@ extension UTXOQuerySortThenBy on QueryBuilder<UTXO, UTXO, QSortThenBy> {
});
}
QueryBuilder<UTXO, UTXO, QAfterSortBy> thenByFiatWorth() {
QueryBuilder<UTXO, UTXO, QAfterSortBy> thenByBlockedReason() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'fiatWorth', Sort.asc);
return query.addSortBy(r'blockedReason', Sort.asc);
});
}
QueryBuilder<UTXO, UTXO, QAfterSortBy> thenByFiatWorthDesc() {
QueryBuilder<UTXO, UTXO, QAfterSortBy> thenByBlockedReasonDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'fiatWorth', Sort.desc);
return query.addSortBy(r'blockedReason', Sort.desc);
});
}
@ -1017,10 +1038,11 @@ extension UTXOQueryWhereDistinct on QueryBuilder<UTXO, UTXO, QDistinct> {
});
}
QueryBuilder<UTXO, UTXO, QDistinct> distinctByFiatWorth(
QueryBuilder<UTXO, UTXO, QDistinct> distinctByBlockedReason(
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'fiatWorth', caseSensitive: caseSensitive);
return query.addDistinctBy(r'blockedReason',
caseSensitive: caseSensitive);
});
}
@ -1070,9 +1092,9 @@ extension UTXOQueryProperty on QueryBuilder<UTXO, UTXO, QQueryProperty> {
});
}
QueryBuilder<UTXO, String, QQueryOperations> fiatWorthProperty() {
QueryBuilder<UTXO, String?, QQueryOperations> blockedReasonProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'fiatWorth');
return query.addPropertyName(r'blockedReason');
});
}
@ -1138,16 +1160,6 @@ const StatusSchema = Schema(
id: 2,
name: r'blockTime',
type: IsarType.long,
),
r'confirmations': PropertySchema(
id: 3,
name: r'confirmations',
type: IsarType.long,
),
r'confirmed': PropertySchema(
id: 4,
name: r'confirmed',
type: IsarType.bool,
)
},
estimateSize: _statusEstimateSize,
@ -1175,8 +1187,6 @@ void _statusSerialize(
writer.writeString(offsets[0], object.blockHash);
writer.writeLong(offsets[1], object.blockHeight);
writer.writeLong(offsets[2], object.blockTime);
writer.writeLong(offsets[3], object.confirmations);
writer.writeBool(offsets[4], object.confirmed);
}
Status _statusDeserialize(
@ -1189,8 +1199,6 @@ Status _statusDeserialize(
object.blockHash = reader.readString(offsets[0]);
object.blockHeight = reader.readLong(offsets[1]);
object.blockTime = reader.readLong(offsets[2]);
object.confirmations = reader.readLong(offsets[3]);
object.confirmed = reader.readBool(offsets[4]);
return object;
}
@ -1207,10 +1215,6 @@ P _statusDeserializeProp<P>(
return (reader.readLong(offset)) as P;
case 2:
return (reader.readLong(offset)) as P;
case 3:
return (reader.readLong(offset)) as P;
case 4:
return (reader.readBool(offset)) as P;
default:
throw IsarError('Unknown property with id $propertyId');
}
@ -1452,69 +1456,6 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
));
});
}
QueryBuilder<Status, Status, QAfterFilterCondition> confirmationsEqualTo(
int value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'confirmations',
value: value,
));
});
}
QueryBuilder<Status, Status, QAfterFilterCondition> confirmationsGreaterThan(
int value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'confirmations',
value: value,
));
});
}
QueryBuilder<Status, Status, QAfterFilterCondition> confirmationsLessThan(
int value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'confirmations',
value: value,
));
});
}
QueryBuilder<Status, Status, QAfterFilterCondition> confirmationsBetween(
int lower,
int upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'confirmations',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<Status, Status, QAfterFilterCondition> confirmedEqualTo(
bool value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'confirmed',
value: value,
));
});
}
}
extension StatusQueryObject on QueryBuilder<Status, Status, QFilterCondition> {}