{
  "contractName": "ERC1538Store",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC1538/ERC1538Store.sol\":\"ERC1538Store\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC1538/ERC1538Store.sol\":{\"keccak256\":\"0xb58c26604758cc810e3913d58fb596b728f3a959198fb2517465d5d845601c83\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0764c9073affa00312746ad08a5761aaf489b4cb3c65763fce8a53db185ab0bd\",\"dweb:/ipfs/QmPs8QuvRg4CUCkWoRMvHnqFmdjSgVwAFy6q7k235Qzzkw\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol\":{\"keccak256\":\"0xde4da3fc60926f373ab427e6a07f837b773cd220554c1d895e45ec89b3ac069f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dc8d9235bd4795815ec0e2ccea2dc7847a88c04d01af06e67a081ea269b9943\",\"dweb:/ipfs/QmbPrKGJsZcPXXSpZqJPuiFNjVwjbvtgrMpdY6asA1BouT\"]},\"solstruct/contracts/libs/LibSet.bytes4.sol\":{\"keccak256\":\"0xbb3001b2c52c250106497a5567454442c021e575c696da948a472d4390e63920\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c639b4d68cf6152560d1826bb38fb162c6ee0d2a6fb4a56d0888d7a41efc58c5\",\"dweb:/ipfs/QmaKLDhS5BJPiobaktgMg5dYEML7JKRi2pkkvAmDQLJAXs\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6102c78061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063715018a6146100465780638da5cb5b14610050578063f2fde38b14610074575b600080fd5b61004e61009a565b005b61005861014e565b604080516001600160a01b039092168252519081900360200190f35b61004e6004803603602081101561008a57600080fd5b50356001600160a01b031661015d565b6100a2610267565b6000546001600160a01b03908116911614610104576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b610165610267565b6000546001600160a01b039081169116146101c7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661020c5760405162461bcd60e51b815260040180806020018281038252602681526020018061026c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122011add2031d0742a8cbe642ff5f9ab23254f08fa3a17730fe471596ca4739e0b364736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063715018a6146100465780638da5cb5b14610050578063f2fde38b14610074575b600080fd5b61004e61009a565b005b61005861014e565b604080516001600160a01b039092168252519081900360200190f35b61004e6004803603602081101561008a57600080fd5b50356001600160a01b031661015d565b6100a2610267565b6000546001600160a01b03908116911614610104576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b610165610267565b6000546001600160a01b039081169116146101c7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661020c5760405162461bcd60e51b815260040180806020018281038252602681526020018061026c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122011add2031d0742a8cbe642ff5f9ab23254f08fa3a17730fe471596ca4739e0b364736f6c634300060c0033",
  "immutableReferences": {},
  "sourceMap": "1389:163:12:-:0;;;;;;;;;;;;-1:-1:-1;865:17:29;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:29;-1:-1:-1;;;;;907:18:29;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:29;940:43;;907:6;;940:43;831:159;1389:163:12;;590:104:28;677:10;590:104;:::o;1389:163:12:-;;;;;;;",
  "deployedSourceMap": "1389:163:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1689:145:29;;;:::i;:::-;;1066:77;;;:::i;:::-;;;;-1:-1:-1;;;;;1066:77:29;;;;;;;;;;;;;;1983:240;;;;;;;;;;;;;;;;-1:-1:-1;1983:240:29;-1:-1:-1;;;;;1983:240:29;;:::i;1689:145::-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:29;;;:22;;;1262:67;;;;;-1:-1:-1;;;1262:67:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:29;;::::1;::::0;1758:40:::1;::::0;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:29::1;::::0;;1689:145::o;1066:77::-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:29;1066:77;:::o;1983:240::-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:29;;;:22;;;1262:67;;;;;-1:-1:-1;;;1262:67:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2071:22:29;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:29::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:29;;::::1;::::0;2172:6;::::1;::::0;2151:38:::1;::::0;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:29::1;-1:-1:-1::0;;;;;2199:17:29;;;::::1;::::0;;;::::1;::::0;;1983:240::o;590:104:28:-;677:10;590:104;:::o",
  "source": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2020 IEXEC BLOCKCHAIN TECH                                       *\n *                                                                            *\n * Licensed under the Apache License, Version 2.0 (the \"License\");            *\n * you may not use this file except in compliance with the License.           *\n * You may obtain a copy of the License at                                    *\n *                                                                            *\n *     http://www.apache.org/licenses/LICENSE-2.0                             *\n *                                                                            *\n * Unless required by applicable law or agreed to in writing, software        *\n * distributed under the License is distributed on an \"AS IS\" BASIS,          *\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *\n * See the License for the specific language governing permissions and        *\n * limitations under the License.                                             *\n ******************************************************************************/\n\npragma solidity ^0.6.0;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol\";\n\ncontract ERC1538Store is Ownable\n{\n\tusing LibMap2_bytes4_address_bytes for LibMap2_bytes4_address_bytes.map;\n\n\tLibMap2_bytes4_address_bytes.map internal m_funcs;\n}\n",
  "sourcePath": "/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC1538/ERC1538Store.sol",
  "ast": {
    "absolutePath": "/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC1538/ERC1538Store.sol",
    "exportedSymbols": {
      "ERC1538Store": [
        1253
      ]
    },
    "id": 1254,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1243,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1242:23:12"
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 1244,
        "nodeType": "ImportDirective",
        "scope": 1254,
        "sourceUnit": 2585,
        "src": "1267:52:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
        "file": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
        "id": 1245,
        "nodeType": "ImportDirective",
        "scope": 1254,
        "sourceUnit": 3058,
        "src": "1320:67:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1246,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2584,
              "src": "1414:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$2584",
                "typeString": "contract Ownable"
              }
            },
            "id": 1247,
            "nodeType": "InheritanceSpecifier",
            "src": "1414:7:12"
          }
        ],
        "contractDependencies": [
          2475,
          2584
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1253,
        "linearizedBaseContracts": [
          1253,
          2584,
          2475
        ],
        "name": "ERC1538Store",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1250,
            "libraryName": {
              "contractScope": null,
              "id": 1248,
              "name": "LibMap2_bytes4_address_bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3057,
              "src": "1431:28:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_LibMap2_bytes4_address_bytes_$3057",
                "typeString": "library LibMap2_bytes4_address_bytes"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1425:72:12",
            "typeName": {
              "contractScope": null,
              "id": 1249,
              "name": "LibMap2_bytes4_address_bytes.map",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2796,
              "src": "1464:32:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_map_$2796_storage_ptr",
                "typeString": "struct LibMap2_bytes4_address_bytes.map"
              }
            }
          },
          {
            "constant": false,
            "id": 1252,
            "mutability": "mutable",
            "name": "m_funcs",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1253,
            "src": "1500:49:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_map_$2796_storage",
              "typeString": "struct LibMap2_bytes4_address_bytes.map"
            },
            "typeName": {
              "contractScope": null,
              "id": 1251,
              "name": "LibMap2_bytes4_address_bytes.map",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2796,
              "src": "1500:32:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_map_$2796_storage_ptr",
                "typeString": "struct LibMap2_bytes4_address_bytes.map"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 1254,
        "src": "1389:163:12"
      }
    ],
    "src": "1242:311:12"
  },
  "legacyAST": {
    "absolutePath": "/Users/gabriel/Documents/iexec/poco-boost/iexec-solidity/contracts/ERC1538/ERC1538Store.sol",
    "exportedSymbols": {
      "ERC1538Store": [
        1253
      ]
    },
    "id": 1254,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1243,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1242:23:12"
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 1244,
        "nodeType": "ImportDirective",
        "scope": 1254,
        "sourceUnit": 2585,
        "src": "1267:52:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
        "file": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
        "id": 1245,
        "nodeType": "ImportDirective",
        "scope": 1254,
        "sourceUnit": 3058,
        "src": "1320:67:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1246,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2584,
              "src": "1414:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$2584",
                "typeString": "contract Ownable"
              }
            },
            "id": 1247,
            "nodeType": "InheritanceSpecifier",
            "src": "1414:7:12"
          }
        ],
        "contractDependencies": [
          2475,
          2584
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1253,
        "linearizedBaseContracts": [
          1253,
          2584,
          2475
        ],
        "name": "ERC1538Store",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1250,
            "libraryName": {
              "contractScope": null,
              "id": 1248,
              "name": "LibMap2_bytes4_address_bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3057,
              "src": "1431:28:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_LibMap2_bytes4_address_bytes_$3057",
                "typeString": "library LibMap2_bytes4_address_bytes"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1425:72:12",
            "typeName": {
              "contractScope": null,
              "id": 1249,
              "name": "LibMap2_bytes4_address_bytes.map",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2796,
              "src": "1464:32:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_map_$2796_storage_ptr",
                "typeString": "struct LibMap2_bytes4_address_bytes.map"
              }
            }
          },
          {
            "constant": false,
            "id": 1252,
            "mutability": "mutable",
            "name": "m_funcs",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1253,
            "src": "1500:49:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_map_$2796_storage",
              "typeString": "struct LibMap2_bytes4_address_bytes.map"
            },
            "typeName": {
              "contractScope": null,
              "id": 1251,
              "name": "LibMap2_bytes4_address_bytes.map",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2796,
              "src": "1500:32:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_map_$2796_storage_ptr",
                "typeString": "struct LibMap2_bytes4_address_bytes.map"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 1254,
        "src": "1389:163:12"
      }
    ],
    "src": "1242:311:12"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.12+commit.27d51765.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.5",
  "updatedAt": "2023-05-04T08:29:47.195Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}