createWallet method

Future createWallet(
  1. String walletId,
  2. NetworkParam networkParam
)

Implementation

Future<dynamic> createWallet(
    String walletId, NetworkParam networkParam) async {
  final mnemonic = await _storage.read(key: walletId);
  if (mnemonic == null || mnemonic.isEmpty) {
    return Future.error(ErrorCode.mnemonicNotExist);
  }

  if (networkParam.rpcUrl.isEmpty) {
    return Future.error(ErrorCode.rpcUrlNotSet);
  }

  // validate networkId for chainId
  if (chainIdToNetworkIdMap[networkParam.chainId] != networkParam.networkId) {
    return Future.error(ErrorCode.invalidNetworkId);
  }

  switch (networkParam.chainId) {
    case ChainId.ethereumGoerli:
    case ChainId.ethereumMainent:
    case ChainId.polygonMumbai:
    case ChainId.polygonMainnet:
      final wallet = Wallet(walletId, networkParam);
      return Future.value(wallet);
    default:
      return Future.error(ErrorCode.invalidChainId);
  }
}