{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint96",
          "name": "targetNftId",
          "type": "uint96"
        }
      ],
      "name": "capitalSupport",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "capitalAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getDip",
      "outputs": [
        {
          "internalType": "contract IERC20Metadata",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRegistry",
      "outputs": [
        {
          "internalType": "contract IChainRegistryFacade",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getStakingWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "stakingWallet",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "implementsIStaking",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxRewardRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rate",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rateDecimals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "decimals",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "dipAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rate",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardReserves",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "dipAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stakeBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "dipAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes5",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "stakingRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rate",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "toChain",
      "outputs": [
        {
          "internalType": "bytes5",
          "name": "",
          "type": "bytes5"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "int8",
          "name": "exp",
          "type": "int8"
        }
      ],
      "name": "toRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rate",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "versionParts",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "major",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "minor",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "patch",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "4": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "5": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/extensions/IERC20Metadata.sol",
    "59": "contracts/registry/IChainNftFacade.sol",
    "60": "contracts/registry/IChainRegistryFacade.sol",
    "62": "contracts/staking/IStakingFacade.sol"
  },
  "ast": {
    "absolutePath": "contracts/staking/IStakingFacade.sol",
    "exportedSymbols": {
      "IChainRegistryFacade": [
        7497
      ],
      "IERC20Metadata": [
        9510
      ],
      "IStakingFacade": [
        7660
      ]
    },
    "id": 7661,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7552,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:62"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/extensions/IERC20Metadata.sol",
        "file": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
        "id": 7554,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7661,
        "sourceUnit": 9511,
        "src": "540:97:62",
        "symbolAliases": [
          {
            "foreign": {
              "id": 7553,
              "name": "IERC20Metadata",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "548:14:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/registry/IChainRegistryFacade.sol",
        "file": "../registry/IChainRegistryFacade.sol",
        "id": 7556,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7661,
        "sourceUnit": 7498,
        "src": "639:74:62",
        "symbolAliases": [
          {
            "foreign": {
              "id": 7555,
              "name": "IChainRegistryFacade",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "647:20:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 7660,
        "linearizedBaseContracts": [
          7660
        ],
        "name": "IStakingFacade",
        "nameLocation": "725:14:62",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "functionSelector": "8da5cb5b",
            "id": 7561,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "owner",
            "nameLocation": "756:5:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7557,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "761:2:62"
            },
            "returnParameters": {
              "id": 7560,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7559,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7561,
                  "src": "786:7:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7558,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "786:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "785:9:62"
            },
            "scope": 7660,
            "src": "747:48:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5ab1bd53",
            "id": 7567,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRegistry",
            "nameLocation": "809:11:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7562,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "820:2:62"
            },
            "returnParameters": {
              "id": 7566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7565,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7567,
                  "src": "845:20:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IChainRegistryFacade_$7497",
                    "typeString": "contract IChainRegistryFacade"
                  },
                  "typeName": {
                    "id": 7564,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7563,
                      "name": "IChainRegistryFacade",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 7497,
                      "src": "845:20:62"
                    },
                    "referencedDeclaration": 7497,
                    "src": "845:20:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IChainRegistryFacade_$7497",
                      "typeString": "contract IChainRegistryFacade"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "844:22:62"
            },
            "scope": 7660,
            "src": "800:67:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "b3fc986e",
            "id": 7572,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStakingWallet",
            "nameLocation": "882:16:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7568,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "898:2:62"
            },
            "returnParameters": {
              "id": 7571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7570,
                  "mutability": "mutable",
                  "name": "stakingWallet",
                  "nameLocation": "931:13:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7572,
                  "src": "923:21:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7569,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "923:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "922:23:62"
            },
            "scope": 7660,
            "src": "873:73:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "b54ded6e",
            "id": 7578,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getDip",
            "nameLocation": "960:6:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7573,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "966:2:62"
            },
            "returnParameters": {
              "id": 7577,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7576,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7578,
                  "src": "991:14:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20Metadata_$9510",
                    "typeString": "contract IERC20Metadata"
                  },
                  "typeName": {
                    "id": 7575,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7574,
                      "name": "IERC20Metadata",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 9510,
                      "src": "991:14:62"
                    },
                    "referencedDeclaration": 9510,
                    "src": "991:14:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20Metadata_$9510",
                      "typeString": "contract IERC20Metadata"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "990:16:62"
            },
            "scope": 7660,
            "src": "951:56:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "0d40ffc7",
            "id": 7583,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "maxRewardRate",
            "nameLocation": "1022:13:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1035:2:62"
            },
            "returnParameters": {
              "id": 7582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7581,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "1068:4:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7583,
                  "src": "1060:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7580,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1060:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1059:14:62"
            },
            "scope": 7660,
            "src": "1013:61:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7b0a47ee",
            "id": 7588,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "rewardRate",
            "nameLocation": "1088:10:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7584,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1098:2:62"
            },
            "returnParameters": {
              "id": 7587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7586,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "1131:4:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7588,
                  "src": "1123:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7585,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1123:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1122:14:62"
            },
            "scope": 7660,
            "src": "1079:58:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "aa5c3ab4",
            "id": 7593,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "rewardBalance",
            "nameLocation": "1151:13:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7589,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1164:2:62"
            },
            "returnParameters": {
              "id": 7592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7591,
                  "mutability": "mutable",
                  "name": "dipAmount",
                  "nameLocation": "1197:9:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7593,
                  "src": "1189:17:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7590,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1189:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1188:19:62"
            },
            "scope": 7660,
            "src": "1142:66:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f0de8228",
            "id": 7598,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "rewardReserves",
            "nameLocation": "1222:14:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7594,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1236:2:62"
            },
            "returnParameters": {
              "id": 7597,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7596,
                  "mutability": "mutable",
                  "name": "dipAmount",
                  "nameLocation": "1269:9:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7598,
                  "src": "1261:17:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7595,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1260:19:62"
            },
            "scope": 7660,
            "src": "1213:67:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "93bc9dfe",
            "id": 7603,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "stakeBalance",
            "nameLocation": "1295:12:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7599,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1307:2:62"
            },
            "returnParameters": {
              "id": 7602,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7601,
                  "mutability": "mutable",
                  "name": "dipAmount",
                  "nameLocation": "1340:9:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7603,
                  "src": "1332:17:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7600,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1332:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1331:19:62"
            },
            "scope": 7660,
            "src": "1286:65:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "0dd4d811",
            "id": 7612,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "stakingRate",
            "nameLocation": "1365:11:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7605,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "1384:5:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7612,
                  "src": "1377:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes5",
                    "typeString": "bytes5"
                  },
                  "typeName": {
                    "id": 7604,
                    "name": "bytes5",
                    "nodeType": "ElementaryTypeName",
                    "src": "1377:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes5",
                      "typeString": "bytes5"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7607,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "1399:5:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7612,
                  "src": "1391:13:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7606,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1376:29:62"
            },
            "returnParameters": {
              "id": 7611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7610,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "1436:4:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7612,
                  "src": "1428:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7609,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1428:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1427:14:62"
            },
            "scope": 7660,
            "src": "1356:86:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "33d84ec0",
            "id": 7619,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "capitalSupport",
            "nameLocation": "1457:14:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7615,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7614,
                  "mutability": "mutable",
                  "name": "targetNftId",
                  "nameLocation": "1479:11:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7619,
                  "src": "1472:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint96",
                    "typeString": "uint96"
                  },
                  "typeName": {
                    "id": 7613,
                    "name": "uint96",
                    "nodeType": "ElementaryTypeName",
                    "src": "1472:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint96",
                      "typeString": "uint96"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1471:20:62"
            },
            "returnParameters": {
              "id": 7618,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7617,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "1522:13:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7619,
                  "src": "1514:21:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7616,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1514:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1513:23:62"
            },
            "scope": 7660,
            "src": "1448:89:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1b08829c",
            "id": 7624,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "implementsIStaking",
            "nameLocation": "1551:18:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7620,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1569:2:62"
            },
            "returnParameters": {
              "id": 7623,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7622,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7624,
                  "src": "1594:4:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7621,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1594:4:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1593:6:62"
            },
            "scope": 7660,
            "src": "1542:58:62",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "178156ca",
            "id": 7631,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "toChain",
            "nameLocation": "1615:7:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7626,
                  "mutability": "mutable",
                  "name": "chainId",
                  "nameLocation": "1631:7:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7631,
                  "src": "1623:15:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7625,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1622:17:62"
            },
            "returnParameters": {
              "id": 7630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7629,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7631,
                  "src": "1662:6:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes5",
                    "typeString": "bytes5"
                  },
                  "typeName": {
                    "id": 7628,
                    "name": "bytes5",
                    "nodeType": "ElementaryTypeName",
                    "src": "1662:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes5",
                      "typeString": "bytes5"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1661:8:62"
            },
            "scope": 7660,
            "src": "1606:64:62",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fc1cd6cc",
            "id": 7640,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "toRate",
            "nameLocation": "1685:6:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7633,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1700:5:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7640,
                  "src": "1692:13:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7632,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1692:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7635,
                  "mutability": "mutable",
                  "name": "exp",
                  "nameLocation": "1712:3:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7640,
                  "src": "1707:8:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 7634,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1707:4:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1691:25:62"
            },
            "returnParameters": {
              "id": 7639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7638,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "1747:4:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7640,
                  "src": "1739:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7637,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1739:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1738:14:62"
            },
            "scope": 7660,
            "src": "1676:77:62",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1a3480b5",
            "id": 7645,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "rateDecimals",
            "nameLocation": "1767:12:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7641,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1779:2:62"
            },
            "returnParameters": {
              "id": 7644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7643,
                  "mutability": "mutable",
                  "name": "decimals",
                  "nameLocation": "1812:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7645,
                  "src": "1804:16:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7642,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1804:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1803:18:62"
            },
            "scope": 7660,
            "src": "1758:64:62",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "54fd4d50",
            "id": 7650,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nameLocation": "1837:7:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7646,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1844:2:62"
            },
            "returnParameters": {
              "id": 7649,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7648,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7650,
                  "src": "1869:6:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint48",
                    "typeString": "uint48"
                  },
                  "typeName": {
                    "id": 7647,
                    "name": "uint48",
                    "nodeType": "ElementaryTypeName",
                    "src": "1869:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint48",
                      "typeString": "uint48"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1868:8:62"
            },
            "scope": 7660,
            "src": "1828:49:62",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "bd4080ec",
            "id": 7659,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "versionParts",
            "nameLocation": "1891:12:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7651,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1903:2:62"
            },
            "returnParameters": {
              "id": 7658,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7653,
                  "mutability": "mutable",
                  "name": "major",
                  "nameLocation": "1972:5:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7659,
                  "src": "1965:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7652,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1965:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7655,
                  "mutability": "mutable",
                  "name": "minor",
                  "nameLocation": "1998:5:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7659,
                  "src": "1991:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7654,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1991:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7657,
                  "mutability": "mutable",
                  "name": "patch",
                  "nameLocation": "2024:5:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 7659,
                  "src": "2017:12:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7656,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2017:6:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1951:88:62"
            },
            "scope": 7660,
            "src": "1882:158:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 7661,
        "src": "715:1328:62"
      }
    ],
    "src": "39:2004:62"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "IStakingFacade",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "IChainNftFacade",
    "IChainRegistryFacade",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20Metadata"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    715,
    2043
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "d84cfe00a9277b2959ed114355e09aa3398195ab",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\n/**\n * @dev this facade is intended for user contracts with limited \n * interactions with the actual contract and that need to work \n * with older solidity versions that do not support user defined \n * types.\n * \n * usage: \n * (1) copy this interface into your repository\n * (2) adapt the pragma to your needsd\n * (3) use it in your contracts, ie. cast actual contract \n * address to this interface, then  usd the resulting facade \n * to interact with the actual contract\n */\n\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\n\nimport {IChainRegistryFacade} from \"../registry/IChainRegistryFacade.sol\";\n\ninterface IStakingFacade {\n\n    function owner() external view returns(address);\n    function getRegistry() external view returns(IChainRegistryFacade);\n\n    function getStakingWallet() external view returns(address stakingWallet);\n    function getDip() external view returns(IERC20Metadata);\n\n    function maxRewardRate() external view returns(uint256 rate);\n    function rewardRate() external view returns(uint256 rate);\n    function rewardBalance() external view returns(uint256 dipAmount);\n    function rewardReserves() external view returns(uint256 dipAmount);\n\n    function stakeBalance() external view returns(uint256 dipAmount);\n    function stakingRate(bytes5 chain, address token) external view returns(uint256 rate);\n\n    function capitalSupport(uint96 targetNftId) external view returns(uint256 capitalAmount);\n    function implementsIStaking() external pure returns(bool);\n\n    function toChain(uint256 chainId) external pure returns(bytes5);\n\n    function toRate(uint256 value, int8 exp) external pure returns(uint256 rate);\n    function rateDecimals() external pure returns(uint256 decimals);\n\n    function version() external pure returns(uint48);\n    function versionParts()\n        external\n        view\n        returns(\n            uint16 major,\n            uint16 minor,\n            uint16 patch\n        );\n\n}",
  "sourceMap": "",
  "sourcePath": "contracts/staking/IStakingFacade.sol",
  "type": "interface"
}