@Override public String toString() { return "Wallet{" + "keyPath=" + keyPath + ", keyName=" + keyName + ", address=" + getHexAddress() + ", publicKey=" + Hex.toHexString(publicKey) + '}'; }
public static JsonObject signBranch(Wallet wallet, JsonObject raw) { if (!raw.has("signature")) { raw.addProperty("owner", wallet.getHexAddress()); Sha3Hash hashForSign = new Sha3Hash(raw.toString().getBytes(StandardCharsets.UTF_8)); byte[] signature = wallet.signHashedData(hashForSign.getBytes()); raw.addProperty("signature", Hex.toHexString(signature)); } return raw; } }
@Test public void testBlockKey() throws Exception { Block block2 = block1.clone(); log.debug("block2 pubKey=" + block2.getPubKeyHexString()); assertThat(block1.getPubKeyHexString()).isEqualTo(block2.getPubKeyHexString()); assertThat(block1.getPubKey()).isEqualTo(block2.getPubKey()); assertThat(block1.getPubKey()).isEqualTo(wallet.getPubicKey()); log.debug("block1 author address=" + block1.getAddressHexString()); log.debug("block2 author address=" + block2.getAddressHexString()); log.debug("wallet address=" + wallet.getHexAddress()); assertThat(block1.getAddressHexString()).isEqualTo(block2.getAddressHexString()); assertThat(block1.getAddressHexString()).isEqualTo(wallet.getHexAddress()); assertThat(block1.verify()).isTrue(); assertThat(block2.verify()).isTrue(); } }
@Test public void defaultTest() { String name = "STEM"; String symbol = "STEM"; String property = "ecosystem"; String description = "The Basis of the YGGDRASH Ecosystem. " + "It is also an aggregate and a blockchain containing information " + "of all Branch Chains."; String contractId = "d399cd6d34288d04ba9e68ddfda9f5fe99dd778e"; String timestamp = "00000166c837f0c9"; JsonObject genesis = new JsonObject(); JsonObject json = ContractTestUtils.createBranchJson(name, symbol, property, description, contractId, timestamp, genesis); Branch branch = Branch.of(json); assertThat(branch.getName()).isEqualTo(name); assertThat(branch.getSymbol()).isEqualTo(symbol); assertThat(branch.getProperty()).isEqualTo(property); assertThat(branch.getDescription()).isEqualTo(description); assertThat(branch.getContractId().toString()).isEqualTo(contractId); assertThat(branch.getTimestamp()) .isEqualTo(HexUtil.hexStringToLong(timestamp)); assertThat(branch.getOwner().toString()).isEqualTo(TestConstants.wallet().getHexAddress()); assertThat(branch.verify()).isTrue(); }
@Test public void testTransactionKey() throws Exception { Transaction tx2 = tx1.clone(); log.debug("tx2 pubKey=" + tx2.getPubKeyHexString()); log.debug("tx2 headerHash=" + Hex.toHexString(tx2.getHeader().getHashForSigning())); log.debug("tx2 pubKey=" + Hex.toHexString(tx2.getPubKey())); assertEquals(tx1.getPubKeyHexString(), tx2.getPubKeyHexString()); assertArrayEquals(tx1.getPubKey(), tx2.getPubKey()); assertArrayEquals(tx1.getPubKey(), wallet.getPubicKey()); log.debug("tx1 address=" + tx1.getAddressToString()); log.debug("tx2 address=" + tx2.getAddressToString()); log.debug("wallet address=" + wallet.getHexAddress()); log.debug("wallet signature=" + Hex.toHexString( wallet.signHashedData(tx1.getHeader().getHashForSigning()))); log.debug("wallet pubKey=" + Hex.toHexString( wallet.getPubicKey())); assertArrayEquals(tx1.getAddress(), tx2.getAddress()); assertArrayEquals(tx1.getAddress(), wallet.getAddress()); }
@Test public void testTransactionToProto() throws Exception { Transaction tx2 = tx1.clone(); log.debug("tx2 pubKey=" + tx2.getPubKeyHexString()); assertEquals(tx1.getPubKeyHexString(), tx2.getPubKeyHexString()); assertArrayEquals(tx1.getPubKey(), tx2.getPubKey()); assertArrayEquals(tx1.getPubKey(), wallet.getPubicKey()); log.debug("tx1 address=" + tx1.getAddressToString()); log.debug("tx2 address=" + tx2.getAddressToString()); log.debug("wallet address=" + wallet.getHexAddress()); assertArrayEquals(tx1.getAddress(), tx2.getAddress()); assertArrayEquals(tx1.getAddress(), wallet.getAddress()); Proto.Transaction protoTx1 = Transaction.toProtoTransaction(tx1); Proto.Transaction protoTx2 = Transaction.toProtoTransaction(tx2); log.debug("tx1 proto=" + Hex.toHexString(protoTx1.toByteArray())); log.debug("tx2 proto=" + Hex.toHexString(protoTx2.toByteArray())); assertArrayEquals(protoTx1.toByteArray(), protoTx2.toByteArray()); Transaction tx3 = Transaction.toTransaction(protoTx1); log.debug("tx1=" + tx1.toString()); log.debug("tx3=" + tx3.toString()); assertEquals(tx1.toString(), tx3.toString()); Proto.Transaction protoTx3 = Transaction.toProtoTransaction(tx1); assertArrayEquals(protoTx1.toByteArray(), protoTx3.toByteArray()); }