commit 420a45a8fe2ae23a7a182fa90e8d19513d04f462
parent e59e195ba52ae9793bcc3f8c2691f115f1c86817
Author: Bohdan Potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date: Tue, 23 Sep 2025 17:48:11 +0200
0010443
Diffstat:
1 file changed, 14 insertions(+), 33 deletions(-)
diff --git a/core/api-donau.rst b/core/api-donau.rst
@@ -100,47 +100,23 @@ long-term offline signing key of the Donau, which clients should cache.
// The Donau's currency.
currency: string;
- // Donation Units offered by this Donau
- donation_units: DonationUnitKeyGroup[];
+ // Donation units offered by this Donau. Each entry enumerates a
+ // specific key together with its value and status.
+ donation_units: DonationUnit[];
// The Donau's signing keys.
signkeys: SignKey[];
}
- .. ts:def:: DonationUnitKeyGroup
+ .. ts:def:: DonationUnit
- type DonationUnitKeyGroup =
- | DonationUnitKeyGroupRsa
- | DonationUnitKeyGroupCs;
-
- .. ts:def:: DonationUnitKeyGroupRsa
-
- interface DonationUnitKeyGroupRsa extends DonationUnitKeyGroupCommon {
- cipher: "RSA";
-
- donation_units: ({
- rsa_pub: RsaPublicKey;
- } & DonationUnitKeyCommon)[];
- }
-
- .. ts:def:: DonationUnitKeyGroupCs
-
- interface DonationUnitKeyGroupCs extends DonationUnitKeyGroupCommon {
- cipher: "CS";
-
- donation_units: ({
- cs_pub: Cs25519Point;
- } & DonationUnitKeyCommon)[];
- }
-
- .. ts:def:: DonationUnitKeyGroupCommon
-
- // Common attributes for all donation unit groups
- interface DonationUnitKeyGroupCommon {
- // How much was donated based on this donation receipt.
+ interface DonationUnit extends DonationUnitKeyCommon {
+ // How much a receipt signed with this key is worth.
value: Amount;
+ // Public key material of the donation unit.
+ donation_unit_pub: DonationUnitKey;
}
.. ts:def:: DonationUnitKeyCommon
@@ -170,6 +146,9 @@ long-term offline signing key of the Donau, which clients should cache.
// RSA public key
rsa_public_key: RsaPublicKey;
+
+ // Hash of the RSA public key, as used in other API calls.
+ pub_key_hash: HashCode;
}
.. ts:def:: CSDonationUnitKey
@@ -180,6 +159,8 @@ long-term offline signing key of the Donau, which clients should cache.
// Public key of the donation unit.
cs_public_key: Cs25519Point;
+ // Hash of the CS public key, as used in other API calls.
+ pub_key_hash: HashCode;
}
A signing key in the ``signkeys`` list is a JSON object with the following fields:
@@ -288,7 +269,7 @@ CSR Issue
// Hash of the public key of the donation unit
// the request relates to.
- donation_unit_pub_hash: HashCode;
+ du_pub_hash: HashCode;
}