8.0.0 • Published 1 year ago

@mirrorworld/evm.token-claim v8.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

This SDK contains the client side methods for the Token Claim EVM Smart Contract

Installation

🚨 Please make sure to add this NPM token in your .npmrc file: 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

yarn add @usemirrorworld/evm.token-claim

Usage

Import the TokenClaimLib instance into your client for using the Token Claim Smart Contract. It expects a contractAddress and provider instance.

import { TokenClaimLib} from "@mirrorworld/evm.token-claim";

const RPC = "http://localhost:8500";
let provider = new ethers.providers.JsonRpcProvider(RPC);

let tokenClaimLib: TokenClaimLib = new TokenClaimLib(tokenClaim.address, provider);

Demo

Example: You can see example project in this is here

Initialize Claim Config

For setup up the claim pool call the "initializeClaimConfig" method

let tx = await tokenClaimLib.createInitializeClaimConfigTransactionRequest(caller.address, claimPoolName, ercTokenAddress, poolOwnerAddress, gasPrice, gasLimit);

const sigTx = await caller.signTransaction(tx);

const sentTx = await provider.sendTransaction(sigTx);

const txRe = await sentTx.wait();

Update Claim Config

For setting the enable or disable the claim pool, airdrop and claim call the "updateClaimConfig" method

let tx = await tokenClaimLib.createUpdateClaimConfigTransactionRequest(caller.address, claimPoolName, isEnable, isClaimEnable, isAirdropEnable, gasPrice, gasLimit);

const sigTx = await caller.signTransaction(tx);

const sentTx = await provider.sendTransaction(sigTx);

Add Pool Supply

For top up the pool supply for claim and airdrop call the "addPoolSupply" method, but before calling this method caller must call of this method must call the ERC20 approve for this Token Claim contract address as spender and amount which need to added in the supply

let tx = await tokenClaimLib.createAddPoolSupplyTransactionRequest(caller.address, claimPoolName, amount, gasPrice, gasLimit);

const sigTx = await caller.signTransaction(tx);

const sentTx = await provider.sendTransaction(sigTx);

Withdraw Pool Supply

For withdraw the pool supply call the "withdrawPoolSupply" method

let tx = await tokenClaimLib.createWithdrawPoolSupplyTransactionRequest(caller.address, claimPoolName, amount, receiver, gasPrice, gasLimit);

const sigTx = await caller.signTransaction(tx);

const sentTx = await provider.sendTransaction(sigTx);

Airdrop

For airdrop the token to the user call the "airdrop" method

let tx = await tokenClaimLib.createAirdropTransactionRequest(caller.address, claimPoolName, amount, user, gasPrice, gasLimit);

const sigTx = await caller.signTransaction(tx);

const sentTx = await provider.sendTransaction(sigTx);

Claim

For user to claim the token claim pool owner need to sign the payload with "claim ID (season ID)" and create the transaction which user send to the network

let claimMsg = tokenClaimLib.getClaimMessage(claimPoolName, caller.address, BigNumber.from(amount), claimId)
let claimSig = await tokenClaimLib.signMessage(ownerWallet, claimMsg)

let tx = await tokenClaimLib.createClaimTransactionRequest(caller.address, claimPoolName, amount, claimId, claimSig, gasPrice, gasLimit);

const sigTx = await caller.signTransaction(tx);

const sentTx = await provider.sendTransaction(sigTx);

const txRe = await sentTx.wait();
8.0.0

1 year ago

7.0.0

1 year ago

6.0.0

1 year ago