[개발] getAccountHistory API 사용시 주의점
안녕하세요 @realmankwon입니다.
관리하는 계정들이 많아지고 봇이 잘 돌아가고 있는지 확인을 하는 것이 힘들어져서 계정마다 필요한 정보를 저장하고 있습니다.
그리고 해당 활동에 대해서 텔레그램으로 전송하도록 하여 최대한 빨리 오류를 인지할 수 있도록 하였습니다.
그때 사용하는 steem api 는 다음과 같습니디ㅏ.
steem.api.getAccountHistory(account, start, count, (err, result) => {
return resolve(result);
});
- start : 조회할려고 하는 마지막 history no
- count : start 에서 역산하여 조회할 개수
예) 1000 번에서 1500 번까지 조회
start : 1500, count : 501
주기적으로 저장을 하기 위해서 다음과 같이 개발을 했었습니다.
1 . Lastest history no 찾기
- start 에 -1 을 입력하면 Lastest history no 의 정보를 가지고 옵니다.
let lastHistoryNo = await steem.api.getAccountHistory('realmankwon', -1, 1, (err, result) => {
return resolve(result);
});
lastHistoryNo = lastHistoryNo[0][0];
2 . 개인 DB 에 저장된 이전 history no 를 조회
3 . History 조회
const start = lastHistoryNo;
const count = lastHistoryNo - [2의 결과값];
const histories= await steem.api.getAccountHistory('realmankwon', start , count , (err, result) => {
return resolve(result);
});
그런데 이렇게 하면 결과값이 원하는 결과와 달랐습니다.
History no 가 항상 그대로 유지되지 않고 줄어드는 현상이 있었습니다.
원인은 잘 모르겠지만 위와 같이 하면 중복이 발생할 수 있었습니다.
그래서 키 값은 history no 가 아닌 block no, trx id 로 해야하며 count 는 넉넉하게 가지고 와서 중복된 것은 제외시키도록 하여야 됩니다.
이런 부분은 좀 이상하기도 하고 불편하게 느껴집니다.
깔끔하게 정보의 변경이 없게끔하면 되었을텐데... 어떤 사연이 있는 건지...
암튼 주의해서 개발해야할 듯 합니다.
0
0
0.000
0 comments