signTransaction method
This endpoint signs a transaction. See https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0030.md#post-accountsaddresssignsigning-address
Implementation
Future<SEP30SignatureResponse> signTransaction(String address,
String signingAddress, String transaction, String jwt) async {
Uri requestURI = Util.appendEndpointToUrl(
_serviceAddress, 'accounts/$address/sign/$signingAddress');
Map<String, String> headers = {...RequestBuilder.headers};
headers["Authorization"] = "Bearer " + jwt;
headers.putIfAbsent("Content-Type", () => "application/json");
SEP30SignatureResponse result = await httpClient
.post(requestURI,
body: json.encode({"transaction": transaction}), headers: headers)
.then((response) {
switch (response.statusCode) {
case 200:
return SEP30SignatureResponse.fromJson(json.decode(response.body));
case 400:
throw SEP30BadRequestResponseException(
errorFromResponseBody(response.body));
case 401:
throw SEP30UnauthorizedResponseException(
errorFromResponseBody(response.body));
case 404:
throw SEP30NotFoundResponseException(
errorFromResponseBody(response.body));
case 409:
throw SEP30ConflictResponseException(
errorFromResponseBody(response.body));
default:
throw new SEP30UnknownResponseException(
response.statusCode, response.body);
}
}).catchError((onError) {
throw onError;
});
return result;
}