Skip to content

toViemChain

const toViemChain: (devnetInfo) => Chain = toChain

Defined in: packages/synapse-core/src/foc-devnet-info/src/index.ts:155

Create a Synapse Chain object from devnet info. This is compatible with viem and includes all ABIs needed by the Synapse SDK.

ParameterTypeDescription
devnetInfo{ info: { contracts: { endorsements_addr: string; filecoin_pay_v1_addr: string; fwss_impl_addr: string; fwss_service_proxy_addr: string; fwss_state_view_addr: string; mockusdfc_addr: string; multicall3_addr: string; pdp_verifier_impl_addr: string; pdp_verifier_proxy_addr: string; service_provider_registry_impl_addr: string; service_provider_registry_proxy_addr: string; session_key_registry_addr: string; }; lotus: { container_id: string; container_name: string; host_rpc_url: string; }; lotus_miner: { api_port: number; container_id: string; container_name: string; }; pdp_sps: object[]; run_id: string; start_time: string; startup_duration: string; users: object[]; }; version: 1; }The devnet info from loadDevnetInfo()
devnetInfo.info{ contracts: { endorsements_addr: string; filecoin_pay_v1_addr: string; fwss_impl_addr: string; fwss_service_proxy_addr: string; fwss_state_view_addr: string; mockusdfc_addr: string; multicall3_addr: string; pdp_verifier_impl_addr: string; pdp_verifier_proxy_addr: string; service_provider_registry_impl_addr: string; service_provider_registry_proxy_addr: string; session_key_registry_addr: string; }; lotus: { container_id: string; container_name: string; host_rpc_url: string; }; lotus_miner: { api_port: number; container_id: string; container_name: string; }; pdp_sps: object[]; run_id: string; start_time: string; startup_duration: string; users: object[]; }-
devnetInfo.info.contracts{ endorsements_addr: string; filecoin_pay_v1_addr: string; fwss_impl_addr: string; fwss_service_proxy_addr: string; fwss_state_view_addr: string; mockusdfc_addr: string; multicall3_addr: string; pdp_verifier_impl_addr: string; pdp_verifier_proxy_addr: string; service_provider_registry_impl_addr: string; service_provider_registry_proxy_addr: string; session_key_registry_addr: string; }-
devnetInfo.info.contracts.endorsements_addrstring-
devnetInfo.info.contracts.filecoin_pay_v1_addrstring-
devnetInfo.info.contracts.fwss_impl_addrstring-
devnetInfo.info.contracts.fwss_service_proxy_addrstring-
devnetInfo.info.contracts.fwss_state_view_addrstring-
devnetInfo.info.contracts.mockusdfc_addrstring-
devnetInfo.info.contracts.multicall3_addrstring-
devnetInfo.info.contracts.pdp_verifier_impl_addrstring-
devnetInfo.info.contracts.pdp_verifier_proxy_addrstring-
devnetInfo.info.contracts.service_provider_registry_impl_addrstring-
devnetInfo.info.contracts.service_provider_registry_proxy_addrstring-
devnetInfo.info.contracts.session_key_registry_addrstring-
devnetInfo.info.lotus{ container_id: string; container_name: string; host_rpc_url: string; }-
devnetInfo.info.lotus.container_idstring-
devnetInfo.info.lotus.container_namestring-
devnetInfo.info.lotus.host_rpc_urlstring-
devnetInfo.info.lotus_miner{ api_port: number; container_id: string; container_name: string; }-
devnetInfo.info.lotus_miner.api_portnumber-
devnetInfo.info.lotus_miner.container_idstring-
devnetInfo.info.lotus_miner.container_namestring-
devnetInfo.info.pdp_spsobject[]-
devnetInfo.info.run_idstring-
devnetInfo.info.start_timestring-
devnetInfo.info.startup_durationstring-
devnetInfo.info.usersobject[]-
devnetInfo.version1-

Chain

Synapse Chain object with contract ABIs and addresses

import { loadDevnetInfo, toChain } from '@filoz/synapse-core/foc-devnet-info';
import { Synapse } from '@filoz/synapse-sdk';
import { createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
const data = JSON.parse(await (await fetch('/devnet-info.json')).text());
const devnetInfo = loadDevnetInfo(data);
const chain = toChain(devnetInfo);
const synapse = Synapse.create({
chain,
transport: http(),
account: privateKeyToAccount(devnetInfo.info.users[0].private_key_hex),
});