Skip to content

Commit 1415ae9

Browse files
committed
using checksum address if we can
1 parent 3dc6c1d commit 1415ae9

4 files changed

Lines changed: 15 additions & 9 deletions

File tree

etherspace-java/src/main/java/cc/etherspace/web3j/Web3jAbi.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import org.web3j.abi.datatypes.*
1111
import org.web3j.abi.datatypes.Event
1212
import org.web3j.abi.datatypes.Function
1313
import org.web3j.abi.datatypes.generated.*
14+
import org.web3j.crypto.Keys
1415
import unsigned.*
1516
import java.lang.reflect.Constructor
1617
import java.math.BigInteger
@@ -89,7 +90,7 @@ class Web3jAbi : Web3.Abi {
8990
is unsigned.Uint -> Uint32(value.toBigInt())
9091
is unsigned.Ulong -> Uint64(value.toBigInt())
9192
is SolNumber -> value.toWeb3jValue()
92-
is SolAddress -> Address(value.address)
93+
is SolAddress -> Address(Keys.toChecksumAddress(value.address))
9394
is Byte -> Bytes1(byteArrayOf(value))
9495
is SolBytes -> value.toWeb3jValue()
9596
is ByteArray -> DynamicBytes(value)
@@ -143,7 +144,7 @@ class Web3jAbi : Web3.Abi {
143144
is Uint32 -> value.value.toUint()
144145
is Uint16 -> value.value.toUshort()
145146
is NumericType -> value.toSolValue()
146-
is Address -> SolAddress(value.value)
147+
is Address -> SolAddress(Keys.toChecksumAddress(value.value))
147148
is Bytes1 -> value.value[0]
148149
is Bytes -> value.toSolValue()
149150
is DynamicBytes -> value.value

etherspace-java/src/main/java/cc/etherspace/web3j/Web3jAdapter.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ class Web3jAdapter(val web3j: Web3j) : Web3 {
8484
blockNumber,
8585
transactionHash,
8686
transactionIndex,
87-
from,
88-
to,
89-
contractAddress,
87+
from?.let { Keys.toChecksumAddress(it) },
88+
to?.let { Keys.toChecksumAddress(it) },
89+
contractAddress?.let { Keys.toChecksumAddress(it) },
9090
cumulativeGasUsed,
9191
gasUsed,
9292
logs.map { it.toWeb3Log() },

etherspace-java/src/test/java/cc/etherspace/CredentialsTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,21 @@ package cc.etherspace
22

33
import org.amshove.kluent.`should be equal to`
44
import org.junit.Test
5+
import org.web3j.crypto.Keys
56

67
class CredentialsTest {
78
@Test
89
fun create() {
910
val credentials = Credentials("0xab1e199623aa5bb2c381c349b1734e31b5be08de0486ffab68e3af4853d9980b")
10-
credentials.address.`should be equal to`("0x39759a3c0ada2d61b6ca8eb6afc8243075307ed3")
11+
credentials.address.`should be equal to`(Keys.toChecksumAddress("0x39759a3c0ada2d61b6ca8eb6afc8243075307ed3"))
1112
credentials.privateKey.`should be equal to`("0xab1e199623aa5bb2c381c349b1734e31b5be08de0486ffab68e3af4853d9980b")
1213
}
1314

1415
@Test
1516
fun create_wallet() {
1617
val credentials = Credentials("etherspace",
1718
"{\"address\":\"c1574afd83ad551280f692f448679a2e7633ed5d\",\"id\":\"7f3d1f13-ee1d-4370-b6eb-60c230472802\",\"version\":3,\"crypto\":{\"cipher\":\"aes-128-ctr\",\"ciphertext\":\"594605db2823c918c1e6f1e09bdd0345c70dbb457727b0140488f87335a2d2ad\",\"cipherparams\":{\"iv\":\"c28d25055c656fd5592d12e9ae8c05ef\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"eb1ac7b57f5f7a95aeef253ce179a72241bcab12577cdba6ac92b5f4895a69e0\"},\"mac\":\"95765f8b19be3498d446427f5331916062330d616be7e5f02259eefa816dd224\"}}")
18-
credentials.address.`should be equal to`("0xc1574afd83ad551280f692f448679a2e7633ed5d")
19+
credentials.address.`should be equal to`(Keys.toChecksumAddress("0xc1574afd83ad551280f692f448679a2e7633ed5d"))
1920
credentials.privateKey.`should be equal to`("0x8eb73b6101b5b82cde31cf3818db392dfdca84b1790c91e01c4c34536a288394")
2021
}
2122
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package cc.etherspace
22

3+
import org.web3j.crypto.Keys
4+
35
object Tests {
46
const val TEST_WALLET_KEY = "0xab1e199623aa5bb2c381c349b1734e31b5be08de0486ffab68e3af4853d9980b"
5-
const val TEST_WALLET_ADDRESS = "0x39759a3c0ada2d61b6ca8eb6afc8243075307ed3"
6-
const val TEST_CONTRACT_ADDRESS = "0xa871c507184ecfaf947253e187826c1907e8dc7d"
7+
@JvmField
8+
val TEST_WALLET_ADDRESS = Keys.toChecksumAddress("0x39759a3c0ada2d61b6ca8eb6afc8243075307ed3")!!
9+
@JvmField
10+
val TEST_CONTRACT_ADDRESS = Keys.toChecksumAddress("0xa871c507184ecfaf947253e187826c1907e8dc7d")!!
711
}

0 commit comments

Comments
 (0)