From 9127c01890d204319facf0def2b717d468e3fa81 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Tue, 20 Jan 2015 11:53:27 +0100 Subject: [PATCH] Polish formatting The sources affected by this commit have drifted in style since earlier polishing commits such as f34d1f4 and a155518. The shared IDEA style configuration file can help avoid this drift in the future. Simply run Code->Reformat Code at the project level prior to committing. Note that this code style configuration is not perfect, and not every change it makes should be checked in. The ideal is to simply always write code that conforms to the style conventions, but the automated settings are there as a helping hand when necessary. The churn caused by drifting style and the commits that fix it damage the utility of git over time. Reviewing changes, analyzing history, surgically reverting commits, and many other use cases with git simply do not work as well when styles get mixed and fixed. Let's work toward a common style. --- ethereumj-core/build.gradle | 14 +- .../org/ethereum/config/SystemProperties.java | 2 +- .../ethereum/core/TransactionExecutor.java | 2 +- .../datasource/KeyValueDataSource.java | 7 +- .../datasource/LevelDbDataSource.java | 6 +- .../ethereum/datasource/RedisDataSource.java | 4 +- .../java/org/ethereum/db/BlockStoreDummy.java | 2 +- .../java/org/ethereum/db/BlockStoreImpl.java | 2 +- .../java/org/ethereum/db/DatabaseImpl.java | 8 +- .../org/ethereum/facade/EthereumImpl.java | 8 +- .../java/org/ethereum/json/JSONHelper.java | 4 +- .../ethereum/jsontestsuite/AccountState.java | 2 +- .../java/org/ethereum/jsontestsuite/Logs.java | 2 +- .../org/ethereum/jsontestsuite/TestCase.java | 2 +- .../TestProgramInvokeFactory.java | 2 +- .../ethereum/jsontestsuite/TestRunner.java | 10 +- .../java/org/ethereum/net/BlockQueue.java | 2 +- .../ethereum/net/eth/GetBlocksMessage.java | 2 +- .../org/ethereum/net/p2p/HelloMessage.java | 2 +- .../java/org/ethereum/net/p2p/P2pHandler.java | 2 +- .../java/org/ethereum/net/server/Channel.java | 2 +- .../ethereum/net/server/ChannelManager.java | 8 +- .../main/java/org/ethereum/util/ByteUtil.java | 2 +- .../org/ethereum/vm/PrecompiledContracts.java | 27 ++-- .../main/java/org/ethereum/vm/Program.java | 28 ++-- .../org/ethereum/vm/ProgramInvokeImpl.java | 6 +- .../src/main/java/org/ethereum/vm/VM.java | 4 +- .../test/ethereum/core/TransactionTest.java | 16 +-- .../datasource/RedisDataSourceTest.java | 6 +- .../jsontestsuite/GitHubStateTest.java | 2 +- .../ethereum/net/NewBlockMessageTest.java | 2 +- .../ethereum/net/TransactionsMessageTest.java | 38 ++--- .../ethereum/serpent/MachineCompileTest.java | 8 +- .../ethereum/serpent/SerpentCompileTest.java | 136 +++++++++--------- .../java/test/ethereum/trie/TrieTest.java | 4 +- .../test/java/test/ethereum/util/RLPTest.java | 30 ++-- .../java/test/ethereum/util/RlpTestData.java | 2 +- .../java/test/ethereum/vm/DataWordTest.java | 2 +- .../ethereum/vm/PrecompiledContractTest.java | 23 ++- .../org/ethereum/gui/AccountsListWindow.java | 2 +- .../org/ethereum/gui/ConsoleTokenMaker.java | 2 +- .../org/ethereum/gui/SerpentTokenMaker.java | 14 +- 42 files changed, 227 insertions(+), 222 deletions(-) diff --git a/ethereumj-core/build.gradle b/ethereumj-core/build.gradle index 22ab6fc4..ed8c76b7 100644 --- a/ethereumj-core/build.gradle +++ b/ethereumj-core/build.gradle @@ -30,8 +30,8 @@ ext.generatedSrcDir = file('src/gen/java') sourceSets.main.java.srcDirs += generatedSrcDir antlr4 { - extraArgs = ['-package', 'org.ethereum.serpent'] - output = file("${generatedSrcDir}/org/ethereum/serpent") + extraArgs = ['-package', 'org.ethereum.serpent'] + output = file("${generatedSrcDir}/org/ethereum/serpent") } compileJava.dependsOn antlr4 @@ -42,7 +42,7 @@ test { } configurations { - compile.extendsFrom antlr4 + compile.extendsFrom antlr4 } ext { @@ -79,7 +79,7 @@ dependencies { compile "redis.clients:jedis:2.6.0" compile("com.googlecode.json-simple:json-simple:1.1.1") { - exclude group:'junit', module:'junit' + exclude group: 'junit', module: 'junit' } optional "commons-logging:commons-logging:1.0" optional "org.slf4j:jcl-over-slf4j:${slf4jVersion}" @@ -95,8 +95,8 @@ javadoc { options.addStringOption('Xdoclint:all,-missing', '-quiet') options.encoding = "UTF-8" options.links( - "http://docs.oracle.com/javase/8/docs/api/", - "http://netty.io/4.0/api/" + "http://docs.oracle.com/javase/8/docs/api/", + "http://netty.io/4.0/api/" ) } @@ -130,7 +130,7 @@ artifactory { contextUrl = 'http://oss.jfrog.org/artifactory' publish { repository { - repoKey = 'oss-snapshot-local' + repoKey = 'oss-snapshot-local' username = bintrayUsername password = bintrayPassword } diff --git a/ethereumj-core/src/main/java/org/ethereum/config/SystemProperties.java b/ethereumj-core/src/main/java/org/ethereum/config/SystemProperties.java index 3de8d780..4f94390a 100644 --- a/ethereumj-core/src/main/java/org/ethereum/config/SystemProperties.java +++ b/ethereumj-core/src/main/java/org/ethereum/config/SystemProperties.java @@ -274,7 +274,7 @@ public class SystemProperties { } - public String getKeyValueDataSource(){ + public String getKeyValueDataSource() { if (prop.isEmpty()) return DEFAULT_KEY_VALUE_DATA_SOURCE; return prop.getProperty("keyvalue.datasource"); } diff --git a/ethereumj-core/src/main/java/org/ethereum/core/TransactionExecutor.java b/ethereumj-core/src/main/java/org/ethereum/core/TransactionExecutor.java index 888ab828..8afa81a4 100644 --- a/ethereumj-core/src/main/java/org/ethereum/core/TransactionExecutor.java +++ b/ethereumj-core/src/main/java/org/ethereum/core/TransactionExecutor.java @@ -44,7 +44,7 @@ public class TransactionExecutor { private Block currentBlock; - public TransactionExecutor(Transaction tx, byte[] coinbase, Repository track,BlockStore blockStore, + public TransactionExecutor(Transaction tx, byte[] coinbase, Repository track, BlockStore blockStore, ProgramInvokeFactory programInvokeFactory, Block currentBlock) { this.tx = tx; diff --git a/ethereumj-core/src/main/java/org/ethereum/datasource/KeyValueDataSource.java b/ethereumj-core/src/main/java/org/ethereum/datasource/KeyValueDataSource.java index d4c1be2f..ad05fc27 100644 --- a/ethereumj-core/src/main/java/org/ethereum/datasource/KeyValueDataSource.java +++ b/ethereumj-core/src/main/java/org/ethereum/datasource/KeyValueDataSource.java @@ -10,13 +10,18 @@ import java.util.Set; public interface KeyValueDataSource { public void init(); + public void setName(String name); public byte[] get(byte[] key); + public void put(byte[] key, byte[] value); + public void delete(byte[] key); + public Set keys(); - public void updateBatch( Map rows); + + public void updateBatch(Map rows); public void close(); } diff --git a/ethereumj-core/src/main/java/org/ethereum/datasource/LevelDbDataSource.java b/ethereumj-core/src/main/java/org/ethereum/datasource/LevelDbDataSource.java index f030a385..2dbc249d 100644 --- a/ethereumj-core/src/main/java/org/ethereum/datasource/LevelDbDataSource.java +++ b/ethereumj-core/src/main/java/org/ethereum/datasource/LevelDbDataSource.java @@ -24,7 +24,7 @@ import static org.iq80.leveldb.impl.Iq80DBFactory.factory; * @author Roman Mandeleil * @since 18.01.2015 */ -public class LevelDbDataSource implements KeyValueDataSource{ +public class LevelDbDataSource implements KeyValueDataSource { private static final Logger logger = LoggerFactory.getLogger("db"); @@ -95,7 +95,7 @@ public class LevelDbDataSource implements KeyValueDataSource{ DBIterator dbIterator = db.iterator(); Set keys = new HashSet<>(); - while (dbIterator.hasNext()){ + while (dbIterator.hasNext()) { Map.Entry entry = dbIterator.next(); keys.add(entry.getKey()); @@ -109,7 +109,7 @@ public class LevelDbDataSource implements KeyValueDataSource{ WriteBatch batch = db.createWriteBatch(); for (Map.Entry row : rows.entrySet()) - batch.put(row.getKey(), row.getValue()); + batch.put(row.getKey(), row.getValue()); db.write(batch); } diff --git a/ethereumj-core/src/main/java/org/ethereum/datasource/RedisDataSource.java b/ethereumj-core/src/main/java/org/ethereum/datasource/RedisDataSource.java index df1c495b..0df21d44 100644 --- a/ethereumj-core/src/main/java/org/ethereum/datasource/RedisDataSource.java +++ b/ethereumj-core/src/main/java/org/ethereum/datasource/RedisDataSource.java @@ -15,7 +15,7 @@ import redis.clients.jedis.Pipeline; * @author Roman Mandeleil * @since 18.01.2015 */ -public class RedisDataSource implements KeyValueDataSource{ +public class RedisDataSource implements KeyValueDataSource { String name; int index; @@ -68,7 +68,7 @@ public class RedisDataSource implements KeyValueDataSource{ Pipeline pipeline = jedis.pipelined(); Iterator> iterator = rows.entrySet().iterator(); - while(iterator.hasNext()){ + while (iterator.hasNext()) { Map.Entry row = iterator.next(); byte[] key = row.getKey(); diff --git a/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreDummy.java b/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreDummy.java index 9d137b64..8acae820 100644 --- a/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreDummy.java +++ b/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreDummy.java @@ -12,7 +12,7 @@ import java.util.List; * @author Roman Mandeleil * @since 08.01.2015 */ -public class BlockStoreDummy implements BlockStore{ +public class BlockStoreDummy implements BlockStore { @Override public byte[] getBlockHashByNumber(long blockNumber) { diff --git a/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreImpl.java b/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreImpl.java index 692c3a27..f4fefb9e 100644 --- a/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreImpl.java +++ b/ethereumj-core/src/main/java/org/ethereum/db/BlockStoreImpl.java @@ -23,7 +23,7 @@ import java.util.List; */ @Repository("blockStore") @Transactional(propagation = Propagation.SUPPORTS) -public class BlockStoreImpl implements BlockStore{ +public class BlockStoreImpl implements BlockStore { @Autowired private SessionFactory sessionFactory; diff --git a/ethereumj-core/src/main/java/org/ethereum/db/DatabaseImpl.java b/ethereumj-core/src/main/java/org/ethereum/db/DatabaseImpl.java index fe0933be..15c86c8c 100644 --- a/ethereumj-core/src/main/java/org/ethereum/db/DatabaseImpl.java +++ b/ethereumj-core/src/main/java/org/ethereum/db/DatabaseImpl.java @@ -32,15 +32,15 @@ public class DatabaseImpl implements Database { public DatabaseImpl(String name) { - if (CONFIG.getKeyValueDataSource().equals("redis") ){ - dataSource = new RedisDataSource(); + if (CONFIG.getKeyValueDataSource().equals("redis")) { + dataSource = new RedisDataSource(); dataSource.setName(name); dataSource.init(); return; } - if (CONFIG.getKeyValueDataSource().equals("leveldb") ){ - dataSource = new LevelDbDataSource(); + if (CONFIG.getKeyValueDataSource().equals("leveldb")) { + dataSource = new LevelDbDataSource(); dataSource.setName(name); dataSource.init(); return; diff --git a/ethereumj-core/src/main/java/org/ethereum/facade/EthereumImpl.java b/ethereumj-core/src/main/java/org/ethereum/facade/EthereumImpl.java index 730b0411..b8a16174 100644 --- a/ethereumj-core/src/main/java/org/ethereum/facade/EthereumImpl.java +++ b/ethereumj-core/src/main/java/org/ethereum/facade/EthereumImpl.java @@ -65,9 +65,11 @@ public class EthereumImpl implements Ethereum { worldManager.loadBlockchain(); if (CONFIG.listenPort() > 0) { Executors.newSingleThreadExecutor().submit( - new Runnable() { public void run() { - peerServer.start(CONFIG.listenPort()); - }} + new Runnable() { + public void run() { + peerServer.start(CONFIG.listenPort()); + } + } ); } } diff --git a/ethereumj-core/src/main/java/org/ethereum/json/JSONHelper.java b/ethereumj-core/src/main/java/org/ethereum/json/JSONHelper.java index 4d308527..de652a49 100644 --- a/ethereumj-core/src/main/java/org/ethereum/json/JSONHelper.java +++ b/ethereumj-core/src/main/java/org/ethereum/json/JSONHelper.java @@ -68,8 +68,8 @@ public class JSONHelper { } public static void dumpBlock(ObjectNode blockNode, Block block, - long gasUsed, byte[] state, List keys, - Repository repository) { + long gasUsed, byte[] state, List keys, + Repository repository) { blockNode.put("coinbase", Hex.toHexString(block.getCoinbase())); blockNode.put("difficulty", new BigInteger(1, block.calcDifficulty()).toString()); diff --git a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/AccountState.java b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/AccountState.java index 6ee65abb..590d1baf 100644 --- a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/AccountState.java +++ b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/AccountState.java @@ -113,7 +113,7 @@ public class AccountState { results.add(formattedString); } - if (!Arrays.equals(details.getCode(),this.getCode())) { + if (!Arrays.equals(details.getCode(), this.getCode())) { String formattedString = String.format("Account: %s: has unexpected nonce, expected nonce: %s found nonce: %s", Hex.toHexString(this.address), Hex.toHexString(this.getCode()), Hex.toHexString(details.getCode())); results.add(formattedString); diff --git a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/Logs.java b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/Logs.java index a47819d1..d7c8c036 100644 --- a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/Logs.java +++ b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/Logs.java @@ -74,7 +74,7 @@ public class Logs { String postBloom = Hex.toHexString(postLog.getBloom().getData()); String realBloom = Hex.toHexString(realLog.getBloom().getData()); - if (!postData.equals(realData)){ + if (!postData.equals(realData)) { String formattedString = String.format("Log: %s: has unexpected bloom, expected bloom: %s found bloom: %s", i, postBloom, realBloom); diff --git a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestCase.java b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestCase.java index 030b44f9..4a65f8cb 100644 --- a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestCase.java +++ b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestCase.java @@ -63,7 +63,7 @@ public class TestCase { JSONObject preJSON = (JSONObject) testCaseJSONObj.get("pre"); JSONObject postJSON = new JSONObject(); if (testCaseJSONObj.containsKey("post")) // in cases where there is no post dictionary (when testing for - // exceptions for example) + // exceptions for example) postJSON = (JSONObject) testCaseJSONObj.get("post"); JSONArray callCreates = new JSONArray(); if (testCaseJSONObj.containsKey("callcreates")) diff --git a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestProgramInvokeFactory.java b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestProgramInvokeFactory.java index 4214b378..3967d8da 100644 --- a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestProgramInvokeFactory.java +++ b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestProgramInvokeFactory.java @@ -39,7 +39,7 @@ public class TestProgramInvokeFactory implements ProgramInvokeFactory { } - private ProgramInvoke generalInvoke(Transaction tx, Repository repository ,BlockStore blockStore) { + private ProgramInvoke generalInvoke(Transaction tx, Repository repository, BlockStore blockStore) { /*** ADDRESS op ***/ // YP: Get address of currently executing account. diff --git a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestRunner.java b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestRunner.java index 7d8ae81d..88eb536c 100644 --- a/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestRunner.java +++ b/ethereumj-core/src/main/java/org/ethereum/jsontestsuite/TestRunner.java @@ -61,7 +61,7 @@ public class TestRunner { public List runTestCase(StateTestCase testCase) { - List results = new ArrayList<>();; + List results = new ArrayList<>(); logger.info("\n***"); logger.info(" Running test case: [" + testCase.getName() + "]"); logger.info("***\n"); @@ -89,7 +89,7 @@ public class TestRunner { Repository track = repository.startTracking(); TransactionExecutor executor = - new TransactionExecutor(tx, coinbase, track, new BlockStoreDummy(), + new TransactionExecutor(tx, coinbase, track, new BlockStoreDummy(), invokeFactory, blockchain.getBestBlock()); executor.execute(); track.commit(); @@ -240,9 +240,9 @@ public class TestRunner { continue; } - long actualNonce = repository.getNonce(key.getData()).longValue(); + long actualNonce = repository.getNonce(key.getData()).longValue(); BigInteger actualBalance = repository.getBalance(key.getData()); - byte[] actualCode = repository.getCode(key.getData()); + byte[] actualCode = repository.getCode(key.getData()); if (actualCode == null) actualCode = "".getBytes(); if (expectedNonce != actualNonce) { @@ -487,7 +487,7 @@ public class TestRunner { String output = String.format("Gas remaining is different. Expected gas remaining: [ %s ], actual gas remaining: [ %s ]", - expectedGas.toString() , + expectedGas.toString(), actualGas.toString()); logger.info(output); results.add(output); diff --git a/ethereumj-core/src/main/java/org/ethereum/net/BlockQueue.java b/ethereumj-core/src/main/java/org/ethereum/net/BlockQueue.java index 1a0050ab..cb5034bc 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/BlockQueue.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/BlockQueue.java @@ -82,7 +82,7 @@ public class BlockQueue { return; logger.info("BlockQueue size: {}", blockReceivedQueue.size()); - while(!blockReceivedQueue.isEmpty()){ + while (!blockReceivedQueue.isEmpty()) { Block block = blockReceivedQueue.poll(); logger.info("Processing block index: {}", block.getNumber()); diff --git a/ethereumj-core/src/main/java/org/ethereum/net/eth/GetBlocksMessage.java b/ethereumj-core/src/main/java/org/ethereum/net/eth/GetBlocksMessage.java index 859f8382..5c706f12 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/eth/GetBlocksMessage.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/eth/GetBlocksMessage.java @@ -73,6 +73,6 @@ public class GetBlocksMessage extends EthMessage { public String toString() { final String hashListShort = Utils.getHashListShort(getBlockHashes()); - return "[" + this.getCommand().name() + hashListShort+ "] (" + blockHashes.size() + ")"; + return "[" + this.getCommand().name() + hashListShort + "] (" + blockHashes.size() + ")"; } } diff --git a/ethereumj-core/src/main/java/org/ethereum/net/p2p/HelloMessage.java b/ethereumj-core/src/main/java/org/ethereum/net/p2p/HelloMessage.java index 347950e3..53c892e5 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/p2p/HelloMessage.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/p2p/HelloMessage.java @@ -50,7 +50,7 @@ public class HelloMessage extends P2pMessage { } public HelloMessage(byte p2pVersion, String clientId, - List capabilities, int listenPort, String peerId) { + List capabilities, int listenPort, String peerId) { this.p2pVersion = p2pVersion; this.clientId = clientId; this.capabilities = capabilities; diff --git a/ethereumj-core/src/main/java/org/ethereum/net/p2p/P2pHandler.java b/ethereumj-core/src/main/java/org/ethereum/net/p2p/P2pHandler.java index 2d24b5a3..68080252 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/p2p/P2pHandler.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/p2p/P2pHandler.java @@ -264,7 +264,7 @@ public class P2pHandler extends SimpleChannelInboundHandler { msgQueue.sendMessage(msg); } - public void sendDisconnect(){ + public void sendDisconnect() { msgQueue.disconnect(); } diff --git a/ethereumj-core/src/main/java/org/ethereum/net/server/Channel.java b/ethereumj-core/src/main/java/org/ethereum/net/server/Channel.java index 8f66a642..15169f57 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/server/Channel.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/server/Channel.java @@ -95,7 +95,7 @@ public class Channel { } - public HelloMessage getHandshakeHelloMessage(){ + public HelloMessage getHandshakeHelloMessage() { return getP2pHandler().getHandshakeHelloMessage(); } diff --git a/ethereumj-core/src/main/java/org/ethereum/net/server/ChannelManager.java b/ethereumj-core/src/main/java/org/ethereum/net/server/ChannelManager.java index e6c4c8be..a28f9718 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/server/ChannelManager.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/server/ChannelManager.java @@ -49,12 +49,12 @@ public class ChannelManager { } - public Channel getChannel(String peerId){ + public Channel getChannel(String peerId) { - for (Channel channel : channels){ + for (Channel channel : channels) { String tablePeerId = channel.getP2pHandler().getHandshakeHelloMessage().getPeerId(); if (tablePeerId != null && - peerId.equals(tablePeerId)){ + peerId.equals(tablePeerId)) { return channel; } } @@ -120,7 +120,7 @@ public class ChannelManager { }, 2000, 5000); } - public void reconnect(){ + public void reconnect() { for (Channel channel : channels) channel.p2pHandler.sendDisconnect(); } diff --git a/ethereumj-core/src/main/java/org/ethereum/util/ByteUtil.java b/ethereumj-core/src/main/java/org/ethereum/util/ByteUtil.java index e77394af..9650044b 100644 --- a/ethereumj-core/src/main/java/org/ethereum/util/ByteUtil.java +++ b/ethereumj-core/src/main/java/org/ethereum/util/ByteUtil.java @@ -213,7 +213,7 @@ public class ByteUtil { // check if the string is numeric if (arg.toString().trim().matches("-?\\d+(\\.\\d+)?")) data = new BigInteger(arg.toString().trim()).toByteArray(); - // check if it's hex number + // check if it's hex number else if (arg.toString().trim().matches("0[xX][0-9a-fA-F]+")) data = new BigInteger(arg.toString().trim().substring(2), 16).toByteArray(); else diff --git a/ethereumj-core/src/main/java/org/ethereum/vm/PrecompiledContracts.java b/ethereumj-core/src/main/java/org/ethereum/vm/PrecompiledContracts.java index 7cd8728f..7e543d72 100644 --- a/ethereumj-core/src/main/java/org/ethereum/vm/PrecompiledContracts.java +++ b/ethereumj-core/src/main/java/org/ethereum/vm/PrecompiledContracts.java @@ -10,13 +10,13 @@ import org.ethereum.util.ByteUtil; */ public class PrecompiledContracts { - private static ECRecover ecRecover = new ECRecover(); - private static Sha256 sha256 = new Sha256(); + private static ECRecover ecRecover = new ECRecover(); + private static Sha256 sha256 = new Sha256(); private static Ripempd160 ripempd160 = new Ripempd160(); - private static Identity identity = new Identity(); + private static Identity identity = new Identity(); - public static PrecompiledContract getContractForAddress(DataWord address){ + public static PrecompiledContract getContractForAddress(DataWord address) { if (address == null) return identity; if (address.isHex("0000000000000000000000000000000000000000000000000000000000000001")) return ecRecover; @@ -28,12 +28,13 @@ public class PrecompiledContracts { } - public static abstract class PrecompiledContract{ + public static abstract class PrecompiledContract { public abstract long getGasForData(byte[] data); + public abstract byte[] execute(byte[] data); } - public static class Identity extends PrecompiledContract{ + public static class Identity extends PrecompiledContract { public Identity() { } @@ -53,7 +54,7 @@ public class PrecompiledContracts { } } - public static class Sha256 extends PrecompiledContract{ + public static class Sha256 extends PrecompiledContract { @Override @@ -74,7 +75,7 @@ public class PrecompiledContracts { } - public static class Ripempd160 extends PrecompiledContract{ + public static class Ripempd160 extends PrecompiledContract { @Override @@ -98,7 +99,7 @@ public class PrecompiledContracts { } - public static class ECRecover extends PrecompiledContract{ + public static class ECRecover extends PrecompiledContract { @Override public long getGasForData(byte[] data) { @@ -115,8 +116,8 @@ public class PrecompiledContracts { DataWord out = null; - try{ - System.arraycopy(data, 0, h, 0, 32); + try { + System.arraycopy(data, 0, h, 0, 32); System.arraycopy(data, 32, v, 0, 32); System.arraycopy(data, 64, r, 0, 32); System.arraycopy(data, 96, s, 0, 32); @@ -126,7 +127,8 @@ public class PrecompiledContracts { ECKey key = ECKey.signatureToKey(h, signature.toBase64()); out = new DataWord(key.getAddress()); - } catch (Throwable any){} + } catch (Throwable any) { + } if (out == null) out = new DataWord(0); @@ -135,5 +137,4 @@ public class PrecompiledContracts { } - } diff --git a/ethereumj-core/src/main/java/org/ethereum/vm/Program.java b/ethereumj-core/src/main/java/org/ethereum/vm/Program.java index 64d6eaac..1b23a284 100644 --- a/ethereumj-core/src/main/java/org/ethereum/vm/Program.java +++ b/ethereumj-core/src/main/java/org/ethereum/vm/Program.java @@ -221,10 +221,10 @@ public class Program { memorySave(addr, value.length, value); } - public void memoryExpand(DataWord outDataOffs, DataWord outDataSize){ + public void memoryExpand(DataWord outDataOffs, DataWord outDataSize) { int maxAddress = outDataOffs.intValue() + outDataSize.intValue(); - if (getMemSize() < maxAddress){ + if (getMemSize() < maxAddress) { memorySave(maxAddress, new byte[]{0}); } } @@ -317,7 +317,7 @@ public class Program { public void createContract(DataWord value, DataWord memStart, DataWord memSize) { - if (invokeData.getCallDeep() == MAX_DEPTH){ + if (invokeData.getCallDeep() == MAX_DEPTH) { stackPushZero(); return; } @@ -378,7 +378,7 @@ public class Program { } if (result != null && - result.getException() != null) { + result.getException() != null) { logger.debug("contract run halted by Exception: contract: [{}], exception: [{}]", Hex.toHexString(newAddress), result.getException()); @@ -430,7 +430,7 @@ public class Program { */ public void callToAddress(MessageCall msg) { - if (invokeData.getCallDeep() == MAX_DEPTH){ + if (invokeData.getCallDeep() == MAX_DEPTH) { stackPushZero(); return; } @@ -590,8 +590,8 @@ public class Program { public DataWord getBlockHash(int index) { - return index < this.getNumber().longValue() && index >= Math.max(256, this.getNumber().intValue()) - 256? - new DataWord(this.invokeData.getBlockStore().getBlockHashByNumber(index)): + return index < this.getNumber().longValue() && index >= Math.max(256, this.getNumber().intValue()) - 256 ? + new DataWord(this.invokeData.getBlockStore().getBlockHashByNumber(index)) : DataWord.ZERO; } @@ -861,15 +861,15 @@ public class Program { return programTrace; } - public void precompile(){ - for (int i = 0; i < ops.length; ++i){ + public void precompile() { + for (int i = 0; i < ops.length; ++i) { OpCode op = OpCode.code(ops[i]); if (op == null) continue; if (op.equals(OpCode.JUMPDEST)) jumpdest.add(i); - if (op.asInt() >= OpCode.PUSH1.asInt() && op.asInt() <= OpCode.PUSH32.asInt()){ + if (op.asInt() >= OpCode.PUSH1.asInt() && op.asInt() <= OpCode.PUSH32.asInt()) { i += op.asInt() - OpCode.PUSH1.asInt() + 1; } } @@ -915,13 +915,13 @@ public class Program { public void callToPrecompiledAddress(MessageCall msg, PrecompiledContract contract) { - byte[] data = this.memoryChunk( msg.getInDataOffs(), msg.getInDataSize()).array(); + byte[] data = this.memoryChunk(msg.getInDataOffs(), msg.getInDataSize()).array(); this.result.getRepository().addBalance(this.getOwnerAddress().getLast20Bytes(), msg.getEndowment().value().negate()); this.result.getRepository().addBalance(msg.getCodeAddress().getLast20Bytes(), msg.getEndowment().value()); - long requiredGas = contract.getGasForData(data); - if (requiredGas > msg.getGas().longValue()){ + long requiredGas = contract.getGasForData(data); + if (requiredGas > msg.getGas().longValue()) { this.spendGas(msg.getGas().longValue(), "call pre-compiled"); this.stackPushZero(); @@ -930,7 +930,7 @@ public class Program { this.spendGas(requiredGas, "call pre-compiled"); byte[] out = contract.execute(data); - this.memorySave( msg.getOutDataOffs().intValue(), out); + this.memorySave(msg.getOutDataOffs().intValue(), out); this.stackPushOne(); } } diff --git a/ethereumj-core/src/main/java/org/ethereum/vm/ProgramInvokeImpl.java b/ethereumj-core/src/main/java/org/ethereum/vm/ProgramInvokeImpl.java index 97f12ba9..00b19798 100644 --- a/ethereumj-core/src/main/java/org/ethereum/vm/ProgramInvokeImpl.java +++ b/ethereumj-core/src/main/java/org/ethereum/vm/ProgramInvokeImpl.java @@ -71,7 +71,7 @@ public class ProgramInvokeImpl implements ProgramInvoke { byte[] gasPrice, byte[] gas, byte[] callValue, byte[] msgData, byte[] lastHash, byte[] coinbase, long timestamp, long number, byte[] difficulty, long gaslimit, - Repository repository, BlockStore blockStore,boolean byTestingSuite) { + Repository repository, BlockStore blockStore, boolean byTestingSuite) { this(address, origin, caller, balance, gasPrice, gas, callValue, msgData, lastHash, coinbase, timestamp, number, difficulty, gaslimit, repository, blockStore); this.byTestingSuite = byTestingSuite; @@ -141,8 +141,8 @@ public class ProgramInvokeImpl implements ProgramInvoke { return callValue; } - /*****************/ - /*** msg data ***/ + /*****************/ + /*** msg data ***/ /*****************/ /* NOTE: In the protocol there is no restriction on the maximum message data, * However msgData here is a byte[] and this can't hold more than 2^32-1 diff --git a/ethereumj-core/src/main/java/org/ethereum/vm/VM.java b/ethereumj-core/src/main/java/org/ethereum/vm/VM.java index c11470a6..e4763285 100644 --- a/ethereumj-core/src/main/java/org/ethereum/vm/VM.java +++ b/ethereumj-core/src/main/java/org/ethereum/vm/VM.java @@ -164,8 +164,8 @@ public class VM { throw program.new OutOfGasException(); } callGas = callGasWord.longValue(); - BigInteger in = memNeeded(stack.get(stack.size()-4), stack.get(stack.size()-5)); // in offset+size - BigInteger out = memNeeded(stack.get(stack.size()-6), stack.get(stack.size()-7)); // out offset+size + BigInteger in = memNeeded(stack.get(stack.size() - 4), stack.get(stack.size() - 5)); // in offset+size + BigInteger out = memNeeded(stack.get(stack.size() - 6), stack.get(stack.size() - 7)); // out offset+size newMemSize = in.max(out); break; case CREATE: diff --git a/ethereumj-core/src/test/java/test/ethereum/core/TransactionTest.java b/ethereumj-core/src/test/java/test/ethereum/core/TransactionTest.java index 30560c30..f8af3d62 100644 --- a/ethereumj-core/src/test/java/test/ethereum/core/TransactionTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/core/TransactionTest.java @@ -141,8 +141,8 @@ public class TransactionTest { String RLP_ENCODED_SIGNED_TX = "f86b8085e8d4a510008227109413978aee95f38490e9769c39b2773ed763d9cd5f872386f26fc10000801ba0eab47c1a49bf2fe5d40e01d313900e19ca485867d462fe06e139e3a536c6d4f4a014a569d327dcda4b29f74f93c0e9729d2f49ad726e703f9cd90dbb0fbf6649f1"; String KEY = "c85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4"; byte[] testNonce = Hex.decode(""); - byte[] testGasPrice = BigIntegers.asUnsignedByteArray(BigInteger.valueOf(1000000000000L));; - byte[] testGasLimit = BigIntegers.asUnsignedByteArray(BigInteger.valueOf(10000));; + byte[] testGasPrice = BigIntegers.asUnsignedByteArray(BigInteger.valueOf(1000000000000L)); + byte[] testGasLimit = BigIntegers.asUnsignedByteArray(BigInteger.valueOf(10000)); byte[] testReceiveAddress = Hex.decode("13978aee95f38490e9769c39b2773ed763d9cd5f"); byte[] testValue = BigIntegers.asUnsignedByteArray(BigInteger.valueOf(10000000000000000L)); byte[] testData = Hex.decode(""); @@ -274,21 +274,21 @@ public class TransactionTest { System.out.println("tx1.hash: " + Hex.toHexString(tx1.getHash())); System.out.println("tx2.hash: " + Hex.toHexString(tx2.getHash())); System.out.println(); - System.out.println("plainTx1: " + plainTx1 ); - System.out.println("plainTx2: " + plainTx2 ); + System.out.println("plainTx1: " + plainTx1); + System.out.println("plainTx2: " + plainTx2); - System.out.println( Hex.toHexString(tx2.getSender())); + System.out.println(Hex.toHexString(tx2.getSender())); } @Test - public void encodeReceiptTest(){ + public void encodeReceiptTest() { String data = "f90244a0f5ff3fbd159773816a7c707a9b8cb6bb778b934a8f6466c7830ed970498f4b688301e848b902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbda94cd2a3d9f938e13cd947ec05abc7fe734df8dd826c083a1a1a1"; byte[] stateRoot = Hex.decode("f5ff3fbd159773816a7c707a9b8cb6bb778b934a8f6466c7830ed970498f4b68"); - byte[] gasUsed = Hex.decode("01E848"); - Bloom bloom = new Bloom(Hex.decode("0000000000000000800000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")); + byte[] gasUsed = Hex.decode("01E848"); + Bloom bloom = new Bloom(Hex.decode("0000000000000000800000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")); LogInfo logInfo1 = new LogInfo( Hex.decode("cd2a3d9f938e13cd947ec05abc7fe734df8dd826"), diff --git a/ethereumj-core/src/test/java/test/ethereum/datasource/RedisDataSourceTest.java b/ethereumj-core/src/test/java/test/ethereum/datasource/RedisDataSourceTest.java index 33d30293..e270e174 100644 --- a/ethereumj-core/src/test/java/test/ethereum/datasource/RedisDataSourceTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/datasource/RedisDataSourceTest.java @@ -16,7 +16,7 @@ public class RedisDataSourceTest { @Test - public void testSet1(){ + public void testSet1() { try { RedisDataSource redis = new RedisDataSource(); @@ -27,7 +27,7 @@ public class RedisDataSourceTest { byte[] val = Hex.decode("b1b2b3"); redis.put(key, val); - byte[] val2 = redis.get(key); + byte[] val2 = redis.get(key); Assert.assertEquals(Hex.toHexString(val), Hex.toHexString(val2)); } catch (JedisConnectionException e) { @@ -36,7 +36,7 @@ public class RedisDataSourceTest { } @Test - public void testSet2(){ + public void testSet2() { try { RedisDataSource redis1 = new RedisDataSource(); diff --git a/ethereumj-core/src/test/java/test/ethereum/jsontestsuite/GitHubStateTest.java b/ethereumj-core/src/test/java/test/ethereum/jsontestsuite/GitHubStateTest.java index 784b231b..958b1c84 100644 --- a/ethereumj-core/src/test/java/test/ethereum/jsontestsuite/GitHubStateTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/jsontestsuite/GitHubStateTest.java @@ -119,7 +119,7 @@ public class GitHubStateTest { Set excluded = new HashSet<>(); excluded.add("EmptyTransaction"); - //todo: it goes OOG, because no gasLimit is given. So it does not change the state. + //todo: it goes OOG, because no gasLimit is given. So it does not change the state. String json = JSONReader.loadJSON("StateTests/stTransactionTest.json"); diff --git a/ethereumj-core/src/test/java/test/ethereum/net/NewBlockMessageTest.java b/ethereumj-core/src/test/java/test/ethereum/net/NewBlockMessageTest.java index 8f9d6a3b..81a95471 100644 --- a/ethereumj-core/src/test/java/test/ethereum/net/NewBlockMessageTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/net/NewBlockMessageTest.java @@ -33,7 +33,7 @@ public class NewBlockMessageTest { Block block = new Block( Hex.decode("f90277f8cfa0887ef3904d3c464cbb3ce2a7e2ce02c57b1a38caaa5013ad1202ead0fc1077baa0a962ba850109a5112e7bd3109db477014057b478772825173cc3da54cfc3264e94407d73d8a49eeb85d32cf465507dd71d507100c180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830200000380830f42408086014997893f1080a000000000000000000000000000000000000000000000000000000000000018e9c0f901a2f8cfa0955f36d073ccb026b78ab3424c15cf966a7563aa270413859f78702b9e8e22cba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942bd26d8f796719923ff13d295644f9b45db1f73080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830200000180830f4240808601499789326680a00000000000000000000000000000000000000000000000000000000000010da5f8cfa0717e058643634a0f80b9cf33da423d304dabaa826c586f50a783ba6c70cfd60da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794f92c0f3e4825f09490ca264dc0cdacffeb566f0680a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830200000280830f424080860149978936fe80a0000000000000000000000000000000000000000000000000000000000001d01f")); - byte[] diff = new byte[] {0}; + byte[] diff = new byte[]{0}; NewBlockMessage nbm = new NewBlockMessage(block, diff); diff --git a/ethereumj-core/src/test/java/test/ethereum/net/TransactionsMessageTest.java b/ethereumj-core/src/test/java/test/ethereum/net/TransactionsMessageTest.java index 0a081d48..99f87ed1 100644 --- a/ethereumj-core/src/test/java/test/ethereum/net/TransactionsMessageTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/net/TransactionsMessageTest.java @@ -75,24 +75,24 @@ public class TransactionsMessageTest { public void test_2() { String txsPacketRaw = "f9025012f89d8080940000000000000000000000000000000000000000860918" - + "4e72a000822710b3606956330c0d630000003359366000530a0d630000003359" - + "602060005301356000533557604060005301600054630000000c588433606957" - + "1ca07f6eb94576346488c6253197bde6a7e59ddc36f2773672c849402aa9c402" - + "c3c4a06d254e662bf7450dd8d835160cbb053463fed0b53f2cdd7f3ea8731919" - + "c8e8ccf901050180940000000000000000000000000000000000000000860918" - + "4e72a000822710b85336630000002e59606956330c0d63000000155933ff3356" - + "0d63000000275960003356576000335700630000005358600035560d63000000" - + "3a590033560d63000000485960003356573360003557600035335700b84a7f4e" - + "616d655265670000000000000000000000000000000000000000000000000030" - + "57307f4e616d6552656700000000000000000000000000000000000000000000" - + "00000057336069571ba04af15a0ec494aeac5b243c8a2690833faa74c0f73db1" - + "f439d521c49c381513e9a05802e64939be5a1f9d4d614038fbd5479538c48795" - + "614ef9c551477ecbdb49d2f8a6028094ccdeac59d35627b7de09332e819d5159" - + "e7bb72508609184e72a000822710b84000000000000000000000000000000000" - + "000000000000000000000000000000000000000000000000000000002d0aceee" - + "7e5ab874e22ccf8d1a649f59106d74e81ba0d05887574456c6de8f7a0d172342" - + "c2cbdd4cf7afe15d9dbb8b75b748ba6791c9a01e87172a861f6c37b5a9e3a5d0" - + "d7393152a7fbe41530e5bb8ac8f35433e5931b"; + + "4e72a000822710b3606956330c0d630000003359366000530a0d630000003359" + + "602060005301356000533557604060005301600054630000000c588433606957" + + "1ca07f6eb94576346488c6253197bde6a7e59ddc36f2773672c849402aa9c402" + + "c3c4a06d254e662bf7450dd8d835160cbb053463fed0b53f2cdd7f3ea8731919" + + "c8e8ccf901050180940000000000000000000000000000000000000000860918" + + "4e72a000822710b85336630000002e59606956330c0d63000000155933ff3356" + + "0d63000000275960003356576000335700630000005358600035560d63000000" + + "3a590033560d63000000485960003356573360003557600035335700b84a7f4e" + + "616d655265670000000000000000000000000000000000000000000000000030" + + "57307f4e616d6552656700000000000000000000000000000000000000000000" + + "00000057336069571ba04af15a0ec494aeac5b243c8a2690833faa74c0f73db1" + + "f439d521c49c381513e9a05802e64939be5a1f9d4d614038fbd5479538c48795" + + "614ef9c551477ecbdb49d2f8a6028094ccdeac59d35627b7de09332e819d5159" + + "e7bb72508609184e72a000822710b84000000000000000000000000000000000" + + "000000000000000000000000000000000000000000000000000000002d0aceee" + + "7e5ab874e22ccf8d1a649f59106d74e81ba0d05887574456c6de8f7a0d172342" + + "c2cbdd4cf7afe15d9dbb8b75b748ba6791c9a01e87172a861f6c37b5a9e3a5d0" + + "d7393152a7fbe41530e5bb8ac8f35433e5931b"; byte[] payload = Hex.decode(txsPacketRaw); @@ -158,7 +158,7 @@ public class TransactionsMessageTest { assertEquals ("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d0aceee7e5ab874e22ccf8d1a649f59106d74e8", - Hex.toHexString(tx1.getData())); + Hex.toHexString(tx1.getData())); assertEquals("1b", Hex.toHexString(new byte[]{tx1.getSignature().v})); diff --git a/ethereumj-core/src/test/java/test/ethereum/serpent/MachineCompileTest.java b/ethereumj-core/src/test/java/test/ethereum/serpent/MachineCompileTest.java index 8e69ae71..72f5316a 100644 --- a/ethereumj-core/src/test/java/test/ethereum/serpent/MachineCompileTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/serpent/MachineCompileTest.java @@ -45,10 +45,10 @@ public class MachineCompileTest { public void test3() { String code = "a=2\n" + - "if a>0:\n" + - " b = 3\n" + - "else: \n" + - " c = 4"; + "if a>0:\n" + + " b = 3\n" + + "else: \n" + + " c = 4"; // String expected = "610100600e6000396101006000f260026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005460026000546002600054600260005469"; String asm = SerpentCompiler.compile(code); byte[] machineCode = SerpentCompiler.compileAssemblyToMachine(asm); diff --git a/ethereumj-core/src/test/java/test/ethereum/serpent/SerpentCompileTest.java b/ethereumj-core/src/test/java/test/ethereum/serpent/SerpentCompileTest.java index 64fa25ea..96a7c0b9 100644 --- a/ethereumj-core/src/test/java/test/ethereum/serpent/SerpentCompileTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/serpent/SerpentCompileTest.java @@ -590,11 +590,11 @@ public class SerpentCompileTest { public void test24() { String code = "a = 20\n" + - "b = 40\n" + - "if a == 20: \n" + - " a = 30\n" + - "if b == 40: \n" + - " b = 50\n"; + "b = 40\n" + + "if a == 20: \n" + + " a = 30\n" + + "if b == 40: \n" + + " b = 50\n"; String expected = "20 0 MSTORE 40 32 MSTORE 20 0 MLOAD EQ NOT REF_1 JUMPI 30 0 MSTORE REF_0 JUMP LABEL_1 LABEL_0 40 32 MLOAD EQ NOT REF_3 JUMPI 50 32 MSTORE REF_2 JUMP LABEL_3 LABEL_2"; /** @@ -626,13 +626,13 @@ public class SerpentCompileTest { @Test // if elif else test 10 public void test25() { - String code = "a = 20\n" + - "b = 40\n" + - "if a == 20: \n" + - " a = 30\n" + - "a = 70\n" + - "if b == 40: \n" + - " b = 50\n"; + String code = "a = 20\n" + + "b = 40\n" + + "if a == 20: \n" + + " a = 30\n" + + "a = 70\n" + + "if b == 40: \n" + + " b = 50\n"; String expected = "20 0 MSTORE 40 32 MSTORE 20 0 MLOAD EQ NOT REF_1 JUMPI 30 0 MSTORE REF_0 JUMP LABEL_1 LABEL_0 70 0 MSTORE 40 32 MLOAD EQ NOT REF_3 JUMPI 50 32 MSTORE REF_2 JUMP LABEL_3 LABEL_2"; /** @@ -699,7 +699,7 @@ public class SerpentCompileTest { @Test // if elif else test 12 public void test27() { - String code = "if 2>1: \n" + + String code = "if 2>1: \n" + " if 3>2: \n" + " if 4>3:\n" + " if 5>4:\n" + @@ -909,14 +909,14 @@ public class SerpentCompileTest { @Test // if elif else test 20 public void test35() { - String code = "if 2>1: \n" + - " a=20 \n" + - "elif 5<1: \n" + - " a=30 \n" + - "elif 6>6: \n" + - " a=40 \n" + - "else: \n" + - " a=50 \n" ; + String code = "if 2>1: \n" + + " a=20 \n" + + "elif 5<1: \n" + + " a=30 \n" + + "elif 6>6: \n" + + " a=40 \n" + + "else: \n" + + " a=50 \n"; String expected = "1 2 GT NOT REF_1 JUMPI 20 0 MSTORE REF_0 JUMP LABEL_1 1 5 LT NOT REF_2 JUMPI 30 0 MSTORE REF_0 JUMP LABEL_2 6 6 GT NOT REF_3 JUMPI 40 0 MSTORE REF_0 JUMP LABEL_3 50 0 MSTORE LABEL_0"; @@ -984,12 +984,12 @@ public class SerpentCompileTest { @Test // while test 2 public void test37() { - String code = "x = 248 \n" + - "while x > 1: \n" + - " if (x % 2) == 0: \n" + - " x = x / 2 \n" + - " else: \n " + - " x = 3 * x + 1 \n" ; + String code = "x = 248 \n" + + "while x > 1: \n" + + " if (x % 2) == 0: \n" + + " x = x / 2 \n" + + " else: \n " + + " x = 3 * x + 1 \n"; String expected = "248 0 MSTORE LABEL_0 1 0 MLOAD GT NOT REF_1 JUMPI 0 2 0 MLOAD MOD EQ NOT REF_3 JUMPI 2 0 MLOAD DIV 0 MSTORE REF_2 JUMP LABEL_3 1 0 MLOAD 3 MUL ADD 0 MSTORE LABEL_2 REF_0 JUMP LABEL_1"; @@ -1024,12 +1024,12 @@ public class SerpentCompileTest { @Test // while test 3 public void test38() { - String code = "x = 0xFF \n" + - "while x > 1: \n" + - " if (x % 2) == 0: \n" + - " x = x / 2 \n" + - "x = x +2 \n" + - "x = 3 * x + 1 \n" ; + String code = "x = 0xFF \n" + + "while x > 1: \n" + + " if (x % 2) == 0: \n" + + " x = x / 2 \n" + + "x = x +2 \n" + + "x = 3 * x + 1 \n"; String expected = "255 0 MSTORE LABEL_0 1 0 MLOAD GT NOT REF_1 JUMPI 0 2 0 MLOAD MOD EQ NOT REF_3 JUMPI 2 0 MLOAD DIV 0 MSTORE REF_2 JUMP LABEL_3 LABEL_2 REF_0 JUMP LABEL_1 2 0 MLOAD ADD 0 MSTORE 1 0 MLOAD 3 MUL ADD 0 MSTORE"; @@ -1077,9 +1077,9 @@ public class SerpentCompileTest { @Test // while test 5 public void test40() { - String code = "x = 0xFF\n" + - "while (x > 1) && (x > 2) && (x > 3) && (2 <9):\n" + - " x = x -2\n" ; + String code = "x = 0xFF\n" + + "while (x > 1) && (x > 2) && (x > 3) && (2 <9):\n" + + " x = x -2\n"; String expected = "255 0 MSTORE LABEL_0 9 2 LT 3 0 MLOAD GT 2 0 MLOAD GT 1 0 MLOAD GT NOT NOT MUL NOT NOT MUL NOT NOT MUL NOT REF_1 JUMPI 2 0 MLOAD SUB 0 MSTORE REF_0 JUMP LABEL_1"; @@ -1108,19 +1108,19 @@ public class SerpentCompileTest { @Test // special functions test 1 public void test41() { - String code = "a = msg.datasize\n" + - "b = msg.sender\n" + - "c = msg.value\n" + - "d = tx.gasprice\n" + - "e = tx.origin\n" + - "f = tx.gas\n" + - "g = contract.balance\n" + - "h = block.prevhash\n" + - "i = block.coinbase\n" + - "j = block.timestamp\n" + - "k = block.number\n" + - "l = block.difficulty\n" + - "m = block.gaslimit\n" ; + String code = "a = msg.datasize\n" + + "b = msg.sender\n" + + "c = msg.value\n" + + "d = tx.gasprice\n" + + "e = tx.origin\n" + + "f = tx.gas\n" + + "g = contract.balance\n" + + "h = block.prevhash\n" + + "i = block.coinbase\n" + + "j = block.timestamp\n" + + "k = block.number\n" + + "l = block.difficulty\n" + + "m = block.gaslimit\n"; String expected = "32 CALLDATASIZE DIV 0 MSTORE CALLER 32 MSTORE CALLVALUE 64 MSTORE GASPRICE 96 MSTORE ORIGIN 128 MSTORE GAS 160 MSTORE BALANCE 192 MSTORE PREVHASH 224 MSTORE COINBASE 256 MSTORE TIMESTAMP 288 MSTORE NUMBER 320 MSTORE DIFFICULTY 352 MSTORE GASLIMIT 384 MSTORE"; @@ -1185,9 +1185,9 @@ public class SerpentCompileTest { @Test // test arrays 1 simple create public void test45() { - String code = "c = 2\n" + - "d = 3\n" + - "a = [11, 22, 33]" ; + String code = "c = 2\n" + + "d = 3\n" + + "a = [11, 22, 33]"; String expected = "0 63 MSTORE8 2 0 MSTORE 3 32 MSTORE MSIZE 32 ADD MSIZE DUP 32 ADD 11 SWAP MSTORE DUP 64 ADD 22 SWAP MSTORE DUP 96 ADD 33 SWAP MSTORE 128 SWAP MSTORE"; String asmResult = SerpentCompiler.compile(code); @@ -1196,8 +1196,8 @@ public class SerpentCompileTest { @Test // test arrays 2 simple set public void test46() { - String code = "a = [11, 22, 33]\n" + - "a[ 2 ] = 3" ; + String code = "a = [11, 22, 33]\n" + + "a[ 2 ] = 3"; String expected = "MSIZE 32 ADD MSIZE DUP 32 ADD 11 SWAP MSTORE DUP 64 ADD 22 SWAP MSTORE DUP 96 ADD 33 SWAP MSTORE 128 SWAP MSTORE 3 32 2 MUL 32 ADD 0 ADD 0 ADD MSTORE"; String asmResult = SerpentCompiler.compile(code); @@ -1206,7 +1206,7 @@ public class SerpentCompileTest { @Test // test arrays 3 simple public void test46_1() { - String code = "a = [11, 22, 33]\n" ; + String code = "a = [11, 22, 33]\n"; String expected = "MSIZE 32 ADD MSIZE DUP 32 ADD 11 SWAP MSTORE DUP 64 ADD 22 SWAP MSTORE DUP 96 ADD 33 SWAP MSTORE 128 SWAP MSTORE"; String asmResult = SerpentCompiler.compile(code); @@ -1215,10 +1215,10 @@ public class SerpentCompileTest { @Test // test arrays 3 complicated set after 2 arrays public void test47() { - String code = "a = [2, 4, 6]\n" + - "b = [12, 14]\n" + - "c = [22, 24, 25]\n" + - "c[ 0 ] = 3" ; + String code = "a = [2, 4, 6]\n" + + "b = [12, 14]\n" + + "c = [22, 24, 25]\n" + + "c[ 0 ] = 3"; String expected = "MSIZE 32 ADD MSIZE DUP 32 ADD 2 SWAP MSTORE DUP 64 ADD 4 SWAP MSTORE DUP 96 ADD 6 SWAP MSTORE 128 SWAP MSTORE MSIZE 32 ADD MSIZE DUP 32 ADD 12 SWAP MSTORE DUP 64 ADD 14 SWAP MSTORE 96 SWAP MSTORE MSIZE 32 ADD MSIZE DUP 32 ADD 22 SWAP MSTORE DUP 64 ADD 24 SWAP MSTORE DUP 96 ADD 25 SWAP MSTORE 128 SWAP MSTORE 3 32 0 MUL 32 ADD 224 ADD 0 ADD MSTORE"; String asmResult = SerpentCompiler.compile(code); @@ -1227,10 +1227,10 @@ public class SerpentCompileTest { @Test // test arrays 4 simple set public void test48() { - String code = "b = 1\n" + - "c = 2\n" + - "a = [11, 22, 33]\n" + - "a[ 2 ] = 3" ; + String code = "b = 1\n" + + "c = 2\n" + + "a = [11, 22, 33]\n" + + "a[ 2 ] = 3"; String expected = "0 63 MSTORE8 1 0 MSTORE 2 32 MSTORE MSIZE 32 ADD MSIZE DUP 32 ADD 11 SWAP MSTORE DUP 64 ADD 22 SWAP MSTORE DUP 96 ADD 33 SWAP MSTORE 128 SWAP MSTORE 3 32 2 MUL 32 ADD 0 ADD 64 ADD MSTORE"; String asmResult = SerpentCompiler.compile(code); @@ -1239,9 +1239,9 @@ public class SerpentCompileTest { @Test // test arrays 5 simple retrieve value public void test49() { - String code = "c = [5]\n" + - "a = [11, 22, 33]\n" + - "b = a [0]" ; + String code = "c = [5]\n" + + "a = [11, 22, 33]\n" + + "b = a [0]"; String expected = "0 31 MSTORE8 MSIZE 32 ADD MSIZE DUP 32 ADD 5 SWAP MSTORE 64 SWAP MSTORE MSIZE 32 ADD MSIZE DUP 32 ADD 11 SWAP MSTORE DUP 64 ADD 22 SWAP MSTORE DUP 96 ADD 33 SWAP MSTORE 128 SWAP MSTORE 32 0 MUL 96 ADD 32 ADD MLOAD 0 MSTORE"; String asmResult = SerpentCompiler.compile(code); @@ -1250,9 +1250,9 @@ public class SerpentCompileTest { @Test // test msg(gas, to , val, [arr_in], in_len, out_len), and out access public void test50() { - String code = "\n" + + String code = "\n" + "a = msg(1, 2, 3, [11, 22, 33], 3, 6) \n" + - "b = a[0]\n" ; + "b = a[0]\n"; String expected = "0 31 MSTORE8 224 MSIZE 224 MSIZE MSTORE 0 192 MSIZE ADD MSTORE8 96 MSIZE 32 ADD MSIZE DUP 32 ADD 11 SWAP MSTORE DUP 64 ADD 22 SWAP MSTORE DUP 96 ADD 33 SWAP MSTORE 128 SWAP MSTORE 3 2 1 CALL 32 0 MUL 160 ADD 32 ADD MLOAD 0 MSTORE"; String asmResult = SerpentCompiler.compile(code); diff --git a/ethereumj-core/src/test/java/test/ethereum/trie/TrieTest.java b/ethereumj-core/src/test/java/test/ethereum/trie/TrieTest.java index 04a21179..42291b21 100644 --- a/ethereumj-core/src/test/java/test/ethereum/trie/TrieTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/trie/TrieTest.java @@ -544,7 +544,7 @@ public class TrieTest { private final String randomDictionary = "spinneries, archipenko, prepotency, herniotomy, preexpress, relaxative, insolvably, debonnaire, apophysate, virtuality, cavalryman, utilizable, diagenesis, vitascopic, governessy, abranchial, cyanogenic, gratulated, signalment, predicable, subquality, crystalize, prosaicism, oenologist, repressive, impanelled, cockneyism, bordelaise, compigne, konstantin, predicated, unsublimed, hydrophane, phycomyces, capitalise, slippingly, untithable, unburnable, deoxidizer, misteacher, precorrect, disclaimer, solidified, neuraxitis, caravaning, betelgeuse, underprice, uninclosed, acrogynous, reirrigate, dazzlingly, chaffiness, corybantes, intumesced, intentness, superexert, abstrusely, astounding, pilgrimage, posttarsal, prayerless, nomologist, semibelted, frithstool, unstinging, ecalcarate, amputating, megascopic, graphalloy, platteland, adjacently, mingrelian, valentinus, appendical, unaccurate, coriaceous, waterworks, sympathize, doorkeeper, overguilty, flaggingly, admonitory, aeriferous, normocytic, parnellism, catafalque, odontiasis, apprentice, adulterous, mechanisma, wilderness, undivorced, reinterred, effleurage, pretrochal, phytogenic, swirlingly, herbarized, unresolved, classifier, diosmosing, microphage, consecrate, astarboard, predefying, predriving, lettergram, ungranular, overdozing, conferring, unfavorite, peacockish, coinciding, erythraeum, freeholder, zygophoric, imbitterer, centroidal, appendixes, grayfishes, enological, indiscreet, broadcloth, divulgated, anglophobe, stoopingly, bibliophil, laryngitis, separatist, estivating, bellarmine, greasiness, typhlology, xanthation, mortifying, endeavorer, aviatrices, unequalise, metastatic, leftwinger, apologizer, quatrefoil, nonfouling, bitartrate, outchiding, undeported, poussetted, haemolysis, asantehene, montgomery, unjoinable, cedarhurst, unfastener, nonvacuums, beauregard, animalized, polyphides, cannizzaro, gelatinoid, apologised, unscripted, tracheidal, subdiscoid, gravelling, variegated, interabang, inoperable, immortelle, laestrygon, duplicatus, proscience, deoxidised, manfulness, channelize, nondefense, ectomorphy, unimpelled, headwaiter, hexaemeric, derivation, prelexical, limitarian, nonionized, prorefugee, invariably, patronizer, paraplegia, redivision, occupative, unfaceable, hypomnesia, psalterium, doctorfish, gentlefolk, overrefine, heptastich, desirously, clarabelle, uneuphonic, autotelism, firewarden, timberjack, fumigation, drainpipes, spathulate, novelvelle, bicorporal, grisliness, unhesitant, supergiant, unpatented, womanpower, toastiness, multichord, paramnesia, undertrick, contrarily, neurogenic, gunmanship, settlement, brookville, gradualism, unossified, villanovan, ecospecies, organising, buckhannon, prefulfill, johnsonese, unforegone, unwrathful, dunderhead, erceldoune, unwadeable, refunction, understuff, swaggering, freckliest, telemachus, groundsill, outslidden, bolsheviks, recognizer, hemangioma, tarantella, muhammedan, talebearer, relocation, preemption, chachalaca, septuagint, ubiquitous, plexiglass, humoresque, biliverdin, tetraploid, capitoline, summerwood, undilating, undetested, meningitic, petrolatum, phytotoxic, adiphenine, flashlight, protectory, inwreathed, rawishness, tendrillar, hastefully, bananaquit, anarthrous, unbedimmed, herborized, decenniums, deprecated, karyotypic, squalidity, pomiferous, petroglyph, actinomere, peninsular, trigonally, androgenic, resistance, unassuming, frithstool, documental, eunuchised, interphone, thymbraeus, confirmand, expurgated, vegetation, myographic, plasmagene, spindrying, unlackeyed, foreknower, mythically, albescence, rebudgeted, implicitly, unmonastic, torricelli, mortarless, labialized, phenacaine, radiometry, sluggishly, understood, wiretapper, jacobitely, unbetrayed, stadholder, directress, emissaries, corelation, sensualize, uncurbable, permillage, tentacular, thriftless, demoralize, preimagine, iconoclast, acrobatism, firewarden, transpired, bluethroat, wanderjahr, groundable, pedestrian, unulcerous, preearthly, freelanced, sculleries, avengingly, visigothic, preharmony, bressummer, acceptable, unfoolable, predivider, overseeing, arcosolium, piriformis, needlecord, homebodies, sulphation, phantasmic, unsensible, unpackaged, isopiestic, cytophagic, butterlike, frizzliest, winklehawk, necrophile, mesothorax, cuchulainn, unrentable, untangible, unshifting, unfeasible, poetastric, extermined, gaillardia, nonpendent, harborside, pigsticker, infanthood, underrower, easterling, jockeyship, housebreak, horologium, undepicted, dysacousma, incurrable, editorship, unrelented, peritricha, interchaff, frothiness, underplant, proafrican, squareness, enigmatise, reconciled, nonnumeral, nonevident, hamantasch, victualing, watercolor, schrdinger, understand, butlerlike, hemiglobin, yankeeland"; @Test - public void testMasiveUpdate(){ + public void testMasiveUpdate() { boolean massiveUpdateTestEnabled = false; if (massiveUpdateTestEnabled) { @@ -901,7 +901,7 @@ public class TrieTest { @Test // update the trie with blog key/val - // each time dump the entire trie + // each time dump the entire trie public void testSample_1() { TrieImpl trie = new TrieImpl(mockDb); diff --git a/ethereumj-core/src/test/java/test/ethereum/util/RLPTest.java b/ethereumj-core/src/test/java/test/ethereum/util/RLPTest.java index 8745a395..68e54902 100644 --- a/ethereumj-core/src/test/java/test/ethereum/util/RLPTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/util/RLPTest.java @@ -94,7 +94,7 @@ public class RLPTest { BigInteger peerId = RLP.decodeBigInteger(payload, nextIndex); BigInteger expectedPeerId = - new BigInteger("9650128800487972697726795438087510101805200020100629942070155319087371611597658887860952245483247188023303607186148645071838189546969115967896446355306572"); + new BigInteger("9650128800487972697726795438087510101805200020100629942070155319087371611597658887860952245483247188023303607186148645071838189546969115967896446355306572"); assertEquals(expectedPeerId, peerId); nextIndex = RLP.getNextElementIndex(payload, nextIndex); @@ -313,10 +313,10 @@ public class RLPTest { /* 2 */ byte[] prevHash = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - prevHash = RLP.encodeElement(prevHash); + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + prevHash = RLP.encodeElement(prevHash); /* 2 */ byte[] uncleList = HashUtil.sha3(RLP.encodeList(new byte[]{})); @@ -324,9 +324,9 @@ public class RLPTest { /* 3 */ byte[] coinbase = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; - coinbase = RLP.encodeElement(coinbase); + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; + coinbase = RLP.encodeElement(coinbase); byte[] header = RLP.encodeList( prevHash, uncleList, coinbase); @@ -533,7 +533,7 @@ public class RLPTest { @Test /* very very very long blocks msg */ public void test14() { - String blocksMsg= "f91c1c13f90150f8c4a07df3d35d4df0a56fcf1d6344d5315cb56b9bf83bb96ad17c7b96a9cd14133c5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a064afb6284fa35f26d7b2c5a26afaa5483072fbcb575221b34ce002a991b7a223a04a8abe6d802797dc80b497584f898c2d4fd561cc185828cfa1b92f6f38ee348e833fbfe484533f201c80a000000000000000000000000000000000000000000000000000cfccb5cfd4667cf887f8850380942d0aceee7e5ab874e22ccf8d1a649f59106d74e88609184e72a000822710a047617600000000000000000000000000000000000000000000000000000000001ca08691ab40e258de3c4f55c868c0c34e780e747158a1d96ca50186dfd3305abd78a042269c981d048a7b791aafc8f4e644232740c1a1cceb5b6d05568827a64c0664c0f8c8f8c4a0637c8a6cdb907fac6f752334ab79065bcc4e46cd4f4358dbc2a653544a20eb31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a022a36c1a1e807e6afc22e6bb53a31111f56e7ee7dbb2ee571cefb152b514db4da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fcfd784533f1cf980a0000000000000000000000000000000000000000000000000e153d743fa040b18c0c0f8c8f8c4a07b2536237cbf114a043b0f9b27c76f84ac160ea5b87b53e42c7e76148964d450a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07a3be0ee10ece4b03097bf74aabac628aa0fae617377d30ab1b97376ee31f41aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fbfe884533f1ce880a0000000000000000000000000000000000000000000000000f3deea84969b6e95c0c0f8c8f8c4a0d2ae3f5dd931926de428d99611980e7cdd7c1b838273e43fcad1b94da987cfb8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a00b5b11fcf4ee12c6812f9d01cf0dff07c72cd7e02e48b35682f67c595407be14a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833faffd84533f1ce280a00000000000000000000000000000000000000000000000005fcbc97b2eb8ffb3c0c0f8c8f8c4a094d615d3cb4b306d20985028c78f0c8413d509a75e8bb84eda95f734debad2a0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a04b8fd1b98cf5758bd303ff86393eb6d944c1058124bddce5d4e04b5395254d5ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fbfec84533f1c7680a000000000000000000000000000000000000000000000000079fe3710116b32aac0c0f8c8f8c4a09424a07a0e4c05bb872906c40844a75b76f6517467b79c12fa9cc6d79ae09934a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a02dbe9ff9cbbc4c5a6ff26971f75b405891141f4e9bce3c2dc4200a305138e584a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fcfdf84533f1c3b80a0000000000000000000000000000000000000000000000000e0a6f8cf1d56031bc0c0f8c8f8c4a009aabea60cf7eaa9df4afdf4e1b5f3e684dab34fc9a9180a050085a4131ceedfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0436da067f9683029e717edf92da46c3443e8c342974f47a563302a0678efe702a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdfd684533f1bfc80a00000000000000000000000000000000000000000000000005bc88c041662ffdac0c0f8c8f8c4a0f8b104093483b7c0182e1bba2ce3340d14469d3a3ee7646821223a676c680ac1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0d482e71cde61190a33ca5aeb88b6b06276984e5a14253a98df232e8767167221a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefd184533f1bce80a00000000000000000000000000000000000000000000000004aeb31823f6a1950c0c0f8c8f8c4a0dd1f0aba02c2bb3b5a2b6cb1cc907ea70912bd46dc7a78577f2cae6cdbcbe5f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a058ab6df33d7cbeb6a735a7e4ccf4f28143e6a1742e45dda8f8cf48af43cb66c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffd084533f1b9f80a0000000000000000000000000000000000000000000000000577042b0858b510bc0c0f8c8f8c4a0a287bb7da30f04344976abe569bd719f69c1cbea65533e5311ca5862e6eaa504a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07e0537009c23cb1152caf84a52272431f74b6140866b15805622b7bcb607cd42a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934783400fd384533f1b6180a000000000000000000000000000000000000000000000000083d31378a0993e1ac0c0f8c8f8c4a063483cff8fbd489e6ce273326d8dc1d54a31c67f936ca84bf500e5419d3e9805a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07737d08564819d51f8f834a6ee4278c23a0c2f29a3f485b21002c1f24f04d8e4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffd484533f1b5780a0000000000000000000000000000000000000000000000000bb586fe6de016e14c0c0f8c8f8c4a0975c8ed0c9197b7c018e02e1c95f315acf82b25e4a812140f4515e8bc827650ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ad51229abead59e93c80db5ba160f0939bc49dcee65d1c081f6eb040ff1f571fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefd984533f1b4e80a0000000000000000000000000000000000000000000000000548f02c6ceb26fd4c0c0f8c8f8c4a05844082e41f7c1f34485c7902afa0aa0979a6a849100fc553cd946f4a663929ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a01bc726443437c4c062be18d052278e4ef735b8fe84387c8a4fc85fb70d5078e0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffd884533f1b1080a0000000000000000000000000000000000000000000000000cc1e528f54f22bdac0c0f8c8f8c4a0ba06ba81c93faaf98ea2d83cbdc0788958d938b29a9eb2a92ffbd4a628b3d52ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a05053bfe1c0f1f0dd341c6df35e5a659989be041e8521027cc90f7605eb15fbb9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefdd84533f1b0380a0000000000000000000000000000000000000000000000000bcf9df2fec615ecac0c0f8c8f8c4a083732d997db15109e90464c24b7c959a78881d827c55a0d668a66a2736be5d87a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a054f4012cba33a2b80b0dca9dd52f56b2c588133bd71700863f8cb95127176634a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffdc84533f1a4680a00000000000000000000000000000000000000000000000006920a1dc9d915d0ec0c0f8c8f8c4a052e2fba761c2d0643170ef041c017391e781190fe715ae87cdae8eee1d45d95ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ee2c82f77d7afd1f8dbe4f791df8477496c23e5504b9d66814172077f65f81f2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefe184533f1a3880a0000000000000000000000000000000000000000000000000ae86da9012398fc4c0c0f8c8f8c4a055703ba09544f386966b6d63bfc31033b761a4d1a6bb86b0cf49b4bb0526744ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a01684c03a675b53786f0077d1651c3d169a009b13a6ee2b5047be6dbbe6d957ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdfea84533f1a2f80a00000000000000000000000000000000000000000000000003247320d0eb639dfc0c0f8c8f8c4a05109a79b33d81f4ee4814b550fb0002f03368d67570f6d4e6105fce2874d8b72a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ae72e8c60a3dcfd53deecdb2790d18f0cc710f77cf2c1ed76e7da829bde619dca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fcff784533f1a1d80a000000000000000000000000000000000000000000000000040e0bc9bc9bcf295c0c0f8c8f8c4a03961e4bbba5c95fad3db0cffa3a16b9106f9ea3e8957993eab576b683c22f416a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0e9c6cf457bbe64d6bda67852a276cdbadb4f384a36d496e81801a496cfd9b7b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdfee84533f19df80a0000000000000000000000000000000000000000000000000dbb3fd6c816776d8c0c0f8c8f8c4a06b8265a357cb3ad744e19f04eb15377f660c10c900cc352d24f9b09073a363d6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07ba07e1bc6a20ffa44ae6080d30982b9faa148faf6b1ec15e32d89ac853ac291a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefe984533f198d80a00000000000000000000000000000000000000000000000005171325b6a2f17f1c0c0f8c8f8c4a0dcdc0347bb87ce72d49ac2e4e11f89069509b129a2536bf3d57c6bca30894032a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ca24447aa0cedb4b561c7810461eef19b16a827c27352e5e01f914e9d7c78247a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffe884533f194680a0000000000000000000000000000000000000000000000000da4714cfed9d8bbcc0c0f8c8f8c4a047f2dd6c15ea4082b3e11e5cf6b925b27e51d9de68051a093e52ef465cffbb8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a05a7206edddf50fcfeeaa97348a7112fc6edd0b5eacb44cf43d6a6c6b6609b459a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefed84533f193e80a0000000000000000000000000000000000000000000000000ffafba4bf8dc944ec0c0f8c8f8c4a04d5ad6d860772145872f6660ecefcb0b0b2056e0aa3509a48bf4c175459e5121a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a00f4659d09bb2ced56e7fd9c4d3d90daca8b4f471307b7c4385fd34a41016b0b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdff684533f192580a000000000000000000000000000000000000000000000000090620e5e59a39fe5c0c0f8c8f8c4a0c1725c58d1bf023af468e0088db3cf642ae097cf2c58c2ece2fc746980acc7e6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0be19a182ea1584050deb0a79abdc11be896ce8d00a282bcfaf9ffcd65fd64d6aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833feff184533f189080a000000000000000000000000000000000000000000000000076f17f4199bccd12c0c0f8c8f8c4a0bd521a20a18ca6ca7115065065a1aa20067ee580fb11e2963d1e3a681e8302afa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a011be45633350e39475a1a07712ba72de4602d9eebf639ccd5422a389095ccaf1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdffa84533f187b80a00000000000000000000000000000000000000000000000000c71b81c4a4cb82cc0c0f8c8f8c4a07c6d2d56e9c87f1553e4d06705af61a7c19a6046d2c39f8ed1417988783d3b1da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a012f5f0668063509e33a45a64eb6a072b2d84aa19f430f49f159be5008a786b2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fd00684533f186080a0000000000000000000000000000000000000000000000000b3f962892cfec9e6c0c0f8c8f8c4a07154f0f8ecc7f791d22eec06ec86d87a44b2704f015b3d2cff3571a3d01ae0f6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a079536abf8e163cf8aa97f0d52866d04363902d591fd7c36aa35fc983d45fefd6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdffd84533f182f80a0000000000000000000000000000000000000000000000000736716e42499890fc0c0f8c8f8c4a0bf2fb1ee988ac4e17eae221a24176649774333fab25b6fc96c6081527fb6f121a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a041578daae7bcccd4976340aeb19e4132d2fe4193a0d92f87744c82bfe113502fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fd00984533f182b80a00000000000000000000000000000000000000000000000001c62fa76645942c6c0c0f8c8f8c4a07f84873e2679d40458b9dda9900478a78871044e08f6b47dad659b9b60ff8d48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0597d3f4160770c0492333f90bad739dc05117d0e478a91f09573742e432904e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fe00184533f17f680a0000000000000000000000000000000000000000000000000e24d8b1140fb34d5c0c0f8c8f8c4a0fd77bd13a8cde1766537febe751a27a2a31310a04638a1afcd5e8ad3c5485453a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0473b2b248d91010ba9aec2696ffc93c11c415ed132832be0fd0578f184862e13a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833feffc84533f17ca80a0000000000000000000000000000000000000000000000000fb5b65bac3f0d947c0c0f8c8f8c4a0518916dfb79c390bd7bff75712174512c2f96bec42a3f573355507ad1588ce0ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a08599d2ec9e95ec62f41a4975b655d8445d6767035f94eb235ed5ebea976fb9eaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fe00484533f17b880a0000000000000000000000000000000000000000000000000bc27f4b8a201476bc0c0f90319f8c4a0ab6b9a5613970faa771b12d449b2e9bb925ab7a369f0a4b86b286e9d540099cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0990dc3b5acbee04124361d958fe51acb582593613fc290683940a0769549d3eda09bfe4817d274ea3eb8672e9fe848c3885b53bbbd1d7c26e6039f90fb96b942b0833ff00084533f16b780a000000000000000000000000000000000000000000000000077377adff6c227dbf9024ff89d80809400000000000000000000000000000000000000008609184e72a000822710b3606956330c0d630000003359366000530a0d630000003359602060005301356000533557604060005301600054630000000c5884336069571ca07f6eb94576346488c6253197bde6a7e59ddc36f2773672c849402aa9c402c3c4a06d254e662bf7450dd8d835160cbb053463fed0b53f2cdd7f3ea8731919c8e8ccf9010501809400000000000000000000000000000000000000008609184e72a000822710b85336630000002e59606956330c0d63000000155933ff33560d63000000275960003356576000335700630000005358600035560d630000003a590033560d63000000485960003356573360003557600035335700b84a7f4e616d65526567000000000000000000000000000000000000000000000000003057307f4e616d655265670000000000000000000000000000000000000000000000000057336069571ba04af15a0ec494aeac5b243c8a2690833faa74c0f73db1f439d521c49c381513e9a05802e64939be5a1f9d4d614038fbd5479538c48795614ef9c551477ecbdb49d2f8a6028094ccdeac59d35627b7de09332e819d5159e7bb72508609184e72a000822710b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d0aceee7e5ab874e22ccf8d1a649f59106d74e81ba0d05887574456c6de8f7a0d172342c2cbdd4cf7afe15d9dbb8b75b748ba6791c9a01e87172a861f6c37b5a9e3a5d0d7393152a7fbe41530e5bb8ac8f35433e5931bc0"; + String blocksMsg = "f91c1c13f90150f8c4a07df3d35d4df0a56fcf1d6344d5315cb56b9bf83bb96ad17c7b96a9cd14133c5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a064afb6284fa35f26d7b2c5a26afaa5483072fbcb575221b34ce002a991b7a223a04a8abe6d802797dc80b497584f898c2d4fd561cc185828cfa1b92f6f38ee348e833fbfe484533f201c80a000000000000000000000000000000000000000000000000000cfccb5cfd4667cf887f8850380942d0aceee7e5ab874e22ccf8d1a649f59106d74e88609184e72a000822710a047617600000000000000000000000000000000000000000000000000000000001ca08691ab40e258de3c4f55c868c0c34e780e747158a1d96ca50186dfd3305abd78a042269c981d048a7b791aafc8f4e644232740c1a1cceb5b6d05568827a64c0664c0f8c8f8c4a0637c8a6cdb907fac6f752334ab79065bcc4e46cd4f4358dbc2a653544a20eb31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a022a36c1a1e807e6afc22e6bb53a31111f56e7ee7dbb2ee571cefb152b514db4da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fcfd784533f1cf980a0000000000000000000000000000000000000000000000000e153d743fa040b18c0c0f8c8f8c4a07b2536237cbf114a043b0f9b27c76f84ac160ea5b87b53e42c7e76148964d450a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07a3be0ee10ece4b03097bf74aabac628aa0fae617377d30ab1b97376ee31f41aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fbfe884533f1ce880a0000000000000000000000000000000000000000000000000f3deea84969b6e95c0c0f8c8f8c4a0d2ae3f5dd931926de428d99611980e7cdd7c1b838273e43fcad1b94da987cfb8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a00b5b11fcf4ee12c6812f9d01cf0dff07c72cd7e02e48b35682f67c595407be14a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833faffd84533f1ce280a00000000000000000000000000000000000000000000000005fcbc97b2eb8ffb3c0c0f8c8f8c4a094d615d3cb4b306d20985028c78f0c8413d509a75e8bb84eda95f734debad2a0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a04b8fd1b98cf5758bd303ff86393eb6d944c1058124bddce5d4e04b5395254d5ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fbfec84533f1c7680a000000000000000000000000000000000000000000000000079fe3710116b32aac0c0f8c8f8c4a09424a07a0e4c05bb872906c40844a75b76f6517467b79c12fa9cc6d79ae09934a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a02dbe9ff9cbbc4c5a6ff26971f75b405891141f4e9bce3c2dc4200a305138e584a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fcfdf84533f1c3b80a0000000000000000000000000000000000000000000000000e0a6f8cf1d56031bc0c0f8c8f8c4a009aabea60cf7eaa9df4afdf4e1b5f3e684dab34fc9a9180a050085a4131ceedfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0436da067f9683029e717edf92da46c3443e8c342974f47a563302a0678efe702a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdfd684533f1bfc80a00000000000000000000000000000000000000000000000005bc88c041662ffdac0c0f8c8f8c4a0f8b104093483b7c0182e1bba2ce3340d14469d3a3ee7646821223a676c680ac1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0d482e71cde61190a33ca5aeb88b6b06276984e5a14253a98df232e8767167221a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefd184533f1bce80a00000000000000000000000000000000000000000000000004aeb31823f6a1950c0c0f8c8f8c4a0dd1f0aba02c2bb3b5a2b6cb1cc907ea70912bd46dc7a78577f2cae6cdbcbe5f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a058ab6df33d7cbeb6a735a7e4ccf4f28143e6a1742e45dda8f8cf48af43cb66c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffd084533f1b9f80a0000000000000000000000000000000000000000000000000577042b0858b510bc0c0f8c8f8c4a0a287bb7da30f04344976abe569bd719f69c1cbea65533e5311ca5862e6eaa504a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07e0537009c23cb1152caf84a52272431f74b6140866b15805622b7bcb607cd42a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934783400fd384533f1b6180a000000000000000000000000000000000000000000000000083d31378a0993e1ac0c0f8c8f8c4a063483cff8fbd489e6ce273326d8dc1d54a31c67f936ca84bf500e5419d3e9805a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07737d08564819d51f8f834a6ee4278c23a0c2f29a3f485b21002c1f24f04d8e4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffd484533f1b5780a0000000000000000000000000000000000000000000000000bb586fe6de016e14c0c0f8c8f8c4a0975c8ed0c9197b7c018e02e1c95f315acf82b25e4a812140f4515e8bc827650ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ad51229abead59e93c80db5ba160f0939bc49dcee65d1c081f6eb040ff1f571fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefd984533f1b4e80a0000000000000000000000000000000000000000000000000548f02c6ceb26fd4c0c0f8c8f8c4a05844082e41f7c1f34485c7902afa0aa0979a6a849100fc553cd946f4a663929ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a01bc726443437c4c062be18d052278e4ef735b8fe84387c8a4fc85fb70d5078e0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffd884533f1b1080a0000000000000000000000000000000000000000000000000cc1e528f54f22bdac0c0f8c8f8c4a0ba06ba81c93faaf98ea2d83cbdc0788958d938b29a9eb2a92ffbd4a628b3d52ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a05053bfe1c0f1f0dd341c6df35e5a659989be041e8521027cc90f7605eb15fbb9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefdd84533f1b0380a0000000000000000000000000000000000000000000000000bcf9df2fec615ecac0c0f8c8f8c4a083732d997db15109e90464c24b7c959a78881d827c55a0d668a66a2736be5d87a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a054f4012cba33a2b80b0dca9dd52f56b2c588133bd71700863f8cb95127176634a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffdc84533f1a4680a00000000000000000000000000000000000000000000000006920a1dc9d915d0ec0c0f8c8f8c4a052e2fba761c2d0643170ef041c017391e781190fe715ae87cdae8eee1d45d95ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ee2c82f77d7afd1f8dbe4f791df8477496c23e5504b9d66814172077f65f81f2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefe184533f1a3880a0000000000000000000000000000000000000000000000000ae86da9012398fc4c0c0f8c8f8c4a055703ba09544f386966b6d63bfc31033b761a4d1a6bb86b0cf49b4bb0526744ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a01684c03a675b53786f0077d1651c3d169a009b13a6ee2b5047be6dbbe6d957ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdfea84533f1a2f80a00000000000000000000000000000000000000000000000003247320d0eb639dfc0c0f8c8f8c4a05109a79b33d81f4ee4814b550fb0002f03368d67570f6d4e6105fce2874d8b72a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ae72e8c60a3dcfd53deecdb2790d18f0cc710f77cf2c1ed76e7da829bde619dca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fcff784533f1a1d80a000000000000000000000000000000000000000000000000040e0bc9bc9bcf295c0c0f8c8f8c4a03961e4bbba5c95fad3db0cffa3a16b9106f9ea3e8957993eab576b683c22f416a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0e9c6cf457bbe64d6bda67852a276cdbadb4f384a36d496e81801a496cfd9b7b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdfee84533f19df80a0000000000000000000000000000000000000000000000000dbb3fd6c816776d8c0c0f8c8f8c4a06b8265a357cb3ad744e19f04eb15377f660c10c900cc352d24f9b09073a363d6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a07ba07e1bc6a20ffa44ae6080d30982b9faa148faf6b1ec15e32d89ac853ac291a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefe984533f198d80a00000000000000000000000000000000000000000000000005171325b6a2f17f1c0c0f8c8f8c4a0dcdc0347bb87ce72d49ac2e4e11f89069509b129a2536bf3d57c6bca30894032a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0ca24447aa0cedb4b561c7810461eef19b16a827c27352e5e01f914e9d7c78247a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fffe884533f194680a0000000000000000000000000000000000000000000000000da4714cfed9d8bbcc0c0f8c8f8c4a047f2dd6c15ea4082b3e11e5cf6b925b27e51d9de68051a093e52ef465cffbb8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a05a7206edddf50fcfeeaa97348a7112fc6edd0b5eacb44cf43d6a6c6b6609b459a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fefed84533f193e80a0000000000000000000000000000000000000000000000000ffafba4bf8dc944ec0c0f8c8f8c4a04d5ad6d860772145872f6660ecefcb0b0b2056e0aa3509a48bf4c175459e5121a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a00f4659d09bb2ced56e7fd9c4d3d90daca8b4f471307b7c4385fd34a41016b0b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdff684533f192580a000000000000000000000000000000000000000000000000090620e5e59a39fe5c0c0f8c8f8c4a0c1725c58d1bf023af468e0088db3cf642ae097cf2c58c2ece2fc746980acc7e6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0be19a182ea1584050deb0a79abdc11be896ce8d00a282bcfaf9ffcd65fd64d6aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833feff184533f189080a000000000000000000000000000000000000000000000000076f17f4199bccd12c0c0f8c8f8c4a0bd521a20a18ca6ca7115065065a1aa20067ee580fb11e2963d1e3a681e8302afa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a011be45633350e39475a1a07712ba72de4602d9eebf639ccd5422a389095ccaf1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdffa84533f187b80a00000000000000000000000000000000000000000000000000c71b81c4a4cb82cc0c0f8c8f8c4a07c6d2d56e9c87f1553e4d06705af61a7c19a6046d2c39f8ed1417988783d3b1da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a012f5f0668063509e33a45a64eb6a072b2d84aa19f430f49f159be5008a786b2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fd00684533f186080a0000000000000000000000000000000000000000000000000b3f962892cfec9e6c0c0f8c8f8c4a07154f0f8ecc7f791d22eec06ec86d87a44b2704f015b3d2cff3571a3d01ae0f6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a079536abf8e163cf8aa97f0d52866d04363902d591fd7c36aa35fc983d45fefd6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fdffd84533f182f80a0000000000000000000000000000000000000000000000000736716e42499890fc0c0f8c8f8c4a0bf2fb1ee988ac4e17eae221a24176649774333fab25b6fc96c6081527fb6f121a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a041578daae7bcccd4976340aeb19e4132d2fe4193a0d92f87744c82bfe113502fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fd00984533f182b80a00000000000000000000000000000000000000000000000001c62fa76645942c6c0c0f8c8f8c4a07f84873e2679d40458b9dda9900478a78871044e08f6b47dad659b9b60ff8d48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0597d3f4160770c0492333f90bad739dc05117d0e478a91f09573742e432904e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fe00184533f17f680a0000000000000000000000000000000000000000000000000e24d8b1140fb34d5c0c0f8c8f8c4a0fd77bd13a8cde1766537febe751a27a2a31310a04638a1afcd5e8ad3c5485453a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0473b2b248d91010ba9aec2696ffc93c11c415ed132832be0fd0578f184862e13a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833feffc84533f17ca80a0000000000000000000000000000000000000000000000000fb5b65bac3f0d947c0c0f8c8f8c4a0518916dfb79c390bd7bff75712174512c2f96bec42a3f573355507ad1588ce0ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a08599d2ec9e95ec62f41a4975b655d8445d6767035f94eb235ed5ebea976fb9eaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347833fe00484533f17b880a0000000000000000000000000000000000000000000000000bc27f4b8a201476bc0c0f90319f8c4a0ab6b9a5613970faa771b12d449b2e9bb925ab7a369f0a4b86b286e9d540099cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347943854aaf203ba5f8d49b1ec221329c7aebcf050d3a0990dc3b5acbee04124361d958fe51acb582593613fc290683940a0769549d3eda09bfe4817d274ea3eb8672e9fe848c3885b53bbbd1d7c26e6039f90fb96b942b0833ff00084533f16b780a000000000000000000000000000000000000000000000000077377adff6c227dbf9024ff89d80809400000000000000000000000000000000000000008609184e72a000822710b3606956330c0d630000003359366000530a0d630000003359602060005301356000533557604060005301600054630000000c5884336069571ca07f6eb94576346488c6253197bde6a7e59ddc36f2773672c849402aa9c402c3c4a06d254e662bf7450dd8d835160cbb053463fed0b53f2cdd7f3ea8731919c8e8ccf9010501809400000000000000000000000000000000000000008609184e72a000822710b85336630000002e59606956330c0d63000000155933ff33560d63000000275960003356576000335700630000005358600035560d630000003a590033560d63000000485960003356573360003557600035335700b84a7f4e616d65526567000000000000000000000000000000000000000000000000003057307f4e616d655265670000000000000000000000000000000000000000000000000057336069571ba04af15a0ec494aeac5b243c8a2690833faa74c0f73db1f439d521c49c381513e9a05802e64939be5a1f9d4d614038fbd5479538c48795614ef9c551477ecbdb49d2f8a6028094ccdeac59d35627b7de09332e819d5159e7bb72508609184e72a000822710b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d0aceee7e5ab874e22ccf8d1a649f59106d74e81ba0d05887574456c6de8f7a0d172342c2cbdd4cf7afe15d9dbb8b75b748ba6791c9a01e87172a861f6c37b5a9e3a5d0d7393152a7fbe41530e5bb8ac8f35433e5931bc0"; byte[] payload = Hex.decode(blocksMsg); RLPList rlpList = RLP.decode2(payload); @@ -704,7 +704,7 @@ public class RLPTest { public void testEncodeLongStringList() { String element1 = "cat"; String element2 = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; - String[] test = new String[] { element1, element2 }; + String[] test = new String[]{element1, element2}; String expected = "f83e83636174b8384c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365637465747572206164697069736963696e6720656c6974"; byte[] encoderesult = RLP.encode(test); assertEquals(expected, Hex.toHexString(encoderesult)); @@ -765,7 +765,7 @@ public class RLPTest { @Test public void testEncodeRepOfTwoListOfList() { //list: [ [], [[]], [ [], [[]] ] ] - Object[] test = new Object[] { new Object[] { }, new Object[] { new Object[] {} }, new Object[] { new Object[] {}, new Object[] { new Object[] { } } } }; + Object[] test = new Object[]{new Object[]{}, new Object[]{new Object[]{}}, new Object[]{new Object[]{}, new Object[]{new Object[]{}}}}; String expected = "c7c0c1c0c3c0c1c0"; byte[] encoderesult = RLP.encode(test); assertEquals(expected, Hex.toHexString(encoderesult)); @@ -898,7 +898,7 @@ public class RLPTest { double maxLength = Math.pow(256, 8); try { - encodedLength = RLP.encodeLength( (int) maxLength, offset); + encodedLength = RLP.encodeLength((int) maxLength, offset); System.out.println("length: " + length + ", offset: " + offset + ", encoded: " + Arrays.toString(encodedLength)); fail("Expecting RuntimeException: 'Input too long'"); @@ -923,7 +923,7 @@ public class RLPTest { public void performanceDecode() throws IOException { boolean performanceEnabled = false; - if(performanceEnabled) { + if (performanceEnabled) { String blockRaw = "f8cbf8c7a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02f4399b08efe68945c1cf90ffe85bbe3ce978959da753f9e649f034015b8817da00000000000000000000000000000000000000000000000000000000000000000834000008080830f4240808080a004994f67dc55b09e814ab7ffc8df3686b4afb2bb53e60eae97ef043fe03fb829c0c0"; byte[] payload = Hex.decode(blockRaw); @@ -944,8 +944,8 @@ public class RLPTest { } long end2 = System.currentTimeMillis(); - System.out.println("Result RLP.decode()\t: " + (end1-start1) + "ms and\t " + determineSize(result) + " bytes for each resulting object list"); - System.out.println("Result RLP.decode2()\t: " + (end2-start2) + "ms and\t " + determineSize(list) + " bytes for each resulting object list"); + System.out.println("Result RLP.decode()\t: " + (end1 - start1) + "ms and\t " + determineSize(result) + " bytes for each resulting object list"); + System.out.println("Result RLP.decode2()\t: " + (end2 - start2) + "ms and\t " + determineSize(list) + " bytes for each resulting object list"); } else { System.out.println("Performance test for RLP.decode() disabled"); } diff --git a/ethereumj-core/src/test/java/test/ethereum/util/RlpTestData.java b/ethereumj-core/src/test/java/test/ethereum/util/RlpTestData.java index 529d5f80..f8ac0892 100644 --- a/ethereumj-core/src/test/java/test/ethereum/util/RlpTestData.java +++ b/ethereumj-core/src/test/java/test/ethereum/util/RlpTestData.java @@ -55,5 +55,5 @@ public class RlpTestData { public static Object[] test16 = new Object[]{"zw", new Object[]{4}, "wz"}; public static String result16 = "c8827a77c10482777a"; - public static Object[] expected16 = new Object[] { new byte[] { 122, 119 }, new Object[] { new byte[] { 4 } }, new byte[] { 119, 122 } }; + public static Object[] expected16 = new Object[]{new byte[]{122, 119}, new Object[]{new byte[]{4}}, new byte[]{119, 122}}; } diff --git a/ethereumj-core/src/test/java/test/ethereum/vm/DataWordTest.java b/ethereumj-core/src/test/java/test/ethereum/vm/DataWordTest.java index f58a3d22..eeabf40d 100644 --- a/ethereumj-core/src/test/java/test/ethereum/vm/DataWordTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/vm/DataWordTest.java @@ -254,7 +254,7 @@ public class DataWordTest { if (y.compareTo(BigInteger.ZERO) < 0) throw new IllegalArgumentException(); BigInteger z = x; // z will successively become x^2, x^4, x^8, x^16, - // x^32... + // x^32... BigInteger result = BigInteger.ONE; byte[] bytes = y.toByteArray(); for (int i = bytes.length - 1; i >= 0; i--) { diff --git a/ethereumj-core/src/test/java/test/ethereum/vm/PrecompiledContractTest.java b/ethereumj-core/src/test/java/test/ethereum/vm/PrecompiledContractTest.java index 0cb3da5d..e1adce52 100644 --- a/ethereumj-core/src/test/java/test/ethereum/vm/PrecompiledContractTest.java +++ b/ethereumj-core/src/test/java/test/ethereum/vm/PrecompiledContractTest.java @@ -17,13 +17,12 @@ import static org.junit.Assert.*; public class PrecompiledContractTest { - @Test - public void identityTest1(){ + public void identityTest1() { DataWord addr = new DataWord("0000000000000000000000000000000000000000000000000000000000000004"); PrecompiledContract contract = PrecompiledContracts.getContractForAddress(addr); - byte[] data = Hex.decode("112233445566"); + byte[] data = Hex.decode("112233445566"); byte[] expected = Hex.decode("112233445566"); byte[] result = contract.execute(data); @@ -33,11 +32,11 @@ public class PrecompiledContractTest { @Test - public void sha256Test1(){ + public void sha256Test1() { DataWord addr = new DataWord("0000000000000000000000000000000000000000000000000000000000000002"); PrecompiledContract contract = PrecompiledContracts.getContractForAddress(addr); - byte[] data = null; + byte[] data = null; String expected = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; byte[] result = contract.execute(data); @@ -46,11 +45,11 @@ public class PrecompiledContractTest { } @Test - public void sha256Test2(){ + public void sha256Test2() { DataWord addr = new DataWord("0000000000000000000000000000000000000000000000000000000000000002"); PrecompiledContract contract = PrecompiledContracts.getContractForAddress(addr); - byte[] data = ByteUtil.EMPTY_BYTE_ARRAY; + byte[] data = ByteUtil.EMPTY_BYTE_ARRAY; String expected = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; byte[] result = contract.execute(data); @@ -59,11 +58,11 @@ public class PrecompiledContractTest { } @Test - public void sha256Test3(){ + public void sha256Test3() { DataWord addr = new DataWord("0000000000000000000000000000000000000000000000000000000000000002"); PrecompiledContract contract = PrecompiledContracts.getContractForAddress(addr); - byte[] data = Hex.decode("112233"); + byte[] data = Hex.decode("112233"); String expected = "49ee2bf93aac3b1fb4117e59095e07abe555c3383b38d608da37680a406096e8"; byte[] result = contract.execute(data); @@ -73,11 +72,11 @@ public class PrecompiledContractTest { @Test - public void Ripempd160Test1(){ + public void Ripempd160Test1() { DataWord addr = new DataWord("0000000000000000000000000000000000000000000000000000000000000003"); PrecompiledContract contract = PrecompiledContracts.getContractForAddress(addr); - byte[] data = Hex.decode("0000000000000000000000000000000000000000000000000000000000000001"); + byte[] data = Hex.decode("0000000000000000000000000000000000000000000000000000000000000001"); String expected = "000000000000000000000000ae387fcfeb723c3f5964509af111cf5a67f30661"; byte[] result = contract.execute(data); @@ -86,7 +85,7 @@ public class PrecompiledContractTest { } @Test - public void ecRecoverTest1(){ + public void ecRecoverTest1() { byte[] data = Hex.decode("18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c000000000000000000000000000000000000000000000000000000000000001c73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549"); DataWord addr = new DataWord("0000000000000000000000000000000000000000000000000000000000000001"); diff --git a/ethereumj-studio/src/main/java/org/ethereum/gui/AccountsListWindow.java b/ethereumj-studio/src/main/java/org/ethereum/gui/AccountsListWindow.java index ac454954..04b8fd52 100755 --- a/ethereumj-studio/src/main/java/org/ethereum/gui/AccountsListWindow.java +++ b/ethereumj-studio/src/main/java/org/ethereum/gui/AccountsListWindow.java @@ -54,7 +54,7 @@ public class AccountsListWindow extends JFrame { public void run() { Repository repository = UIEthereumManager.ethereum.getRepository(); Set keys = repository.getAccountsKeys(); - for (byte[] key : keys){ + for (byte[] key : keys) { DataClass dc = new DataClass(); dc.address = key; AccountState state = repository.getAccountState(dc.address); diff --git a/ethereumj-studio/src/main/java/org/ethereum/gui/ConsoleTokenMaker.java b/ethereumj-studio/src/main/java/org/ethereum/gui/ConsoleTokenMaker.java index 4c3c8b23..83f6979f 100644 --- a/ethereumj-studio/src/main/java/org/ethereum/gui/ConsoleTokenMaker.java +++ b/ethereumj-studio/src/main/java/org/ethereum/gui/ConsoleTokenMaker.java @@ -644,7 +644,7 @@ public class ConsoleTokenMaker extends AbstractTokenMaker { } break; } else if (c == '.') { // Second decimal point; must catch now because it's a "separator" - // below. + // below. currentTokenType = Token.ERROR_NUMBER_FORMAT; break; } diff --git a/ethereumj-studio/src/main/java/org/ethereum/gui/SerpentTokenMaker.java b/ethereumj-studio/src/main/java/org/ethereum/gui/SerpentTokenMaker.java index 0db5e6e6..a91ccdab 100644 --- a/ethereumj-studio/src/main/java/org/ethereum/gui/SerpentTokenMaker.java +++ b/ethereumj-studio/src/main/java/org/ethereum/gui/SerpentTokenMaker.java @@ -442,7 +442,7 @@ public class SerpentTokenMaker extends AbstractTokenMaker { case Token.ERROR_STRING_DOUBLE: if (c == '"') { - addToken(text, currentTokenStart,i, Token.LITERAL_STRING_DOUBLE_QUOTE, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i, Token.LITERAL_STRING_DOUBLE_QUOTE, newStartOffset + currentTokenStart); currentTokenStart = i + 1; currentTokenType = Token.NULL; } @@ -458,16 +458,14 @@ public class SerpentTokenMaker extends AbstractTokenMaker { bracketVariable = true; break; default: - if (RSyntaxUtilities.isLetter(c) || c==' ') { // No tab, just space; spaces are okay in variable names. + if (RSyntaxUtilities.isLetter(c) || c == ' ') { // No tab, just space; spaces are okay in variable names. break; - } - else if (RSyntaxUtilities.isDigit(c)) { // Single-digit command-line argument ("%1"). - addToken(text, currentTokenStart,i, Token.VARIABLE, newStartOffset+currentTokenStart); + } else if (RSyntaxUtilities.isDigit(c)) { // Single-digit command-line argument ("%1"). + addToken(text, currentTokenStart, i, Token.VARIABLE, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; break; - } - else { // Anything else, ???. - addToken(text, currentTokenStart,i-1, Token.VARIABLE, newStartOffset+currentTokenStart); // ??? + } else { // Anything else, ???. + addToken(text, currentTokenStart, i - 1, Token.VARIABLE, newStartOffset + currentTokenStart); // ??? i--; currentTokenType = Token.NULL; break;