tim
November 29, 2021, 1:48am
1
스마트 컨트랙트에서 블록 생성 이벤트를 받을수 있을가요?
블록 생성마다 리워드 주는 스마트 컨트랙트를 만드려고 합니다.
Pepper
November 29, 2021, 4:30am
2
안녕하세요. 클레이튼 포럼에 글을 남겨주셔서 감사합니다.
제 생각으로는 스마트컨트랙트에서는 ‘리워드를 주는’ 로직만 작성하고,
블록이 생성되었을 때 해당 리워드를 주는 함수를 js같은 오프체인에서 호출하는 방식으로 구조를 짜시는 것을 추천드립니다.
그 이유는 웹소켓을 통해 블록 생성시 이벤트를 바로 받아볼 수 있기 때문입니다.
이전에 남겨졌던 qna 링크 하나를 첨부하니 참고하시기 바랍니다.
블록체결시 이벤트를 받으려면 아래와 같이 해야한다고 알고 있습니다.
커맨드라인 환경에서 node로 아래의 코드를 실행했더니 바로 실행이 끝납니다.
(브라우저 환경에서의 예제인것 같습니다.)
caver.rpc.klay.subscribe('newBlockHeaders', (error, event) => {
if (error) {
// error handling
}
console.log(`New Block Headers: ${caver.utils.hexToNumber(event.number)}`)
})
이럴때 ethers.js와 비슷한게 user interrupt(ctrl + c)가 있을 때까지 계속 실행되면서
콘솔에 로그를 찍게 하려면 어떻게 해야할 까요?
provider.on("block", (blockNumber) => {
console.log(blockNumber);
});
감사합니다.
1 Like
tim
December 15, 2021, 12:28pm
3
여기 커뮤니티는 참 진절하신거 같습니다.
조언 감사드립니다 많은 도움이 되었습니다