#!/usr/bin/env bash
###
### arching-kaos-tools
### Tools to interact and build an Arching Kaos Infochain
### Copyright (C) 2021 - 2025  kaotisk
###
### This program is free software: you can redistribute it and/or modify
### it under the terms of the GNU General Public License as published by
### the Free Software Foundation, either version 3 of the License, or
### (at your option) any later version.
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
### GNU General Public License for more details.
###
### You should have received a copy of the GNU General Public License
### along with this program.  If not, see <http://www.gnu.org/licenses/>.
###
source $AK_LIBDIR/_ak_node

function _ak_config_show(){
    # We will be using our public key also to put it in the block later
    KEY="self.pub"
    ak-gpg --export-key-self-to-file
    _ak_log_debug "$KEY"
    GPG_PUB_KEY=$(_ak_ipfs_add $KEY)
    rm $KEY
    profile="$(ak-profile -l)"
    echo '
{
    "profile":'$profile',
    "genesis":"'$(cat $AK_WORKDIR/config/zgenesis)'",
    "gpg":{
        "ipfs":"'$GPG_PUB_KEY'",
        "fingerprint":"'$(ak gpg --get-key-fingerprint-from-ipfs $GPG_PUB_KEY)'"
    },
    "zchain":"'$(cat $AK_WORKDIR/config/zchain)'",
    "zlatest":"'$(ak zchain --get-latest)'"
}'| jq;
}

function _ak_config_publish(){
    _ak_config_show | jq -c -M > tmpfile
    ipfs_hash="$(_ak_ipfs_add tmpfile)"
    _ak_ipfs_config_publish $ipfs_hash
    if [ $? != 0 ]
    then
        _ak_log_error "Error on publishing"
        _ak_log_debug "Your information:"
        cat tmpfile | while read line; do _ak_log_debug "$line"; done
        exit 1
    fi
    rm tmpfile
}

function _ak_config_published(){
    _ak_ipfs_cat $(_ak_node_info_ipfs_hash) | jq
}