Airdrop 계획 진행
Airdrop Operator 권한을 획득한 Contract 는 생성 시 정한 유동성 풀과 토큰을 이용해 Airdrop을 시작할 수 있습니다.
- Amount 설정 시 사용되는 단위는 Decimal이 포함된 단위입니다. - 예) KLAY 10개 = 10 * (10^18) = 10000000000000000000 
- KLAY를 Airdrop Token으로 설정 시 zero address( - 0x0000000000000000000000000000000000000000)로 설정해야 합니다.
- Airdrop 설정은 Contract 마다 1개의 LP, 1개의 Token 만 설정 가능하므로 다른 LP 혹은 다른 Token 설정 시 새로운 Airdrop Contract를 배포해야 합니다. 
Airdrop 수수료 
- Airdrop 생성에는 일정량의 KSP가 필요할 수 있습니다. 
- KSP 수수료가 있다면 생성 전 필요한 KSP를 Operator에 전송해야 합니다. 
Airdrop 생성
AirdropOperator Contract의 createDistribution 함수를 실행합니다.
- Valid Operator 권한 획득 후 진행해야 합니다. 
- 필요한 토큰의 수량과 수수료는 Contract에 Deposit이 아닌 Transfer 해두어야 합니다. 
- Request Parameters - totalAmount : Airdrop으로 분배할 총 Token 수량 
- blockAmount : 블럭마다 분배할 Token 수량 
- startBlock : Airdrop 시작 Block 번호 
 
function createDistribution(
    uint totalAmount,
    uint blockAmount,
    uint startBlock,
) publicAirdrop Token 충전
Airdrop 진행 중 Token 소진, 연장의 이슈가 있어 Token이 부족하다면 AirdropOperator Contract의 Deposit 함수로 토큰을 충전할 수 있습니다.
- 함수 실행 시 지갑에 입력한 amount 이상의 토큰을 Transfer 해두어 합니다. 
- Operator 생성 시에 지정한 Token을 충전합니다. 
- 물량 소진으로 재 충전 시, 충전 이후 Block 부터 적용됩니다. 
function deposit(uint amount) publicAirdrop 수정
- 블럭 당 분배되는 토큰의 양을 수정합니다 
- Transaction이 실행된 다음 Block부터 적용됩니다. 
function refixBlockAmount(uint blockAmount) publicAirdrop 토큰 출금
- Airdrop 계획 진행 후 남아있는 토큰을 출금할 수 있습니다. 
- Owner 계정으로 출금됩니다. 
function withdraw(address tokenAddr) publicLast updated
