opnet
Version:
The perfect library for building Bitcoin-based applications.
95 lines (94 loc) • 3.28 kB
TypeScript
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 {};