Skip to content

Commit f6b4550

Browse files
author
Hubert Marteau
committed
3.0 - Complete change - API calls directly RPC Server (compatible for a
few systems), Architecture is complelty changed, test are modified to give examples.
1 parent 18ad045 commit f6b4550

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1447
-1919
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,9 @@
1010

1111
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
1212
hs_err_pid*
13+
/bin
14+
/.classpath
15+
/.project
16+
/.gitignore
17+
/target
18+
/.settings

pom.xml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<modelVersion>4.0.0</modelVersion>
3+
<groupId>MultiChainJavaAPI</groupId>
4+
<artifactId>MultiChainJavaAPI</artifactId>
5+
<version>0.3.0-SNAPSHOT</version>
6+
<build>
7+
<sourceDirectory>src</sourceDirectory>
8+
<plugins>
9+
<plugin>
10+
<artifactId>maven-compiler-plugin</artifactId>
11+
<version>3.1</version>
12+
<configuration>
13+
<source/>
14+
<target/>
15+
</configuration>
16+
</plugin>
17+
</plugins>
18+
</build>
19+
<dependencies>
20+
<dependency>
21+
<groupId>org.apache.xmlrpc</groupId>
22+
<artifactId>xmlrpc-client</artifactId>
23+
<version>3.1.3</version>
24+
</dependency>
25+
<dependency>
26+
<groupId>org.apache.httpcomponents</groupId>
27+
<artifactId>httpclient</artifactId>
28+
<version>4.3.6</version>
29+
</dependency>
30+
<dependency>
31+
<groupId>com.google.code.gson</groupId>
32+
<artifactId>gson</artifactId>
33+
<version>2.8.1</version>
34+
</dependency>
35+
</dependencies>
36+
</project>

src/multichain/command/AddressCommand.java

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919

2020
/**
2121
* @author Ub - H. MARTEAU
22-
* @version 2.0
22+
* @version 3.0
2323
*/
2424
public class AddressCommand extends QueryBuilderAddress {
2525

26-
public AddressCommand(String chainName) {
27-
setCHAIN(chainName);
26+
public AddressCommand(String ip, String port, String login, String password) {
27+
initialize(ip, port, login, password);
2828
}
2929

3030
/**
@@ -55,8 +55,10 @@ public AddressCommand(String chainName) {
5555
public final Address addMultiSigAddress(int numberOfSigRequired, String[] publicKeys) throws MultichainException {
5656
Address address = new Address();
5757

58-
String stringAddress = executeAddMultiSigAddress(numberOfSigRequired, publicKeys);
59-
address = validateAddress(stringAddress);
58+
Object objectAddress = executeAddMultiSigAddress(numberOfSigRequired, publicKeys);
59+
if (verifyInstance(objectAddress, String.class)) {
60+
address = validateAddress((String) objectAddress);
61+
}
6062

6163
return address;
6264
}
@@ -90,8 +92,10 @@ public final Address addMultiSigAddress(int numberOfSigRequired, String[] public
9092
public Address createMultiSig(int numberOfSigRequired, String[] publicKeys) throws MultichainException {
9193
Address address = new Address();
9294

93-
String stringAddress = executeCreateMultiSig(numberOfSigRequired, publicKeys);
94-
address = validateAddress(stringAddress);
95+
Object objectAddress = executeCreateMultiSig(numberOfSigRequired, publicKeys);
96+
if (verifyInstance(objectAddress, String.class)) {
97+
address = validateAddress((String) objectAddress);
98+
}
9599

96100
return address;
97101
}
@@ -115,11 +119,15 @@ public Address createMultiSig(int numberOfSigRequired, String[] publicKeys) thro
115119
* @return Addresses of the Wallet
116120
* @throws MultichainException
117121
*/
122+
@SuppressWarnings("unchecked")
118123
public final List<String> getAddressesStringList() throws MultichainException {
119124
List<String> addresses = new ArrayList<String>();
120125

121-
String stringAddresses = executeGetAddresses(false);
122-
addresses = AddressFormatter.formatAddressesStringList(stringAddresses);
126+
Object objectAddresses = executeGetAddresses(false);
127+
if (verifyInstance(objectAddresses, ArrayList.class)
128+
&& verifyInstanceofList((ArrayList<Object>) objectAddresses, String.class)) {
129+
addresses = (ArrayList<String>) objectAddresses;
130+
}
123131

124132
return addresses;
125133
}
@@ -161,11 +169,15 @@ public final List<String> getAddresses() throws MultichainException {
161169
* @return Addresses of the Wallet
162170
* @throws MultichainException
163171
*/
172+
@SuppressWarnings("unchecked")
164173
public final List<Address> getAddressesList() throws MultichainException {
165174
List<Address> addresses = new ArrayList<Address>();
166175

167-
String stringAddresses = executeGetAddresses(true);
168-
addresses = AddressFormatter.formatAddressesList(stringAddresses);
176+
Object objectAddresses = executeGetAddresses(true);
177+
if (verifyInstance(objectAddresses, ArrayList.class)
178+
&& verifyInstanceofList((ArrayList<Object>) objectAddresses, Address.class)) {
179+
addresses = AddressFormatter.formatAddressesList((ArrayList<Object>) objectAddresses);
180+
}
169181

170182
return addresses;
171183
}
@@ -190,11 +202,15 @@ public final List<Address> getAddressesList() throws MultichainException {
190202
*
191203
* @return Balances
192204
*/
205+
@SuppressWarnings("unchecked")
193206
public List<MultiBalance> getMultiBalances(String[] addresses) throws MultichainException {
194207
List<MultiBalance> listMultiBalance = new ArrayList<MultiBalance>();
195208

196-
String stringMultiBalance = executeGetMultiBalances(addresses);
197-
listMultiBalance = BalanceFormatter.formatMultiBalances(stringMultiBalance);
209+
Object objectMultiBalance = executeGetMultiBalances(addresses);
210+
if (verifyInstance(objectMultiBalance, ArrayList.class)
211+
&& verifyInstanceofList((ArrayList<Object>) objectMultiBalance, MultiBalance.class)) {
212+
listMultiBalance = BalanceFormatter.formatMultiBalances((ArrayList<Object>) objectMultiBalance);
213+
}
198214

199215
return listMultiBalance;
200216
}
@@ -238,11 +254,15 @@ public List<MultiBalance> getMultiBalances() throws MultichainException {
238254
* @return Balance of the address
239255
* @throws MultichainException
240256
*/
257+
@SuppressWarnings("unchecked")
241258
public List<BalanceAsset> getAddressBalances(String address) throws MultichainException {
242259
List<BalanceAsset> balance = new ArrayList<BalanceAsset>();
243260

244-
String stringBalances = executeGetAddressBalances(address);
245-
balance = BalanceFormatter.formatBalanceAssets(stringBalances);
261+
Object objectBalances = executeGetAddressBalances(address);
262+
if (verifyInstance(objectBalances, ArrayList.class)
263+
&& verifyInstanceofList((ArrayList<Object>) objectBalances, BalanceAsset.class)) {
264+
balance = BalanceFormatter.formatBalanceAssets((ArrayList<Object>) objectBalances);
265+
}
246266

247267
return balance;
248268
}
@@ -267,8 +287,14 @@ public List<BalanceAsset> getAddressBalances(String address) throws MultichainEx
267287
* @throws MultichainException
268288
*/
269289
public final String getNewAddress() throws MultichainException {
270-
String stringAddress = executeGetNewAddress();
271-
return formatString(stringAddress);
290+
String stringAddress = "";
291+
292+
Object objectAddress = executeGetNewAddress();
293+
if (verifyInstance(objectAddress, String.class)) {
294+
stringAddress = (String) objectAddress;
295+
}
296+
297+
return stringAddress;
272298
}
273299

274300
/**
@@ -293,8 +319,10 @@ public final String getNewAddress() throws MultichainException {
293319
public final Address getNewAddressFilled() throws MultichainException {
294320
Address address = new Address();
295321

296-
String stringAddress = executeGetNewAddress();
297-
address = validateAddress(stringAddress);
322+
Object objectAddress = executeGetNewAddress();
323+
if (verifyInstance(objectAddress, Address.class)) {
324+
address = (Address) objectAddress;
325+
}
298326

299327
return address;
300328
}
@@ -356,8 +384,8 @@ public void importAddress(String address, String label, boolean rescan) throws M
356384
public final Address validateAddress(String stringAddress) throws MultichainException {
357385
Address address = new Address();
358386

359-
String stringAddressInfo = executeValidateAddress(stringAddress);
360-
address = AddressFormatter.formatAddress(stringAddressInfo);
387+
Object objectAddressInfo = executeValidateAddress(stringAddress);
388+
address = AddressFormatter.formatAddress(objectAddressInfo);
361389

362390
return address;
363391
}

src/multichain/command/BalanceCommand.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
/**
1818
* @author Ub - H. MARTEAU
19-
* @version 2.0
19+
* @version 3.0
2020
*/
2121
public class BalanceCommand extends QueryBuilderBalance {
22-
public BalanceCommand(String chainName) {
23-
setCHAIN(chainName);
22+
public BalanceCommand(String ip, String port, String login, String password) {
23+
initialize(ip, port, login, password);
2424
}
2525

2626
/**
@@ -43,11 +43,16 @@ public BalanceCommand(String chainName) {
4343
* @return a list of all the asset balances in this node’s wallet
4444
* @throws MultichainException
4545
*/
46+
@SuppressWarnings("unchecked")
4647
public List<BalanceAsset> getTotalBalances() throws MultichainException {
4748
List<BalanceAsset> listBalanceAsset = new ArrayList<BalanceAsset>();
4849

49-
String stringBalanceAsset = executeGetTotalBalances();
50-
listBalanceAsset = BalanceFormatter.formatBalanceAssets(stringBalanceAsset);
50+
Object objectBalanceAsset = executeGetTotalBalances();
51+
52+
if (verifyInstance(objectBalanceAsset, ArrayList.class)
53+
&& verifyInstanceofList((ArrayList<Object>) objectBalanceAsset, BalanceAsset.class)) {
54+
listBalanceAsset = BalanceFormatter.formatBalanceAssets((ArrayList<Object>) objectBalanceAsset);
55+
}
5156

5257
return listBalanceAsset;
5358
}
@@ -60,7 +65,14 @@ public List<BalanceAsset> getTotalBalances() throws MultichainException {
6065
* @throws MultichainException
6166
*/
6267
public String getUnconfirmedBalance() throws MultichainException {
63-
return executeGetUnconfirmedBalance();
68+
String stringUnconfirmedBalance = "";
69+
70+
Object objectUnconfirmedBalance = executeGetUnconfirmedBalance();
71+
if (verifyInstance(objectUnconfirmedBalance, String.class)) {
72+
stringUnconfirmedBalance = (String) objectUnconfirmedBalance;
73+
}
74+
75+
return stringUnconfirmedBalance;
6476
}
6577

6678
}

0 commit comments

Comments
 (0)