Create Vault Transaction
Typescript
import * as multisig from "@sqds/multisig";
// Cluster Connection
const connection = new Connection( < your rpc url > );
// Fee payer is the a signer that pays the transaction fees
const feePayer = Keypair.generate();
// Derive the multisig PDA
const multisigPda = multisig.getMultisigPda({
// The createKey has to be a Public Key, see accounts reference for more info
createKey,
})[0];
// Derive the PDA of the Squads Vault
const [vaultPda] = multisig.getVaultPda({
multisigPda,
index: 0,
});
const transactionIndex = 1n;
const transferInstruction = SystemProgram.transfer(
// The transfer is being signed from the Squads Vault, that is why we use the VaultPda
vaultPda,
to.publicKey,
1 * LAMPORTS_PER_SOL
);
// Here we are adding all the instructions that we want to be executed in our transaction
const testTransferMessage = new TransactionMessage({
payerKey: vaultPda,
recentBlockhash: (await connection.getLatestBlockhash()).blockhash,
instructions: [transferInstruction],
});
await multisig.rpc.vaultTransactionCreate({
connection,
feePayer,
multisigPda,
transactionIndex,
creator: feePayer.publicKey,
vaultIndex: 0,
ephemeralSigners: 0,
transactionMessage: testTransferMessage,
});
Last updated