diff --git a/duniter4j-client/pom.xml b/duniter4j-client/pom.xml index 6c4151400cf2e01fc3857cae8dec22ae7de5d7cc..bd50848955951c3d5bc73f3cad16db5deb31e27b 100644 --- a/duniter4j-client/pom.xml +++ b/duniter4j-client/pom.xml @@ -3,7 +3,7 @@ <parent> <artifactId>duniter4j</artifactId> <groupId>org.duniter</groupId> - <version>1.5.1-SNAPSHOT</version> + <version>1.5.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/duniter4j-core-client/pom.xml b/duniter4j-core-client/pom.xml index 1a9a49ea60e7169478817837d5ee762e640aa96a..e732b9db65aee2ab7e2fa45a106cde4398c73fca 100644 --- a/duniter4j-core-client/pom.xml +++ b/duniter4j-core-client/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>org.duniter</groupId> <artifactId>duniter4j</artifactId> - <version>1.5.1-SNAPSHOT</version> + <version>1.5.0-SNAPSHOT</version> </parent> <artifactId>duniter4j-core-client</artifactId> diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteService.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteService.java index 0bed305a69d25bd043e337f12960510606dd09d6..41fa40d60e273d92b53a2f2985e8944c3d3120d5 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteService.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteService.java @@ -72,6 +72,8 @@ public interface TransactionRemoteService extends Service { String transfer(Wallet wallet, String destPubKey, long amount, String comment) throws InsufficientCreditException; + String transfer(Wallet wallet, Map<String,Long> mapPubkeyAmount, String comment) throws InsufficientCreditException; + TxSource getSources(Peer peer, String pubKey); TxSource getSources(String currencyId, String pubKey); diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java index 4faf0a2fbc44c156d17bfb4373e326174a8eabcd..7f5b9b99926a1835455fcae73f5f97efe8dd6a03 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java @@ -87,6 +87,10 @@ public class TransactionRemoteServiceImpl extends BaseRemoteServiceImpl implemen return transfer(null, wallet, destPubKey, amount, comment); } + @Override + public String transfer(Wallet wallet, Map<String, Long> mapPubkeyAmount, String comment) throws InsufficientCreditException { + return transfer(null, wallet, mapPubkeyAmount, comment); + } public String transfer(Peer peer, Wallet wallet, String destPubKey, long amount, String comment) throws InsufficientCreditException { diff --git a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java index d3e00fa5ce572aac30e9372be238c66ab164a921..0b465aa0093939a1682d2a8b0eb27c7660df3e31 100644 --- a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java +++ b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java @@ -23,6 +23,9 @@ package org.duniter.core.client.service.bma; */ +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; import org.duniter.core.client.TestResource; import org.duniter.core.client.config.Configuration; import org.duniter.core.client.model.bma.TxSource; @@ -35,12 +38,12 @@ import org.junit.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Map; import java.util.Objects; +@Slf4j public class TransactionRemoteServiceTest { - private static final Logger log = LoggerFactory.getLogger(TransactionRemoteServiceTest.class); - @ClassRule public static final TestResource resource = TestResource.create(); @@ -62,13 +65,31 @@ public class TransactionRemoteServiceTest { try { service.transfer( createTestWallet(), - resource.getFixtures().getOtherUserPublicKey(), + resource.getFixtures().getOtherUserPublicKey(0), 1, "my comments" + System.currentTimeMillis()); } catch (InsufficientCreditException e) { // OK continue } } + + @Test + public void transferMulti() throws Exception { + + Map<String, Long> destPubkeyAmount = ImmutableMap.<String, Long>builder() + .put(resource.getFixtures().getOtherUserPublicKey(0), 1l) + .put(resource.getFixtures().getOtherUserPublicKey(1), 2l) + .build(); + + try { + service.transfer( + createTestWallet(), + destPubkeyAmount, + "my comments" + System.currentTimeMillis()); + } catch (InsufficientCreditException e) { + // OK continue + } + } @Test public void getSources() throws Exception { diff --git a/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties b/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties index de6f268f00007ff207b88204433c68c0192e0f09..9e15226126166a3ab4acb6fc74efc9a731bda1c3 100644 --- a/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties +++ b/duniter4j-core-client/src/test/resources/duniter4j-core-client-test.properties @@ -1,5 +1,5 @@ duniter4j.node.host=g1-test.duniter.org duniter4j.node.port=10900 -duniter4j.node.elasticsearch.host=localhost -duniter4j.node.elasticsearch.port=9200 +duniter4j.node.elasticsearch.host=g1-test.data.e-is.pro +duniter4j.node.elasticsearch.port=80 diff --git a/duniter4j-core-shared/pom.xml b/duniter4j-core-shared/pom.xml index 84b2a11fbb12270cc9c158c9387c29dfa3afdf5b..b6721a5cc86476e8c12dce178c885205cb55996c 100644 --- a/duniter4j-core-shared/pom.xml +++ b/duniter4j-core-shared/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>org.duniter</groupId> <artifactId>duniter4j</artifactId> - <version>1.5.1-SNAPSHOT</version> + <version>1.5.0-SNAPSHOT</version> </parent> <artifactId>duniter4j-core-shared</artifactId> diff --git a/duniter4j-core-shared/src/main/java/org/duniter/core/test/TestFixtures.java b/duniter4j-core-shared/src/main/java/org/duniter/core/test/TestFixtures.java index 37af62d89d21a1bc3e4afd3b72c640bbe609dd93..949d70fc099abe7b5b2ee61bd865c07b0d12c45c 100644 --- a/duniter4j-core-shared/src/main/java/org/duniter/core/test/TestFixtures.java +++ b/duniter4j-core-shared/src/main/java/org/duniter/core/test/TestFixtures.java @@ -85,9 +85,16 @@ public class TestFixtures { * Get a public key of another user, encode in base 58. * @return */ - public String getOtherUserPublicKey() { - // = kimamila - return "5ocqzyDMMWf1V8bsoNhWb1iNwax1e9M7VTUN6navs8of"; + public String getOtherUserPublicKey(int index) { + switch (index) { + case 0: + default: + // = kimamila + return "5ocqzyDMMWf1V8bsoNhWb1iNwax1e9M7VTUN6navs8of"; + case 1: + // = ji_emme_test + return "BubEHcMEAkC5trxru2D9GAkRsdFbLMQ1Mbgya5ZyndN7"; + } } } diff --git a/pom.xml b/pom.xml index 7982bfaf963ce7a0777b731ce7eaf0a74a94e5ce..60b8405de16fdc19b21d1c6059f801f7d560b3a6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ <groupId>org.duniter</groupId> <artifactId>duniter4j</artifactId> - <version>1.5.1-SNAPSHOT</version> + <version>1.5.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Duniter4j</name> <description>a Duniter Java Client API</description>