@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).
19 lines (18 loc) • 1.36 kB
TypeScript
import { Account, Address, PublicClient, SimulateContractReturnType, WalletClient, WriteContractReturnType } from 'viem';
import { Deployment, EVMNetworkType, RenftContractType, RenftContractVersion, RenftContractVersions } from '../core';
export declare type Simulator = (functionName: string, args: any) => Promise<SimulateContractReturnType>;
export declare type Executor = (functionName: string, args: any) => Promise<WriteContractReturnType>;
export declare type SDKInterface<ContractType extends RenftContractType, ContractVersion extends RenftContractVersions[ContractType]> = {
account: Account | Address;
deployment: Deployment<ContractType, ContractVersion>;
publicClient: PublicClient;
walletClient: WalletClient;
};
export declare abstract class SDK<ContractType extends RenftContractType, ContractVersion extends RenftContractVersions[ContractType]> {
protected deployment: Deployment<RenftContractType, RenftContractVersion>;
protected exec: Executor;
protected network: EVMNetworkType;
protected supportedDeployments: Deployment<RenftContractType, RenftContractVersion>[];
constructor({ account, deployment, publicClient, walletClient, }: SDKInterface<ContractType, ContractVersion>);
protected validate(deploymentList: Deployment<RenftContractType, RenftContractVersion>[]): void;
}