@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
40 lines (37 loc) • 1.02 kB
JavaScript
import { createFetchMiddleware } from '@toruslabs/base-controllers';
import { JRPCEngineV2 } from '@web3auth/auth';
import { RPC_METHODS } from './xrplRpcMiddlewares.js';
function createXrplChainIdMiddleware(chainId) {
return ({
request,
next
}) => {
if (request.method === RPC_METHODS.CHAIN_ID) return chainId;
return next(request);
};
}
function createXrplProviderConfigMiddleware(providerConfig) {
return ({
request,
next
}) => {
if (request.method === RPC_METHODS.PROVIDER_CHAIN_CONFIG) return providerConfig;
return next(request);
};
}
function createXrplJsonRpcClient(providerConfig) {
const {
chainId,
rpcTarget
} = providerConfig;
const engine = JRPCEngineV2.create({
middleware: [createXrplChainIdMiddleware(chainId), createXrplProviderConfigMiddleware(providerConfig), createFetchMiddleware({
rpcTarget
})]
});
const networkMiddleware = engine.asMiddleware();
return {
networkMiddleware
};
}
export { createXrplJsonRpcClient };