Launchpad

Contract name: Launchpad Contract address: 0xAf1e6a5F88ecb931bE8d2E7BE62B1FC115807fb3

View Launchpad.sol on Github

View MeijiDAO: launchpad contract on BscScan

Variables

GovernanceToken

  • Type: IERC20

  • MeijiDAO token contract address

stakingPools

  • Type: address[]

  • Save all staking contract addresses

fee

  • Type: uint

  • Fee percentage when project owner claim MeijiDAO funds

ticketFee

  • Type: uint

  • Fee percentage when investor claim ticket tokens.

stakingPools

  • Type: address[]

  • Locked staking pool addresses integrated with launchpad contract

Struct

Pool

It is the struct to manage project pools in funding cycle. Pool struct keeps to save the project's status.

struct Pool {
    uint id;
    address owner;
    string poolInfoUrl;
    string logoUrl;

    ////////////// Pool information

    // uint64 bidStartTime;
    uint64 bidEndTime;
        
    bool accessType;

    //token
    address tokenAddress;
    uint tokenPrice;
    uint tokenPriceDecimals;
    uint tokenTotalSupply;
    uint totalRaised;
    uint claimed;
    bool issued;
    bool allowed;
    bool removed;
    bool completed;

    //tier system
    uint[8] priceRangeEveryTier; // token
    uint[9] targetAmountEveryTier; // MEIJI
    uint[9] investedAmountEveryTier; // MEIJI
}

Functions

addPool

function addPool(string memory poolInfoUrl, string memory logoUrl) external

poolInfoUrl: Url to point the metadata including project application details logoUrl: Url to point logo file

issueToken

function issueToken(uint poolId) public onlyPoolOwner(poolId) validPoolId(poolId)

poolId: Identifier of project pool

modifyPoolInfo

modifyPoolInfo(uint poolId, address tokenAddress, uint tokenPrice, uint tokenDecimals, uint256 tokenTotalSupply, uint64 bidEndTime, uint[8] memory tier) public onlyPoolOwner(poolId) validPoolId(poolId)

poolId: Identifier of project pool tokenAddress: Project ticket token address tokenPrice: Ratio between $MEIJI and ticket token. it shows how many tickets can receive per $MEIJI. tokenDecimals: Project ticket token's decimal tokenTotalSupply: Total ticket amount for funding target. So funding target can be calculated as tokenTotalSupply / tokenPrice. bidEndTime: When the pool moves to the "completed pools" tier: Maximum $MEIJI amount array for 8 tier levels

bid

function bid(uint poolId, uint amount) external validPoolId(poolId)

poolId: Identifier of project pool amount: $MEIJI amount to deposit

claim

function claim(uint poolId) public validPoolId(poolId) onlyPoolOwner(poolId)

poolId: Identifier of project pool

unclaimedTickets

function unclaimedTickets(address investor, uint poolId) external view validPoolId(poolId) returns(uint)

investor: Wallet address of $MEIJI holder/staker poolId: Identifier of project pool

claimTickets

function claimTickets(uint poolId) public validPoolId(poolId)

poolId: Identifier of project pool

getTierLevel

function getTierLevel(uint256 poolId, address user) public view returns(uint)

poolId: Identifier of project pool user: Wallet address of user

setPools

function setPools(address pool1, address pool2, address pool3, address pool4, address pool5) private onlyOwner

pool1: 7 days lock staking pool address pool2: 14 days lock staking pool address pool3: 30 days lock staking pool address pool4: 60 days lock staking pool address pool5: 90 days lock staking pool address

In addition to above functions, there are more functions in launchpad smart contract. You can check full smart contract source in github.

Last updated