Rewardo STEEM Bot v0.0.1 - Open Source NodeJS Auto Reward Claim Script

in #steemdev7 years ago (edited)

Tired of having to go to your wallet to claim your hard earned post and curation rewards? I was too! So I created Rewardo and decided to share him with the STEEM Network in order to help everyone!

Rewardo v0.0.1

Rewardo is an easy to set up NodeJS script which allows you to automate the claiming of your post and curation rewards, maximizing the amount of STEEM POWER in your account at any point in time as well as taking 1 less task off your plate! Each block it checks your account to see if you have pending rewards, if you do it automatically claims them. Set it up, run it and never worry about having to claim rewards again!

Installation & Bot Usage

Before going any further you must have NodeJS installed on your computer. As I've gone over this a few times in previous posts I'll not explain that here, but instead offer you this link to teach you how to install NodeJS. Assuming you've got NodeJS installed copy the following script below into a new file called rewardov001.js and save it.

//------------------------------------------------------------------------------
//-- Rewardo v0.0.1 | STEEM Auto Claim Reward Bot | https://steemit.com/@klye --
//----- Developed by @KLYE || Free to Use for All! || Free to Modify -------
//----- Rekuirements to run: Node.js + steem.js
//----- npm install steem --save
//------------------------------------------------------------------------------

//----- CONFIG - Make sure to fill these 2 variables in with your own values!

//----- *IMPORTANT* - Enter your account name below (no @)
var account = "username";

//----- *IMPORTANT* - Enter private posting key here
var wif = "5YOURPRIVATEPOSTINGKEYHERE";

// Declare variables and require modules (No need to modify this)
var steem = require('steem');
var rewardvests;
var rv;
var rvnum;
var rs;
var rd;
var newestblock;

//----- Check the current block on STEEM
steem.api.streamBlockNumber(function(err1, newestblock) {
  // console output to show what block we are on
  console.log("Scanning Block #" + newestblock + " for @" + account + " Rewards");
  // fetch the account to see if we have rewards
  steem.api.getAccounts([account], function(err, response){
    //if it errors
    if(err){console.log("ERROR: Something Went Wrong Grabbing @" + account +"'s Account Info!");}
    //if it works
    if(response){
      // capture output into a variable
      rewardvests = response[0];
      // set rv variable with "reward_vesting_balance" from getAccounts call
      rv = rewardvests["reward_vesting_balance"];
      // grab the float number from reward_vesting_balance to check later for rewards
      rvnum = parseFloat(rv);
      // set rs variable with "reward_vesting_steem" from getAccounts call
      rs = rewardvests["reward_vesting_steem"];
      // set rd variable with "reward_sbd_balance" from getAccounts call
      rd = rewardvests["reward_sbd_balance"];
      // console output pending rewards
      console.log("Pending Rewards: " + rd + " / " + rs + " / " + rv);
      // if reward_vesting_balance is a positive number
        if (rvnum > 0){
          // output console rewards found
          console.log("Pending Rewards Found! Claiming Now!");
          // claim rewards call
          steem.broadcast.claimRewardBalance(wif, account,'0.000 STEEM', '0.000 SBD', rv, function(err, result) {
            // if it errors
            if(err){
              // output console we error'd
              console.log("ERROR Claiming Rewards! :(");
              // output console error info
              console.log(err);
            }
            //if it works
            if(result){
              // output console we were succesful
              console.log("Woot! Rewards Claimed!");
            }//END if(result)
          });//END steem.broadcast.claimRewardBalance
        }//END if (rvnum > 0)
    }//END if(response)
  });//END steem.api.getAccounts
});//END steem.api.streamBlockNumber

Once you've got the file saved make sure to fill in your account name and private posting key within the file itself else it will not work! You can find these in your wallet on Steemit.com.

Once you've gotten your info filled in go ahead and navigate to the scripts location on your computer in command prompt, running it with the node rewardov001.js command.

It should boot up if you filled in your account name and posting private key correctly!

When it finds you have a reward it will automatically claim it for you!

Enjoy!


VOTE @KLYE FOR WITNESS

steemit.com/~witnesses
Sort:  

Nice script. But it's not claiming SBD rewards. Here's a fix.
Change this:

      if (rvnum > 0) {
        // output console rewards found
        console.log("Pending Rewards Found! Claiming Now!");
        // claim rewards call
        steem.broadcast.claimRewardBalance(wif, account, '0.000 STEEM', '0.000 SBD', rv, function (err, result) {

to this:

      if (rvnum > 0 || rd > 0) {
        // output console rewards found
        console.log("Pending Rewards Found! Claiming Now!");
        // claim rewards call
        steem.broadcast.claimRewardBalance(wif, account, '0.000 STEEM', rd, rv, function (err, result) {

..! Hell yeah man. Well done.

I just realized this after you mentioned it. Thank you for helping!

My pleasure. I've been digging into steem-js lately, it's cool stuff. Playing around with it and testing scripts :)

Wow thats very nice tool

thanks for sharing
followed
wow i'm your 2000'th follower :D

Great job @klye,

But to be honest with you nothing is more satisfying than claiming my rewards from my wallet lol.

Great job bb!

mmm bb

resteemed

I was wondering why no setting for this to be done automatically. Thanks for this.

It actually used to automatically deposit rewards into your account but was changed so people had to claim them maybe 2 hardforks ago or so? I missed the way it used to be so I emulated it's functionality in this script. :)

ah ok, been using for a year but only recently been active so didn't know

Yes, yet another micro-chore automated - thanks!

Paint-trail approves this awesome art! You just got the jackpot with a 100% vote
paintttrail.jpg

Lmao, i maybe Can understand you build it. But the most Minnows are happy to press the button And see they have another 0.01.. So i hope to use this script once in the future.. i hope all whales votes to this post So i Can press the button And see $10 once!!!

Wow man that's awesome! Thank you very much.

giphy-downsized (5).gif

Hail satan!

Good. But what about a chrome extension? And not needing to setup user/password?

Wow interesting post keep it up

Will do. Going to likely refocus back on my larger projects here shortly. :)

Ay Ay !
That's a nice option to use !
Thank you for giving us such a fantastic information.
@klye

No worries. No fun keeping this stuff to myself anyways!

Fantastic work! again @klye :)

also are you using github at all? Would be great for you to host the code there for others to look at, fork, improve etc.

I'll eventually start using it.

WOW! you threw this together to help people on here?

Threw it together for my own usage but figured sharing it was in the best interest of everyone looking for this sort of thing. :)

Good post bro, keep up the good work. much appreciated

Will try. Have a good one!

Me likey!

Love you long time

Fantastic! I am going to have to modify the code to run in my node based steem.js test bench, but I'll give it a whirl. Thanks for sharing your source code!

-@sircork

Modify away! Glad you found it of some use.

$: thankyou.sh

Good job @klye.

Sadly though my rewards are not that much that I need to worry about going to my Wallet every time to claim them.. so yeah.. I'm hoping to BE BOTHERED by claiming my rewards pretty soon.. because that means more money, right? lol

More rewards = more Steem Power = better votes = more fun!

Definitely!

Great work man :) really awesome release for the community.. It's amazing to know how the platform works and having the ability to manipulate it in the ways you want.
Cheers for the great release and I'd like to wish you all the best here on the community :)
Goldie

Thanks Goldie! Much appreciated. It's a bit to wrap your head around but once you get it.. it's there. Had a lot of help from the other developers on the platform to get my understanding up to speed. :)

So much easier with steem-python :)

   def claim_reward_balance(self,
                             reward_steem='0 STEEM',
                             reward_sbd='0 SBD',
                             reward_vests='0 VESTS',
                             account=None):
        """ Claim reward balances.
        By default, this will claim ``all`` outstanding balances. To bypass this behaviour,
        set desired claim amount by setting any of `reward_steem`, `reward_sbd` or `reward_vests`.
        Args:
            reward_steem (string): Amount of STEEM you would like to claim.
            reward_sbd (string): Amount of SBD you would like to claim.
            reward_vests (string): Amount of VESTS you would like to claim.
            account (string): The source account for the claim if not ``default_account`` is used.
        """

Yeah, but Python enforces whitespacing which goes against everything I believe. Code should be freedom damnit!

Also my code is 2x the size because I've got everything commented so noobs can better understand the program and modify it. :)

How to claim rewards with steem python:

steem.claim_reward_balance(account = 'youraccount')

:P

Aye. It's easier.. But it's friggin' Python.

I couldn't tell you why exactly, but Python makes me feel 2% cooler B)

I prefer the dirty chaos of Javascript..

Forcing myself to adhere to a strict set of spacing rules when coding hampers my creativity and ultimately slows me down.

This is why I use JS over Python when I can.

No reason we couldn't abstract the library to this level in JavaScript as well :)

I'm glad I'm not the only one that found claiming rewards manually a chore. Thank you!

I see problems or work that could be made easier and I fix it. Tis what I do!

I guess I can't do this for multiple accounts. I'd request that feature for the next versions :)

Will create a multiple account version here eventually.

Ahah very good idea ! Thanks @klye from another JS dev ! 😀

Right on! I tip my hat to you good sir!

You are the Master of Paint arts.

I wield both Code and MS-paint as my weapons to stave off boredom and poverty!

It must be great thing for those users who goes to vacation or want to spend holidays without Internet.

I'd just planed to run it in the background to maximize the amount of SP I had at any given time but yeah.. You are totally right. People that will be knowingly away from their internet connections for a bit can totally use this tool.

Brilliants.

Oh stahp. :P

Good job good post

Very cool tool!

Thank you for your post and contributing to the community.
Hell of a cool name - Rewardo ;)

Well explained, and thanks for info

very clever

Very nice!

Hi, im new on steemit and i dont know if you guys claim steem to poloniex or some other exchange cuz poloniex has disabled it?

This is like one of those movies where the main character has a rube goldberg machine to give him breakfast in the morning.

Damn son this looks technical :P Good job @Klye!
PC guy comfused.png

Appreciate ur hard work @klye but i dont think i will need it to redeem my few pennies :'(

You'll get there.. I used to be lucky to make pennies!

well thanks for the motivation

Awesome @klye! Have Node.js already.

A great publication. Well done. Greetings. Happy day. Please support me

A great publication. Well done. Greetings. Happy day. Please support me

Good afternoon I want to thank you deeply for this good data that you give us and believe me I take it into account to execute it, post as yours there must be more for the good of our colleagues in steemit

Very impressive you build this. Many will be happy with this opportunity. I will try to intall and hope to collect automatically. THANKS !

Follow me

This script needs to be running 24 hrs right.. this will ruin my system