@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
39 lines (36 loc) • 918 B
JavaScript
import { createFetchMiddleware } from '@toruslabs/base-controllers';
import { JRPCEngineV2 } from '@web3auth/auth';
function createChainIdMiddleware(chainId) {
return ({
request,
next
}) => {
if (request.method === "chainId") return chainId;
return next(request);
};
}
function createProviderConfigMiddleware(providerConfig) {
return ({
request,
next
}) => {
if (request.method === "provider_config") return providerConfig;
return next(request);
};
}
function createJsonRpcClient(providerConfig) {
const {
chainId,
rpcTarget
} = providerConfig;
const engine = JRPCEngineV2.create({
middleware: [createChainIdMiddleware(chainId), createProviderConfigMiddleware(providerConfig), createFetchMiddleware({
rpcTarget
})]
});
const networkMiddleware = engine.asMiddleware();
return {
networkMiddleware
};
}
export { createJsonRpcClient };