Soru ve cevaplar

Rust cephesindeki hesabı nasıl seri durumdan çıkarabilirim?

Metin boyutu
Eksik #[max_len(32)] ile ilgili sorun, serileştirilmiş hesabın 32 bayt yapmak için 0 baytla doldurulmuş bir dize içermesidir, oysa seri durumdan çıkarma yapısı yalnızca dizenizin gerçekte kaç bayt uzunluğunda olduğunu seri durumdan çıkarmaya çalışır ve ardından kalan 0 bayt, aşağıdaki alanların seri durumdan çıkarılması için onu karıştırır. Bunu düzeltmek için deklarasyon_programını kullanmanızı öneririm! çapa_client'ten. Bu şekilde aynı yapıyı elle uygulamanıza gerek kalmazprogramınız ve istemciniz ve seri durumdan çıkarmanın sizin için ücretsiz olarak uygulanmasını sağlarsınız. Bu sorudan kopyalayıp yapıştırarak: ilan_program!(my_program); my_program::{ID, accounts::Proposal}'ı kullan; çapa_client::Client; kullanın let cl = İstemci::new_with_options( küme, ücret_payer, CommitmentConfig::confirmed(), ); let p = cl.program(ID).unwrap(); let acc_state: Teklif = p.account().bekliyor mu?; Yine de bunu yapamıyorsanız, BorshDeserialize::deserialize komutunu kullanmanızı öneririm, tıpkı probleminizin çok fazla bayta sahip olmasından kaynaklandığını söylediğim gibi. Proposal::deserialize(&mut &data[..]).unwrap(); Bunun, temel bayt dizinizi kalan baytları gösterecek şekilde değiştireceğini unutmayın. Sanırım bu sorun değil, çünkü muhtemelen aynı baytları başka hiçbir şey için kullanmayacaksınız, ama sadece bilginiz olsun.
Keşfetmeye devam edinVeri kataloğuAra