{
  "contractName": "Escrowable",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Burnt",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Received",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Slashed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Staked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Unstaked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "currency",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "collateralOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdraw",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Burnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Unstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"collateralOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/patterns/Escrowable.sol\":\"Escrowable\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"project:/contracts/patterns/Escrowable.sol\":{\"keccak256\":\"0xf0fdb82142f66323a1d419839ddcf67b51ac2faa418a2b364e0b2e4b5fdfbc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5123dc63b3d2f501eec6b9616db46833c155c1dca416bb58dbeb924558f8020\",\"dweb:/ipfs/QmakA3u4rqWpzeiKkUZxhnQotReaybCCDMkkJZFHyZVb1U\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x29ce79b9329cc854ddb0ee546e5a17f3cedafa91c7d614f43e8d6537680b1734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00d5ce85f66c3c32b8b69bfed2f07f40d14ac72c2f67d2de6601de0be16b5af1\",\"dweb:/ipfs/QmZogwLRBjFUJVSzR8YuMfo3mKg8WvYVbn2QvWXsCVP92V\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.4 <0.9.0;\r\n\r\nimport \"./Payable.sol\";\r\n\r\nabstract contract Escrowable\r\n    is\r\n        Payable\r\n{\r\n    event Burnt(address indexed from, uint256 value);\r\n    event Staked(address indexed from, uint256 value);\r\n    event Slashed(address indexed from, uint256 value);\r\n    event Unstaked(address indexed from, uint256 value);\r\n    event Withdrawn(address indexed from, uint256 value);\r\n\r\n    struct Escrow {\r\n        uint256 balance;\r\n        uint256 collateral;\r\n    }\r\n\r\n    receive() virtual external payable;\r\n\r\n    function collateralOf(address) virtual external view returns (uint256);\r\n    function balanceOf(address) virtual external view returns (uint256);\r\n    function withdraw() virtual external returns (uint256);\r\n\r\n    function __burn(address from, uint256 value) virtual internal;\r\n    function __deposit(address from, uint256 value) virtual internal;\r\n    function __slash(address from, address to, uint256 value) virtual internal;\r\n    function __stake(address from, uint256 value) virtual internal;\r\n    function __unstake(address from, uint256 value) virtual internal;\r\n}",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\patterns\\Escrowable.sol",
  "ast": {
    "absolutePath": "project:/contracts/patterns/Escrowable.sol",
    "exportedSymbols": {
      "Escrowable": [
        45618
      ],
      "IERC20": [
        493
      ],
      "Payable": [
        45766
      ]
    },
    "id": 45619,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 45520,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".4",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:128"
      },
      {
        "absolutePath": "project:/contracts/patterns/Payable.sol",
        "file": "./Payable.sol",
        "id": 45521,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 45619,
        "sourceUnit": 45767,
        "src": "70:23:128",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 45522,
              "name": "Payable",
              "nameLocations": [
                "143:7:128"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45766,
              "src": "143:7:128"
            },
            "id": 45523,
            "nodeType": "InheritanceSpecifier",
            "src": "143:7:128"
          }
        ],
        "canonicalName": "Escrowable",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 45618,
        "linearizedBaseContracts": [
          45618,
          45766
        ],
        "name": "Escrowable",
        "nameLocation": "115:10:128",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "eventSelector": "919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1",
            "id": 45529,
            "name": "Burnt",
            "nameLocation": "165:5:128",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 45528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45525,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "187:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45529,
                  "src": "171:20:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45524,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "171:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45527,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "201:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45529,
                  "src": "193:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45526,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "193:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "170:37:128"
            },
            "src": "159:49:128"
          },
          {
            "anonymous": false,
            "eventSelector": "9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d",
            "id": 45535,
            "name": "Staked",
            "nameLocation": "220:6:128",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 45534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45531,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "243:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45535,
                  "src": "227:20:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45530,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "227:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45533,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "257:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45535,
                  "src": "249:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45532,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "249:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "226:37:128"
            },
            "src": "214:50:128"
          },
          {
            "anonymous": false,
            "eventSelector": "4ed05e9673c26d2ed44f7ef6a7f2942df0ee3b5e1e17db4b99f9dcd261a339cd",
            "id": 45541,
            "name": "Slashed",
            "nameLocation": "276:7:128",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 45540,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45537,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "300:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45541,
                  "src": "284:20:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45536,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "284:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45539,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "314:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45541,
                  "src": "306:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45538,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "306:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "283:37:128"
            },
            "src": "270:51:128"
          },
          {
            "anonymous": false,
            "eventSelector": "0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75",
            "id": 45547,
            "name": "Unstaked",
            "nameLocation": "333:8:128",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 45546,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45543,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "358:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45547,
                  "src": "342:20:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45542,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "342:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45545,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "372:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45547,
                  "src": "364:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45544,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "364:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "341:37:128"
            },
            "src": "327:52:128"
          },
          {
            "anonymous": false,
            "eventSelector": "7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5",
            "id": 45553,
            "name": "Withdrawn",
            "nameLocation": "391:9:128",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 45552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45549,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "417:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45553,
                  "src": "401:20:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45548,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "401:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45551,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "431:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45553,
                  "src": "423:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45550,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "423:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "400:37:128"
            },
            "src": "385:53:128"
          },
          {
            "canonicalName": "Escrowable.Escrow",
            "id": 45558,
            "members": [
              {
                "constant": false,
                "id": 45555,
                "mutability": "mutable",
                "name": "balance",
                "nameLocation": "479:7:128",
                "nodeType": "VariableDeclaration",
                "scope": 45558,
                "src": "471:15:128",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 45554,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "471:7:128",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 45557,
                "mutability": "mutable",
                "name": "collateral",
                "nameLocation": "505:10:128",
                "nodeType": "VariableDeclaration",
                "scope": 45558,
                "src": "497:18:128",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 45556,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "497:7:128",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Escrow",
            "nameLocation": "453:6:128",
            "nodeType": "StructDefinition",
            "scope": 45618,
            "src": "446:77:128",
            "visibility": "public"
          },
          {
            "id": 45561,
            "implemented": false,
            "kind": "receive",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45559,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "538:2:128"
            },
            "returnParameters": {
              "id": 45560,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "565:0:128"
            },
            "scope": 45618,
            "src": "531:35:128",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "functionSelector": "1aefb107",
            "id": 45568,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "collateralOf",
            "nameLocation": "583:12:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45563,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 45568,
                  "src": "596:7:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45562,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "596:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "595:9:128"
            },
            "returnParameters": {
              "id": 45567,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45566,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 45568,
                  "src": "636:7:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45565,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "636:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "635:9:128"
            },
            "scope": 45618,
            "src": "574:71:128",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "functionSelector": "70a08231",
            "id": 45575,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nameLocation": "660:9:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45570,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 45575,
                  "src": "670:7:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45569,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "670:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "669:9:128"
            },
            "returnParameters": {
              "id": 45574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45573,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 45575,
                  "src": "710:7:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "710:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "709:9:128"
            },
            "scope": 45618,
            "src": "651:68:128",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "functionSelector": "3ccfd60b",
            "id": 45580,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "withdraw",
            "nameLocation": "734:8:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45576,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "742:2:128"
            },
            "returnParameters": {
              "id": 45579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45578,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 45580,
                  "src": "771:7:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "771:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "770:9:128"
            },
            "scope": 45618,
            "src": "725:55:128",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "id": 45587,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "__burn",
            "nameLocation": "797:6:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45582,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "812:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45587,
                  "src": "804:12:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45581,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "804:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45584,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "826:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45587,
                  "src": "818:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45583,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "818:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "803:29:128"
            },
            "returnParameters": {
              "id": 45586,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "849:0:128"
            },
            "scope": 45618,
            "src": "788:62:128",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 45594,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "__deposit",
            "nameLocation": "865:9:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45589,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "883:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45594,
                  "src": "875:12:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45588,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "875:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45591,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "897:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45594,
                  "src": "889:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45590,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "889:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "874:29:128"
            },
            "returnParameters": {
              "id": 45593,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "920:0:128"
            },
            "scope": 45618,
            "src": "856:65:128",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 45603,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "__slash",
            "nameLocation": "936:7:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45596,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "952:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45603,
                  "src": "944:12:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45595,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45598,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "966:2:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45603,
                  "src": "958:10:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45597,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "958:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45600,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "978:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45603,
                  "src": "970:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45599,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "970:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "943:41:128"
            },
            "returnParameters": {
              "id": 45602,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1001:0:128"
            },
            "scope": 45618,
            "src": "927:75:128",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 45610,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "__stake",
            "nameLocation": "1017:7:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45605,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1033:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45610,
                  "src": "1025:12:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45604,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1025:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45607,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1047:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45610,
                  "src": "1039:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45606,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1039:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1024:29:128"
            },
            "returnParameters": {
              "id": 45609,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1070:0:128"
            },
            "scope": 45618,
            "src": "1008:63:128",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 45617,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "__unstake",
            "nameLocation": "1086:9:128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 45615,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45612,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1104:4:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45617,
                  "src": "1096:12:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45611,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1096:7:128",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45614,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1118:5:128",
                  "nodeType": "VariableDeclaration",
                  "scope": 45617,
                  "src": "1110:13:128",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45613,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1110:7:128",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1095:29:128"
            },
            "returnParameters": {
              "id": 45616,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1141:0:128"
            },
            "scope": 45618,
            "src": "1077:65:128",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 45619,
        "src": "97:1048:128",
        "usedErrors": [],
        "usedEvents": [
          45529,
          45535,
          45541,
          45547,
          45553,
          45721,
          45727
        ]
      }
    ],
    "src": "35:1110:128"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:46.049Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}