|
1 | 1 | use crate::graphql::zkapp::{GraphQLFailureReason, GraphQLFeePayer, GraphQLZkappCommand}; |
2 | 2 | use juniper::{GraphQLEnum, GraphQLObject}; |
3 | 3 | use mina_p2p_messages::v2::{ |
4 | | - MinaBaseSignedCommandPayloadBodyStableV2, MinaBaseStakeDelegationStableV2, |
5 | | - TransactionSnarkWorkTStableV2, |
| 4 | + MinaBaseSignedCommandPayloadBodyStableV2, MinaBaseSignedCommandStableV2, |
| 5 | + MinaBaseStakeDelegationStableV2, TransactionSnarkWorkTStableV2, |
6 | 6 | }; |
7 | 7 | use openmina_core::block::AppliedBlock; |
8 | 8 |
|
@@ -203,48 +203,7 @@ impl TryFrom<mina_p2p_messages::v2::StagedLedgerDiffDiffDiffStableV2> for GraphQ |
203 | 203 | for command in commands { |
204 | 204 | match command.data { |
205 | 205 | MinaBaseUserCommandStableV2::SignedCommand(user_command) => { |
206 | | - let is_delegation = matches!( |
207 | | - user_command.payload.body, |
208 | | - MinaBaseSignedCommandPayloadBodyStableV2::StakeDelegation(_) |
209 | | - ); |
210 | | - let hash = user_command.hash()?.to_string(); |
211 | | - |
212 | | - let fee = user_command.payload.common.fee.to_string(); |
213 | | - let memo = user_command.payload.common.memo.to_base58check(); |
214 | | - let nonce = user_command.payload.common.nonce.as_u32() as i32; |
215 | | - let valid_until = user_command.payload.common.valid_until.as_u32().to_string(); |
216 | | - |
217 | | - let (to, amount, kind) = match user_command.payload.body { |
218 | | - MinaBaseSignedCommandPayloadBodyStableV2::Payment(payment) => ( |
219 | | - payment.receiver_pk.to_string(), |
220 | | - Some(payment.amount.to_string()), |
221 | | - GraphQLUserCommandsKind::PAYMENT, |
222 | | - ), |
223 | | - MinaBaseSignedCommandPayloadBodyStableV2::StakeDelegation( |
224 | | - MinaBaseStakeDelegationStableV2::SetDelegate { new_delegate }, |
225 | | - ) => ( |
226 | | - new_delegate.to_string(), |
227 | | - None, |
228 | | - GraphQLUserCommandsKind::STAKE_DELEGATION, |
229 | | - ), |
230 | | - }; |
231 | | - |
232 | | - user_commands.push(GraphQLUserCommands { |
233 | | - hash, |
234 | | - from: user_command.signer.to_string(), |
235 | | - to, |
236 | | - is_delegation, |
237 | | - amount, |
238 | | - failure_reason: Default::default(), |
239 | | - fee, |
240 | | - fee_token: Default::default(), |
241 | | - id: Default::default(), |
242 | | - kind, |
243 | | - memo, |
244 | | - nonce, |
245 | | - token: Default::default(), |
246 | | - valid_until, |
247 | | - }); |
| 206 | + user_commands.push(GraphQLUserCommands::try_from(user_command)?); |
248 | 207 | } |
249 | 208 | MinaBaseUserCommandStableV2::ZkappCommand(zkapp) => { |
250 | 209 | let failure_reason = |
@@ -377,3 +336,53 @@ impl From<&TransactionSnarkWorkTStableV2> for GraphQLSnarkJob { |
377 | 336 | } |
378 | 337 | } |
379 | 338 | } |
| 339 | + |
| 340 | +impl TryFrom<MinaBaseSignedCommandStableV2> for GraphQLUserCommands { |
| 341 | + type Error = ConversionError; |
| 342 | + |
| 343 | + fn try_from(user_command: MinaBaseSignedCommandStableV2) -> Result<Self, Self::Error> { |
| 344 | + let is_delegation = matches!( |
| 345 | + user_command.payload.body, |
| 346 | + MinaBaseSignedCommandPayloadBodyStableV2::StakeDelegation(_) |
| 347 | + ); |
| 348 | + let hash = user_command.hash()?.to_string(); |
| 349 | + let id = user_command.to_base64()?; |
| 350 | + |
| 351 | + let fee = user_command.payload.common.fee.to_string(); |
| 352 | + let memo = user_command.payload.common.memo.to_base58check(); |
| 353 | + let nonce = user_command.payload.common.nonce.as_u32() as i32; |
| 354 | + let valid_until = user_command.payload.common.valid_until.as_u32().to_string(); |
| 355 | + |
| 356 | + let (to, amount, kind) = match user_command.payload.body { |
| 357 | + MinaBaseSignedCommandPayloadBodyStableV2::Payment(payment) => ( |
| 358 | + payment.receiver_pk.to_string(), |
| 359 | + Some(payment.amount.to_string()), |
| 360 | + GraphQLUserCommandsKind::PAYMENT, |
| 361 | + ), |
| 362 | + MinaBaseSignedCommandPayloadBodyStableV2::StakeDelegation( |
| 363 | + MinaBaseStakeDelegationStableV2::SetDelegate { new_delegate }, |
| 364 | + ) => ( |
| 365 | + new_delegate.to_string(), |
| 366 | + None, |
| 367 | + GraphQLUserCommandsKind::STAKE_DELEGATION, |
| 368 | + ), |
| 369 | + }; |
| 370 | + |
| 371 | + Ok(GraphQLUserCommands { |
| 372 | + hash, |
| 373 | + from: user_command.signer.to_string(), |
| 374 | + to, |
| 375 | + is_delegation, |
| 376 | + amount, |
| 377 | + failure_reason: Default::default(), |
| 378 | + fee, |
| 379 | + fee_token: Default::default(), |
| 380 | + id, |
| 381 | + kind, |
| 382 | + memo, |
| 383 | + nonce, |
| 384 | + token: Default::default(), |
| 385 | + valid_until, |
| 386 | + }) |
| 387 | + } |
| 388 | +} |
0 commit comments