Steem Token Voting Bot 개발
안녕하세요 @realmankwon입니다.
며칠 전 Bot 개발 관련 포스팅을 하였습니다.
개발된 Bot의 내용은 다음과 같습니다.
1 . 본계정과 부계정의 Token Claim
2 . 본계정의 SCT 를 제외한 모든 Token 을 부계정으로 전송
3 . 부계정의 Staking 가능한 모든 Token Staking
일단 며칠 써 본 결과 확실히 편하네요 ^^
이제는 Voting Bot 만 개발하면 큐레이팅 자동화를 통한 채굴이 완료될 것 같습니다.
관련해서 그동안 소스 투고를 하면서 보았던 nitrous 소스에서 필요한 api 를 많이 공부해서 오늘 대략적인 소스는 개발을 하였습니다.
소스는 다음과 같습니다.
const steem = require('steem');
const axios = require('axios');
const SSC = require('sscjs');
const ssc = new SSC('https://api.steem-engine.com/rpc/');
const discussionQuery = {
token: 'SCT',
limit: 30,
};
getScotDataAsync('get_discussions_by_promoted', discussionQuery)
.then(feedData => {
feedData.forEach(content =>{
const diffTime = ((new Date()).getTime() - (new Date(content.created)).getTime()) / (1000 * 60) - 9 * 60;
if(diffTime < 20){
console.log(`${content.authorperm} : ${diffTime}`);
let isVoting = false;
content.active_votes.forEach(voter => {
if(voter.voter === 'realmankwon') {
isVoting = true;
return true;
}
});
if(isVoting){
console.log("Already!");
} else {
console.log("Not yet!");
}
}
});
});
async function getScotDataAsync(path, params) {
return callApi(`https://scot-api.steem-engine.com/${path}`, params);
}
async function callApi(url, params) {
return await axios({
url,
method: 'GET',
params,
})
.then(response => {
return response.data;
})
.catch(err => {
console.error(`Could not fetch data, url: ${url}`);
return {};
});
}
현재는 SCT 만을 예로 들었습니다.
AAA, ZZAN, SPT 등은 discussionQuery 에서 token 뒷 부분에 해당 Token 을 넣으면 됩니다.
홍보글에서 20분 이내의 글만을 가져와서 제 본계정으로 voting 이 되어 있는지 안 되어 있는지 확인한 후에 되어 있지 않으면 "Not Yet" 을 출력하고 되어 있으면 "Already"를 출력시켰습니다.
이제 Not Yet 부분에 Voting을 하는 로직만 넣으면 화이트리스트와 상관없이 홍보글 중 20분 이내에 제가 Voting 하지 않은 글에 자동으로 Voting을 할 수가 있습니다.
이 소스에 화이트리스트를 추가하고 Voting 로직을 추가하여 금주내로 적용을 할 예정입니다.
그래서 다음주부터는 SCT 운영 개발에 거의 대부분의 시간을 할애 할려고 합니다.
Voting Bot 을 운영하고 싶으신 분들은 해당 소스를 참고하셔서 운영하시면 도움이 될 것 같습니다.
To listen to the audio version of this article click on the play image.
Brought to you by @tts. If you find it useful please consider upvoting this reply.
한번 참고해서 만들어 봐야 하는데 KRW 마이닝한다고 시간이 많이 없네요 t.t 늘 감사하게 잘 사용하고 있습니다.
와~ 정말 너무 감사합니다~
열심히 연구해서 잘 활용해 보겠습니다~
소스 공개 감사합니다.