Compare commits
2 Commits
d169ff34a5
...
d256fcb35d
Author | SHA1 | Date |
---|---|---|
Aniket Prajapati | d256fcb35d | |
aniketfuryrocks | abc7d99569 |
|
@ -0,0 +1,5 @@
|
||||||
|
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
||||||
|
module.exports = {
|
||||||
|
preset: 'ts-jest',
|
||||||
|
testEnvironment: 'node',
|
||||||
|
};
|
|
@ -9,6 +9,8 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.1.0",
|
"@types/node": "^20.1.0",
|
||||||
|
"jest": "^29.5.0",
|
||||||
|
"ts-jest": "^29.1.0",
|
||||||
"ts-node": "^10.9.1",
|
"ts-node": "^10.9.1",
|
||||||
"typescript": "^5.0.4"
|
"typescript": "^5.0.4"
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
import { Connection, Keypair, sendAndConfirmTransaction, Transaction, PublicKey, TransactionInstruction, BlockheightBasedTransactionConfirmationStrategy } from "@solana/web3.js";
|
||||||
|
import * as fs from "fs";
|
||||||
|
import * as os from "os";
|
||||||
|
import * as crypto from "crypto";
|
||||||
|
|
||||||
|
jest.setTimeout(60000);
|
||||||
|
|
||||||
|
const MEMO_PROGRAM_ID = new PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr");
|
||||||
|
const connection = new Connection('http://0.0.0.0:8899', 'confirmed');
|
||||||
|
const keypair_file = fs.readFileSync(`${os.homedir}/.config/solana/id.json`, 'utf-8');
|
||||||
|
const payer = Keypair.fromSecretKey(Uint8Array.from(JSON.parse(keypair_file)));
|
||||||
|
|
||||||
|
function createTransaction(): Transaction {
|
||||||
|
const transaction = new Transaction();
|
||||||
|
|
||||||
|
transaction.add(
|
||||||
|
new TransactionInstruction({
|
||||||
|
programId: MEMO_PROGRAM_ID,
|
||||||
|
keys: [],
|
||||||
|
data: Buffer.from(crypto.randomBytes(20).toString('hex'))
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
return transaction;
|
||||||
|
}
|
||||||
|
|
||||||
|
test('send and confirm transaction BlockheightBasedTransactionConfirmationStrategy', async () => {
|
||||||
|
const tx = createTransaction();
|
||||||
|
const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash();
|
||||||
|
|
||||||
|
const signature = await connection.sendTransaction(tx, [payer]);
|
||||||
|
await connection.confirmTransaction({
|
||||||
|
blockhash,
|
||||||
|
lastValidBlockHeight,
|
||||||
|
signature,
|
||||||
|
abortSignal: undefined
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`https://explorer.solana.com/tx/${signature}`)
|
||||||
|
});
|
||||||
|
|
||||||
|
test('send and confirm transaction', async () => {
|
||||||
|
const tx = createTransaction();
|
||||||
|
|
||||||
|
await sendAndConfirmTransaction(connection, tx, [payer]);
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in New Issue