{"_id":"@arlert-dev/signer-solana","_rev":"2-50fded5e3bf4b4533ce46d2d683cf149","name":"@arlert-dev/signer-solana","dist-tags":{"next":"0.41.1-next.1","latest":"0.42.0"},"versions":{"0.41.1-next.1":{"name":"@arlert-dev/signer-solana","version":"0.41.1-next.1","license":"MIT","_id":"@arlert-dev/signer-solana@0.41.1-next.1","maintainers":[{"name":"alert_armin","email":"arlert@rango.exchange"}],"dist":{"shasum":"dbc7ab4bb89ea2b5756a8ec89d94923234625821","tarball":"https://registry.npmjs.org/@arlert-dev/signer-solana/-/signer-solana-0.41.1-next.1.tgz","fileCount":41,"integrity":"sha512-ptIRWg9/zC87I+i/g9pdu+aiKUM0vr46KfnOtElvQ2xIwvxYHbY/9Kcgby6ENPxv33z9mVY45SdITM/i4b3UTw==","signatures":[{"sig":"MEQCIEJGwXcz+sOYZGa+Wm7kf8F3PwPDbShEdKwJli4L4bSzAiAu+k5QDMBHfRNmwmGjSxyGmt2AELkljdRaW0/inlBOQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69905},"main":"./dist/index.js","type":"module","source":"./src/index.ts","exports":{".":"./dist/index.js"},"scripts":{"lint":"eslint \"**/*.{ts,tsx}\"","build":"node ../../scripts/build/command.mjs --path signers/signer-solana","clean":"rimraf dist","format":"prettier --write '{.,src}/**/*.{ts,tsx}'","ts-check":"tsc --declaration --emitDeclarationOnly -p ./tsconfig.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"alert_armin","email":"arlert@rango.exchange"},"description":"## Summary","directories":{},"dependencies":{"bs58":"^5.0.0","rango-types":"^0.1.88","promise-retry":"^2.0.1","@solana/web3.js":"^1.91.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/promise-retry":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/signer-solana_0.41.1-next.1_1753169402631_0.5166933426762865","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@arlert-dev/signer-solana","version":"0.42.0","license":"MIT","type":"module","source":"./src/index.ts","main":"./dist/index.js","exports":{".":"./dist/index.js"},"typings":"dist/index.d.ts","scripts":{"build":"node ../../scripts/build/command.mjs --path signers/signer-solana","ts-check":"tsc --declaration --emitDeclarationOnly -p ./tsconfig.json","clean":"rimraf dist","format":"prettier --write '{.,src}/**/*.{ts,tsx}'","lint":"eslint \"**/*.{ts,tsx}\""},"dependencies":{"@solana/web3.js":"^1.91.4","bs58":"^5.0.0","promise-retry":"^2.0.1","rango-types":"^0.1.88"},"devDependencies":{"@types/promise-retry":"^1.1.6"},"publishConfig":{"access":"public"},"description":"## Summary","_id":"@arlert-dev/signer-solana@0.42.0","dist":{"shasum":"129f15aa067fc609ae343c3d7fe843a56303d22b","integrity":"sha512-Y2Fco442fGVGgLQM9/mZJ/O16R0K+Xr+j3QQXPzoCg01gje/zXOe+xZPpanDdstezCMmz3bePk+4mzCRA7GH9g==","tarball":"https://registry.npmjs.org/@arlert-dev/signer-solana/-/signer-solana-0.42.0.tgz","fileCount":41,"unpackedSize":69898,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEPXIr4q29TU8eb3cdqVkMTuxsbdAik1CWW19DtsUuBOAiAEQuvLzPEGjUjJQyu5yQZVBoyGV++3WNnYRm3ti23AGg=="}]},"_npmUser":{"name":"alert_armin","email":"arlert@rango.exchange"},"directories":{},"maintainers":[{"name":"alert_armin","email":"arlert@rango.exchange"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signer-solana_0.42.0_1753199084109_0.6549439573705347"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-22T07:30:02.508Z","modified":"2025-07-22T15:44:44.730Z","0.41.1-next.1":"2025-07-22T07:30:02.809Z","0.42.0":"2025-07-22T15:44:44.533Z"},"license":"MIT","description":"## Summary","maintainers":[{"name":"alert_armin","email":"arlert@rango.exchange"}],"readme":"# @arlert-dev/signer-solana\n\n## Summary\n\nSigner for Rango Solana Transactions\n\nCurrecntly all Rango Solana transactions are Versioned (and serialized), only Solana Wrapper is already using the legacy format. (which is used only for SOL <-> WSol routes)\n\n## Versioned Transaction Sign Flow Overview:\n\n1. Get connection and recent blockhash\n\n   ```ts\n   const connection = new Connection(SOLANA_RPC_URL, {\n     commitment: 'confirmed',\n     disableRetryOnRateLimit: false,\n   });\n   const latestBlock = await connection.getLatestBlockhash('confirmed');\n   ```\n\n2. Prepare the transaction\n\n   ```ts\n   const transaction = VersionedTransaction.deserialize(\n     new Uint8Array(tx.serializedMessage)\n   );\n   transaction.message.recentBlockhash = recentBlockhash;\n   ```\n\n3. Simulate the transaction\n\n   ```ts\n   const { value } = await connection.simulateTransaction(transaction, {\n     replaceRecentBlockhash: true,\n     commitment: 'processed',\n   });\n   ```\n\n4. Sign the transaction\n\n   ```ts\n   const signedTransaction = await solanaProvider.signTransaction(\n     solanaWeb3Transaction\n   );\n   const serializedTransaction = Buffer.from(signedTransaction.serialize());\n   ```\n\n5. Send and confirm the transaction (similar to [jupiter suggested code](https://github.com/jup-ag/jupiter-quote-api-node/blob/main/example/utils/transactionSender.ts))\n\n   ```ts\n   const { txId, txResponse } = await transactionSenderAndConfirmationWaiter({\n     connection,\n     serializedTransaction,\n   });\n   ```\n","readmeFilename":"readme.md"}