tig-ziji/scripts/list_algorithm_adoption.sh
root c1e65d1b25
Some checks failed
Test Workspace / Test Workspace (push) Has been cancelled
Initial commit
2025-01-14 20:46:47 +08:00

37 lines
1.3 KiB
Bash

#!/bin/bash
set -e
echo "Fetching latest block..."
BLOCK_ID=$(curl -s https://mainnet-api.tig.foundation/get-block | jq -r '.block.id')
echo "Fetching algorithms..."
RESP=$(curl -s "https://mainnet-api.tig.foundation/get-algorithms?block_id=$BLOCK_ID")
echo "Filtering algorithms..."
ALGORITHMS=$(echo $RESP | jq -c '.algorithms[]' | jq 'select(.block_data.adoption | length > 15)' | jq -s 'sort_by(.block_data.adoption|tonumber)' | jq 'reverse')
declare -A CHALLENGES
echo "Calculating adoption percentage..."
for ALGO in $(echo $ALGORITHMS | jq -c '.[]'); do
A_NAME=$(echo $ALGO | jq -r '.details.name')
ADOPTION=$(echo $ALGO | jq -r '.block_data.adoption')
ADOPTION_PERCENT=$(awk "BEGIN {printf \"%.2f\", $ADOPTION / 10000000000000000}")
case $(echo $ALGO | jq -r '.details.challenge_id') in
"c001") C_NAME="satisfiability" ;;
"c002") C_NAME="vehicle_routing" ;;
"c003") C_NAME="knapsack" ;;
"c004") C_NAME="vector_search" ;;
*) C_NAME="unknown" ;;
esac
CHALLENGES[$C_NAME]+="$(printf " %-30s %-20s\n" "$A_NAME" "adoption: $ADOPTION_PERCENT%")\n"
done
echo "Printing..."
echo ""
for CHALLENGE in "${!CHALLENGES[@]}"; do
echo " Challenge: $CHALLENGE"
echo -e "${CHALLENGES[$CHALLENGE]}"
done