Post Promoter JavaScript Voting Bot - Update 4

in #utopian-io7 years ago

I'm back again with some great new updates to the Post Promoter voting bot software! It is now powering bots with over 4 Million Steem Power combined!

Anyway, here are the latest developments:

Option to auto-withdraw funds after each round

Previously funds could only be automatically withdrawn from the bot account once per day, but now you can set the "frequency" option to "round_end" to distribute them after each bidding window!

"auto_withdrawal": {
    "active": true,
    "accounts": [
      { "name": "account1", "stake": 8000 },
      { "name": "account2", "stake": 2000 }
    ],
    "frequency": "round_end"
}

Automatically retry failed transactions

For some reasons transactions were sometimes randomly failing with a "max_block_age" error. If anyone knows what that means or why it happens please let me know! In any case I have set it up so that it will retry failed transactions (votes, withdrawals, etc) one time at which point the transaction seems to go through successfully.

// Try again one time on error
      if(retries < 1)
        sendVote(bid, retries + 1);
      else {
        utils.log('============= Vote transaction failed two times for: ' + bid.permlink + ' ===============');
      }

Auto-withdrawal of liquid post rewards

If the auto withdrawal feature is enabled it will automatically send out all of the liquid STEEM and/or SBDs in the account daily or after every bidding round. This is great if you want to automatically pay out earnings from the bot to different accounts, but the problem is that if your bot's posts get any upvotes those rewards would be auto-withdrawn as well.

Now you can specify a separate account which will automatically get sent all liquid post rewards as soon as they are claimed:

"post_rewards_withdrawal_account": "withdraw_liquid_post_rewards_to_account",

Added a price feed setting to properly value SBD and STEEM bids

Until this update the bot software valued SBD and STEEM bids the same. This means that someone who sent a 1 SBD bid would get the same vote as someone who sent a 1 STEEM bid. This was clearly not good as 1 SBD is now worth 5X what 1 STEEM is worth. It was a highly requested change and now it's done!

To use it, simply set the "price_feed_url" config setting to a URL that sends the current STEEM and SBD price in USD. You are free to use the one I set up at: https://postpromoter.com/api/prices

"price_feed_url": "https://postpromoter.com/api/prices"

Obviously this is only necessary if your bot accepts both STEEM and SBDs.

Thanks for your support!

I wanted to thank everyone who has helped and supported me in creating this software. I love that it has been able to help so many people get their content promoted. Please stay tuned for more updates in the coming weeks!

Links to relevant commits:
Added price feed setting to value SBD & STEEM bids based on their pri…
Added log for retry of vote failing and fixed issue with withdrawals
Added feature to auto-withdraw liquid post rewards to an account
Added option to withdraw funds after each bidding round



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

You got a 1.14% upvote from @upmewhale courtesy of @yabapmatt!

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Well done and thanks for the update!
Great you got the SBD & STEEM conversion for the bids taken into account. For the price feed, any reason you decided to not go with the rate via the internal market? Curious, in case you found it unreliable.

Glad you like it! I didn't even think to use the internal market lol...not sure how to do that, I guess I would use the steem.api.getOrderBook() call? Either way it was super simple to use the coinmarketcap.com API so I went with that!

I use the get_ticker call and use the returned value for 'latest' tick.
See below the API call used in steem-python.

def get_ticker(self):
        """Returns the market ticker for the internal SBD:STEEM market."""
        return self.exec('get_ticker', api='market_history_api')```

Great update @yabapmatt

Thank you, dear friend - you're doing a fabulous job
I have no idea how you do it - but, well done

Me and programming - do not go well together
In JAVA I have no idea.

@yabapmatt how can i get in touch with you good sir? :P

You can contact me on steemit.chat

excellent achievements, you are doing useful things that will make life easier for many. Useful work

Thanks for the explanation you provided for our new-play in the steem. a very good explanation for me personally and possibly also for everyone wrote plays in the steem.
Let me share your postings to the others so that the information could be useful as well.
I look forward to working with you and can be your friend @yabapmatt @yabapmatt.

Hey @yabapmatt I am @utopian-io. I have just upvoted you!

Achievements

  • WOW WOW WOW People loved what you did here. GREAT JOB!
  • You are generating more rewards than average for this category. Super!;)
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

hi, i sent you a memo on you allaz bot i also sent you a message on steemit chat, i have concerns about your allaz service, please respond

You sent your initial bid right after that round ended so you got your vote in the next round.

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.037
BTC 94320.05
ETH 3419.91
USDT 1.00
SBD 3.88