@infy-protocol/sdk
Version:
Lend and rent any ERC721s and ERC1155s on supported mainnet and testnet.
528 lines (518 loc) • 17.9 kB
text/typescript
export type TypeNetworkDetails = {
name: string;
chainId: number;
shortName: string;
chain: string;
networkId: number;
nativeCurrency: { name: string; symbol: string; decimals: number };
rpc: string[];
faucets: string[];
explorers: { name: string; url: string; standard: string };
infoURL: string;
logoURL: string;
collateralizedContractAddresses: string[];
collateralFreeContractAddresses: string[];
revenueSharedNFTRentalsContractAddresses: string[];
revenueSharedConfiguratorContractAddresses: string[];
e721ContractAddresses: string[];
e721BContractAddresses: string[];
e1155ContractAddresses: string[];
e1155BContractAddresses: string[];
wETHContractAddresses: string[];
daiContractAddresses: string[];
usdcContractAddresses: string[];
usdtContractAddresses: string[];
tUSDContractAddresses: string[];
utilsContractAddresses: string[];
subgraphs: {
collateralized: string;
collateralFree: string;
revenueSharedNFTRentals: string;
e721: string;
e1155: string;
};
moralisDetails: { isSupported: boolean; lookupValue: string };
chainApiId: string;
isSupported: boolean;
isTestnet: boolean;
};
export type TypeNetworkConfig = {
[key: string]: TypeNetworkDetails;
};
/// Value must be same as abi's "Bytecode" file name
export enum ContractType {
COLLATERALIZED = 'Collateralized',
COLLATERAL_FREE = 'CollateralFree',
REVENUE_SHARE = 'RevenueShare',
REVENUE_SHARED_CONFIGURATOR = 'RevenueSharedConfigurator',
E721 = 'E721',
E721_B = 'E721B',
E1155 = 'E1155',
E1155_B = 'E1155B',
WETH = 'WETH',
DAI = 'DAI',
USDC = 'USDC',
USDT = 'USDT',
T_USD = 'TUSD',
UTILS = 'Utils',
}
export const CONTRACT_TYPE_LIST: ContractType[] = Object.values(
ContractType
).filter(id => typeof id === 'string') as ContractType[];
export enum SupportedChainIds {
ETHEREUM_MAINNET = 1,
ETHEREUM_ROPSTEN = 3,
ETHEREUM_RINKEBY = 4,
ETHEREUM_KOVAN = 42,
BINANCE_MAINNET = 56,
BINANCE_TESTNET = 97,
POLYGON_MAINNET = 137,
POLYGON_TESTNET = 80001,
}
export const ALL_SUPPORTED_CHAIN_IDS: SupportedChainIds[] = Object.values(
SupportedChainIds
).filter(id => typeof id === 'number') as SupportedChainIds[];
/// Note:
/// 1. Contract address array version priority [Vn....3,2,1] (Latest contract at zero index)
export const NetworkConfig: TypeNetworkConfig = {
[SupportedChainIds.ETHEREUM_MAINNET]: {
name: 'Ethereum Mainnet',
chainId: 1,
shortName: 'eth',
chain: 'ETH',
networkId: 1,
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
rpc: [
'https://mainnet.infura.io/v3/${INFURA_API_KEY}',
'wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}',
'https://api.mycryptoapi.com/eth',
'https://cloudflare-eth.com',
],
faucets: [],
explorers: {
name: 'etherscan',
url: 'https://etherscan.io',
standard: 'EIP3091',
},
infoURL: 'https://ethereum.org',
logoURL: '/assets/images/chain-logos/ethereum-logo.png',
collateralizedContractAddresses: [],
collateralFreeContractAddresses: [],
revenueSharedNFTRentalsContractAddresses: [],
revenueSharedConfiguratorContractAddresses: [],
e721ContractAddresses: [],
e721BContractAddresses: [],
e1155ContractAddresses: [],
e1155BContractAddresses: [],
wETHContractAddresses: [],
daiContractAddresses: [],
usdcContractAddresses: [],
usdtContractAddresses: [],
tUSDContractAddresses: [],
utilsContractAddresses: [],
subgraphs: {
collateralized: '',
collateralFree: '',
revenueSharedNFTRentals: '',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: true, lookupValue: 'eth' },
chainApiId: 'binancecoin',
isSupported: false,
isTestnet: false,
},
[SupportedChainIds.ETHEREUM_ROPSTEN]: {
name: 'Ethereum Testnet Ropsten',
chainId: 3,
shortName: 'rop',
chain: 'ETH-Testnet',
networkId: 3,
nativeCurrency: {
name: 'Ropsten Ether',
symbol: 'ROP',
decimals: 18,
},
rpc: [
'https://ropsten.infura.io/v3/${INFURA_API_KEY}',
'wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}',
],
faucets: ['https://faucet.ropsten.be?${ADDRESS}'],
explorers: {
name: 'etherscan-ropsten',
url: 'https://ropsten.etherscan.io/',
standard: 'EIP3091',
},
infoURL: 'https://github.com/ethereum/ropsten',
logoURL: '/assets/images/chain-logos/ethereum-logo.png',
collateralizedContractAddresses: [],
collateralFreeContractAddresses: [],
revenueSharedNFTRentalsContractAddresses: [],
revenueSharedConfiguratorContractAddresses: [],
e721ContractAddresses: [],
e721BContractAddresses: [],
e1155ContractAddresses: [],
e1155BContractAddresses: [],
wETHContractAddresses: [],
daiContractAddresses: [],
usdcContractAddresses: [],
usdtContractAddresses: [],
tUSDContractAddresses: [],
utilsContractAddresses: [],
subgraphs: {
collateralized: '',
collateralFree: '',
revenueSharedNFTRentals: '',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: false, lookupValue: '' },
chainApiId: 'binancecoin',
isSupported: false,
isTestnet: true,
},
[SupportedChainIds.ETHEREUM_RINKEBY]: {
name: 'Ethereum Testnet Rinkeby',
chainId: 4,
shortName: 'rin',
chain: 'ETH-Testnet',
networkId: 4,
nativeCurrency: {
name: 'Rinkeby Ether',
symbol: 'RIN',
decimals: 18,
},
rpc: [
'https://rinkeby.infura.io/v3/${INFURA_API_KEY}',
'wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}',
],
faucets: ['https://faucet.rinkeby.io'],
explorers: {
name: 'etherscan-rinkeby',
url: 'https://rinkeby.etherscan.io',
standard: 'EIP3091',
},
infoURL: 'https://www.rinkeby.io',
logoURL: '/assets/images/chain-logos/ethereum-logo.png',
collateralizedContractAddresses: [],
collateralFreeContractAddresses: [],
revenueSharedNFTRentalsContractAddresses: [],
revenueSharedConfiguratorContractAddresses: [],
e721ContractAddresses: [],
e721BContractAddresses: [],
e1155ContractAddresses: [],
e1155BContractAddresses: [],
wETHContractAddresses: [],
daiContractAddresses: [],
usdcContractAddresses: [],
usdtContractAddresses: [],
tUSDContractAddresses: [],
utilsContractAddresses: [],
subgraphs: {
collateralized: '',
collateralFree: '',
revenueSharedNFTRentals: '',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: false, lookupValue: '' },
chainApiId: 'binancecoin',
isSupported: false,
isTestnet: true,
},
[SupportedChainIds.ETHEREUM_KOVAN]: {
name: 'Kovan Testnet',
chainId: 42,
shortName: 'KOV',
chain: 'kovan',
networkId: 42,
nativeCurrency: { name: 'Kovan', symbol: 'KOV', decimals: 18 },
rpc: [
'https://kovan.poa.network',
'http://kovan.poa.network:8545',
'https://kovan.infura.io/v3/${INFURA_API_KEY}',
'wss://kovan.infura.io/ws/v3/${INFURA_API_KEY}',
'ws://kovan.poa.network:8546',
],
faucets: [
'https://faucet.kovan.network',
'https://gitter.im/kovan-testnet/faucet',
],
explorers: {
name: 'etherscan-kovan',
url: 'https://kovan.etherscan.io/',
standard: 'EIP3091',
},
infoURL: 'https://kovan-testnet.github.io/website',
logoURL: '/assets/images/chain-logos/kovan-logo-svg.svg',
collateralizedContractAddresses: [
'0xc4E1142e0dcF1CBdDcD101Bd6C82DB5bDc946C6e',
],
collateralFreeContractAddresses: [
'0x0948a02CCf44949C3853Cb087698C91C9E37Dddd',
],
revenueSharedNFTRentalsContractAddresses: [],
revenueSharedConfiguratorContractAddresses: [
'0x3A92F1c74D4F10b9eb3E12C890E55663F510F8a5',
],
e721ContractAddresses: ['0xD3b55Bf4A849992AA52f2293CDDb493A18b980Dd'],
e721BContractAddresses: ['0x4EF6d4f83341AAF584DB7599ba7BCB0f29CdC51A'],
e1155ContractAddresses: ['0xBFBA01C44c6f36EB7f8b6e805c969d1F438fF650'],
e1155BContractAddresses: ['0xE9397bDf06a56303e0159f1D618Efde7E90dA3A3'],
wETHContractAddresses: ['0xe74ffdF419f30aD24dDe778d7317Ba7d3BB18f4a'],
daiContractAddresses: ['0x45793Ad70378a863922706f465eCbC26f4c195f9'],
usdcContractAddresses: ['0x3ebBC74E7579F800fE8C3d058377b95c06f7f0e1'],
usdtContractAddresses: ['0xAA92036d1D11f4120E9345E990072e868B48Be7e'],
tUSDContractAddresses: ['0xeFEfAC77461FF56Ff26F3Db522e42AbEA7aE38b5'],
utilsContractAddresses: ['0xAe79A95cCeFDEb13584e7595d4FCC8D3cAac352a'],
subgraphs: {
collateralized:
'https://kovan.infy.network/subgraphs/name/infy-collateralized/subgraph',
collateralFree:
'https://kovan.infy.network/subgraphs/name/infy-collateral-free/subgraph',
revenueSharedNFTRentals: '',
e721:
'https://kovan.infy.network/subgraphs/name/wighawag/eip721-subgraph',
e1155: 'https://kovan.infy.network/subgraphs/name/amxx/eip1155-subgraph',
},
moralisDetails: { isSupported: false, lookupValue: '' },
chainApiId: 'kovan-testnet',
isSupported: false,
isTestnet: true,
},
[SupportedChainIds.BINANCE_MAINNET]: {
name: 'BSC Mainnet',
chainId: 56,
shortName: 'bnb',
chain: 'BSC',
networkId: 56,
nativeCurrency: {
name: 'Binance Chain Native Token',
symbol: 'BNB',
decimals: 18,
},
rpc: [
'https://bsc-dataseed1.binance.org',
'https://bsc-dataseed2.binance.org',
'https://bsc-dataseed3.binance.org',
'https://bsc-dataseed4.binance.org',
'https://bsc-dataseed1.defibit.io',
'https://bsc-dataseed2.defibit.io',
'https://bsc-dataseed3.defibit.io',
'https://bsc-dataseed4.defibit.io',
'https://bsc-dataseed1.ninicoin.io',
'https://bsc-dataseed2.ninicoin.io',
'https://bsc-dataseed3.ninicoin.io',
'https://bsc-dataseed4.ninicoin.io',
'wss://bsc-ws-node.nariox.org',
],
faucets: [],
explorers: {
name: 'bscscan',
url: 'https://bscscan.com',
standard: 'EIP3091',
},
infoURL: 'https://www.binance.org',
logoURL: '/assets/images/chain-logos/binance-logo.png',
collateralizedContractAddresses: [
'0x4dA60d2646a8ed5461457012f5cd7b87905E9e55',
],
collateralFreeContractAddresses: [
'0x858feeb9D751A07aF2D7b5ad7fa996B30261a891',
],
revenueSharedNFTRentalsContractAddresses: [
'0xEc12AB0306A3bbDa93aACC2BE931F8A8343bCEA3',
],
revenueSharedConfiguratorContractAddresses: [
'0x8F975d55b8b20D6e53264A4730998C14fE5b8C25',
],
e721ContractAddresses: [],
e721BContractAddresses: [],
e1155ContractAddresses: [],
e1155BContractAddresses: [],
wETHContractAddresses: ['0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'],
daiContractAddresses: ['0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3'],
usdcContractAddresses: ['0xD3b55Bf4A849992AA52f2293CDDb493A18b980Dd'],
usdtContractAddresses: ['0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56'],
tUSDContractAddresses: ['0x14016e85a25aeb13065688cafb43044c2ef86784'],
utilsContractAddresses: [],
subgraphs: {
collateralized:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-collateralized-bsc',
collateralFree:
'https://thegraph.com/explorer/subgraph/dudhatparesh/infy-collateral-free-bsc',
revenueSharedNFTRentals:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-revenue-share-bsc',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: true, lookupValue: 'bsc' },
chainApiId: 'binancecoin',
isSupported: true,
isTestnet: false,
},
[SupportedChainIds.BINANCE_TESTNET]: {
name: 'BSC Smart Chain Testnet',
chainId: 97,
shortName: 'bnbt',
chain: 'BSC-Testnet',
networkId: 97,
nativeCurrency: {
name: 'Binance Chain Native Token',
symbol: 'BNB',
decimals: 18,
},
rpc: [
'https://data-seed-prebsc-2-s1.binance.org:8545',
'https://data-seed-prebsc-1-s1.binance.org:8545',
'https://data-seed-prebsc-1-s2.binance.org:8545',
'https://data-seed-prebsc-2-s2.binance.org:8545',
'https://data-seed-prebsc-1-s3.binance.org:8545',
'https://data-seed-prebsc-2-s3.binance.org:8545',
],
faucets: ['https://testnet.binance.org/faucet-smart'],
explorers: {
name: 'bscscan-testnet',
url: 'https://testnet.bscscan.com',
standard: 'EIP3091',
},
infoURL: 'https://testnet.binance.org/',
logoURL: '/assets/images/chain-logos/binance-logo.png',
collateralizedContractAddresses: [],
collateralFreeContractAddresses: [],
revenueSharedNFTRentalsContractAddresses: [],
revenueSharedConfiguratorContractAddresses: [],
e721ContractAddresses: [],
e721BContractAddresses: [],
e1155ContractAddresses: [],
e1155BContractAddresses: [],
wETHContractAddresses: [],
daiContractAddresses: [],
usdcContractAddresses: [],
usdtContractAddresses: [],
tUSDContractAddresses: [],
utilsContractAddresses: [],
subgraphs: {
collateralized: '',
collateralFree: '',
revenueSharedNFTRentals: '',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: true, lookupValue: 'bsc testnet' },
chainApiId: 'binancecoin',
isSupported: false,
isTestnet: true,
},
[SupportedChainIds.POLYGON_MAINNET]: {
name: 'Polygon',
chainId: 137,
shortName: 'Polygon',
chain: 'Polygon',
networkId: 137,
nativeCurrency: { name: 'Matic', symbol: 'MATIC', decimals: 18 },
rpc: ['https://polygon-rpc.com/'],
faucets: [],
explorers: {
name: 'polygonscan',
url: 'https://polygonscan.com',
standard: 'EIP3091',
},
infoURL: 'https://matic.network/',
logoURL: '/assets/images/chain-logos/matic-logo-svg.svg',
collateralizedContractAddresses: [
'0x30e1617F74c1E990Cf2af5532026FD58B561b5b4',
],
collateralFreeContractAddresses: [
'0x730995e8cF5af41e581cfdCc457630C9700610E6',
],
revenueSharedNFTRentalsContractAddresses: [
'0x9C5dA47ED0281aF302ED1E77a1B961ed980d5385',
],
revenueSharedConfiguratorContractAddresses: [
'0x4a1BDD3a5BBAb4312432b1b507d67Bce6baC8B22',
],
e721ContractAddresses: [],
e721BContractAddresses: [],
e1155ContractAddresses: [],
e1155BContractAddresses: [],
wETHContractAddresses: ['0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619'],
daiContractAddresses: ['0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063'],
usdcContractAddresses: ['0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'],
usdtContractAddresses: ['0xc2132D05D31c914a87C6611C10748AEb04B58e8F'],
tUSDContractAddresses: ['0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756'],
utilsContractAddresses: [],
subgraphs: {
collateralized:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-collateralized-polygon',
collateralFree:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-collateral-free-polygon',
revenueSharedNFTRentals:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-revenue-share-polygon',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: true, lookupValue: 'polygon' },
chainApiId: 'matic-network',
isSupported: true,
isTestnet: false,
},
[SupportedChainIds.POLYGON_TESTNET]: {
name: 'Mumbai-Testnet',
chainId: 80001,
shortName: 'Mumbai',
chain: 'Mumbai-TestNet',
networkId: 80001,
nativeCurrency: { name: 'Matic', symbol: 'MATIC', decimals: 18 },
rpc: ['https://rpc-mumbai.matic.today', 'wss://ws-mumbai.matic.today'],
faucets: ['https://faucet.matic.network/'],
explorers: {
name: 'mumbai-polygonscan',
url: 'https://mumbai.polygonscan.com/',
standard: 'EIP3091',
},
infoURL: 'https://matic.network/',
logoURL: '/assets/images/chain-logos/matic-logo-svg.svg',
collateralizedContractAddresses: [
'0xDA0b94C237b435cbeA5Dd5aD44cc6F235aaE5855',
],
collateralFreeContractAddresses: [
'0x8f5138FDe08Be9061612086f4bCA472a563544c4',
],
revenueSharedNFTRentalsContractAddresses: [
'0x9352a6007F186c11FBC1daBc9fFFFA62Ea9eb9f3',
],
revenueSharedConfiguratorContractAddresses: [
'0x418258c4412bC13b3C877374BCE70890d456Cc1e',
],
e721ContractAddresses: ['0x1506aF09A9a0D9179008d5F3E778ba46B76B54bc'],
e721BContractAddresses: ['0xAe79A95cCeFDEb13584e7595d4FCC8D3cAac352a'],
e1155ContractAddresses: ['0xd742C9Dd714c6FD0dB880Ed278e7Dc3e472fABb5'],
e1155BContractAddresses: ['0x3A92F1c74D4F10b9eb3E12C890E55663F510F8a5'],
wETHContractAddresses: ['0xAA92036d1D11f4120E9345E990072e868B48Be7e'],
daiContractAddresses: ['0xeFEfAC77461FF56Ff26F3Db522e42AbEA7aE38b5'],
usdcContractAddresses: ['0xD3b55Bf4A849992AA52f2293CDDb493A18b980Dd'],
usdtContractAddresses: ['0x4EF6d4f83341AAF584DB7599ba7BCB0f29CdC51A'],
tUSDContractAddresses: ['0x4bC7EA42aE5E5D4F8Dab60646B247978EEF09888'],
utilsContractAddresses: ['0xb6A0B7e204E86823eB78689e50a6Ed10931583B5'],
subgraphs: {
collateralized:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-collateralized-mumbai',
collateralFree:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-collateral-free-mumbai',
revenueSharedNFTRentals:
'https://api.thegraph.com/subgraphs/name/dudhatparesh/infy-revenue-share-mumbai',
e721: '',
e1155: '',
},
moralisDetails: { isSupported: true, lookupValue: 'mumbai' },
chainApiId: 'matic-network',
isSupported: true,
isTestnet: true,
},
};
export const GetNetworkDetailsByChainId = (
networkId: SupportedChainIds
): TypeNetworkDetails => {
return NetworkConfig[networkId];
};