This commit is contained in:
aniketfuryrocks 2023-06-06 16:22:39 +05:30
parent d169ff34a5
commit abc7d99569
No known key found for this signature in database
GPG Key ID: 1B75EA596D89FF06
4 changed files with 2134 additions and 5 deletions

5
jest.config.js Normal file
View File

@ -0,0 +1,5 @@
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
};

View File

@ -9,6 +9,8 @@
},
"devDependencies": {
"@types/node": "^20.1.0",
"jest": "^29.5.0",
"ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"typescript": "^5.0.4"
},

47
ws.test.ts Normal file
View File

@ -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]);
});

2085
yarn.lock

File diff suppressed because it is too large Load Diff