@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).
83 lines (79 loc) • 2.9 kB
text/typescript
import {
AzraelVersion,
RenftContractType,
ResolverVersion,
SylvesterVersion,
WhoopiVersion,
} from '../types';
import { DEPLOYMENT_AZRAEL_ETHEREUM_MAINNET_V0 } from './azrael.v0';
import {
DEPLOYMENT_RESOLVER_AVALANCHE_FUJI_TESTNET_V0,
DEPLOYMENT_RESOLVER_AVALANCHE_MAINNET_V0,
DEPLOYMENT_RESOLVER_ETHEREUM_GOERLI_TESTNET_V0,
DEPLOYMENT_RESOLVER_ETHEREUM_MAINNET_V0,
DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V0,
} from './resolver.v0';
import { DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V1 } from './resolver.v1';
import {
DEPLOYMENT_SYLVESTER_ETHEREUM_GOERLI_TESTNET_V0,
DEPLOYMENT_SYLVESTER_ETHEREUM_MAINNET_V0,
DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V0,
} from './sylvester.v0';
import { DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V1 } from './sylvester.v1';
import {
DEPLOYMENT_WHOOPI_AVALANCHE_FUJI_TESTNET_V0,
DEPLOYMENT_WHOOPI_AVALANCHE_MAINNET_V0,
} from './whoopi.v0';
export {
DEPLOYMENT_AZRAEL_ETHEREUM_MAINNET_V0,
DEPLOYMENT_RESOLVER_AVALANCHE_FUJI_TESTNET_V0,
DEPLOYMENT_RESOLVER_AVALANCHE_MAINNET_V0,
DEPLOYMENT_RESOLVER_ETHEREUM_GOERLI_TESTNET_V0,
DEPLOYMENT_RESOLVER_ETHEREUM_MAINNET_V0,
DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V0,
DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V1,
DEPLOYMENT_SYLVESTER_ETHEREUM_GOERLI_TESTNET_V0,
DEPLOYMENT_SYLVESTER_ETHEREUM_MAINNET_V0,
DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V0,
DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V1,
DEPLOYMENT_WHOOPI_AVALANCHE_FUJI_TESTNET_V0,
DEPLOYMENT_WHOOPI_AVALANCHE_MAINNET_V0,
};
export type Deployments =
| typeof DEPLOYMENT_AZRAEL_ETHEREUM_MAINNET_V0
| typeof DEPLOYMENT_SYLVESTER_ETHEREUM_MAINNET_V0
| typeof DEPLOYMENT_SYLVESTER_ETHEREUM_GOERLI_TESTNET_V0
| typeof DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V0
| typeof DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V1
| typeof DEPLOYMENT_WHOOPI_AVALANCHE_FUJI_TESTNET_V0
| typeof DEPLOYMENT_WHOOPI_AVALANCHE_MAINNET_V0
| typeof DEPLOYMENT_RESOLVER_ETHEREUM_MAINNET_V0
| typeof DEPLOYMENT_RESOLVER_ETHEREUM_GOERLI_TESTNET_V0
| typeof DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V0
| typeof DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V1
| typeof DEPLOYMENT_RESOLVER_AVALANCHE_FUJI_TESTNET_V0
| typeof DEPLOYMENT_RESOLVER_AVALANCHE_MAINNET_V0;
export function isValidContractVersion({
contractType,
version,
}: {
contractType: RenftContractType;
version: string;
}): boolean {
switch (contractType) {
case RenftContractType.RESOLVER:
return Object.values(ResolverVersion).includes(
version as ResolverVersion
);
case RenftContractType.WHOOPI:
return Object.values(WhoopiVersion).includes(version as WhoopiVersion);
case RenftContractType.AZRAEL:
return Object.values(AzraelVersion).includes(version as AzraelVersion);
case RenftContractType.SYLVESTER:
return Object.values(SylvesterVersion).includes(
version as SylvesterVersion
);
default:
return false;
}
}