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