Testnet deployment

Contract Address
Collector 0x3512E9033a2aC395B6d4b5241Fa05F435Bb66949
Factory 0xF9Bd34d8e9927D8352e79DBee1992ff3e515D4D5
Lock 0x52fa35ca58D56a686d9CfB852B1848ae7E3A9532
Router 0x0B20f33433E15744dA867FD797DCf59b45abA658
TokenFactory 0xDaa236aE5dd36A5116eBDD4560FD4eD8E02879E6
WBERA/Honey 0x94D6E983610a27D1BD3839D5176d4a8dF2E89c54
Vault 0xeec938A59B81e35F5a1DcE882D295703845fd3b4
FarmFactory 0x7e0E61D3Ee07904Fe6005D10730DFe73e52DfCF7

Interfaces

interface IMemeswapVault {
    function getPriceForAmount(
        uint256 amount,
        uint256 duration
    ) external view returns (uint256);

    function getAmountForPrice(
        uint256 price,
        uint256 duration
    ) external view returns (uint256);
    
    function canRent(uint256 amount) external view returns (bool);
}
struct LaunchParams {
  string name; // name of token
  string symbol; // symbol of token
  uint256 totalSupply; // total supply of token
  uint256[] taxes; // see details below
  string[] urls; // see details below
  uint256 duration; // duration of rental in seconds (default: 86400)
  uint256 minAmount; // min. rental amount(slippage applied)
  uint256 buyAmount; // pre-buy bera amount
  address pairToUnlock; // bypass with address(0)
}

interface IMemeswapTokenFactory {
    function launch(
      LaunchParams calldata _params
    ) external payable returns (address token, uint256 liquidity);
    
    function minLiquidity() external view returns (uint256);
    
    function maxLiquidity() external view returns (uint256);
}

taxes: Taxes array length is 4; tax mode, buy tax, sell tax, owner’s share.

urls: URLs for onchain reads.

interface IMemeswapToken {
    function maxPerSwap() external view returns (uint256) {

    function secondsNeeded() external view returns (uint256);
}

Launch flow