astroport/g1sms/sms_VIR.sh

109 lines
4.1 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_VIR.sh: START ($1=phone, $2=AMOUNT, $3=VIRDEST)"
phone="$1"
AMOUNT="$2"
VIRDEST="$3"
# Initialise PHONE, PIN, PUBKEY, UNIT
sms_INIT_ACCOUNT "$phone" "NOSMS"
if [[ $MEMBER == "" ]]; then MEMBER=$UIDNA; fi
member=$MEMBER
if [[ "$AMOUNT" == "" ]]; then
sms_ERROR "$phone" "Montant incorrect!!
Ex:
VIR 100, pour virer 100 $UNIT vers votre compte relié.
2020-05-07 02:27:11 +02:00
VIR 100 $ADMINPSEUDO, pour virer 100 $UNIT à $ADMINPSEUDO"
exit 1
2020-05-01 15:19:51 +02:00
fi
###########################################################
# CALCULATE if wallet have enough for VIR+PERCENT
AMOUNT="$2"
2020-05-07 02:27:11 +02:00
accounting=($(make_accounting))
2020-05-01 15:19:51 +02:00
log "__SUB:sms_VIR.sh: $(declare -p accounting)"
testmin=${accounting[0]}
VIR=${accounting[1]}
PERCENT=${accounting[2]}
if [[ $testmin -eq 0 ]]; then
sms_ERROR "$PHONE" "Solde de votre Porte-monnaie G1sms insuffisant. Minimum $VIR + $LIMIT G1! Rechargez par Cesium."
exit
fi
###########################################################
# FIND VIRDEST into wallets, wallest-swarm OR duniter (silkaj)
if [[ "$VIRDEST" == "" || "$VIRDEST" == "$MEMBER" ]]; then
# VIR TO MEMBER PHONE OWNER
DESTMEM="$MEMBER"
DESTRIB="$MEMRIB"
log "__SUB:sms_VIR.sh: SEND TO MEMBER related wallet!!! $DESTRIB "
else
log "__SUB:sms_VIR.sh: SEARCH $VIRDEST related wallet!!! $DESTRIB "
DESTMEM="$VIRDEST"
# SEARCH IN WALLETS
2020-05-21 02:34:16 +02:00
LOCAL=$(grep -Rwl "$DESTMEM" /home/$YOU/.zen/g1sms/*/_uidname | tail -n 1 | cut -f 6 -d '/')
if [[ "$LOCAL" == "" ]]; then LOCAL=$(grep -Rwl "$DESTMEM" /home/$YOU/.zen/g1sms/*/_uidna | tail -n 1 | cut -f 6 -d '/'); fi
2020-05-01 15:19:51 +02:00
if [[ "$LOCAL" != "" ]]; then
# LOCAL G1sms account
2020-05-21 02:34:16 +02:00
DESTRIB=$(cat /home/$YOU/.zen/g1sms/$LOCAL/_pub)
2020-05-01 15:19:51 +02:00
DESTPHONE=$LOCAL
log "__SUB:sms_VIR.sh: FOUND LOCAL ($MASTERPHONE) G1sms+ wallet: $DESTRIB ($LOCAL)"
else
2020-05-07 02:27:11 +02:00
##################### REWRITE TODO
2020-05-01 15:19:51 +02:00
# SEARCH IN WALLETS SWARM (MEMBER THEN UIDNA)
2020-05-21 02:34:16 +02:00
# INSWARM=$(grep -Rwl "$DESTMEM" /home/$YOU/.zen/g1sms_swarm/*/*.uidname | tail -n 1 | cut -f 6 -d '/')
# if [[ "$INSWARM" == "" ]]; then INSWARM=$(grep -Rwl "$DESTMEM" /home/$YOU/.zen/g1sms_swarm/*/*.uidna | tail -n 1 | cut -f 6 -d '/'); fi
2020-05-07 02:27:11 +02:00
# if [[ "$INSWARM" != "" ]]; then
2020-05-21 02:34:16 +02:00
# REMOTENODE=$(cat /home/$YOU/.zen/g1sms_swarm/$INSWARM/MASTERPHONE.sms)
# DESTRIB=$(cat /home/$YOU/.zen/g1sms_swarm/$INSWARM/$INSWARM.pub)
2020-05-07 02:27:11 +02:00
# DESTPHONE=$INSWARM
# log "__SUB:sms_VIR.sh: FOUND SWARM ($REMOTENODE) G1sms+ wallet: $DESTRIB ($INSWARM)"
# else
##################### REWRITE TODO
2020-05-01 15:19:51 +02:00
# SEARCH WITH SILKAJ
DESTRIB=$(silkaj id "$DESTMEM" | grep -w "$DESTMEM" | awk '{print $2}')
2020-05-01 15:19:51 +02:00
log "__SUB:sms_VIR.sh: OUT OFF SWARM MEMBER wallet: $DESTRIB"
2020-05-07 02:27:11 +02:00
# fi
2020-05-01 15:19:51 +02:00
fi
fi
2020-05-07 02:27:11 +02:00
2020-05-01 15:19:51 +02:00
if [[ "$DESTRIB" != "" ]]; then
2020-05-13 13:03:56 +02:00
duniter_server=$($MY_PATH/tools/duniter_getnode.sh)
2020-05-21 02:34:16 +02:00
PAY=$(silkaj -p "$duniter_server" -af --file /home/$YOU/.zen/g1sms/$PHONE/secret.dunikey tx --output "$DESTRIB" --amount "$VIR" --comment "[G1sms+] VIR $VIR G1" -y)
2020-05-07 02:27:11 +02:00
if [[ "$(echo $PAY | grep 'successful')" != "" && "$PAY" != "" ]]; then
2020-05-01 15:19:51 +02:00
log "__SUB:sms_VIR.sh: VIREMENT VERS $DESTMEM OK"
mess="[G1sms+] $MEMBER
$PAY"
sms_SEND "$PHONE" "$mess"
# Send DESTPHONE sms
if [[ "$DESTPHONE" != "" ]]; then
sms_SEND "$DESTPHONE" "Bonjour $DESTMEM. Vous venez de recevoir un virement de $AMOUNT $UNIT ($VIR G1) de la part de $member portefeuille $UIDNA"
fi
else
2020-05-07 02:27:11 +02:00
sms_SEND "$ADMINPHONE" "$PAY";
2020-05-01 15:19:51 +02:00
fi
2020-05-21 02:34:16 +02:00
[[ -d /home/$YOU/.zen/g1sms/$PHONE ]] && [[ $(whoami) == "root" ]] && chown -R $YOU /home/$YOU/.zen/g1sms/$PHONE
2020-05-01 15:19:51 +02:00
else
log "__SUB:sms_VIR.sh: ERROR $MEMBER: $DESTMEM DESTRIB NOT FOUND"
mess="[G1sms+] Virement annulé...
Membre: $DESTMEM inconnu! Vérifiez son existence."
sms_SEND "$PHONE" "$mess"
fi
log "__SUB:sms_VIR.sh: END ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
exit