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)
sendmsg() {
chan="$1"
msg="${@:2}"
local chan="$1"
local msg="${@:2}"
[[ ! $chan || ! $msg ]] && echo "Please select user and message." && exit 0
@ -19,35 +19,41 @@ sendmsg() {
}
info_account() {
chan="$1"
local chan="$1"
[[ ! $chan ]] && echo "Please select user." && exit 0
homedir="$HOME/.bog/ids/axiomchat/$chan"
local homedir="$HOME/.bog/ids/axiomchat/$chan"
if [[ -d $homedir ]]; then
source $homedir/db
echo "Voici les identifiants de connexion de votre ḠCompte:"
echo -e "Login: **$salt**\nMot de passe: **$pepper**\nClé publique: **$pubkey**"
sendmsg $chan "Voici les identifiants de connexion de votre ḠCompte: \n \
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
echo "Vous n'avez pas de compte chez nous."
fi
}
init_account() {
chan="$1"
local chan="$1"
[[ ! $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
pubkey=$(cat $homedir/secret.dunikey| grep "pub: " | awk '{ print $2 }')
echo "Vous disposez déjà d'un portefeuille Ḡ1: **$pubkey**"
exit 0
else
sendmsg $dest "Création de votre portefeuille..."
fi
# LOGIN (=SALT)
salt="$($MY_PATH/../dunikey/diceware.sh 6)"
local salt="$($MY_PATH/../dunikey/diceware.sh 6)"
# PASS (=PEPPER)
pepper="$($MY_PATH/../dunikey/diceware.sh 4)"
local pepper="$($MY_PATH/../dunikey/diceware.sh 4)"
# 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
[[ ! -d $homedir ]] && mkdir -p $homedir
@ -55,14 +61,14 @@ init_account() {
echo -e "salt=\"$salt\"\npepper=\"$pepper\"\npubkey=\"$pubkey\"" > $homedir/db
info_account $chan
# echo "Pubkey: **$pubkey**"
# info_account $chan
echo -e "Votre ḠCompte a bien été créé.\nPubkey: **$pubkey**"
}
rm_account() {
chan="$1"
local chan="$1"
[[ ! $chan ]] && echo "Please select user." && exit 0
homedir="$HOME/.bog/ids/axiomchat/$chan"
local homedir="$HOME/.bog/ids/axiomchat/$chan"
if [[ -d $homedir ]]; then
source $homedir/db
@ -75,4 +81,30 @@ rm_account() {
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"

View File

@ -1,7 +1,12 @@
#!/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() {
url="$node/wot/members"
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"
}
# Get Ḡ1 pseudo base on pubkey
pseudo() {
url="$node/wot/members"
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
@ -25,7 +31,7 @@ pseudo() {
silkaj() {
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() {

View File

@ -5,24 +5,19 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
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' ' ')
cmd=$(echo $args | awk '{ print $1 }')
user=$(echo $@ | awk -F '~~~' '{ print $3 }')
room=$(echo $@ | awk -F '~~~' '{ print $4 }')
cmd=$(echo "$args" | awk '{ print $1 }')
args=$(echo "$args" | awk '{$1=""; print $0}')
user=$(echo "$@" | awk -F '~~~' '{ print $3 }')
room=$(echo "$@" | awk -F '~~~' '{ print $4 }')
[[ $room == "undefined" ]] && dest="@$user" || dest="#$room"
test() {
echo "Je suis là."
}
init() {
## Récupération depuis Ḡ1SMS
## ./shell/sms_NEW.sh "$PHONE" "$MEMBERUID" &
## ./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"
## TODO: Définir le workflow g1sms
@ -30,15 +25,11 @@ init() {
}
remove() {
rm_account $dest
}
remove() { rm_account $dest; }
info() { info_account $dest; }
pay() { tx $dest $args; }
history() { history $dest; }
info() {
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"
[[ "$cmd" =~ ^(init|remove|info|pay|history)$ ]] && "$cmd" || echo "Veuillez indiquer une commande valide"
exit 0