├── README.md ├── balance.sh ├── claim.sh ├── closeAccounts.sh ├── generateWallets.sh ├── ids └── claimed.json ├── maintainMiners.sh ├── transfer.sh └── transferSol.sh /README.md: -------------------------------------------------------------------------------- 1 | # ore-cli 2 | Simple bash scripts to automate ore mining (Generate Keypairs/Claim/Mass Transfer/Check Balances/Auto Fund Miners) 3 | 4 | ## SetUp 5 | 1) Add id.json (Miner privatekey) files to ids/ folder or just run generateWallets.sh 6 | 2) Add wallet privatekey that will receive ORE and fund miners to claimed.json 7 | 3) Change Variables in the different scripts 8 | 4) Run the scripts in separate terminals/instances 9 | 5) Watch the magic happen 10 | 11 | This scripts presumes that you already have the miners running beforehand, they will not run the miners for you, haven't added a script for that yet 12 | 13 | 14 | **If you would like to support:** *Cissoko420.sol* 15 | 16 | ## Previews 17 | ### balance.sh 18 | ![image](https://github.com/Cissoko420/ore-cli/assets/59943539/322f811e-acd6-46f4-9622-6cd450de8441) 19 | 20 | ### claim.sh 21 | ![image](https://github.com/Cissoko420/ore-cli/assets/59943539/b3f5ad46-314a-44cb-b459-6cfcb8d0de0a) 22 | 23 | ### generateWallets.sh 24 | ![image](https://github.com/Cissoko420/ore-cli/assets/59943539/8676986b-8663-444d-891e-dcc697d30efc) 25 | 26 | ### maintainMiners.sh 27 | ![image](https://github.com/Cissoko420/ore-cli/assets/59943539/521e7f09-7ca7-4961-a910-f0268f1eeb15) 28 | 29 | ### transfer.sh 30 | ![image](https://github.com/Cissoko420/ore-cli/assets/59943539/e265021e-1dc6-4e57-906a-b4283794146d) 31 | 32 | ### transferSol.sh 33 | ![image](https://github.com/Cissoko420/ore-cli-scripts/assets/59943539/b1e753da-88a0-4ee0-ac18-3ba697fa2e5a) 34 | -------------------------------------------------------------------------------- /balance.sh: -------------------------------------------------------------------------------- 1 | # @Author: Cissoko420 2 | # @Date: 2024-04-10 05:06:10 3 | # @Last Modified by: Cissoko420 4 | # @Last Modified time: 2024-04-10 05:06:10 5 | #!/bin/bash 6 | 7 | # View balance in a table format, make sure to have claimed.json in 'ids/' folder 8 | 9 | csv_file="miners_data.csv" 10 | echo " Miner, ORE, Value (Usdc)" > "$csv_file" 11 | echo "Checking unclaimed balances..." 12 | 13 | while true; do 14 | 15 | echo " Miner, ORE, Value(Usdc)" > "$csv_file" 16 | 17 | total_balance=0 18 | for i in {1..11}; do 19 | balance=$(ore --keypair ~/.config/solana/ids/id$i.json rewards | grep -oP '^\d+(.\d+)?(?= ORE)') 20 | 21 | if [ ! -z "$balance" ]; then 22 | total_balance=$(echo "$total_balance + $balance" | bc) 23 | 24 | echo " $i, $balance, -" >> "$csv_file" 25 | else 26 | echo " $i, Not Found, -" >> "$csv_file" 27 | fi 28 | done 29 | echo "---------,------------, -------------" >> "$csv_file" 30 | 31 | price=$(curl --silent -X 'GET' 'https://price.jup.ag/v4/price?ids=oreoN2tQbHXVaZsr3pf66A48miqcBXCDJozganhEJgz' | sed -n 's/.*"price":\([^,}]*\).*/\1/p') 32 | value=$(echo "$price * $total_balance" | bc) 33 | 34 | echo "Unclaimed, 0$total_balance, $value" >> "$csv_file" 35 | echo "---------,------------, -------------" >> "$csv_file" 36 | 37 | balance2=$(ore --keypair ~/.config/solana/ids/claimed.json balance | grep -oP '^\d+(.\d+)?(?= ORE)') 38 | value2=$(echo "$price * $balance2" | bc) 39 | 40 | echo " Claimed, $balance2, $value2" >> "$csv_file" 41 | echo "---------,------------, -------------" >> "$csv_file" 42 | 43 | total=$(echo "$total_balance + $balance2" | bc) 44 | value3=$(echo "$price * $total" | bc) 45 | 46 | echo " Total, 0$total, $value3" >> "$csv_file" 47 | 48 | clear 49 | csvlook $csv_file 50 | rm -f "$csv_file" 51 | 52 | sleep 120 53 | done 54 | -------------------------------------------------------------------------------- /claim.sh: -------------------------------------------------------------------------------- 1 | # @Author: Cissoko420 2 | # @Date: 2024-04-10 05:06:10 3 | # @Last Modified by: Cissoko420 4 | # @Last Modified time: 2024-04-10 05:06:10 5 | #!/bin/bash 6 | 7 | # Auto-claim miners if balance is over MIN_BALANCE 8 | 9 | nr_wallets=11 10 | 11 | MIN_BALANCE="0.01" 12 | FEE="100000" 13 | RPC_URL="https://api.mainnet-beta.solana.com/" 14 | 15 | clear 16 | echo "Checking the unclaimed balance..." 17 | 18 | while true; do 19 | for ((i=1;i<=nr_wallets;i++)); do 20 | balance=$(ore --keypair ~/.config/solana/ids/id$i.json rewards | grep -oP '^\d+(.\d+)?(?= ORE)') 21 | 22 | if [ ! -z "$balance" ] && [ "$(echo "$balance > $MIN_BALANCE" | bc)" -eq 1 ]; then 23 | echo "ID$i balance: $balance ORE - Eligible for claim" 24 | ore --keypair ~/.config/solana/ids/id$i.json --rpc "$RPC_URL" --priority-fee ${FEE} claim 25 | else 26 | echo "ID$i balance: $balance ORE - Not eligible for claim" 27 | fi 28 | done 29 | echo "" 30 | echo "Waiting for the next check..." 31 | sleep 600 32 | clear 33 | done 34 | -------------------------------------------------------------------------------- /closeAccounts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | nr_wallets=60 4 | 5 | clear 6 | 7 | for((i=1;i<=nr_wallets;i++)); do 8 | balance=$(ore --keypair ~/.config/solana/ids/id$i.json balance | grep -oP '^\d+(.\d)?(?= ORE)') 9 | if [ ! -z "$balance" ] && [ "$(echo "balance == 0" | bc)" -eq 1 ]; then 10 | echo "ID$i balance: $balance ORE - Close account" 11 | solana config set --keypair /root/.config/solana/ids/id$i.json 12 | spl-token close --fee-payer /root/.config/solana/ids/id$i.json oreoN2tQbHXVaZsr3pf66A48miqcBXCDJozganhEJgz --owner /root/.config/solana/ids/id$i.json 13 | echo "" 14 | sleep 2 15 | else 16 | echo "ID$i balance: $balance ORE - Unable to close account" 17 | echo "" 18 | fi 19 | done 20 | -------------------------------------------------------------------------------- /generateWallets.sh: -------------------------------------------------------------------------------- 1 | # @Author: Cissoko420 2 | # @Date: 2024-04-10 05:06:10 3 | # @Last Modified by: Cissoko420 4 | # @Last Modified time: 2024-04-10 05:06:10 5 | 6 | # Generate wallets, keypairs saved to 'ids/' folder in seperate .json files, private_key.txt is generated with all the privatekeys (Copy privatekeys easier) 7 | 8 | #!/bin/bash 9 | 10 | num_wallets=10 #Generates 10 new wallets 11 | 12 | private_key_dir="ids" #Name of folder to save ids.json files 13 | 14 | concatenated_file="private_keys.txt" 15 | 16 | mkdir -p "$private_key_dir" 17 | 18 | clear 19 | for ((i=1; i<=$num_wallets; i++)); do 20 | echo "Generating wallet $i..." 21 | solana-keygen new --outfile "$private_key_dir/id$i.json" --no-passphrase >/dev/null 2>&1 22 | done 23 | 24 | for file in "$private_key_dir"/*.json; do 25 | cat "$file" | tr -d '\n' >> "$concatenated_file" 26 | echo "" >> "$concatenated_file" 27 | done 28 | truncate -s-2 "$concatenated_file" 29 | echo "]" >> "$concatenated_file" 30 | 31 | 32 | echo "Private keys saved to $concatenated_file" 33 | -------------------------------------------------------------------------------- /ids/claimed.json: -------------------------------------------------------------------------------- 1 | [Main, Wallet, PrivateKey, Goes, Here, ...] 2 | -------------------------------------------------------------------------------- /maintainMiners.sh: -------------------------------------------------------------------------------- 1 | # @Author: Cissoko420 2 | # @Date: 2024-04-10 05:06:10 3 | # @Last Modified by: Cissoko420 4 | # @Last Modified time: 2024-04-10 05:06:10 5 | #!/bin/bash 6 | 7 | # Keep miners with sol, wallet that funds miners must be in ids/claimed.json or change it accordingly 8 | 9 | nr_wallets=10 10 | 11 | miner_min_balance=0.01 12 | 13 | sol_to_fund=0.02 14 | 15 | clear 16 | echo "Checking Wallets..." 17 | 18 | while true; do 19 | for ((i=1;i<=nr_wallets;i++)); do 20 | 21 | receiver_wallet=$(solana address --keypair ~/.config/solana/ids/id$i.json) 22 | sleep 1 23 | balance=$(solana --keypair ~/.config/solana/ids/id$i.json balance | grep -oP '^\d+(.\d+)?(?= SOL)') 24 | 25 | if [ ! -z "$balance" ] && [ "$(echo "$balance <= $miner_min_balance" | bc)" -eq 1 ]; then 26 | echo "ID$i balance: $balance SOL - Starting Funding..." 27 | solana transfer --from ~/.config/solana/ids/claimed.json $receiver_wallet $sol_to_fund --allow-unfunded-recipient --fee-payer ~/.config/solana/ids/claimed.json 28 | echo "" 29 | sleep 1 30 | else 31 | echo "ID$i balance: $balance SOL - Not needed to fund" 32 | echo "" 33 | fi 34 | done 35 | echo "Waiting to do next run..." 36 | sleep 300 37 | clear 38 | done 39 | -------------------------------------------------------------------------------- /transfer.sh: -------------------------------------------------------------------------------- 1 | # @Author: Cissoko420 2 | # @Date: 2024-04-10 05:06:10 3 | # @Last Modified by: Cissoko420 4 | # @Last Modified time: 2024-04-10 05:06:10 5 | #!/bin/bash 6 | 7 | # Transfer ORE from Miners to single wallet, change wallet_address to main wallet, set nr_wallets (miner wallets to claim), set min_balance_to_send only send if balance is higher then it. 8 | 9 | receiver_wallet="wallet_address" 10 | 11 | nr_wallets=10 12 | 13 | min_balance_to_send=0.01 14 | 15 | clear 16 | 17 | while true; do 18 | for ((i=1;i<=nr_wallets;i++)); do 19 | 20 | balance=$(ore --keypair ~/.config/solana/ids/id$i.json balance | grep -oP '^\d+(.\d+)?(?= ORE)') 21 | send_balance=$(echo "$balance - 0.000000001" | bc) #Keeps miners with .0.000000001 ORE 22 | 23 | if [ ! -z "$balance" ] && [ "$(echo "$balance > $min_balance_to_send" | bc)" -eq 1 ]; then 24 | echo "ID$i balance: $balance ORE - To Transfer" 25 | spl-token transfer oreoN2tQbHXVaZsr3pf66A48miqcBXCDJozganhEJgz $send_balance $receiver_wallet --owner ~/.config/solana/ids/id$i.json --fund-recipient --fee-payer ~/.config/solana/ids/id$i.json 26 | echo "" 27 | sleep 2 28 | else 29 | echo "ID$i balance: $balance ORE - No balance to send" 30 | echo "" 31 | fi 32 | done 33 | echo "Waiting to do next run..." 34 | echo "" 35 | sleep 300 36 | clear 37 | done 38 | -------------------------------------------------------------------------------- /transferSol.sh: -------------------------------------------------------------------------------- 1 | # @Author: Cissoko420 2 | # @Date: 2024-04-16 11:27:30 3 | # @Last Modified by: Cissoko420 4 | # @Last Modified time: 2024-04-16 11:30:15 5 | #!/bin/bash 6 | 7 | # Transfer all SOL from miners to single wallet 8 | 9 | receiver_wallet="WALLET ADDRESS" 10 | 11 | nr_wallets=11 12 | 13 | clear 14 | 15 | while true; do 16 | for ((i=1;i<=nr_wallets;i++)); do 17 | 18 | balance=$(solana balance --keypair ~/.config/solana/ids/id$i.json) 19 | send_balance=$(echo "$balance" | awk '{print $1}') 20 | 21 | if (( $(echo "$send_balance > 0" | bc -l) )); then 22 | echo "ID$i balance: $balance SOL - To Transfer" 23 | solana transfer "$receiver_wallet" "$send_balance" --from ~/.config/solana/ids/id$i.json --allow-unfunded-recipient --fee-payer ~/.config/solana/ids/claimed.json 24 | echo "" 25 | sleep 2 26 | else 27 | echo "ID$i balance: $balance SOL - No balance to send" 28 | echo "" 29 | fi 30 | done 31 | echo "Waiting to do next run" 32 | echo "" 33 | sleep 5 34 | clear 35 | done 36 | --------------------------------------------------------------------------------