#!/bin/bash ################################################################################ # Author: Fred (support@qo-op.com) # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ source ./init.sh source ./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" pin=$PIN if [[ $UNKNOWN == "unknown" ]]; then sms_ERROR "$phone" "Porte-monnaie inconnu. Envoyez N (suivi de votre Pseudo membre) pour le créer." exit 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 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 ~/.zen/ipfs_swarm/.Qm*/G1SMS/$HPHONE/_pub ]] then PUBKEYDEST=$(cat ~/.zen/ipfs_swarm/.Qm*/G1SMS/$HPHONE/_pub) UNITDEST=$(cat ~/.zen/ipfs_swarm/.Qm*/G1SMS/$HPHONE/_unit) else # NO, then create NEW Wallet sms_INIT_ACCOUNT "$PHONEDEST" # Refreshed new values PUBKEYDEST="$PUBKEY" UNITDEST="$UNIT" fi # Payement PAY=$(./timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $PAY"; log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $PAY" exit fi sleep 2 # + G1SMS Commission COM=$(./timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] Commission" -y) if [[ "$(echo $COM | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then new=$(./checknodes.sh "BAN") sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $COM"; log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $COM" exit fi # LOG ACCOUNT HISTORY EVENTS log "__SUB:sms_PAY.sh: $1 => $2 = $3 $UNIT / SILKAJ == TxPay $PAY + TxCom $COM /" log_history $phone "PAY, $VIR, $PHONEDEST, $PUBKEYDEST" # 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" log "__SUB:sms_PAY.sh: END ~~~~~~~~~~~~~~~~~~~~~~~~~~ " exit