카이아 토큰 알림 및 메신저 기능

저희 회사에선 자신의 주소로 KAIA 토큰을 받았을 때 알람을 받는 기능을 활용한 서비스를 제공할 수 있는가에 대해 논의하고 있습니다.

클레이튼 제단 홈페이지에 관련된 글을 포스팅 해주셨는데 관련기능이 가능하려면 어느정도에 시간이 필요한지
궁금합니다.

또한 해당 글과 관련하여 참고할 다른 정보가 있으면 공유 부탁드립니다.

안녕하세요, KAIA 토큰 전송시 알림을 받는 기능은 현재 Tatum사의 Notification 서비스를 통해 구현하실 수 있습니다. Instant Blockchain Notications - Tatum 클레이튼을 지원하고 있으며 사용자가 지정한 이벤트에 대해 webhook 등을 연동하실 수 있습니다.

아래는 Tatum webhook을 받아서 슬랙 봇에게 전달하는 Node.js 예제입니다. AWS Lambda 등을 활용하시면 서버리스 방식으로도 운영하실수 있습니다.


export const handler = async (event) => {

  console.log("Received", event);
  let msg;
  if (event.body) {
    msg = JSON.parse(event.body);
  } else {
    msg = event;
  }
  /*
  {
  	"currency": "KLAY",
  	"chain": "klaytn-baobab",
  	"txId": "0x...",
  	"blockNumber": 3192029,
  	"subscriptionType": "OUTGOING_NATIVE_TX",
  	"mempool": false,
  	"address": "0x...",
  	"counterAddress": "0x...",
  	"test": true,
  	"amount": "0.000241500000147"
  } 
  */

  const explorerUrl = EXPLORER_URLS[msg.chain].replace(/\/+$/, "");
  const message = `
[${msg.subscriptionType}] ${msg.amount} ${msg.currency}
- From ${explorerUrl}/address/${msg.address}
- To ${explorerUrl}/address/${msg.counterAddress}
- Block ${explorerUrl}/block/${msg.blockNumber}
- Tx ${explorerUrl}/tx/${explorerUrl}`;

  const transformedBody = {
    text: message,
  };

  try {
    const res = await fetch(SLACK_WEBHOOK, {
      method: "post",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(transformedBody),
    })
    return {
      text: message,
      status: res.status
    };
  }
  catch (e) {
    console.error(e);
    return 500;
  }
};

그 외에는 eth_subscribe RPC (eth_subscribe) 를 이용해 온체인 이벤트를 웹소켓으로 받아서 직접 필터링하는 방법이 있겠습니다.

링크해주신 블로그 글에서 언급된 플러그인 기능 등은 현재 초기 연구개발 단계에 있음을 알려드립니다.