generatePayOperationURI method Null safety
This function is used to generate a URIScheme compliant URL to serve as a request to pay a specific address with a specific asset, regardless of the source asset used by the payer.
Implementation
String generatePayOperationURI(String destinationAccountId,
{String? amount,
String? assetCode,
String? assetIssuer,
String? memo,
String? memoType,
String? callback,
String? message,
String? networkPassphrase,
String? originDomain,
String? signature}) {
String result = uriSchemeName + payOperation;
final Map<String, String> queryParams = {
destinationParameterName: destinationAccountId
};
if (amount != null) {
queryParams[amountParameterName] = Uri.encodeComponent(amount);
}
if (assetCode != null) {
queryParams[assetCodeParameterName] = Uri.encodeComponent(assetCode);
}
if (assetIssuer != null) {
queryParams[assetIssuerParameterName] = Uri.encodeComponent(assetIssuer);
}
if (memo != null) {
queryParams[memoCodeParameterName] = Uri.encodeComponent(memo);
}
if (memoType != null) {
queryParams[memoTypeIssuerParameterName] = Uri.encodeComponent(memoType);
}
if (callback != null) {
queryParams[callbackParameterName] = Uri.encodeComponent(callback);
}
if (message != null) {
queryParams[messageParameterName] = Uri.encodeComponent(message);
}
if (networkPassphrase != null) {
queryParams[networkPassphraseParameterName] =
Uri.encodeComponent(networkPassphrase);
}
if (originDomain != null) {
queryParams[originDomainParameterName] =
Uri.encodeComponent(originDomain);
}
if (signature != null) {
queryParams[signatureParameterName] = Uri.encodeComponent(signature);
}
for (MapEntry e in queryParams.entries) {
result += "${e.key}=${e.value}&";
}
if (queryParams.isNotEmpty) {
result = result.substring(0, result.length - 1);
}
return result;
}