Hats Signer Gate

Interact with HSG instances.

Signers Management

hsgClaimSigner

Claim signer rights on the safe.

In order to successfully claim:

  • The calling account must wear the Signers Hat. Use this function is order to check whether an account is a valid signer.

  • Caller must not be already a signer.

  • The current amount of valid signers should be smaller than the configured amount of maximum signers.

const claimSignerResult = await hatsSignerGateClient.hsgClaimSigner({
    account,
    hsgInstance,
});

Arguments:

{
    account: Account | Address;
    hsgInstance: Address;
}
  • account - Viem account (Address for JSON-RPC accounts or Account for other types).

  • hsgInstance - HSG's instance address.

Response:

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

  • transactionHash - transaction's hash.

hsgIsValidSigner

Check if an account is wearing the Signers Hat (regardless whether the account has claimed signer rights or not).

Arguments:

  • hsgInstance - HSG's instance address.

  • address -The address to check.

Response:

true if valid, false otherwise.

claimedAndStillValid

Check if an account has claimed signer rights and is still valid.

Arguments:

  • instance - HSG's instance address.

  • address -The address to check.

Response:

true if the account is one of the safe's owners and is still valid, false otherwise.

validSignerCount

Tallies the number of existing Safe owners that wear the Signers Hat.

Arguments:

  • instance - HSG's instance address.

Response:

The number of valid signers on the Safe.

reconcileSignerCount

Tallies the number of existing Safe owners that wear a Signers Hat and updates the Safe's threshold if necessary. Does NOT remove invalid Safe owners.

Arguments:

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

  • instance - HSG's instance address.

Response:

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

  • transactionHash - transaction's hash.

removeSigner

Removes an invalid signer from the Safe, updating its threshold if appropriate.

Arguments:

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

  • instance - HSG's instance address.

  • signer - The address to remove if not a valid signer.

Response:

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

  • transactionHash - transaction's hash.

HSG Instance Properties

Getters for the basic properties of a HSG instance.

hsgSignersHatId

Get a HSG's Signers Hat ID.

Arguments:

  • hsgInstance - HSG's instance address.

Response:

HSG's Signers Hat ID.

getSafe

Get a HSG's attached Safe.

Arguments:

  • instance - HSG's instance address.

Response:

Address of the attached Safe.

getMinThreshold

Get a HSG's minimum threshold.

Arguments:

  • instance - HSG's instance address.

Response:

The instance's min threshold.

getTargetThreshold

Get a HSG's target threshold.

Arguments:

  • instance - HSG's instance address.

Response:

The instance's target threshold.

getMaxSigners

Get a HSG's maximum amount of signers.

Arguments:

  • instance - HSG's instance address.

Response:

The instance's max signers.

getOwnerHat

Get a HSG's Owner Hat.

Arguments:

  • instance - HSG's instance address.

Response:

The instance's Owner Hat.

HSG Owner

Following functions are only authorized to the wearer(s) of the HSG instance's Owner Hat.

setTargetThreshold

Sets a new target threshold, and changes Safe's threshold if appropriate.

In order to successfully execute the function:

  • The caller must be a wearer of the HSG's Owner Hat.

  • The new target threshold should not be smaller than the minimum threshold.

  • The new target threshold should not be larger than the maximum amount of signers.

Arguments:

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

  • instance - HSG's instance address.

  • targetThreshold - The new target threshold to set.

Response:

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

  • transactionHash - transaction's hash.

setMinThreshold

Sets a new minimum threshold.

In order to successfully execute the function:

  • The caller must be a wearer of the HSG's Owner Hat.

  • The new minimum threshold should not be larger than the target threshold.

  • The new minimum threshold should not be larger than the maximum amount of signers.

Arguments:

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

  • instance - HSG's instance address.

  • minThreshold - The new minimum threshold to set.

Response:

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

  • transactionHash - transaction's hash.

setOwnerHat

Sets a new Owner Hat.

In order to successfully execute the function:

  • The caller must be a wearer of the current Owner Hat.

Arguments:

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

  • instance - HSG's instance address.

  • newOwnerHat - The new Owner Hat to set.

  • hatsContractAddress - The Hats.sol contract address of the new Owner Hat.

Response:

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

  • transactionHash - transaction's hash.

Last updated