defuse_core/payload/
sep53.rs1use crate::payload::{DefusePayload, ExtractDefusePayload};
2use defuse_sep53::{Sep53Payload, SignedSep53Payload};
3use near_sdk::{serde::de::DeserializeOwned, serde_json};
4
5impl<T> ExtractDefusePayload<T> for SignedSep53Payload
6where
7 T: DeserializeOwned,
8{
9 type Error = serde_json::Error;
10
11 #[inline]
12 fn extract_defuse_payload(self) -> Result<DefusePayload<T>, Self::Error> {
13 self.payload.extract_defuse_payload()
14 }
15}
16
17impl<T> ExtractDefusePayload<T> for Sep53Payload
18where
19 T: DeserializeOwned,
20{
21 type Error = serde_json::Error;
22
23 fn extract_defuse_payload(self) -> Result<DefusePayload<T>, Self::Error> {
24 serde_json::from_str(&self.payload)
25 }
26}