Skip to content

Commit 5e9b051

Browse files
committed
Updated for multi func results.
1 parent 0e2aded commit 5e9b051

File tree

3 files changed

+50
-50
lines changed

3 files changed

+50
-50
lines changed

libchisel/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ edition = "2018"
1212

1313
[dependencies]
1414
binaryen = { version = "0.9", optional = true }
15-
parity-wasm = "^0.41.0"
15+
parity-wasm = { git = "https://github.com/g-r-a-n-t/parity-wasm" }
1616
failure = "0.1.6"
1717
walrus = "0.12.0"
1818
wasm-snip = "0.4.0"

libchisel/src/imports.rs

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -90,27 +90,27 @@ impl<'a> ModulePreset for ImportList<'a> {
9090
ImportType::Function(
9191
"ethereum",
9292
"useGas",
93-
FunctionType::new(vec![ValueType::I64], None),
93+
FunctionType::new(vec![ValueType::I64], vec![]),
9494
),
9595
ImportType::Function(
9696
"ethereum",
9797
"getGasLeft",
98-
FunctionType::new(vec![], Some(ValueType::I64)),
98+
FunctionType::new(vec![], vec![ValueType::I64]),
9999
),
100100
ImportType::Function(
101101
"ethereum",
102102
"getAddress",
103-
FunctionType::new(vec![ValueType::I32], None),
103+
FunctionType::new(vec![ValueType::I32], vec![]),
104104
),
105105
ImportType::Function(
106106
"ethereum",
107107
"getExternalBalance",
108-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
108+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
109109
),
110110
ImportType::Function(
111111
"ethereum",
112112
"getBlockHash",
113-
FunctionType::new(vec![ValueType::I64, ValueType::I32], Some(ValueType::I32)),
113+
FunctionType::new(vec![ValueType::I64, ValueType::I32], vec![ValueType::I32]),
114114
),
115115
ImportType::Function(
116116
"ethereum",
@@ -123,7 +123,7 @@ impl<'a> ModulePreset for ImportList<'a> {
123123
ValueType::I32,
124124
ValueType::I32,
125125
],
126-
Some(ValueType::I32),
126+
vec![ValueType::I32],
127127
),
128128
),
129129
ImportType::Function(
@@ -137,7 +137,7 @@ impl<'a> ModulePreset for ImportList<'a> {
137137
ValueType::I32,
138138
ValueType::I32,
139139
],
140-
Some(ValueType::I32),
140+
vec![ValueType::I32],
141141
),
142142
),
143143
ImportType::Function(
@@ -150,7 +150,7 @@ impl<'a> ModulePreset for ImportList<'a> {
150150
ValueType::I32,
151151
ValueType::I32,
152152
],
153-
Some(ValueType::I32),
153+
vec![ValueType::I32],
154154
),
155155
),
156156
ImportType::Function(
@@ -163,7 +163,7 @@ impl<'a> ModulePreset for ImportList<'a> {
163163
ValueType::I32,
164164
ValueType::I32,
165165
],
166-
Some(ValueType::I32),
166+
vec![ValueType::I32],
167167
),
168168
),
169169
ImportType::Function(
@@ -176,28 +176,28 @@ impl<'a> ModulePreset for ImportList<'a> {
176176
ValueType::I32,
177177
ValueType::I32,
178178
],
179-
Some(ValueType::I32),
179+
vec![ValueType::I32],
180180
),
181181
),
182182
ImportType::Function(
183183
"ethereum",
184184
"callDataCopy",
185-
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], None),
185+
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], vec![]),
186186
),
187187
ImportType::Function(
188188
"ethereum",
189189
"getCallDataSize",
190-
FunctionType::new(vec![], Some(ValueType::I32)),
190+
FunctionType::new(vec![], vec![ValueType::I32]),
191191
),
192192
ImportType::Function(
193193
"ethereum",
194194
"getCodeSize",
195-
FunctionType::new(vec![], Some(ValueType::I32)),
195+
FunctionType::new(vec![], vec![ValueType::I32]),
196196
),
197197
ImportType::Function(
198198
"ethereum",
199199
"getExternalCodeSize",
200-
FunctionType::new(vec![ValueType::I32], Some(ValueType::I32)),
200+
FunctionType::new(vec![ValueType::I32], vec![ValueType::I32]),
201201
),
202202
ImportType::Function(
203203
"ethereum",
@@ -209,68 +209,68 @@ impl<'a> ModulePreset for ImportList<'a> {
209209
ValueType::I32,
210210
ValueType::I32,
211211
],
212-
None,
212+
vec![],
213213
),
214214
),
215215
ImportType::Function(
216216
"ethereum",
217217
"codeCopy",
218-
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], None),
218+
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], vec![]),
219219
),
220220
ImportType::Function(
221221
"ethereum",
222222
"getCaller",
223-
FunctionType::new(vec![ValueType::I32], None),
223+
FunctionType::new(vec![ValueType::I32], vec![]),
224224
),
225225
ImportType::Function(
226226
"ethereum",
227227
"getCallValue",
228-
FunctionType::new(vec![ValueType::I32], None),
228+
FunctionType::new(vec![ValueType::I32], vec![]),
229229
),
230230
ImportType::Function(
231231
"ethereum",
232232
"getBlockDifficulty",
233-
FunctionType::new(vec![ValueType::I32], None),
233+
FunctionType::new(vec![ValueType::I32], vec![]),
234234
),
235235
ImportType::Function(
236236
"ethereum",
237237
"getBlockCoinbase",
238-
FunctionType::new(vec![ValueType::I32], None),
238+
FunctionType::new(vec![ValueType::I32], vec![]),
239239
),
240240
ImportType::Function(
241241
"ethereum",
242242
"getBlockNumber",
243-
FunctionType::new(vec![], Some(ValueType::I64)),
243+
FunctionType::new(vec![], vec![ValueType::I64]),
244244
),
245245
ImportType::Function(
246246
"ethereum",
247247
"getBlockGasLimit",
248-
FunctionType::new(vec![], Some(ValueType::I64)),
248+
FunctionType::new(vec![], vec![ValueType::I64]),
249249
),
250250
ImportType::Function(
251251
"ethereum",
252252
"getBlockTimestamp",
253-
FunctionType::new(vec![], Some(ValueType::I64)),
253+
FunctionType::new(vec![], vec![ValueType::I64]),
254254
),
255255
ImportType::Function(
256256
"ethereum",
257257
"getTxGasPrice",
258-
FunctionType::new(vec![ValueType::I32], None),
258+
FunctionType::new(vec![ValueType::I32], vec![]),
259259
),
260260
ImportType::Function(
261261
"ethereum",
262262
"getTxOrigin",
263-
FunctionType::new(vec![ValueType::I32], None),
263+
FunctionType::new(vec![ValueType::I32], vec![]),
264264
),
265265
ImportType::Function(
266266
"ethereum",
267267
"storageStore",
268-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
268+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
269269
),
270270
ImportType::Function(
271271
"ethereum",
272272
"storageLoad",
273-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
273+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
274274
),
275275
ImportType::Function(
276276
"ethereum",
@@ -285,99 +285,99 @@ impl<'a> ModulePreset for ImportList<'a> {
285285
ValueType::I32,
286286
ValueType::I32,
287287
],
288-
None,
288+
vec![],
289289
),
290290
),
291291
ImportType::Function(
292292
"ethereum",
293293
"getReturnDataSize",
294-
FunctionType::new(vec![], Some(ValueType::I32)),
294+
FunctionType::new(vec![], vec![ValueType::I32]),
295295
),
296296
ImportType::Function(
297297
"ethereum",
298298
"returnDataCopy",
299-
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], None),
299+
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], vec![]),
300300
),
301301
ImportType::Function(
302302
"ethereum",
303303
"finish",
304-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
304+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
305305
),
306306
ImportType::Function(
307307
"ethereum",
308308
"revert",
309-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
309+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
310310
),
311311
ImportType::Function(
312312
"ethereum",
313313
"selfDestruct",
314-
FunctionType::new(vec![ValueType::I32], None),
314+
FunctionType::new(vec![ValueType::I32], vec![]),
315315
),
316316
])),
317317
"eth2" => Ok(ImportList(vec![
318318
ImportType::Function(
319319
"eth2",
320320
"loadPreStateRoot",
321-
FunctionType::new(vec![ValueType::I32], None),
321+
FunctionType::new(vec![ValueType::I32], vec![]),
322322
),
323323
ImportType::Function(
324324
"eth2",
325325
"blockDataSize",
326-
FunctionType::new(vec![], Some(ValueType::I32)),
326+
FunctionType::new(vec![], vec![ValueType::I32]),
327327
),
328328
ImportType::Function(
329329
"eth2",
330330
"blockDataCopy",
331-
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], None),
331+
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], vec![]),
332332
),
333333
ImportType::Function(
334334
"eth2",
335335
"savePostStateRoot",
336-
FunctionType::new(vec![ValueType::I32], None),
336+
FunctionType::new(vec![ValueType::I32], vec![]),
337337
),
338338
ImportType::Function(
339339
"eth2",
340340
"pushNewDeposit",
341-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
341+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
342342
),
343343
])),
344344
"debug" => Ok(ImportList(vec![
345345
ImportType::Function(
346346
"debug",
347347
"print32",
348-
FunctionType::new(vec![ValueType::I32], None),
348+
FunctionType::new(vec![ValueType::I32], vec![]),
349349
),
350350
ImportType::Function(
351351
"debug",
352352
"print64",
353-
FunctionType::new(vec![ValueType::I64], None),
353+
FunctionType::new(vec![ValueType::I64], vec![]),
354354
),
355355
ImportType::Function(
356356
"debug",
357357
"printMem",
358-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
358+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
359359
),
360360
ImportType::Function(
361361
"debug",
362362
"printMemHex",
363-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
363+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
364364
),
365365
ImportType::Function(
366366
"debug",
367367
"printStorage",
368-
FunctionType::new(vec![ValueType::I32], None),
368+
FunctionType::new(vec![ValueType::I32], vec![]),
369369
),
370370
ImportType::Function(
371371
"debug",
372372
"printStorageHex",
373-
FunctionType::new(vec![ValueType::I32], None),
373+
FunctionType::new(vec![ValueType::I32], vec![]),
374374
),
375375
])),
376376
"bignum" => Ok(ImportList(vec![
377377
ImportType::Function(
378378
"bignum",
379379
"mul256",
380-
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], None),
380+
FunctionType::new(vec![ValueType::I32, ValueType::I32, ValueType::I32], vec![]),
381381
),
382382
ImportType::Function(
383383
"bignum",
@@ -389,15 +389,15 @@ impl<'a> ModulePreset for ImportList<'a> {
389389
ValueType::I32,
390390
ValueType::I32,
391391
],
392-
None,
392+
vec![],
393393
),
394394
),
395395
])),
396396
"wasi" => Ok(ImportList(vec![
397397
ImportType::Function(
398398
"wasi_snapshot_preview1",
399399
"args_get",
400-
FunctionType::new(vec![ValueType::I32, ValueType::I32], Some(ValueType::I32)),
400+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![ValueType::I32]),
401401
)
402402
])),
403403
_ => Err(ModuleError::NotSupported),

libchisel/src/verifyimports.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ mod tests {
587587
list: ImportList::with_entries(vec![ImportType::Function(
588588
"ethereum",
589589
"storageStore",
590-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
590+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
591591
)]),
592592
require_all: true,
593593
allow_unlisted: false,
@@ -622,7 +622,7 @@ mod tests {
622622
list: ImportList::with_entries(vec![ImportType::Function(
623623
"ethereum",
624624
"storageStore",
625-
FunctionType::new(vec![ValueType::I32, ValueType::I32], None),
625+
FunctionType::new(vec![ValueType::I32, ValueType::I32], vec![]),
626626
)]),
627627
allow_unlisted: true,
628628
require_all: true,

0 commit comments

Comments
 (0)