astroport/g1sms/sms_PAY.sh

96 lines
3.3 KiB
Bash
Raw Permalink Normal View History

2020-05-01 15:19:51 +02:00
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
2020-05-07 02:27:11 +02:00
# Version: 1.0
2020-05-01 15:19:51 +02:00
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
2020-05-12 23:25:52 +02:00
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
source $MY_PATH/init.sh
source $MY_PATH/functions.sh
2020-05-01 15:19:51 +02:00
log "__SUB:sms_PAY.sh: START ($1=PHONE, $2=PHONEDEST, $3=AMOUNT)"
phone="$1"
PHONEDEST="$2"
# Initialise PHONE, PIN, PUBKEY, UNIT
sms_INIT_ACCOUNT "$phone" "NOSMS"
2020-05-12 23:02:53 +02:00
2020-05-01 15:19:51 +02:00
if [[ $UNKNOWN == "unknown" ]]; then
sms_ERROR "$phone" "Porte-monnaie inconnu. Envoyez N (suivi de votre Pseudo membre) pour le créer."
2020-05-07 02:27:11 +02:00
exit 1
2020-05-01 15:19:51 +02:00
fi
###########################################################
# CALCULATE if wallet have enough for VIR+PERCENT
AMOUNT="$3"
accounting=($(make_accounting))
log "__SUB:sms_PAY.sh: $(declare -p accounting)"
testmin=${accounting[0]}
VIR=${accounting[1]}
PERCENT=${accounting[2]}
CHARGE=${accounting[3]}
if [[ $testmin -eq 0 ]]; then
2020-05-07 02:27:11 +02:00
sms_ERROR "$phone" "Solde de votre Porte-monnaie G1sms insuffisant. Minimum: $CHARGE G1! Rechargez avec https://cesium.app"
exit 1
2020-05-01 15:19:51 +02:00
fi
# Add COUNTRY code to PHONEDEST + PHONEDEST INIT
PHONEDEST="$COUNTRY${PHONEDEST:1:10}"
2020-05-05 04:41:17 +02:00
HPHONE=$(echo -n $PHONEDEST | sha256sum | cut -d ' ' -f 1)
2020-05-01 15:19:51 +02:00
# CHECK if PHONEDEST have an account in IPFS G1sms+ SWARM
if [[ -f /home/$YOU/.zen/ipfs_swarm/G1SMS/$HPHONE@*/_pub ]]
2020-05-01 15:19:51 +02:00
then
PUBKEYDEST=$(cat /home/$YOU/.zen/ipfs_swarm/G1SMS/$HPHONE@*/_pub)
UNITDEST=$(cat /home/$YOU/.zen/ipfs_swarm/G1SMS/$HPHONE@*/_unit)
2020-05-01 15:19:51 +02:00
else
# NO, then create NEW Wallet
sms_INIT_ACCOUNT "$PHONEDEST"
# Refreshed new values
PUBKEYDEST="$PUBKEY"
UNITDEST="$UNIT"
fi
2020-05-13 13:03:56 +02:00
duniter_server=$($MY_PATH/tools/duniter_getnode.sh)
2020-05-01 15:19:51 +02:00
# Payement
2020-05-21 02:34:16 +02:00
PAY=$(silkaj -p "$duniter_server" -af --file /home/$YOU/.zen/g1sms/$PHONE/secret.dunikey tx --output "$PUBKEYDEST" --amount "$VIR" --comment "[G1sms+] PAY" -y)
2020-05-07 02:27:11 +02:00
if [[ "$(echo $PAY | grep 'successful')" == "" || "$PAY" == "" ]]; then
sms_ERROR "$phone" "Problème de payement $PAY";
log "__SUB:sms_PAY.sh: Problème $PAY"
2020-05-01 15:19:51 +02:00
exit
fi
sleep 2
# + G1SMS Commission
2020-05-21 02:34:16 +02:00
COM=$(silkaj -p "$duniter_server" -af --file /home/$YOU/.zen/g1sms/$PHONE/secret.dunikey tx --output "$NODE_G1PUBKEY" --amount "$PERCENT" --comment "[G1sms+] Commission" -y)
2020-05-07 02:27:11 +02:00
if [[ "$(echo $COM | grep 'successful')" == "" || "$PAY" == "" ]]; then
sms_ERROR "$phone" "Problème de payement $COM";
log "__SUB:sms_PAY.sh: Problème $COM"
2020-05-01 15:19:51 +02:00
exit
fi
2020-05-12 11:01:52 +02:00
# LOG
2020-05-01 15:19:51 +02:00
log "__SUB:sms_PAY.sh: $1 => $2 = $3 $UNIT / SILKAJ == TxPay $PAY + TxCom $COM /"
# Send response SMS
mess_src="[G1sms+]
Envoi de $VIR G1 vers $PHONEDEST effectué!
+ Commission: $PERCENT G1"
sms_SEND "$phone" "$mess_src"
# Send dest SMS
mess_dest="[G1sms+] Bonjour.
2020-05-07 02:27:11 +02:00
Un(e) ami(e) ($phone) vient de vous envoyer $VIR G1 sur votre portefeuille G1SMS!
2020-05-01 15:19:51 +02:00
Envoyez D pour (D)étail.
A pour (A)ide..."
sms_SEND "$PHONEDEST" "$mess_dest"
2020-05-21 02:34:16 +02:00
[[ -d /home/$YOU/.zen/g1sms/$PHONEDEST ]] && [[ $(whoami) == "root" ]] && chown -R $YOU /home/$YOU/.zen/g1sms/$PHONEDEST
[[ -d /home/$YOU/.zen/g1sms/$phone ]] && [[ $(whoami) == "root" ]] && chown -R $YOU /home/$YOU/.zen/g1sms/$phone
2020-05-01 15:19:51 +02:00
log "__SUB:sms_PAY.sh: END ~~~~~~~~~~~~~~~~~~~~~~~~~~ "
exit