@infy-protocol/sdk
Version:
Lend and rent any ERC721s and ERC1155s on supported mainnet and testnet.
43 lines (37 loc) • 1.39 kB
text/typescript
import { Contract, Signer } from 'ethers';
import { RevenueSharedConfiguratorAbi } from './abi/RevenueSharedConfigurator';
import { NetworkConfig, SupportedChainIds } from './networkConfig';
import { IRevenueSharedConfigurator } from './types';
export class RevenueSharedConfigurator implements IRevenueSharedConfigurator {
readonly signer: Signer;
protected contract: Contract;
constructor(_signer: Signer, chainId: SupportedChainIds) {
this.signer = _signer;
var _address = undefined;
if (
NetworkConfig[chainId] === undefined ||
NetworkConfig[chainId].revenueSharedConfiguratorContractAddresses ===
undefined ||
NetworkConfig[chainId].revenueSharedConfiguratorContractAddresses
.length <= 0
) {
throw new Error('Requested for unsupported chain');
} else {
_address =
NetworkConfig[chainId].revenueSharedConfiguratorContractAddresses[0];
this.contract = new Contract(
_address,
RevenueSharedConfiguratorAbi,
this.signer
);
}
}
async getPaymentOption(paymentOption: Number): Promise<number> {
return await this.contract.getPaymentOption(Number(paymentOption));
}
async isNFTAllowedForRevenueSharedRenting(address: string): Promise<boolean> {
return await this.contract.isNFTAllowedForRevenueSharedRenting(
address.toLowerCase()
);
}
}