-
[Javascript] 앵커 프로토콜(Anchor Protocol) 예치 금액 가져오기Javascript 2022. 1. 1. 17:13
테라의 대표적인 Stable Coin인 UST 기반 DeFi에 연평균 APY(Annual Percentage Yield) 19% 정도를 제공하는 앵커 프로토콜(https://app.anchorprotocol.com/earn)에 적당한 금액을 예치해 놓았다.
예치를 어떻게 하는지는 논외로 하고 일단 예치한 금액을 매일 같이 잘 있는지 트래킹 하기 위해서는 매일 같이 이 사이트에 들어가서 확인해보는 수밖에 없다.
매일 같이 이자가 불어나는 것을 기쁘게 바라만 보고 있다가 매일 같이 사이트 들어가서 확인하기 너무 귀찮은 나머지 Anchor Earn SDK(https://docs.anchorprotocol.com/developers-earn/anchor-earn-sdk) 가 있다는 것을 발견하고 공식 문서를 참고해서 아래와 같이 예치된 금액을 가져오는 스크립트를 만들어 보았다.
순서는 다음과 같다.
스크립트 시작
사전 준비 : macOS 기준, Visual Studio Code 사용
- NPM 설치하기
https://nodejs.org/en/download/ - terminal에서 cd 를 이용해 스크립트를 실행할 디렉토리로 이동한 다음에 아래 커맨드 입력
npm install -S @anchor-protocol/anchor-earn
- Visual Studio Code 에서 새로운 스크립트를 만들고 아래 코드 입력
address 부분에 본인 지갑의 address 값을 넣으면 된다.import { AnchorEarn, CHAINS, DENOMS, NETWORKS } from '@anchor-protocol/anchor-earn'; const anchorEarn = new AnchorEarn({ chain: CHAINS.TERRA, network: NETWORKS.COLUMBUS_5, address: '...' }); const userBalance = await anchorEarn.balance({ currencies: [DENOMS.UST], }); console.log(userBalance.balances[0].deposit_balance) //export interface BalanceEntry { // currency: string; // account_balance: string; // deposit_balance: string; //}
userBalance.balances[0].deposit_balance = 예치된 금액
userBalance.balances[0].account_balance = 지갑에 있는 UST 를 나타낸다.
필요에 따라 쓰면 된다.
위 코드를 실행하면 Anchor Protocol 앵커 프로토콜에 예치되어있는 금액값을 볼 수 있다.
오류 해결
본인은 위 코드를 실행하면
userCoins.get is not a function while accessing anchorEarn.balance
위와 같은 오류가 뜨는데 검색결과 아래 문서에서 해결책을 찾았고
https://gitmemory.cn/index.php/repo/Anchor-Protocol/anchor-earn/issues/24
userCoins.get is not a function while accessing anchorEarn.balance - gitmemory
userCoins.get is not a function while accessing anchorEarn.balance
gitmemory.cn
npm install -S @anchor-protocol/anchor-earn@2.0.0-alpha1
위의 2번 과정을 반복하면서 위 npm 명령을 쳐서 anchor-earn의 더 새로운 버전을 받아서 실행하니 예치된 금액이 잘 보였다.
이제 매일 특정한 시간에 위 스크립트를 실행하고 텔레그램 봇을 사용하여 알림을 받을 생각이다.
- NPM 설치하기