Ir para o conteúdo principal
Início/Base de conhecimento
InstruçãoFallbackNotFound. Número do erro: 101. Mensagem de erro: funções de fallback não são suportadas
Você deve fornecer o discriminador de instruções para os dados de sua transação, como Ademola mencionou.
O que você pode fazer é buscar o discriminador de instruções e anexá-lo aos seus dados nos primeiros 8 bytes.
Buscar discriminador de instruções em Rust
pub fn suspiroash(namespace: &str, nome: &str) -> [u8; 8] {
deixe pré-imagem = formato!("{}:{}", namespace, nome);
deixe mut suspiroash = [0u8; 8];
suspiroash.copy_from_slice(
&anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes()
[..8],
);
suspiro
}
println!("{:?}", suspiroash("global", "inicializar"));
Buscar instrução do discriminador em texto datilografado
function suspiroash(nameSpace: string, ixName: string): Buffer {
deixe nome = cobraCase(ixName);
deixe pré-imagem = `${nameSpace}:${name}`;
return Buffer.from(sha256.digest(preimage)).slice(0, 8);
}
namespace deve ser global
Aqui está um exemplo em Typescript
// Elabora o InstructionBuffer
const ixBuffer = suspiroash('global','inicializar');
const instruçãoBuffer = Buffer.concat([
ixBuffer, // namespace+nome_método
OtherBuffer, // Outros dados que você deseja passar para a instrução.
])
// Crie a instrução
const transactionInstruction = new TransactionInstruction({
ID do programa: endereço do programa,
dados: instruçãoBuffer,
teclas: [
...
]
})