Composing Modules
The following functions support the usage Eligibility/Toggle modules that compose other existing modules with "and"/"or" logical operations. Check out the documentation here to learn more.
Create New Eligibility/Toggle Chains
createEligibilitiesChain
Create a new eligibilities chain module.
Arguments:
account
- Viem account (Address for JSON-RPC accounts or Account for other types).hatId
- The hat ID for which the module is created.numClauses
- Number of conjunction clauses.clausesLengths
- Length of each clause.modules
- Array of module instances to chain, at the order corresponding to the provided clauses.saltNonce
- Optional salt nonce to use. If not provided, will be randomly generated.
Response:
status
- "success" if transaction was successful, "reverted" if transaction reverted.transactionHash
- transaction's hash.newInstance
- In case of success, the address of the new chain module instance.
createTogglesChain
Create a new toggles chain module.
Arguments:
account
- Viem account (Address for JSON-RPC accounts or Account for other types).hatId
- The hat ID for which the module is created.numClauses
- Number of conjunction clauses.clausesLengths
- Length of each clause.modules
- Array of module instances to chain, at the order corresponding to the provided clauses.saltNonce
- Optional salt nonce to use. If not provided, will be randomly generated.
Response:
status
- "success" if transaction was successful, "reverted" if transaction reverted.transactionHash
- transaction's hash.newInstance
- In case of success, the address of the new chain module instance.
Read From Eligibility/Toggle Chains
The following functions support reading from chain module instances.
getRulesets
Get the rulesets of a module instance.
A ruleset is an array of modules which are chained together with an "AND" logical operator. If the module is a chain with multiple rulesets, then these rulesets are chained together with an "OR" logical operator.
If the provided address is a single module instance (not a chain), then the result will be a single ruleset, which will consist of the single module instance.
Arguments:
Instance address.
Response:
The module's rulesets, or undefined
if the provided address is not a module.
getRulesetsBatched
Get the rulesets of multiple module instances.
A ruleset is an array of modules which are chained together with an "AND" logical operator. If the module is a chain with multiple rulesets, then these rulesets are chained together with an "OR" logical operator.
If the provided address is a single module instance (not a chain), then the result will be a single ruleset, which will consist of the single module instance.
Arguments:
Array of instance addresses.
Response:
For each module instance, returns the module's rulesets, or undefined
if the provided address is not a module.
isChain
Check whether a module instance is a modules chain.
Arguments:
Instance address.
Response:
true
if the instance is a chain, false
otherwise.
isChainBatched
Check whether multiple module instances are modules chains.
Arguments:
Instance addresses.
Response:
For each instance, true
if the instance is a chain, false
otherwise.
Last updated