diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/models/AccountExport.kt b/app/src/main/java/com/greenart7c3/nostrsigner/models/AccountExport.kt index 5e39337c..206059f6 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/models/AccountExport.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/models/AccountExport.kt @@ -10,17 +10,19 @@ import com.fasterxml.jackson.module.kotlin.readValue */ @Immutable data class AccountExportData( - @JsonProperty("npub") + @param:JsonProperty("npub") val npub: String, - @JsonProperty("name") + @param:JsonProperty("name") val name: String, - @JsonProperty("nsec") + @param:JsonProperty("nsec") val nsec: String?, - @JsonProperty("signPolicy") + @param:JsonProperty("seedWords") + val seedWords: String, + @param:JsonProperty("signPolicy") val signPolicy: Int, - @JsonProperty("picture") + @param:JsonProperty("picture") val picture: String?, - @JsonProperty("didBackup") + @param:JsonProperty("didBackup") val didBackup: Boolean, ) @@ -29,13 +31,13 @@ data class AccountExportData( */ @Immutable data class BulkAccountExport( - @JsonProperty("version") + @param:JsonProperty("version") val version: String = "1.0", - @JsonProperty("exportDate") + @param:JsonProperty("exportDate") val exportDate: Long = System.currentTimeMillis() / 1000, - @JsonProperty("accountCount") + @param:JsonProperty("accountCount") val accountCount: Int, - @JsonProperty("accounts") + @param:JsonProperty("accounts") val accounts: List, ) { companion object { diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/service/AccountExportService.kt b/app/src/main/java/com/greenart7c3/nostrsigner/service/AccountExportService.kt index 0668947b..4c0fb6b8 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/service/AccountExportService.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/service/AccountExportService.kt @@ -64,6 +64,7 @@ object AccountExportService { */ private fun accountToExportData(account: Account, password: String): AccountExportData { val privKey = account.signer.keyPair.privKey + val encrypedSeedWords = if (account.seedWords.isNotEmpty()) account.signer.signerSync.nip44Encrypt(account.seedWords.joinToString(" "), account.hexKey) else "" // Encrypt private key with password (NIP-49) or use nsec if no password val encryptedNsec = if (privKey != null) { @@ -83,6 +84,7 @@ object AccountExportService { signPolicy = account.signPolicy, picture = account.picture.value, didBackup = account.didBackup, + seedWords = encrypedSeedWords, ) } }