aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/backup/export.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-10-15 16:03:48 +0200
committerFlorian Dold <florian@dold.me>2022-10-15 16:03:48 +0200
commita41d1ee53e1dc6af0b54f085053278e039cda8dc (patch)
tree5b6200a0cfa067c0d27743b9c6c94ceaa2efcd10 /packages/taler-wallet-core/src/operations/backup/export.ts
parentbd88dcebbcf90414c790a86ee13740eaf20e3334 (diff)
downloadwallet-core-a41d1ee53e1dc6af0b54f085053278e039cda8dc.tar.xz
wallet-core: put signing keys in separate object store
Diffstat (limited to 'packages/taler-wallet-core/src/operations/backup/export.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/backup/export.ts23
1 files changed, 16 insertions, 7 deletions
diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts b/packages/taler-wallet-core/src/operations/backup/export.ts
index 1472b1b90..b0f1d6ce1 100644
--- a/packages/taler-wallet-core/src/operations/backup/export.ts
+++ b/packages/taler-wallet-core/src/operations/backup/export.ts
@@ -35,6 +35,7 @@ import {
BackupDenomination,
BackupExchange,
BackupExchangeDetails,
+ BackupExchangeSignKey,
BackupExchangeWireFee,
BackupOperationStatus,
BackupPayInfo,
@@ -74,6 +75,7 @@ import {
} from "../../db.js";
import { InternalWalletState } from "../../internal-wallet-state.js";
import { assertUnreachable } from "../../util/assertUnreachable.js";
+import { checkDbInvariant } from "../../util/invariants.js";
import { getWalletBackupState, provideBackupState } from "./state.js";
const logger = new Logger("backup/export.ts");
@@ -87,6 +89,7 @@ export async function exportBackup(
x.config,
x.exchanges,
x.exchangeDetails,
+ x.exchangeSignkeys,
x.coins,
x.contractTerms,
x.denominations,
@@ -324,6 +327,18 @@ export async function exportBackup(
});
}
});
+ checkDbInvariant(ex.rowId != null);
+ const exchangeSk =
+ await tx.exchangeSignKeys.indexes.byExchangeDetailsRowId.getAll(
+ ex.rowId,
+ );
+ let signingKeys: BackupExchangeSignKey[] = exchangeSk.map((x) => ({
+ key: x.signkeyPub,
+ master_sig: x.masterSig,
+ stamp_end: x.stampEnd,
+ stamp_expire: x.stampExpire,
+ stamp_start: x.stampStart,
+ }));
backupExchangeDetails.push({
base_url: ex.exchangeBaseUrl,
@@ -341,13 +356,7 @@ export async function exportBackup(
currency: ex.currency,
protocol_version: ex.protocolVersionRange,
wire_fees: wireFees,
- signing_keys: ex.signingKeys.map((x) => ({
- key: x.key,
- master_sig: x.master_sig,
- stamp_end: x.stamp_end,
- stamp_expire: x.stamp_expire,
- stamp_start: x.stamp_start,
- })),
+ signing_keys: signingKeys,
global_fees: ex.globalFees.map((x) => ({
accountFee: Amounts.stringify(x.accountFee),
historyFee: Amounts.stringify(x.historyFee),