Creating New Instances

Create new Instances of Hats Signer Gate (HSG) and/or Multi Hats Signer Gate (MHSG), optionally together with a new Safe, using the Hats Signer Gate Factory.

deployHatsSignerGateAndSafe

Create a new HSG and a new Safe, all wired up together.

const createHsgResult = await hatsSignerGateClient.deployHatsSignerGateAndSafe({
    account,
    ownerHatId,
    signersHatId,
    minThreshold,
    targetThreshold,
    maxSigners,
});

Arguments:

{
    account: Account | Address;
    ownerHatId: bigint;
    signersHatId: bigint;
    minThreshold: bigint;
    targetThreshold: bigint;
    maxSigners: bigint;
}
  • account - Viem account (Address for JSON-RPC accounts or Account for other types).

  • ownerHatId - ID of the HSG's Owner Hat.

  • signersHatId - ID of the HSG's Signers Hat.

  • minThreshold - HSG's min threshold.

  • targetThreshold - HSG's target threshold.

  • maxSigners - HSG's max amount of signers.

Response:

  • status - "success" if transaction was successful, "reverted" if transaction reverted.

  • transactionHash - transaction's hash.

  • newHsgInstance - In case of success, the address of the new HSG instance.

  • newSafeInstance - In case of success, the address of the new Safe instance.

deployHatsSignerGate

Deploy a new HSG and relate it to an existing Safe. In order to wire it up to the existing Safe, the owners of the Safe must enable it as a module and guard.

  • WARNING: HatsSignerGate must not be attached to a Safe with any other modules.

  • WARNING: HatsSignerGate must not be attached to its Safe if validSignerCount() >= _maxSigners

Before wiring up HatsSignerGate to its Safe, call canAttachHSGToSafe and make sure the result is true. Failure to do so may result in the Safe being locked forever.

Arguments:

  • account - Viem account (Address for JSON-RPC accounts or Account for other types).

  • ownerHatId - ID of the HSG's Owner Hat.

  • signersHatId - ID of the HSG's Signers Hat.

  • safe - Existing Gnosis Safe that the signers will join.

  • minThreshold - HSG's min threshold.

  • targetThreshold - HSG's target threshold.

  • maxSigners - HSG's max amount of signers.

Response:

  • status - "success" if transaction was successful, "reverted" if transaction reverted.

  • transactionHash - transaction's hash.

  • newHsgInstance - In case of success, the address of the new HSG instance.

deployMultiHatsSignerGateAndSafe

Create a new MHSG and a new Safe, all wired up together.

Arguments:

  • account - Viem account (Address for JSON-RPC accounts or Account for other types).

  • ownerHatId - ID of the MHSG's Owner Hat.

  • signersHatIds - IDs of the MHSG's Signers Hats.

  • minThreshold - MHSG's min threshold.

  • targetThreshold - MHSG's target threshold.

  • maxSigners - MHSG's max amount of signers.

Response:

  • status - "success" if transaction was successful, "reverted" if transaction reverted.

  • transactionHash - transaction's hash.

  • newMultiHsgInstance - In case of success, the address of the new MHSG instance.

  • newSafeInstance - In case of success, the address of the new Safe instance.

deployMultiHatsSignerGate

Deploy a new MHSG and relate it to an existing Safe. In order to wire it up to the existing Safe, the owners of the Safe must enable it as a module and guard.

  • WARNING: MultiHatsSignerGate must not be attached to a Safe with any other modules.

  • WARNING: MultiHatsSignerGate must not be attached to its Safe if validSignerCount() >= _maxSigners

Before wiring up MultiHatsSignerGate to its Safe, call canAttachMHSGToSafe and make sure the result is true. Failure to do so may result in the Safe being locked forever.

Arguments:

  • account - Viem account (Address for JSON-RPC accounts or Account for other types).

  • ownerHatId - ID of the MHSG's Owner Hat.

  • signersHatIds - IDs of the MHSG's Signers Hats.

  • safe - Existing Gnosis Safe that the signers will join.

  • minThreshold - MHSG's min threshold.

  • targetThreshold - MHSG's target threshold.

  • maxSigners - MHSG's max amount of signers.

Response:

  • status - "success" if transaction was successful, "reverted" if transaction reverted.

  • transactionHash - transaction's hash.

  • newMultiHsgInstance - In case of success, the address of the new MHSG instance.

Last updated