UNPKG

client-aftermath-ts-sdk

Version:
265 lines 9.05 kB
import { ObjectId, SuiAddress } from "../../types"; import { Balance, Event, Object, Timestamp } from "../../general/types/generalTypes"; import { CoinType } from "../coin/coinTypes"; export type FarmsMultiplier = bigint; export type FarmOwnerOrOneTimeAdminCap = { ownerCapId: ObjectId; } | { oneTimeAdminCapId: ObjectId; }; export type FarmsLockEnforcement = "Strict" | "Relaxed"; export interface FarmsStakingPoolRewardCoin { coinType: CoinType; rewards: Balance; rewardsAccumulatedPerShare: Balance; emissionRate: Balance; emissionSchedulesMs: Timestamp; emissionStartTimestamp: Timestamp; lastRewardTimestamp: Timestamp; rewardsRemaining: Balance; actualRewards: Balance; } export interface FarmsStakingPoolObject extends Object { stakeCoinType: CoinType; stakedAmount: Balance; stakedAmountWithMultiplier: Balance; minLockDurationMs: Timestamp; maxLockDurationMs: Timestamp; maxLockMultiplier: FarmsMultiplier; rewardCoins: FarmsStakingPoolRewardCoin[]; emissionEndTimestamp: Timestamp; minStakeAmount: Balance; lockEnforcement: FarmsLockEnforcement; isUnlocked: boolean; } export interface StakingPoolOwnerCapObject extends Object { stakingPoolId: ObjectId; } export interface StakingPoolOneTimeAdminCapObject extends Object { stakingPoolId: ObjectId; } export interface FarmsStakedPositionRewardCoin { coinType: CoinType; baseRewardsAccumulated: Balance; baseRewardsDebt: Balance; multiplierRewardsAccumulated: Balance; multiplierRewardsDebt: Balance; } export interface FarmsStakedPositionObject extends Object { stakingPoolObjectId: ObjectId; stakeCoinType: CoinType; stakedAmount: Balance; stakedAmountWithMultiplier: Balance; lockStartTimestamp: Timestamp; lockDurationMs: Timestamp; lockMultiplier: FarmsMultiplier; rewardCoins: FarmsStakedPositionRewardCoin[]; lastHarvestRewardsTimestamp: Timestamp; } export type PartialFarmsStakedPositionObject = Omit<FarmsStakedPositionObject, "rewardCoins"> & { rewardCoins: Omit<FarmsStakedPositionRewardCoin, "coinType">[]; }; export type FarmEvent = FarmsAddedRewardEvent | FarmsCreatedVaultEvent | FarmsDepositedPrincipalEvent | FarmsDestroyedStakedPositionEvent | FarmsHarvestedRewardsEvent | FarmsIncreasedEmissionsEvent | FarmsInitializedRewardEvent | FarmsJoinedEvent | FarmsLockedEvent | FarmsSplitEvent | FarmsStakedEvent | FarmsStakedRelaxedEvent | FarmsUnlockedEvent | FarmsWithdrewPrincipalEvent; export type FarmUserEvent = FarmsDepositedPrincipalEvent | FarmsHarvestedRewardsEvent | FarmsLockedEvent | FarmsStakedEvent | FarmsUnlockedEvent | FarmsWithdrewPrincipalEvent; export declare const isFarmsDepositedPrincipalEvent: (event: FarmUserEvent) => event is FarmsDepositedPrincipalEvent; export declare const isFarmsHarvestedRewardsEvent: (event: FarmUserEvent) => event is FarmsHarvestedRewardsEvent; export declare const isFarmsLockedEvent: (event: FarmUserEvent) => event is FarmsLockedEvent; export declare const isFarmsStakedEvent: (event: FarmUserEvent) => event is FarmsStakedEvent; export declare const isFarmsUnlockedEvent: (event: FarmUserEvent) => event is FarmsUnlockedEvent; export declare const isFarmsWithdrewPrincipalEvent: (event: FarmUserEvent) => event is FarmsWithdrewPrincipalEvent; export interface FarmsAddedRewardEvent extends Event { vaultId: ObjectId; rewardType: CoinType; rewardAmount: Balance; } export interface FarmsCreatedVaultEvent extends Event { vaultId: ObjectId; stakeType: CoinType; minLockDurationMs: Timestamp; maxLockDurationMs: Timestamp; maxLockMultiplier: FarmsMultiplier; minStakeAmount: Balance; } export interface FarmsDepositedPrincipalEvent extends Event { stakedPositionId: ObjectId; vaultId: ObjectId; amount: Balance; stakeType: CoinType; } export interface FarmsDestroyedStakedPositionEvent extends Event { stakedPositionId: ObjectId; } export interface FarmsHarvestedRewardsEvent extends Event { vaultId: ObjectId; rewardTypes: CoinType[]; rewardAmounts: Balance[]; } export interface FarmsIncreasedEmissionsEvent extends Event { vaultId: ObjectId; rewardType: CoinType; emissionScheduleMs: Timestamp; emissionRate: Balance; } export interface FarmsInitializedRewardEvent extends Event { vaultId: ObjectId; rewardType: CoinType; rewardAmount: Balance; emissionRate: Balance; emissionStartMs: Timestamp; } export interface FarmsJoinedEvent extends Event { stakedPositionId: ObjectId; otherStakedPositionId: ObjectId; } export interface FarmsLockedEvent extends Event { stakedPositionId: ObjectId; vaultId: ObjectId; stakedType: CoinType; stakedAmount: Balance; lockStartTimestampMs: Timestamp; lockDurationMs: Timestamp; lockMultiplier: FarmsMultiplier; } export interface FarmsSplitEvent extends Event { stakedPositionId: ObjectId; splitStakedPositionId: ObjectId; } export interface FarmsStakedEvent extends Event { stakedPositionId: ObjectId; vaultId: ObjectId; stakedType: CoinType; stakedAmount: Balance; multipliedStakedAmount: Balance; lockStartTimestampMs: Timestamp; lockDurationMs: Timestamp; lockMultiplier: FarmsMultiplier; } export interface FarmsStakedRelaxedEvent extends Event { stakedPositionId: ObjectId; vaultId: ObjectId; stakedType: CoinType; stakedAmount: Balance; lockStartTimestampMs: Timestamp; lockEndTimestampMs: Timestamp; } export interface FarmsUnlockedEvent extends Event { stakedPositionId: ObjectId; vaultId: ObjectId; stakedType: CoinType; stakedAmount: Balance; } export interface FarmsWithdrewPrincipalEvent extends Event { stakedPositionId: ObjectId; vaultId: ObjectId; amount: Balance; stakeType: CoinType; } export interface ApiFarmsOwnedStakedPositionsBody { walletAddress: SuiAddress; } export interface ApiFarmsStakeBody { stakingPoolId: ObjectId; lockDurationMs: Timestamp; stakeCoinType: CoinType; stakeAmount: Balance; walletAddress: SuiAddress; isSponsoredTx?: boolean; } export interface ApiFarmsDepositPrincipalBody { stakedPositionId: ObjectId; stakingPoolId: ObjectId; stakeCoinType: CoinType; depositAmount: Balance; walletAddress: SuiAddress; isSponsoredTx?: boolean; } export interface ApiFarmsUnstakeBody { stakedPositionId: ObjectId; stakingPoolId: ObjectId; stakeCoinType: CoinType; rewardCoinTypes: CoinType[]; withdrawAmount: Balance; walletAddress: SuiAddress; claimSuiAsAfSui?: boolean; } export interface ApiFarmsLockBody { stakedPositionId: ObjectId; stakingPoolId: ObjectId; lockDurationMs: Timestamp; stakeCoinType: CoinType; walletAddress: SuiAddress; } export interface ApiFarmsRenewLockBody { stakedPositionId: ObjectId; stakingPoolId: ObjectId; stakeCoinType: CoinType; walletAddress: SuiAddress; } export interface ApiFarmsUnlockBody { stakedPositionId: ObjectId; stakingPoolId: ObjectId; stakeCoinType: CoinType; walletAddress: SuiAddress; } export interface ApiHarvestFarmsRewardsBody { stakingPoolId: ObjectId; stakeCoinType: CoinType; stakedPositionIds: ObjectId[]; rewardCoinTypes: CoinType[]; walletAddress: SuiAddress; claimSuiAsAfSui?: boolean; } export interface ApiFarmsCreateStakingPoolBody { lockEnforcement: FarmsLockEnforcement; minLockDurationMs: Timestamp; maxLockDurationMs: Timestamp; maxLockMultiplier: FarmsMultiplier; minStakeAmount: Balance; stakeCoinType: CoinType; walletAddress: SuiAddress; } export type ApiFarmsInitializeStakingPoolRewardBody = { stakingPoolId: ObjectId; rewardAmount: Balance; emissionScheduleMs: Timestamp; emissionRate: bigint; emissionDelayTimestampMs: Timestamp; stakeCoinType: CoinType; rewardCoinType: CoinType; walletAddress: SuiAddress; isSponsoredTx?: boolean; } & FarmOwnerOrOneTimeAdminCap; export type ApiFarmsTopUpStakingPoolRewardsBody = { stakingPoolId: ObjectId; stakeCoinType: CoinType; rewards: { rewardCoinType: CoinType; rewardAmount: Balance; }[]; walletAddress: SuiAddress; isSponsoredTx?: boolean; } & FarmOwnerOrOneTimeAdminCap; export type ApiFarmsIncreaseStakingPoolRewardsEmissionsBody = { ownerCapId: ObjectId; stakingPoolId: ObjectId; stakeCoinType: CoinType; rewards: { rewardCoinType: CoinType; emissionScheduleMs: Timestamp; emissionRate: bigint; }[]; walletAddress: SuiAddress; }; export interface ApiFarmsOwnedStakingPoolOwnerCapsBody { walletAddress: SuiAddress; } export interface ApiFarmsOwnedStakingPoolOneTimeAdminCapsBody { walletAddress: SuiAddress; } export type ApiFarmsGrantOneTimeAdminCapBody = { ownerCapId: ObjectId; recipientAddress: SuiAddress; rewardCoinType: CoinType; walletAddress: SuiAddress; }; //# sourceMappingURL=farmsTypes.d.ts.map