steem.js로 보상을 자동으로 받게 할 수 없을까 찾아본지 한 달여 만에 아래의 페이지에서 해당 기능을 찾았습니다.
아직까지는 vest나 rshare와 같은 개념이 명확하지 않아 코드들은 다 이해하기는 힘드네요. 언제 백서를 한번 읽어야 할까봐요 ㅎㅎ
구체적인 소스코드의 해석은 위 링크를 참조하시면 될 것 같고, 핵심적인 부분만 추리면 아래와 같습니다.
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];
rv = rewardvests["reward_vesting_balance"];
rvnum = parseFloat(rv);
rs = rewardvests["reward_vesting_steem"];
rd = rewardvests["reward_sbd_balance"];
console.log("Pending Rewards: " + rd + " / " + rs + " / " + rv);
if (rvnum > 0){
console.log("Pending Rewards Found! Claiming Now!");
steem.broadcast.claimRewardBalance(wif, account,'0.000 STEEM', '0.000 SBD', rv, function(err, result) {
if(err){
console.log("ERROR Claiming Rewards! :(");
console.log(err);
}
if(result){
console.log("Woot! Rewards Claimed!");
}//END if(result)
});//END steem.broadcast.claimRewardBalance
}//END if (rvnum > 0)
}//END if(response)
});//END steem.api.getAccounts
지금까지는 스팀잇하면서 괜히 한번씩 wallet메뉴에 들어가보곤 했는데 이제 번거로운(?) 수작업 하나가 줄었네요. ^^
제가 올린 node.js로 steem.js 활용하기 강좌의 아래 편을 참고하시면 하루에 1,2회 보상을 받는 코드를 짜실 수 있을거에요~
[node.js 스팀봇 강좌] #11. 항상 실행되는 프로그램 만들기
[node.js 스팀봇 강좌] #12. 비정상 종료 프로그램 재실행시키기