Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

439
Visualizações
Instrucción 0: ID de programa incorrecto para la instrucción. Funciona en devnet pero no en mainnet

Estoy tratando de hacer una transferencia de spl-token desde la billetera de un usuario. El siguiente código funciona perfectamente en la red de desarrollo, pero arroja un error en la Transaction simulation failed: Error processing Instruction 0: incorrect program id for instruction . Crea una cuenta de token asociada pero falla en la instrucción. ¿Cómo sería incorrecta la identificación del programa si la identificación del programa token de solana nunca cambia? Cualquier ayuda sería apreciada.

 let mint = new web3.PublicKey(mintAccount) let toWallet = new web3.PublicKey("ADDRESS") let owner = new web3.PublicKey(fromWallet.publicKey) const createTransaction = async (mint, minerWallet, owner) => { const transaction = new web3.Transaction() const destinationAccount = await splToken.Token.getAssociatedTokenAddress( splToken.ASSOCIATED_TOKEN_PROGRAM_ID, splToken.TOKEN_PROGRAM_ID, mint, toWallet, false ) const sourceAccount = await splToken.Token.getAssociatedTokenAddress( splToken.ASSOCIATED_TOKEN_PROGRAM_ID, splToken.TOKEN_PROGRAM_ID, mint, owner, false ) console.log("sending from " + sourceAccount.toBase58() + "to " + destinationAccount.toBase58()) transaction.feePayer = fromWallet.publicKey let blockhashObj = await connection.getRecentBlockhash(); transaction.recentBlockhash = blockhashObj.blockhash; let signature = ''; try { const destinationAccountInfo = await connection.getAccountInfo(destinationAccount) const destTokenAccountMissing = !destinationAccountInfo if (destTokenAccountMissing) { console.log("creating token account cuz it needs one") transaction.add( splToken.Token.createAssociatedTokenAccountInstruction( splToken.ASSOCIATED_TOKEN_PROGRAM_ID, // always associated token program id splToken.TOKEN_PROGRAM_ID, // always token program id mint, // mint (which we used to calculate ata) destinationAccount, // the ata we calcualted early toWallet, // token account owner (which we used to calculate ata) fromWallet.publicKey // payer, fund account, like SystemProgram.createAccount's from ) ); } transaction.add( splToken.Token.createTransferInstruction( splToken.TOKEN_PROGRAM_ID, sourceAccount, destinationAccount, fromWallet.publicKey, [], 1 ) ) signature = await sendTransaction(transaction, connection); console.log('info', 'Transaction sent:', signature) await connection.confirmTransaction(signature, 'processed'); console.log('success', 'Transaction successful!', signature); return true } catch (error) { console.log('error', `Transaction failed! ${error?.message}`, signature); return false }

}

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

IncorrectProgramId del programa token significa que el propietario de la cuenta no era el programa spl-token esperado.

En su caso, es posible que sourceAccount aún no se haya creado en la red principal.

about 4 years ago · Juan Pablo Isaza Relatório

0

Asegúrese de que la identificación del programa en su lib.rs (si está utilizando Anchor) sea correcta y que esta identificación del programa coincida con la proporcionada en Anchor.toml.

También imprima la identificación del programa en su proveedor para verificar que su interfaz TypeScript realmente use el programa correcto.

Si usa el marco de anclaje, puede obtener la idea del programa (¡para insertarla en todos los lugares mencionados anteriormente!), ejecutando solana-address -k target/deploy/program-keypair.json desde el directorio donde se encuentra su Anchor.toml . Anchor.toml se almacena.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda