UNPKG

opnet

Version:

The perfect library for building Bitcoin-based applications.

95 lines (94 loc) 3.28 kB
import { Address } from '@btc-vision/transaction'; import { CallResult } from '../../../../contracts/CallResult.js'; import { BalanceOf, TotalSupply } from '../opnet/IOP_20Contract.js'; import { IOP_NETContract } from '../opnet/IOP_NETContract.js'; export type Status = CallResult<{ status: bigint; }>; interface IMotoswapReentrancyGuard extends IOP_NETContract { status(): Promise<Status>; } export type Admin = CallResult<{ adminAddress: Address; }>; export type ChangeAdmin = CallResult<{ success: boolean; }>; interface IMotoswapOwnableReentrancyGuard extends IMotoswapReentrancyGuard { admin(): Promise<Admin>; changeAdmin(newAdmin: Address): Promise<ChangeAdmin>; } export type GetMotoAddress = CallResult<{ motoAddress: Address; }>; export type MotoAddress = CallResult<{ totalSupply: bigint; }>; export type LastInteractedBlock = CallResult<{ lastInteractedBlock: bigint; }>; export type RewardDebt = CallResult<{ rewardDebt: bigint; }>; export type RewardBalance = CallResult<{ rewardBalance: bigint; }>; export type PendingReward = CallResult<{ pendingReward: bigint; }>; export type CalculateSlashingFee = CallResult<{ slashingFee: bigint; }>; export type EnabledRewardTokens = CallResult<{ enabledRewardTokens: Address[]; }>; export type Stake = CallResult<{ success: boolean; }>; export type Unstake = CallResult<{ success: boolean; }>; export type ClaimRewards = CallResult<{ success: boolean; }>; export type AdminAddRewardToken = CallResult<{ success: boolean; }>; export type AdminRemoveRewardToken = CallResult<{ success: boolean; }>; export type AdminChangeMotoAddress = CallResult<{ success: boolean; }>; export type AdminChangeLockupParameters = CallResult<{ success: boolean; }>; export type AdminEnableEmergencyWithdrawals = CallResult<{ success: boolean; }>; export type RewardTokenAddedEvent = { readonly token: Address; }; export type RewardTokenRemovedEvent = { readonly token: Address; }; export interface IMotoswapStakingContract extends IMotoswapOwnableReentrancyGuard { balanceOf(address: Address): Promise<BalanceOf>; totalSupply(): Promise<TotalSupply>; motoAddress(): Promise<MotoAddress>; lastInteractedBlock(address: Address): Promise<LastInteractedBlock>; rewardDebt(user: Address, rewardToken: Address): Promise<RewardDebt>; rewardBalance(user: Address): Promise<RewardBalance>; pendingReward(user: Address, rewardToken: Address): Promise<PendingReward>; calculateSlashingFee(user: Address, amount: bigint): Promise<CalculateSlashingFee>; enabledRewardTokens(): Promise<EnabledRewardTokens>; stake(amount: bigint): Promise<Stake>; unstake(): Promise<Unstake>; claimRewards(): Promise<ClaimRewards>; adminAddRewardToken(token: Address): Promise<AdminAddRewardToken>; adminRemoveRewardToken(token: Address): Promise<AdminAddRewardToken>; adminChangeMotoAddress(token: Address): Promise<AdminAddRewardToken>; adminChangeLockupParameters(newLockupDuration: bigint, newMaxSlashingFeePercent: bigint, newBlocksPerOnePercentSlashingFeeReduction: bigint): Promise<AdminChangeLockupParameters>; adminEnableEmergencyWithdrawals(): Promise<AdminEnableEmergencyWithdrawals>; } export {};