Estoy intentando usar Solana sobre Ethereum para una solución particular.
Estoy usando NPM para apuntar a las API de Solana. Los paquetes que se utilizan son @solana/web3.js y @solana/spl-token . Pude crear una conexión exitosa y generar pares de claves. Me gustaría poder guardar un par de claves generado, pero el problema al que me enfrento es que está codificado, y el segundo problema a resaltar es cuando uso .toString(); lo decodifica muy bien, pero eso no se puede usar en un lanzamiento aéreo.
const solanaWeb3 = require("@solana/web3.js"), const solanatoken = require("@solana/spl-token"); (async () => { // Connect to cluster var connection = new solanaWeb3.Connection( solanaWeb3.clusterApiUrl("devnet"), "confirmed" ); // Generate a new wallet keypair and airdrop SOL var wallet = solanaWeb3.Keypair.generate(); console.log("public key...", wallet.publicKey) // The stringPK is an example of what wallet.publicKey returns. When taking wallet.publicKey and using .toString(); it returns the decoded publicKey but that can't be used in an airdrop. const stringPK = `_bn: <BN: e8a4421b46f76fdeac76819ab21708cc4a4b9c9c7fc2a22e373443539cee1a81>`; console.log("private key...", JSON.stringify(wallet.secretKey.toString())); console.log(solanaWeb3.PublicKey.decode(wallet.publicKey)); var airdropSignature = await connection.requestAirdrop( stringPK, solanaWeb3.LAMPORTS_PER_SOL ); //wait for airdrop confirmation await connection.confirmTransaction(airdropSignature); let account = await connection.getAccountInfo(wallet.publicKey); console.log(account); })();Para guardar el par de claves generado en JS, su mejor opción es usar secretKey en el objeto Keypair [1], escribirlo en un archivo. Para volver a cargarlo, leerá ese archivo y luego usará fromSecretKey para recuperar su par de claves [2]
En cuanto a su otro problema, requestAirdrop toma una PublicKey , por lo que en su lugar, debe hacer lo siguiente:
var airdropSignature = await connection.requestAirdrop( wallet.publicKey, solanaWeb3.LAMPORTS_PER_SOL );[1] https://solana-labs.github.io/solana-web3.js/classes/Keypair.html#secretKey
[2] https://solana-labs.github.io/solana-web3.js/classes/Keypair.html#fromSecretKey