Java Ethereum Wallet mit Web3j erstellen

Web3j ist ein sehr modularer und typsichere Library für Java und Android. Viele Module und Funktionen für das einfache arbeiten mit Smart-Contracts und Wallets auf der Ethereum-Blockchain (ETH), stehen bereit.

Hier nun ein kleines Beispiel, wie mit nur einer Java-Klasse und ein paar Zeilen Code ein eigenes File-Wallet im Json-Format erstellt werden kann. In einem weiteren Beitrag zeige ich dann, wie dieses File-Wallet in MetaMask importiert werden kann.

Folgende Abhängigkeiten sind in der pom.xml einzutragen, Web3j und die „alte“ (alt aber Apache) Json-Lib von Google, obwohl Web3j auch die Jackson Json Lib als transitive Abhängigkeit mitbringt. Es muss ja nicht immer Jackson sein 😉

Die LocalWallet Klasse, braucht für den Aufruf nur ein Passwort.

Die Musik spielt eigentlich nur in der Zeile 71, wo mit createWallet und einem Passwort die Json-Wallet angelegt wird. Hier eine Json Beispiel Wallet, nach dieser Spec. mit Testvektoren.:

Man kann aber auch, mit der eigenen Web3j-Util Funktion leicht, ohne Json die Adresse ermitteln. Dazu kann man den Credentials Wrapper verwenden, der auch noch einige andere Funktionen mitbringt (get ECKeyPair, Elliptic Curve SECP-256k1 generated key pair.) um z.B. den privaten oder public Key zu ermitteln.