From 6fdbad6cd6daef41036205a5610cfb1b4456aacf Mon Sep 17 00:00:00 2001 From: ligi Date: Wed, 2 Jan 2019 01:05:59 +0100 Subject: [PATCH] Add module with support for EIP191 - closes #51 --- eip191/.gitignore | 1 + eip191/build.gradle | 9 +++++++++ .../kotlin/org/kethereum/eip191/EIP191.kt | 19 +++++++++++++++++++ settings.gradle | 3 ++- 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 eip191/.gitignore create mode 100644 eip191/build.gradle create mode 100644 eip191/src/main/kotlin/org/kethereum/eip191/EIP191.kt diff --git a/eip191/.gitignore b/eip191/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/eip191/.gitignore @@ -0,0 +1 @@ +/build diff --git a/eip191/build.gradle b/eip191/build.gradle new file mode 100644 index 00000000..80c35293 --- /dev/null +++ b/eip191/build.gradle @@ -0,0 +1,9 @@ +dependencies { + implementation project(":model") + implementation project(":crypto") + implementation project(":crypto_api") + implementation project(":functions") + implementation project(":rlp") + + testImplementation "com.github.walleth:khex:$khex_version" +} diff --git a/eip191/src/main/kotlin/org/kethereum/eip191/EIP191.kt b/eip191/src/main/kotlin/org/kethereum/eip191/EIP191.kt new file mode 100644 index 00000000..e5b94b8f --- /dev/null +++ b/eip191/src/main/kotlin/org/kethereum/eip191/EIP191.kt @@ -0,0 +1,19 @@ +package org.kethereum.eip191 + +import org.kethereum.crypto.model.ECKeyPair +import org.kethereum.crypto.signMessage + +/* +* +* http://eips.ethereum.org/EIPS/eip-191 +* +*/ + + +fun ECKeyPair.signWithEIP191(version: Byte, versionSpecificData: ByteArray, message: ByteArray) = signMessage(version.toByteArray() + versionSpecificData + message) + + +fun ECKeyPair.signWithEIP191EthereumSignedMessageGrandfathering(message: ByteArray) = + signWithEIP191(19, "EthereumSignedMessage".toByteArray(), message) + +fun Byte.toByteArray() = ByteArray(1) { this } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index d2a8bf75..2422fe14 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,9 +10,10 @@ include ':crypto_api' include ':crypto_api_java_provider' include ':crypto_api_spongycastle' include ':crypto_api_wrapper' -include ':eip155' include ':erc55' include ':erc67' +include ':eip155' +include ':eip191' include ':erc681' include ':erc831' include ':erc961'