@nftsafe/sdk
Version:
Lend and rent any ERC721s and ERC1155s on supported mainnet and testnet.
112 lines (99 loc) • 2.51 kB
text/typescript
import { BigNumber, ContractTransaction } from 'ethers';
export enum PaymentToken {
SENTINEL, // denotes non-existence of payment token. i.e. default value signifying it hasn't been set
WETH,
DAI,
USDC,
USDT,
TUSD,
RENT,
}
export enum NFTStandard {
E721,
E1155,
}
export interface INFTSafe {
lend(
nftStandards: NFTStandard[],
nftAddresses: string[],
tokenIds: BigNumber[],
lendAmounts: BigNumber[],
maxRentDurations: number[],
minRentDurations: number[],
dailyRentPrices: string[],
paymentOptions: PaymentToken[],
collateralPrices: string[],
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 type rentProps = {};
export interface IRevenueSharedNFTRentals {
lend(
lendingRequests: [
NFTStandard,
string,
BigNumber,
BigNumber,
string,
number,
[string[], number[]],
[string[]],
PaymentToken
][]
): 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>;
}