@fractional-company/common
Version:
Tessera constants
106 lines (105 loc) • 4.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArtEnjoyerProtoform = exports.getArtEnjoyerProtoform = exports.versions = void 0;
const chains_1 = require("../../../common/chains");
const mainnet_v1_1 = require("./versions/mainnet.v1");
const goerli_v1_1 = require("./versions/goerli.v1");
const goerli_v2_1 = require("./versions/goerli.v2");
const goerli_v3_1 = require("./versions/goerli.v3");
const mainnet_v2_1 = require("./versions/mainnet.v2");
exports.versions = {
[chains_1.CHAINS.GÖRLI]: [goerli_v1_1.artEnjoyerProtoformGoerliV1, goerli_v2_1.artEnjoyerProtoformGoerliV2, goerli_v3_1.artEnjoyerProtoformGoerliV3],
[chains_1.CHAINS.MAINNET]: [mainnet_v1_1.artEnjoyerProtoformMainnetV1, mainnet_v2_1.artEnjoyerProtoformMainnetV2],
};
function getArtEnjoyerProtoform(chainId, modules) {
const protoforms = exports.versions[chainId];
// return latest
if ((modules && modules.length === 0) || !modules) {
return protoforms[protoforms.length - 1];
}
return (protoforms.find((protoform) => modules.map((m) => m.toLowerCase()).includes(protoform.modules.lpda.contractAddress.toLowerCase()) &&
modules
.map((m) => m.toLowerCase())
.includes(protoform.modules.optimisticBid.contractAddress.toLowerCase())) || null);
}
exports.getArtEnjoyerProtoform = getArtEnjoyerProtoform;
class ArtEnjoyerProtoform {
static getProtoform(chainId, modules) {
return getArtEnjoyerProtoform(chainId, modules);
}
static getName() {
return "art-enjoyer";
}
static isLPDAAddress(chainId, contractAddress) {
const protoforms = exports.versions[chainId];
const addresses = protoforms
.flatMap((protoform) => protoform.modules.lpda.contractAddress.toLowerCase());
return addresses.includes(contractAddress.toLowerCase());
}
static isOptimisticBidAddress(chainId, contractAddress) {
const protoforms = exports.versions[chainId];
const addresses = protoforms
.flatMap((protoform) => protoform.modules.optimisticBid.contractAddress.toLowerCase());
return addresses.includes(contractAddress.toLowerCase());
}
static isVaultFactoryAddress(chainId, contractAddress) {
const protoforms = exports.versions[chainId];
const addresses = protoforms
.flatMap((protoform) => protoform.factories.vaultFactory.contractAddress.toLowerCase());
return addresses.includes(contractAddress.toLowerCase());
}
static isVaultRegistryAddress(chainId, contractAddress) {
const protoforms = exports.versions[chainId];
const addresses = protoforms
.flatMap((protoform) => protoform.factories.vaultRegistry.contractAddress.toLowerCase());
return addresses.includes(contractAddress.toLowerCase());
}
static isFercAddress(chainId, contractAddress) {
const protoforms = exports.versions[chainId];
const contractAddresses = protoforms
.map((protoform) => protoform.ferc.contractAddress.toLowerCase());
return contractAddresses.includes(contractAddress.toLowerCase());
}
static getOptimisticBidModule(chainId) {
const protoform = this.getProtoform(chainId);
// eslint-disable-next-line prettier/prettier
return protoform?.modules?.optimisticBid;
}
static getLPDAModule(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.modules?.lpda;
}
static getVaultFactory(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.factories?.vaultFactory;
}
static getVaultRegistry(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.factories?.vaultRegistry;
}
static getSupplyTarget(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.targets?.supply;
}
static getMetadataTarget(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.targets?.metadata;
}
static getTransferTarget(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.targets?.transfer;
}
static getProofs(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.proofs;
}
static getFERC(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.ferc;
}
static getMockNft(chainId) {
const protoform = this.getProtoform(chainId);
return protoform?.mockNFT;
}
}
exports.ArtEnjoyerProtoform = ArtEnjoyerProtoform;