@@ -25,6 +25,14 @@ public static void boot() throws IOException {
25
25
engine .executeVoidScript (file );
26
26
multisig = (V8Object ) engine .executeScript ("iotaFlash.multisig" );
27
27
transfer = (V8Object ) engine .executeScript ("iotaFlash.transfer" );
28
+
29
+ Model .Console console = new Model .Console ();
30
+ V8Object v8Console = new V8Object (engine );
31
+ engine .add ("console" , v8Console );
32
+ v8Console .registerJavaMethod (console , "log" , "log" , new Class <?>[] { String .class });
33
+ v8Console .registerJavaMethod (console , "err" , "err" , new Class <?>[] { String .class });
34
+ v8Console .release ();
35
+ engine .executeScript ("console.log('Connected JS console to V8Engine output.');" );
28
36
}
29
37
30
38
/**
@@ -93,11 +101,8 @@ public static CreateTransactionHelperObject updateLeafToRoot(MultisigAddress roo
93
101
94
102
V8Object ret = multisig .executeObjectFunction ("updateLeafToRoot" , params );
95
103
int generate = ret .getInteger ("generate" );
96
- Map <String , ? super Object > multiSigMap = V8ObjectUtils .toMap ((V8Object ) ret .getObject ("multisig" ));
97
- // Parse result into Java Obj.
98
- String addr = (String ) multiSigMap .get ("address" );
99
- int secSum = (Integer ) multiSigMap .get ("securitySum" );
100
- MultisigAddress multisig = new MultisigAddress (addr , secSum );
104
+ V8Object multisigObject = (V8Object ) ret .getObject ("multisig" );
105
+ MultisigAddress multisig = V8Converter .multisigAddressFromV8Object (multisigObject );
101
106
return new CreateTransactionHelperObject (generate , multisig );
102
107
}
103
108
@@ -110,7 +115,7 @@ public static CreateTransactionHelperObject updateLeafToRoot(MultisigAddress roo
110
115
* @param transfers array of all transfers (value, address) pairs
111
116
* @return
112
117
*/
113
- public static ArrayList <Transaction > prepare (ArrayList <String > settlementAddresses , ArrayList <Integer > deposits , int index , ArrayList <Transfer > transfers ) {
118
+ public static ArrayList <Transfer > prepare (ArrayList <String > settlementAddresses , ArrayList <Integer > deposits , int index , ArrayList <Transfer > transfers ) {
114
119
115
120
// Now put all params into JS ready array.
116
121
List <Object > params = new ArrayList <>();
@@ -121,21 +126,28 @@ public static ArrayList<Transaction> prepare(ArrayList<String> settlementAddress
121
126
122
127
// Call js function.
123
128
V8Array ret = transfer .executeArrayFunction ("prepare" , V8ObjectUtils .toV8Array (engine , params ));
124
- List <Object > transfersReturnJS = V8ObjectUtils .toList (ret );
129
+ return V8Converter .transferListFromV8Array (ret );
130
+ }
125
131
126
- ArrayList <Transaction > returnTransfers = new ArrayList <>();
127
132
128
- for (Object b : transfersReturnJS ) {
129
- Map <String , ? super Object > values = (Map <String , ? super Object >) b ;
130
- String obsoleteTag = (String ) values .get ("obsoleteTag" );
131
- String address = (String ) values .get ("address" );
132
- Integer value = (Integer ) values .get ("value" );
133
+ /**
134
+ *
135
+ * @param settlementAddresses
136
+ * @param deposits
137
+ * @return
138
+ */
139
+ public static ArrayList <Transfer > close (ArrayList <String > settlementAddresses , ArrayList <Integer > deposits ) {
140
+ V8Array saJS = V8ObjectUtils .toV8Array (engine , settlementAddresses );
141
+ // Deposits
142
+ V8Array depositsJS = V8ObjectUtils .toV8Array (engine , deposits );
133
143
134
- returnTransfers . add ( new Transaction ( address , value , "" , "" , 0 ));
135
- }
144
+ // Add to prams
145
+ ArrayList < Object > paramsObj = new ArrayList < Object >();
136
146
137
- // Call js.
138
- return returnTransfers ;
147
+ paramsObj .add (saJS );
148
+ paramsObj .add (depositsJS );
149
+ V8Array res = transfer .executeArrayFunction ("close" , V8ObjectUtils .toV8Array (engine , paramsObj ));
150
+ return V8Converter .transferListFromV8Array (res );
139
151
}
140
152
141
153
/**
@@ -146,7 +158,7 @@ public static ArrayList<Transaction> prepare(ArrayList<String> settlementAddress
146
158
* @param root
147
159
* @param remainderAddress
148
160
* @param history
149
- * @param transactions
161
+ * @param transfers
150
162
* @param close
151
163
* @return
152
164
*/
@@ -156,7 +168,7 @@ public static ArrayList<Bundle> compose(int balance,
156
168
MultisigAddress root ,
157
169
MultisigAddress remainderAddress ,
158
170
ArrayList <Bundle > history ,
159
- ArrayList <Transaction > transactions ,
171
+ ArrayList <Transfer > transfers ,
160
172
boolean close ) {
161
173
162
174
@@ -170,11 +182,10 @@ public static ArrayList<Bundle> compose(int balance,
170
182
params .add (V8Converter .multisigToV8Object (engine , root ));
171
183
params .add (V8Converter .multisigToV8Object (engine , remainderAddress ));
172
184
params .add (V8Converter .bundleListToV8Array (engine , history ));
173
- params .add (V8Converter .transactionListToV8Array (engine , transactions ));
185
+ params .add (V8Converter .transferListToV8Array (engine , transfers ));
174
186
175
187
// Call js function.
176
188
V8Array ret = transfer .executeArrayFunction ("compose" , V8ObjectUtils .toV8Array (engine , params ));
177
- List <Object > transfersReturnJS = V8ObjectUtils .toList (ret );
178
189
179
190
return V8Converter .bundleListFromV8Array (ret );
180
191
}
@@ -193,8 +204,9 @@ public static ArrayList<Signature> sign(MultisigAddress root, String seed, Array
193
204
List <Object > params = new ArrayList <>();
194
205
params .add (V8Converter .multisigToV8Object (engine , root ));
195
206
params .add (seed );
196
- params .add (V8Converter .bundleListToV8Array (engine , bundles ));
197
207
208
+ // Create bundle nested list by incoding all bundles
209
+ params .add (V8Converter .bundleListToV8Array (engine , bundles ));
198
210
V8Array returnArray = transfer .executeArrayFunction ("sign" , V8ObjectUtils .toV8Array (engine , params ));
199
211
200
212
return V8Converter .v8ArrayToSignatureList (returnArray );
@@ -256,26 +268,6 @@ public static void applayTransfers(MultisigAddress root,
256
268
transfer .executeFunction ("applyTransfers" , V8ObjectUtils .toV8Array (engine , params ));
257
269
}
258
270
259
- /**
260
- *
261
- * @param settlementAddresses
262
- * @param deposits
263
- * @return
264
- */
265
- public static Object close (ArrayList <String > settlementAddresses , ArrayList <Integer > deposits ) {
266
- V8Array saJS = V8ObjectUtils .toV8Array (engine , settlementAddresses );
267
- // Deposits
268
- V8Array depositsJS = V8ObjectUtils .toV8Array (engine , deposits );
269
-
270
- // Add to prams
271
- ArrayList <Object > paramsObj = new ArrayList <Object >();
272
-
273
- paramsObj .add (saJS );
274
- paramsObj .add (depositsJS );
275
- V8Object res = transfer .executeObjectFunction ("close" , V8ObjectUtils .toV8Array (engine , paramsObj ));
276
- return res ;
277
- }
278
-
279
271
/// Utils
280
272
281
273
/**
0 commit comments