@infy-protocol/sdk
Version:
Lend and rent any ERC721s and ERC1155s on supported mainnet and testnet.
104 lines (91 loc) • 2.59 kB
text/typescript
import { BigNumber, ContractTransaction } from 'ethers';
export enum NFTStandard {
E721,
E1155,
}
export interface ITimeBasedNFTRentals {
lend(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendAmounts: BigNumber[],
maxRentDurations: number[],
minRentDurations: number[],
dailyRentPrices: BigNumber[],
paymentOptions: number[],
collateralPrices: BigNumber[],
allowedRenters: string[][][]
): Promise<ContractTransaction>;
rent(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[],
rentDurations: number[],
rentAmounts: BigNumber[]
): Promise<ContractTransaction>;
stopRenting(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[],
rentingIds: BigNumber[]
): Promise<ContractTransaction>;
claimRentOrCollateral(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[],
rentingIds: BigNumber[]
): Promise<ContractTransaction>;
stopLending(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[]
): Promise<ContractTransaction>;
}
export interface IRevenueSharedNFTRentals {
lend(
nftStandard: NFTStandard[],
nftAddress: string[],
tokenId: BigNumber[],
lendAmount: BigNumber[],
upfrontFee: BigNumber[],
maxRentDuration: number[],
revenueShareInfo: [string[], number[]][],
allowedRenter: string[][][],
paymentOption: number[]
): Promise<ContractTransaction>;
rent(
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[],
rentDurations: number[],
rentAmounts: BigNumber[]
): Promise<ContractTransaction>;
stopRenting(
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[],
rentingIds: BigNumber[]
): Promise<ContractTransaction>;
shareRevenue(
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[],
revenueAmounts: BigNumber[],
renters: string[],
revenueTokenAddress: string[]
): Promise<ContractTransaction>;
stopLending(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendingIds: BigNumber[]
): Promise<ContractTransaction>;
}
export interface IRevenueSharedConfigurator {
getPaymentOption(paymentOption: Number): Promise<number>;
isNFTAllowedForRevenueSharedRenting(address: string): Promise<boolean>;
}