Skip to content

Commit 70639c0

Browse files
author
ub
committed
Issue by RAW Transaction Management
1 parent e485297 commit 70639c0

File tree

13 files changed

+587
-28
lines changed

13 files changed

+587
-28
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ hs_err_pid*
1717
/target
1818
/.settings
1919
*.iml
20+
/src/test

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.multichainjavaapi</groupId>
55
<artifactId>MultiChainJavaAPI</artifactId>
6-
<version>0.4.15-SNAPSHOT</version>
6+
<version>0.4.16-SNAPSHOT</version>
77

88
<properties>
99
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/multichain/command/RAWTransactionCommand.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@
1616
import multichain.object.SignedTransactionRAW;
1717
import multichain.object.TransactionRAW;
1818
import multichain.object.formatters.RAWTransactionFormatter;
19+
import multichain.object.queryobjects.DataParam;
1920
import multichain.object.queryobjects.RawParam;
2021
import multichain.object.queryobjects.TxIdVout;
2122

2223
/**
2324
* @author Ub - H. MARTEAU
24-
* @version 4.15
25+
* @version 4.16
2526
*/
2627
public class RAWTransactionCommand extends QueryBuilderRAWTransaction {
2728

@@ -449,11 +450,11 @@ public String createRawSendFrom(String address, List<RawParam> rawParams) throws
449450
* @return
450451
* @throws MultichainException
451452
*/
452-
public String createRawTransaction(List<TxIdVout> inputs, List<AddressBalance> addessBalances, List<String> hexMetaData)
453+
public String createRawTransaction(List<TxIdVout> inputs, List<AddressBalance> addessBalances, List<DataParam> data)
453454
throws MultichainException {
454455
String createTransactionRAW = new String();
455456

456-
Object objectTransactionRAW = executeCreateRawTransaction(inputs, addessBalances, hexMetaData);
457+
Object objectTransactionRAW = executeCreateRawTransaction(inputs, addessBalances, data);
457458
if (verifyInstance(objectTransactionRAW, String.class)) {
458459
createTransactionRAW = (String) objectTransactionRAW;
459460
}

src/main/java/multichain/command/builders/QueryBuilderRAWTransaction.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@
77
*/
88
package multichain.command.builders;
99

10+
import java.util.ArrayList;
1011
import java.util.HashMap;
1112
import java.util.List;
1213
import java.util.Map;
1314

1415
import multichain.command.MultichainException;
1516
import multichain.command.tools.MultichainTestParameter;
1617
import multichain.object.AddressBalance;
18+
import multichain.object.queryobjects.DataParam;
1719
import multichain.object.queryobjects.RawParam;
1820
import multichain.object.queryobjects.TxIdVout;
1921

2022
/**
2123
* @author Ub - H. MARTEAU
22-
* @version 4.13
24+
* @version 4.16
2325
*/
2426
public class QueryBuilderRAWTransaction extends QueryBuilderCommon {
2527

@@ -284,7 +286,7 @@ protected Object executeCreateRawSendFrom(String address, List<Map<String, Strin
284286
* @return
285287
* @throws MultichainException
286288
*/
287-
protected Object executeCreateRawTransaction(List<TxIdVout> inputs, List<AddressBalance> addessBalances, List<String> hexMetaData)
289+
protected Object executeCreateRawTransaction(List<TxIdVout> inputs, List<AddressBalance> addessBalances, List<DataParam> data)
288290
throws MultichainException {
289291
if (inputs == null || inputs.isEmpty()) {
290292
throw new MultichainException("inputs", "inputs needed to create a RAW Transaction");
@@ -302,8 +304,12 @@ protected Object executeCreateRawTransaction(List<TxIdVout> inputs, List<Address
302304
mapOuput.put(addessBalance.getAddress(), addessBalance.getValue());
303305
}
304306

305-
if (hexMetaData != null) {
306-
return execute(CommandEnum.CREATERAWTRANSACTION, inputs, mapOuput, hexMetaData);
307+
if (data != null) {
308+
List<Object> dataObject = new ArrayList<>();
309+
for (DataParam param : data) {
310+
dataObject.add(param.getFormatedvalue());
311+
}
312+
return execute(CommandEnum.CREATERAWTRANSACTION, inputs, mapOuput, dataObject);
307313
} else {
308314
return execute(CommandEnum.CREATERAWTRANSACTION, inputs, mapOuput);
309315
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
/*
2+
* Copyright (C) 2017 Worldline, Inc.
3+
*
4+
* MultiChainJavaAPI code distributed under the GPLv3 license, see COPYING file.
5+
* https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/LICENSE
6+
*
7+
*/
8+
package multichain.object;
9+
10+
import java.util.HashMap;
11+
import java.util.Map;
12+
import multichain.command.MultichainException;
13+
import multichain.command.tools.MultichainTestParameter;
14+
import multichain.object.queryobjects.ParamIssue;
15+
import multichain.object.queryobjects.ParamIssueMore;
16+
17+
/**
18+
* @author Ub - H. MARTEAU
19+
* @version 4.16
20+
*/
21+
public class AddressBalanceIssue implements AddressBalance {
22+
String address = null;
23+
ParamIssue issue = null;
24+
ParamIssueMore issuemore = null;
25+
26+
public void isFilled() throws MultichainException {
27+
MultichainTestParameter.isNotNullOrEmpty("address", address);
28+
if (issue == null && issuemore == null) {
29+
throw new MultichainException("issue/issuemore", "issue / issuremore badly filled (none).");
30+
} else if (issue != null && issuemore != null
31+
&& issue.isFilled() && issuemore.isFilled()) {
32+
throw new MultichainException("issue/issuemore", "issue / issuremore badly filled (both).");
33+
}
34+
35+
}
36+
37+
public Map<String, Object> getValue() throws MultichainException {
38+
Map<String, Object> mapAssets = new HashMap<String, Object>();
39+
40+
if (issue != null && issue.isFilled()) {
41+
mapAssets.put("issue", issue);
42+
} else if (issuemore != null && issuemore.isFilled()) {
43+
mapAssets.put("issuemore", issuemore);
44+
}
45+
46+
return mapAssets;
47+
}
48+
49+
/**
50+
*
51+
*/
52+
public AddressBalanceIssue() {
53+
super();
54+
// TODO Auto-generated constructor stub
55+
}
56+
57+
/**
58+
* @param address
59+
* @param issue
60+
* @param issuemore
61+
*/
62+
public AddressBalanceIssue(String address, ParamIssue issue, ParamIssueMore issuemore) {
63+
this.address = address;
64+
this.issue = issue;
65+
this.issuemore = issuemore;
66+
}
67+
68+
/**
69+
* @return the address
70+
*/
71+
public String getAddress() {
72+
return address;
73+
}
74+
75+
/**
76+
* @param address the address to set
77+
*/
78+
public void setAddress(String address) {
79+
this.address = address;
80+
}
81+
82+
/**
83+
* @return the issue
84+
*/
85+
public ParamIssue getIssue() {
86+
return issue;
87+
}
88+
89+
/**
90+
* @param issue the issue to set
91+
*/
92+
public void setIssue(ParamIssue issue) {
93+
this.issue = issue;
94+
}
95+
96+
/**
97+
* @return the issuemore
98+
*/
99+
public ParamIssueMore getIssuemore() {
100+
return issuemore;
101+
}
102+
103+
/**
104+
* @param issuemore the issuemore to set
105+
*/
106+
public void setIssuemore(ParamIssueMore issuemore) {
107+
this.issuemore = issuemore;
108+
}
109+
110+
111+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
* Copyright (C) 2017 Worldline, Inc.
3+
*
4+
* MultiChainJavaAPI code distributed under the GPLv3 license, see COPYING file.
5+
* https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/LICENSE
6+
*
7+
*/
8+
package multichain.object.queryobjects;
9+
10+
/**
11+
* @author Ub - H. MARTEAU
12+
* @version 4.16
13+
*/
14+
public interface DataParam {
15+
Object getFormatedvalue();
16+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright (C) 2017 Worldline, Inc.
3+
*
4+
* MultiChainJavaAPI code distributed under the GPLv3 license, see COPYING file.
5+
* https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/LICENSE
6+
*
7+
*/
8+
package multichain.object.queryobjects;
9+
10+
/**
11+
* @author Ub - H. MARTEAU
12+
* @version 4.16
13+
*/
14+
public class DataParamHex implements DataParam {
15+
private String hexValue = null;
16+
17+
@Override
18+
public String getFormatedvalue() {
19+
return getHexValue();
20+
}
21+
22+
/**
23+
*
24+
*/
25+
public DataParamHex() {
26+
super();
27+
}
28+
29+
/**
30+
* @param hexValue
31+
*/
32+
public DataParamHex(String hexValue) {
33+
this.hexValue = hexValue;
34+
}
35+
36+
/**
37+
* @return the hexValue
38+
*/
39+
public String getHexValue() {
40+
return hexValue;
41+
}
42+
43+
/**
44+
* @param hexValue the hexValue to set
45+
*/
46+
public void setHexValue(String hexValue) {
47+
this.hexValue = hexValue;
48+
}
49+
50+
51+
}

0 commit comments

Comments
 (0)