Perguntas e respostas

Como posso desserializar a conta no Rust fronted?

Tamanho do texto
O problema com o #[max_len(32)] ausente é que a conta serializada contém uma string preenchida com 0 bytes para perfazer 32 bytes, enquanto a estrutura de desserialização tenta desserializar apenas quantos bytes sua string realmente tem e, em seguida, os 0 bytes restantes bagunçam tudo para desserializar os seguintes campos. Para corrigir isso, recomendo usar declare_program! de âncora_cliente. Dessa forma, você não precisa implementar a mesma estrutura manualmenteseu programa e cliente e você terá a desserialização implementada gratuitamente. Copie e cole esta pergunta: declare_program!(meu_programa); use meu_programa::{ID, contas::Proposta}; use âncora_cliente::Cliente; deixe cl = Cliente::new_with_options( aglomerado, taxa_pagador, CommitmentConfig::confirmado(), ); deixe p = cl.program(ID).unwrap(); deixe acc_state: Proposta = p.account().await?; Se você não puder fazer isso, recomendo usar BorshDeserialize::deserialize como eu disse, seu problema é ter muitos bytes. Proposta::deserialize(&mut &data[..]).unwrap(); Observe que isso alterará sua matriz de bytes subjacente para apontar para os bytes restantes. Acho que está tudo bem, pois você provavelmente não usará esses mesmos bytes para mais nada, mas apenas para sua informação.
Continue explorandoCatálogo de dadosPesquisar