Aura Finance
한국어 (KO)
한국어 (KO)
  • 🙌환영합니다
  • 📖AURA
    • Aura가 뭔가요?
      • 유동성 공급자의 경우
      • $BAL 스테이커의 경우
      • $AURA 잠금자의 경우
      • 수수료
    • 거버넌스
      • 멀티시그 구성
      • 멀티시그 권리
      • 게이지 투표
    • 보안
      • 위험
    • $AURA
      • 분배
        • 할당 확장 프로세스
      • 의결권 잠금
  • 🛠️개발자
    • 배포된 주소
    • 솔리디티 API
      • AuraBalVault - 컴파운더
    • Aura 기반 개발
    • 브랜드 가이드라인
    • 튜토리얼
      • Aura 풀에 대한 보상 토큰/보상 보기
      • Aura 풀의 APR 계산하기
      • 풀 부스트 계산하기
      • Aura Subgraphs
      • 예상 APR 계산하기
      • Balancer LP 가격 확인하기
    • 자주 물어보는 질문
  • 🔗링크
    • Twitter
    • Discord
    • Forum
    • Github
    • Aura Finance
    • 이용 약관
Powered by GitBook
On this page
  1. 개발자
  2. 튜토리얼

Aura 풀에 대한 보상 토큰/보상 보기

Previous튜토리얼NextAura 풀의 APR 계산하기

Last updated 2 years ago

  • 풀을 선택하고 정보 탭으로 이동하여 이더스캔에서 Rewards Contract Address를 엽니다.

    • rewardRate는 초당 생성되는 BAL 보상 비율입니다.

    • extraRewards(N) 는 추가 보상을 위한 컨트랙트,주소입니다 (AURA, BAL, ie. LDO, bb-a-USD 제외)

    • AURA는 누적된 BAL에 비례하여 발행됩니다.

      • BAL당 방출되는 AURA의 양을 결정하는 공식은 여기에서 확인할 수 있습니다:

      • 차트는 여기에서 확인할 수 있습니다:

      • TypeScript 구현은 여기에서 확인할 수 있습니다:

      export const getAuraMintAmount = (
        balEarned: number,
        global: Omit<Global, 'auraMinter' | 'auraMinterMinted'>,
      ) => {
        const reductionPerCliff = BigNumber.from(global.auraReductionPerCliff);
        const maxSupply = BigNumber.from(global.auraMaxSupply);
        const totalSupply = BigNumber.from(global.auraTotalSupply);
        const totalCliffs = BigNumber.from(global.auraTotalCliffs);
        const minterMinted = BigNumber.from(0);
       
        // e.g. emissionsMinted = 6e25 - 5e25 - 0 = 1e25;
        const emissionsMinted = totalSupply.sub(maxSupply).sub(minterMinted);
       
        // e.g. reductionPerCliff = 5e25 / 500 = 1e23
        // e.g. cliff = 1e25 / 1e23 = 100
        const cliff = emissionsMinted.div(reductionPerCliff);
       
        // e.g. 100 < 500
        if (cliff.lt(totalCliffs)) {
          // e.g. (new) reduction = (500 - 100) * 2.5 + 700 = 1700;
          // e.g. (new) reduction = (500 - 250) * 2.5 + 700 = 1325;
          // e.g. (new) reduction = (500 - 400) * 2.5 + 700 = 950;
          const reduction = totalCliffs.sub(cliff).mul(5).div(2).add(700);
          // e.g. (new) amount = 1e19 * 1700 / 500 =  34e18;
          // e.g. (new) amount = 1e19 * 1325 / 500 =  26.5e18;
          // e.g. (new) amount = 1e19 * 950 / 500  =  19e17;
          let amount = simpleToExact(balEarned).mul(reduction).div(totalCliffs);
       
          // e.g. amtTillMax = 5e25 - 1e25 = 4e25
          const amtTillMax = maxSupply.sub(emissionsMinted);
          if (amount.gt(amtTillMax)) {
            amount = amtTillMax;
          }
       
          return amount;
        }
       
        return BigNumber.from(0);
      };

온체인 쿼리 사용 금지

AuraMinter.inflationProtectionTime()이 지나면 이 계산이 유효하지 않을 수 있습니다.

솔리디티 라이브러리 구현은 여기에서 확인할 수 있습니다 (AuraMining):

🛠️
https://etherscan.io/address/0x744Be650cea753de1e69BF6BAd3c98490A855f52
https://etherscan.io/token/0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF#code#F1#L85
https://docs.google.com/spreadsheets/d/16VSvgp-ejkra03ykyh-2nlxeCMEDvBZ-LFjuaQo6Ym8/
Screenshot 2022-11-01 at 10.53.01.png