@collabland/staking-contracts
Version:
Staking contracts supported by Collab.Land
322 lines (321 loc) • 17.8 kB
TypeScript
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common.js";
export type StakingDataStruct = {
tokenId: BigNumberish;
startStakingTime: BigNumberish;
poolIndex: BigNumberish;
};
export type StakingDataStructOutput = [BigNumber, BigNumber, number] & {
tokenId: BigNumber;
startStakingTime: BigNumber;
poolIndex: number;
};
export interface LuckynftInterface extends utils.Interface {
functions: {
"getRoleAdmin(bytes32)": FunctionFragment;
"grantRole(bytes32,address)": FunctionFragment;
"grantRoleForMany(bytes32,address[])": FunctionFragment;
"hasRole(bytes32,address)": FunctionFragment;
"renounceRole(bytes32,address)": FunctionFragment;
"revokeRole(bytes32,address)": FunctionFragment;
"setLuckyNFT(address)": FunctionFragment;
"pause()": FunctionFragment;
"unpause()": FunctionFragment;
"getStakingData(address)": FunctionFragment;
"onERC721Received(address,address,uint256,bytes)": FunctionFragment;
"stake(uint256[])": FunctionFragment;
"unstake(uint256[])": FunctionFragment;
"getNFTsOfOwner(address,address,uint256)": FunctionFragment;
"multiCall(bytes[])": FunctionFragment;
};
getFunction(nameOrSignatureOrTopic: "getRoleAdmin" | "grantRole" | "grantRoleForMany" | "hasRole" | "renounceRole" | "revokeRole" | "setLuckyNFT" | "pause" | "unpause" | "getStakingData" | "onERC721Received" | "stake" | "unstake" | "getNFTsOfOwner" | "multiCall"): FunctionFragment;
encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, string]): string;
encodeFunctionData(functionFragment: "grantRoleForMany", values: [BytesLike, string[]]): string;
encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, string]): string;
encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, string]): string;
encodeFunctionData(functionFragment: "revokeRole", values: [BytesLike, string]): string;
encodeFunctionData(functionFragment: "setLuckyNFT", values: [string]): string;
encodeFunctionData(functionFragment: "pause", values?: undefined): string;
encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
encodeFunctionData(functionFragment: "getStakingData", values: [string]): string;
encodeFunctionData(functionFragment: "onERC721Received", values: [string, string, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "stake", values: [BigNumberish[]]): string;
encodeFunctionData(functionFragment: "unstake", values: [BigNumberish[]]): string;
encodeFunctionData(functionFragment: "getNFTsOfOwner", values: [string, string, BigNumberish]): string;
encodeFunctionData(functionFragment: "multiCall", values: [BytesLike[]]): string;
decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "grantRoleForMany", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setLuckyNFT", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getStakingData", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "stake", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "unstake", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getNFTsOfOwner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "multiCall", data: BytesLike): Result;
events: {
"RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
"RoleGranted(bytes32,address,address)": EventFragment;
"RoleRevoked(bytes32,address,address)": EventFragment;
"Staked(address,uint256[],uint256)": EventFragment;
"Unstaked(address,uint256[],uint256)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Staked"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Unstaked"): EventFragment;
}
export interface RoleAdminChangedEventObject {
role: string;
previousAdminRole: string;
newAdminRole: string;
}
export type RoleAdminChangedEvent = TypedEvent<[
string,
string,
string
], RoleAdminChangedEventObject>;
export type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
role: string;
account: string;
sender: string;
}
export type RoleGrantedEvent = TypedEvent<[
string,
string,
string
], RoleGrantedEventObject>;
export type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
role: string;
account: string;
sender: string;
}
export type RoleRevokedEvent = TypedEvent<[
string,
string,
string
], RoleRevokedEventObject>;
export type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface StakedEventObject {
owner: string;
tokenIds: BigNumber[];
timestamp: BigNumber;
}
export type StakedEvent = TypedEvent<[
string,
BigNumber[],
BigNumber
], StakedEventObject>;
export type StakedEventFilter = TypedEventFilter<StakedEvent>;
export interface UnstakedEventObject {
owner: string;
tokenIds: BigNumber[];
timestamp: BigNumber;
}
export type UnstakedEvent = TypedEvent<[
string,
BigNumber[],
BigNumber
], UnstakedEventObject>;
export type UnstakedEventFilter = TypedEventFilter<UnstakedEvent>;
export interface Luckynft extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
interface: LuckynftInterface;
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
listeners(eventName?: string): Array<Listener>;
removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
removeAllListeners(eventName?: string): this;
off: OnEvent<this>;
on: OnEvent<this>;
once: OnEvent<this>;
removeListener: OnEvent<this>;
functions: {
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<[string]>;
grantRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
grantRoleForMany(role: BytesLike, accounts: string[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<[boolean]>;
renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
setLuckyNFT(_luckyNFT: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
pause(overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
unpause(overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
getStakingData(user: string, overrides?: CallOverrides): Promise<[StakingDataStructOutput[]]>;
onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: CallOverrides): Promise<[string]>;
stake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
unstake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
getNFTsOfOwner(_contractAddr: string, _owner: string, _collectionSize: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber[]]>;
multiCall(data: BytesLike[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
};
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;
grantRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
grantRoleForMany(role: BytesLike, accounts: string[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<boolean>;
renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
setLuckyNFT(_luckyNFT: string, overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
pause(overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
unpause(overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
getStakingData(user: string, overrides?: CallOverrides): Promise<StakingDataStructOutput[]>;
onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: CallOverrides): Promise<string>;
stake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
unstake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
getNFTsOfOwner(_contractAddr: string, _owner: string, _collectionSize: BigNumberish, overrides?: CallOverrides): Promise<BigNumber[]>;
multiCall(data: BytesLike[], overrides?: Overrides & {
from?: string;
}): Promise<ContractTransaction>;
callStatic: {
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;
grantRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<void>;
grantRoleForMany(role: BytesLike, accounts: string[], overrides?: CallOverrides): Promise<void>;
hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<boolean>;
renounceRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<void>;
revokeRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<void>;
setLuckyNFT(_luckyNFT: string, overrides?: CallOverrides): Promise<void>;
pause(overrides?: CallOverrides): Promise<void>;
unpause(overrides?: CallOverrides): Promise<void>;
getStakingData(user: string, overrides?: CallOverrides): Promise<StakingDataStructOutput[]>;
onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: CallOverrides): Promise<string>;
stake(_tokenIds: BigNumberish[], overrides?: CallOverrides): Promise<void>;
unstake(_tokenIds: BigNumberish[], overrides?: CallOverrides): Promise<void>;
getNFTsOfOwner(_contractAddr: string, _owner: string, _collectionSize: BigNumberish, overrides?: CallOverrides): Promise<BigNumber[]>;
multiCall(data: BytesLike[], overrides?: CallOverrides): Promise<string[]>;
};
filters: {
"RoleAdminChanged(bytes32,bytes32,bytes32)"(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
RoleAdminChanged(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
"RoleGranted(bytes32,address,address)"(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleGrantedEventFilter;
RoleGranted(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleGrantedEventFilter;
"RoleRevoked(bytes32,address,address)"(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleRevokedEventFilter;
RoleRevoked(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleRevokedEventFilter;
"Staked(address,uint256[],uint256)"(owner?: string | null, tokenIds?: null, timestamp?: null): StakedEventFilter;
Staked(owner?: string | null, tokenIds?: null, timestamp?: null): StakedEventFilter;
"Unstaked(address,uint256[],uint256)"(owner?: string | null, tokenIds?: null, timestamp?: null): UnstakedEventFilter;
Unstaked(owner?: string | null, tokenIds?: null, timestamp?: null): UnstakedEventFilter;
};
estimateGas: {
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
grantRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
grantRoleForMany(role: BytesLike, accounts: string[], overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<BigNumber>;
renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
setLuckyNFT(_luckyNFT: string, overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
pause(overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
unpause(overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
getStakingData(user: string, overrides?: CallOverrides): Promise<BigNumber>;
onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
stake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
unstake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
getNFTsOfOwner(_contractAddr: string, _owner: string, _collectionSize: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
multiCall(data: BytesLike[], overrides?: Overrides & {
from?: string;
}): Promise<BigNumber>;
};
populateTransaction: {
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
grantRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
grantRoleForMany(role: BytesLike, accounts: string[], overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
setLuckyNFT(_luckyNFT: string, overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
pause(overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
unpause(overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
getStakingData(user: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
stake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
unstake(_tokenIds: BigNumberish[], overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
getNFTsOfOwner(_contractAddr: string, _owner: string, _collectionSize: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
multiCall(data: BytesLike[], overrides?: Overrides & {
from?: string;
}): Promise<PopulatedTransaction>;
};
}