#!/bin/bash ################################################################################ # Author: Fred (support@qo-op.com) # Version: 1.0 # 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 "__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" if [[ $UNKNOWN == "unknown" ]]; then sms_ERROR "$phone" "Porte-monnaie inconnu. Envoyez N (suivi de votre Pseudo membre) pour le créer." exit 1 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 sms_ERROR "$phone" "Solde de votre Porte-monnaie G1sms insuffisant. Minimum: $CHARGE G1! Rechargez avec https://cesium.app" exit 1 fi # Add COUNTRY code to PHONEDEST + PHONEDEST INIT PHONEDEST="$COUNTRY${PHONEDEST:1:10}" HPHONE=$(echo -n $PHONEDEST | sha256sum | cut -d ' ' -f 1) # CHECK if PHONEDEST have an account in IPFS G1sms+ SWARM if [[ -f /home/$YOU/.zen/ipfs_swarm/G1SMS/$HPHONE@*/_pub ]] then PUBKEYDEST=$(cat /home/$YOU/.zen/ipfs_swarm/G1SMS/$HPHONE@*/_pub) UNITDEST=$(cat /home/$YOU/.zen/ipfs_swarm/G1SMS/$HPHONE@*/_unit) else # NO, then create NEW Wallet sms_INIT_ACCOUNT "$PHONEDEST" # Refreshed new values PUBKEYDEST="$PUBKEY" UNITDEST="$UNIT" fi duniter_server=$($MY_PATH/tools/duniter_getnode.sh) # Payement PAY=$(silkaj -p "$duniter_server" -af --file /home/$YOU/.zen/g1sms/$PHONE/secret.dunikey tx --output "$PUBKEYDEST" --amount "$VIR" --comment "[G1sms+] PAY" -y) if [[ "$(echo $PAY | grep 'successful')" == "" || "$PAY" == "" ]]; then sms_ERROR "$phone" "Problème de payement $PAY"; log "__SUB:sms_PAY.sh: Problème $PAY" exit fi sleep 2 # + G1SMS Commission COM=$(silkaj -p "$duniter_server" -af --file /home/$YOU/.zen/g1sms/$PHONE/secret.dunikey tx --output "$NODE_G1PUBKEY" --amount "$PERCENT" --comment "[G1sms+] Commission" -y) if [[ "$(echo $COM | grep 'successful')" == "" || "$PAY" == "" ]]; then sms_ERROR "$phone" "Problème de payement $COM"; log "__SUB:sms_PAY.sh: Problème $COM" exit fi # LOG 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. Un(e) ami(e) ($phone) vient de vous envoyer $VIR G1 sur votre portefeuille G1SMS! Envoyez D pour (D)étail. A pour (A)ide..." sms_SEND "$PHONEDEST" "$mess_dest" [[ -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 log "__SUB:sms_PAY.sh: END ~~~~~~~~~~~~~~~~~~~~~~~~~~ " exit