[NodeJS] API 사용 법 18편 KRWP 자동 신청
안녕하세요 ayogom 입니다.
아마 이 글은 활용도가 높을 듯 합니다. 실제로 저도 사용중이기도 하고요, 아마도 이 방법이 공개되면 저도 쉽지 않을듯 하지만 어짜피 할 사람은 어떻게든 할 수 있는 내용이라 공개 합니다.
먼저 어제 [NodeJS] API 사용 법 17편 보팅 파워 조회하기 조회하는 방법을 배웠습니다.
마지막 코드를 가져와 볼까요
var steem = require('steem');
steem.api.getAccounts(['sct.krwp'], function(err, result) {
var last_vote_time = result[0].last_vote_time;
var voting_power = result[0].voting_power;
var elapsed_seconds = (new Date() - new Date(last_vote_time + "Z")) / 1000;
var regenerated_power = 10000 / (60 * 60 * 24 * 5) * elapsed_seconds;
current_power = Math.round(Math.min(voting_power + regenerated_power, 10000));
console.log(current_power)
});
위의 코드는 현재의 sct.krwp
계정의 보팅 파워를 점검하는 코드입니다.
이걸 일단 반복적으로 조회를 해서 원하는 조건을 기다려야 하는데요. 예를들면 60%로 잡겠습니다. 이유는 60% 이상은 보팅률이 0.002 이 적용되기 때문에 높은 보팅을 받을 수 있거든요 ! 그에 대한 내용은 [요청] Krwp 보팅 수익 분석 해보기 이 포스팅을 참고 하시면 됩니다.
반복적인 조회를 하려면 [NodeJS] API 사용 법 6편 예약 포스팅 해보기 -3편 (매일매일 글쓰기) 이 글을 참고해서 아래와 같이 코드를 짜볼 수가 있습니다.
var steem = require('steem');
setInterval(function voting(){
steem.api.getAccounts(['sct.krwp'], function(err, result) {
var last_vote_time = result[0].last_vote_time;
var voting_power = result[0].voting_power;
var elapsed_seconds = (new Date() - new Date(last_vote_time + "Z")) / 1000;
var regenerated_power = 10000 / (60 * 60 * 24 * 5) * elapsed_seconds;
current_power = Math.round(Math.min(voting_power + regenerated_power, 10000));
console.log(current_power)
});
}, 1000)
setInterval을 사용하면 반복적인 체크를 할 수 있습니다. 위의 코드를 적용해서 동작시켜보면
1000 즉 1초마다 보팅파워를 조회하게 만들었습니다.
그러면 이제 조건을 포함해야겠죠 60% 조건시에 액션을 해야하기 때문에 일때 조건을 추가 합니다.
if (current_power>=6000){
[ 액션 내용]
}
액션 내용에는 무엇을 해야할까요? 네~ SCT를 보내야 합니다. 그럼 뭘 참고 할까요
[NodeJS] API 사용 법 12편 Steem enjin API 사용해보기 (자동 파워업!) 여기에서는 파워업을 했지만 파워업을 송금으로 바꾸기만 하면 됩니다.
var memo = 포스팅 주소;
var amount = 5;
var json = JSON.stringify({"contractName":"tokens","contractAction":"transfer","contractPayload":{"symbol":""+"KRWP"+"","to":""+"krwp.burn"+"","quantity":""+amount+"","memo":"@ayogom/"+memo+""}});
steem.broadcast.customJson(wif, ['ayogom'],[], 'ssc-mainnet1', json, async function(err, result) {
console.log(result);
}
위와 같이 송금 코드를 추가 합니다.
물론 정리해보면
var steem = require('steem');
wif = 액티브키
setInterval(function voting(){
steem.api.getAccounts(['sct.krwp'], function(err, result) {
var last_vote_time = result[0].last_vote_time;
var voting_power = result[0].voting_power;
var elapsed_seconds = (new Date() - new Date(last_vote_time + "Z")) / 1000;
var regenerated_power = 10000 / (60 * 60 * 24 * 5) * elapsed_seconds;
current_power = Math.round(Math.min(voting_power + regenerated_power, 10000));
console.log(current_power)
if (current_power>=6000){
var memo = xxxxxxx;
var amount = 5;
var json = JSON.stringify({"contractName":"tokens","contractAction":"transfer","contractPayload":{"symbol":""+"KRWP"+"","to":""+"krwp.burn"+"","quantity":""+amount+"","memo":"@ayogom/"+memo+""}});
steem.broadcast.customJson(wif, ['ayogom'],[], 'ssc-mainnet1', json, async function(err, result) {
console.log(result);
});
}
});
}, 1000)
쉽죠? 여기에 팁을 하다 더 드리면, 최신 포스팅을 확인 하는 코드까지 넣으면 더 자동화가 됩니다~
그럼 오늘은 이만, 또 새로운 방법을 고민해서 새로운 내용을 공유해드리겠습니다~
- 스팀관련해서 궁금하신 내용이 있다면 언제든 문의 주세요
작성 예정인 글 List
- Nodejs 를 이용한 스팀 API 사용해보기 (계속)
누군가에게는 도움이 될 수 있는 글
스팀잇 기본 이야기
- 복잡한 키&패스워드는 그만 손쉬운 로그인 키체인의 사용법
- 계정 옆의 숫자 평판? "reputation" 이란
- 스팀잇 내부 거래 사이트, 마켓
- 오랜만에 스팀잇에 돌아왔더니 로그인이 안됩니다 (Logging in with non-posting key)
- 스팀잇에 기존 사용하던 트론 지갑을 연결하는 방법
- 스팀 체인의 패스워드 / 키의 역활
- Steemit의 태그 사용법과 커뮤니티스 사용법
- Steemit 프로필 변경 방법
- 스팀파워 임대가 안된다 왜?
- 스팀잇 계정 만들기
- 스팀잇 저장 보상의 종류와 뭐가 좋을지
- 스팀잇 속닥속닥 비밀 메모 사용하기!
- 스팀/스달 입금, 출금 그리고 업비트 이용방법
- 갑자기 steemit 사이트가 접속이 안된다면?
- 스팀잇 내에 붉은 글씨 사용법
- 스팀잇 지갑에 접속이 되지 않을 때
- 스팀잇 글 작성 문법 [마크다운편]
- 스팀잇 글 작성 문법 [HTML]
- 스팀잇 가독성 및 작성을 편하게 해주는 "Steemit.com Enhancer" 툴
- 스팀 키 권한을 해제 해 보자
니트로스 (SCT, ZZAN 등 ) 이야기
- Steem체인의 또하나의 커뮤니티 "zzan"
- Steem체인의 또하나의 커뮤니티 "sct"
- [요청] 스팀엔진 Explorer 가 접속이 되지 않아요
- [요청] 스팀엔진 사용방법
- SCT 포스팅피 납부 확인 및 납부 방법
- 니트로스(SCT, ZZAN, AAA) 에 대한 설정 확인해보기
스팀잇 심화 이야기
- 스팀의 인플레이션에 대해서
- 하루에 스팀 리워드 풀에 포함되는 스팀은 얼마나 될까?
- 하루에 도대체 어느정도의 스팀은 생성될까요?
- 내가 보팅 했더니 보상이 떨어졌다? 왜?
- 스팀달러가 1달러를 유지하는 방법
- 글이 써지지 않아요 왜? Resource Credits!? Your transaction failed to process
- 스팀잇 에서의 $ 는 USD(미국달러) 인가요?
- 스팀은 DPOS 기반의 블록체인입니다. 그럼 DPOS가 뭔가요?
- 증인에 역활은 무엇일까
- 스팀 증인 노드 세팅하기 1탄
- 스팀 증인 노드 세팅하기 2탄
- Steem Node 정리 (Full node 1편)
- Steem Node 정리 (Full node 2편) -설치
- 최신 Full node 설치 1편
- 최신 Full node 설치 2편 Jussi 설정
- 최신 Full node 설치 3편 Jussi 설정 (Hivemind 연결) 결론 실패
- 증인 노드 feed price 업데이트 방법
스팀잇 보상과 연결되는 이야기
해킹과 관련된 이야기
개발과 관련된 이야기
- Nodejs 가 무엇인지 그리고 어떻게 설치 하는지?
- [NodeJS] API 사용 법 1편 스팀 라이브러리 설치
- [NodeJS] API 사용 법 2편 보팅을 해볼까?
- [NodeJS] API 사용 법 3편 포스팅을 해볼테다!
- [NodeJS] API 사용 법 4편 예약 포스팅 해보기
- [NodeJS] API 사용 법 5편 예약 포스팅 해보기 -2편 (포스팅 수정)
- [NodeJS] API 사용 법 6편 예약 포스팅 해보기 -3편 (매일매일 글쓰기)
- [NodeJS] API 사용 법 7편 스팀 블럭 모니터링 하기
- [NodeJS] API 사용 법 8편 스팀 블럭 모니터링 하기 2편
- [NodeJS] API 사용 법 9편 Nodejs가 가지는 불편함 (콜백지옥)
- [NodeJS] API 사용 법 10편 간단한 보팅 봇 만들기
- [NodeJS] API 사용 법 11편 Steem enjin API 사용해보기 (설치편)
- [NodeJS] API 사용 법 12편 Steem enjin API 사용해보기 (자동 파워업!)
- [NodeJS] API 사용 법 13편 송금 해보기
- [NodeJS] API 사용 법 14편 송금 확인해보기
- [NodeJS] API 사용 법 15편 송금 확인해보기 2탄
- [NodeJS] API 사용 법 16편 간단한 비드봇을 만들어보자
- [NodeJS] API 사용 법 17편 보팅 파워 조회하기
@ayogom transfered 5 KRWP to @krwp.burn. voting percent : 12.29%, voting power : 48.92%, steem power : 1793799.87, STU KRW : 1200.
@ayogom staking status : 940 KRWP
@ayogom limit for KRWP voting service : 0.94 KRWP (rate : 0.001)
What you sent : 5 KRWP
Refund balance : 4.06 KRWP [54869639 - 110085825b4b7c73773219ac5a56b44c9fe9d93c]
start success go! go! go!
저도 파이썬으로 이거 만들어서 사용했었는데요.
보파 60% 일때 보내면... 이미 다른 분이 받아 가더라는...
눈치겜이 심한... ㅎㅎㅎ
약간 빠른 타이밍에 전송을 하는걸 추천합니다~~ ㅎㅎㅎ
5999가 역시 ㅋㅋ
@banguri님이 당신을 멘션하였습니다.
https://www.steemit.com/@banguri/6-23
초보라 용어라도 좀 이해를 하려고 합니다.
제목에 "nodeJS"는 무엇을 의미하나요?
그래서 다 준비해뒀습니다 ㅎㅎㅎ
Nodejs 가 무엇인지 그리고 어떻게 설치 하는지?
감사합니다. 설치해서 하나 하나 따라해볼게요..
굉장히 유용한 코드네요.
심풀하고 도움이 되죠...ㅎ
근데 이제 덕분에 경쟁률이 올라갔을지도... 그래도 안할 사람은 안할테니 ㅎ
감사합니다 ! ^^