{
  "name": "Orbu",
  "chain": {
    "name": "Robinhood Chain",
    "id": 4663,
    "rpc": "https://rpc.mainnet.chain.robinhood.com",
    "explorer": "https://robinhoodchain.blockscout.com"
  },
  "contracts": {
    "OrbuSettlementDesk": {
      "address": null,
      "deployedBlock": null,
      "abi": [
        {
          "type": "function",
          "name": "MAX_FEE_BPS",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint16",
              "internalType": "uint16"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_NONCE_JUMP",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MODULE_ALLOWLIST",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MODULE_BAND",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MODULE_CAP",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MODULE_FEE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MODULE_WINDOW",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "SUPPORTED_MODULES",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "bumpNonce",
          "inputs": [
            {
              "name": "newMin",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "cancel",
          "inputs": [
            {
              "name": "o",
              "type": "tuple",
              "internalType": "struct OrbuSettlementDesk.Order",
              "components": [
                {
                  "name": "maker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "taker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "buyToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "buyAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "minFill",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "expiry",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "nonce",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policy",
                  "type": "tuple",
                  "internalType": "struct OrbuSettlementDesk.Policy",
                  "components": [
                    {
                      "name": "startsAt",
                      "type": "uint64",
                      "internalType": "uint64"
                    },
                    {
                      "name": "maxFill",
                      "type": "uint128",
                      "internalType": "uint128"
                    },
                    {
                      "name": "feeRecipient",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "feeBps",
                      "type": "uint16",
                      "internalType": "uint16"
                    },
                    {
                      "name": "feed",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "bandLow",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "bandHigh",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "maxFeedAge",
                      "type": "uint32",
                      "internalType": "uint32"
                    },
                    {
                      "name": "takerRoot",
                      "type": "bytes32",
                      "internalType": "bytes32"
                    }
                  ]
                }
              ]
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "cancelled",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "digestOf",
          "inputs": [
            {
              "name": "orderHash",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "domainSeparator",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "fill",
          "inputs": [
            {
              "name": "o",
              "type": "tuple",
              "internalType": "struct OrbuSettlementDesk.Order",
              "components": [
                {
                  "name": "maker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "taker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "buyToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "buyAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "minFill",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "expiry",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "nonce",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policy",
                  "type": "tuple",
                  "internalType": "struct OrbuSettlementDesk.Policy",
                  "components": [
                    {
                      "name": "startsAt",
                      "type": "uint64",
                      "internalType": "uint64"
                    },
                    {
                      "name": "maxFill",
                      "type": "uint128",
                      "internalType": "uint128"
                    },
                    {
                      "name": "feeRecipient",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "feeBps",
                      "type": "uint16",
                      "internalType": "uint16"
                    },
                    {
                      "name": "feed",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "bandLow",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "bandHigh",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "maxFeedAge",
                      "type": "uint32",
                      "internalType": "uint32"
                    },
                    {
                      "name": "takerRoot",
                      "type": "bytes32",
                      "internalType": "bytes32"
                    }
                  ]
                }
              ]
            },
            {
              "name": "signature",
              "type": "bytes",
              "internalType": "bytes"
            },
            {
              "name": "sellWanted",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "proof",
              "type": "bytes32[]",
              "internalType": "bytes32[]"
            }
          ],
          "outputs": [
            {
              "name": "sold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "paid",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "fillCount",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "filled",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "hashOrder",
          "inputs": [
            {
              "name": "o",
              "type": "tuple",
              "internalType": "struct OrbuSettlementDesk.Order",
              "components": [
                {
                  "name": "maker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "taker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "buyToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "buyAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "minFill",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "expiry",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "nonce",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policy",
                  "type": "tuple",
                  "internalType": "struct OrbuSettlementDesk.Policy",
                  "components": [
                    {
                      "name": "startsAt",
                      "type": "uint64",
                      "internalType": "uint64"
                    },
                    {
                      "name": "maxFill",
                      "type": "uint128",
                      "internalType": "uint128"
                    },
                    {
                      "name": "feeRecipient",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "feeBps",
                      "type": "uint16",
                      "internalType": "uint16"
                    },
                    {
                      "name": "feed",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "bandLow",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "bandHigh",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "maxFeedAge",
                      "type": "uint32",
                      "internalType": "uint32"
                    },
                    {
                      "name": "takerRoot",
                      "type": "bytes32",
                      "internalType": "bytes32"
                    }
                  ]
                }
              ]
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "pure"
        },
        {
          "type": "function",
          "name": "inspect",
          "inputs": [
            {
              "name": "o",
              "type": "tuple",
              "internalType": "struct OrbuSettlementDesk.Order",
              "components": [
                {
                  "name": "maker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "taker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "buyToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "buyAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "minFill",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "expiry",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "nonce",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policy",
                  "type": "tuple",
                  "internalType": "struct OrbuSettlementDesk.Policy",
                  "components": [
                    {
                      "name": "startsAt",
                      "type": "uint64",
                      "internalType": "uint64"
                    },
                    {
                      "name": "maxFill",
                      "type": "uint128",
                      "internalType": "uint128"
                    },
                    {
                      "name": "feeRecipient",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "feeBps",
                      "type": "uint16",
                      "internalType": "uint16"
                    },
                    {
                      "name": "feed",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "bandLow",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "bandHigh",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "maxFeedAge",
                      "type": "uint32",
                      "internalType": "uint32"
                    },
                    {
                      "name": "takerRoot",
                      "type": "bytes32",
                      "internalType": "bytes32"
                    }
                  ]
                }
              ]
            },
            {
              "name": "signature",
              "type": "bytes",
              "internalType": "bytes"
            },
            {
              "name": "taker",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "sellWanted",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "r",
              "type": "tuple",
              "internalType": "struct OrbuSettlementDesk.Inspection",
              "components": [
                {
                  "name": "orderHash",
                  "type": "bytes32",
                  "internalType": "bytes32"
                },
                {
                  "name": "shapeOk",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "signatureOk",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "posted",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "cancelled",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "nonceOk",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "windowOpen",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "takerNamedOk",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "remaining",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "sold",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "paid",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "fee",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "makerBalanceRead",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "makerBalance",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "makerAllowanceRead",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "makerAllowance",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "takerBalanceRead",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "takerBalance",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "takerAllowanceRead",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "takerAllowance",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "bandUsed",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "bandOk",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "bandAnswer",
                  "type": "int256",
                  "internalType": "int256"
                },
                {
                  "name": "bandUpdatedAt",
                  "type": "uint256",
                  "internalType": "uint256"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "minNonce",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "post",
          "inputs": [
            {
              "name": "o",
              "type": "tuple",
              "internalType": "struct OrbuSettlementDesk.Order",
              "components": [
                {
                  "name": "maker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "taker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "buyToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "buyAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "minFill",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "expiry",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "nonce",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policy",
                  "type": "tuple",
                  "internalType": "struct OrbuSettlementDesk.Policy",
                  "components": [
                    {
                      "name": "startsAt",
                      "type": "uint64",
                      "internalType": "uint64"
                    },
                    {
                      "name": "maxFill",
                      "type": "uint128",
                      "internalType": "uint128"
                    },
                    {
                      "name": "feeRecipient",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "feeBps",
                      "type": "uint16",
                      "internalType": "uint16"
                    },
                    {
                      "name": "feed",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "bandLow",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "bandHigh",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "maxFeedAge",
                      "type": "uint32",
                      "internalType": "uint32"
                    },
                    {
                      "name": "takerRoot",
                      "type": "bytes32",
                      "internalType": "bytes32"
                    }
                  ]
                }
              ]
            }
          ],
          "outputs": [
            {
              "name": "h",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "postCount",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "posted",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "NonceBumped",
          "inputs": [
            {
              "name": "maker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "minNonce",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OrderCancelled",
          "inputs": [
            {
              "name": "orderHash",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "maker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OrderFilled",
          "inputs": [
            {
              "name": "orderHash",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "maker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "taker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "sellToken",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "buyToken",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "sold",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "paid",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "feeRecipient",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "fee",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OrderPosted",
          "inputs": [
            {
              "name": "orderHash",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "maker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "sellToken",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "order",
              "type": "tuple",
              "indexed": false,
              "internalType": "struct OrbuSettlementDesk.Order",
              "components": [
                {
                  "name": "maker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "taker",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "buyToken",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "sellAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "buyAmount",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "minFill",
                  "type": "uint128",
                  "internalType": "uint128"
                },
                {
                  "name": "expiry",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "nonce",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policy",
                  "type": "tuple",
                  "internalType": "struct OrbuSettlementDesk.Policy",
                  "components": [
                    {
                      "name": "startsAt",
                      "type": "uint64",
                      "internalType": "uint64"
                    },
                    {
                      "name": "maxFill",
                      "type": "uint128",
                      "internalType": "uint128"
                    },
                    {
                      "name": "feeRecipient",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "feeBps",
                      "type": "uint16",
                      "internalType": "uint16"
                    },
                    {
                      "name": "feed",
                      "type": "address",
                      "internalType": "address"
                    },
                    {
                      "name": "bandLow",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "bandHigh",
                      "type": "int256",
                      "internalType": "int256"
                    },
                    {
                      "name": "maxFeedAge",
                      "type": "uint32",
                      "internalType": "uint32"
                    },
                    {
                      "name": "takerRoot",
                      "type": "bytes32",
                      "internalType": "bytes32"
                    }
                  ]
                }
              ]
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyCancelled",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AlreadyPosted",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadPolicy",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadShape",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadSignature",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BelowMinFill",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ExactAmountNotDelivered",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "Expired",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NonceJumpTooLarge",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NonceNotHigher",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NonceTooLow",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotAToken",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "NotMaker",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotOnAllowlist",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotOpenYet",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NothingLeft",
          "inputs": []
        },
        {
          "type": "error",
          "name": "OrderIsCancelled",
          "inputs": []
        },
        {
          "type": "error",
          "name": "OutsideBand",
          "inputs": [
            {
              "name": "answer",
              "type": "int256",
              "internalType": "int256"
            }
          ]
        },
        {
          "type": "error",
          "name": "Reentered",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ReferenceStale",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ReferenceUnavailable",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TokenCallFailed",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "WrongTaker",
          "inputs": []
        }
      ]
    },
    "OrbuCouncil": {
      "address": null,
      "deployedBlock": null,
      "parameters": {
        "votingPeriod": 259200,
        "timelock": 172800,
        "minLock": 604800,
        "maxLock": 31536000,
        "quorumWhole": "20000000",
        "thresholdWhole": "100000"
      },
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "token_",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "votingPeriod_",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "timelock_",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "minLock_",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "maxLock_",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "quorum_",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "proposalThreshold_",
              "type": "uint128",
              "internalType": "uint128"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "EXECUTION_WINDOW",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_PAYLOAD",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_TITLE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cancelProposal",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "decidedCount",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "execute",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "payload",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "extend",
          "inputs": [
            {
              "name": "unlockAt",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "hasVoted",
          "inputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lastAppliedToEntry",
          "inputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lastAppliedToSignal",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lastProposalAt",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lock",
          "inputs": [
            {
              "name": "amount",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "unlockAt",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "outputs": [
            {
              "name": "credited",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "locks",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "amount",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "unlockAt",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "maxLock",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "minLock",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "proposalCount",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "proposalThreshold",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint128",
              "internalType": "uint128"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "proposals",
          "inputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "proposer",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "action",
              "type": "uint8",
              "internalType": "enum OrbuCouncil.Action"
            },
            {
              "name": "snapshotAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "voteEnds",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "readyAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "expiresAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "yes",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "no",
              "type": "uint128",
              "internalType": "uint128"
            },
            {
              "name": "executed",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "cancelled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "payloadHash",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "propose",
          "inputs": [
            {
              "name": "action",
              "type": "uint8",
              "internalType": "enum OrbuCouncil.Action"
            },
            {
              "name": "title",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "payload",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "quorum",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint128",
              "internalType": "uint128"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "roster",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract OrbuModuleRoster"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "stateOf",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint8",
              "internalType": "enum OrbuCouncil.State"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "timelock",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "token",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "totalLocked",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "vote",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "support",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "votingPeriod",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "weightBefore",
          "inputs": [
            {
              "name": "who",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "at",
              "type": "uint64",
              "internalType": "uint64"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint128",
              "internalType": "uint128"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "withdraw",
          "inputs": [
            {
              "name": "amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "Extended",
          "inputs": [
            {
              "name": "staker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "unlockAt",
              "type": "uint64",
              "indexed": false,
              "internalType": "uint64"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Locked",
          "inputs": [
            {
              "name": "staker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "credited",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "total",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "unlockAt",
              "type": "uint64",
              "indexed": false,
              "internalType": "uint64"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ProposalCancelled",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ProposalExecuted",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            },
            {
              "name": "action",
              "type": "uint8",
              "indexed": false,
              "internalType": "enum OrbuCouncil.Action"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Proposed",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            },
            {
              "name": "proposer",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "action",
              "type": "uint8",
              "indexed": false,
              "internalType": "enum OrbuCouncil.Action"
            },
            {
              "name": "snapshotAt",
              "type": "uint64",
              "indexed": false,
              "internalType": "uint64"
            },
            {
              "name": "voteEnds",
              "type": "uint64",
              "indexed": false,
              "internalType": "uint64"
            },
            {
              "name": "title",
              "type": "string",
              "indexed": false,
              "internalType": "string"
            },
            {
              "name": "payload",
              "type": "bytes",
              "indexed": false,
              "internalType": "bytes"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Voted",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            },
            {
              "name": "voter",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "support",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            },
            {
              "name": "weight",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Withdrawn",
          "inputs": [
            {
              "name": "staker",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "total",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyVoted",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AmountTooLarge",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadParameters",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadPayload",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadTitle",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadUnlock",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BelowThreshold",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ExceedsLock",
          "inputs": []
        },
        {
          "type": "error",
          "name": "LockEndsTooSoon",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoWeight",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotAToken",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "NotProposer",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NothingArrived",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PayloadMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ProposalCooldown",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Reentered",
          "inputs": []
        },
        {
          "type": "error",
          "name": "StillLocked",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Superseded",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TokenCallFailed",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "WrongState",
          "inputs": [
            {
              "name": "state",
              "type": "uint8",
              "internalType": "enum OrbuCouncil.State"
            }
          ]
        },
        {
          "type": "error",
          "name": "ZeroAmount",
          "inputs": []
        }
      ]
    },
    "OrbuModuleRoster": {
      "address": null,
      "createdBy": "OrbuCouncil constructor",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "council_",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "MAX_NAME",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_SUMMARY",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "addEntry",
          "inputs": [
            {
              "name": "kind",
              "type": "uint8",
              "internalType": "enum OrbuModuleRoster.Kind"
            },
            {
              "name": "deskBit",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "specHash",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "summary",
              "type": "string",
              "internalType": "string"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "council",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "entry",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct OrbuModuleRoster.Entry",
              "components": [
                {
                  "name": "kind",
                  "type": "uint8",
                  "internalType": "enum OrbuModuleRoster.Kind"
                },
                {
                  "name": "status",
                  "type": "uint8",
                  "internalType": "enum OrbuModuleRoster.Status"
                },
                {
                  "name": "deskBit",
                  "type": "uint32",
                  "internalType": "uint32"
                },
                {
                  "name": "updatedAt",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "specHash",
                  "type": "bytes32",
                  "internalType": "bytes32"
                },
                {
                  "name": "name",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "summary",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "entryCount",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "setSignal",
          "inputs": [
            {
              "name": "key",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "value",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setStatus",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "status",
              "type": "uint8",
              "internalType": "enum OrbuModuleRoster.Status"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "signalSet",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "signals",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "EntryAdded",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            },
            {
              "name": "kind",
              "type": "uint8",
              "indexed": false,
              "internalType": "enum OrbuModuleRoster.Kind"
            },
            {
              "name": "deskBit",
              "type": "uint32",
              "indexed": false,
              "internalType": "uint32"
            },
            {
              "name": "specHash",
              "type": "bytes32",
              "indexed": false,
              "internalType": "bytes32"
            },
            {
              "name": "name",
              "type": "string",
              "indexed": false,
              "internalType": "string"
            },
            {
              "name": "summary",
              "type": "string",
              "indexed": false,
              "internalType": "string"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "EntryStatusChanged",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            },
            {
              "name": "status",
              "type": "uint8",
              "indexed": false,
              "internalType": "enum OrbuModuleRoster.Status"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "SignalChanged",
          "inputs": [
            {
              "name": "key",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "value",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "BadDeskBit",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BadText",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotCouncil",
          "inputs": []
        },
        {
          "type": "error",
          "name": "SameStatus",
          "inputs": []
        },
        {
          "type": "error",
          "name": "UnknownEntry",
          "inputs": []
        }
      ]
    }
  },
  "notes": "No owner, no admin, no protocol fee. The desk never holds tokens between calls and never reads the roster. The council holds locked $ORBU only for the staker who locked it."
}