mte/test/management.sh

131 lines
3.7 KiB
Bash
Executable file

#!/bin/bash
set -e
a="/tmp/a.json"
b="/tmp/b.json"
zero_kudos="KUDOS:0.0"
url="http://10.0.0.2:3434"
if [ ! -d ./keys ]; then
echo "./keys folder not found"
exit 1
fi
master_key="./keys/master"
#auditor_pub=$(cat "./keys/auditor_0.pub")
auditor_pub="BQCHC907487KZD5BYD7S8AV2RY8Z5QZSJQVM4JJ8VBH17SPET2BG"
# TODO launch mte.exe and kill it a then end with its PID
mte-offline-tool() {
dune exec mte-offline-tool -- "$@" > /dev/null
}
mte-offline-tool download --output $a --url $url"/management/keys"
mte-offline-tool sign \
--master_key $master_key \
--input $a \
--output $b
mte-offline-tool upload --input $b --url $url"/management/keys"
echo "[OK] /management/keys"
mte-offline-tool download --output $a --url $url"/keys"
rsa_pub=$(jq -r '.denominations[0].denoms[0].rsa_pub' $a)
h_denom=$(dune exec mte-offline-tool -- compute-denomination-hash $rsa_pub)
mte-offline-tool revoke-denom \
--master_key $master_key \
--output $b \
$h_denom
mte-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)
mte-offline-tool revoke-signkey \
--master_key $master_key \
--output $b \
$pub
mte-offline-tool upload --input $b --url $url"/management/signkeys/"$pub"/revoke"
echo "[OK] /management/signkeys/\$EXCHANGE_PUB/revoke"
# re-do a 'POST /management/keys' to be sure the exchange has a valid signkey after revoke-signkey
mte-offline-tool download --output $a --url $url"/management/keys"
mte-offline-tool sign \
--master_key $master_key \
--input $a \
--output $b
mte-offline-tool upload --input $b --url $url"/management/keys"
mte-offline-tool enable-auditor \
--master_key $master_key \
--output $b \
--auditor_url "auditor.example.com" \
--auditor_name "auditor example" \
--auditor_pub $auditor_pub
mte-offline-tool upload --input $b --url $url"/management/auditors"
echo "[OK] /management/auditors"
mte-offline-tool disable-auditor \
--master_key $master_key \
--output $b \
--auditor_pub $auditor_pub
mte-offline-tool upload --input $b --url $url"/management/auditors/"$auditor_pub"/disable"
echo "[OK] /management/auditors/\$AUDITOR_PUB/disable"
mte-offline-tool wire-fee \
--master_key $master_key \
--output $b \
--wire_method "x-taler-bank" \
--fee_start 0 \
--fee_end 99999999 \
--closing_fee $zero_kudos \
--wire_fee $zero_kudos
mte-offline-tool upload --input $b --url $url"/management/wire-fee"
echo "[OK] /management/wire-fee"
mte-offline-tool global-fees \
--master_key $master_key \
--output $b \
--start_date 0 \
--end_date 99999999 \
--history_fee $zero_kudos \
--account_fee $zero_kudos \
--purse_fee $zero_kudos \
--history_expiration 9999999 \
--purse_account_limit 1 \
--purse_timeout 9999999
mte-offline-tool upload --input $b --url $url"/management/global-fees"
echo "[OK] /management/global-fees"
mte-offline-tool enable-wire \
--master_key $master_key \
--output $b \
--payto_uri "" \
--bank_label "" \
--priority 4
mte-offline-tool upload --input $b --url $url"/management/wire"
echo "[OK] /management/wire"
mte-offline-tool disable-wire \
--master_key $master_key \
--output $b \
--payto_uri ""
mte-offline-tool upload --input $b --url $url"/management/wire/disable"
echo "[OK] /management/wire/disable"
# wtid (after base32 decode) must be 32bytes
wtid="000G40R40M30E209185GR38E1W8124GK2GAHC5RR34D1P70X3RFG"
mte-offline-tool drain \
--master_key $master_key \
--output $b \
--debit_account_section "" \
--credit_payto_uri "" \
--wtid $wtid \
--date 0 \
--amount $zero_kudos
mte-offline-tool upload --input $b --url $url"/management/drain"
echo "[OK] /management/drain"
mte-offline-tool download --output $a --url $url"/keys"
dune exec test/validate.exe -- keys $a
echo "[OK] /keys validation"