use core::str; use std::fmt::Debug; use defuse_serde_utils::base64::Base64; use impl_tools::autoimpl; use near_sdk::near; use serde_with::serde_as; use tlb_ton::StringError; use crate::schema::{PayloadSchema, TonConnectPayloadContext}; #[derive(Debug, Clone, PartialEq, Eq)] #[cfg_attr(test, derive(arbitrary::Arbitrary))] #[near(serializers = [json])] #[autoimpl(Deref using self.bytes)] pub struct BinaryPayload { #[serde_as(as = "Base64")] pub bytes: Vec, } impl PayloadSchema for BinaryPayload { fn hash_with_context( &self, context: TonConnectPayloadContext, ) -> Result { context.create_payload_hash(b"bin", self.as_slice()) } }