createWallet method
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);
}
}