Add spending limit

Disclaimer: This function can only be used by controlled multisigs, meaning the multisig has a config authority. If you have an autonomous multisig, you should create a Config 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];

const spendingLimitCreateKey = Keypair.generate().publicKey;

const spendingLimitPda = multisig.getSpendingLimitPda({
    multisigPda
    createKey: spendingLimitCreateKey,
})[0];

multisig.rpc.multisigAddSpendingLimit({
    connection,
    feePayer,
    // The multisig account Public Key
    multisigPda,
    // The spending limit account Public Key
    spendingLimit: spendingLimitPda,
    createKey: spendingLimitCreateKey,
    // Rent payer for state
    rentPayer: feePayer,
    // Spending limit amount
    amount: BigInt(1000000000),
    configAuthority: null,
    // Spending limit will apply daily, see reference for more info
    period: multisig.generated.Period.Day,
    // The mint of the token to apply the spending limit on
    mint: Keypair.generate().publicKey,
    destinations: [Keypair.generate().publicKey],
    // null means it will apply to all members, make it an array of Public Keys to specify certain members
    members: null,
    vaultIndex: 1,
}),

Last updated