UNPKG

@river-build/sdk

Version:

For more details, visit the following resources:

109 lines 4.27 kB
import { getWeb3Deployment, getWeb3Deployments, } from '@river-build/web3'; import { isDefined } from './check'; import { check } from '@river-build/dlog'; function getEnvironmentId() { if (typeof process === 'object') { return process.env.RIVER_ENV || 'local_multi'; } return 'local_multi'; } // Test flag to toggle usage of legacy spaces export function useLegacySpaces() { if (typeof process === 'object') { return process.env.USE_LEGACY_SPACES === 'true'; } return true; } function getBaseRpcUrlForChain(chainId) { if (typeof process === 'object') { if (process.env.BASE_CHAIN_RPC_URL) { return process.env.BASE_CHAIN_RPC_URL; } } switch (chainId) { case 31337: return 'http://localhost:8545'; case 84532: return 'https://sepolia.base.org'; case 8453: return 'https://mainnet.base.org'; default: throw new Error(`No preset RPC url for base chainId ${chainId}`); } } function getRiverRpcUrlForChain(chainId) { if (typeof process === 'object') { if (process.env.RIVER_CHAIN_RPC_URL) { return process.env.RIVER_CHAIN_RPC_URL; } } switch (chainId) { case 31338: return 'http://localhost:8546'; case 6524490: return 'https://devnet.rpc.river.build'; case 550: return 'https://mainnet.rpc.river.build'; default: throw new Error(`No preset RPC url for river chainId ${chainId}`); } } function makeWeb3Deployment(environmentId) { if (getWeb3Deployments().includes(environmentId)) { return getWeb3Deployment(environmentId); } if (!isDefined(process.env.BASE_CHAIN_ID)) { throw new Error(`Attempted to make local deployment ${environmentId}, which was not found in packages/generated/config/deployments.json AND individual chain ids and addresses were not defined in the process.env. Try configuring a local environment or updating the process.env`); } // Fallback to env vars check(isDefined(process.env.BASE_CHAIN_ID), 'BASE_CHAIN_ID is not defined'); check(isDefined(process.env.BASE_CHAIN_RPC_URL), 'BASE_CHAIN_RPC_URL is not defined'); check(isDefined(process.env.BASE_REGISTRY_ADDRESS), 'BASE_REGISTRY_ADDRESS is not defined'); check(isDefined(process.env.SPACE_FACTORY_ADDRESS), 'SPACE_FACTORY_ADDRESS is not defined'); check(isDefined(process.env.SPACE_OWNER_ADDRESS), 'SPACE_OWNER_ADDRESS is not defined'); check(isDefined(process.env.RIVER_CHAIN_ID), 'RIVER_CHAIN_ID is not defined'); check(isDefined(process.env.RIVER_CHAIN_RPC_URL), 'RIVER_CHAIN_RPC_URL is not defined'); check(isDefined(process.env.RIVER_REGISTRY_ADDRESS), 'RIVER_REGISTRY_ADDRESS is not defined'); return { base: { chainId: parseInt(process.env.BASE_CHAIN_ID), addresses: { baseRegistry: process.env.BASE_REGISTRY_ADDRESS, spaceFactory: process.env.SPACE_FACTORY_ADDRESS, spaceOwner: process.env.SPACE_OWNER_ADDRESS, mockNFT: process.env.MOCK_NFT_ADDRESS, member: process.env.MEMBER_ADDRESS, }, }, river: { chainId: parseInt(process.env.RIVER_CHAIN_ID), addresses: { riverRegistry: process.env.RIVER_REGISTRY_ADDRESS, }, }, }; } export function makeRiverChainConfig(environmentId) { const env = makeWeb3Deployment(environmentId ?? getEnvironmentId()); return { rpcUrl: getRiverRpcUrlForChain(env.river.chainId), chainConfig: env.river, }; } export function makeBaseChainConfig(environmentId) { const env = makeWeb3Deployment(environmentId ?? getEnvironmentId()); return { rpcUrl: getBaseRpcUrlForChain(env.base.chainId), chainConfig: env.base, }; } export function makeRiverConfig(inEnvironmentId) { const environmentId = inEnvironmentId ?? getEnvironmentId(); const config = { environmentId, base: makeBaseChainConfig(environmentId), river: makeRiverChainConfig(environmentId), }; return config; } //# sourceMappingURL=riverConfig.js.map