updateAddressUsage method
Update address usage statistics
Implementation
@override
Future<void> updateAddressUsage(
String walletId,
String address, {
DateTime? usedAt,
BigInt? balanceDelta,
}) async {
_ensureInitialized();
var sql = 'UPDATE addresses SET usage_count = usage_count + 1';
final params = <String, dynamic>{
'walletId': walletId,
'address': address,
};
if (usedAt != null) {
sql += ', last_used_at = @usedAt';
sql += ', first_used_at = COALESCE(first_used_at, @usedAt)';
params['usedAt'] = usedAt;
}
if (balanceDelta != null) {
sql += ', balance = balance + @balanceDelta';
params['balanceDelta'] = balanceDelta.toInt();
}
sql += ' WHERE wallet_id = @walletId AND address = @address';
await _pool!.execute(Sql.named(sql), parameters: params);
}