From 49645a55ad64c23b2e7a5534f5437fe3d47bd1c8 Mon Sep 17 00:00:00 2001 From: plowsof Date: Wed, 16 Oct 2024 23:12:06 +0100 Subject: [PATCH] btc qr consistency --- .github/workflows/hashes.yaml | 32 ++++++++++++++++++++++++++------ _data/contributing.yml | 4 +++- _data/contributing.yml.asc | 8 ++++---- img/donate-bitcoin.png | Bin 21573 -> 7267 bytes 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/.github/workflows/hashes.yaml b/.github/workflows/hashes.yaml index f87c0e6440..2f8b713a7a 100644 --- a/.github/workflows/hashes.yaml +++ b/.github/workflows/hashes.yaml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v2 - name: Install dependencies run: | - sudo apt-get install -y --no-install-recommends curl gpg jq python3-pip + sudo apt-get install -y --no-install-recommends curl gpg jq python3-pip zbar-tools sudo pip3 install yq - name: Verify hashes.txt + contributing.yml signature run: | @@ -32,11 +32,31 @@ jobs: - name: Verify General Fund donation QR's run: | yaml="_data/contributing.yml" - for type in xmr btc; do - checksum=$(awk "/qr_${type}_checksum:/ {print \$2}" "$yaml") - file=$(awk "/qr_${type}_filename:/ {print \$2}" "$yaml") - echo "DEBUG: $checksum $file" - echo "$checksum $file" | sha256sum -c + get_yaml_value() { + awk -v key="$1:" '$1 == key {print $2}' "$yaml" + } + for coin in xmr btc; do + qr_checksum=$(get_yaml_value "qr_${coin}_checksum") + qr_filename=$(get_yaml_value "qr_${coin}_filename") + qr_content=$(get_yaml_value "qr_${coin}_content") + echo "DEBUG: $qr_checksum $qr_filename" + echo "DEBUG: $qr_content" + # Confirm hashes match + echo "$qr_checksum $file" | sha256sum -c + + # Get QR content + qr_scanned=$(zbarimg -q --raw "$qr_filename") + + # Compare scanned content with expected content + if [ "$qr_scanned" = "$qr_content" ]; then + echo "${coin^^} QR code content matches exactly" + else + echo "${coin^^} QR code content does not match" + echo "Scanned: $qr_scanned" + echo "Expected: $qr_content" + fi + echo "---" + done - name: Verify filenames run: | diff --git a/_data/contributing.yml b/_data/contributing.yml index 2fe1aaa19a..719b3901a9 100644 --- a/_data/contributing.yml +++ b/_data/contributing.yml @@ -4,6 +4,8 @@ address_openalias: donate.getmonero.org view_address: 44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A view_key: f359631075708155cc3d92a32b75a7d02a5dcf27756707b47a2b31b21c389501 qr_xmr_filename: img/donate-monero.png +qr_xmr_content: 888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H qr_xmr_checksum: cf6cb49cf98726a40b860a6bb19df77df724a3e8e1ccb039adf8432de1509911 qr_btc_filename: img/donate-bitcoin.png -qr_btc_checksum: ef2b0e59e401caad2393cb11f50dfc29b364e0af0fd5683012fe0abded608655 +qr_btc_content: bitcoin:1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H +qr_btc_checksum: f805c5601a169185be14e0e9f9bf49a75805cff294581ecb30a4f494f4fe38c4 diff --git a/_data/contributing.yml.asc b/_data/contributing.yml.asc index e99381a4b1..135e708e3c 100644 --- a/_data/contributing.yml.asc +++ b/_data/contributing.yml.asc @@ -1,7 +1,7 @@ -----BEGIN PGP SIGNATURE----- -iI0EABMIADUWIQTci88MUIPyAweCgD5OipEtQO0FLAUCZw/b9xcccGxvd3NvZkBw -cm90b25tYWlsLmNvbQAKCRBOipEtQO0FLLGXAPoC2QGUbBPozZYqbzoJ/dsx+Kr+ -4JKe1roJvhgeUJdzMgD/VFJYuetujmhfWvfxjJMBHPMMBdOAmI/iTtMjsITVb5s= -=ptoN +iI0EABMIADUWIQTci88MUIPyAweCgD5OipEtQO0FLAUCZxC+axcccGxvd3NvZkBw +cm90b25tYWlsLmNvbQAKCRBOipEtQO0FLDIjAP9sFRE2OBVeeHFv44yHpn+FDXVr +UPaqcy356El6dv8iWwD/dHQAA8cR9D1Sr+zOS8aeJgEpl+Ce+a9dYHRYpFmdlgk= +=B7Wp -----END PGP SIGNATURE----- diff --git a/img/donate-bitcoin.png b/img/donate-bitcoin.png index 6fbfeea072a0d86663b5fdff253aa975997b5c0a..33c9cccea68d6735d0b7ef7a4a62b42cb5fee1be 100644 GIT binary patch literal 7267 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 NOGE#7mfD5D{{ezx*)sqD