@fractional-company/common
Version:
Tessera constants
165 lines (164 loc) • 8.14 kB
JavaScript
;
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;