@@ -114,6 +114,32 @@ macro_rules! impl_getters_for_srml_env {
114
114
}
115
115
}
116
116
117
+ impl < T > SrmlEnv < T >
118
+ where
119
+ T : EnvTypes ,
120
+ {
121
+ fn call (
122
+ callee : <Self as EnvTypes >:: AccountId ,
123
+ gas : u64 ,
124
+ value : <Self as EnvTypes >:: Balance ,
125
+ input_data : & [ u8 ] ,
126
+ ) -> u32 {
127
+ let callee = callee. encode ( ) ;
128
+ let value = value. encode ( ) ;
129
+ unsafe {
130
+ sys:: ext_call (
131
+ callee. as_ptr ( ) as u32 ,
132
+ callee. len ( ) as u32 ,
133
+ gas,
134
+ value. as_ptr ( ) as u32 ,
135
+ value. len ( ) as u32 ,
136
+ input_data. as_ptr ( ) as u32 ,
137
+ input_data. len ( ) as u32 ,
138
+ )
139
+ }
140
+ }
141
+ }
142
+
117
143
impl < T > Env for SrmlEnv < T >
118
144
where
119
145
T : EnvTypes ,
@@ -171,19 +197,7 @@ where
171
197
value : <Self as EnvTypes >:: Balance ,
172
198
input_data : & [ u8 ] ,
173
199
) -> Result < ( ) , CallError > {
174
- let callee = callee. encode ( ) ;
175
- let value = value. encode ( ) ;
176
- let result = unsafe {
177
- sys:: ext_call (
178
- callee. as_ptr ( ) as u32 ,
179
- callee. len ( ) as u32 ,
180
- gas,
181
- value. as_ptr ( ) as u32 ,
182
- value. len ( ) as u32 ,
183
- input_data. as_ptr ( ) as u32 ,
184
- input_data. len ( ) as u32 ,
185
- )
186
- } ;
200
+ let result = Self :: call ( callee, gas, value, input_data) ;
187
201
if result != 0 {
188
202
return Err ( CallError )
189
203
}
@@ -196,19 +210,7 @@ where
196
210
value : <Self as EnvTypes >:: Balance ,
197
211
input_data : & [ u8 ] ,
198
212
) -> Result < U , CallError > {
199
- let callee = callee. encode ( ) ;
200
- let value = value. encode ( ) ;
201
- let result = unsafe {
202
- sys:: ext_call (
203
- callee. as_ptr ( ) as u32 ,
204
- callee. len ( ) as u32 ,
205
- gas,
206
- value. as_ptr ( ) as u32 ,
207
- value. len ( ) as u32 ,
208
- input_data. as_ptr ( ) as u32 ,
209
- input_data. len ( ) as u32 ,
210
- )
211
- } ;
213
+ let result = Self :: call ( callee, gas, value, input_data) ;
212
214
if result != 0 {
213
215
return Err ( CallError )
214
216
}
0 commit comments