58 lines
1.5 KiB
Bash
Executable File
58 lines
1.5 KiB
Bash
Executable File
# | source | this file
|
|
|
|
# shellcheck disable=SC2034
|
|
# shellcheck disable=SC2086
|
|
|
|
STAKE_PROGRAM_PUBKEY=Stake11111111111111111111111111111111111111
|
|
SYSTEM_PROGRAM_PUBKEY=11111111111111111111111111111111
|
|
VOTE_PROGRAM_PUBKEY=Vote111111111111111111111111111111111111111
|
|
CONFIG_PROGRAM_PUBKEY=Config1111111111111111111111111111111111111
|
|
|
|
function get_program_accounts {
|
|
PROGRAM_NAME="$1"
|
|
PROGRAM_PUBKEY="$2"
|
|
URL="$3"
|
|
|
|
if [[ -n "$4" ]] ; then
|
|
JSON_OUTFILE="$4"
|
|
else
|
|
JSON_OUTFILE="${PROGRAM_NAME}_account_data.json"
|
|
fi
|
|
curl -s -X POST -H "Content-Type: application/json" -d \
|
|
'{"jsonrpc":"2.0","id":1, "method":"getProgramAccounts", "params":["'$PROGRAM_PUBKEY'"]}' $URL | jq '.' \
|
|
> $JSON_OUTFILE
|
|
}
|
|
|
|
function write_program_account_data_csv {
|
|
PROGRAM_NAME="$1"
|
|
if [[ -n "$2" ]] ; then
|
|
JSON_INFILE="$2"
|
|
else
|
|
JSON_INFILE="${PROGRAM_NAME}_account_data.json"
|
|
fi
|
|
if [[ -n "$3" ]] ; then
|
|
CSV_OUTFILE="$3"
|
|
else
|
|
CSV_OUTFILE="${PROGRAM_NAME}_account_data.csv"
|
|
fi
|
|
|
|
echo "Account_Pubkey,Lamports" > $CSV_OUTFILE
|
|
# shellcheck disable=SC2002
|
|
cat "$JSON_INFILE" | jq -r '(.result | .[]) | [.pubkey, (.account | .lamports)] | @csv' \
|
|
>> $CSV_OUTFILE
|
|
}
|
|
|
|
function get_account_info {
|
|
ACCOUNT_PUBKEY="$1"
|
|
URL="$2"
|
|
|
|
if [[ -n "$3" ]] ; then
|
|
JSON_OUTFILE="$3"
|
|
else
|
|
JSON_OUTFILE="${ACCOUNT_PUBKEY}_account_info.json"
|
|
fi
|
|
curl -s -X POST -H "Content-Type: application/json" -d \
|
|
'{"jsonrpc":"2.0","id":1, "method":"getAccountInfo", "params":["'$ACCOUNT_PUBKEY'"]}' $URL | jq '.' \
|
|
> $JSON_OUTFILE
|
|
}
|