Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge code from master branch to android branch #626

Closed
wants to merge 181 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
7195821
Expose additional behaviors from auto-generated contract classes for …
xaviarias Feb 27, 2018
c0988d0
query for historical contract state
fcorneli Feb 28, 2018
bff2f9c
Use filter constant for parameter name
xaviarias Mar 1, 2018
cae2a2d
adds a close method on IPC service
fcorneli Mar 1, 2018
943ecbd
Merge branch 'master' into #205
xaviarias Mar 1, 2018
3a0244f
refactoring gas prices and limits for contracts
yuriymyronovych Mar 1, 2018
bf0c1a8
prevent duplication of FUNC_DEPLOY
yuriymyronovych Mar 1, 2018
09f3dcd
fixed merge issues
yuriymyronovych Mar 1, 2018
040831c
Update Smart Contract wrappers' ABIs, binaries and generated Java files
xaviarias Mar 1, 2018
cf6565c
sorted out funcs and events
yuriymyronovych Mar 2, 2018
ba48a4a
updated test contracts
yuriymyronovych Mar 2, 2018
c623948
Merge remote-tracking branch 'remotes/upstream/master' into dynamic_g…
yuriymyronovych Mar 2, 2018
63f8453
merged and added test
yuriymyronovych Mar 2, 2018
0c0dc90
Updated docs to version 3.3.1.
conor10 Mar 2, 2018
447de35
checkstyle
yuriymyronovych Mar 2, 2018
659c4d9
Adding support for multidimensional arrays arguments in the contract …
fergarrui Mar 3, 2018
43a0e1e
add rpc:parity_listAccounts which "Returns all addresses if Fat DB is…
Mar 4, 2018
f23a860
1. Removed @author tag from Javadoc.
conor10 Mar 1, 2018
f262eb0
Updated codegen to ensure that final modifier is present on all funct…
conor10 Mar 2, 2018
4f1e6c2
Fixed typo.
conor10 Mar 2, 2018
ae54780
1. Regenerated smart contract wrappers.
conor10 Mar 2, 2018
7b1e0d8
Updated docs to version 3.3.1.
conor10 Mar 2, 2018
89c2e8c
Expose additional behaviors from auto-generated contract classes for …
xaviarias Feb 27, 2018
70a0047
Add ClassNotFoundException as required
xaviarias Mar 7, 2018
f8b022b
Update Smart Contract wrappers' ABIs, binaries and generated Java files
xaviarias Mar 7, 2018
20a916c
Adding and fixing compilation test
fergarrui Mar 11, 2018
4d24234
Merge branch 'master' into #205
xaviarias Mar 12, 2018
eb94718
Fix 'unmappable character for encoding ASCII'
xaviarias Mar 12, 2018
210212f
make "recoverFromSignature" method public
Mar 13, 2018
701c79b
make "recoverFromSignature" method public (test)
Mar 13, 2018
e98e7f7
checkstyle
Mar 13, 2018
d3cbb4b
Merge pull request #404 from fergarrui/adding-support-for-multidimens…
conor10 Mar 13, 2018
b7e1a3f
Adding support for multidimensional arrays arguments in the contract …
fergarrui Mar 3, 2018
b0d0b20
Adding and fixing compilation test
fergarrui Mar 11, 2018
e6dbc30
Revert unused ClassNotFoundException in method signatures
xaviarias Feb 27, 2018
5687266
Update Smart Contract wrappers and fix Java 6 compatibility issue
xaviarias Mar 13, 2018
8c85b94
Merge branch 'master' into #205
xaviarias Mar 13, 2018
2cce022
fixed style
Mar 13, 2018
51f8836
Merge pull request #424 from gjeanmart/master
conor10 Mar 13, 2018
1c4215f
Merge pull request #387 from xaviarias/#205
conor10 Mar 14, 2018
8b8c0df
fix for transaction not always being present
fcorneli Mar 16, 2018
a711aa6
Merge pull request #397 from e-Contract/ipc-service-close
conor10 Mar 19, 2018
7ec488d
Adds web3j shutdown method
mushketyk Mar 19, 2018
ee152f4
Adds documentation for the Web3j.shutdown method
mushketyk Mar 20, 2018
d0c3d09
Outputs a warning when a non-constant function returns a value
mushketyk Mar 20, 2018
7cde32b
Add JavaDoc for the GenerationReporter class
mushketyk Mar 20, 2018
a796e39
Fixes events hashing computation
mushketyk Mar 21, 2018
d45154b
add block parameter and address tags. Locate function alphabetically…
Mar 22, 2018
1674f22
testrpc (trufflesuite/ganache-cli) returns a json object in the error…
Mar 22, 2018
fd48500
style
Mar 22, 2018
e3e2a62
Throw exception if contract deployment or transaction runs out of gas
mushketyk Mar 22, 2018
fcb7ef8
fix long line
fcorneli Mar 23, 2018
ec465ac
Merge pull request #433 from mushketyk/web3j-shutdown
conor10 Mar 23, 2018
00cc19f
Repace "constant" with "view" in the SolidityFunctionWrapper warning
mushketyk Mar 23, 2018
d53933e
Merge pull request #388 from e-Contract/contract-state
conor10 Mar 27, 2018
b800956
fix JsonRpc2_0Geth protections
Mar 27, 2018
267fef9
import test dependencies from testArtifacts rather than archives. Re…
Mar 27, 2018
c2a5917
tests with/without null, tests with/without blockParam.
Mar 27, 2018
cc60702
other tests disable style checks for long lines. hope ok.
Mar 27, 2018
b9a5540
renaming test methods, fixing one to be unique
Mar 28, 2018
2ac602e
added PollingTransactionReceiptProcessorTest (#237)
mikosik Mar 29, 2018
6b297f8
Adds methods "miner_start" and "miner_stop"
mushketyk Mar 31, 2018
dfa501f
transactionHash instead of blockHash
fcorneli Apr 1, 2018
7346322
Admin build with ScheduledExecutorService
fcorneli Apr 1, 2018
f3b3494
Add AUR as an install option for cli
benjumanji Apr 1, 2018
f461b37
rename version.properties to web3j-version.properties
fcorneli Apr 3, 2018
cceab3b
Merge pull request #468 from e-Contract/web3j-version
conor10 Apr 3, 2018
dbc75e0
Merge pull request #407 from p-s-dev/master
conor10 Apr 3, 2018
598e76f
Merge pull request #430 from e-Contract/pending-transaction-observable
conor10 Apr 3, 2018
06d84fd
Merge pull request #443 from p-s-dev/jsonInErrorData2
conor10 Apr 3, 2018
dd358ac
Merge pull request #444 from mushketyk/no-gas-exception
conor10 Apr 3, 2018
474efce
Merge pull request #453 from alexprut/master
conor10 Apr 3, 2018
2e15aa1
Merge pull request #463 from e-Contract/pending-tx-var-tx-hash
conor10 Apr 3, 2018
ececa4d
Merge pull request #464 from e-Contract/admin-build-constructor
conor10 Apr 3, 2018
9ccc07e
Merge pull request #465 from benjumanji/add-aur
conor10 Apr 3, 2018
ea6858b
Merge pull request #460 from mikosik/issue237a
conor10 Apr 3, 2018
fc1d053
Merge pull request #455 from p-s-dev/gradleTestDeps
conor10 Apr 3, 2018
6081d50
Merge pull request #436 from mushketyk/transaction-return-warning
conor10 Apr 3, 2018
e4957ec
Moved minerStart() and minerStop() methods to the JsonRpc2_0Geth class
mushketyk Apr 3, 2018
24bca5a
Merge pull request #462 from mushketyk/miner-start-stop
conor10 Apr 4, 2018
1ca3a32
deployRemoteCall public
fcorneli Apr 4, 2018
2083662
getChainId on Transaction
fcorneli Apr 5, 2018
db6dc88
Allow transaction receipts to have "null" status
mushketyk Apr 5, 2018
9fbf600
Merge pull request #479 from mushketyk/null-status
conor10 Apr 5, 2018
0dcffc1
Merge pull request #475 from e-Contract/contract-public-deploy-remote…
conor10 Apr 5, 2018
8081f02
initial work on transaction decoder
fcorneli Apr 6, 2018
09e644c
parse signed raw transaction
fcorneli Apr 10, 2018
45ea55a
getFrom
fcorneli Apr 10, 2018
0de15d7
verify
fcorneli Apr 10, 2018
ec22e99
chain id
fcorneli Apr 10, 2018
d4c6de9
isStatusOK on TransactionReceipt
fcorneli Apr 11, 2018
e4f6351
IpcService: one IO instance per request
iongchun Apr 12, 2018
073769e
UnixDomainSocket: add a failed test
iongchun Apr 12, 2018
a28a0a4
UnixDomainSocket: fix slow, segmented response
iongchun Apr 12, 2018
f98049d
IpcService: explicitly use UTF-8 instead of default encoding
iongchun Apr 12, 2018
c9b7df3
Read word list as stream and throw possible error earlier
comodoro Apr 14, 2018
ffd71a1
unit test for Transaction.getChainId
fcorneli Apr 15, 2018
1fff973
unit test for TransactionReceipt.isStatusOK
fcorneli Apr 15, 2018
bdf70ec
Retain order of imports
comodoro Apr 15, 2018
e689a3d
allow external BC lifecycle management
fcorneli Apr 17, 2018
d198554
Merge pull request #503 from e-Contract/bouncycastle-lifecycle
conor10 Apr 17, 2018
de24ea3
rename isHashed to needToHash
fcorneli Apr 17, 2018
48e0dec
padding fix for r and s
fcorneli Apr 17, 2018
15d6d56
Merge pull request #494 from iongchun/unixdomain2
conor10 Apr 19, 2018
b8a297c
Merge pull request #491 from e-Contract/transaction-decoder
conor10 Apr 19, 2018
bbdb56b
Merge pull request #498 from comodoro/master
conor10 Apr 19, 2018
3f3bc56
Merge pull request #504 from e-Contract/sign-message-isHashed
conor10 Apr 19, 2018
9f71630
using default constructor
fcorneli Apr 19, 2018
c1a4f6c
using default constructor
fcorneli Apr 19, 2018
b86ace8
Merge pull request #493 from e-Contract/transaction-receipt-isStatusOK
conor10 Apr 20, 2018
c95179a
Merge pull request #478 from e-Contract/tx-chain-id
conor10 Apr 20, 2018
f17e598
fix status check on contract transactions
fcorneli Apr 21, 2018
a572c87
Merge pull request #509 from e-Contract/contract-IsStatusOK-2
conor10 Apr 22, 2018
8c6417d
merged + minor fixes
yuriymyronovych Apr 23, 2018
b82f2bf
merged + minor fixes
yuriymyronovych Apr 23, 2018
bc210a8
imports
yuriymyronovych Apr 23, 2018
a1c8a3b
imports
yuriymyronovych Apr 23, 2018
956f064
imports
yuriymyronovych Apr 23, 2018
7e09c4c
adding ethereum-tool and ethereum-resource-adapter
fcorneli Apr 27, 2018
744ce98
Merge pull request #517 from e-Contract/announcement
conor10 Apr 29, 2018
c932610
Merge pull request #398 from argentlabs/dynamic_gas_for_contract
conor10 Apr 29, 2018
9367fe7
Bumped release version.
conor10 Apr 30, 2018
adc62cf
updated readme
yuriymyronovych Apr 30, 2018
24ee88e
added Argent Labs
yuriymyronovych Apr 30, 2018
9b00e16
add a failing RLPEncoder 55 byte test
matthewleon May 1, 2018
14c5a81
fix RLPEncoder off-by-one error
matthewleon May 1, 2018
21fe6de
clean up some redundant imports
matthewleon May 1, 2018
3ece76d
fix a test comment
matthewleon May 1, 2018
20350ad
Merge pull request #518 from argentlabs/updated_readme_for_gas_provid…
conor10 May 2, 2018
94a564e
Bumped release version in docs.
conor10 May 2, 2018
953bf08
Merge remote-tracking branch 'origin/master'
conor10 May 2, 2018
12ff282
Updated Sphinx docs.
conor10 May 2, 2018
913d331
Updated GasProvider docs.
conor10 May 2, 2018
f477549
Merge pull request #520 from matthewleon/bugfix/rlp-55-bytes
conor10 May 4, 2018
120a951
Implements WebSocketService
mushketyk Mar 24, 2018
de1395f
Implement WebSocket subscriptions
mushketyk Mar 26, 2018
d2133ae
Adds Web3jService::close() method
mushketyk Mar 26, 2018
77125f0
Implements Web3jRx::newHeadsNotifications method
mushketyk Mar 27, 2018
465376b
Refactor WebSocketService
mushketyk Mar 27, 2018
e80c1f3
Add support for all WebSocket subscriptions
mushketyk Mar 27, 2018
313e0c0
Adds JavaDoc for WebSocket related classes
mushketyk Mar 27, 2018
a10791e
Allows a client of WebSocketService to specify unsubscribe method
mushketyk Mar 28, 2018
c47e923
Make WebSocketService thread-safe
mushketyk Mar 28, 2018
754bdb2
Close subscription Observable if subscription request failed
mushketyk Mar 28, 2018
4152484
Add more unit tests
mushketyk Mar 28, 2018
25253a5
Fix unit test race condition
mushketyk Mar 28, 2018
bfb6491
Add more methods to WebSocketListener
mushketyk Mar 29, 2018
11dffb4
Close requests and subscriptions when a WebSocket connection is closed
mushketyk Mar 30, 2018
e574576
Minor websocket fixes
mushketyk May 8, 2018
caa00d8
fix List<Boolean> type transfer bug
mmmmmagina May 9, 2018
254afb8
Merge pull request #458 from mushketyk/websockets
conor10 May 10, 2018
1f01643
Make http error handling more informative
akandratovich May 12, 2018
48e5e73
cover http client exception with test
May 15, 2018
d663425
update code style
May 15, 2018
74b1798
add missing constructor of WalletUtils by using lightWalletFile default
hackty May 16, 2018
dea9094
add testcase for the constructor of WalletUtils by using lightWalletF…
hackty May 16, 2018
aff0cf6
Add support for large Vs
plainerman May 18, 2018
6ad499a
Add unit test for long V
plainerman May 18, 2018
b43cfbc
Fix O(N^2) UNIX domain socket read behavior
santtu May 30, 2018
4aa2b9c
Merge pull request #552 from plainerman/master
conor10 May 30, 2018
c91f933
Update UnixDomainSocket.java
santtu May 31, 2018
55ef900
Remove unused walletFile.setCrypto(crypto)
thundertrick Jun 1, 2018
1d73c22
fixed NPE
yuriymyronovych Jun 8, 2018
1c940da
fixed checkstyle
yuriymyronovych Jun 8, 2018
8480736
God.. I hate checkstyle :)
yuriymyronovych Jun 8, 2018
5827382
Merge pull request #566 from santtu/patch-1
conor10 Jun 11, 2018
f28bc43
Merge pull request #585 from argentlabs/fix_NPE_issue402
conor10 Jun 11, 2018
920c260
Rebuild the filter if the filter is invalid
upers Jun 28, 2018
395e151
MAINNET not MAIN_NET
celwell Jun 30, 2018
ed2ca03
Merge pull request #614 from upers/master
conor10 Jul 3, 2018
1661dc5
Added reference of ethereum JDBC Driver
ashishkshukla Jul 4, 2018
96d9742
Merge pull request #620 from ashishkshukla/ashishkshukla-patch-1
conor10 Jul 5, 2018
cf4a5ad
Merge pull request #440 from mushketyk/fix-events-hashing
conor10 Jul 5, 2018
716ae3f
Merge pull request #534 from mmmmmagina/master
conor10 Jul 5, 2018
6bc6fdc
Merge pull request #541 from kondratovich/patch-1
conor10 Jul 5, 2018
6710297
Merge pull request #571 from thundertrick/patch-1
conor10 Jul 5, 2018
2cb930a
Merge pull request #616 from clearcoin/master
conor10 Jul 5, 2018
faa7ce5
add the missing constructor of WalletUtils by using fullWalletFile de…
hackty Jul 5, 2018
973f237
Merge pull request #547 from hackty/master
conor10 Jul 9, 2018
718a6d5
merge from master
void-main Jul 10, 2018
ad25e75
fix bad code merge
void-main Jul 16, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ Java 8:
<dependency>
<groupId>org.web3j</groupId>
<artifactId>core</artifactId>
<version>3.2.0</version>
<version>3.4.0</version>
</dependency>

Android:
Expand All @@ -131,7 +131,7 @@ Android:
<dependency>
<groupId>org.web3j</groupId>
<artifactId>core</artifactId>
<version>3.1.1-android</version>
<version>3.3.1-android</version>
</dependency>

Gradle
Expand All @@ -141,13 +141,13 @@ Java 8:

.. code-block:: groovy

compile ('org.web3j:core:3.2.0')
compile ('org.web3j:core:3.4.0')

Android:

.. code-block:: groovy

compile ('org.web3j:core:3.1.1-android')
compile ('org.web3j:core:3.3.1-android')


Start a client
Expand Down Expand Up @@ -305,6 +305,14 @@ To call a smart contract:

Type result = contract.someMethod(<param1>, ...).send();

To fine control your gas price:

.. code-block:: java

contract.setGasProvider(new DefaultGasProvider() {
...
});

For more information refer to `Smart Contracts <http://docs.web3j.io/smart_contracts.html#solidity-smart-contract-wrappers>`_.


Expand Down Expand Up @@ -517,6 +525,9 @@ Please submit a pull request if you wish to include your project on the list:
- `Trust Ethereum Wallet <https://github.com/TrustWallet/trust-wallet-android>`_
- `Presto Ethereum <https://github.com/xiaoyao1991/presto-ethereum>`_
- `Kundera-Ethereum data importer and sync utility <https://github.com/impetus-opensource/Kundera/tree/trunk/src/kundera-ethereum>`_ by `@impetus-opensource <https://github.com/impetus-opensource>`_
- `Ethereum JDBC Connector <https://github.com/Impetus/eth-jdbc-connector/>`_ by `@impetus-opensource <https://github.com/impetus-opensource>`_
- `Ethereum Tool <https://github.com/e-Contract/ethereum-tool>`_ for secure offline key management.
- `Ethereum Java EE JCA Resource Adapter <https://github.com/e-Contract/ethereum-resource-adapter>`_ provides integration of Ethereum within Java EE 6+.


Companies using web3j
Expand All @@ -533,6 +544,7 @@ Please submit a pull request if you wish to include your company on the list:
- `Pactum <https://pactum.io/>`_
- `TrustWallet <http://trustwalletapp.com>`_
- `Impetus <http://www.impetus.com/>`_
- `Argent Labs <http://www.argent.im/>`_


Build instructions
Expand Down
16 changes: 5 additions & 11 deletions abi/src/main/java/org/web3j/abi/EventEncoder.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.web3j.abi;

import java.util.ArrayList;
import java.util.List;

import org.web3j.abi.datatypes.Event;
Expand All @@ -18,22 +17,17 @@ public class EventEncoder {

private EventEncoder() { }

public static String encode(Event function) {
List<TypeReference<Type>> indexedParameters = function.getIndexedParameters();
List<TypeReference<Type>> nonIndexedParameters = function.getNonIndexedParameters();
public static String encode(Event event) {

String methodSignature = buildMethodSignature(function.getName(),
indexedParameters, nonIndexedParameters);
String methodSignature = buildMethodSignature(
event.getName(),
event.getParameters());

return buildEventSignature(methodSignature);
}

static <T extends Type> String buildMethodSignature(
String methodName, List<TypeReference<T>> indexParameters,
List<TypeReference<T>> nonIndexedParameters) {

List<TypeReference<T>> parameters = new ArrayList<TypeReference<T>>(indexParameters);
parameters.addAll(nonIndexedParameters);
String methodName, List<TypeReference<T>> parameters) {

StringBuilder result = new StringBuilder();
result.append(methodName);
Expand Down
3 changes: 2 additions & 1 deletion abi/src/main/java/org/web3j/abi/FunctionReturnDecoder.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.web3j.abi.datatypes.Utf8String;
import org.web3j.abi.datatypes.generated.Bytes32;
import org.web3j.utils.Numeric;
import org.web3j.utils.Strings;

import static org.web3j.abi.TypeDecoder.MAX_BYTE_LENGTH_FOR_HEX_STRING;

Expand All @@ -36,7 +37,7 @@ public static List<Type> decode(
String rawInput, List<TypeReference<Type>> outputParameters) {
String input = Numeric.cleanHexPrefix(rawInput);

if (input.isEmpty()) {
if (Strings.isEmpty(input)) {
return Collections.emptyList();
} else {
return build(input, outputParameters);
Expand Down
10 changes: 10 additions & 0 deletions abi/src/main/java/org/web3j/abi/TypeReference.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,19 @@ public abstract class TypeReference<T extends org.web3j.abi.datatypes.Type>
implements Comparable<TypeReference<T>> {

private final Type type;
private final boolean indexed;

protected TypeReference() {
this(false);
}

protected TypeReference(boolean indexed) {
Type superclass = getClass().getGenericSuperclass();
if (superclass instanceof Class) {
throw new RuntimeException("Missing type parameter.");
}
this.type = ((ParameterizedType) superclass).getActualTypeArguments()[0];
this.indexed = indexed;
}

public int compareTo(TypeReference<T> o) {
Expand All @@ -37,6 +43,10 @@ public Type getType() {
return type;
}

public boolean isIndexed() {
return indexed;
}

/**
* Workaround to ensure type does not come back as T due to erasure, this enables you to
* create a TypeReference via {@link Class Class&lt;T&gt;}.
Expand Down
21 changes: 20 additions & 1 deletion abi/src/main/java/org/web3j/abi/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,26 @@ public static List<TypeReference<Type>> convert(List<TypeReference<?>> input) {
return result;
}

public static <T, R extends Type<T>, E extends Type<T>> List<E> typeMap(
List<List<T>> input,
Class<E> outerDestType,
Class<R> innerType) {
List<E> result = new ArrayList<>();
try {
Constructor<E> constructor = outerDestType.getDeclaredConstructor(List.class);
for (List<T> ts : input) {
E e = constructor.newInstance(typeMap(ts, innerType));
result.add(e);
}
} catch (NoSuchMethodException
| IllegalAccessException
| InstantiationException
| InvocationTargetException e) {
throw new TypeMappingException(e);
}
return result;
}

public static <T, R extends Type<T>> List<R> typeMap(List<T> input, Class<R> destType)
throws TypeMappingException {

Expand All @@ -122,7 +142,6 @@ public static <T, R extends Type<T>> List<R> typeMap(List<T> input, Class<R> des
throw new TypeMappingException(e);
}
}

return result;
}
}
4 changes: 4 additions & 0 deletions abi/src/main/java/org/web3j/abi/datatypes/Bool.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ public Bool(boolean value) {
this.value = value;
}

public Bool(Boolean value) {
this.value = value;
}

@Override
public String getTypeAsString() {
return TYPE_NAME;
Expand Down
22 changes: 14 additions & 8 deletions abi/src/main/java/org/web3j/abi/datatypes/Event.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.web3j.abi.datatypes;

import java.util.List;
import java.util.stream.Collectors;

import org.web3j.abi.TypeReference;

Expand All @@ -11,25 +12,30 @@
*/
public class Event {
private String name;
private List<TypeReference<Type>> indexedParameters;
private List<TypeReference<Type>> nonIndexedParameters;
private List<TypeReference<Type>> parameters;

public Event(String name, List<TypeReference<?>> indexedParameters,
List<TypeReference<?>> nonIndexedParameters) {
public Event(String name, List<TypeReference<?>> parameters) {
this.name = name;
this.indexedParameters = convert(indexedParameters);
this.nonIndexedParameters = convert(nonIndexedParameters);
this.parameters = convert(parameters);
}

public String getName() {
return name;
}

public List<TypeReference<Type>> getParameters() {
return parameters;
}

public List<TypeReference<Type>> getIndexedParameters() {
return indexedParameters;
return parameters.stream()
.filter(TypeReference::isIndexed)
.collect(Collectors.toList());
}

public List<TypeReference<Type>> getNonIndexedParameters() {
return nonIndexedParameters;
return parameters.stream()
.filter(p -> !p.isIndexed())
.collect(Collectors.toList());
}
}
14 changes: 14 additions & 0 deletions abi/src/test/java/org/web3j/abi/UtilsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.web3j.abi.datatypes.Uint;
import org.web3j.abi.datatypes.Utf8String;
import org.web3j.abi.datatypes.generated.Int64;
import org.web3j.abi.datatypes.generated.StaticArray2;
import org.web3j.abi.datatypes.generated.Uint256;
import org.web3j.abi.datatypes.generated.Uint64;

Expand Down Expand Up @@ -61,6 +62,19 @@ public void testTypeMap() throws Exception {
new Uint256(BigInteger.TEN))));
}

@Test
public void testTypeMapNested() {
List<BigInteger> innerList1 = Arrays.asList(BigInteger.valueOf(1), BigInteger.valueOf(2));
List<BigInteger> innerList2 = Arrays.asList(BigInteger.valueOf(3), BigInteger.valueOf(4));
final List<List<BigInteger>> input = Arrays.asList(innerList1, innerList2);

StaticArray2<Uint256> staticArray1 = new StaticArray2<>(new Uint256(1), new Uint256(2));
StaticArray2<Uint256> staticArray2 = new StaticArray2<>(new Uint256(3), new Uint256(4));
List<StaticArray2<Uint256>> expectedList = Arrays.asList(staticArray1, staticArray2);
assertThat(typeMap(input, StaticArray2.class, Uint256.class),
equalTo(expectedList));
}

@Test
public void testTypeMapEmpty() {
assertThat(typeMap(new ArrayList<BigInteger>(), Uint256.class),
Expand Down
7 changes: 6 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ buildscript {
ext.okhttpVersion = '3.8.1'
ext.rxjavaVersion = '1.2.4'
ext.slf4jVersion = '1.7.25'
ext.javaWebSocketVersion = '1.3.8'

// test dependencies
ext.equalsverifierVersion = '2.1.7'
Expand Down Expand Up @@ -44,7 +45,7 @@ allprojects {
targetCompatibility = 1.6

group 'org.web3j'
version '3.3.1-android'
version '3.4.0-android'

apply plugin: 'java'
apply plugin: 'jacoco'
Expand All @@ -63,6 +64,10 @@ allprojects {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

javadoc {
options.encoding = 'UTF-8'
}

jacoco {
toolVersion = '0.7.7.201606060606' // See http://www.eclemma.org/jacoco/.
}
Expand Down
1 change: 1 addition & 0 deletions codegen/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ description 'web3j project code generators'
dependencies {
compile project(':core'),
"com.squareup:javapoet:$javapoetVersion"
testCompile project(path: ':core', configuration: 'testArtifacts')
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.web3j.codegen;

/**
* Can be used to provide report about a code generation process.
*/
interface GenerationReporter {
void report(String msg);
}
20 changes: 20 additions & 0 deletions codegen/src/main/java/org/web3j/codegen/LogGenerationReporter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.web3j.codegen;

import org.slf4j.Logger;

/**
* A reporter generation that outputs messages using a logger instance.
*/
class LogGenerationReporter implements GenerationReporter {

private final Logger logger;

public LogGenerationReporter(Logger logger) {
this.logger = logger;
}

@Override
public void report(String msg) {
logger.warn(msg);
}
}
Loading