package launchpad import ( "gno.land/p/gnoswap/uint256" bptree "gno.land/p/nt/bptree/v0" ) type ILaunchpad interface { ILaunchpadProject ILaunchpadDeposit ILaunchpadGetter } type ILaunchpadProject interface { CreateProject( _ int, rlm realm, name string, tokenPath string, recipient address, depositAmount int64, conditionTokens string, conditionAmounts string, tier30Ratio int64, tier90Ratio int64, tier180Ratio int64, startTime int64, ) string TransferLeftFromProjectByAdmin(_ int, rlm realm, projectID string, recipient address) int64 CollectProtocolFee(_ int, rlm realm) } type ILaunchpadDeposit interface { DepositGns(_ int, rlm realm, targetProjectTierID string, depositAmount int64, referrer string) string CollectDepositGns(_ int, rlm realm, depositID string) (int64, error) CollectRewardByDepositId(_ int, rlm realm, depositID string) int64 } type ILaunchpadGetter interface { GetProjectCount() int GetProjectIDs(offset, count int) []string GetProject(projectId string) (*Project, error) GetProjectName(projectId string) (string, error) GetProjectTokenPath(projectId string) (string, error) GetProjectDepositAmount(projectId string) (int64, error) GetProjectRecipient(projectId string) (address, error) GetProjectCondition(projectId string, tokenPath string) (*ProjectCondition, error) GetProjectTiersRatios(projectId string) (map[int64]int64, error) GetProjectCreatedHeight(projectId string) (int64, error) GetProjectCreatedAt(projectId string) (int64, error) GetProjectTier(projectId string, tier int64) (*ProjectTier, error) GetProjectTierDistributeAmountPerSecondX128(projectId string, tier int64) (*uint256.Uint, error) GetProjectTierTotalDistributeAmount(projectId string, tier int64) (int64, error) GetProjectTierTotalDepositAmount(projectId string, tier int64) (int64, error) GetProjectTierTotalWithdrawAmount(projectId string, tier int64) (int64, error) GetProjectTierTotalDepositCount(projectId string, tier int64) (int64, error) GetProjectTierTotalWithdrawCount(projectId string, tier int64) (int64, error) GetProjectTierTotalCollectedAmount(projectId string, tier int64) (int64, error) GetProjectTierStartTime(projectId string, tier int64) (int64, error) GetProjectTierEndTime(projectId string, tier int64) (int64, error) GetDepositCount() int GetCurrentDepositId() int64 GetProjectTierDepositCount(projectId string, tier int64) int GetProjectTierDepositIDs(projectId string, tier int64, offset, count int) []string GetDeposit(depositId string) (*Deposit, error) GetDepositProjectID(depositId string) (string, error) GetDepositTier(depositId string) (int64, error) GetDepositProjectTierID(depositId string) (string, error) GetDepositAmount(depositId string) (int64, error) GetDepositWithdrawnHeight(depositId string) (int64, error) GetDepositWithdrawnTime(depositId string) (int64, error) GetDepositCreatedHeight(depositId string) (int64, error) GetDepositCreatedAt(depositId string) (int64, error) GetDepositEndTime(depositId string) (int64, error) GetProjectTierRewardManagerCount() int GetProjectTierRewardManager(projectTierId string) (*RewardManager, error) GetProjectTierRewardDistributeAmountPerSecondX128(projectTierId string) (*uint256.Uint, error) GetProjectTierRewardAccumulatedRewardPerDepositX128(projectTierId string) (*uint256.Uint, error) GetProjectTierRewardTotalDistributeAmount(projectTierId string) (int64, error) GetProjectTierRewardTotalClaimedAmount(projectTierId string) (int64, error) GetProjectTierRewardDistributeStartTime(projectTierId string) (int64, error) GetProjectTierRewardDistributeEndTime(projectTierId string) (int64, error) GetProjectTierRewardAccumulatedDistributeAmount(projectTierId string) (int64, error) GetProjectTierRewardAccumulatedTime(projectTierId string) (int64, error) GetProjectTierRewardClaimableDuration(projectTierId string) (int64, error) GetRewardState(projectTierId string, depositId string) (*RewardState, error) GetProjectActiveStatus(projectId string) (bool, error) } type ILaunchpadStore interface { HasProjectsKey() bool GetProjects() *bptree.BPTree SetProjects(_ int, rlm realm, projects *bptree.BPTree) error HasProjectTierRewardManagersKey() bool GetProjectTierRewardManagers() *bptree.BPTree SetProjectTierRewardManagers(_ int, rlm realm, managers *bptree.BPTree) error // DepositCounter HasDepositCounterStoreKey() bool GetDepositCounter() *Counter SetDepositCounter(_ int, rlm realm, counter *Counter) error NextDepositID() string HasDepositsKey() bool GetDeposits() *bptree.BPTree SetDeposits(_ int, rlm realm, deposits *bptree.BPTree) error }