|
59 | 59 | value.saturating_to(),
|
60 | 60 | )?;
|
61 | 61 |
|
62 |
| - deposit_event( |
63 |
| - env, |
64 |
| - address, |
65 |
| - Transfer { token: *token, from, to: *to, value: *value }, |
66 |
| - ); |
| 62 | + let event = Transfer { token: *token, from, to: *to, value: *value }; |
| 63 | + deposit_event(env, address, event); |
67 | 64 | Ok(transferCall::abi_encode_returns(&transferReturn {}))
|
68 | 65 | },
|
69 | 66 | IFungiblesCalls::transferFrom(transferFromCall { token, from, to, value }) => {
|
@@ -100,12 +97,8 @@ where
|
100 | 97 | .adjust_gas(charged, RuntimeCosts::Precompile(actual_weight));
|
101 | 98 | }
|
102 | 99 |
|
103 |
| - let spender = *spender; |
104 |
| - deposit_event( |
105 |
| - env, |
106 |
| - address, |
107 |
| - Approval { token: *token, owner, spender, value: *value }, |
108 |
| - ); |
| 100 | + let event = Approval { token: *token, owner, spender: *spender, value: *value }; |
| 101 | + deposit_event(env, address, event); |
109 | 102 | Ok(approveCall::abi_encode_returns(&approveReturn {}))
|
110 | 103 | },
|
111 | 104 | IFungiblesCalls::increaseAllowance(increaseAllowanceCall { token, spender, value }) => {
|
@@ -187,22 +180,27 @@ where
|
187 | 180 | },
|
188 | 181 | IFungiblesCalls::startDestroy(startDestroyCall { token }) => {
|
189 | 182 | env.charge(<T as Config<I>>::WeightInfo::start_destroy())?;
|
| 183 | + |
190 | 184 | start_destroy::<T, I>(to_runtime_origin(env.caller()), (*token).into())?;
|
| 185 | + |
191 | 186 | Ok(startDestroyCall::abi_encode_returns(&startDestroyReturn {}))
|
192 | 187 | },
|
193 | 188 | IFungiblesCalls::setMetadata(setMetadataCall { token, name, symbol, decimals }) => {
|
194 | 189 | env.charge(<T as Config<I>>::WeightInfo::set_metadata())?;
|
| 190 | + |
195 | 191 | set_metadata::<T, I>(
|
196 | 192 | to_runtime_origin(env.caller()),
|
197 | 193 | (*token).into(),
|
198 | 194 | name.as_bytes().to_vec(),
|
199 | 195 | symbol.as_bytes().to_vec(),
|
200 | 196 | *decimals,
|
201 | 197 | )?;
|
| 198 | + |
202 | 199 | Ok(setMetadataCall::abi_encode_returns(&setMetadataReturn {}))
|
203 | 200 | },
|
204 | 201 | IFungiblesCalls::clearMetadata(clearMetadataCall { token }) => {
|
205 | 202 | env.charge(<T as Config<I>>::WeightInfo::clear_metadata())?;
|
| 203 | + |
206 | 204 | clear_metadata::<T, I>(to_runtime_origin(env.caller()), (*token).into())?;
|
207 | 205 | Ok(clearMetadataCall::abi_encode_returns(&clearMetadataReturn {}))
|
208 | 206 | },
|
@@ -241,56 +239,66 @@ where
|
241 | 239 | e.error
|
242 | 240 | })?;
|
243 | 241 |
|
244 |
| - let from = account; |
245 | 242 | let to = Address::default();
|
246 |
| - deposit_event( |
247 |
| - env, |
248 |
| - address, |
249 |
| - Transfer { token: *token, from: *from, to, value: *value }, |
250 |
| - ); |
| 243 | + let event = Transfer { token: *token, from: *account, to, value: *value }; |
| 244 | + deposit_event(env, address, event); |
251 | 245 | Ok(burnCall::abi_encode_returns(&burnReturn {}))
|
252 | 246 | },
|
253 | 247 | IFungiblesCalls::totalSupply(totalSupplyCall { token }) => {
|
254 | 248 | env.charge(<T as Config<I>>::WeightInfo::total_supply())?;
|
| 249 | + |
255 | 250 | let total_supply =
|
256 | 251 | U256::saturating_from(<Assets<T, I>>::total_supply((*token).into()));
|
| 252 | + |
257 | 253 | Ok(totalSupplyCall::abi_encode_returns(&total_supply))
|
258 | 254 | },
|
259 | 255 | IFungiblesCalls::balanceOf(balanceOfCall { token, owner }) => {
|
260 | 256 | env.charge(<T as Config<I>>::WeightInfo::balance_of())?;
|
| 257 | + |
261 | 258 | let account = env.to_account_id(&(*owner.0).into());
|
262 | 259 | let balance =
|
263 | 260 | U256::saturating_from(<Assets<T, I>>::balance((*token).into(), account));
|
| 261 | + |
264 | 262 | Ok(balanceOfCall::abi_encode_returns(&balance))
|
265 | 263 | },
|
266 | 264 | IFungiblesCalls::allowance(allowanceCall { token, owner, spender }) => {
|
267 | 265 | env.charge(<T as Config<I>>::WeightInfo::allowance())?;
|
| 266 | + |
268 | 267 | let owner = env.to_account_id(&(*owner.0).into());
|
269 | 268 | let spender = env.to_account_id(&(*spender.0).into());
|
270 | 269 | let allowance = <Assets<T, I>>::allowance((*token).into(), &owner, &spender);
|
271 | 270 | let remaining = U256::saturating_from(allowance);
|
| 271 | + |
272 | 272 | Ok(allowanceCall::abi_encode_returns(&remaining))
|
273 | 273 | },
|
274 | 274 | IFungiblesCalls::name(nameCall { token }) => {
|
275 | 275 | env.charge(<T as Config<I>>::WeightInfo::metadata_name())?;
|
| 276 | + |
276 | 277 | let result = <Assets<T, I>>::name((*token).into());
|
277 | 278 | let result = String::from_utf8_lossy(result.as_slice()).into();
|
| 279 | + |
278 | 280 | Ok(nameCall::abi_encode_returns(&result))
|
279 | 281 | },
|
280 | 282 | IFungiblesCalls::symbol(symbolCall { token }) => {
|
281 | 283 | env.charge(<T as Config<I>>::WeightInfo::metadata_symbol())?;
|
| 284 | + |
282 | 285 | let result = <Assets<T, I>>::symbol((*token).into());
|
283 | 286 | let result = String::from_utf8_lossy(result.as_slice()).into();
|
| 287 | + |
284 | 288 | Ok(nameCall::abi_encode_returns(&result))
|
285 | 289 | },
|
286 | 290 | IFungiblesCalls::decimals(decimalsCall { token }) => {
|
287 | 291 | env.charge(<T as Config<I>>::WeightInfo::metadata_decimals())?;
|
| 292 | + |
288 | 293 | let result = <Assets<T, I>>::decimals((*token).into());
|
| 294 | + |
289 | 295 | Ok(decimalsCall::abi_encode_returns(&result))
|
290 | 296 | },
|
291 | 297 | IFungiblesCalls::exists(existsCall { token }) => {
|
292 | 298 | env.charge(<T as Config<I>>::WeightInfo::exists())?;
|
| 299 | + |
293 | 300 | let result = self::exists::<T, I>((*token).into());
|
| 301 | + |
294 | 302 | Ok(existsCall::abi_encode_returns(&result))
|
295 | 303 | },
|
296 | 304 | }
|
|
0 commit comments