UNPKG

@fractional-company/common

Version:
106 lines (105 loc) 4.78 kB
"use strict"; 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;