{
  "name": "Mutiq",
  "chain": {
    "name": "Robinhood Chain",
    "id": 4663,
    "rpc": "https://rpc.mainnet.chain.robinhood.com",
    "explorer": "https://robinhoodchain.blockscout.com"
  },
  "contracts": {
    "MutiqActionLedger": {
      "address": "0x2ab870450de2013184ad53e7a2d44365d03d0f16",
      "deployedBlock": 103904754,
      "status": "deployed",
      "abi": [
        {
          "name": "ROLE_ADMIN",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "ROLE_POLICY",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "ROLE_OPERATOR",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "FLAG_STRICT",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "FLAG_EXCLUSIVE",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "FLAG_PAUSED",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "ANY_SELECTOR",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "bytes4"
            }
          ]
        },
        {
          "name": "MAX_NAME",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "MIN_WINDOW",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint32"
            }
          ]
        },
        {
          "name": "MAX_WINDOW",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint32"
            }
          ]
        },
        {
          "name": "MAX_ATTEMPTS",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint16"
            }
          ]
        },
        {
          "name": "MAX_PAGE",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "totalNamespaces",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "totalActions",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "totalRepeats",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "namespaceIdOf",
          "type": "function",
          "stateMutability": "pure",
          "inputs": [
            {
              "type": "address",
              "name": "creator"
            },
            {
              "type": "string",
              "name": "name"
            }
          ],
          "outputs": [
            {
              "type": "bytes32"
            }
          ]
        },
        {
          "name": "computeKey",
          "type": "function",
          "stateMutability": "pure",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "actionHash"
            }
          ],
          "outputs": [
            {
              "type": "bytes32"
            }
          ]
        },
        {
          "name": "createNamespace",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "string",
              "name": "name"
            },
            {
              "type": "uint8",
              "name": "flags"
            }
          ],
          "outputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ]
        },
        {
          "name": "setRoles",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "account"
            },
            {
              "type": "uint8",
              "name": "roles"
            }
          ],
          "outputs": []
        },
        {
          "name": "renounceRoles",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ],
          "outputs": []
        },
        {
          "name": "setFlags",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "uint8",
              "name": "flags"
            }
          ],
          "outputs": []
        },
        {
          "name": "setRule",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "target"
            },
            {
              "type": "bytes4",
              "name": "selector"
            },
            {
              "type": "uint8",
              "name": "kind"
            },
            {
              "type": "uint32",
              "name": "window"
            },
            {
              "type": "uint32",
              "name": "maxPerWindow"
            }
          ],
          "outputs": []
        },
        {
          "name": "checkPolicy",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "target"
            },
            {
              "type": "bytes4",
              "name": "selector"
            }
          ],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "register",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "actionHash"
            },
            {
              "type": "bytes32",
              "name": "conflictKey"
            },
            {
              "type": "address",
              "name": "target"
            },
            {
              "type": "bytes4",
              "name": "selector"
            },
            {
              "type": "uint64",
              "name": "deadline"
            }
          ],
          "outputs": [
            {
              "type": "bytes32",
              "name": "key"
            },
            {
              "type": "bool",
              "name": "isNew"
            }
          ]
        },
        {
          "name": "submit",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            },
            {
              "type": "bytes32",
              "name": "txHash"
            }
          ],
          "outputs": []
        },
        {
          "name": "replace",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            },
            {
              "type": "bytes32",
              "name": "newTxHash"
            }
          ],
          "outputs": []
        },
        {
          "name": "confirm",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            }
          ],
          "outputs": []
        },
        {
          "name": "markReverted",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            }
          ],
          "outputs": []
        },
        {
          "name": "cancel",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            }
          ],
          "outputs": []
        },
        {
          "name": "expire",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            }
          ],
          "outputs": []
        },
        {
          "name": "namespaceOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ],
          "outputs": [
            {
              "type": "tuple",
              "components": [
                {
                  "type": "string",
                  "name": "name"
                },
                {
                  "type": "address",
                  "name": "creator"
                },
                {
                  "type": "uint64",
                  "name": "createdAt"
                },
                {
                  "type": "uint32",
                  "name": "adminCount"
                },
                {
                  "type": "uint32",
                  "name": "policyVersion"
                },
                {
                  "type": "uint8",
                  "name": "flags"
                }
              ]
            }
          ]
        },
        {
          "name": "rolesOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "account"
            }
          ],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "ruleOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "target"
            },
            {
              "type": "bytes4",
              "name": "selector"
            }
          ],
          "outputs": [
            {
              "type": "tuple",
              "components": [
                {
                  "type": "uint8",
                  "name": "kind"
                },
                {
                  "type": "uint32",
                  "name": "window"
                },
                {
                  "type": "uint32",
                  "name": "maxPerWindow"
                }
              ]
            }
          ]
        },
        {
          "name": "windowUsed",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "target"
            },
            {
              "type": "bytes4",
              "name": "selector"
            }
          ],
          "outputs": [
            {
              "type": "uint32"
            }
          ]
        },
        {
          "name": "actionOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "key"
            }
          ],
          "outputs": [
            {
              "type": "tuple",
              "components": [
                {
                  "type": "uint8",
                  "name": "state"
                },
                {
                  "type": "address",
                  "name": "registrar"
                },
                {
                  "type": "address",
                  "name": "target"
                },
                {
                  "type": "bytes4",
                  "name": "selector"
                },
                {
                  "type": "uint32",
                  "name": "policyVersion"
                },
                {
                  "type": "uint32",
                  "name": "repeats"
                },
                {
                  "type": "uint16",
                  "name": "attempts"
                },
                {
                  "type": "uint64",
                  "name": "registeredAt"
                },
                {
                  "type": "uint64",
                  "name": "deadline"
                },
                {
                  "type": "uint64",
                  "name": "updatedAt"
                },
                {
                  "type": "bytes32",
                  "name": "conflictKey"
                },
                {
                  "type": "bytes32",
                  "name": "txHash"
                }
              ]
            }
          ]
        },
        {
          "name": "openOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "conflictKey"
            }
          ],
          "outputs": [
            {
              "type": "uint32"
            }
          ]
        },
        {
          "name": "keyOfTx",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "bytes32",
              "name": "txHash"
            }
          ],
          "outputs": [
            {
              "type": "bytes32"
            }
          ]
        },
        {
          "name": "actionCount",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "keysOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "uint256",
              "name": "start"
            },
            {
              "type": "uint256",
              "name": "limit"
            }
          ],
          "outputs": [
            {
              "type": "bytes32[]"
            }
          ]
        },
        {
          "name": "namespaceCountOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "account"
            }
          ],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "namespacesOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "account"
            },
            {
              "type": "uint256",
              "name": "start"
            },
            {
              "type": "uint256",
              "name": "limit"
            }
          ],
          "outputs": [
            {
              "type": "bytes32[]"
            }
          ]
        },
        {
          "name": "NamespaceCreated",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "address",
              "name": "creator",
              "indexed": true
            },
            {
              "type": "string",
              "name": "name"
            },
            {
              "type": "uint8",
              "name": "flags"
            }
          ]
        },
        {
          "name": "RolesChanged",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "address",
              "name": "account",
              "indexed": true
            },
            {
              "type": "uint8",
              "name": "roles"
            },
            {
              "type": "address",
              "name": "by"
            }
          ]
        },
        {
          "name": "FlagsChanged",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "uint8",
              "name": "flags"
            },
            {
              "type": "address",
              "name": "by"
            }
          ]
        },
        {
          "name": "RuleChanged",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "address",
              "name": "target",
              "indexed": true
            },
            {
              "type": "bytes4",
              "name": "selector"
            },
            {
              "type": "uint8",
              "name": "kind"
            },
            {
              "type": "uint32",
              "name": "window"
            },
            {
              "type": "uint32",
              "name": "maxPerWindow"
            },
            {
              "type": "uint32",
              "name": "policyVersion"
            },
            {
              "type": "address",
              "name": "by"
            }
          ]
        },
        {
          "name": "ActionRegistered",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "bytes32",
              "name": "key",
              "indexed": true
            },
            {
              "type": "bytes32",
              "name": "conflictKey",
              "indexed": true
            },
            {
              "type": "address",
              "name": "by"
            },
            {
              "type": "address",
              "name": "target"
            },
            {
              "type": "bytes4",
              "name": "selector"
            },
            {
              "type": "uint64",
              "name": "deadline"
            },
            {
              "type": "uint32",
              "name": "policyVersion"
            }
          ]
        },
        {
          "name": "ActionRepeated",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "bytes32",
              "name": "key",
              "indexed": true
            },
            {
              "type": "address",
              "name": "by"
            },
            {
              "type": "uint32",
              "name": "repeats"
            }
          ]
        },
        {
          "name": "ConflictSeen",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "bytes32",
              "name": "conflictKey",
              "indexed": true
            },
            {
              "type": "bytes32",
              "name": "key",
              "indexed": true
            },
            {
              "type": "uint32",
              "name": "alreadyOpen"
            }
          ]
        },
        {
          "name": "ActionStateChanged",
          "type": "event",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id",
              "indexed": true
            },
            {
              "type": "bytes32",
              "name": "key",
              "indexed": true
            },
            {
              "type": "uint8",
              "name": "from"
            },
            {
              "type": "uint8",
              "name": "to"
            },
            {
              "type": "bytes32",
              "name": "txHash"
            },
            {
              "type": "address",
              "name": "by"
            }
          ]
        },
        {
          "name": "NameInvalid",
          "type": "error",
          "inputs": []
        },
        {
          "name": "NamespaceExists",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ]
        },
        {
          "name": "UnknownNamespace",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ]
        },
        {
          "name": "MissingRole",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            },
            {
              "type": "address",
              "name": "account"
            },
            {
              "type": "uint8",
              "name": "role"
            }
          ]
        },
        {
          "name": "RolesInvalid",
          "type": "error",
          "inputs": [
            {
              "type": "uint8",
              "name": "roles"
            }
          ]
        },
        {
          "name": "FlagsInvalid",
          "type": "error",
          "inputs": [
            {
              "type": "uint8",
              "name": "flags"
            }
          ]
        },
        {
          "name": "LastAdmin",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "id"
            }
          ]
        },
        {
          "name": "RuleInvalid",
          "type": "error",
          "inputs": []
        },
        {
          "name": "ActionHashZero",
          "type": "error",
          "inputs": []
        },
        {
          "name": "TargetZero",
          "type": "error",
          "inputs": []
        },
        {
          "name": "DeadlinePassed",
          "type": "error",
          "inputs": [
            {
              "type": "uint64",
              "name": "deadline"
            }
          ]
        },
        {
          "name": "PolicyRefused",
          "type": "error",
          "inputs": [
            {
              "type": "uint8",
              "name": "code"
            }
          ]
        },
        {
          "name": "ConflictOpen",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "conflictKey"
            },
            {
              "type": "uint32",
              "name": "alreadyOpen"
            }
          ]
        },
        {
          "name": "UnknownAction",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "key"
            }
          ]
        },
        {
          "name": "BadTransition",
          "type": "error",
          "inputs": [
            {
              "type": "uint8",
              "name": "from"
            },
            {
              "type": "uint8",
              "name": "to"
            }
          ]
        },
        {
          "name": "TxHashInvalid",
          "type": "error",
          "inputs": []
        },
        {
          "name": "TxHashUsed",
          "type": "error",
          "inputs": [
            {
              "type": "bytes32",
              "name": "txHash"
            },
            {
              "type": "bytes32",
              "name": "boundTo"
            }
          ]
        },
        {
          "name": "TooManyAttempts",
          "type": "error",
          "inputs": []
        },
        {
          "name": "NotExpiredYet",
          "type": "error",
          "inputs": [
            {
              "type": "uint64",
              "name": "deadline"
            }
          ]
        }
      ]
    }
  },
  "notes": "Roles per namespace: 1 admin, 2 policy, 4 operator. States: 1 queued, 2 submitted, 3 replaced, 4 confirmed, 5 reverted, 6 cancelled, 7 expired. No global owner, no fees, never holds funds."
}