Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

434
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda