/*
* Copyright (c) [2016] [ <ether.camp> ]
* This file is part of the ethereumJ library.
*
* The ethereumJ library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The ethereumJ library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the ethereumJ library. If not, see <http://www.gnu.org/licenses/>.
*/
package org.ethereum.util;
import org.ethereum.crypto.ECKey;
import org.junit.Test;
import org.spongycastle.util.encoders.Hex;
/**
* Created by Anton Nashatyrev on 29.09.2015.
*/
public class RLPDump {
@Test
public void dumpTest() {
System.out.println(Hex.toHexString(new ECKey().getPubKey()));
String hexRlp = "f872f870845609a1ba64c0b8660480136e573eb81ac4a664f8f76e4887ba927f791a053ec5ff580b1037a8633320ca70f8ec0cdea59167acaa1debc07bc0a0b3a5b41bdf0cb4346c18ddbbd2cf222f54fed795dde94417d2e57f85a580d87238efc75394ca4a92cfe6eb9debcc3583c26fee8580";
System.out.println(dump(RLP.decode2(Hex.decode(hexRlp)), 0));
hexRlp = "f8d1f8cf845605846c3cc58479a94c49b8c0800b0b2d39d7c59778edb5166bfd0415c5e02417955ef4ef7f7d8c1dfc7f59a0141d97dd798bde6b972090390758b67457e93c2acb11ed4941d4443f87cedbc09c1b0476ca17f4f04da3d69cfb6470969f73d401ee7692293a00a2ff2d7f3fac87d43d85aed19c9e6ecbfe7e5f8268209477ffda58c7a481eec5c50abd313d10b6554e6e04a04fd93b9bf781d600f4ceb3060002ce1eddbbd51a9a902a970d9b41a9627141c0c52742b1179d83e17f1a273adf0a4a1d0346c68686a51428dd9a01";
System.out.println(dump(RLP.decode2(Hex.decode(hexRlp)), 0));
hexRlp = "dedd84560586f03cc58479a94c498e0c48656c6c6f205768697370657281bc";
System.out.println(dump(RLP.decode2(Hex.decode(hexRlp)), 0));
hexRlp = "dedd84560586f03cc58479a94c498e0c48656c6c6f205768697370657281bc";
System.out.println(dump(RLP.decode2(Hex.decode(hexRlp)), 0));
}
public static String dump(RLPElement el, int indent) {
String ret = "";
if (el instanceof RLPList) {
ret = Utils.repeat(" ", indent) + "[\n";
for (RLPElement element : ((RLPList) el)) {
ret += dump(element, indent + 1);
}
ret += Utils.repeat(" ", indent) + "]\n";
} else {
ret += Utils.repeat(" ", indent) +
(el.getRLPData() == null ? "<null>" : Hex.toHexString(el.getRLPData())) + "\n";
}
return ret;
}
}