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