1
1
use crate :: error:: Error ;
2
- use crate :: vm:: { BackendApi , Environment , Querier } ;
2
+ use crate :: vm:: { Environment , Querier } ;
3
3
4
4
use wasmer:: { imports, Function , ImportObject , Store } ;
5
5
@@ -12,27 +12,24 @@ fn require_mem_range(max_range: usize, require_range: usize) -> Result<(), Error
12
12
Ok ( ( ) )
13
13
}
14
14
15
- fn do_gas < A , Q > ( env : & Environment < A , Q > , _gas : u32 ) -> Result < ( ) , Error >
15
+ fn do_gas < Q > ( env : & Environment < Q > , _gas : u32 ) -> Result < ( ) , Error >
16
16
where
17
- A : BackendApi + ' static ,
18
17
Q : Querier + ' static ,
19
18
{
20
19
env. decrease_gas_left ( 750_000_000 ) ?;
21
20
Ok ( ( ) )
22
21
}
23
22
24
- fn do_get_span_size < A , Q > ( env : & Environment < A , Q > ) -> Result < i64 , Error >
23
+ fn do_get_span_size < Q > ( env : & Environment < Q > ) -> Result < i64 , Error >
25
24
where
26
- A : BackendApi + ' static ,
27
25
Q : Querier + ' static ,
28
26
{
29
27
env. decrease_gas_left ( 750_000_000 ) ?;
30
28
Ok ( env. with_querier_from_context ( |querier| querier. get_span_size ( ) ) )
31
29
}
32
30
33
- fn do_read_calldata < A , Q > ( env : & Environment < A , Q > , ptr : i64 ) -> Result < i64 , Error >
31
+ fn do_read_calldata < Q > ( env : & Environment < Q > , ptr : i64 ) -> Result < i64 , Error >
34
32
where
35
- A : BackendApi + ' static ,
36
33
Q : Querier + ' static ,
37
34
{
38
35
env. with_querier_from_context ( |querier| {
52
49
} )
53
50
}
54
51
55
- fn do_set_return_data < A , Q > ( env : & Environment < A , Q > , ptr : i64 , len : i64 ) -> Result < ( ) , Error >
52
+ fn do_set_return_data < Q > ( env : & Environment < Q > , ptr : i64 , len : i64 ) -> Result < ( ) , Error >
56
53
where
57
- A : BackendApi + ' static ,
58
54
Q : Querier + ' static ,
59
55
{
60
56
env. with_querier_from_context ( |querier| {
@@ -76,60 +72,54 @@ where
76
72
} )
77
73
}
78
74
79
- fn do_get_ask_count < A , Q > ( env : & Environment < A , Q > ) -> Result < i64 , Error >
75
+ fn do_get_ask_count < Q > ( env : & Environment < Q > ) -> Result < i64 , Error >
80
76
where
81
- A : BackendApi + ' static ,
82
77
Q : Querier + ' static ,
83
78
{
84
79
env. decrease_gas_left ( 750_000_000 ) ?;
85
80
Ok ( env. with_querier_from_context ( |querier| querier. get_ask_count ( ) ) )
86
81
}
87
82
88
- fn do_get_min_count < A , Q > ( env : & Environment < A , Q > ) -> Result < i64 , Error >
83
+ fn do_get_min_count < Q > ( env : & Environment < Q > ) -> Result < i64 , Error >
89
84
where
90
- A : BackendApi + ' static ,
91
85
Q : Querier + ' static ,
92
86
{
93
87
env. decrease_gas_left ( 750_000_000 ) ?;
94
88
Ok ( env. with_querier_from_context ( |querier| querier. get_min_count ( ) ) )
95
89
}
96
90
97
- fn do_get_prepare_time < A , Q > ( env : & Environment < A , Q > ) -> Result < i64 , Error >
91
+ fn do_get_prepare_time < Q > ( env : & Environment < Q > ) -> Result < i64 , Error >
98
92
where
99
- A : BackendApi + ' static ,
100
93
Q : Querier + ' static ,
101
94
{
102
95
env. decrease_gas_left ( 750_000_000 ) ?;
103
96
Ok ( env. with_querier_from_context ( |querier| querier. get_prepare_time ( ) ) )
104
97
}
105
98
106
- fn do_get_execute_time < A , Q > ( env : & Environment < A , Q > ) -> Result < i64 , Error >
99
+ fn do_get_execute_time < Q > ( env : & Environment < Q > ) -> Result < i64 , Error >
107
100
where
108
- A : BackendApi + ' static ,
109
101
Q : Querier + ' static ,
110
102
{
111
103
env. decrease_gas_left ( 750_000_000 ) ?;
112
104
env. with_querier_from_context ( |querier| querier. get_execute_time ( ) )
113
105
}
114
106
115
- fn do_get_ans_count < A , Q > ( env : & Environment < A , Q > ) -> Result < i64 , Error >
107
+ fn do_get_ans_count < Q > ( env : & Environment < Q > ) -> Result < i64 , Error >
116
108
where
117
- A : BackendApi + ' static ,
118
109
Q : Querier + ' static ,
119
110
{
120
111
env. decrease_gas_left ( 750_000_000 ) ?;
121
112
env. with_querier_from_context ( |querier| querier. get_ans_count ( ) )
122
113
}
123
114
124
- fn do_ask_external_data < A , Q > (
125
- env : & Environment < A , Q > ,
115
+ fn do_ask_external_data < Q > (
116
+ env : & Environment < Q > ,
126
117
eid : i64 ,
127
118
did : i64 ,
128
119
ptr : i64 ,
129
120
len : i64 ,
130
121
) -> Result < ( ) , Error >
131
122
where
132
- A : BackendApi + ' static ,
133
123
Q : Querier + ' static ,
134
124
{
135
125
env. with_querier_from_context ( |querier| {
@@ -151,27 +141,21 @@ where
151
141
} )
152
142
}
153
143
154
- fn do_get_external_data_status < A , Q > (
155
- env : & Environment < A , Q > ,
156
- eid : i64 ,
157
- vid : i64 ,
158
- ) -> Result < i64 , Error >
144
+ fn do_get_external_data_status < Q > ( env : & Environment < Q > , eid : i64 , vid : i64 ) -> Result < i64 , Error >
159
145
where
160
- A : BackendApi + ' static ,
161
146
Q : Querier + ' static ,
162
147
{
163
148
env. decrease_gas_left ( 750_000_000 ) ?;
164
149
env. with_querier_from_context ( |querier| querier. get_external_data_status ( eid, vid) )
165
150
}
166
151
167
- fn do_read_external_data < A , Q > (
168
- env : & Environment < A , Q > ,
152
+ fn do_read_external_data < Q > (
153
+ env : & Environment < Q > ,
169
154
eid : i64 ,
170
155
vid : i64 ,
171
156
ptr : i64 ,
172
157
) -> Result < i64 , Error >
173
158
where
174
- A : BackendApi + ' static ,
175
159
Q : Querier + ' static ,
176
160
{
177
161
env. with_querier_from_context ( |querier| {
@@ -191,18 +175,17 @@ where
191
175
} )
192
176
}
193
177
194
- fn get_from_mem < A , Q > ( env : & Environment < A , Q > , ptr : i64 , len : i64 ) -> Result < Vec < u8 > , Error >
178
+ fn get_from_mem < Q > ( env : & Environment < Q > , ptr : i64 , len : i64 ) -> Result < Vec < u8 > , Error >
195
179
where
196
- A : BackendApi + ' static ,
197
180
Q : Querier + ' static ,
198
181
{
199
182
let memory = env. memory ( ) ?;
200
183
require_mem_range ( memory. size ( ) . bytes ( ) . 0 , ( ptr + len) as usize ) ?;
201
184
Ok ( memory. view ( ) [ ptr as usize ..( ptr + len) as usize ] . iter ( ) . map ( |cell| cell. get ( ) ) . collect ( ) )
202
185
}
203
186
204
- fn do_ecvrf_verify < A , Q > (
205
- env : & Environment < A , Q > ,
187
+ fn do_ecvrf_verify < Q > (
188
+ env : & Environment < Q > ,
206
189
y_ptr : i64 ,
207
190
y_len : i64 ,
208
191
pi_ptr : i64 ,
@@ -211,7 +194,6 @@ fn do_ecvrf_verify<A, Q>(
211
194
alpha_len : i64 ,
212
195
) -> Result < u32 , Error >
213
196
where
214
- A : BackendApi + ' static ,
215
197
Q : Querier + ' static ,
216
198
{
217
199
// consume gas relatively to the function running time (~12ms)
@@ -222,9 +204,8 @@ where
222
204
Ok ( ecvrf:: ecvrf_verify ( & y, & pi, & alpha) as u32 )
223
205
}
224
206
225
- pub fn create_import_object < A , Q > ( store : & Store , owasm_env : Environment < A , Q > ) -> ImportObject
207
+ pub fn create_import_object < Q > ( store : & Store , owasm_env : Environment < Q > ) -> ImportObject
226
208
where
227
- A : BackendApi + ' static ,
228
209
Q : Querier + ' static ,
229
210
{
230
211
imports ! {
@@ -253,7 +234,6 @@ mod test {
253
234
use crate :: cache:: { Cache , CacheOptions } ;
254
235
use crate :: compile:: compile;
255
236
use crate :: store:: make_store;
256
- use crate :: vm:: BackendApi ;
257
237
258
238
use std:: io:: { Read , Write } ;
259
239
use std:: process:: Command ;
@@ -264,10 +244,6 @@ mod test {
264
244
use wasmer:: Instance ;
265
245
use wasmer:: ValType :: { I32 , I64 } ;
266
246
267
- pub struct MockApi { }
268
-
269
- impl BackendApi for MockApi { }
270
-
271
247
pub struct MockQuerier { }
272
248
273
249
impl Querier for MockQuerier {
@@ -323,7 +299,7 @@ mod test {
323
299
wasm
324
300
}
325
301
326
- fn create_owasm_env ( ) -> ( Environment < MockApi , MockQuerier > , Instance ) {
302
+ fn create_owasm_env ( ) -> ( Environment < MockQuerier > , Instance ) {
327
303
let wasm = wat2wasm (
328
304
r#"(module
329
305
(func
@@ -338,9 +314,8 @@ mod test {
338
314
) ;
339
315
let code = compile ( & wasm) . unwrap ( ) ;
340
316
341
- let api = MockApi { } ;
342
317
let querier = MockQuerier { } ;
343
- let owasm_env = Environment :: new ( api , querier) ;
318
+ let owasm_env = Environment :: new ( querier) ;
344
319
let store = make_store ( ) ;
345
320
let import_object = create_import_object ( & store, owasm_env. clone ( ) ) ;
346
321
let mut cache = Cache :: new ( CacheOptions { cache_size : 10000 } ) ;
@@ -351,9 +326,8 @@ mod test {
351
326
352
327
#[ test]
353
328
fn test_import_object_function_type ( ) {
354
- let api = MockApi { } ;
355
329
let querier = MockQuerier { } ;
356
- let owasm_env = Environment :: new ( api , querier) ;
330
+ let owasm_env = Environment :: new ( querier) ;
357
331
let store = make_store ( ) ;
358
332
assert_eq ! ( create_import_object( & store, owasm_env. clone( ) ) . externs_vec( ) . len( ) , 13 ) ;
359
333
0 commit comments