aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/exchanges.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-09-14 17:36:15 +0200
committerFlorian Dold <florian@dold.me>2023-09-14 19:18:01 +0200
commit1ce53e1c211296233f2f683c64e156e4d3a79678 (patch)
treeb6af47e4c77d5a0321ccaf3035040def0fcc64a9 /packages/taler-wallet-core/src/operations/exchanges.ts
parentf4587c44fd6a6d76384cd671550890255c3fe650 (diff)
downloadwallet-core-1ce53e1c211296233f2f683c64e156e4d3a79678.tar.xz
wallet-core: consistently use usec timestamps in DB
Diffstat (limited to 'packages/taler-wallet-core/src/operations/exchanges.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/exchanges.ts56
1 files changed, 39 insertions, 17 deletions
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts
index 60d55252a..5e966b719 100644
--- a/packages/taler-wallet-core/src/operations/exchanges.ts
+++ b/packages/taler-wallet-core/src/operations/exchanges.ts
@@ -74,7 +74,9 @@ import {
ExchangeEntryDbRecordStatus,
ExchangeEntryDbUpdateStatus,
isWithdrawableDenom,
+ timestampPreciseFromDb,
timestampPreciseToDb,
+ timestampProtocolToDb,
WalletDbReadWriteTransaction,
} from "../index.js";
import { InternalWalletState, TrustInfo } from "../internal-wallet-state.js";
@@ -317,8 +319,12 @@ export async function addPresetExchangeEntry(
detailsPointer: undefined,
lastUpdate: undefined,
lastKeysEtag: undefined,
- nextRefreshCheckStampMs: AbsoluteTime.getStampMsNever(),
- nextUpdateStampMs: AbsoluteTime.getStampMsNever(),
+ nextRefreshCheckStamp: timestampPreciseToDb(
+ AbsoluteTime.toPreciseTimestamp(AbsoluteTime.never()),
+ ),
+ nextUpdateStamp: timestampPreciseToDb(
+ AbsoluteTime.toPreciseTimestamp(AbsoluteTime.never()),
+ ),
};
await tx.exchanges.put(r);
}
@@ -344,8 +350,12 @@ export async function provideExchangeRecordInTx(
baseUrl: baseUrl,
detailsPointer: undefined,
lastUpdate: undefined,
- nextUpdateStampMs: AbsoluteTime.getStampMsNever(),
- nextRefreshCheckStampMs: AbsoluteTime.getStampMsNever(),
+ nextUpdateStamp: timestampPreciseToDb(
+ AbsoluteTime.toPreciseTimestamp(AbsoluteTime.never()),
+ ),
+ nextRefreshCheckStamp: timestampPreciseToDb(
+ AbsoluteTime.toPreciseTimestamp(AbsoluteTime.never()),
+ ),
lastKeysEtag: undefined,
};
await tx.exchanges.put(r);
@@ -446,13 +456,19 @@ async function downloadExchangeKeysInfo(
isRevoked: false,
value: Amounts.stringify(value),
currency: value.currency,
- stampExpireDeposit: denomIn.stamp_expire_deposit,
- stampExpireLegal: denomIn.stamp_expire_legal,
- stampExpireWithdraw: denomIn.stamp_expire_withdraw,
- stampStart: denomIn.stamp_start,
+ stampExpireDeposit: timestampProtocolToDb(
+ denomIn.stamp_expire_deposit,
+ ),
+ stampExpireLegal: timestampProtocolToDb(denomIn.stamp_expire_legal),
+ stampExpireWithdraw: timestampProtocolToDb(
+ denomIn.stamp_expire_withdraw,
+ ),
+ stampStart: timestampProtocolToDb(denomIn.stamp_start),
verificationStatus: DenominationVerificationStatus.Unverified,
masterSig: denomIn.master_sig,
- listIssueDate: exchangeKeysJsonUnchecked.list_issue_date,
+ listIssueDate: timestampProtocolToDb(
+ exchangeKeysJsonUnchecked.list_issue_date,
+ ),
fees: {
feeDeposit: Amounts.stringify(denomGroup.fee_deposit),
feeRefresh: Amounts.stringify(denomGroup.fee_refresh),
@@ -614,7 +630,9 @@ export async function updateExchangeFromUrlHandler(
!forceNow &&
exchangeDetails !== undefined &&
!AbsoluteTime.isExpired(
- AbsoluteTime.fromStampMs(exchange.nextUpdateStampMs),
+ AbsoluteTime.fromPreciseTimestamp(
+ timestampPreciseFromDb(exchange.nextUpdateStamp),
+ ),
)
) {
logger.trace("using existing exchange info");
@@ -755,11 +773,15 @@ export async function updateExchangeFromUrlHandler(
newDetails.rowId = existingDetails.rowId;
}
r.lastUpdate = timestampPreciseToDb(TalerPreciseTimestamp.now());
- r.nextUpdateStampMs = AbsoluteTime.toStampMs(
- AbsoluteTime.fromProtocolTimestamp(keysInfo.expiry),
+ r.nextUpdateStamp = timestampPreciseToDb(
+ AbsoluteTime.toPreciseTimestamp(
+ AbsoluteTime.fromProtocolTimestamp(keysInfo.expiry),
+ ),
);
// New denominations might be available.
- r.nextRefreshCheckStampMs = AbsoluteTime.getStampMsNow();
+ r.nextRefreshCheckStamp = timestampPreciseToDb(
+ TalerPreciseTimestamp.now(),
+ );
if (detailsPointerChanged) {
r.detailsPointer = {
currency: newDetails.currency,
@@ -777,9 +799,9 @@ export async function updateExchangeFromUrlHandler(
exchangeDetailsRowId: drRowId.key,
masterSig: sk.master_sig,
signkeyPub: sk.key,
- stampEnd: sk.stamp_end,
- stampExpire: sk.stamp_expire,
- stampStart: sk.stamp_start,
+ stampEnd: timestampProtocolToDb(sk.stamp_end),
+ stampExpire: timestampProtocolToDb(sk.stamp_expire),
+ stampStart: timestampProtocolToDb(sk.stamp_start),
});
}
@@ -814,7 +836,7 @@ export async function updateExchangeFromUrlHandler(
);
}
} else {
- x.listIssueDate = keysInfo.listIssueDate;
+ x.listIssueDate = timestampProtocolToDb(keysInfo.listIssueDate);
if (!x.isOffered) {
x.isOffered = true;
logger.info(