createWallet method
Creates an m4e user-wallet and returns created wallet M4eUniqueId
Creates owner-permission on wallet
Throws M4eServerException if request fails.
Throws [ServerException]
with NO_INTERNET_CONNECTION
error
code device is not connected to the internet
Implementation
Future<M4eUniqueId> createWallet(
M4eUniqueId userId, M4eWalletForm m4eWalletForm) async {
if ((await _connectionChecker.hasConnection) ?? false) {
try {
final _walletId = await _walletApi.createWallet(userId, m4eWalletForm);
// create EntityWalletAccess permission form
final _permissionForm = M4ePermissionForm(
subId: userId,
objId: _walletId,
type: EntityWalletAccess.TYPE,
encoding: <M4eAccessPermissionSet>[
EntityWalletAccess.see,
EntityWalletAccess.view,
EntityWalletAccess.pay,
EntityWalletAccess.grant,
EntityWalletAccess.alter,
EntityWalletAccess.create,
EntityWalletAccess.destroy,
],
);
// set owner permissions on wallet
await _permissionApi.setPermission(_permissionForm);
return _walletId;
} catch (e) {
rethrow;
}
}
throw M4eExceptionMessages.kNoInternetConnectionException;
}