mte/test/offline_management.sh

116 lines
3 KiB
Bash
Raw Normal View History

2026-02-03 12:52:19 +01:00
#!/bin/bash
set -e
2026-02-10 14:48:02 +01:00
a="/tmp/a.json"
b="/tmp/b.json"
2026-02-10 14:48:02 +01:00
url="http://localhost:3434"
2026-02-21 23:40:58 +01:00
auditor_pub="A17JXR3E6J4CXDPYT7S1H25PGJ3ABS26TQ38654QCX0TB59RPMF0"
2026-02-10 11:59:51 +01:00
master_key="./default/master_offline_private_key"
2026-02-21 23:40:58 +01:00
zero_euro="KUDO:0.0"
2026-02-10 14:48:02 +01:00
offline_tool() {
dune exec offline -- "$@" > /dev/null
}
2026-02-10 14:48:02 +01:00
offline_tool download --output $a --url $url"/management/keys"
offline_tool sign \
--master_key $master_key \
--input $a \
--output $b
offline_tool upload --input $b --url $url"/management/keys"
echo "[OK] /management/keys"
offline_tool download --output $a --url $url"/keys"
rsa_pub=$(jq -r '.denominations[0].denoms[0].rsa_pub' $a)
offline_tool revoke-denom \
--master_key $master_key \
--output $b \
--rsa \
$rsa_pub
h_denom=$(dune exec offline -- hash64 $rsa_pub)
offline_tool upload --input $b --url $url"/management/denominations/"$h_denom"/revoke"
echo "[OK] /management/denominations/\$H_DENOM/revoke"
pub=$(jq -r '.signkeys[0].key' $a)
offline_tool revoke-signkey \
--master_key $master_key \
--output $b \
$pub
offline_tool upload --input $b --url $url"/management/signkeys/"$pub"/revoke"
echo "[OK] /management/signkeys/\$EXCHANGE_PUB/revoke"
2026-02-10 14:48:02 +01:00
offline_tool enable-auditor \
2026-02-10 11:59:51 +01:00
--master_key $master_key \
2026-02-03 22:03:25 +01:00
--output $b \
--auditor_url "auditor.example.com" \
--auditor_name "auditor example" \
2026-02-25 20:12:13 +01:00
--auditor_pub $auditor_pub
2026-02-10 14:48:02 +01:00
offline_tool upload --input $b --url $url"/management/auditors"
echo "[OK] /management/auditors"
2026-02-25 20:12:13 +01:00
offline_tool disable-auditor \
--master_key $master_key \
--output $b \
--auditor_pub $auditor_pub
offline_tool upload --input $b --url $url"/management/auditors/"$auditor_pub"/disable"
echo "[OK] /management/auditors/\$AUDITOR_PUB/disable"
2026-02-10 14:48:02 +01:00
offline_tool wire-fee \
2026-02-10 11:59:51 +01:00
--master_key $master_key \
2026-02-03 22:03:25 +01:00
--output $b \
2026-02-07 01:01:05 +01:00
--wire_method "xxx" \
--fee_start 0 \
--fee_end 99999999 \
--closing_fee $zero_euro \
--wire_fee $zero_euro
2026-02-10 14:48:02 +01:00
offline_tool upload --input $b --url $url"/management/wire-fee"
echo "[OK] /management/wire-fee"
2026-02-10 14:48:02 +01:00
offline_tool global-fees \
2026-02-10 11:59:51 +01:00
--master_key $master_key \
2026-02-03 22:03:25 +01:00
--output $b \
--start_date 0 \
--end_date 99999999 \
--history_fee $zero_euro \
--account_fee $zero_euro \
--purse_fee $zero_euro \
--history_expiration 9999999 \
2026-02-03 22:03:25 +01:00
--purse_account_limit 1 \
--purse_timeout 9999999
2026-02-10 14:48:02 +01:00
offline_tool upload --input $b --url $url"/management/global-fees"
echo "[OK] /management/global-fees"
2026-02-25 21:46:20 +01:00
offline_tool enable-wire \
--master_key $master_key \
--output $b \
--payto_uri "" \
--bank_label "" \
--priority 4
offline_tool upload --input $b --url $url"/management/wire"
echo "[OK] /management/wire"
offline_tool disable-wire \
--master_key $master_key \
--output $b \
--payto_uri ""
offline_tool upload --input $b --url $url"/management/wire/disable"
echo "[OK] /management/wire/disable"
2026-02-25 22:42:33 +01:00
# wtid (after base32 decode) must be 32bytes
wtid="000G40R40M30E209185GR38E1W8124GK2GAHC5RR34D1P70X3RFG"
offline_tool drain \
--master_key $master_key \
--output $b \
--debit_account_section "" \
--credit_payto_uri "" \
--wtid $wtid \
--date 0 \
--amount $zero_euro
offline_tool upload --input $b --url $url"/management/drain"
echo "[OK] /management/drain"
# todo test aml-officer
# todo test partners