From 01ffe5e9e39054a55edba31a893b32776f25a761 Mon Sep 17 00:00:00 2001 From: Michalina Date: Wed, 29 Nov 2023 10:58:52 +0100 Subject: [PATCH] Remove support for Goerli testnet As the Goerli testnet will become deprecated with end of year 2023 and we've already migrated to Sepolia testnet, we'll no longer need the Goerli-related code past that date. --- .github/workflows/contracts.yml | 27 +- deploy/00_resolve_nucypher_token.ts | 1 - deploy/07_deploy_token_staking.ts | 2 +- external/goerli/KeepRegistry.json | 11542 ------------------------ external/goerli/KeepToken.json | 430 - external/goerli/KeepTokenStaking.json | 916 -- hardhat.config.ts | 14 - 7 files changed, 4 insertions(+), 12928 deletions(-) delete mode 100644 external/goerli/KeepRegistry.json delete mode 100644 external/goerli/KeepToken.json delete mode 100644 external/goerli/KeepTokenStaking.json diff --git a/.github/workflows/contracts.yml b/.github/workflows/contracts.yml index 61bdeb4c..ea5d333f 100644 --- a/.github/workflows/contracts.yml +++ b/.github/workflows/contracts.yml @@ -125,14 +125,7 @@ jobs: - name: Deploy contracts env: - # Using fake ternary expressions to decide which credentials to use, - # depending on chosen environment. Note: if `GOERLI_ETH_HOSTNAME_HTTP` - # is empty, the expression will be evaluated to - # `SEPOLIA_ETH_HOSTNAME_HTTP`'s value. - CHAIN_API_URL: | - ${{ inputs.github.event.inputs.environment == 'goerli' - && secrets.GOERLI_ETH_HOSTNAME_HTTP - || secrets.SEPOLIA_ETH_HOSTNAME_HTTP }} + CHAIN_API_URL: ${{ secrets.SEPOLIA_ETH_HOSTNAME_HTTP }} CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY: ${{ secrets.TESTNET_ETH_CONTRACT_OWNER_PRIVATE_KEY }} KEEP_CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY: ${{ secrets.TESTNET_ETH_CONTRACT_OWNER_PRIVATE_KEY }} run: yarn deploy --network ${{ github.event.inputs.environment }} @@ -203,14 +196,7 @@ jobs: - name: Verify contracts on Etherscan env: ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }} - # Using fake ternary expressions to decide which credentials to use, - # depending on chosen environment. Note: if `GOERLI_ETH_HOSTNAME_HTTP` - # is empty, the expression will be evaluated to - # `SEPOLIA_ETH_HOSTNAME_HTTP`'s value. - CHAIN_API_URL: | - ${{ inputs.github.event.inputs.environment == 'goerli' - && secrets.GOERLI_ETH_HOSTNAME_HTTP - || secrets.SEPOLIA_ETH_HOSTNAME_HTTP }} + CHAIN_API_URL: ${{ secrets.SEPOLIA_ETH_HOSTNAME_HTTP }} run: | yarn run hardhat --network ${{ github.event.inputs.environment }} \ etherscan-verify --license GPL-3.0 --force-license @@ -245,14 +231,7 @@ jobs: - name: Deploy contracts env: - # Using fake ternary expressions to decide which credentials to use, - # depending on chosen environment. Note: if `GOERLI_ETH_HOSTNAME_HTTP` - # is empty, the expression will be evaluated to - # `SEPOLIA_ETH_HOSTNAME_HTTP`'s value. - CHAIN_API_URL: | - ${{ inputs.github.event.inputs.environment == 'goerli' - && secrets.GOERLI_ETH_HOSTNAME_HTTP - || secrets.SEPOLIA_ETH_HOSTNAME_HTTP }} + CHAIN_API_URL: ${{ secrets.SEPOLIA_ETH_HOSTNAME_HTTP }} CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY: ${{ secrets.DAPP_DEV_TESTNET_ETH_CONTRACT_OWNER_PRIVATE_KEY }} KEEP_CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY: ${{ secrets.TESTNET_ETH_CONTRACT_OWNER_PRIVATE_KEY }} run: yarn deploy --network ${{ github.event.inputs.environment }} diff --git a/deploy/00_resolve_nucypher_token.ts b/deploy/00_resolve_nucypher_token.ts index 58383398..6be1fba8 100644 --- a/deploy/00_resolve_nucypher_token.ts +++ b/deploy/00_resolve_nucypher_token.ts @@ -22,7 +22,6 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { // TODO: For testnets currently we deploy a stub contract. We should consider // switching to an actual contract. hre.network.name !== "sepolia" && - hre.network.name !== "goerli" && (!hre.network.tags.allowStubs || (hre.network.config as HardhatNetworkConfig)?.forking?.enabled) ) { diff --git a/deploy/07_deploy_token_staking.ts b/deploy/07_deploy_token_staking.ts index 2820f162..1f96e7ae 100644 --- a/deploy/07_deploy_token_staking.ts +++ b/deploy/07_deploy_token_staking.ts @@ -17,7 +17,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { ] const tokenStakingInitializerArgs = [] - // TODO: Consider upgradable deployment also for goerli/sepolia. + // TODO: Consider upgradable deployment also for sepolia. let tokenStakingAddress if (hre.network.name == "mainnet") { const TokenStaking = await ethers.getContractFactory("TokenStaking") diff --git a/external/goerli/KeepRegistry.json b/external/goerli/KeepRegistry.json deleted file mode 100644 index 48e1b435..00000000 --- a/external/goerli/KeepRegistry.json +++ /dev/null @@ -1,11542 +0,0 @@ -{ - "address": "0x8420404dC5e9a9f920280B2e0e08988cc7008459", - "contractName": "KeepRegistry", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "defaultPanicButton", - "type": "address" - } - ], - "name": "DefaultPanicButtonUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "governance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "OperatorContractApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "OperatorContractDisabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "OperatorContractPanicButtonDisabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operatorContract", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "panicButton", - "type": "address" - } - ], - "name": "OperatorContractPanicButtonUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "serviceContract", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "upgrader", - "type": "address" - } - ], - "name": "OperatorContractUpgraderUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "registryKeeper", - "type": "address" - } - ], - "name": "RegistryKeeperUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operatorContract", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "keeper", - "type": "address" - } - ], - "name": "ServiceContractUpgraderUpdated", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "defaultPanicButton", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "governance", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "operatorContractUpgraders", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "operatorContracts", - "outputs": [ - { - "internalType": "enum KeepRegistry.ContractStatus", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "panicButtons", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registryKeeper", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "serviceContractUpgraders", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_governance", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_registryKeeper", - "type": "address" - } - ], - "name": "setRegistryKeeper", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_panicButton", - "type": "address" - } - ], - "name": "setDefaultPanicButton", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_panicButton", - "type": "address" - } - ], - "name": "setOperatorContractPanicButton", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "disableOperatorContractPanicButton", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_serviceContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_operatorContractUpgrader", - "type": "address" - } - ], - "name": "setOperatorContractUpgrader", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_serviceContractUpgrader", - "type": "address" - } - ], - "name": "setServiceContractUpgrader", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "approveOperatorContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "disableOperatorContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "isNewOperatorContract", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "isApprovedOperatorContract", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_serviceContract", - "type": "address" - } - ], - "name": "operatorContractUpgraderFor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "serviceContractUpgraderFor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"defaultPanicButton\",\"type\":\"address\"}],\"name\":\"DefaultPanicButtonUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"governance\",\"type\":\"address\"}],\"name\":\"GovernanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"OperatorContractApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"OperatorContractDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"OperatorContractPanicButtonDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"panicButton\",\"type\":\"address\"}],\"name\":\"OperatorContractPanicButtonUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"serviceContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"upgrader\",\"type\":\"address\"}],\"name\":\"OperatorContractUpgraderUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryKeeper\",\"type\":\"address\"}],\"name\":\"RegistryKeeperUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"keeper\",\"type\":\"address\"}],\"name\":\"ServiceContractUpgraderUpdated\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"approveOperatorContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultPanicButton\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"disableOperatorContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operatorContract\",\"type\":\"address\"}],\"name\":\"disableOperatorContractPanicButton\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"isApprovedOperatorContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorContract\",\"type\":\"address\"}],\"name\":\"isNewOperatorContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_serviceContract\",\"type\":\"address\"}],\"name\":\"operatorContractUpgraderFor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorContractUpgraders\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorContracts\",\"outputs\":[{\"internalType\":\"enum KeepRegistry.ContractStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"panicButtons\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registryKeeper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operatorContract\",\"type\":\"address\"}],\"name\":\"serviceContractUpgraderFor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"serviceContractUpgraders\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_panicButton\",\"type\":\"address\"}],\"name\":\"setDefaultPanicButton\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governance\",\"type\":\"address\"}],\"name\":\"setGovernance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operatorContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_panicButton\",\"type\":\"address\"}],\"name\":\"setOperatorContractPanicButton\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_serviceContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operatorContractUpgrader\",\"type\":\"address\"}],\"name\":\"setOperatorContractUpgrader\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registryKeeper\",\"type\":\"address\"}],\"name\":\"setRegistryKeeper\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operatorContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_serviceContractUpgrader\",\"type\":\"address\"}],\"name\":\"setServiceContractUpgrader\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{},\"title\":\"KeepRegistry\"},\"userdoc\":{\"methods\":{},\"notice\":\"Governance owned registry of approved contracts and roles.\"}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/keep-core/keep-core/solidity-v1/contracts/KeepRegistry.sol\":\"KeepRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/runner/work/keep-core/keep-core/solidity-v1/contracts/KeepRegistry.sol\":{\"keccak256\":\"0xbc0e44a838bae38c1d11db28b5bfcfdfd79394d423ce6fd85dcb90a6420e1f10\",\"urls\":[\"bzz-raw://74b140b3a4547cc742785c613e2927bc3592e71f0f42eff5112462a9985083cb\",\"dweb:/ipfs/QmQLsNVWAcgHhtoJAfiXjipYaksfLpcoaa45c2LvRh9hfg\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061207d806100e26000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80636557eccf116100ad578063ab033ea911610071578063ab033ea914610691578063d82437f4146106d5578063d858008a14610739578063db816b62146107bd578063ff111e3b146108015761012c565b80636557eccf1461047f578063716d6061146105035780637b4df9381461056757806384c07bd2146105eb57806384d57689146106355761012c565b80635a9671f5116100f45780635a9671f5146102cd5780635aa6e67514610329578063618dae2014610373578063637e9dbe146103b757806363dc5fcf146103fb5761012c565b806302db580b1461013157806309a6f73f146101755780632afb015e146101b95780633ae70f46146102035780633dbcab4514610267575b600080fd5b6101736004803603602081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610885565b005b6101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b2c565b005b6101c1610dfe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102656004803603604081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e24565b005b6102a96004803603602081101561027d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fff565b604051808260028111156102b957fe5b60ff16815260200191505060405180910390f35b61030f600480360360208110156102e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061101f565b604051808215151515815260200191505060405180910390f35b61033161108d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b2565b005b6103f9600480360360208110156103cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123d565b005b61043d6004803603602081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611546565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c16004803603602081101561049557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105656004803603604081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611618565b005b6105a96004803603602081101561057d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105f3611826565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106776004803603602081101561064b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061184c565b604051808215151515815260200191505060405180910390f35b6106d3600480360360208110156106a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118bb565b005b610737600480360360408110156106eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a44565b005b61077b6004803603602081101561074f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107ff600480360360208110156107d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1d565b005b6108436004803603602081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fa8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b8061088f8161101f565b610901576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e6f742061206e6577206f70657261746f7220636f6e7472616374000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690836002811115610a2057fe5b0217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb5d7fbd1d67a09be2dd3ba169be0ebfb43f1d3fd31b12e9dc9e5bd98517bfafb82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b80610b368161184c565b610b8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120036021913960400191505060405180910390fd5b816000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f50616e696320627574746f6e2064697361626c6564000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b6002600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690836002811115610d9057fe5b02179055507f61e8cab67fc6f073d7e3bbd8d936b519daf95f5655e8b22563c63eaba75f8fa384604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f067d7db72df8e5428d719a48ef14b072cdb3942706bfc6becc7198a316d73b788282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b60066020528060005260406000206000915054906101000a900460ff1681565b600080600281111561102d57fe5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600281111561108557fe5b149050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06f6f3a56d213caa17abfd21597ab6f8660771e05f9d430505ce755a2fdbb551600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b806112478161184c565b61129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120036021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f50616e696320627574746f6e20616c72656164792064697361626c656400000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f825c13d61db27b3c0dae8523f70310e87c2dfd99ea7023664547208322ff679c82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6f5a686a46a4dd38461a6a5ce54c3b8dd7b989914b5a0748c8d6669c794778528282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001600281111561185b57fe5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660028111156118b357fe5b149050919050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b81611a4e8161184c565b611aa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120036021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611fdc6027913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120246025913960400191505060405180910390fd5b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5f94d794a8a48b75e2ca89133a5b8748d14217648260c5247e57e3d314fd52a78383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611edf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe5ecd8c922f03a416959a48c633d1bfdd1615ea46923a0a3e5d65ec90a38e038600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe44697361626c65642070616e696320627574746f6e2063616e6e6f7420626520757064617465644e6f7420616e20617070726f766564206f70657261746f7220636f6e747261637450616e696320627574746f6e206d757374206265206e6f6e2d7a65726f2061646472657373a265627a7a72315820f20bf3ebc7811d1f023543e6dd44e06785866f1c9dcf4bb8c9941c3d6c0be0ce64736f6c63430005110032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80636557eccf116100ad578063ab033ea911610071578063ab033ea914610691578063d82437f4146106d5578063d858008a14610739578063db816b62146107bd578063ff111e3b146108015761012c565b80636557eccf1461047f578063716d6061146105035780637b4df9381461056757806384c07bd2146105eb57806384d57689146106355761012c565b80635a9671f5116100f45780635a9671f5146102cd5780635aa6e67514610329578063618dae2014610373578063637e9dbe146103b757806363dc5fcf146103fb5761012c565b806302db580b1461013157806309a6f73f146101755780632afb015e146101b95780633ae70f46146102035780633dbcab4514610267575b600080fd5b6101736004803603602081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610885565b005b6101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b2c565b005b6101c1610dfe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102656004803603604081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e24565b005b6102a96004803603602081101561027d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fff565b604051808260028111156102b957fe5b60ff16815260200191505060405180910390f35b61030f600480360360208110156102e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061101f565b604051808215151515815260200191505060405180910390f35b61033161108d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b2565b005b6103f9600480360360208110156103cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123d565b005b61043d6004803603602081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611546565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c16004803603602081101561049557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105656004803603604081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611618565b005b6105a96004803603602081101561057d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105f3611826565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106776004803603602081101561064b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061184c565b604051808215151515815260200191505060405180910390f35b6106d3600480360360208110156106a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118bb565b005b610737600480360360408110156106eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a44565b005b61077b6004803603602081101561074f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107ff600480360360208110156107d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1d565b005b6108436004803603602081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fa8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b8061088f8161101f565b610901576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e6f742061206e6577206f70657261746f7220636f6e7472616374000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690836002811115610a2057fe5b0217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb5d7fbd1d67a09be2dd3ba169be0ebfb43f1d3fd31b12e9dc9e5bd98517bfafb82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b80610b368161184c565b610b8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120036021913960400191505060405180910390fd5b816000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f50616e696320627574746f6e2064697361626c6564000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b6002600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690836002811115610d9057fe5b02179055507f61e8cab67fc6f073d7e3bbd8d936b519daf95f5655e8b22563c63eaba75f8fa384604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f067d7db72df8e5428d719a48ef14b072cdb3942706bfc6becc7198a316d73b788282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b60066020528060005260406000206000915054906101000a900460ff1681565b600080600281111561102d57fe5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600281111561108557fe5b149050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06f6f3a56d213caa17abfd21597ab6f8660771e05f9d430505ce755a2fdbb551600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b806112478161184c565b61129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120036021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f50616e696320627574746f6e20616c72656164792064697361626c656400000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f825c13d61db27b3c0dae8523f70310e87c2dfd99ea7023664547208322ff679c82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6f5a686a46a4dd38461a6a5ce54c3b8dd7b989914b5a0748c8d6669c794778528282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001600281111561185b57fe5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660028111156118b357fe5b149050919050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b81611a4e8161184c565b611aa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120036021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611fdc6027913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120246025913960400191505060405180910390fd5b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5f94d794a8a48b75e2ca89133a5b8748d14217648260c5247e57e3d314fd52a78383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611edf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe5ecd8c922f03a416959a48c633d1bfdd1615ea46923a0a3e5d65ec90a38e038600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe44697361626c65642070616e696320627574746f6e2063616e6e6f7420626520757064617465644e6f7420616e20617070726f766564206f70657261746f7220636f6e747261637450616e696320627574746f6e206d757374206265206e6f6e2d7a65726f2061646472657373a265627a7a72315820f20bf3ebc7811d1f023543e6dd44e06785866f1c9dcf4bb8c9941c3d6c0be0ce64736f6c63430005110032", - "sourceMap": "120:7949:12:-;;;4164:139;8:9:-1;5:2;;;30:1;27;20:12;5:2;4164:139:12;4208:10;4195;;:23;;;;;;;;;;;;;;;;;;4245:10;4228:14;;:27;;;;;;;;;;;;;;;;;;4286:10;4265:18;;:31;;;;;;;;;;;;;;;;;;120:7949;;;;;;", - "deployedSourceMap": "120:7949:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;120:7949:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6614:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6614:346:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;6966:305;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6966:305:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;1449:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6256:352;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6256:352:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2477:59;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2477:59:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7277:193;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7277:193:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;369:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4647:185;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4647:185:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;5462:427;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5462:427:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;7685:188;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7685:188:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7879;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7879:188:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5895:355;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5895:355:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1266:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1266:47:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;588:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7476:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7476:203:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4309:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4309:151:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;4838:618;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4838:618:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1792:60;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1792:60:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4466:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4466:175:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;2369:59;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2369:59:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6614:346;6715:16;3828:40;3850:17;3828:21;:40::i;:::-;3807:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3419:10;3401:28;;:14;;;;;;;;;;;:28;;;3393:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:23;6774:17;:35;6792:16;6774:35;;;;;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;;;;;;;6878:18;;;;;;;;;;;6845:12;:30;6858:16;6845:30;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;6911:42;6936:16;6911:42;;;;;;;;;;;;;;;;;;;;;;6614:346;;:::o;6966:305::-;7072:16;4036:45;4063:17;4036:26;:45::i;:::-;4015:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7114:16;3534:19;3556:12;:31;3569:17;3556:31;;;;;;;;;;;;;;;;;;;;;;;;;3534:53;;3628:1;3605:25;;:11;:25;;;;3597:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3689:10;3674:25;;:11;:25;;;3666:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7184:23;7146:17;:35;7164:16;7146:35;;;;;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;;;;;;;7222:42;7247:16;7222:42;;;;;;;;;;;;;;;;;;;;;;4150:1;;6966:305;;:::o;1449:33::-;;;;;;;;;;;;;:::o;6256:352::-;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6453:24;6407;:43;6432:17;6407:43;;;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;6492:109;6536:17;6567:24;6492:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6256:352;;:::o;2477:59::-;;;;;;;;;;;;;;;;;;;;;;:::o;7277:193::-;7379:4;7445:18;7406:57;;;;;;;;:17;:35;7424:16;7406:35;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;;;;;7399:64;;7277:193;;;:::o;369:25::-;;;;;;;;;;;;;:::o;4647:185::-;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4753:12;4732:18;;:33;;;;;;;;;;;;;;;;;;4780:45;4806:18;;;;;;;;;;;4780:45;;;;;;;;;;;;;;;;;;;;;;4647:185;:::o;5462:427::-;5580:17;4036:45;4063:17;4036:26;:45::i;:::-;4015:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5700:1;5657:45;;:12;:31;5670:17;5657:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;5636:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:1;5768:12;:31;5781:17;5768:31;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;5828:54;5864:17;5828:54;;;;;;;;;;;;;;;;;;;;;;5462:427;;:::o;7685:188::-;7793:7;7823:25;:43;7849:16;7823:43;;;;;;;;;;;;;;;;;;;;;;;;;7816:50;;7685:188;;;:::o;7879:::-;7987:7;8017:24;:43;8042:17;8017:43;;;;;;;;;;;;;;;;;;;;;;;;;8010:50;;7879:188;;;:::o;5895:355::-;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:25;6047;:43;6073:16;6047:43;;;;;;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;6133:110;6178:16;6208:25;6133:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5895:355;;:::o;1266:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;588:29::-;;;;;;;;;;;;;:::o;7476:203::-;7583:4;7649:23;7610:62;;;;;;;;:17;:35;7628:16;7610:35;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;;;;;;7603:69;;7476:203;;;:::o;4309:151::-;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4398:11;4385:10;;:24;;;;;;;;;;;;;;;;;;4424:29;4442:10;;;;;;;;;;;4424:29;;;;;;;;;;;;;;;;;;;;;;4309:151;:::o;4838:618::-;4980:17;4036:45;4063:17;4036:26;:45::i;:::-;4015:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5088:1;5045:45;;:12;:31;5058:17;5045:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;5024:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5210:1;5186:26;;:12;:26;;;;5165:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:12;5286;:31;5299:17;5286:31;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;5348:101;5396:17;5427:12;5348:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4838:618;;;:::o;1792:60::-;;;;;;;;;;;;;;;;;;;;;;:::o;4466:175::-;3300:10;3286:24;;:10;;;;;;;;;;;:24;;;3278:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4567:15;4550:14;;:32;;;;;;;;;;;;;;;;;;4597:37;4619:14;;;;;;;;;;;4597:37;;;;;;;;;;;;;;;;;;;;;;4466:175;:::o;2369:59::-;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.5.17;\n\n/// @title KeepRegistry\n/// @notice Governance owned registry of approved contracts and roles.\ncontract KeepRegistry {\n enum ContractStatus {New, Approved, Disabled}\n\n // Governance role is to enable recovery from key compromise by rekeying\n // other roles. Also, it can disable operator contract panic buttons\n // permanently.\n address public governance;\n\n // Registry Keeper maintains approved operator contracts. Each operator\n // contract must be approved before it can be authorized by a staker or\n // used by a service contract.\n address public registryKeeper;\n\n // Each operator contract has a Panic Button which can disable malicious\n // or malfunctioning contract that have been previously approved by the\n // Registry Keeper.\n //\n // New operator contract added to the registry has a default panic button\n // value assigned (defaultPanicButton). Panic button for each operator\n // contract can be later updated by Governance to individual value.\n //\n // It is possible to disable panic button for individual contract by\n // setting the panic button to zero address. In such case, operator contract\n // can not be disabled and is permanently approved in the registry.\n mapping(address => address) public panicButtons;\n\n // Default panic button for each new operator contract added to the\n // registry. Can be later updated for each contract.\n address public defaultPanicButton;\n\n // Each service contract has a Operator Contract Upgrader whose purpose\n // is to manage operator contracts for that specific service contract.\n // The Operator Contract Upgrader can add new operator contracts to the\n // service contract’s operator contract list, and deprecate old ones.\n mapping(address => address) public operatorContractUpgraders;\n\n // Operator contract may have a Service Contract Upgrader whose purpose is\n // to manage service contracts for that specific operator contract.\n // Service Contract Upgrader can add and remove service contracts\n // from the list of service contracts approved to work with the operator\n // contract. List of service contracts is maintained in the operator\n // contract and is optional - not every operator contract needs to have\n // a list of service contracts it wants to cooperate with.\n mapping(address => address) public serviceContractUpgraders;\n\n // The registry of operator contracts\n mapping(address => ContractStatus) public operatorContracts;\n\n event OperatorContractApproved(address operatorContract);\n event OperatorContractDisabled(address operatorContract);\n\n event GovernanceUpdated(address governance);\n event RegistryKeeperUpdated(address registryKeeper);\n event DefaultPanicButtonUpdated(address defaultPanicButton);\n event OperatorContractPanicButtonDisabled(address operatorContract);\n event OperatorContractPanicButtonUpdated(\n address operatorContract,\n address panicButton\n );\n event OperatorContractUpgraderUpdated(\n address serviceContract,\n address upgrader\n );\n event ServiceContractUpgraderUpdated(\n address operatorContract,\n address keeper\n );\n\n modifier onlyGovernance() {\n require(governance == msg.sender, \"Not authorized\");\n _;\n }\n\n modifier onlyRegistryKeeper() {\n require(registryKeeper == msg.sender, \"Not authorized\");\n _;\n }\n\n modifier onlyPanicButton(address _operatorContract) {\n address panicButton = panicButtons[_operatorContract];\n require(panicButton != address(0), \"Panic button disabled\");\n require(panicButton == msg.sender, \"Not authorized\");\n _;\n }\n\n modifier onlyForNewContract(address _operatorContract) {\n require(\n isNewOperatorContract(_operatorContract),\n \"Not a new operator contract\"\n );\n _;\n }\n\n modifier onlyForApprovedContract(address _operatorContract) {\n require(\n isApprovedOperatorContract(_operatorContract),\n \"Not an approved operator contract\"\n );\n _;\n }\n\n constructor() public {\n governance = msg.sender;\n registryKeeper = msg.sender;\n defaultPanicButton = msg.sender;\n }\n\n function setGovernance(address _governance) public onlyGovernance {\n governance = _governance;\n emit GovernanceUpdated(governance);\n }\n\n function setRegistryKeeper(address _registryKeeper) public onlyGovernance {\n registryKeeper = _registryKeeper;\n emit RegistryKeeperUpdated(registryKeeper);\n }\n\n function setDefaultPanicButton(address _panicButton) public onlyGovernance {\n defaultPanicButton = _panicButton;\n emit DefaultPanicButtonUpdated(defaultPanicButton);\n }\n\n function setOperatorContractPanicButton(\n address _operatorContract,\n address _panicButton\n ) public onlyForApprovedContract(_operatorContract) onlyGovernance {\n require(\n panicButtons[_operatorContract] != address(0),\n \"Disabled panic button cannot be updated\"\n );\n require(\n _panicButton != address(0),\n \"Panic button must be non-zero address\"\n );\n\n panicButtons[_operatorContract] = _panicButton;\n\n emit OperatorContractPanicButtonUpdated(\n _operatorContract,\n _panicButton\n );\n }\n\n function disableOperatorContractPanicButton(address _operatorContract)\n public\n onlyForApprovedContract(_operatorContract)\n onlyGovernance\n {\n require(\n panicButtons[_operatorContract] != address(0),\n \"Panic button already disabled\"\n );\n\n panicButtons[_operatorContract] = address(0);\n\n emit OperatorContractPanicButtonDisabled(_operatorContract);\n }\n\n function setOperatorContractUpgrader(\n address _serviceContract,\n address _operatorContractUpgrader\n ) public onlyGovernance {\n operatorContractUpgraders[_serviceContract] = _operatorContractUpgrader;\n emit OperatorContractUpgraderUpdated(\n _serviceContract,\n _operatorContractUpgrader\n );\n }\n\n function setServiceContractUpgrader(\n address _operatorContract,\n address _serviceContractUpgrader\n ) public onlyGovernance {\n serviceContractUpgraders[_operatorContract] = _serviceContractUpgrader;\n emit ServiceContractUpgraderUpdated(\n _operatorContract,\n _serviceContractUpgrader\n );\n }\n\n function approveOperatorContract(address operatorContract)\n public\n onlyForNewContract(operatorContract)\n onlyRegistryKeeper\n {\n operatorContracts[operatorContract] = ContractStatus.Approved;\n panicButtons[operatorContract] = defaultPanicButton;\n emit OperatorContractApproved(operatorContract);\n }\n\n function disableOperatorContract(address operatorContract)\n public\n onlyForApprovedContract(operatorContract)\n onlyPanicButton(operatorContract)\n {\n operatorContracts[operatorContract] = ContractStatus.Disabled;\n emit OperatorContractDisabled(operatorContract);\n }\n\n function isNewOperatorContract(address operatorContract)\n public\n view\n returns (bool)\n {\n return operatorContracts[operatorContract] == ContractStatus.New;\n }\n\n function isApprovedOperatorContract(address operatorContract)\n public\n view\n returns (bool)\n {\n return operatorContracts[operatorContract] == ContractStatus.Approved;\n }\n\n function operatorContractUpgraderFor(address _serviceContract)\n public\n view\n returns (address)\n {\n return operatorContractUpgraders[_serviceContract];\n }\n\n function serviceContractUpgraderFor(address _operatorContract)\n public\n view\n returns (address)\n {\n return serviceContractUpgraders[_operatorContract];\n }\n}\n", - "sourcePath": "/home/runner/work/keep-core/keep-core/solidity-v1/contracts/KeepRegistry.sol", - "ast": { - "absolutePath": "/home/runner/work/keep-core/keep-core/solidity-v1/contracts/KeepRegistry.sol", - "exportedSymbols": { - "KeepRegistry": [4642] - }, - "id": 4643, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4202, - "literals": ["solidity", "0.5", ".17"], - "nodeType": "PragmaDirective", - "src": "0:23:12" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title KeepRegistry\n @notice Governance owned registry of approved contracts and roles.", - "fullyImplemented": true, - "id": 4642, - "linearizedBaseContracts": [4642], - "name": "KeepRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "KeepRegistry.ContractStatus", - "id": 4206, - "members": [ - { - "id": 4203, - "name": "New", - "nodeType": "EnumValue", - "src": "169:3:12" - }, - { - "id": 4204, - "name": "Approved", - "nodeType": "EnumValue", - "src": "174:8:12" - }, - { - "id": 4205, - "name": "Disabled", - "nodeType": "EnumValue", - "src": "184:8:12" - } - ], - "name": "ContractStatus", - "nodeType": "EnumDefinition", - "src": "148:45:12" - }, - { - "constant": false, - "id": 4208, - "name": "governance", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "369:25:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "369:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 4210, - "name": "registryKeeper", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "588:29:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4209, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "588:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 4214, - "name": "panicButtons", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "1266:47:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 4213, - "keyType": { - "id": 4211, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1274:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1266:27:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 4212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1285:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 4216, - "name": "defaultPanicButton", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "1449:33:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1449:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 4220, - "name": "operatorContractUpgraders", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "1792:60:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 4219, - "keyType": { - "id": 4217, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1800:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1792:27:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 4218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1811:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 4224, - "name": "serviceContractUpgraders", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "2369:59:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 4223, - "keyType": { - "id": 4221, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2377:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2369:27:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 4222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2388:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 4228, - "name": "operatorContracts", - "nodeType": "VariableDeclaration", - "scope": 4642, - "src": "2477:59:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_ContractStatus_$4206_$", - "typeString": "mapping(address => enum KeepRegistry.ContractStatus)" - }, - "typeName": { - "id": 4227, - "keyType": { - "id": 4225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2485:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2477:34:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_ContractStatus_$4206_$", - "typeString": "mapping(address => enum KeepRegistry.ContractStatus)" - }, - "valueType": { - "contractScope": null, - "id": 4226, - "name": "ContractStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4206, - "src": "2496:14:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 4232, - "name": "OperatorContractApproved", - "nodeType": "EventDefinition", - "parameters": { - "id": 4231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4230, - "indexed": false, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4232, - "src": "2574:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2574:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2573:26:12" - }, - "src": "2543:57:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4236, - "name": "OperatorContractDisabled", - "nodeType": "EventDefinition", - "parameters": { - "id": 4235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4234, - "indexed": false, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4236, - "src": "2636:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2636:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2635:26:12" - }, - "src": "2605:57:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4240, - "name": "GovernanceUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4238, - "indexed": false, - "name": "governance", - "nodeType": "VariableDeclaration", - "scope": 4240, - "src": "2692:18:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2692:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2691:20:12" - }, - "src": "2668:44:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4244, - "name": "RegistryKeeperUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4242, - "indexed": false, - "name": "registryKeeper", - "nodeType": "VariableDeclaration", - "scope": 4244, - "src": "2745:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4241, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2745:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2744:24:12" - }, - "src": "2717:52:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4248, - "name": "DefaultPanicButtonUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4246, - "indexed": false, - "name": "defaultPanicButton", - "nodeType": "VariableDeclaration", - "scope": 4248, - "src": "2806:26:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2806:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2805:28:12" - }, - "src": "2774:60:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4252, - "name": "OperatorContractPanicButtonDisabled", - "nodeType": "EventDefinition", - "parameters": { - "id": 4251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4250, - "indexed": false, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4252, - "src": "2881:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2881:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2880:26:12" - }, - "src": "2839:68:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4258, - "name": "OperatorContractPanicButtonUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4254, - "indexed": false, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4258, - "src": "2962:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4253, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2962:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4256, - "indexed": false, - "name": "panicButton", - "nodeType": "VariableDeclaration", - "scope": 4258, - "src": "2996:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4255, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2996:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2952:69:12" - }, - "src": "2912:110:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4264, - "name": "OperatorContractUpgraderUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4260, - "indexed": false, - "name": "serviceContract", - "nodeType": "VariableDeclaration", - "scope": 4264, - "src": "3074:23:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4259, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3074:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4262, - "indexed": false, - "name": "upgrader", - "nodeType": "VariableDeclaration", - "scope": 4264, - "src": "3107:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4261, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3107:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3064:65:12" - }, - "src": "3027:103:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 4270, - "name": "ServiceContractUpgraderUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4269, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4266, - "indexed": false, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4270, - "src": "3181:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4265, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3181:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4268, - "indexed": false, - "name": "keeper", - "nodeType": "VariableDeclaration", - "scope": 4270, - "src": "3215:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3215:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3171:64:12" - }, - "src": "3135:101:12" - }, - { - "body": { - "id": 4281, - "nodeType": "Block", - "src": "3268:79:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4273, - "name": "governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4208, - "src": "3286:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4274, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28146, - "src": "3300:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3300:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3286:24:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420617574686f72697a6564", - "id": 4277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3312:16:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - }, - "value": "Not authorized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "id": 4272, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "3278:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3278:51:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4279, - "nodeType": "ExpressionStatement", - "src": "3278:51:12" - }, - { - "id": 4280, - "nodeType": "PlaceholderStatement", - "src": "3339:1:12" - } - ] - }, - "documentation": null, - "id": 4282, - "name": "onlyGovernance", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4271, - "nodeType": "ParameterList", - "parameters": [], - "src": "3265:2:12" - }, - "src": "3242:105:12", - "visibility": "internal" - }, - { - "body": { - "id": 4293, - "nodeType": "Block", - "src": "3383:83:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4285, - "name": "registryKeeper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4210, - "src": "3401:14:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4286, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28146, - "src": "3419:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3419:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3401:28:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420617574686f72697a6564", - "id": 4289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3431:16:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - }, - "value": "Not authorized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "id": 4284, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "3393:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3393:55:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4291, - "nodeType": "ExpressionStatement", - "src": "3393:55:12" - }, - { - "id": 4292, - "nodeType": "PlaceholderStatement", - "src": "3458:1:12" - } - ] - }, - "documentation": null, - "id": 4294, - "name": "onlyRegistryKeeper", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4283, - "nodeType": "ParameterList", - "parameters": [], - "src": "3380:2:12" - }, - "src": "3353:113:12", - "visibility": "internal" - }, - { - "body": { - "id": 4322, - "nodeType": "Block", - "src": "3524:212:12", - "statements": [ - { - "assignments": [4299], - "declarations": [ - { - "constant": false, - "id": 4299, - "name": "panicButton", - "nodeType": "VariableDeclaration", - "scope": 4322, - "src": "3534:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4298, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3534:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4303, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4300, - "name": "panicButtons", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "3556:12:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4302, - "indexExpression": { - "argumentTypes": null, - "id": 4301, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4296, - "src": "3569:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3556:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3534:53:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4305, - "name": "panicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4299, - "src": "3605:11:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3628:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3620:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3620:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3605:25:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50616e696320627574746f6e2064697361626c6564", - "id": 4310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3632:23:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ade7d52768b2962ebe381899f913000013150b093135ace53d3db606894f67e1", - "typeString": "literal_string \"Panic button disabled\"" - }, - "value": "Panic button disabled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ade7d52768b2962ebe381899f913000013150b093135ace53d3db606894f67e1", - "typeString": "literal_string \"Panic button disabled\"" - } - ], - "id": 4304, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "3597:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3597:59:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4312, - "nodeType": "ExpressionStatement", - "src": "3597:59:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4314, - "name": "panicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4299, - "src": "3674:11:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4315, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28146, - "src": "3689:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3689:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3674:25:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420617574686f72697a6564", - "id": 4318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3701:16:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - }, - "value": "Not authorized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "id": 4313, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "3666:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3666:52:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4320, - "nodeType": "ExpressionStatement", - "src": "3666:52:12" - }, - { - "id": 4321, - "nodeType": "PlaceholderStatement", - "src": "3728:1:12" - } - ] - }, - "documentation": null, - "id": 4323, - "name": "onlyPanicButton", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4296, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4323, - "src": "3497:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3497:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3496:27:12" - }, - "src": "3472:264:12", - "visibility": "internal" - }, - { - "body": { - "id": 4335, - "nodeType": "Block", - "src": "3797:142:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4329, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4325, - "src": "3850:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4328, - "name": "isNewOperatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4602, - "src": "3828:21:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 4330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3828:40:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f742061206e6577206f70657261746f7220636f6e7472616374", - "id": 4331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3882:29:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c4324476717aecd1e569d3ba832c005a24f88be8c2ba65d585df6b95edd8a35", - "typeString": "literal_string \"Not a new operator contract\"" - }, - "value": "Not a new operator contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c4324476717aecd1e569d3ba832c005a24f88be8c2ba65d585df6b95edd8a35", - "typeString": "literal_string \"Not a new operator contract\"" - } - ], - "id": 4327, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "3807:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3807:114:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4333, - "nodeType": "ExpressionStatement", - "src": "3807:114:12" - }, - { - "id": 4334, - "nodeType": "PlaceholderStatement", - "src": "3931:1:12" - } - ] - }, - "documentation": null, - "id": 4336, - "name": "onlyForNewContract", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4326, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4325, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4336, - "src": "3770:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3770:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3769:27:12" - }, - "src": "3742:197:12", - "visibility": "internal" - }, - { - "body": { - "id": 4348, - "nodeType": "Block", - "src": "4005:153:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4342, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4338, - "src": "4063:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4341, - "name": "isApprovedOperatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4617, - "src": "4036:26:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 4343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4036:45:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420616e20617070726f766564206f70657261746f7220636f6e7472616374", - "id": 4344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4095:35:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b6f9ff674e366ea74583b3402886a452ea021bd3f0dac1662124ff59e8062f7f", - "typeString": "literal_string \"Not an approved operator contract\"" - }, - "value": "Not an approved operator contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b6f9ff674e366ea74583b3402886a452ea021bd3f0dac1662124ff59e8062f7f", - "typeString": "literal_string \"Not an approved operator contract\"" - } - ], - "id": 4340, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "4015:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4015:125:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4346, - "nodeType": "ExpressionStatement", - "src": "4015:125:12" - }, - { - "id": 4347, - "nodeType": "PlaceholderStatement", - "src": "4150:1:12" - } - ] - }, - "documentation": null, - "id": 4349, - "name": "onlyForApprovedContract", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4338, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "3978:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3977:27:12" - }, - "src": "3945:213:12", - "visibility": "internal" - }, - { - "body": { - "id": 4367, - "nodeType": "Block", - "src": "4185:118:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4352, - "name": "governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4208, - "src": "4195:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4353, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28146, - "src": "4208:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4208:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4195:23:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4356, - "nodeType": "ExpressionStatement", - "src": "4195:23:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 4360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4357, - "name": "registryKeeper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4210, - "src": "4228:14:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4358, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28146, - "src": "4245:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4245:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4228:27:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4361, - "nodeType": "ExpressionStatement", - "src": "4228:27:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 4365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4362, - "name": "defaultPanicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4216, - "src": "4265:18:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4363, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28146, - "src": "4286:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4286:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4265:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4366, - "nodeType": "ExpressionStatement", - "src": "4265:31:12" - } - ] - }, - "documentation": null, - "id": 4368, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4350, - "nodeType": "ParameterList", - "parameters": [], - "src": "4175:2:12" - }, - "returnParameters": { - "id": 4351, - "nodeType": "ParameterList", - "parameters": [], - "src": "4185:0:12" - }, - "scope": 4642, - "src": "4164:139:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4383, - "nodeType": "Block", - "src": "4375:85:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4375, - "name": "governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4208, - "src": "4385:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4376, - "name": "_governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4370, - "src": "4398:11:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4385:24:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4378, - "nodeType": "ExpressionStatement", - "src": "4385:24:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4380, - "name": "governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4208, - "src": "4442:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4379, - "name": "GovernanceUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4240, - "src": "4424:17:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4424:29:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4382, - "nodeType": "EmitStatement", - "src": "4419:34:12" - } - ] - }, - "documentation": null, - "id": 4384, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4373, - "modifierName": { - "argumentTypes": null, - "id": 4372, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "4360:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4360:14:12" - } - ], - "name": "setGovernance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4371, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4370, - "name": "_governance", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "4332:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4369, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4332:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4331:21:12" - }, - "returnParameters": { - "id": 4374, - "nodeType": "ParameterList", - "parameters": [], - "src": "4375:0:12" - }, - "scope": 4642, - "src": "4309:151:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4399, - "nodeType": "Block", - "src": "4540:101:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4391, - "name": "registryKeeper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4210, - "src": "4550:14:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4392, - "name": "_registryKeeper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4386, - "src": "4567:15:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4550:32:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4394, - "nodeType": "ExpressionStatement", - "src": "4550:32:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4396, - "name": "registryKeeper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4210, - "src": "4619:14:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4395, - "name": "RegistryKeeperUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4244, - "src": "4597:21:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4597:37:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4398, - "nodeType": "EmitStatement", - "src": "4592:42:12" - } - ] - }, - "documentation": null, - "id": 4400, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4389, - "modifierName": { - "argumentTypes": null, - "id": 4388, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "4525:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4525:14:12" - } - ], - "name": "setRegistryKeeper", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4386, - "name": "_registryKeeper", - "nodeType": "VariableDeclaration", - "scope": 4400, - "src": "4493:23:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4385, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4493:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4492:25:12" - }, - "returnParameters": { - "id": 4390, - "nodeType": "ParameterList", - "parameters": [], - "src": "4540:0:12" - }, - "scope": 4642, - "src": "4466:175:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4415, - "nodeType": "Block", - "src": "4722:110:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4407, - "name": "defaultPanicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4216, - "src": "4732:18:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4408, - "name": "_panicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "4753:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4732:33:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4410, - "nodeType": "ExpressionStatement", - "src": "4732:33:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4412, - "name": "defaultPanicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4216, - "src": "4806:18:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4411, - "name": "DefaultPanicButtonUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4248, - "src": "4780:25:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4780:45:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4414, - "nodeType": "EmitStatement", - "src": "4775:50:12" - } - ] - }, - "documentation": null, - "id": 4416, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4405, - "modifierName": { - "argumentTypes": null, - "id": 4404, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "4707:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4707:14:12" - } - ], - "name": "setDefaultPanicButton", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4402, - "name": "_panicButton", - "nodeType": "VariableDeclaration", - "scope": 4416, - "src": "4678:20:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4678:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4677:22:12" - }, - "returnParameters": { - "id": 4406, - "nodeType": "ParameterList", - "parameters": [], - "src": "4722:0:12" - }, - "scope": 4642, - "src": "4647:185:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4459, - "nodeType": "Block", - "src": "5014:442:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4429, - "name": "panicButtons", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "5045:12:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4431, - "indexExpression": { - "argumentTypes": null, - "id": 4430, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4418, - "src": "5058:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5045:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5088:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5080:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5080:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5045:45:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44697361626c65642070616e696320627574746f6e2063616e6e6f742062652075706461746564", - "id": 4436, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5104:41:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d1b9aaf1a91db2554cb251884681dc026fd3d7a153bea70c79e510a6a54dd87", - "typeString": "literal_string \"Disabled panic button cannot be updated\"" - }, - "value": "Disabled panic button cannot be updated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d1b9aaf1a91db2554cb251884681dc026fd3d7a153bea70c79e510a6a54dd87", - "typeString": "literal_string \"Disabled panic button cannot be updated\"" - } - ], - "id": 4428, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "5024:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:131:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4438, - "nodeType": "ExpressionStatement", - "src": "5024:131:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4440, - "name": "_panicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4420, - "src": "5186:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5210:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5202:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5202:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5186:26:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50616e696320627574746f6e206d757374206265206e6f6e2d7a65726f2061646472657373", - "id": 4445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5226:39:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5a7b2a0d032ae56f5d1e30bd631d28945ee32864ebe6c7d1d2b0c4e8cc78eb5", - "typeString": "literal_string \"Panic button must be non-zero address\"" - }, - "value": "Panic button must be non-zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5a7b2a0d032ae56f5d1e30bd631d28945ee32864ebe6c7d1d2b0c4e8cc78eb5", - "typeString": "literal_string \"Panic button must be non-zero address\"" - } - ], - "id": 4439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "5165:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5165:110:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4447, - "nodeType": "ExpressionStatement", - "src": "5165:110:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 4452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4448, - "name": "panicButtons", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "5286:12:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4450, - "indexExpression": { - "argumentTypes": null, - "id": 4449, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4418, - "src": "5299:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4451, - "name": "_panicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4420, - "src": "5320:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5286:46:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4453, - "nodeType": "ExpressionStatement", - "src": "5286:46:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4455, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4418, - "src": "5396:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4456, - "name": "_panicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4420, - "src": "5427:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4454, - "name": "OperatorContractPanicButtonUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "5348:34:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 4457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5348:101:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4458, - "nodeType": "EmitStatement", - "src": "5343:106:12" - } - ] - }, - "documentation": null, - "id": 4460, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4423, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4418, - "src": "4980:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4424, - "modifierName": { - "argumentTypes": null, - "id": 4422, - "name": "onlyForApprovedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4349, - "src": "4956:23:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4956:42:12" - }, - { - "arguments": null, - "id": 4426, - "modifierName": { - "argumentTypes": null, - "id": 4425, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "4999:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4999:14:12" - } - ], - "name": "setOperatorContractPanicButton", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4418, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4460, - "src": "4887:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4887:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4420, - "name": "_panicButton", - "nodeType": "VariableDeclaration", - "scope": 4460, - "src": "4922:20:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4922:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4877:71:12" - }, - "returnParameters": { - "id": 4427, - "nodeType": "ParameterList", - "parameters": [], - "src": "5014:0:12" - }, - "scope": 4642, - "src": "4838:618:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4493, - "nodeType": "Block", - "src": "5626:263:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4471, - "name": "panicButtons", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "5657:12:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4473, - "indexExpression": { - "argumentTypes": null, - "id": 4472, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "5670:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5657:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5700:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5692:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5692:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5657:45:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50616e696320627574746f6e20616c72656164792064697361626c6564", - "id": 4478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5716:31:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bb534723a179d6568d886b637fa707371e8c13170fa009941c10391cd4682512", - "typeString": "literal_string \"Panic button already disabled\"" - }, - "value": "Panic button already disabled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bb534723a179d6568d886b637fa707371e8c13170fa009941c10391cd4682512", - "typeString": "literal_string \"Panic button already disabled\"" - } - ], - "id": 4470, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "src": "5636:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5636:121:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4480, - "nodeType": "ExpressionStatement", - "src": "5636:121:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 4487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4481, - "name": "panicButtons", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "5768:12:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4483, - "indexExpression": { - "argumentTypes": null, - "id": 4482, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "5781:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5768:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5810:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5802:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5802:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5768:44:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4488, - "nodeType": "ExpressionStatement", - "src": "5768:44:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4490, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "5864:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4489, - "name": "OperatorContractPanicButtonDisabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4252, - "src": "5828:35:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5828:54:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4492, - "nodeType": "EmitStatement", - "src": "5823:59:12" - } - ] - }, - "documentation": null, - "id": 4494, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4465, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4462, - "src": "5580:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4466, - "modifierName": { - "argumentTypes": null, - "id": 4464, - "name": "onlyForApprovedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4349, - "src": "5556:23:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:42:12" - }, - { - "arguments": null, - "id": 4468, - "modifierName": { - "argumentTypes": null, - "id": 4467, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "5607:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5607:14:12" - } - ], - "name": "disableOperatorContractPanicButton", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4462, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4494, - "src": "5506:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4461, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5506:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5505:27:12" - }, - "returnParameters": { - "id": 4469, - "nodeType": "ParameterList", - "parameters": [], - "src": "5626:0:12" - }, - "scope": 4642, - "src": "5462:427:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4514, - "nodeType": "Block", - "src": "6037:213:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4503, - "name": "operatorContractUpgraders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4220, - "src": "6047:25:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4505, - "indexExpression": { - "argumentTypes": null, - "id": 4504, - "name": "_serviceContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4496, - "src": "6073:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6047:43:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4506, - "name": "_operatorContractUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4498, - "src": "6093:25:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6047:71:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4508, - "nodeType": "ExpressionStatement", - "src": "6047:71:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4510, - "name": "_serviceContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4496, - "src": "6178:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4511, - "name": "_operatorContractUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4498, - "src": "6208:25:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4509, - "name": "OperatorContractUpgraderUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4264, - "src": "6133:31:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 4512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6133:110:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4513, - "nodeType": "EmitStatement", - "src": "6128:115:12" - } - ] - }, - "documentation": null, - "id": 4515, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4501, - "modifierName": { - "argumentTypes": null, - "id": 4500, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "6022:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6022:14:12" - } - ], - "name": "setOperatorContractUpgrader", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4499, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4496, - "name": "_serviceContract", - "nodeType": "VariableDeclaration", - "scope": 4515, - "src": "5941:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4495, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5941:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4498, - "name": "_operatorContractUpgrader", - "nodeType": "VariableDeclaration", - "scope": 4515, - "src": "5975:33:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4497, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5975:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5931:83:12" - }, - "returnParameters": { - "id": 4502, - "nodeType": "ParameterList", - "parameters": [], - "src": "6037:0:12" - }, - "scope": 4642, - "src": "5895:355:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4535, - "nodeType": "Block", - "src": "6397:211:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4524, - "name": "serviceContractUpgraders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4224, - "src": "6407:24:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4526, - "indexExpression": { - "argumentTypes": null, - "id": 4525, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4517, - "src": "6432:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6407:43:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4527, - "name": "_serviceContractUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4519, - "src": "6453:24:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6407:70:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4529, - "nodeType": "ExpressionStatement", - "src": "6407:70:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4531, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4517, - "src": "6536:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4532, - "name": "_serviceContractUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4519, - "src": "6567:24:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4530, - "name": "ServiceContractUpgraderUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4270, - "src": "6492:30:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 4533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6492:109:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4534, - "nodeType": "EmitStatement", - "src": "6487:114:12" - } - ] - }, - "documentation": null, - "id": 4536, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4522, - "modifierName": { - "argumentTypes": null, - "id": 4521, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "6382:14:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6382:14:12" - } - ], - "name": "setServiceContractUpgrader", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4517, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4536, - "src": "6301:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4516, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6301:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4519, - "name": "_serviceContractUpgrader", - "nodeType": "VariableDeclaration", - "scope": 4536, - "src": "6336:32:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6336:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6291:83:12" - }, - "returnParameters": { - "id": 4523, - "nodeType": "ParameterList", - "parameters": [], - "src": "6397:0:12" - }, - "scope": 4642, - "src": "6256:352:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4563, - "nodeType": "Block", - "src": "6764:196:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4546, - "name": "operatorContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4228, - "src": "6774:17:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_ContractStatus_$4206_$", - "typeString": "mapping(address => enum KeepRegistry.ContractStatus)" - } - }, - "id": 4548, - "indexExpression": { - "argumentTypes": null, - "id": 4547, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4538, - "src": "6792:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6774:35:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4549, - "name": "ContractStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4206, - "src": "6812:14:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContractStatus_$4206_$", - "typeString": "type(enum KeepRegistry.ContractStatus)" - } - }, - "id": 4550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Approved", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6812:23:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "src": "6774:61:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "id": 4552, - "nodeType": "ExpressionStatement", - "src": "6774:61:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 4557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4553, - "name": "panicButtons", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4214, - "src": "6845:12:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4555, - "indexExpression": { - "argumentTypes": null, - "id": 4554, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4538, - "src": "6858:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6845:30:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4556, - "name": "defaultPanicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4216, - "src": "6878:18:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6845:51:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4558, - "nodeType": "ExpressionStatement", - "src": "6845:51:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4560, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4538, - "src": "6936:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4559, - "name": "OperatorContractApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "6911:24:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6911:42:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4562, - "nodeType": "EmitStatement", - "src": "6906:47:12" - } - ] - }, - "documentation": null, - "id": 4564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4541, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4538, - "src": "6715:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4542, - "modifierName": { - "argumentTypes": null, - "id": 4540, - "name": "onlyForNewContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4336, - "src": "6696:18:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6696:36:12" - }, - { - "arguments": null, - "id": 4544, - "modifierName": { - "argumentTypes": null, - "id": 4543, - "name": "onlyRegistryKeeper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294, - "src": "6741:18:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6741:18:12" - } - ], - "name": "approveOperatorContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4538, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4564, - "src": "6647:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6647:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6646:26:12" - }, - "returnParameters": { - "id": 4545, - "nodeType": "ParameterList", - "parameters": [], - "src": "6764:0:12" - }, - "scope": 4642, - "src": "6614:346:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4586, - "nodeType": "Block", - "src": "7136:135:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4575, - "name": "operatorContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4228, - "src": "7146:17:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_ContractStatus_$4206_$", - "typeString": "mapping(address => enum KeepRegistry.ContractStatus)" - } - }, - "id": 4577, - "indexExpression": { - "argumentTypes": null, - "id": 4576, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4566, - "src": "7164:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7146:35:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4578, - "name": "ContractStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4206, - "src": "7184:14:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContractStatus_$4206_$", - "typeString": "type(enum KeepRegistry.ContractStatus)" - } - }, - "id": 4579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Disabled", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7184:23:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "src": "7146:61:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "id": 4581, - "nodeType": "ExpressionStatement", - "src": "7146:61:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4583, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4566, - "src": "7247:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4582, - "name": "OperatorContractDisabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4236, - "src": "7222:24:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7222:42:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4585, - "nodeType": "EmitStatement", - "src": "7217:47:12" - } - ] - }, - "documentation": null, - "id": 4587, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4569, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4566, - "src": "7072:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4570, - "modifierName": { - "argumentTypes": null, - "id": 4568, - "name": "onlyForApprovedContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4349, - "src": "7048:23:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7048:41:12" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4572, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4566, - "src": "7114:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4573, - "modifierName": { - "argumentTypes": null, - "id": 4571, - "name": "onlyPanicButton", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4323, - "src": "7098:15:12", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7098:33:12" - } - ], - "name": "disableOperatorContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4566, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4587, - "src": "6999:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6999:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6998:26:12" - }, - "returnParameters": { - "id": 4574, - "nodeType": "ParameterList", - "parameters": [], - "src": "7136:0:12" - }, - "scope": 4642, - "src": "6966:305:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4601, - "nodeType": "Block", - "src": "7389:81:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - }, - "id": 4599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4594, - "name": "operatorContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4228, - "src": "7406:17:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_ContractStatus_$4206_$", - "typeString": "mapping(address => enum KeepRegistry.ContractStatus)" - } - }, - "id": 4596, - "indexExpression": { - "argumentTypes": null, - "id": 4595, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4589, - "src": "7424:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7406:35:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4597, - "name": "ContractStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4206, - "src": "7445:14:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContractStatus_$4206_$", - "typeString": "type(enum KeepRegistry.ContractStatus)" - } - }, - "id": 4598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "New", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7445:18:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "src": "7406:57:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4593, - "id": 4600, - "nodeType": "Return", - "src": "7399:64:12" - } - ] - }, - "documentation": null, - "id": 4602, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isNewOperatorContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4590, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4589, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "7308:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4588, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7308:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7307:26:12" - }, - "returnParameters": { - "id": 4593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4592, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4602, - "src": "7379:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4591, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7379:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7378:6:12" - }, - "scope": 4642, - "src": "7277:193:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4616, - "nodeType": "Block", - "src": "7593:86:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - }, - "id": 4614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4609, - "name": "operatorContracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4228, - "src": "7610:17:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_ContractStatus_$4206_$", - "typeString": "mapping(address => enum KeepRegistry.ContractStatus)" - } - }, - "id": 4611, - "indexExpression": { - "argumentTypes": null, - "id": 4610, - "name": "operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4604, - "src": "7628:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7610:35:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4612, - "name": "ContractStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4206, - "src": "7649:14:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContractStatus_$4206_$", - "typeString": "type(enum KeepRegistry.ContractStatus)" - } - }, - "id": 4613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Approved", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7649:23:12", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - } - }, - "src": "7610:62:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4608, - "id": 4615, - "nodeType": "Return", - "src": "7603:69:12" - } - ] - }, - "documentation": null, - "id": 4617, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOperatorContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4604, - "name": "operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4617, - "src": "7512:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4603, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7512:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7511:26:12" - }, - "returnParameters": { - "id": 4608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4607, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4617, - "src": "7583:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4606, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7583:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7582:6:12" - }, - "scope": 4642, - "src": "7476:203:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4628, - "nodeType": "Block", - "src": "7806:67:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4624, - "name": "operatorContractUpgraders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4220, - "src": "7823:25:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4626, - "indexExpression": { - "argumentTypes": null, - "id": 4625, - "name": "_serviceContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4619, - "src": "7849:16:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7823:43:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4623, - "id": 4627, - "nodeType": "Return", - "src": "7816:50:12" - } - ] - }, - "documentation": null, - "id": 4629, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "operatorContractUpgraderFor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4620, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4619, - "name": "_serviceContract", - "nodeType": "VariableDeclaration", - "scope": 4629, - "src": "7722:24:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7722:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7721:26:12" - }, - "returnParameters": { - "id": 4623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4622, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4629, - "src": "7793:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7793:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7792:9:12" - }, - "scope": 4642, - "src": "7685:188:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4640, - "nodeType": "Block", - "src": "8000:67:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4636, - "name": "serviceContractUpgraders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4224, - "src": "8017:24:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 4638, - "indexExpression": { - "argumentTypes": null, - "id": 4637, - "name": "_operatorContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "8042:17:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8017:43:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4635, - "id": 4639, - "nodeType": "Return", - "src": "8010:50:12" - } - ] - }, - "documentation": null, - "id": 4641, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "serviceContractUpgraderFor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4631, - "name": "_operatorContract", - "nodeType": "VariableDeclaration", - "scope": 4641, - "src": "7915:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4630, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7915:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7914:27:12" - }, - "returnParameters": { - "id": 4635, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4634, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4641, - "src": "7987:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4633, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7987:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7986:9:12" - }, - "scope": 4642, - "src": "7879:188:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 4643, - "src": "120:7949:12" - } - ], - "src": "0:8070:12" - }, - "legacyAST": { - "attributes": { - "absolutePath": "/home/runner/work/keep-core/keep-core/solidity-v1/contracts/KeepRegistry.sol", - "exportedSymbols": { - "KeepRegistry": [4642] - } - }, - "children": [ - { - "attributes": { - "literals": ["solidity", "0.5", ".17"] - }, - "id": 4202, - "name": "PragmaDirective", - "src": "0:23:12" - }, - { - "attributes": { - "baseContracts": [null], - "contractDependencies": [null], - "contractKind": "contract", - "documentation": "@title KeepRegistry\n @notice Governance owned registry of approved contracts and roles.", - "fullyImplemented": true, - "linearizedBaseContracts": [4642], - "name": "KeepRegistry", - "scope": 4643 - }, - "children": [ - { - "attributes": { - "canonicalName": "KeepRegistry.ContractStatus", - "name": "ContractStatus" - }, - "children": [ - { - "attributes": { - "name": "New" - }, - "id": 4203, - "name": "EnumValue", - "src": "169:3:12" - }, - { - "attributes": { - "name": "Approved" - }, - "id": 4204, - "name": "EnumValue", - "src": "174:8:12" - }, - { - "attributes": { - "name": "Disabled" - }, - "id": 4205, - "name": "EnumValue", - "src": "184:8:12" - } - ], - "id": 4206, - "name": "EnumDefinition", - "src": "148:45:12" - }, - { - "attributes": { - "constant": false, - "name": "governance", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4207, - "name": "ElementaryTypeName", - "src": "369:7:12" - } - ], - "id": 4208, - "name": "VariableDeclaration", - "src": "369:25:12" - }, - { - "attributes": { - "constant": false, - "name": "registryKeeper", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4209, - "name": "ElementaryTypeName", - "src": "588:7:12" - } - ], - "id": 4210, - "name": "VariableDeclaration", - "src": "588:29:12" - }, - { - "attributes": { - "constant": false, - "name": "panicButtons", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "mapping(address => address)", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "type": "mapping(address => address)" - }, - "children": [ - { - "attributes": { - "name": "address", - "type": "address" - }, - "id": 4211, - "name": "ElementaryTypeName", - "src": "1274:7:12" - }, - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4212, - "name": "ElementaryTypeName", - "src": "1285:7:12" - } - ], - "id": 4213, - "name": "Mapping", - "src": "1266:27:12" - } - ], - "id": 4214, - "name": "VariableDeclaration", - "src": "1266:47:12" - }, - { - "attributes": { - "constant": false, - "name": "defaultPanicButton", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4215, - "name": "ElementaryTypeName", - "src": "1449:7:12" - } - ], - "id": 4216, - "name": "VariableDeclaration", - "src": "1449:33:12" - }, - { - "attributes": { - "constant": false, - "name": "operatorContractUpgraders", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "mapping(address => address)", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "type": "mapping(address => address)" - }, - "children": [ - { - "attributes": { - "name": "address", - "type": "address" - }, - "id": 4217, - "name": "ElementaryTypeName", - "src": "1800:7:12" - }, - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4218, - "name": "ElementaryTypeName", - "src": "1811:7:12" - } - ], - "id": 4219, - "name": "Mapping", - "src": "1792:27:12" - } - ], - "id": 4220, - "name": "VariableDeclaration", - "src": "1792:60:12" - }, - { - "attributes": { - "constant": false, - "name": "serviceContractUpgraders", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "mapping(address => address)", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "type": "mapping(address => address)" - }, - "children": [ - { - "attributes": { - "name": "address", - "type": "address" - }, - "id": 4221, - "name": "ElementaryTypeName", - "src": "2377:7:12" - }, - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4222, - "name": "ElementaryTypeName", - "src": "2388:7:12" - } - ], - "id": 4223, - "name": "Mapping", - "src": "2369:27:12" - } - ], - "id": 4224, - "name": "VariableDeclaration", - "src": "2369:59:12" - }, - { - "attributes": { - "constant": false, - "name": "operatorContracts", - "scope": 4642, - "stateVariable": true, - "storageLocation": "default", - "type": "mapping(address => enum KeepRegistry.ContractStatus)", - "value": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "type": "mapping(address => enum KeepRegistry.ContractStatus)" - }, - "children": [ - { - "attributes": { - "name": "address", - "type": "address" - }, - "id": 4225, - "name": "ElementaryTypeName", - "src": "2485:7:12" - }, - { - "attributes": { - "contractScope": null, - "name": "ContractStatus", - "referencedDeclaration": 4206, - "type": "enum KeepRegistry.ContractStatus" - }, - "id": 4226, - "name": "UserDefinedTypeName", - "src": "2496:14:12" - } - ], - "id": 4227, - "name": "Mapping", - "src": "2477:34:12" - } - ], - "id": 4228, - "name": "VariableDeclaration", - "src": "2477:59:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "OperatorContractApproved" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "operatorContract", - "scope": 4232, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4229, - "name": "ElementaryTypeName", - "src": "2574:7:12" - } - ], - "id": 4230, - "name": "VariableDeclaration", - "src": "2574:24:12" - } - ], - "id": 4231, - "name": "ParameterList", - "src": "2573:26:12" - } - ], - "id": 4232, - "name": "EventDefinition", - "src": "2543:57:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "OperatorContractDisabled" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "operatorContract", - "scope": 4236, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4233, - "name": "ElementaryTypeName", - "src": "2636:7:12" - } - ], - "id": 4234, - "name": "VariableDeclaration", - "src": "2636:24:12" - } - ], - "id": 4235, - "name": "ParameterList", - "src": "2635:26:12" - } - ], - "id": 4236, - "name": "EventDefinition", - "src": "2605:57:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "GovernanceUpdated" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "governance", - "scope": 4240, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4237, - "name": "ElementaryTypeName", - "src": "2692:7:12" - } - ], - "id": 4238, - "name": "VariableDeclaration", - "src": "2692:18:12" - } - ], - "id": 4239, - "name": "ParameterList", - "src": "2691:20:12" - } - ], - "id": 4240, - "name": "EventDefinition", - "src": "2668:44:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "RegistryKeeperUpdated" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "registryKeeper", - "scope": 4244, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4241, - "name": "ElementaryTypeName", - "src": "2745:7:12" - } - ], - "id": 4242, - "name": "VariableDeclaration", - "src": "2745:22:12" - } - ], - "id": 4243, - "name": "ParameterList", - "src": "2744:24:12" - } - ], - "id": 4244, - "name": "EventDefinition", - "src": "2717:52:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "DefaultPanicButtonUpdated" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "defaultPanicButton", - "scope": 4248, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4245, - "name": "ElementaryTypeName", - "src": "2806:7:12" - } - ], - "id": 4246, - "name": "VariableDeclaration", - "src": "2806:26:12" - } - ], - "id": 4247, - "name": "ParameterList", - "src": "2805:28:12" - } - ], - "id": 4248, - "name": "EventDefinition", - "src": "2774:60:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "OperatorContractPanicButtonDisabled" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "operatorContract", - "scope": 4252, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4249, - "name": "ElementaryTypeName", - "src": "2881:7:12" - } - ], - "id": 4250, - "name": "VariableDeclaration", - "src": "2881:24:12" - } - ], - "id": 4251, - "name": "ParameterList", - "src": "2880:26:12" - } - ], - "id": 4252, - "name": "EventDefinition", - "src": "2839:68:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "OperatorContractPanicButtonUpdated" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "operatorContract", - "scope": 4258, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4253, - "name": "ElementaryTypeName", - "src": "2962:7:12" - } - ], - "id": 4254, - "name": "VariableDeclaration", - "src": "2962:24:12" - }, - { - "attributes": { - "constant": false, - "indexed": false, - "name": "panicButton", - "scope": 4258, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4255, - "name": "ElementaryTypeName", - "src": "2996:7:12" - } - ], - "id": 4256, - "name": "VariableDeclaration", - "src": "2996:19:12" - } - ], - "id": 4257, - "name": "ParameterList", - "src": "2952:69:12" - } - ], - "id": 4258, - "name": "EventDefinition", - "src": "2912:110:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "OperatorContractUpgraderUpdated" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "serviceContract", - "scope": 4264, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4259, - "name": "ElementaryTypeName", - "src": "3074:7:12" - } - ], - "id": 4260, - "name": "VariableDeclaration", - "src": "3074:23:12" - }, - { - "attributes": { - "constant": false, - "indexed": false, - "name": "upgrader", - "scope": 4264, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4261, - "name": "ElementaryTypeName", - "src": "3107:7:12" - } - ], - "id": 4262, - "name": "VariableDeclaration", - "src": "3107:16:12" - } - ], - "id": 4263, - "name": "ParameterList", - "src": "3064:65:12" - } - ], - "id": 4264, - "name": "EventDefinition", - "src": "3027:103:12" - }, - { - "attributes": { - "anonymous": false, - "documentation": null, - "name": "ServiceContractUpgraderUpdated" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "indexed": false, - "name": "operatorContract", - "scope": 4270, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4265, - "name": "ElementaryTypeName", - "src": "3181:7:12" - } - ], - "id": 4266, - "name": "VariableDeclaration", - "src": "3181:24:12" - }, - { - "attributes": { - "constant": false, - "indexed": false, - "name": "keeper", - "scope": 4270, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4267, - "name": "ElementaryTypeName", - "src": "3215:7:12" - } - ], - "id": 4268, - "name": "VariableDeclaration", - "src": "3215:14:12" - } - ], - "id": 4269, - "name": "ParameterList", - "src": "3171:64:12" - } - ], - "id": 4270, - "name": "EventDefinition", - "src": "3135:101:12" - }, - { - "attributes": { - "documentation": null, - "name": "onlyGovernance", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4271, - "name": "ParameterList", - "src": "3265:2:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4272, - "name": "Identifier", - "src": "3278:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4208, - "type": "address", - "value": "governance" - }, - "id": 4273, - "name": "Identifier", - "src": "3286:10:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address payable" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 28146, - "type": "msg", - "value": "msg" - }, - "id": 4274, - "name": "Identifier", - "src": "3300:3:12" - } - ], - "id": 4275, - "name": "MemberAccess", - "src": "3300:10:12" - } - ], - "id": 4276, - "name": "BinaryOperation", - "src": "3286:24:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "4e6f7420617574686f72697a6564", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Not authorized\"", - "value": "Not authorized" - }, - "id": 4277, - "name": "Literal", - "src": "3312:16:12" - } - ], - "id": 4278, - "name": "FunctionCall", - "src": "3278:51:12" - } - ], - "id": 4279, - "name": "ExpressionStatement", - "src": "3278:51:12" - }, - { - "id": 4280, - "name": "PlaceholderStatement", - "src": "3339:1:12" - } - ], - "id": 4281, - "name": "Block", - "src": "3268:79:12" - } - ], - "id": 4282, - "name": "ModifierDefinition", - "src": "3242:105:12" - }, - { - "attributes": { - "documentation": null, - "name": "onlyRegistryKeeper", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4283, - "name": "ParameterList", - "src": "3380:2:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4284, - "name": "Identifier", - "src": "3393:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4210, - "type": "address", - "value": "registryKeeper" - }, - "id": 4285, - "name": "Identifier", - "src": "3401:14:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address payable" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 28146, - "type": "msg", - "value": "msg" - }, - "id": 4286, - "name": "Identifier", - "src": "3419:3:12" - } - ], - "id": 4287, - "name": "MemberAccess", - "src": "3419:10:12" - } - ], - "id": 4288, - "name": "BinaryOperation", - "src": "3401:28:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "4e6f7420617574686f72697a6564", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Not authorized\"", - "value": "Not authorized" - }, - "id": 4289, - "name": "Literal", - "src": "3431:16:12" - } - ], - "id": 4290, - "name": "FunctionCall", - "src": "3393:55:12" - } - ], - "id": 4291, - "name": "ExpressionStatement", - "src": "3393:55:12" - }, - { - "id": 4292, - "name": "PlaceholderStatement", - "src": "3458:1:12" - } - ], - "id": 4293, - "name": "Block", - "src": "3383:83:12" - } - ], - "id": 4294, - "name": "ModifierDefinition", - "src": "3353:113:12" - }, - { - "attributes": { - "documentation": null, - "name": "onlyPanicButton", - "visibility": "internal" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4323, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4295, - "name": "ElementaryTypeName", - "src": "3497:7:12" - } - ], - "id": 4296, - "name": "VariableDeclaration", - "src": "3497:25:12" - } - ], - "id": 4297, - "name": "ParameterList", - "src": "3496:27:12" - }, - { - "children": [ - { - "attributes": { - "assignments": [4299] - }, - "children": [ - { - "attributes": { - "constant": false, - "name": "panicButton", - "scope": 4322, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4298, - "name": "ElementaryTypeName", - "src": "3534:7:12" - } - ], - "id": 4299, - "name": "VariableDeclaration", - "src": "3534:19:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4214, - "type": "mapping(address => address)", - "value": "panicButtons" - }, - "id": 4300, - "name": "Identifier", - "src": "3556:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4296, - "type": "address", - "value": "_operatorContract" - }, - "id": 4301, - "name": "Identifier", - "src": "3569:17:12" - } - ], - "id": 4302, - "name": "IndexAccess", - "src": "3556:31:12" - } - ], - "id": 4303, - "name": "VariableDeclarationStatement", - "src": "3534:53:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ade7d52768b2962ebe381899f913000013150b093135ace53d3db606894f67e1", - "typeString": "literal_string \"Panic button disabled\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4304, - "name": "Identifier", - "src": "3597:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "!=", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4299, - "type": "address", - "value": "panicButton" - }, - "id": 4305, - "name": "Identifier", - "src": "3605:11:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "address payable", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 4306, - "name": "ElementaryTypeNameExpression", - "src": "3620:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 4307, - "name": "Literal", - "src": "3628:1:12" - } - ], - "id": 4308, - "name": "FunctionCall", - "src": "3620:10:12" - } - ], - "id": 4309, - "name": "BinaryOperation", - "src": "3605:25:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "50616e696320627574746f6e2064697361626c6564", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Panic button disabled\"", - "value": "Panic button disabled" - }, - "id": 4310, - "name": "Literal", - "src": "3632:23:12" - } - ], - "id": 4311, - "name": "FunctionCall", - "src": "3597:59:12" - } - ], - "id": 4312, - "name": "ExpressionStatement", - "src": "3597:59:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4313, - "name": "Identifier", - "src": "3666:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4299, - "type": "address", - "value": "panicButton" - }, - "id": 4314, - "name": "Identifier", - "src": "3674:11:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address payable" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 28146, - "type": "msg", - "value": "msg" - }, - "id": 4315, - "name": "Identifier", - "src": "3689:3:12" - } - ], - "id": 4316, - "name": "MemberAccess", - "src": "3689:10:12" - } - ], - "id": 4317, - "name": "BinaryOperation", - "src": "3674:25:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "4e6f7420617574686f72697a6564", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Not authorized\"", - "value": "Not authorized" - }, - "id": 4318, - "name": "Literal", - "src": "3701:16:12" - } - ], - "id": 4319, - "name": "FunctionCall", - "src": "3666:52:12" - } - ], - "id": 4320, - "name": "ExpressionStatement", - "src": "3666:52:12" - }, - { - "id": 4321, - "name": "PlaceholderStatement", - "src": "3728:1:12" - } - ], - "id": 4322, - "name": "Block", - "src": "3524:212:12" - } - ], - "id": 4323, - "name": "ModifierDefinition", - "src": "3472:264:12" - }, - { - "attributes": { - "documentation": null, - "name": "onlyForNewContract", - "visibility": "internal" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4336, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4324, - "name": "ElementaryTypeName", - "src": "3770:7:12" - } - ], - "id": 4325, - "name": "VariableDeclaration", - "src": "3770:25:12" - } - ], - "id": 4326, - "name": "ParameterList", - "src": "3769:27:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c4324476717aecd1e569d3ba832c005a24f88be8c2ba65d585df6b95edd8a35", - "typeString": "literal_string \"Not a new operator contract\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4327, - "name": "Identifier", - "src": "3807:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4602, - "type": "function (address) view returns (bool)", - "value": "isNewOperatorContract" - }, - "id": 4328, - "name": "Identifier", - "src": "3828:21:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4325, - "type": "address", - "value": "_operatorContract" - }, - "id": 4329, - "name": "Identifier", - "src": "3850:17:12" - } - ], - "id": 4330, - "name": "FunctionCall", - "src": "3828:40:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "4e6f742061206e6577206f70657261746f7220636f6e7472616374", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Not a new operator contract\"", - "value": "Not a new operator contract" - }, - "id": 4331, - "name": "Literal", - "src": "3882:29:12" - } - ], - "id": 4332, - "name": "FunctionCall", - "src": "3807:114:12" - } - ], - "id": 4333, - "name": "ExpressionStatement", - "src": "3807:114:12" - }, - { - "id": 4334, - "name": "PlaceholderStatement", - "src": "3931:1:12" - } - ], - "id": 4335, - "name": "Block", - "src": "3797:142:12" - } - ], - "id": 4336, - "name": "ModifierDefinition", - "src": "3742:197:12" - }, - { - "attributes": { - "documentation": null, - "name": "onlyForApprovedContract", - "visibility": "internal" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4349, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4337, - "name": "ElementaryTypeName", - "src": "3978:7:12" - } - ], - "id": 4338, - "name": "VariableDeclaration", - "src": "3978:25:12" - } - ], - "id": 4339, - "name": "ParameterList", - "src": "3977:27:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b6f9ff674e366ea74583b3402886a452ea021bd3f0dac1662124ff59e8062f7f", - "typeString": "literal_string \"Not an approved operator contract\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4340, - "name": "Identifier", - "src": "4015:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4617, - "type": "function (address) view returns (bool)", - "value": "isApprovedOperatorContract" - }, - "id": 4341, - "name": "Identifier", - "src": "4036:26:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4338, - "type": "address", - "value": "_operatorContract" - }, - "id": 4342, - "name": "Identifier", - "src": "4063:17:12" - } - ], - "id": 4343, - "name": "FunctionCall", - "src": "4036:45:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "4e6f7420616e20617070726f766564206f70657261746f7220636f6e7472616374", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Not an approved operator contract\"", - "value": "Not an approved operator contract" - }, - "id": 4344, - "name": "Literal", - "src": "4095:35:12" - } - ], - "id": 4345, - "name": "FunctionCall", - "src": "4015:125:12" - } - ], - "id": 4346, - "name": "ExpressionStatement", - "src": "4015:125:12" - }, - { - "id": 4347, - "name": "PlaceholderStatement", - "src": "4150:1:12" - } - ], - "id": 4348, - "name": "Block", - "src": "4005:153:12" - } - ], - "id": 4349, - "name": "ModifierDefinition", - "src": "3945:213:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": true, - "kind": "constructor", - "modifiers": [null], - "name": "", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4350, - "name": "ParameterList", - "src": "4175:2:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4351, - "name": "ParameterList", - "src": "4185:0:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4208, - "type": "address", - "value": "governance" - }, - "id": 4352, - "name": "Identifier", - "src": "4195:10:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address payable" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 28146, - "type": "msg", - "value": "msg" - }, - "id": 4353, - "name": "Identifier", - "src": "4208:3:12" - } - ], - "id": 4354, - "name": "MemberAccess", - "src": "4208:10:12" - } - ], - "id": 4355, - "name": "Assignment", - "src": "4195:23:12" - } - ], - "id": 4356, - "name": "ExpressionStatement", - "src": "4195:23:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4210, - "type": "address", - "value": "registryKeeper" - }, - "id": 4357, - "name": "Identifier", - "src": "4228:14:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address payable" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 28146, - "type": "msg", - "value": "msg" - }, - "id": 4358, - "name": "Identifier", - "src": "4245:3:12" - } - ], - "id": 4359, - "name": "MemberAccess", - "src": "4245:10:12" - } - ], - "id": 4360, - "name": "Assignment", - "src": "4228:27:12" - } - ], - "id": 4361, - "name": "ExpressionStatement", - "src": "4228:27:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4216, - "type": "address", - "value": "defaultPanicButton" - }, - "id": 4362, - "name": "Identifier", - "src": "4265:18:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address payable" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 28146, - "type": "msg", - "value": "msg" - }, - "id": 4363, - "name": "Identifier", - "src": "4286:3:12" - } - ], - "id": 4364, - "name": "MemberAccess", - "src": "4286:10:12" - } - ], - "id": 4365, - "name": "Assignment", - "src": "4265:31:12" - } - ], - "id": 4366, - "name": "ExpressionStatement", - "src": "4265:31:12" - } - ], - "id": 4367, - "name": "Block", - "src": "4185:118:12" - } - ], - "id": 4368, - "name": "FunctionDefinition", - "src": "4164:139:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "setGovernance", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_governance", - "scope": 4384, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4369, - "name": "ElementaryTypeName", - "src": "4332:7:12" - } - ], - "id": 4370, - "name": "VariableDeclaration", - "src": "4332:19:12" - } - ], - "id": 4371, - "name": "ParameterList", - "src": "4331:21:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4374, - "name": "ParameterList", - "src": "4375:0:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4372, - "name": "Identifier", - "src": "4360:14:12" - } - ], - "id": 4373, - "name": "ModifierInvocation", - "src": "4360:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4208, - "type": "address", - "value": "governance" - }, - "id": 4375, - "name": "Identifier", - "src": "4385:10:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4370, - "type": "address", - "value": "_governance" - }, - "id": 4376, - "name": "Identifier", - "src": "4398:11:12" - } - ], - "id": 4377, - "name": "Assignment", - "src": "4385:24:12" - } - ], - "id": 4378, - "name": "ExpressionStatement", - "src": "4385:24:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4240, - "type": "function (address)", - "value": "GovernanceUpdated" - }, - "id": 4379, - "name": "Identifier", - "src": "4424:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4208, - "type": "address", - "value": "governance" - }, - "id": 4380, - "name": "Identifier", - "src": "4442:10:12" - } - ], - "id": 4381, - "name": "FunctionCall", - "src": "4424:29:12" - } - ], - "id": 4382, - "name": "EmitStatement", - "src": "4419:34:12" - } - ], - "id": 4383, - "name": "Block", - "src": "4375:85:12" - } - ], - "id": 4384, - "name": "FunctionDefinition", - "src": "4309:151:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "setRegistryKeeper", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_registryKeeper", - "scope": 4400, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4385, - "name": "ElementaryTypeName", - "src": "4493:7:12" - } - ], - "id": 4386, - "name": "VariableDeclaration", - "src": "4493:23:12" - } - ], - "id": 4387, - "name": "ParameterList", - "src": "4492:25:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4390, - "name": "ParameterList", - "src": "4540:0:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4388, - "name": "Identifier", - "src": "4525:14:12" - } - ], - "id": 4389, - "name": "ModifierInvocation", - "src": "4525:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4210, - "type": "address", - "value": "registryKeeper" - }, - "id": 4391, - "name": "Identifier", - "src": "4550:14:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4386, - "type": "address", - "value": "_registryKeeper" - }, - "id": 4392, - "name": "Identifier", - "src": "4567:15:12" - } - ], - "id": 4393, - "name": "Assignment", - "src": "4550:32:12" - } - ], - "id": 4394, - "name": "ExpressionStatement", - "src": "4550:32:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4244, - "type": "function (address)", - "value": "RegistryKeeperUpdated" - }, - "id": 4395, - "name": "Identifier", - "src": "4597:21:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4210, - "type": "address", - "value": "registryKeeper" - }, - "id": 4396, - "name": "Identifier", - "src": "4619:14:12" - } - ], - "id": 4397, - "name": "FunctionCall", - "src": "4597:37:12" - } - ], - "id": 4398, - "name": "EmitStatement", - "src": "4592:42:12" - } - ], - "id": 4399, - "name": "Block", - "src": "4540:101:12" - } - ], - "id": 4400, - "name": "FunctionDefinition", - "src": "4466:175:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "setDefaultPanicButton", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_panicButton", - "scope": 4416, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4401, - "name": "ElementaryTypeName", - "src": "4678:7:12" - } - ], - "id": 4402, - "name": "VariableDeclaration", - "src": "4678:20:12" - } - ], - "id": 4403, - "name": "ParameterList", - "src": "4677:22:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4406, - "name": "ParameterList", - "src": "4722:0:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4404, - "name": "Identifier", - "src": "4707:14:12" - } - ], - "id": 4405, - "name": "ModifierInvocation", - "src": "4707:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4216, - "type": "address", - "value": "defaultPanicButton" - }, - "id": 4407, - "name": "Identifier", - "src": "4732:18:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4402, - "type": "address", - "value": "_panicButton" - }, - "id": 4408, - "name": "Identifier", - "src": "4753:12:12" - } - ], - "id": 4409, - "name": "Assignment", - "src": "4732:33:12" - } - ], - "id": 4410, - "name": "ExpressionStatement", - "src": "4732:33:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4248, - "type": "function (address)", - "value": "DefaultPanicButtonUpdated" - }, - "id": 4411, - "name": "Identifier", - "src": "4780:25:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4216, - "type": "address", - "value": "defaultPanicButton" - }, - "id": 4412, - "name": "Identifier", - "src": "4806:18:12" - } - ], - "id": 4413, - "name": "FunctionCall", - "src": "4780:45:12" - } - ], - "id": 4414, - "name": "EmitStatement", - "src": "4775:50:12" - } - ], - "id": 4415, - "name": "Block", - "src": "4722:110:12" - } - ], - "id": 4416, - "name": "FunctionDefinition", - "src": "4647:185:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "setOperatorContractPanicButton", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4460, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4417, - "name": "ElementaryTypeName", - "src": "4887:7:12" - } - ], - "id": 4418, - "name": "VariableDeclaration", - "src": "4887:25:12" - }, - { - "attributes": { - "constant": false, - "name": "_panicButton", - "scope": 4460, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4419, - "name": "ElementaryTypeName", - "src": "4922:7:12" - } - ], - "id": 4420, - "name": "VariableDeclaration", - "src": "4922:20:12" - } - ], - "id": 4421, - "name": "ParameterList", - "src": "4877:71:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4427, - "name": "ParameterList", - "src": "5014:0:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4349, - "type": "modifier (address)", - "value": "onlyForApprovedContract" - }, - "id": 4422, - "name": "Identifier", - "src": "4956:23:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4418, - "type": "address", - "value": "_operatorContract" - }, - "id": 4423, - "name": "Identifier", - "src": "4980:17:12" - } - ], - "id": 4424, - "name": "ModifierInvocation", - "src": "4956:42:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4425, - "name": "Identifier", - "src": "4999:14:12" - } - ], - "id": 4426, - "name": "ModifierInvocation", - "src": "4999:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d1b9aaf1a91db2554cb251884681dc026fd3d7a153bea70c79e510a6a54dd87", - "typeString": "literal_string \"Disabled panic button cannot be updated\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4428, - "name": "Identifier", - "src": "5024:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "!=", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4214, - "type": "mapping(address => address)", - "value": "panicButtons" - }, - "id": 4429, - "name": "Identifier", - "src": "5045:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4418, - "type": "address", - "value": "_operatorContract" - }, - "id": 4430, - "name": "Identifier", - "src": "5058:17:12" - } - ], - "id": 4431, - "name": "IndexAccess", - "src": "5045:31:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "address payable", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 4432, - "name": "ElementaryTypeNameExpression", - "src": "5080:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 4433, - "name": "Literal", - "src": "5088:1:12" - } - ], - "id": 4434, - "name": "FunctionCall", - "src": "5080:10:12" - } - ], - "id": 4435, - "name": "BinaryOperation", - "src": "5045:45:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "44697361626c65642070616e696320627574746f6e2063616e6e6f742062652075706461746564", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Disabled panic button cannot be updated\"", - "value": "Disabled panic button cannot be updated" - }, - "id": 4436, - "name": "Literal", - "src": "5104:41:12" - } - ], - "id": 4437, - "name": "FunctionCall", - "src": "5024:131:12" - } - ], - "id": 4438, - "name": "ExpressionStatement", - "src": "5024:131:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5a7b2a0d032ae56f5d1e30bd631d28945ee32864ebe6c7d1d2b0c4e8cc78eb5", - "typeString": "literal_string \"Panic button must be non-zero address\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4439, - "name": "Identifier", - "src": "5165:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "!=", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4420, - "type": "address", - "value": "_panicButton" - }, - "id": 4440, - "name": "Identifier", - "src": "5186:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "address payable", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 4441, - "name": "ElementaryTypeNameExpression", - "src": "5202:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 4442, - "name": "Literal", - "src": "5210:1:12" - } - ], - "id": 4443, - "name": "FunctionCall", - "src": "5202:10:12" - } - ], - "id": 4444, - "name": "BinaryOperation", - "src": "5186:26:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "50616e696320627574746f6e206d757374206265206e6f6e2d7a65726f2061646472657373", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Panic button must be non-zero address\"", - "value": "Panic button must be non-zero address" - }, - "id": 4445, - "name": "Literal", - "src": "5226:39:12" - } - ], - "id": 4446, - "name": "FunctionCall", - "src": "5165:110:12" - } - ], - "id": 4447, - "name": "ExpressionStatement", - "src": "5165:110:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4214, - "type": "mapping(address => address)", - "value": "panicButtons" - }, - "id": 4448, - "name": "Identifier", - "src": "5286:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4418, - "type": "address", - "value": "_operatorContract" - }, - "id": 4449, - "name": "Identifier", - "src": "5299:17:12" - } - ], - "id": 4450, - "name": "IndexAccess", - "src": "5286:31:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4420, - "type": "address", - "value": "_panicButton" - }, - "id": 4451, - "name": "Identifier", - "src": "5320:12:12" - } - ], - "id": 4452, - "name": "Assignment", - "src": "5286:46:12" - } - ], - "id": 4453, - "name": "ExpressionStatement", - "src": "5286:46:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4258, - "type": "function (address,address)", - "value": "OperatorContractPanicButtonUpdated" - }, - "id": 4454, - "name": "Identifier", - "src": "5348:34:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4418, - "type": "address", - "value": "_operatorContract" - }, - "id": 4455, - "name": "Identifier", - "src": "5396:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4420, - "type": "address", - "value": "_panicButton" - }, - "id": 4456, - "name": "Identifier", - "src": "5427:12:12" - } - ], - "id": 4457, - "name": "FunctionCall", - "src": "5348:101:12" - } - ], - "id": 4458, - "name": "EmitStatement", - "src": "5343:106:12" - } - ], - "id": 4459, - "name": "Block", - "src": "5014:442:12" - } - ], - "id": 4460, - "name": "FunctionDefinition", - "src": "4838:618:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "disableOperatorContractPanicButton", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4494, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4461, - "name": "ElementaryTypeName", - "src": "5506:7:12" - } - ], - "id": 4462, - "name": "VariableDeclaration", - "src": "5506:25:12" - } - ], - "id": 4463, - "name": "ParameterList", - "src": "5505:27:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4469, - "name": "ParameterList", - "src": "5626:0:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4349, - "type": "modifier (address)", - "value": "onlyForApprovedContract" - }, - "id": 4464, - "name": "Identifier", - "src": "5556:23:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4462, - "type": "address", - "value": "_operatorContract" - }, - "id": 4465, - "name": "Identifier", - "src": "5580:17:12" - } - ], - "id": 4466, - "name": "ModifierInvocation", - "src": "5556:42:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4467, - "name": "Identifier", - "src": "5607:14:12" - } - ], - "id": 4468, - "name": "ModifierInvocation", - "src": "5607:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bb534723a179d6568d886b637fa707371e8c13170fa009941c10391cd4682512", - "typeString": "literal_string \"Panic button already disabled\"" - } - ], - "overloadedDeclarations": [28149, 28150], - "referencedDeclaration": 28150, - "type": "function (bool,string memory) pure", - "value": "require" - }, - "id": 4470, - "name": "Identifier", - "src": "5636:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "!=", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4214, - "type": "mapping(address => address)", - "value": "panicButtons" - }, - "id": 4471, - "name": "Identifier", - "src": "5657:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4462, - "type": "address", - "value": "_operatorContract" - }, - "id": 4472, - "name": "Identifier", - "src": "5670:17:12" - } - ], - "id": 4473, - "name": "IndexAccess", - "src": "5657:31:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "address payable", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 4474, - "name": "ElementaryTypeNameExpression", - "src": "5692:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 4475, - "name": "Literal", - "src": "5700:1:12" - } - ], - "id": 4476, - "name": "FunctionCall", - "src": "5692:10:12" - } - ], - "id": 4477, - "name": "BinaryOperation", - "src": "5657:45:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "50616e696320627574746f6e20616c72656164792064697361626c6564", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "string", - "type": "literal_string \"Panic button already disabled\"", - "value": "Panic button already disabled" - }, - "id": 4478, - "name": "Literal", - "src": "5716:31:12" - } - ], - "id": 4479, - "name": "FunctionCall", - "src": "5636:121:12" - } - ], - "id": 4480, - "name": "ExpressionStatement", - "src": "5636:121:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4214, - "type": "mapping(address => address)", - "value": "panicButtons" - }, - "id": 4481, - "name": "Identifier", - "src": "5768:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4462, - "type": "address", - "value": "_operatorContract" - }, - "id": 4482, - "name": "Identifier", - "src": "5781:17:12" - } - ], - "id": 4483, - "name": "IndexAccess", - "src": "5768:31:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "address payable", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 4484, - "name": "ElementaryTypeNameExpression", - "src": "5802:7:12" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 4485, - "name": "Literal", - "src": "5810:1:12" - } - ], - "id": 4486, - "name": "FunctionCall", - "src": "5802:10:12" - } - ], - "id": 4487, - "name": "Assignment", - "src": "5768:44:12" - } - ], - "id": 4488, - "name": "ExpressionStatement", - "src": "5768:44:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4252, - "type": "function (address)", - "value": "OperatorContractPanicButtonDisabled" - }, - "id": 4489, - "name": "Identifier", - "src": "5828:35:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4462, - "type": "address", - "value": "_operatorContract" - }, - "id": 4490, - "name": "Identifier", - "src": "5864:17:12" - } - ], - "id": 4491, - "name": "FunctionCall", - "src": "5828:54:12" - } - ], - "id": 4492, - "name": "EmitStatement", - "src": "5823:59:12" - } - ], - "id": 4493, - "name": "Block", - "src": "5626:263:12" - } - ], - "id": 4494, - "name": "FunctionDefinition", - "src": "5462:427:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "setOperatorContractUpgrader", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_serviceContract", - "scope": 4515, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4495, - "name": "ElementaryTypeName", - "src": "5941:7:12" - } - ], - "id": 4496, - "name": "VariableDeclaration", - "src": "5941:24:12" - }, - { - "attributes": { - "constant": false, - "name": "_operatorContractUpgrader", - "scope": 4515, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4497, - "name": "ElementaryTypeName", - "src": "5975:7:12" - } - ], - "id": 4498, - "name": "VariableDeclaration", - "src": "5975:33:12" - } - ], - "id": 4499, - "name": "ParameterList", - "src": "5931:83:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4502, - "name": "ParameterList", - "src": "6037:0:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4500, - "name": "Identifier", - "src": "6022:14:12" - } - ], - "id": 4501, - "name": "ModifierInvocation", - "src": "6022:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4220, - "type": "mapping(address => address)", - "value": "operatorContractUpgraders" - }, - "id": 4503, - "name": "Identifier", - "src": "6047:25:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4496, - "type": "address", - "value": "_serviceContract" - }, - "id": 4504, - "name": "Identifier", - "src": "6073:16:12" - } - ], - "id": 4505, - "name": "IndexAccess", - "src": "6047:43:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4498, - "type": "address", - "value": "_operatorContractUpgrader" - }, - "id": 4506, - "name": "Identifier", - "src": "6093:25:12" - } - ], - "id": 4507, - "name": "Assignment", - "src": "6047:71:12" - } - ], - "id": 4508, - "name": "ExpressionStatement", - "src": "6047:71:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4264, - "type": "function (address,address)", - "value": "OperatorContractUpgraderUpdated" - }, - "id": 4509, - "name": "Identifier", - "src": "6133:31:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4496, - "type": "address", - "value": "_serviceContract" - }, - "id": 4510, - "name": "Identifier", - "src": "6178:16:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4498, - "type": "address", - "value": "_operatorContractUpgrader" - }, - "id": 4511, - "name": "Identifier", - "src": "6208:25:12" - } - ], - "id": 4512, - "name": "FunctionCall", - "src": "6133:110:12" - } - ], - "id": 4513, - "name": "EmitStatement", - "src": "6128:115:12" - } - ], - "id": 4514, - "name": "Block", - "src": "6037:213:12" - } - ], - "id": 4515, - "name": "FunctionDefinition", - "src": "5895:355:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "setServiceContractUpgrader", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4536, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4516, - "name": "ElementaryTypeName", - "src": "6301:7:12" - } - ], - "id": 4517, - "name": "VariableDeclaration", - "src": "6301:25:12" - }, - { - "attributes": { - "constant": false, - "name": "_serviceContractUpgrader", - "scope": 4536, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4518, - "name": "ElementaryTypeName", - "src": "6336:7:12" - } - ], - "id": 4519, - "name": "VariableDeclaration", - "src": "6336:32:12" - } - ], - "id": 4520, - "name": "ParameterList", - "src": "6291:83:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4523, - "name": "ParameterList", - "src": "6397:0:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4282, - "type": "modifier ()", - "value": "onlyGovernance" - }, - "id": 4521, - "name": "Identifier", - "src": "6382:14:12" - } - ], - "id": 4522, - "name": "ModifierInvocation", - "src": "6382:14:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4224, - "type": "mapping(address => address)", - "value": "serviceContractUpgraders" - }, - "id": 4524, - "name": "Identifier", - "src": "6407:24:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4517, - "type": "address", - "value": "_operatorContract" - }, - "id": 4525, - "name": "Identifier", - "src": "6432:17:12" - } - ], - "id": 4526, - "name": "IndexAccess", - "src": "6407:43:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4519, - "type": "address", - "value": "_serviceContractUpgrader" - }, - "id": 4527, - "name": "Identifier", - "src": "6453:24:12" - } - ], - "id": 4528, - "name": "Assignment", - "src": "6407:70:12" - } - ], - "id": 4529, - "name": "ExpressionStatement", - "src": "6407:70:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4270, - "type": "function (address,address)", - "value": "ServiceContractUpgraderUpdated" - }, - "id": 4530, - "name": "Identifier", - "src": "6492:30:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4517, - "type": "address", - "value": "_operatorContract" - }, - "id": 4531, - "name": "Identifier", - "src": "6536:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4519, - "type": "address", - "value": "_serviceContractUpgrader" - }, - "id": 4532, - "name": "Identifier", - "src": "6567:24:12" - } - ], - "id": 4533, - "name": "FunctionCall", - "src": "6492:109:12" - } - ], - "id": 4534, - "name": "EmitStatement", - "src": "6487:114:12" - } - ], - "id": 4535, - "name": "Block", - "src": "6397:211:12" - } - ], - "id": 4536, - "name": "FunctionDefinition", - "src": "6256:352:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "approveOperatorContract", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "operatorContract", - "scope": 4564, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4537, - "name": "ElementaryTypeName", - "src": "6647:7:12" - } - ], - "id": 4538, - "name": "VariableDeclaration", - "src": "6647:24:12" - } - ], - "id": 4539, - "name": "ParameterList", - "src": "6646:26:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4545, - "name": "ParameterList", - "src": "6764:0:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4336, - "type": "modifier (address)", - "value": "onlyForNewContract" - }, - "id": 4540, - "name": "Identifier", - "src": "6696:18:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4538, - "type": "address", - "value": "operatorContract" - }, - "id": 4541, - "name": "Identifier", - "src": "6715:16:12" - } - ], - "id": 4542, - "name": "ModifierInvocation", - "src": "6696:36:12" - }, - { - "attributes": { - "arguments": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4294, - "type": "modifier ()", - "value": "onlyRegistryKeeper" - }, - "id": 4543, - "name": "Identifier", - "src": "6741:18:12" - } - ], - "id": 4544, - "name": "ModifierInvocation", - "src": "6741:18:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4228, - "type": "mapping(address => enum KeepRegistry.ContractStatus)", - "value": "operatorContracts" - }, - "id": 4546, - "name": "Identifier", - "src": "6774:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4538, - "type": "address", - "value": "operatorContract" - }, - "id": 4547, - "name": "Identifier", - "src": "6792:16:12" - } - ], - "id": 4548, - "name": "IndexAccess", - "src": "6774:35:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "member_name": "Approved", - "referencedDeclaration": null, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4206, - "type": "type(enum KeepRegistry.ContractStatus)", - "value": "ContractStatus" - }, - "id": 4549, - "name": "Identifier", - "src": "6812:14:12" - } - ], - "id": 4550, - "name": "MemberAccess", - "src": "6812:23:12" - } - ], - "id": 4551, - "name": "Assignment", - "src": "6774:61:12" - } - ], - "id": 4552, - "name": "ExpressionStatement", - "src": "6774:61:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4214, - "type": "mapping(address => address)", - "value": "panicButtons" - }, - "id": 4553, - "name": "Identifier", - "src": "6845:12:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4538, - "type": "address", - "value": "operatorContract" - }, - "id": 4554, - "name": "Identifier", - "src": "6858:16:12" - } - ], - "id": 4555, - "name": "IndexAccess", - "src": "6845:30:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4216, - "type": "address", - "value": "defaultPanicButton" - }, - "id": 4556, - "name": "Identifier", - "src": "6878:18:12" - } - ], - "id": 4557, - "name": "Assignment", - "src": "6845:51:12" - } - ], - "id": 4558, - "name": "ExpressionStatement", - "src": "6845:51:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4232, - "type": "function (address)", - "value": "OperatorContractApproved" - }, - "id": 4559, - "name": "Identifier", - "src": "6911:24:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4538, - "type": "address", - "value": "operatorContract" - }, - "id": 4560, - "name": "Identifier", - "src": "6936:16:12" - } - ], - "id": 4561, - "name": "FunctionCall", - "src": "6911:42:12" - } - ], - "id": 4562, - "name": "EmitStatement", - "src": "6906:47:12" - } - ], - "id": 4563, - "name": "Block", - "src": "6764:196:12" - } - ], - "id": 4564, - "name": "FunctionDefinition", - "src": "6614:346:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "name": "disableOperatorContract", - "scope": 4642, - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "operatorContract", - "scope": 4587, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4565, - "name": "ElementaryTypeName", - "src": "6999:7:12" - } - ], - "id": 4566, - "name": "VariableDeclaration", - "src": "6999:24:12" - } - ], - "id": 4567, - "name": "ParameterList", - "src": "6998:26:12" - }, - { - "attributes": { - "parameters": [null] - }, - "children": [], - "id": 4574, - "name": "ParameterList", - "src": "7136:0:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4349, - "type": "modifier (address)", - "value": "onlyForApprovedContract" - }, - "id": 4568, - "name": "Identifier", - "src": "7048:23:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4566, - "type": "address", - "value": "operatorContract" - }, - "id": 4569, - "name": "Identifier", - "src": "7072:16:12" - } - ], - "id": 4570, - "name": "ModifierInvocation", - "src": "7048:41:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4323, - "type": "modifier (address)", - "value": "onlyPanicButton" - }, - "id": 4571, - "name": "Identifier", - "src": "7098:15:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4566, - "type": "address", - "value": "operatorContract" - }, - "id": 4572, - "name": "Identifier", - "src": "7114:16:12" - } - ], - "id": 4573, - "name": "ModifierInvocation", - "src": "7098:33:12" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "=", - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4228, - "type": "mapping(address => enum KeepRegistry.ContractStatus)", - "value": "operatorContracts" - }, - "id": 4575, - "name": "Identifier", - "src": "7146:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4566, - "type": "address", - "value": "operatorContract" - }, - "id": 4576, - "name": "Identifier", - "src": "7164:16:12" - } - ], - "id": 4577, - "name": "IndexAccess", - "src": "7146:35:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "member_name": "Disabled", - "referencedDeclaration": null, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4206, - "type": "type(enum KeepRegistry.ContractStatus)", - "value": "ContractStatus" - }, - "id": 4578, - "name": "Identifier", - "src": "7184:14:12" - } - ], - "id": 4579, - "name": "MemberAccess", - "src": "7184:23:12" - } - ], - "id": 4580, - "name": "Assignment", - "src": "7146:61:12" - } - ], - "id": 4581, - "name": "ExpressionStatement", - "src": "7146:61:12" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [null], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [null], - "referencedDeclaration": 4236, - "type": "function (address)", - "value": "OperatorContractDisabled" - }, - "id": 4582, - "name": "Identifier", - "src": "7222:24:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4566, - "type": "address", - "value": "operatorContract" - }, - "id": 4583, - "name": "Identifier", - "src": "7247:16:12" - } - ], - "id": 4584, - "name": "FunctionCall", - "src": "7222:42:12" - } - ], - "id": 4585, - "name": "EmitStatement", - "src": "7217:47:12" - } - ], - "id": 4586, - "name": "Block", - "src": "7136:135:12" - } - ], - "id": 4587, - "name": "FunctionDefinition", - "src": "6966:305:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [null], - "name": "isNewOperatorContract", - "scope": 4642, - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "operatorContract", - "scope": 4602, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4588, - "name": "ElementaryTypeName", - "src": "7308:7:12" - } - ], - "id": 4589, - "name": "VariableDeclaration", - "src": "7308:24:12" - } - ], - "id": 4590, - "name": "ParameterList", - "src": "7307:26:12" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "name": "", - "scope": 4602, - "stateVariable": false, - "storageLocation": "default", - "type": "bool", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bool", - "type": "bool" - }, - "id": 4591, - "name": "ElementaryTypeName", - "src": "7379:4:12" - } - ], - "id": 4592, - "name": "VariableDeclaration", - "src": "7379:4:12" - } - ], - "id": 4593, - "name": "ParameterList", - "src": "7378:6:12" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 4593 - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4228, - "type": "mapping(address => enum KeepRegistry.ContractStatus)", - "value": "operatorContracts" - }, - "id": 4594, - "name": "Identifier", - "src": "7406:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4589, - "type": "address", - "value": "operatorContract" - }, - "id": 4595, - "name": "Identifier", - "src": "7424:16:12" - } - ], - "id": 4596, - "name": "IndexAccess", - "src": "7406:35:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "member_name": "New", - "referencedDeclaration": null, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4206, - "type": "type(enum KeepRegistry.ContractStatus)", - "value": "ContractStatus" - }, - "id": 4597, - "name": "Identifier", - "src": "7445:14:12" - } - ], - "id": 4598, - "name": "MemberAccess", - "src": "7445:18:12" - } - ], - "id": 4599, - "name": "BinaryOperation", - "src": "7406:57:12" - } - ], - "id": 4600, - "name": "Return", - "src": "7399:64:12" - } - ], - "id": 4601, - "name": "Block", - "src": "7389:81:12" - } - ], - "id": 4602, - "name": "FunctionDefinition", - "src": "7277:193:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [null], - "name": "isApprovedOperatorContract", - "scope": 4642, - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "operatorContract", - "scope": 4617, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4603, - "name": "ElementaryTypeName", - "src": "7512:7:12" - } - ], - "id": 4604, - "name": "VariableDeclaration", - "src": "7512:24:12" - } - ], - "id": 4605, - "name": "ParameterList", - "src": "7511:26:12" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "name": "", - "scope": 4617, - "stateVariable": false, - "storageLocation": "default", - "type": "bool", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bool", - "type": "bool" - }, - "id": 4606, - "name": "ElementaryTypeName", - "src": "7583:4:12" - } - ], - "id": 4607, - "name": "VariableDeclaration", - "src": "7583:4:12" - } - ], - "id": 4608, - "name": "ParameterList", - "src": "7582:6:12" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 4608 - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ContractStatus_$4206", - "typeString": "enum KeepRegistry.ContractStatus" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4228, - "type": "mapping(address => enum KeepRegistry.ContractStatus)", - "value": "operatorContracts" - }, - "id": 4609, - "name": "Identifier", - "src": "7610:17:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4604, - "type": "address", - "value": "operatorContract" - }, - "id": 4610, - "name": "Identifier", - "src": "7628:16:12" - } - ], - "id": 4611, - "name": "IndexAccess", - "src": "7610:35:12" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "member_name": "Approved", - "referencedDeclaration": null, - "type": "enum KeepRegistry.ContractStatus" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4206, - "type": "type(enum KeepRegistry.ContractStatus)", - "value": "ContractStatus" - }, - "id": 4612, - "name": "Identifier", - "src": "7649:14:12" - } - ], - "id": 4613, - "name": "MemberAccess", - "src": "7649:23:12" - } - ], - "id": 4614, - "name": "BinaryOperation", - "src": "7610:62:12" - } - ], - "id": 4615, - "name": "Return", - "src": "7603:69:12" - } - ], - "id": 4616, - "name": "Block", - "src": "7593:86:12" - } - ], - "id": 4617, - "name": "FunctionDefinition", - "src": "7476:203:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [null], - "name": "operatorContractUpgraderFor", - "scope": 4642, - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_serviceContract", - "scope": 4629, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4618, - "name": "ElementaryTypeName", - "src": "7722:7:12" - } - ], - "id": 4619, - "name": "VariableDeclaration", - "src": "7722:24:12" - } - ], - "id": 4620, - "name": "ParameterList", - "src": "7721:26:12" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "name": "", - "scope": 4629, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4621, - "name": "ElementaryTypeName", - "src": "7793:7:12" - } - ], - "id": 4622, - "name": "VariableDeclaration", - "src": "7793:7:12" - } - ], - "id": 4623, - "name": "ParameterList", - "src": "7792:9:12" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 4623 - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4220, - "type": "mapping(address => address)", - "value": "operatorContractUpgraders" - }, - "id": 4624, - "name": "Identifier", - "src": "7823:25:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4619, - "type": "address", - "value": "_serviceContract" - }, - "id": 4625, - "name": "Identifier", - "src": "7849:16:12" - } - ], - "id": 4626, - "name": "IndexAccess", - "src": "7823:43:12" - } - ], - "id": 4627, - "name": "Return", - "src": "7816:50:12" - } - ], - "id": 4628, - "name": "Block", - "src": "7806:67:12" - } - ], - "id": 4629, - "name": "FunctionDefinition", - "src": "7685:188:12" - }, - { - "attributes": { - "documentation": null, - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [null], - "name": "serviceContractUpgraderFor", - "scope": 4642, - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "name": "_operatorContract", - "scope": 4641, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4630, - "name": "ElementaryTypeName", - "src": "7915:7:12" - } - ], - "id": 4631, - "name": "VariableDeclaration", - "src": "7915:25:12" - } - ], - "id": 4632, - "name": "ParameterList", - "src": "7914:27:12" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "name": "", - "scope": 4641, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 4633, - "name": "ElementaryTypeName", - "src": "7987:7:12" - } - ], - "id": 4634, - "name": "VariableDeclaration", - "src": "7987:7:12" - } - ], - "id": 4635, - "name": "ParameterList", - "src": "7986:9:12" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 4635 - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4224, - "type": "mapping(address => address)", - "value": "serviceContractUpgraders" - }, - "id": 4636, - "name": "Identifier", - "src": "8017:24:12" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [null], - "referencedDeclaration": 4631, - "type": "address", - "value": "_operatorContract" - }, - "id": 4637, - "name": "Identifier", - "src": "8042:17:12" - } - ], - "id": 4638, - "name": "IndexAccess", - "src": "8017:43:12" - } - ], - "id": 4639, - "name": "Return", - "src": "8010:50:12" - } - ], - "id": 4640, - "name": "Block", - "src": "8000:67:12" - } - ], - "id": 4641, - "name": "FunctionDefinition", - "src": "7879:188:12" - } - ], - "id": 4642, - "name": "ContractDefinition", - "src": "120:7949:12" - } - ], - "id": 4643, - "name": "SourceUnit", - "src": "0:8070:12" - }, - "compiler": { - "name": "solc", - "version": "0.5.17+commit.d19bba13.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.4", - "updatedAt": "2022-04-22T14:06:35.563Z", - "devdoc": { - "methods": {}, - "title": "KeepRegistry" - }, - "userdoc": { - "methods": {}, - "notice": "Governance owned registry of approved contracts and roles." - } -} diff --git a/external/goerli/KeepToken.json b/external/goerli/KeepToken.json deleted file mode 100644 index b8d7aeb3..00000000 --- a/external/goerli/KeepToken.json +++ /dev/null @@ -1,430 +0,0 @@ -{ - "address": "0x22647FfAe391540d584599818CA22fdF18890753", - "contractName": "KeepToken", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "DECIMALS", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "INITIAL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SYMBOL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "approveAndCall", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/external/goerli/KeepTokenStaking.json b/external/goerli/KeepTokenStaking.json deleted file mode 100644 index 4ed2cf0b..00000000 --- a/external/goerli/KeepTokenStaking.json +++ /dev/null @@ -1,916 +0,0 @@ -{ - "address": "0x73A63e2Be2D911dc7eFAc189Bfdf48FbB6532B5b", - "contractName": "TokenStaking", - "abi": [ - { - "inputs": [ - { - "internalType": "contract ERC20Burnable", - "name": "_token", - "type": "address" - }, - { - "internalType": "contract TokenGrant", - "name": "_tokenGrant", - "type": "address" - }, - { - "internalType": "contract TokenStakingEscrow", - "name": "_escrow", - "type": "address" - }, - { - "internalType": "contract KeepRegistry", - "name": "_registry", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_initializationPeriod", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "lockCreator", - "type": "address" - } - ], - "name": "ExpiredLockReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "lockCreator", - "type": "address" - } - ], - "name": "LockReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "OperatorStaked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "RecoveredStake", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "StakeDelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "lockCreator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "StakeOwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "TokensSeized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "TokensSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newAmount", - "type": "uint256" - } - ], - "name": "TopUpCompleted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "topUp", - "type": "uint256" - } - ], - "name": "TopUpInitiated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "undelegatedAt", - "type": "uint256" - } - ], - "name": "Undelegated", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "activeStake", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "authorizeOperatorContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "authorizerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "beneficiaryOf", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "cancelStake", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "delegatedAuthoritySource", - "type": "address" - } - ], - "name": "claimDelegatedAuthority", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "commitTopUp", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "deployedAt", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "eligibleStake", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "getAuthoritySource", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "getDelegationInfo", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "undelegatedAt", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "getLocks", - "outputs": [ - { - "internalType": "address[]", - "name": "creators", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "expirations", - "type": "uint256[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "staker", - "type": "address" - }, - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "hasMinimumStake", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "initializationPeriod", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "isApprovedOperatorContract", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "address", - "name": "_operatorContract", - "type": "address" - } - ], - "name": "isAuthorizedForOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isStakeLocked", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "duration", - "type": "uint256" - } - ], - "name": "lockStake", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "minimumStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "receiveApproval", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "recoverStake", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "operatorContract", - "type": "address" - } - ], - "name": "releaseExpiredLock", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "amountToSeize", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "rewardMultiplier", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tattletale", - "type": "address" - }, - { - "internalType": "address[]", - "name": "misbehavedOperators", - "type": "address[]" - } - ], - "name": "seize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "amountToSlash", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "misbehavedOperators", - "type": "address[]" - } - ], - "name": "slash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferStakeOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "undelegate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_undelegationTimestamp", - "type": "uint256" - } - ], - "name": "undelegateAt", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "undelegationPeriod", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "unlockStake", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/hardhat.config.ts b/hardhat.config.ts index 299a897a..c27305dc 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -46,17 +46,6 @@ const config: HardhatUserConfig = { chainId: 1101, tags: ["allowStubs"], }, - goerli: { - url: process.env.CHAIN_API_URL || "", - chainId: 5, - accounts: process.env.CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY - ? [ - process.env.CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY, - process.env.KEEP_CONTRACT_OWNER_ACCOUNT_PRIVATE_KEY, - ] - : undefined, - tags: ["tenderly"], - }, sepolia: { url: process.env.CHAIN_API_URL || "", chainId: 11155111, @@ -91,7 +80,6 @@ const config: HardhatUserConfig = { // For hardhat environment we can fork the mainnet, so we need to point it // to the contract artifacts. hardhat: process.env.FORKING_URL ? ["./external/mainnet"] : [], - goerli: ["./external/goerli"], sepolia: ["./external/sepolia"], mainnet: ["./external/mainnet"], }, @@ -99,7 +87,6 @@ const config: HardhatUserConfig = { namedAccounts: { deployer: { default: 1, // take the first account as deployer - goerli: 0, sepolia: 0, // mainnet: "0x123694886DBf5Ac94DDA07135349534536D14cAf", }, @@ -108,7 +95,6 @@ const config: HardhatUserConfig = { }, keepRegistryKeeper: { default: 1, // same as the deployer - goerli: "0x68ad60CC5e8f3B7cC53beaB321cf0e6036962dBc", sepolia: "0x68ad60CC5e8f3B7cC53beaB321cf0e6036962dBc", }, },