various twik + auto unplug PLAYER account v0.1
This commit is contained in:
parent
85eb8221ee
commit
7888a31830
|
@ -164,32 +164,43 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
[[ ${WHAT} == "" ]] && echo "<br> Missing amount <br>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
[[ ${VAL} == "" || ${VAL} == "undefined" ]] && echo "<br> Missing Destination PublicKey <br>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
VAL=$(echo "$VAL" | cut -d ':' -f 1)
|
||||
G1DEST=$(echo "$VAL" | cut -d ':' -f 1) ## G1PUB:CHK format
|
||||
CHK=$(echo "$VAL" | cut -d ':' -f 2) ## G1 CHECKSUM or ZEN
|
||||
if [[ ${CHK::3} != "ZEN" ]]; then
|
||||
echo "INVALID ZENCARD"
|
||||
echo "<br>INVALID ZENCARD" >> ~/.zen/tmp/${MOATS}/disco
|
||||
(
|
||||
cat ~/.zen/tmp/${MOATS}/disco | nc -l -p ${PORT} -q 1 > /dev/null 2>&1
|
||||
echo "BLURP $PORT" && rm -Rf ~/.zen/tmp/${MOATS}
|
||||
) &
|
||||
exit 0
|
||||
fi
|
||||
|
||||
## GET DESTINATION ACCOUNT AMOUNT
|
||||
DESTM=$(${MY_PATH}/../tools/COINScheck.sh ${VAL} | tail -n 1)
|
||||
DESTM=$(${MY_PATH}/../tools/COINScheck.sh ${G1DEST} | tail -n 1)
|
||||
|
||||
if [[ ${APPNAME} == "pay" ]]; then
|
||||
|
||||
if [[ ${WHAT} != "" && ${VAL} != "" && ${CURCOINS} != "null" && ${CURCOINS} != "" && ${CURCOINS} > ${WHAT} ]]; then
|
||||
if [[ ${WHAT} != "" && ${G1DEST} != "" && ${CURCOINS} != "null" && ${CURCOINS} != "" && ${CURCOINS} > ${WHAT} ]]; then
|
||||
## COMMAND A PAYMENT (less than 999.99)
|
||||
if [[ ${WHAT} =~ ^-?[0-9]{1,3}(\.[0-9]{1,2})?$ ]]; then
|
||||
|
||||
## CREATE game pending TX
|
||||
mkdir -p $HOME/.zen/game/pending/${G1PUB}/
|
||||
PENDING="$HOME/.zen/game/pending/${G1PUB}/${MOATS}_${VAL}+${WHAT}.TX"
|
||||
PENDING="$HOME/.zen/game/pending/${G1PUB}/${MOATS}_${G1DEST}+${WHAT}.TX"
|
||||
echo "START" > ${PENDING}
|
||||
######################## ~/.zen/game/pending/*/*_G1WHO+*.TX
|
||||
if [[ ! -f ~/.zen/game/pending/*/*_${VAL}+*.TX ]]; then
|
||||
if [[ ! -f ~/.zen/game/pending/*/*_${G1DEST}+*.TX ]]; then
|
||||
# MAKE PAYMENT
|
||||
echo "${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${VAL} -c 'ASTROID:${MOATS}' -m"
|
||||
echo "${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${G1DEST} -c 'ASTROID:${MOATS}' -m"
|
||||
${MY_PATH}/../tools/timeout.sh -t 5 \
|
||||
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${VAL} -c "ASTROID:${MOATS}" -m 2>&1 >> ~/.zen/tmp/${MOATS}/disco
|
||||
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${G1DEST} -c "ASTROID:${MOATS}" -m 2>&1 >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
if [ $? == 0 ]; then
|
||||
echo "SENT" > ${PENDING} ## _12345.sh run MONITOR checking CHAIN REJECTION
|
||||
## CHANGE COINS CACHE
|
||||
COINSFILE="$HOME/.zen/tmp/coucou/${G1PUB}.COINS"
|
||||
DESTFILE="$HOME/.zen/tmp/coucou/${VAL}.COINS"
|
||||
DESTFILE="$HOME/.zen/tmp/coucou/${G1DEST}.COINS"
|
||||
|
||||
CUR=$(cat "${COINSFILE}")
|
||||
if [[ ! -z "$CUR" && "$CUR" != "null" ]]; then
|
||||
|
@ -212,12 +223,12 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
|
||||
## VERIFY AND INFORM OR CONFIRM PAYMENT
|
||||
|
||||
echo "<h1>OPERATION</h1> <h3>${G1PUB} <br> $CUR - ${WHAT}</h3> <h3>${VAL} <br> $DES + ${WHAT} </h3><h2>OK</h2>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
echo "<h1>OPERATION</h1> <h3>${G1PUB} <br> $CUR - ${WHAT}</h3> <h3>${G1DEST} <br> $DES + ${WHAT} </h3><h2>OK</h2>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
else
|
||||
|
||||
## INFORM SYSTEM MUST RENEW OPERATION
|
||||
echo "NOK" > $HOME/.zen/game/pending/${G1PUB}/${MOATS}_${VAL}+${WHAT}.TX
|
||||
echo "NOK" > $HOME/.zen/game/pending/${G1PUB}/${MOATS}_${G1DEST}+${WHAT}.TX
|
||||
echo "<h2>BLOCKCHAIN CONNEXION ERROR</h2><h1>- PLEASE RETRY -</h1>\
|
||||
if the problem persists, please contact support@qo-op.com" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
|
@ -240,7 +251,7 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
|
||||
else
|
||||
|
||||
echo "<h2>${WHAT} ${VAL} ${CURCOINS} GLOBAL ERROR</h2>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
echo "<h2>${WHAT} ${G1DEST} ${CURCOINS} GLOBAL ERROR</h2>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
fi
|
||||
|
||||
|
@ -286,15 +297,15 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
|
||||
if [[ ${APPNAME} == "friend" ]]; then
|
||||
|
||||
# CHECK IF ${VAL} HAS A PROFILE
|
||||
# CHECK IF ${G1DEST} HAS A PROFILE
|
||||
${MY_PATH}/../tools/timeout.sh -t 5 \
|
||||
curl -s ${myDATA}/user/profile/${VAL} > ~/.zen/tmp/${MOATS}/gchange.json
|
||||
curl -s ${myDATA}/user/profile/${G1DEST} > ~/.zen/tmp/${MOATS}/gchange.json
|
||||
|
||||
## Send ॐ★ॐ
|
||||
[[ -s ~/.zen/tmp/${MOATS}/gchange.json ]] \
|
||||
&& ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key stars -p ${VAL} -n ${WHAT} >> ~/.zen/tmp/${MOATS}/disco \
|
||||
&& ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key stars -p ${G1DEST} -n ${WHAT} >> ~/.zen/tmp/${MOATS}/disco \
|
||||
&& rm ~/.zen/tmp/${MOATS}/gchange.json \
|
||||
|| echo "/${VAL} profile is not existing yet..." >> ~/.zen/tmp/${MOATS}/disco
|
||||
|| echo "/${G1DEST} profile is not existing yet..." >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
fi
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
################################################################################
|
||||
## API: UPLANET
|
||||
## Dedicated to OSM2IPFS & UPlanet Client App
|
||||
# ?uplanet=EMAIL&salt=LAT&pepper=LON&g1pub=PASS
|
||||
# ?uplanet=EMAIL&zlat=LAT&zlon=LON&g1pub=PASS
|
||||
## https://git.p2p.legal/qo-op/OSM2IPFS
|
||||
################################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
|
@ -50,9 +50,9 @@ mkdir -p ~/.zen/tmp/${MOATS}/
|
|||
|
||||
## GET & VERIFY PARAM
|
||||
PLAYER=${THAT}
|
||||
[[ ${PLAYER} == "salt" ]] && PLAYER="@"
|
||||
[[ ${PLAYER} == "zlat" ]] && PLAYER="@"
|
||||
|
||||
[[ ${AND} != "salt" ]] \
|
||||
[[ ${AND} != "zlat" ]] \
|
||||
&& (echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0
|
||||
|
||||
SALT=${THIS}
|
||||
|
@ -76,7 +76,7 @@ fi
|
|||
|
||||
PEPPER=${WHAT}
|
||||
|
||||
[[ ${APPNAME} != "pepper" ]] \
|
||||
[[ ${APPNAME} != "zlon" ]] \
|
||||
&& (echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0
|
||||
|
||||
[[ ${PEPPER} == "0" ]] && PEPPER="0.00"
|
||||
|
|
|
@ -130,6 +130,7 @@ for PLAYER in ${PLAYERONE[@]}; do
|
|||
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||
--output ~/.zen/tmp/${MOATS} \
|
||||
--render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ## Astroport Tiddler
|
||||
BIRTHDATE=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].birthdate)
|
||||
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) ## Raccorded G1Station IPNS address
|
||||
CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part
|
||||
[[ ${CURCHAIN} == "" || ${CURCHAIN} == "null" ]] \
|
||||
|
@ -163,7 +164,7 @@ for PLAYER in ${PLAYERONE[@]}; do
|
|||
if [[ ${IPNSTAIL} != ${IPFSNODEID} || ${IPNSTAIL} == "_ASTROPORT_" ]]; then
|
||||
echo "> I AM ${IPFSNODEID} : PLAYER MOVED TO ${IPNSTAIL} : EJECTION "
|
||||
echo "UNPLUG PLAYER"
|
||||
${MY_PATH}/../tools/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}"
|
||||
${MY_PATH}/../tools/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "FREE"
|
||||
echo ">>>> ASTRONAUT ${PLAYER} TW CAPSULE EJECTION TERMINATED"
|
||||
continue
|
||||
fi
|
||||
|
@ -285,7 +286,21 @@ for PLAYER in ${PLAYERONE[@]}; do
|
|||
--output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]'
|
||||
[[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json ]] && echo "NO ${PLAYER} RSS - BAD ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json -"
|
||||
|
||||
## CHECK FOR EMPTY RSS + 30 DAYS BIRTHDATE
|
||||
##################################
|
||||
#### PLAYER ACCOUNT CLEANING #########
|
||||
## CHECK FOR EMPTY RSS + 30 DAYS BIRTHDATE + null G1
|
||||
[[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]] \
|
||||
&& echo "RSS IS EMPTY" \
|
||||
&& SBIRTH=$(${MY_PATH}/../tools/MOATS2seconds.sh ${BIRTHDATE}) \
|
||||
&& SNOW=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS}) \
|
||||
&& [[ $(( SNOW - SBIRTH )) >= $(( 27 * 24 * 60 * 60 )) ]] \
|
||||
&& echo "YOUR ACOUNT WILL BE UNPLUGGED IN 3.2.1 DAYS" > ~/.zen/tmp/alert \
|
||||
&& ${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert \
|
||||
&& [[ $(( SNOW - SBIRTH )) > $(( 30 * 24 * 60 * 60 )) ]] \
|
||||
&& ${MY_PATH}/../tools/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \
|
||||
&& echo ">>>> PLAYER UNPLUGGED >>>>> BYE BYE ${PLAYER}" \
|
||||
&& continue
|
||||
#################################### UNPLUG ACCOUNT
|
||||
|
||||
IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \
|
||||
&& ipfs name publish --key="${PLAYER}_feed" /ipfs/${IRSS}
|
||||
|
|
|
@ -260,7 +260,7 @@ do
|
|||
|
||||
#~ echo "************************************************************"
|
||||
#~ echo "Hop, 0.1 JUNE pour le Voeu $WISHNAME"
|
||||
#~ echo $MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey pay -a 0.1 -p $VOEUKEY -c \'"ASTRO:$${IPNS_VOEUNS} G1Voeu $WISHNAME"\' -m
|
||||
#~ echo $MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey pay -a 0.1 -p $VOEUKEY -c \'"ASTRO:${IPNS_VOEUNS} G1Voeu $WISHNAME"\' -m
|
||||
#~ echo "************************************************************"
|
||||
#~ echo "************************************************************"
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 318 B |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 822 B |
Binary file not shown.
After Width: | Height: | Size: 198 B |
|
@ -51,6 +51,7 @@ echo "$(date -u)" > ~/.zen/tmp/${IPFSNODEID}/_MySwarm.staom
|
|||
echo "## MAKE /proc/cpuinfo IPFSNODEID DERIVATED KEY ##"
|
||||
SECRET1=$(cat /proc/cpuinfo | grep -Ev MHz | sha512sum | cut -d ' ' -f 1)
|
||||
SECRET2=${IPFSNODEID}
|
||||
echo "SALT=$SECRET1 && PEPPER=$SECRET2" > ~/.zen/game/myswarm_secret.june
|
||||
${MY_PATH}/tools/keygen -t ipfs -o ~/.zen/game/myswarm_secret.ipfskey "$SECRET1" "$SECRET2"
|
||||
${MY_PATH}/tools/keygen -t duniter -o ~/.zen/game/myswarm_secret.dunikey "$SECRET1" "$SECRET2"
|
||||
ipfs key import "MySwarm_${IPFSNODEID}" -f pem-pkcs8-cleartext ~/.zen/game/myswarm_secret.ipfskey
|
||||
|
@ -98,7 +99,7 @@ while true; do
|
|||
done
|
||||
|
||||
############# GET BOOSTRAP SWARM DATA
|
||||
for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#" | rev | cut -d '/' -f 1 | rev | grep -v '^[[:space:]]*$') # remove comments and empty lines
|
||||
for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#" | grep -v '^[[:space:]]*$') # remove comments and empty lines
|
||||
do
|
||||
|
||||
echo "############# RUN LOOP ######### $(date)"
|
||||
|
|
|
@ -136,10 +136,10 @@ a:active{
|
|||
<br> [<span id='LAT'></span>]-[<span id='LON'></span>] <span>registration</span><br>
|
||||
|
||||
<div id="yellow">
|
||||
<input name='salt' value='0.00'>
|
||||
<input name='zlat' value='0.00'>
|
||||
<h3><a target="info" title="CHECK PORT" href="http://127.0.0.1:12345"> >>> [(♥‿‿♥)] <<< </a>
|
||||
</h3>
|
||||
<input name='pepper' value='0.00'><br>
|
||||
<input name='zlon' value='0.00'><br>
|
||||
</div>
|
||||
<input type=hidden name=g1pub value=''></br>
|
||||
|
||||
|
@ -171,13 +171,13 @@ a:active{
|
|||
// Extract latitude and longitude from URL parameters
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const salt = urlParams.get('salt');
|
||||
const pepper = urlParams.get('pepper');
|
||||
const zlat = urlParams.get('zlat');
|
||||
const zlon = urlParams.get('zlon');
|
||||
const uplanet = urlParams.get('uplanet');
|
||||
|
||||
// Set latitude and longitude values to hidden inputs
|
||||
const latElement = document.querySelector('input[name="salt"]');
|
||||
const lonElement = document.querySelector('input[name="pepper"]');
|
||||
const latElement = document.querySelector('input[name="zlat"]');
|
||||
const lonElement = document.querySelector('input[name="zlon"]');
|
||||
const uplanetElement = document.querySelector('input[name="uplanet"]');
|
||||
const passElement = document.querySelector('input[name="g1pub"]');
|
||||
|
||||
|
@ -188,8 +188,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||
}
|
||||
|
||||
if (latElement && lonElement) {
|
||||
latElement.value = salt || '0.00'; // Default to '0.00' if lat is missing
|
||||
lonElement.value = pepper || '0.00'; // Default to '0.00' if lon is missing
|
||||
latElement.value = zlat || '0.00'; // Default to '0.00' if lat is missing
|
||||
lonElement.value = zlon || '0.00'; // Default to '0.00' if lon is missing
|
||||
uplanetElement.value = uplanet || '@'; // Default to '0.00' if lon is missing
|
||||
}
|
||||
|
||||
|
|
|
@ -355,7 +355,7 @@ do
|
|||
## IS IT REALLY A FRIEND I LIKE ?
|
||||
echo "BRO?"
|
||||
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey send -d "${G1PUB}" -t "Bro ?" -m "$myGCHANGE/#/app/user/${liking_me}/"
|
||||
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey send -n ${myCESIUM} -d "${G1PUB}" -t "Bro ?" -m "$myGCHANGE/#/app/user/${liking_me}/"
|
||||
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey -n ${myCESIUM} send -d "${G1PUB}" -t "Bro ?" -m "$myGCHANGE/#/app/user/${liking_me}/"
|
||||
mkdir -p ~/.zen/game/players/${PLAYER}/FRIENDS/
|
||||
try=$((try+1)) && echo $try > ~/.zen/game/players/${PLAYER}/FRIENDS/${liking_me}.try
|
||||
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
# Version: 0.1
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
# MAKE PAYMENTS ON DUNITER BLOCKCHAIN
|
||||
# VERIFY SUCCES & RENEW IF FAILED
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
|
||||
. "${MY_PATH}/my.sh"
|
||||
|
||||
KEYFILE="$1"
|
||||
AMOUNT="$2"
|
||||
G1PUB="$3"
|
||||
COMMENT="$4"
|
||||
MOATS="$5" ## RECALL PENDING
|
||||
|
||||
[[ -z $MOATS ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N") || echo "FAILED PAYMENT NEW TRY $MOATS"
|
||||
|
||||
## CHECKING PAYOUT WALLET (dunikey file)
|
||||
[[ -s ${KEYFILE} ]] \
|
||||
&& PAYOUTPUB=$(cat ${KEYFILE} | grep "pub:" | cut -d ' ' -f 2) \
|
||||
|| { echo "ERROR : MISSING SECRET KEY FILE" && exit 1; }
|
||||
|
||||
COINS=$($MY_PATH/COINScheck.sh ${PAYOUTPUB} | tail -n 1)
|
||||
###### TEST INPUT VALUES
|
||||
[[ $AMOUNT == "ALL" ]] && AMOUNT=$COINS ## ALL MEAN EMPTY ORIGIN WALLET
|
||||
[[ -z $AMOUNT ]] && echo "ERROR : ${PAYOUTPUB}=$COINS MISSING AMOUNT" && exit 1
|
||||
[[ $COINS < $AMOUNT ]] && echo "ERROR : SOURCE WALLET IS MISSING COINS !!! $AMOUNT > $COINS" && exit 1
|
||||
[[ -z $G1PUB ]] && echo "ERROR : ${PAYOUTPUB}=$COINS ($AMOUNT) MISSING DESTINATION" && exit 1
|
||||
|
||||
echo "PAYMENT PROCESSOR ID ${MOATS}"
|
||||
echo "KEYFILE: $HOME/.zen/game/pending/${PAYOUTPUB}/"
|
||||
echo "${PAYOUTPUB} : (${AMOUNT}) -> ${G1PUB}"
|
||||
echo "COMMENT : ${COMMENT}"
|
||||
|
||||
[[ -z $COMMENT ]] && COMMENT="ZEN:${MOATS}"
|
||||
|
||||
PENDINGDIR=$HOME/.zen/game/pending/${PAYOUTPUB}
|
||||
### PREPARE PENDINGFILE INFO ZONE
|
||||
mkdir -p ${PENDINGDIR}
|
||||
PENDINGFILE=${PENDINGDIR}/${MOATS}_${AMOUNT}+${G1PUB}.TX
|
||||
|
||||
rm -f ${PENDINGFILE} 2>/dev/null ## CLEAN START
|
||||
|
||||
## PREPARE CALLING MYSELF AGAIN COMMAND
|
||||
cp ${KEYFILE} ${PENDINGDIR}/secret.key 2>/dev/null
|
||||
echo '#!/bin/bash
|
||||
bash ${ME} "${KEYFILE}" "${AMOUNT}" "${G1PUB}" "${COMMENT}" "${MOATS}"
|
||||
' > ${PENDINGDIR}/${MOATS}_replay.sh
|
||||
|
||||
# MAKE PAYMENT
|
||||
${MY_PATH}/jaklis/jaklis.py -k ${PENDINGDIR}/secret.key pay -a ${AMOUNT} -p ${G1PUB} -c '${COMMENT}' -m 2>/dev/null
|
||||
|
||||
if [ $? == 0 ]; then
|
||||
|
||||
echo "SENT" > ${PENDINGFILE} ## TODO : MONITOR POTENTIAL CHAIN REJECTION (FORK/MERGE WINDOW)
|
||||
|
||||
## CHANGE COINS CACHE
|
||||
COINSFILE="$HOME/.zen/tmp/coucou/${PAYOUTPUB}.COINS"
|
||||
DESTFILE="$HOME/.zen/tmp/coucou/${G1PUB}.COINS"
|
||||
|
||||
## DECREASE SOURCE IN "coucou" CACHE
|
||||
echo "$COINS - $AMOUNT" | bc > ${COINSFILE}
|
||||
|
||||
DES=$(cat ${DESTFILE})
|
||||
[[ ${DES} != "" && ${DES} != "null" ]] \
|
||||
&& echo "$DES + $AMOUNT" | bc > ${DESTFILE} \
|
||||
|| echo "${AMOUNT}" > ${DESTFILE}
|
||||
|
||||
## INFORM ABOUT PAYMENT
|
||||
ZENAMOUNT=$(echo "$AMOUNT * 10" | bc | cut -d '.' -f 1)
|
||||
ZENCUR=$(echo "$COINS * 10" | bc | cut -d '.' -f 1)
|
||||
ZENDES=$(echo "$DES * 10" | bc | cut -d '.' -f 1)
|
||||
|
||||
echo "<h1>ẐEN OPERATION</h1>
|
||||
<h3>${PAYOUTPUB}
|
||||
<br> ${ZENCUR} - ${ZENAMOUNT} </h3>
|
||||
<h3>${G1PUB}
|
||||
<br> ${ZENDES} + ${ZENAMOUNT} </h3>
|
||||
<h2>OK</h2>" > ${PENDINGDIR}/${MOATS}.result
|
||||
|
||||
$MY_PATH/mailjet.sh "support@qo-op.com" ${PENDINGDIR}/${MOATS}.result
|
||||
|
||||
## REMOVE IF YOU WANT TO MONITOR "SENT" WINDOW INCERTITUDE
|
||||
rm ${PENDINGDIR}/${MOATS}_replay.sh
|
||||
mv ${PENDINGFILE} ${PENDINGFILE}.DONE
|
||||
|
||||
else
|
||||
|
||||
## INFORM SYSTEM MUST RENEW OPERATION
|
||||
rm ${PENDINGFILE}
|
||||
echo "<h2>BLOCKCHAIN CONNEXION ERROR</h2>
|
||||
<h1>- MUST RETRY -</h1>
|
||||
LAUNCHING SUB SHELL" > ${PENDINGDIR}/${MOATS}.result
|
||||
|
||||
## COUNT NUMBER OF TRY
|
||||
try=$(cat ${PENDINGDIR}/${MOATS}.try 2>/dev/null) || try=0
|
||||
|
||||
[[ $try > 2 ]] \
|
||||
&& echo "${MOATS} TOO MANY TRY ( $try )" >> ${PENDINGDIR}/${MOATS}.result \
|
||||
&& $MY_PATH/mailjet.sh "support@qo-op.com" ${PENDINGDIR}/${MOATS}.result \
|
||||
&& exit 1 \
|
||||
|| $MY_PATH/mailjet.sh "support@qo-op.com" ${PENDINGDIR}/${MOATS}.result
|
||||
|
||||
(
|
||||
((try++)) && echo $try > ${PENDINGDIR}/${MOATS}.try
|
||||
chmod +x ${PENDINGDIR}/${MOATS}_replay.sh
|
||||
sleep 3600
|
||||
${PENDINGDIR}/${MOATS}_replay.sh
|
||||
exit 0
|
||||
) &
|
||||
|
||||
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -18,10 +18,12 @@ INDEX="$1"
|
|||
PLAYER="$2"
|
||||
[[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] && echo "PLAYER ${PLAYER} NOT FOUND - EXIT -" && exit 1
|
||||
|
||||
FREE="$3"
|
||||
|
||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||
mkdir -p ~/.zen/tmp/${MOATS}
|
||||
|
||||
## REMOVING PLAYER FROM UMAP
|
||||
## PLAYER UMAP ?
|
||||
## GET "GPS" TIDDLER
|
||||
tiddlywiki --load ${INDEX} \
|
||||
--output ~/.zen/tmp/${MOATS} \
|
||||
|
@ -32,13 +34,13 @@ mkdir -p ~/.zen/tmp/${MOATS}
|
|||
echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}"
|
||||
rm ~/.zen/tmp/${MOATS}/GPS.json
|
||||
|
||||
### IPNS "$LAT" "$LON" KEY
|
||||
${MY_PATH}/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${UPLANETNAME}$LAT" "${UPLANETNAME}$LON"
|
||||
IMAPNS="/ipns/"$(ipfs key import ${MOATS} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv)
|
||||
rm ~/.zen/tmp/${MOATS}/_ipns.priv
|
||||
### GET IMAPNS
|
||||
|
||||
## TRANSERT PLAYER WALLET TO UMAP OR MASTER WALLET : TODO
|
||||
## TRANSERT PLAYER WALLET TO my_swarm G1PUB (IPFSNODEID/MACHINE RELATED KEY)
|
||||
SWARMG1PUB=$(cat ~/.zen/game/myswarm_secret.dunikey | grep "pub:" | cut -d ' ' -f 2)
|
||||
[[ ! -z ${SWARMG1PUB} ]] \
|
||||
&& ALL="ALL" \
|
||||
&& [[ $FREE == "FREE" ]] && ALL=1 \
|
||||
&& ./PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${ALL}" "${SWARMG1PUB}" "ZEN:${ALL}"
|
||||
|
||||
## REMOVING PLAYER from ASTROPORT
|
||||
ipfs key rm ${PLAYER}; ipfs key rm ${PLAYER}_feed; ipfs key rm ${G1PUB};
|
||||
|
|
|
@ -421,7 +421,8 @@ myIP="$(myIp)" # "127.0.0.1"
|
|||
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
|
||||
isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
||||
|
||||
myASTROPORT="http://${myIP}:1234"
|
||||
myASTROPORT="http://${myIP}:1234" #astroport.localhost
|
||||
myASTROPORT="http://astroport.localhost:1234" #astroport.localhost
|
||||
myAPI="http://${myIP}:5001"
|
||||
myDATA="https://data.gchange.fr"
|
||||
myGCHANGE="https://www.gchange.fr"
|
||||
|
@ -429,7 +430,7 @@ myCESIUM="https://g1.data.e-is.pro"
|
|||
myG1BILLET="http://${myIP}:33101"
|
||||
myHOST="$(myHostName)"
|
||||
|
||||
myIPFS="http://${myIP}:8080" ## Work in LAN deported desktop
|
||||
myIPFS="http://${myIP}:8080" ## ipfs.localhost (IP works better in LAN deported desktop), but not in docker.
|
||||
myIPFSGW="$(myIpfsGw)"
|
||||
myTUBE="$(myTube)"
|
||||
myASTROTUBE="https://$(myAstroTube)"
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
# Version: 0.4
|
||||
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||
# ON LINE echo script! LAST LINE export VARIABLE values
|
||||
########################################################################
|
||||
MY_PATH="`dirname \"$0\"`" # relative
|
||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||
ME="${0##*/}"
|
||||
|
||||
. "${MY_PATH}/my.sh"
|
||||
### USE 12345 MAP
|
||||
## EXPLORE SWARM BOOSTRAP REPLICATED TW CACHE
|
||||
|
||||
start=`date +%s`
|
||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||
|
||||
G1DEST="$1"
|
||||
IDTX="$2"
|
||||
COMMENT="$2"
|
||||
|
||||
|
||||
# ${MY_PATH}/jaklis/jaklis.py history -p $G1DEST -n 10 -j
|
||||
# THIS SCRIPT IS LAUNCHED AFTER A PAYMENT IS DONE
|
||||
# IT WILL VERIFY IN HISTORY "ASTROID:MOATS" APPEARING
|
||||
|
||||
# ELSE IT SENDS A MESSAGE TO PLAYER
|
||||
## OR COULD TRY AGAIN
|
||||
|
||||
echo "export DEST=$DEST COMMENT=$COMMENT ASTROMAIL=$EMAIL ASTROFEED=$FEEDNS"
|
||||
exit 0
|
Loading…
Reference in New Issue