58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|   | # | 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 | ||
|  | } |