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
 | 
						|
}
 |