diff --git a/src/components/advanced/sign_and_verify.vue b/src/components/advanced/sign_and_verify.vue
new file mode 100644
index 0000000..c48ecb8
--- /dev/null
+++ b/src/components/advanced/sign_and_verify.vue
@@ -0,0 +1,202 @@
+
+
+
+
+ {{ $t("strings.signAndVerifyDescription") }}
+
+
Sign
+
+
Verify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/advanced/signature_dialog.vue b/src/components/advanced/signature_dialog.vue
new file mode 100644
index 0000000..6237f64
--- /dev/null
+++ b/src/components/advanced/signature_dialog.vue
@@ -0,0 +1,58 @@
+
+
+
+
+ {{ $t("dialog.signature.title") }}
+
+ {{ $t("dialog.signature.message") }}
+
+
+
+ {{ signature }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/css/app.styl b/src/css/app.styl
index c859719..7cc032a 100644
--- a/src/css/app.styl
+++ b/src/css/app.styl
@@ -651,7 +651,7 @@ footer,
}
}
-.service-node-registration, .prove-transaction, .check-transaction {
+.service-node-registration, .prove-transaction, .check-transaction, .sign-and-verify {
.description{
color: #b7b7b7;
font-style: normal;
diff --git a/src/gateway/gateway.js b/src/gateway/gateway.js
index 3c40ec2..10f029f 100644
--- a/src/gateway/gateway.js
+++ b/src/gateway/gateway.js
@@ -237,6 +237,14 @@ export class Gateway extends EventEmitter {
this.app.store.commit("gateway/set_check_transaction_status", data);
break;
}
+ case "set_sign_status": {
+ this.app.store.commit("gateway/set_sign_status", decrypted_data.data);
+ break;
+ }
+ case "set_verify_status": {
+ this.app.store.commit("gateway/set_verify_status", decrypted_data.data);
+ break;
+ }
case "set_old_gui_import_status":
this.app.store.commit(
"gateway/set_old_gui_import_status",
diff --git a/src/i18n/en-us.js b/src/i18n/en-us.js
index 92aadbe..2e8ab4e 100644
--- a/src/i18n/en-us.js
+++ b/src/i18n/en-us.js
@@ -42,10 +42,12 @@ export default {
settings: "SETTINGS",
showQRCode: "SHOW QR CODE",
showTxDetails: "SHOW TX DETAILS",
+ sign: "SIGN",
stake: "STAKE",
sweepAll: "SWEEP ALL",
unlock: "UNLOCK",
update: "UPDATE",
+ verify: "VERIFY",
viewOnExplorer: "VIEW ON EXPLORER"
},
dialog: {
@@ -139,6 +141,11 @@ export default {
message: "Do you want to view your private keys?",
ok: "SHOW"
},
+ signature: {
+ title: "Signature",
+ message:
+ "Copy the data signed by your primary address's private key below"
+ },
stake: {
title: "Stake",
message: "Do you want to stake?",
@@ -202,6 +209,7 @@ export default {
confirmPassword: "CONFIRM PASSWORD",
daemonLogLevel: "DAEMON LOG LEVEL",
daemonP2pPort: "DAEMON P2P PORT",
+ data: "DATA",
dataStoragePath: "DATA STORAGE PATH",
decryptRecord: "DECRYPT RECORD",
filter: "FILTER",
@@ -324,6 +332,7 @@ export default {
serviceNodeInfoFilled: "Service node key and min amount filled",
sessionIdCopied: "Session ID copied to clipboard",
signatureCopied: "Signature copied to clipboard",
+ signatureVerified: "Signature verified",
stakeSuccess: "Successfully staked",
transactionNotesSaved: "Transaction notes saved"
},
@@ -370,6 +379,7 @@ export default {
"Please enter the service node registration command",
invalidServiceNodeKey: "Service node key not valid",
invalidSessionId: "Session ID not valid",
+ invalidSignature: "Invalid signature",
invalidWalletPath: "Invalid wallet path",
keyImages: {
exporting: "Error exporting key images",
@@ -397,6 +407,8 @@ export default {
placeholders: {
additionalNotes: "Additional notes",
addressBookName: "Name that belongs to this address",
+ address: "Public address",
+ dataToSign: "Data you want to sign with your primary address's private key",
filterTx: "Enter an ID, name, address or amount",
hexCharacters: "{count} hexadecimal characters",
lnsName: "The name to purchase via Loki Name Service",
@@ -412,7 +424,9 @@ export default {
recipientWalletAddress: "Recipient's wallet address",
selectAFile: "Please select a file",
sessionId: "The Session ID to link to Loki Name Service",
+ signature: "Signature to verify",
transactionNotes: "Additional notes to locally attach to the transaction",
+ unsignedData: "The data as it should look before it was signed",
walletName: "A name for your wallet",
walletPassword: "An optional password for the wallet"
},
@@ -540,6 +554,8 @@ export default {
stakingRequirement: "Staking requirement",
totalContributed: "Total contributed"
},
+ signAndVerifyDescription:
+ "Sign data with your primary address's private key or verify a signature against a public address.",
spendKey: "Spend key",
startingDaemon: "Starting daemon",
startingWallet: "Starting wallet",
@@ -585,7 +601,8 @@ export default {
addressDetails: "Address details",
advanced: {
checkTransaction: "CHECK TRANSACTION",
- prove: "PROVE"
+ prove: "PROVE",
+ signAndVerify: "SIGN/VERIFY"
},
availableForContribution: "Service nodes available for contribution",
changePassword: "Change password",
diff --git a/src/pages/wallet/advanced.vue b/src/pages/wallet/advanced.vue
index 501c006..fae01c1 100644
--- a/src/pages/wallet/advanced.vue
+++ b/src/pages/wallet/advanced.vue
@@ -10,22 +10,30 @@
{
label: $t('titles.advanced.checkTransaction'),
value: 'check'
+ },
+ {
+ label: $t('titles.advanced.signAndVerify'),
+ value: 'signAndVerify'
}
]"
/>