Skip to content

Instantly share code, notes, and snippets.

@aeither
Created July 24, 2022 09:53
Show Gist options
  • Save aeither/2ea88add9b527faf930357533efe3702 to your computer and use it in GitHub Desktop.
Save aeither/2ea88add9b527faf930357533efe3702 to your computer and use it in GitHub Desktop.
import {
clusterApiUrl,
Connection,
Keypair,
LAMPORTS_PER_SOL,
PublicKey,
sendAndConfirmTransaction,
Transaction,
TransactionInstruction,
TransactionSignature,
} from "@solana/web3.js";
import base58 from "bs58";
import Dotenv from "dotenv";
Dotenv.config();
let programId = new PublicKey("<YOUR_PROGRAM_ID>");
const connection = new Connection(clusterApiUrl("devnet"), "confirmed");
async function main() {
const secret = process.env.PRIVATE_KEY || "";
const secretKey = base58.decode(secret);
const payer = Keypair.fromSecretKey(secretKey);
await connection.requestAirdrop(payer.publicKey, LAMPORTS_PER_SOL * 1);
const transactionSignature = await sayHello(payer);
console.log(
`Transaction: https://explorer.solana.com/tx/${transactionSignature}?cluster=devnet`
);
}
main()
.then(() => {
console.log("Finished successfully");
})
.catch((error) => {
console.error(error);
});
export async function sayHello(payer: Keypair): Promise<TransactionSignature> {
const transaction = new Transaction();
const instruction = new TransactionInstruction({
keys: [],
programId,
});
transaction.add(instruction);
const transactionSignature = await sendAndConfirmTransaction(
connection,
transaction,
[payer]
);
return transactionSignature;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment