@renft/sdk
Version:
**ReNFT** is a multi-chain highly gas-optimised NFT rental protocol and platform that can be whitelabel integrated into any project to enable collateral-free in-house renting, lending, and reward share (scholarship automation).
70 lines (60 loc) • 1.74 kB
text/typescript
import { ContractTransaction } from '@ethersproject/contracts';
import { AzraelVersion, PaymentToken } from '../../../core';
export interface AbstractAzraelFunctionInterface<
LendFunction,
RentFunction,
ReturnItFunction,
ClaimCollateralFunction,
StopLendingFunction
> {
readonly lend: LendFunction;
readonly rent: RentFunction;
readonly returnIt: ReturnItFunction;
readonly claimCollateral: ClaimCollateralFunction;
readonly stopLending: StopLendingFunction;
}
export type AzraelV0LendFunction = (
nftAddress: string[],
tokenID: string[],
amount: number[],
maxRentDuration: number[],
dailyRentPrice: number[],
nftPrice: number[],
paymentToken: PaymentToken[],
options?: any
) => Promise<ContractTransaction>;
export type AzraelV0RentFunction = (
nftAddress: string[],
tokenID: string[],
lendingID: string[],
rentDuration: number[],
options?: any
) => Promise<ContractTransaction>;
export type AzraelV0ReturnItFunction = (
nftAddress: string[],
tokenID: string[],
lendingID: string[],
options?: any
) => Promise<ContractTransaction>;
export type AzraelV0ClaimCollateralFunction = (
nftAddress: string[],
tokenID: string[],
lendingID: string[],
options?: any
) => Promise<ContractTransaction>;
export type AzraelV0StopLendingFunction = (
nftAddress: string[],
tokenID: string[],
lendingID: string[],
options?: any
) => Promise<ContractTransaction>;
export type AzraelV0FunctionInterface = AbstractAzraelFunctionInterface<
AzraelV0LendFunction,
AzraelV0RentFunction,
AzraelV0ReturnItFunction,
AzraelV0ClaimCollateralFunction,
AzraelV0StopLendingFunction
>;
export type AzraelInterfaceVersions = {
readonly [AzraelVersion.V0]: AzraelV0FunctionInterface;
};