#!/bin/bash ################################################################################ # Author: Fred (support@qo-op.com) # Version: 1.0 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ # If 4 words provided => Check if Billet exists and return BILLET AMOUNT VALUE # If 7 words provided => if Billet exists, transfer AMOUNT to PHONE & destroy BILLET # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized source $MY_PATH/init.sh source $MY_PATH/functions.sh log "X sms_BILLETCHK.sh $0" PHONE="$1" CODE="$2 $3" SEC="$4 $5 $6 $7" # Construct billet path bpath=$(echo "$CODE" | sed 's/ /_/g') if [ -d "/home/$YOU/.zen/g1billets/$bpath" ] then SECRET=$(cat "/home/$YOU/.zen/g1billets/$bpath/note.secret") SALT=$(cat "/home/$YOU/.zen/g1billets/$bpath/note.salt") VALbillet=$(cat "/home/$YOU/.zen/g1billets/$bpath/note.value") UNIT=$(cat "/home/$YOU/.zen/g1billets/$bpath/note.unit") BILLETPUBKEY=$(cat "/home/$YOU/.zen/g1billets/$bpath/note.pubkey") # Check account amount declare -a accounting accounting=($(check_account)) log "$(declare -p accounting)" AMOUNTG1=${accounting[0]} AMOUNT=${accounting[1]} UNIT=${accounting[2]} log "Billet: $AMOUNTG1 ($VALbillet $UNIT): $BILLETPUBKEY" # NO GOOD SECRET if [[ "$SEC" != "$SECRET" ]]; then # SEND ACTUAL BILLET VALUE mess="[G1SMS] Billet de $VALbillet $UNIT Valide! Valeur: $AMOUNTG1 G1 https://www.g1sms.fr/contact" sms_SEND "$PHONE" "$mess" log "BILLETCHK: $VALbillet $UNIT ($AMOUNTG1 G1) $bpath" else # TRANSFER & DESTROY sms_INIT_ACCOUNT "$PHONE" "NOSMS" if [[ "$UNKNOWN" == "unknown" ]]; then # Account creation sms_INIT_ACCOUNT "$PHONE" fi echo "${IPFSPrivKey}" | gpg -d -q --output "/tmp/note.dunikey" --yes --pinentry-mode loopback --passphrase-fd 0 "/home/$YOU/.zen/g1billets/$bpath/note.dunikey.IPFSPrivKey.gpg" duniter_server=$($MY_PATH/tools/duniter_getnode.sh) PAY=$(silkaj -p "$duniter_server" -af --file /tmp/note.dunikey tx --output "$PUBKEY" --amount "$AMOUNTG1" --comment "[G1sms+] $NODE_G1PUBKEY:RAZ:$CODE" -y) if [[ "$(echo $PAY | grep 'successful')" != "" && "$PAY" != "" ]]; then # DESTROY BILLET rm -Rf /home/$YOU/.zen/g1billets/$bpath # DESTROY PUBLIC CACHE in /tmp if [ -d "/tmp/billets_valides/$bpath" ]; then rm -Rf /tmp/billets_valides/$bpath fi SOLDE=$(silkaj_balance $PUBKEY) mess="[G1SMS] ENCAISSEMENT de $VALbillet $UNIT ($AMOUNTG1 G1) dans portefeuille $UIDNA ($PHONE) OK! Solde: $SOLDE G1" sms_SEND "$PHONE" "$mess" log "BILLETCHK DESTROY: $VALbillet $UNIT ($AMOUNTG1 G1)" log "=> $PUBKEY" else sms_ERROR "$PHONE" "Erreur! Transaction Impossible! Valeur du G1Billet $AMOUNTG1 G1. Contactez $ADMINPSEUDO : $ADMINPHONE" fi fi else sms_SEND "$PHONE" "BILLET \"$CODE\" INCONNU !!" fi [[ -d /home/$YOU/.zen/g1sms/$PHONE ]] && [[ $(whoami) == "root" ]] && chown -R $YOU /home/$YOU/.zen/g1sms/$PHONE log "END sms_BILLETCHK.sh" log "~~~~~~~~~~~~~~~~~~~~~~~~~~~~"