RIF Multisig SDK - policies

Required packages:

Each multisig account is associated with a list of owners (eventually with one single owner) and a threshold.

The owners are the accounts that are allowed to operate on the Multisig account. The threshold is the minimum number of approvals required for executing a Multisig transaction.

For further information on how to setup a safe account and how to choose the right parameters, please refer to the official Gnosis Safe guidelines.

Both owners and threshold can be changed by means of transactions; those transactions, like all the other Multisig transactions, require to be signed at least by a minimum number of owners equal to the threshold set.

The safe-core-sdk package provides a set of methods to be used to create those transactions.

Owners

Add a new owner to the Multisig account and, optionally, set a new threshold.

// IMPORTANT! keep in mind that the new threshold cannot be greater than the ACTUAL number of owners (before executing the transaction)
const newOwner: string
const newThreshold: number
const ownerTx = await safe.getAddOwnerTx(newOwner, newThreshold)

Remove an owner from the Multisig account and, optionally, set a new threshold.

// IMPORTANT! keep in mind that the new threshold cannot be greater than the ACTUAL number of owners (before executing the transaction)
const newThreshold: number
const existingOwner: string
const ownerTx = await safe.getRemoveOwnerTx(existingOwner, newThreshold)

Replace an owner with a new one.

const oldOwner: string
const newOwner: string
const ownerTx = await safe.getSwapOwnerTx(oldOwner, newOwner)

Threshold

Change the threshold.

// IMPORTANT! keep in mind that the new threshold cannot be greater than the ACTUAL number of owners (before executing the transaction)
const newThreshold: number
const ownerTx = await safe.getChangeThresholdTx(newThreshold)

IMPORTANT: With the previously mentioned methods, we are creating the transaction, but we are not changing the Multisig account yet. The change will be applied once the transaction will be executed, after being signed by the right number of owners. Please refers to transaction execution for further instructions.