createAccount method
Implementation
Future<String> createAccount({
required String parentId,
required String operator,
String? name,
String? publicName,
String? owner,
String? profileImageUrl,
int? balanceLimit,
String? contextId,
}) async {
final ownerBytes = owner != null ? base64Decode(owner) : null;
final accountId = await createLedgerAccount(
parentId: parentId,
operator: operator,
balanceLimit: balanceLimit,
);
final account = AccountMetadata()
..id = hex.decode(accountId)
..owner = ownerBytes ?? await signer.publicKey();
if (name != null) {
account.name = name;
}
if (publicName != null) {
account.publicName = publicName;
}
if (profileImageUrl != null) {
account.profileImageUrl = profileImageUrl;
}
final request = account.createRequest();
final client = getServiceClient(operator);
final envelop = await requestEnvelope(
request: request,
contextId: contextId != null ? hex.decode(contextId) : null,
);
await client.tx.createTransaction(envelop);
return accountId;
}