EcoPot 계획 진행

EcoPot Operator 권한을 획득한 Contract 는 생성 시 정한 토큰을 이용해 EcoPot을 생성할 수 있습니다.

  1. Amount 설정 시 사용되는 단위는 Decimal이 포함된 단위입니다.

    예) KLAY 10개 = 10 * (10^18) = 10000000000000000000

  2. EcoPot 설정은 Contract 마다 1개의 Token 만 설정 가능하므로 다른 Token 설정 시 새로운 EcoPotOperator Contract를 배포해야 합니다.

EcoPot 설정

EcoPotOperator Contract의 initialize 함수를 실행합니다.

  • 필요한 토큰의 수량과 수수료는 Contract에 Deposit이 아닌 Transfer 해두어야 합니다.

  • KLAY 토큰 설정시 msg.value 에 설정할 수량을 입력하셔야 합니다.

  • KIP7 기반 토큰 설정시 Owner 지갑에서 EcoPotOperator 에 설정한 수량만큼 approve 설정을 해주셔야 합니다.

  • Request Parameters

    • totalAmount : EcoPot으로 분배할 총 Token 수량

    • blockAmount : 블럭마다 분배할 Token 수량

    • startBlock : EcoPot 시작 Block 번호

function initialize(
    uint totalAmount,
    uint blockAmount,
    uint startBlock,
) public

EcoPot Token 충전

EcoPot 진행 중 Token 소진, 연장의 이슈가 있어 Token이 부족하다면 EcoPotOperator Contract의 Deposit 함수로 토큰을 충전할 수 있습니다.

  • 함수 실행 시 EcoPotOperator Contract에 입력한 amount 이상의 토큰을 Transfer 해두어 합니다.

  • 물량 소진으로 재 충전 시, 충전 이후 Block 부터 적용됩니다.

function deposit(uint amount) public

EcoPot 수정

  • 블럭당 분배되는 토큰의 양을 수정합니다

  • Transaction이 실행된 다음 Block부터 적용됩니다.

function refixBlockAmount(uint blockAmount) public

EcoPot 설정 확인

EcoPot의 현재 설정값을 확인할 수 있습니다.

  • Valid Operator 권한 획득 후 진행해야 합니다.

  • Return Parameters

    • ecoPotContract : EcoPot Contract address

    • totalAmount : EcoPot으로 분배할 총 Token 수량

    • blockAmount : 블럭마다 분배할 Token 수량

    • distributableBlock : EcoPot 분배 시작 Block 번호

    • endBlock : 예상 분배 종료 Block 번호

    • distributed : 분배된 Token 수량

    • remain : 잔여 Token 수량

function getEcoPotStat() public view returns (
    address ecoPotContract, 
    uint totalAmount, 
    uint blockAmount, 
    uint distributableBlock, 
    uint endBlock,
    uint distributed, 
    uint remain
)

EcoPot 토큰 출금

  • EcoPot 계획 진행 후 남아있는 토큰을 출금할 수 있습니다.

  • Owner 계정으로 출금됩니다.

function withdraw(address tokenAddr) public

Last updated