G1sms/shell/sms_BILLETCHK.sh

77 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# 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/)
source ./shell/init.sh
source ./shell/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 "./billets/$bpath" ]
then
SECRET=$(cat "./billets/$bpath/note.secret")
SALT=$(cat "./billets/$bpath/note.salt")
VALbillet=$(cat "./billets/$bpath/note.value")
UNIT=$(cat "./billets/$bpath/note.unit")
BILLETPUBKEY=$(cat "./billets/$bpath/note.pubkey")
AMOUNTG1=$(./silkaj/silkaj -p g1.presles.fr:443 amount "$BILLETPUBKEY")
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)"
log_history $PHONE "BILLET_CHK, $AMOUNTG1, $bpath"
else
# TRANSFER & DESTROY
sms_INIT_ACCOUNT "$PHONE" "NOSMS"
if [[ "$UNKNOWN" == "unknown" ]]; then
# Account creation
sms_INIT_ACCOUNT "$PHONE"
fi
log "./silkaj/silkaj transaction -p g1.presles.fr:443 --auth-scrypt -salt=\"$CODE\" -password=\"$SEC$SALT\" --amount=\"$AMOUNTG1\" --output=\"$PUBKEY\" --comment=\"THIRD_PARTY_MANAGER:$NODE_G1PUBKEY:G1SMS:ENCAISSEMENT:$CODE\" -y"
PAY=$(./silkaj/silkaj transaction -p g1.presles.fr:443 --auth-scrypt -salt="$CODE" -password="$SEC$SALT" --amount="$AMOUNTG1" --output="$PUBKEY" --comment="THIRD_PARTY_MANAGER:$NODE_G1PUBKEY:ENCAISSEMENT:$CODE" -y)
if [[ "$(echo $PAY | cut -d '|' -f 1)" != "KO" ]]; then
# DESTROY BILLET
rm -Rf ./billets/$bpath
# DESTROY PUBLIC CACHE in /tmp
if [ -d "/tmp/billets_valides/$bpath" ]; then
rm -Rf /tmp/billets_valides/$bpath
fi
SOLDE=$(./silkaj/silkaj amount "$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"
log_history $PHONE "BILLET_CHK, $AMOUNTG1, $bpath, $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 !!"
log_history $PHONE "BILLET_CHK, ERROR, $bpath"
fi
log "END sms_BILLETCHK.sh"
log "~~~~~~~~~~~~~~~~~~~~~~~~~~~~"