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

126
Vistas
¿Cómo enviar solana a través de mi aplicación en vanilla js?

Intentando hacer una función simple de envío y recepción en Solana con vainilla JS.

A continuación se muestra mi función de envío que funciona bien, y ahora quiero una función de recepción. Donde el proveedor obtendría Solana transferida de mi billetera de tesorería.

No estoy seguro de qué enfoque debería tener, solo estoy comenzando. ¿Hay alguna manera de simplemente mover las cosas en esta función? ¿O tengo que tener un enfoque totalmente diferente?

¡Gracias!

 async function transferSOL() { // Detecing and storing the phantom wallet of the user (creator in this case) var provider = phantom; // Establishing connection var connection = new web3.Connection( web3.clusterApiUrl('devnet'), ); var transaction = new web3.Transaction().add( web3.SystemProgram.transfer({ fromPubkey: provider.publicKey, toPubkey: treasuryWallet.publicKey, lamports: 0.1 * web3.LAMPORTS_PER_SOL - 100 }), ); // Setting the variables for the transaction transaction.feePayer = await provider.publicKey; let blockhashObj = await connection.getRecentBlockhash(); transaction.recentBlockhash = await blockhashObj.blockhash; // Request creator to sign the transaction (allow the transaction) let signed = await provider.signTransaction(transaction); let signature = await connection.sendRawTransaction(signed.serialize()); await connection.confirmTransaction(signature); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si desea transferir de su tesorería al usuario, entonces debe firmar para treasuryWallet de alguna manera. En su caso, parece que ya tiene el par de llaves disponible en su aplicación, por lo que simplemente puede hacer lo siguiente:

 var transaction = new web3.Transaction().add( web3.SystemProgram.transfer({ toPubkey: provider.publicKey, fromPubkey: treasuryWallet.publicKey, lamports: 0.1 * web3.LAMPORTS_PER_SOL - 100 }), ); // Setting the variables for the transaction transaction.feePayer = treasuryWallet.publicKey; let blockhashObj = await connection.getRecentBlockhash(); transaction.recentBlockhash = await blockhashObj.blockhash; // Request creator to sign the transaction (allow the transaction) transaction.sign(treasuryWallet); let signature = await connection.sendRawTransaction(transaction.serialize()); await connection.confirmTransaction(signature);

Tenga en cuenta que esto es muy inseguro! Todos los que usan su aplicación web tienen acceso completo a los fondos del tesoro si el par de llaves está expuesto, ya que pueden firmar todas las transacciones que quieran con él.

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