Add pay meca

This commit is contained in:
poka 2020-07-22 21:12:27 +02:00
parent c93b5bc661
commit 8edca7d441
3 changed files with 64 additions and 35 deletions

View File

@ -6,8 +6,8 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
[[ -n $MY_PATH/.env ]] && source $MY_PATH/.env || (echo "Please create $MY_PATH/.env as $MY_PATH/.env.example" && exit 1) [[ -n $MY_PATH/.env ]] && source $MY_PATH/.env || (echo "Please create $MY_PATH/.env as $MY_PATH/.env.example" && exit 1)
sendmsg() { sendmsg() {
chan="$1" local chan="$1"
msg="${@:2}" local msg="${@:2}"
[[ ! $chan || ! $msg ]] && echo "Please select user and message." && exit 0 [[ ! $chan || ! $msg ]] && echo "Please select user and message." && exit 0
@ -19,35 +19,41 @@ sendmsg() {
} }
info_account() { info_account() {
chan="$1" local chan="$1"
[[ ! $chan ]] && echo "Please select user." && exit 0 [[ ! $chan ]] && echo "Please select user." && exit 0
homedir="$HOME/.bog/ids/axiomchat/$chan" local homedir="$HOME/.bog/ids/axiomchat/$chan"
if [[ -d $homedir ]]; then if [[ -d $homedir ]]; then
source $homedir/db source $homedir/db
echo "Voici les identifiants de connexion de votre ḠCompte:" sendmsg $chan "Voici les identifiants de connexion de votre ḠCompte: \n \
echo -e "Login: **$salt**\nMot de passe: **$pepper**\nClé publique: **$pubkey**" Login: **$salt**\nMot de passe: **$pepper**\nClé publique: **$pubkey** \n \
Calcul du solde de votre compte en cours ..."
local solde=$($silkaj balance $pubkey | grep "Total Quantitative" | awk -F= '{ print $2 }' | cut -c2-)
echo "Votre solde est de **$solde**"
else else
echo "Vous n'avez pas de compte chez nous." echo "Vous n'avez pas de compte chez nous."
fi fi
} }
init_account() { init_account() {
chan="$1" local chan="$1"
[[ ! $chan ]] && echo "Please select user." && exit 0 [[ ! $chan ]] && echo "Please select user." && exit 0
homedir="$HOME/.bog/ids/axiomchat/$chan" local homedir="$HOME/.bog/ids/axiomchat/$chan"
if [[ -f $homedir/secret.dunikey ]]; then if [[ -f $homedir/secret.dunikey ]]; then
pubkey=$(cat $homedir/secret.dunikey| grep "pub: " | awk '{ print $2 }') pubkey=$(cat $homedir/secret.dunikey| grep "pub: " | awk '{ print $2 }')
echo "Vous disposez déjà d'un portefeuille Ḡ1: **$pubkey**" echo "Vous disposez déjà d'un portefeuille Ḡ1: **$pubkey**"
exit 0 exit 0
else
sendmsg $dest "Création de votre portefeuille..."
fi fi
# LOGIN (=SALT) # LOGIN (=SALT)
salt="$($MY_PATH/../dunikey/diceware.sh 6)" local salt="$($MY_PATH/../dunikey/diceware.sh 6)"
# PASS (=PEPPER) # PASS (=PEPPER)
pepper="$($MY_PATH/../dunikey/diceware.sh 4)" local pepper="$($MY_PATH/../dunikey/diceware.sh 4)"
# The pubkey for this salt/papper peer # The pubkey for this salt/papper peer
pubkey=$(python3 $MY_PATH/../dunikey/key_create_dunikey.py "$salt" "$pepper") local pubkey=$(python3 $MY_PATH/../dunikey/key_create_dunikey.py "$salt" "$pepper")
[[ ! -f /tmp/secret.dunikey ]] && echo "Arf, problem happens making your secret.dunikey" && exit 0 [[ ! -f /tmp/secret.dunikey ]] && echo "Arf, problem happens making your secret.dunikey" && exit 0
[[ ! -d $homedir ]] && mkdir -p $homedir [[ ! -d $homedir ]] && mkdir -p $homedir
@ -55,14 +61,14 @@ init_account() {
echo -e "salt=\"$salt\"\npepper=\"$pepper\"\npubkey=\"$pubkey\"" > $homedir/db echo -e "salt=\"$salt\"\npepper=\"$pepper\"\npubkey=\"$pubkey\"" > $homedir/db
info_account $chan # info_account $chan
# echo "Pubkey: **$pubkey**" echo -e "Votre ḠCompte a bien été créé.\nPubkey: **$pubkey**"
} }
rm_account() { rm_account() {
chan="$1" local chan="$1"
[[ ! $chan ]] && echo "Please select user." && exit 0 [[ ! $chan ]] && echo "Please select user." && exit 0
homedir="$HOME/.bog/ids/axiomchat/$chan" local homedir="$HOME/.bog/ids/axiomchat/$chan"
if [[ -d $homedir ]]; then if [[ -d $homedir ]]; then
source $homedir/db source $homedir/db
@ -75,4 +81,30 @@ rm_account() {
fi fi
} }
tx() {
local chan="$1"
local dest="$2"
local amount=$(echo "$3" | tr ',' '.')
local comment="${@:4}"
local homedir="$HOME/.bog/ids/axiomchat/$chan"
! [[ $dest && $amount ]] && echo "Des arguments sont manquants. Ex: pay Do99s6wQR2JLfhirPdpAERSjNbmjjECzGxHNJMiNKT3p 10 Merci pour la tarte" && exit 0
#This shoudl works, but accents are ok and should not... [[ ! "$comment" =~ [^a-zA-Z0-9\ ] ]] && echo OK
[[ "$comment" =~ [^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-?:'('')'.+\ ] ]] && echo "Votre commentaire contient des charactères non autorisés." && exit 0
[[ -z "$comment" ]] && local comment="Transaction effectuee avec BoG."
local result=$($silkaj --auth-file --file ~/.bog/ids/axiomchat/$chan/secret.dunikey tx --amount $amount --output $dest --comment "$comment" -y)
echo "\`\`\`$result\`\`\`"
}
history() {
local chan="$1"
local homedir="$HOME/.bog/ids/axiomchat/$chan"
source $homedir/db
local result=$($silkaj history $pubkey)
echo "\`\`\`$result\`\`\`"
}
#[[ $(type $@ | grep "est une fonction") ]] && $@ || echo "Veuillez préciser votre commande" #[[ $(type $@ | grep "est une fonction") ]] && $@ || echo "Veuillez préciser votre commande"

View File

@ -1,7 +1,12 @@
#!/bin/bash #!/bin/bash
node="http://192.168.9.54:45000" MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
[[ -n $MY_PATH/.env ]] && source $MY_PATH/.env || (echo "Please create $MY_PATH/.env as $MY_PATH/.env.example" && exit 1)
source $MY_PATH/functions.sh
# Get Ḡ1 pubkey base on pseudo
pubkey() { pubkey() {
url="$node/wot/members" url="$node/wot/members"
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ') args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
@ -12,6 +17,7 @@ pubkey() {
[[ $pubkey ]] && echo "@$username Ta clé publique Ğ1 est: $pubkey" || echo "@$username n'est pas pseudo membre de la Ḡ1" [[ $pubkey ]] && echo "@$username Ta clé publique Ğ1 est: $pubkey" || echo "@$username n'est pas pseudo membre de la Ḡ1"
} }
# Get Ḡ1 pseudo base on pubkey
pseudo() { pseudo() {
url="$node/wot/members" url="$node/wot/members"
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ') args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
@ -25,7 +31,7 @@ pseudo() {
silkaj() { silkaj() {
args=$(echo "$@" | tr ' ' '\n' | grep -vEw 'silkaj|biz' | tr '\n' ' ') args=$(echo "$@" | tr ' ' '\n' | grep -vEw 'silkaj|biz' | tr '\n' ' ')
/usr/bin/silkaj $args || echo "Silkaj ne comprends cette commande." $silkaj $args || echo "Silkaj ne comprends cette commande."
} }
membres() { membres() {

View File

@ -5,24 +5,19 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
source $MY_PATH/functions.sh source $MY_PATH/functions.sh
#args=$(echo "$@" | tr ' ' '\n' | grep -vEwi 'gbanque|gb|biz' | tr '\n' ' ')
args=$(echo "$@" | awk -F '~~~' '{ print $2 }' | tr ' ' '\n' | grep -vEwi 'gbanque|gb|biz' | tr '\n' ' ') args=$(echo "$@" | awk -F '~~~' '{ print $2 }' | tr ' ' '\n' | grep -vEwi 'gbanque|gb|biz' | tr '\n' ' ')
cmd=$(echo $args | awk '{ print $1 }') cmd=$(echo "$args" | awk '{ print $1 }')
user=$(echo $@ | awk -F '~~~' '{ print $3 }') args=$(echo "$args" | awk '{$1=""; print $0}')
room=$(echo $@ | awk -F '~~~' '{ print $4 }') user=$(echo "$@" | awk -F '~~~' '{ print $3 }')
room=$(echo "$@" | awk -F '~~~' '{ print $4 }')
[[ $room == "undefined" ]] && dest="@$user" || dest="#$room" [[ $room == "undefined" ]] && dest="@$user" || dest="#$room"
test() {
echo "Je suis là."
}
init() { init() {
## Récupération depuis Ḡ1SMS ## Récupération depuis Ḡ1SMS
## ./shell/sms_NEW.sh "$PHONE" "$MEMBERUID" & ## ./shell/sms_NEW.sh "$PHONE" "$MEMBERUID" &
## ./silkaj/silkaj generate_auth_file --auth-scrypt -salt="$PHONE" -password="$PIN" ## ./silkaj/silkaj generate_auth_file --auth-scrypt -salt="$PHONE" -password="$PIN"
sendmsg $dest "Création de votre portefeuille..."
# echo "Cette conversation continue en privé @$user - @biz" # echo "Cette conversation continue en privé @$user - @biz"
## TODO: Définir le workflow g1sms ## TODO: Définir le workflow g1sms
@ -30,15 +25,11 @@ init() {
} }
remove() { remove() { rm_account $dest; }
rm_account $dest info() { info_account $dest; }
} pay() { tx $dest $args; }
history() { history $dest; }
info() { [[ "$cmd" =~ ^(init|remove|info|pay|history)$ ]] && "$cmd" || echo "Veuillez indiquer une commande valide"
info_account $dest
}
[[ "$cmd" =~ ^(init|remove|info)$ ]] && $cmd || echo "Veuillez indiquer une commande valide"
#[[ $(type $cmd | grep "est une fonction") ]] && $cmd || echo "Veuillez préciser votre commande"
exit 0 exit 0