forked from STI/Astroport.ONE
79 lines
3.2 KiB
Bash
Executable File
79 lines
3.2 KiB
Bash
Executable File
################################################################################
|
|
# Author: Fred (support@qo-op.com)
|
|
# Version: 0.1
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
################################################################################
|
|
#~ ZEN.UMAP.memory.sh
|
|
#~ Search for last "UPLANET:$1:..." in UPLANETG1PUB wallet history
|
|
#~ INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${IPFSPOP}" TX COMMENT are made during UPLANET.refresh.sh
|
|
#~ ~/.zen/tmp/${MOATS}/${UMAP} <=> "/ipfs/$ipfs_pop"
|
|
################################################################################
|
|
################################################################################
|
|
MY_PATH="`dirname \"$0\"`" # relative
|
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|
. "${MY_PATH}/../tools/my.sh"
|
|
################################################################################
|
|
|
|
UMAP="$1"
|
|
[[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1
|
|
MOATS="$2"
|
|
G1PUB="$3"
|
|
|
|
## CHECK FOR BAD PARAM
|
|
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \
|
|
&& echo "BAD ~/.zen/tmp/${MOATS}/${UMAP}" \
|
|
&& exit 1
|
|
|
|
## STARTING
|
|
start=`date +%s`
|
|
|
|
## CORRESPONDING SECTOR UKEY
|
|
LAT=$(echo ${UMAP} | cut -d '_' -f 2)
|
|
LON=$(echo ${UMAP} | cut -d '_' -f 3)
|
|
|
|
## SECTOR COORD
|
|
SECLAT="${LAT%.*}.1"
|
|
SECLON="${LON%.*}.1"
|
|
|
|
SECTOR="_${SECLAT}_${SECLON}"
|
|
|
|
${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/${SECTOR}.priv "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}"
|
|
SECTORG1PUB=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}.priv | grep "pub:" | cut -d ' ' -f 2)
|
|
[[ ! ${SECTORG1PUB} ]] && echo "ERROR generating SECTOR WALLET" && exit 1
|
|
COINS=$($MY_PATH/../tools/COINScheck.sh ${SECTORG1PUB} | tail -n 1)
|
|
echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}"
|
|
|
|
## RETRIEVE FROM SECTOR UKEY
|
|
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${SECTORG1PUB} -j \
|
|
> ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json
|
|
|
|
## SCAN FOR UPLANET:${UMAP} in TX
|
|
if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then
|
|
|
|
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1)
|
|
ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev)
|
|
todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev)
|
|
echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> $ipfs_pop"
|
|
|
|
## TODO: SECURITY PATCH : check payment emitter is UMAPG1PUB
|
|
if [[ $ipfs_pop ]]; then
|
|
echo "FOUND $todate MEMORY SLOT"
|
|
g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .g1pub' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1)
|
|
[[ "$g1pub" != "$G1PUB" ]] && echo "ALERT :: $g1pub Memory HIJACK" && YESTERDATE="$G1PUB" ## SECURITY BREACH
|
|
[[ "$todate" == "$YESTERDATE" ]] \
|
|
&& ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${UMAP} $ipfs_pop \
|
|
|| echo "$ipfs_pop ERROR ... not from $YESTERDATE ... "
|
|
else
|
|
echo "WARNING cannot revover any memory !!"
|
|
fi
|
|
|
|
else
|
|
echo "FATAL ERROR cannot access to SECTORG1PUB history"
|
|
exit 1
|
|
fi
|
|
|
|
end=`date +%s`
|
|
echo "(${UMAP}.memory) ${todate} get time : "`expr $end - $start` seconds.
|
|
|
|
exit 0
|