Skip to content

Commit

Permalink
refactor: use new endpoints for developer debug dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewwahid authored and Sednaoui committed Dec 3, 2023
1 parent 6ec6821 commit d58eb8b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 64 deletions.
35 changes: 1 addition & 34 deletions lib/config/env.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,47 +28,14 @@ class Env {
static late String walletConnectProjectId;
static late String magicApiKey;

static String getNodeUrlByChainId(int chainId){
switch (chainId){
case 5: return goerliRpcEndpoint;
case 10: return optimismRpcEndpoint;
case 420: return optimismGoerliRpcEndpoint;
case 11155111: return sepoliaRpcEndpoint;
//
default: return optimismRpcEndpoint;
}
}

static String getWebsocketsNodeUrlByChainId(int chainId){
switch (chainId){
case 5: return goerliWebsocketsRpcEndpoint;
case 10: return optimismWebsocketsRpcEndpoint;
case 420: return optimismGoerliWebsocketsRpcEndpoint;
case 11155111: return sepoliaWebsocketsRpcEndpoint;
//
default: return optimismWebsocketsRpcEndpoint;
}
}

static String getBundlerUrlByChainId(int chainId){
switch (chainId){
case 5: return goerliBundlerEndpoint;
case 10: return optimismBundlerEndpoint;
case 420: return optimismGoerliBundlerEndpoint;
case 11155111: return sepoliaBundlerEndpoint;
//
default: return goerliBundlerEndpoint;
}
}

static String getPaymasterUrlByChainId(int chainId){
switch (chainId){
case 5: return goerliPaymasterEndpoint;
case 10: return optimismPaymasterEndpoint;
case 420: return optimismGoerliPaymasterEndpoint;
case 11155111: return sepoliaPaymasterEndpoint;
//
default: return goerliPaymasterEndpoint;
default: return optimismWebsocketsRpcEndpoint;
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
import 'dart:convert';

import 'package:candide_mobile_app/config/env.dart';
import 'package:candide_mobile_app/config/network.dart';
import 'package:candide_mobile_app/config/theme.dart';
import 'package:candide_mobile_app/config/top_tokens.dart';
import 'package:candide_mobile_app/controller/token_info_storage.dart';
import 'package:candide_mobile_app/services/balance_service.dart';
import 'package:candide_mobile_app/utils/utils.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
Expand All @@ -30,25 +27,17 @@ class _VerifyEndpointsDeialogState extends State<VerifyEndpointsDialog> {
};

Future<bool> verifyBundlerEndpoint() async {
var bundlerEndpoint = Env.getBundlerUrlByChainId(widget.network.chainId.toInt());
try{
var response = await Dio().post(
bundlerEndpoint,
data: jsonEncode({"jsonrpc": "2.0", "id": 1, "method": "eth_chainId", "params": []})
);
var chainId = await widget.network.bundler.getChainId();
//
if ((response.data as Map).containsKey("error")){
return false;
}
if (Utils.decodeBigInt(response.data["result"]) == widget.network.chainId){
response = await Dio().post(
bundlerEndpoint,
data: jsonEncode({"jsonrpc": "2.0", "id": 1, "method": "eth_supportedEntryPoints", "params": []})
);
if ((response.data["result"] as List<dynamic>).map((e) => e.toString().toLowerCase()).contains(widget.network.entrypoint.hex)) return true;
if (chainId == null) return false;
if (chainId == widget.network.chainId){
var supportedEntryPoints = await widget.network.bundler.getSupportedEntryPoints();
if (supportedEntryPoints == null) return false;
if (supportedEntryPoints.contains(widget.network.entrypoint)) return true;
}
return false;
} on DioError {
} on DioException {
return false;
}
}
Expand All @@ -62,24 +51,18 @@ class _VerifyEndpointsDeialogState extends State<VerifyEndpointsDialog> {
}
//
return false;
} on DioError {
} on DioException {
return false;
}
}

Future<bool> verifyPaymasterEndpoint() async {
var bundlerEndpoint = Env.getPaymasterUrlByChainId(widget.network.chainId.toInt());
try{
var response = await Dio().post(
bundlerEndpoint,
data: jsonEncode({"jsonrpc": "2.0", "id": 1, "method": "pm_getApprovedTokens", "params": []})
);
var supportedTokens = await widget.network.paymaster.supportedERC20Tokens(TokenInfoStorage.getNativeTokenForNetwork(widget.network));
//
if ((response.data as Map).containsKey("error")){
return false;
}
if (supportedTokens.tokens.length == 1) return false;
return true;
} on DioError {
} on Exception {
return false;
}
}
Expand All @@ -93,7 +76,7 @@ class _VerifyEndpointsDeialogState extends State<VerifyEndpointsDialog> {
EthereumAddress tokenAddress = TopTokens.getChainTokens(chainId)[1];
var response = await Dio().get("https://api.coingecko.com/api/v3/simple/token_price/${widget.network.coinGeckoAssetPlatform}?contract_addresses=$tokenAddress&vs_currencies=eth");
return response.data.toString().toLowerCase().contains(tokenAddress.hex.toLowerCase());
} on DioError {
} on DioException {
return false;
}
}
Expand Down

0 comments on commit d58eb8b

Please sign in to comment.