forked from axiom-team/astrXbian
99 lines
4.5 KiB
Bash
Executable File
99 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
################################################################################
|
|
# Author: Fred (support@qo-op.com)
|
|
# Version: 1.0
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
###########################################################################################
|
|
# tag_OP.sh OPERATION ON ZenTAG...
|
|
|
|
###########################################################################################
|
|
# fred@ONELOVE:~/workspace/ZEN$ ipfs ls /ipns/QmZxwgScLyLjitE1mrUFqpTw27gk6tMdfKQ7QTEo28dE2u
|
|
# QmVkur97Pqpgt7cy71FCNacPd5Z1eD9QVfw5tu4LdXHavk 47 _chain
|
|
# QmUQcSjQx2bg4cSe2rUZyQi6F8QtJFJb74fWL7D784UWf9 2 _chain.n
|
|
# QmRPdapkSVeYeRcC6X7freVo8vrGYjKcGsa96V5GsMg36p 20 _chain.nanodate
|
|
# Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ 1 _chain.prev
|
|
# Qmb8gYFmno4QeEpaPTi969qQNyVJK9VyfBbsXtyMA3PMow 45 _g1.creator
|
|
# QmQo6ghBGdkGCnGoB22cYmraR76q44K1mjVXqQQ3UVn2T1 45 _g1.issuer
|
|
# QmfUFk27ZvHaGfEwBeqResw2qQ9SCu4tsY69SkVuCdWAxB 65 _g1.txhash
|
|
# QmaKa7FGwmMshE7RACrWAFCsWETu1HcHnV1eak7HcUk6Cs 47 _ipfs.creator
|
|
# QmfCL14hnVnm3mrYT7fRjveMRTEoSp2axqCVp3JYoxXXgn 1300 _ipfs.publishkey.B.gpg
|
|
# QmUQ7WsACNYYWAw4QW8hKTCq8MM8oYGV7HJuxW7QTGj9qS 1243 _ipfs.publishkey.crypt
|
|
# QmdvRknZWSZUyS9SfmFWcvySv1tgi2PTF711rsGPN6ftL1 65 _tag.B.sha
|
|
# QmXA1zSxA3dh1dxFtkKaH5iomN3BsKMSAo2qhruA58AU81 34 _tag.uid
|
|
# QmPrumas2N5DuwcqUz9mayAU6oDL2bLjhpkVZ8hCRq9rpx 5 _tag.zen
|
|
############################################################################################
|
|
# TRANSFERT $VALUE ZEN FROM $JSOURCE ZenTag to $JDEST ZenTag
|
|
JSOURCE=$1
|
|
JDEST=$2
|
|
VALUE=$3
|
|
|
|
IPFSNODEID=$(ipfs id -f='<id>\n')
|
|
NANODATE=$(date -u +%s%N)
|
|
############################################
|
|
echo "############################################
|
|
zen_OP.sh ZenTag TRANSFER $NANODATE
|
|
############################################
|
|
SOURCE(1): $JSOURCE
|
|
DEST(2): $JDEST
|
|
VALUE(3): $VALUE ZEN
|
|
############################################"
|
|
|
|
#############################################################################################################
|
|
# SOURCE
|
|
#############################################################################################################
|
|
############## SOURCE EXTRACTION
|
|
JSOURCEUID=$(ipfs cat /ipns/$JSOURCE/_tag.uid)
|
|
JSOURCERR=$(echo "$JSOURCEUID" | sed s/\ //g)
|
|
#############################################
|
|
############## GOOD or BAD ?
|
|
[[ $JSOURCERR == "" ]] && echo "NO G1Tag /ipns/$JSOURCE ... Ciao!" && exit
|
|
[[ ! -d /tmp/$JSOURCERR ]] && mkdir -p /tmp/$JSOURCERR || rm -f /tmp/$JSOURCERR/*
|
|
ipfs get --output=/tmp/${JSOURCERR}/ /ipns/$JSOURCE > /dev/null 2>&1
|
|
# echo "Retrieving SOURCE G1Tag: ipfs get --output=/tmp/${JSOURCERR}/ /ipns/$JSOURCE"
|
|
|
|
JSOURCECREATOR=$(cat /tmp/${JSOURCERR}/_ipfs.creator)
|
|
JSOURCEVALUE=$(cat /tmp/${JSOURCERR}/_tag.zen)
|
|
|
|
#############################################
|
|
############## No JDEST, then return $JSOURCEVALUE
|
|
[[ "$JDEST" == "" ]] && echo "ZenTAG ($JSOURCEUID) VALUE = $JSOURCEVALUE Zen" && exit
|
|
#############################################
|
|
|
|
#############################################
|
|
############## TEST IF $VALUE IS AVAILABLE
|
|
FINALSOURCE=$(echo "${JSOURCEVALUE} - ${VALUE}" | bc -l)
|
|
[[ $FINALSOURCE -lt 0 ]] && echo "Manque $FINALSOURCE Zen à ce ZenTAG... Ciao!" && exit
|
|
|
|
#############################################################################################################
|
|
# DEST
|
|
#############################################################################################################
|
|
############## DESTINATION EXTRACTION
|
|
JDESTUID=$(ipfs cat /ipns/$JDEST/_tag.uid)
|
|
JDESTRR=$(echo "$JDESTUID" | sed s/\ //g);
|
|
#############################################
|
|
############## GOOD or BAD ?
|
|
[[ $JDESTRR == "" ]] && echo "NO G1Tag /ipns/$JDEST ... Ciao!" && exit
|
|
[[ ! -d /tmp/$JDESTRR ]] && mkdir -p /tmp/$JDESTRR || rm -f /tmp/$JDESTRR/*
|
|
ipfs get --output=/tmp/$JDESTRR/ /ipns/$JDEST > /dev/null 2>&1
|
|
|
|
JDESTCREATOR=$(cat /tmp/${JDESTRR}/_ipfs.creator)
|
|
JDESTVALUE=$(cat /tmp/${JDESTRR}/_tag.zen);
|
|
|
|
FINALDEST=$(echo "${JDESTVALUE} + ${VALUE}" | bc -l)
|
|
|
|
######################################################################################################
|
|
# CHECK NANODATE
|
|
LAST=$(cat /tmp/${JSOURCERR}/_chain.nanodate)
|
|
timediff=$( echo "${NANODATE} - ${LAST}" | bc -l )
|
|
# NODE TIME SYNC 600 milliards de nanosecondes = 600 s = 10 mn
|
|
if [[ $timediff -lt 600000000000 ]]; then
|
|
echo "LAST OPERATION NOT FINISHED YET... RETRY IN A FEW MINUTES"
|
|
exit
|
|
fi
|
|
|
|
echo "OK. OPERATION ALLOWED...
|
|
$JSOURCERR (/ipns/$JSOURCE) : $JSOURCEVALUE => $FINALSOURCE
|
|
$JDESTRR (/ipns/$JDEST) : $JDESTVALUE => $FINALDEST"
|
|
|
|
# TODO: SEND TASK TO $JSOURCECREATOR AND $JDESTCREATOR
|