Skip to content

Commit

Permalink
Merge pull request vitorpamplona#1133 from greenart7c3/external_signe…
Browse files Browse the repository at this point in the history
…r_result

Check for the result field when using external signer
  • Loading branch information
vitorpamplona authored Oct 11, 2024
2 parents d832351 + 5ef3c8f commit 786a173
Showing 1 changed file with 11 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ class Permission(
class Result(
@JsonProperty("package") val `package`: String?,
@JsonProperty("signature") val signature: String?,
@JsonProperty("result") val result: String?,
@JsonProperty("id") val id: String?,
) {
companion object {
Expand All @@ -76,7 +77,8 @@ class Result(
val jsonObject: JsonNode = jp.codec.readTree(jp)
return Result(
jsonObject.get("package").asText().intern(),
jsonObject.get("signature").asText().intern(),
jsonObject.get("signature")?.asText()?.intern(),
jsonObject.get("result")?.asText()?.intern(),
jsonObject.get("id").asText().intern(),
)
}
Expand Down Expand Up @@ -120,7 +122,7 @@ class ExternalSignerLauncher(
if (results != null) {
val localResults: Array<Result> = Result.fromJsonArray(results)
localResults.forEach {
val signature = it.signature ?: ""
val signature = it.result ?: it.signature ?: ""
val packageName = it.`package`?.let { "-$it" } ?: ""
val id = it.id ?: ""
if (id.isNotBlank()) {
Expand All @@ -130,7 +132,7 @@ class ExternalSignerLauncher(
}
}
} else {
val signature = data.getStringExtra("signature") ?: ""
val signature = data.getStringExtra("result") ?: data.getStringExtra("signature") ?: ""
val packageName = data.getStringExtra("package")?.let { "-$it" } ?: ""
val id = data.getStringExtra("id") ?: ""
if (id.isNotBlank()) {
Expand Down Expand Up @@ -239,13 +241,11 @@ class ExternalSignerLauncher(

fun openSigner(
event: EventInterface,
columnName: String = "signature",
onReady: (String) -> Unit,
) {
getDataFromResolver(
SignerType.SIGN_EVENT,
arrayOf(event.toJson(), event.pubKey()),
columnName,
).fold(
onFailure = { },
onSuccess = {
Expand All @@ -267,13 +267,11 @@ class ExternalSignerLauncher(
private fun getDataFromResolver(
signerType: SignerType,
data: Array<out String>,
columnName: String = "signature",
): kotlin.Result<String?> = getDataFromResolver(signerType, data, columnName, contentResolver)
): kotlin.Result<String?> = getDataFromResolver(signerType, data, contentResolver)

private fun getDataFromResolver(
signerType: SignerType,
data: Array<out String>,
columnName: String = "signature",
contentResolver: (() -> ContentResolver)? = null,
): kotlin.Result<String?> {
val localData =
Expand Down Expand Up @@ -301,9 +299,12 @@ class ExternalSignerLauncher(
Log.d("getDataFromResolver", "Permission denied")
return kotlin.Result.failure(Exception("Permission denied"))
}
val index = it.getColumnIndex(columnName)
var index = it.getColumnIndex("result")
if (index < 0) {
Log.d("getDataFromResolver", "column '$columnName' not found")
index = it.getColumnIndex("signature")
}
if (index < 0) {
Log.d("getDataFromResolver", "column 'signature' not found")
return kotlin.Result.success(null)
}
return kotlin.Result.success(it.getString(index))
Expand Down

0 comments on commit 786a173

Please sign in to comment.