UNPKG

@fractional-company/common

Version:
165 lines (164 loc) 8.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getVaultAbis = exports.getLatestVaultItem = exports.getVaultGetters = exports.getVaultABI = exports.getVaultFactoryBlockNumber = exports.getVaultFERCAddress = exports.getVaultFactoryABI = exports.getVaultItem = exports.VAULT_FACTORY_CONTRACT_MAPPER = exports.VAULT_ABI_VERSIONED = exports.TYPE_VAULT_FACTORY = exports.TYPE_VAULT = exports.VAULT_ERC1155_FACTORY_GOERLI_CONTRACT_ADDRESS = exports.VAULT_ERC20_FACTORY_GOERLI_CONTRACT_ADDRESS = exports.VAULT_ERC1155_FACTORY_MAINNET_AZUKI_CONTRACT_ADDRESS = exports.VAULT_ERC1155_FACTORY_MAINNET_V2_CONTRACT_ADDRESS = exports.VAULT_ERC1155_FACTORY_MAINNET_V1_CONTRACT_ADDRESS = exports.VAULT_ERC20_FACTORY_MAINNET_V2_CONTRACT_ADDRESS = exports.VAULT_ERC20_FACTORY_MAINNET_V1_CONTRACT_ADDRESS = void 0; const chains_1 = require("../common/chains"); const valut_json_1 = __importDefault(require("./abis/valut.json")); const valutV2_json_1 = __importDefault(require("./abis/valutV2.json")); const valutV3_json_1 = __importDefault(require("./abis/valutV3.json")); const valutFactory_json_1 = __importDefault(require("./abis/valutFactory.json")); const valutFactoryV2_json_1 = __importDefault(require("./abis/valutFactoryV2.json")); const valutFactoryV3_json_1 = __importDefault(require("./abis/valutFactoryV3.json")); const ferc_1 = require("./ferc"); const schemas_1 = require("../common/schemas"); const common_1 = require("./common"); // ============================================== // Vault Factory // ============================================== // Mainnet exports.VAULT_ERC20_FACTORY_MAINNET_V1_CONTRACT_ADDRESS = "0x85aa7f78bdb2de8f3e0c0010d99ad5853ffcfc63"; exports.VAULT_ERC20_FACTORY_MAINNET_V2_CONTRACT_ADDRESS = "0x70d841fa16d8cad638beff560ec442c25f293ce8"; exports.VAULT_ERC1155_FACTORY_MAINNET_V1_CONTRACT_ADDRESS = "0x5728909d280c2009f17aa33eaea74f6fb7df58e4"; exports.VAULT_ERC1155_FACTORY_MAINNET_V2_CONTRACT_ADDRESS = "0x04bb19e64d2c2d92dc84eff75bd0ab757625a5f2"; exports.VAULT_ERC1155_FACTORY_MAINNET_AZUKI_CONTRACT_ADDRESS = "0x718c9174bfa4306163c383030ddfa44f6ce1cab8"; // GOERLI exports.VAULT_ERC20_FACTORY_GOERLI_CONTRACT_ADDRESS = "0xa743d2fA10B687465d92cAc7ED181Ed44a6131d2"; exports.VAULT_ERC1155_FACTORY_GOERLI_CONTRACT_ADDRESS = "0xebec3571a313db967ac7c65ea38c00c5d83e27a4"; exports.TYPE_VAULT = "VAULT"; exports.TYPE_VAULT_FACTORY = "VAULT_FACTORY"; // exports.VAULT_ABI_VERSIONED = { 1: valut_json_1.default, 2: valutV2_json_1.default, 3: valutV3_json_1.default, }; exports.VAULT_FACTORY_CONTRACT_MAPPER = { [chains_1.CHAINS.MAINNET]: [ { abi: valutFactory_json_1.default, contractAddress: exports.VAULT_ERC20_FACTORY_MAINNET_V1_CONTRACT_ADDRESS, blockNumber: 12743932, vault: { abi: valut_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC20 } }, { abi: valutFactoryV2_json_1.default, contractAddress: exports.VAULT_ERC20_FACTORY_MAINNET_V2_CONTRACT_ADDRESS, blockNumber: 13315618, vault: { abi: valutV2_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC20 } }, { abi: valutFactoryV3_json_1.default, contractAddress: exports.VAULT_ERC1155_FACTORY_MAINNET_V1_CONTRACT_ADDRESS, blockNumber: 13465531, vault: { abi: valutV3_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC1155 }, ferc: { contractAddress: ferc_1.FERC_MAINNET_V1_CONTRACT_ADDRESS, } }, { abi: valutFactoryV3_json_1.default, contractAddress: exports.VAULT_ERC1155_FACTORY_MAINNET_V2_CONTRACT_ADDRESS, blockNumber: 14115089, vault: { abi: valutV3_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC1155 }, ferc: { contractAddress: ferc_1.FERC_MAINNET_V1_CONTRACT_ADDRESS, } }, { abi: valutFactoryV3_json_1.default, contractAddress: exports.VAULT_ERC1155_FACTORY_MAINNET_AZUKI_CONTRACT_ADDRESS, blockNumber: 14329411, vault: { abi: valutV3_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC1155 }, isCustom: true, ferc: { contractAddress: ferc_1.FERC_MAINNET_AZUKI_CONTRACT_ADDRESS, } } ], [chains_1.CHAINS.GÖRLI]: [ { abi: valutFactory_json_1.default, contractAddress: exports.VAULT_ERC20_FACTORY_GOERLI_CONTRACT_ADDRESS, blockNumber: 7559469, vault: { abi: valut_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC20 } }, { abi: valutFactoryV3_json_1.default, contractAddress: exports.VAULT_ERC1155_FACTORY_GOERLI_CONTRACT_ADDRESS, blockNumber: 7543483, vault: { abi: valutV3_json_1.default, fractionSchema: schemas_1.SCHEMA_ERC1155 }, ferc: { contractAddress: ferc_1.FERC_GOERLI_CONTRACT_ADDRESS, } }, ], }; function getVaultItem(chainId, factoryAddress, blockNumber = null) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore return (0, common_1.getItemFromArrayByContractAddress)(exports.VAULT_FACTORY_CONTRACT_MAPPER[chainId || chains_1.CHAINS.MAINNET], factoryAddress, blockNumber); } exports.getVaultItem = getVaultItem; function getVaultFactoryABI(chainId, factoryAddress, blockNumber = null) { // eslint-disable-next-line prettier/prettier return getVaultItem(chainId, factoryAddress, blockNumber)?.abi; } exports.getVaultFactoryABI = getVaultFactoryABI; function getVaultFERCAddress(chainId, factoryAddress, blockNumber = null) { return getVaultItem(chainId, factoryAddress, blockNumber)?.ferc?.contractAddress; } exports.getVaultFERCAddress = getVaultFERCAddress; function getVaultFactoryBlockNumber(chainId, factoryAddress, blockNumber = null) { return getVaultItem(chainId, factoryAddress, blockNumber)?.blockNumber; } exports.getVaultFactoryBlockNumber = getVaultFactoryBlockNumber; function getVaultABI(chainId, factoryAddress, blockNumber = null) { return getVaultItem(chainId, factoryAddress, blockNumber)?.vault?.abi; } exports.getVaultABI = getVaultABI; function getVaultGetters(chainId, factoryAddress) { const schema = getVaultItem(chainId, factoryAddress, null)?.vault?.fractionSchema; return schema === schemas_1.SCHEMA_ERC20 ? ['auctionEnd', 'auctionLength', 'auctionState', 'curator', 'fee', 'livePrice', 'name', 'reservePrice', 'reserveTotal', 'symbol', 'token', 'id', 'votingTokens', 'winning', 'vaultClosed', 'totalSupply'] : ['auctionEnd', 'LENGTH', 'auctionState', 'curator', 'livePrice', 'fractions', 'fractionsID', 'token', 'id', 'reservePrice', 'version', 'winning']; } exports.getVaultGetters = getVaultGetters; function getLatestVaultItem(chainId, schema = schemas_1.SCHEMA_ERC1155) { const vaultItems = exports.VAULT_FACTORY_CONTRACT_MAPPER[chainId || chains_1.CHAINS.MAINNET]; const vaultItemsBySchema = vaultItems.filter(vaultItem => vaultItem.vault.fractionSchema === schema && !vaultItem.isCustom); return vaultItemsBySchema[vaultItemsBySchema.length - 1]; } exports.getLatestVaultItem = getLatestVaultItem; function getVaultAbis() { return [ valut_json_1.default, valutV2_json_1.default, valutV3_json_1.default ]; } exports.getVaultAbis = getVaultAbis;