{
  "_format": "hh-sol-artifact-1",
  "contractName": "SFrxETHOracle",
  "sourceName": "contracts/oracles/SFrxETHOracle.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_sfrxEthFraxOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_sfrxETH",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "BadPriceData",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidTokenAddress",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PriceDifferenceExceeded",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "calledContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "methodSignature",
          "type": "string"
        }
      ],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAddressNotAllowed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroValueNotAllowed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldMaxAllowedPriceDifference",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newMaxAllowedPriceDifference",
          "type": "uint256"
        }
      ],
      "name": "MaxAllowedPriceDifferenceUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldAccessControlManager",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAccessControlManager",
          "type": "address"
        }
      ],
      "name": "NewAccessControlManager",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "SFRXETH",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SFRXETH_FRAX_ORACLE",
      "outputs": [
        {
          "internalType": "contract ISfrxEthFraxOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "accessControlManager",
      "outputs": [
        {
          "internalType": "contract IAccessControlManagerV8",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "asset",
          "type": "address"
        }
      ],
      "name": "getPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_acm",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_maxAllowedPriceDifference",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxAllowedPriceDifference",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "accessControlManager_",
          "type": "address"
        }
      ],
      "name": "setAccessControlManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_maxAllowedPriceDifference",
          "type": "uint256"
        }
      ],
      "name": "setMaxAllowedPriceDifference",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60c060405234801561000f575f80fd5b5060405161107238038061107283398101604081905261002e91610140565b61003782610062565b61004081610062565b6001600160a01b03808316608052811660a05261005b61008c565b50506101d4565b6001600160a01b038116610089576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f54610100900460ff16156100bc5760405162461bcd60e51b81526004016100b39061017a565b60405180910390fd5b5f5460ff9081161461010e575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891610105916101c5565b60405180910390a15b565b5f6001600160a01b0382165b92915050565b61012b81610110565b8114610089575f80fd5b805161011c81610122565b5f8060408385031215610154576101545f80fd5b5f61015f8585610135565b925050602061017085828601610135565b9150509250929050565b6020808252810161011c81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff821681526020810161011c565b60805160a051610e706102025f395f8181610126015261021101525f818160e901526102660152610e705ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063cd6dc68711610063578063cd6dc687146101b0578063d5445950146101c3578063e30c3978146101d6578063f2fde38b146101e7575f80fd5b80638da5cb5b146101855780639fd1944f14610196578063b4a0bdf31461019f575f80fd5b80630e32cb86146100cf578063127cac45146100e457806335da603d1461012157806341976e0914610155578063715018a61461017557806379ba50971461017d575b5f80fd5b6100e26100dd366004610886565b6101fa565b005b61010b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108df565b60405180910390f35b6101487f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108f6565b610168610163366004610886565b61020e565b604051610118919061090a565b6100e26103c2565b6100e26103d5565b6033546001600160a01b0316610148565b61016860c95481565b6097546001600160a01b031661010b565b6100e26101be366004610929565b610413565b6100e26101d1366004610963565b6104ed565b6065546001600160a01b0316610148565b6100e26101f5366004610886565b610557565b6102026105c8565b61020b816105f2565b50565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461026157604051630f58058360e11b815260040160405180910390fd5b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd9a548b6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e4919061099f565b92509250925082156103095760405163a40e329160e01b815260040160405180910390fd5b5f8261031e6002670de0b6b3a7640000610b0e565b6103289190610b35565b90505f8261033f6002670de0b6b3a7640000610b0e565b6103499190610b35565b905061035482610677565b61035d81610677565b5f81610371670de0b6b3a764000085610b48565b61037b9190610b35565b905060c9548111156103a05760405163280cb9ed60e11b815260040160405180910390fd5b60026103ac8385610b67565b6103b69190610b35565b98975050505050505050565b6103ca6105c8565b6103d35f610697565b565b60655433906001600160a01b0316811461040a5760405162461bcd60e51b815260040161040190610bc2565b60405180910390fd5b61020b81610697565b5f54610100900460ff161580801561043157505f54600160ff909116105b8061044a5750303b15801561044a57505f5460ff166001145b6104665760405162461bcd60e51b815260040161040190610c1c565b5f805460ff191660011790558015610487575f805461ff0019166101001790555b61049082610677565b610499836106b0565b60c982905580156104e8575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104df90600190610c3f565b60405180910390a15b505050565b61050e604051806060016040528060258152602001610e16602591396106e7565b61051781610677565b7f8d4d923222e4a17f030a7f3fe695e9e6c13b437df4b3b48c2332f584395aba9060c9548260405161054a929190610c4d565b60405180910390a160c955565b61055f6105c8565b606580546001600160a01b0383166001600160a01b031990911681179091556105906033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146103d35760405162461bcd60e51b815260040161040190610c68565b6001600160a01b0381166106185760405162461bcd60e51b815260040161040190610ce3565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09061066b9083908590610cf3565b60405180910390a15050565b805f0361020b5760405163273e150360e21b815260040160405180910390fd5b606580546001600160a01b031916905561020b81610782565b5f54610100900460ff166106d65760405162461bcd60e51b815260040161040190610d55565b6106de6107d3565b61020b81610801565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab906107199033908690600401610da1565b602060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190610dc1565b90508061077e57333083604051634a3fa29360e01b815260040161040193929190610ddf565b5050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166107f95760405162461bcd60e51b815260040161040190610d55565b6103d3610827565b5f54610100900460ff166102025760405162461bcd60e51b815260040161040190610d55565b5f54610100900460ff1661084d5760405162461bcd60e51b815260040161040190610d55565b6103d333610697565b5f6001600160a01b0382165b92915050565b61087181610856565b811461020b575f80fd5b803561086281610868565b5f60208284031215610899576108995f80fd5b5f6108a4848461087b565b949350505050565b5f6001600160a01b038216610862565b5f610862826108ac565b5f610862826108bc565b6108d9816108c6565b82525050565b6020810161086282846108d0565b6108d981610856565b6020810161086282846108ed565b806108d9565b602081016108628284610904565b80610871565b803561086281610918565b5f806040838503121561093d5761093d5f80fd5b5f610948858561087b565b92505060206109598582860161091e565b9150509250929050565b5f60208284031215610976576109765f80fd5b5f6108a4848461091e565b801515610871565b805161086281610981565b805161086281610918565b5f805f606084860312156109b4576109b45f80fd5b5f6109bf8686610989565b93505060206109d086828701610994565b92505060406109e186828701610994565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b80825b6001851115610a3e57808604811115610a1d57610a1d6109eb565b6001851615610a2b57908102905b8002610a378560011c90565b9450610a02565b94509492505050565b5f82610a5557506001610b07565b81610a6157505f610b07565b8160018114610a775760028114610a8157610aae565b6001915050610b07565b60ff841115610a9257610a926109eb565b8360020a915084821115610aa857610aa86109eb565b50610b07565b5060208310610133831016604e8410600b8410161715610ae1575081810a83811115610adc57610adc6109eb565b610b07565b610aee84848460016109ff565b92509050818404811115610b0457610b046109eb565b81025b9392505050565b5f60ff83169250610b075f198484610a47565b634e487b7160e01b5f52601260045260245ffd5b5f82610b4357610b43610b21565b500490565b818102808215838204851417610b6057610b606109eb565b5092915050565b80820180821115610862576108626109eb565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161086281610b7a565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610bbb565b6020808252810161086281610bd2565b5f60ff8216610862565b6108d981610c2c565b602081016108628284610c36565b60408101610c5b8285610904565b610b076020830184610904565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610862565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610bbb565b6020808252810161086281610ca2565b60408101610d0182856108ed565b610b0760208301846108ed565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610bbb565b6020808252810161086281610d0e565b8281835e505f910152565b5f610d79825190565b808452602084019350610d90818560208601610d65565b601f01601f19169290920192915050565b60408101610daf82856108ed565b81810360208301526108a48184610d70565b5f60208284031215610dd457610dd45f80fd5b5f6108a48484610989565b60608101610ded82866108ed565b610dfa60208301856108ed565b8181036040830152610e0c8184610d70565b9594505050505056fe7365744d6178416c6c6f7765645072696365446966666572656e63652875696e7432353629a26469706673582212202f4749ca7dc9cb45a8d74c0d8153cd6ee9a374652830f7078ce44e2dfe3f044c64736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063cd6dc68711610063578063cd6dc687146101b0578063d5445950146101c3578063e30c3978146101d6578063f2fde38b146101e7575f80fd5b80638da5cb5b146101855780639fd1944f14610196578063b4a0bdf31461019f575f80fd5b80630e32cb86146100cf578063127cac45146100e457806335da603d1461012157806341976e0914610155578063715018a61461017557806379ba50971461017d575b5f80fd5b6100e26100dd366004610886565b6101fa565b005b61010b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108df565b60405180910390f35b6101487f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108f6565b610168610163366004610886565b61020e565b604051610118919061090a565b6100e26103c2565b6100e26103d5565b6033546001600160a01b0316610148565b61016860c95481565b6097546001600160a01b031661010b565b6100e26101be366004610929565b610413565b6100e26101d1366004610963565b6104ed565b6065546001600160a01b0316610148565b6100e26101f5366004610886565b610557565b6102026105c8565b61020b816105f2565b50565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461026157604051630f58058360e11b815260040160405180910390fd5b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd9a548b6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e4919061099f565b92509250925082156103095760405163a40e329160e01b815260040160405180910390fd5b5f8261031e6002670de0b6b3a7640000610b0e565b6103289190610b35565b90505f8261033f6002670de0b6b3a7640000610b0e565b6103499190610b35565b905061035482610677565b61035d81610677565b5f81610371670de0b6b3a764000085610b48565b61037b9190610b35565b905060c9548111156103a05760405163280cb9ed60e11b815260040160405180910390fd5b60026103ac8385610b67565b6103b69190610b35565b98975050505050505050565b6103ca6105c8565b6103d35f610697565b565b60655433906001600160a01b0316811461040a5760405162461bcd60e51b815260040161040190610bc2565b60405180910390fd5b61020b81610697565b5f54610100900460ff161580801561043157505f54600160ff909116105b8061044a5750303b15801561044a57505f5460ff166001145b6104665760405162461bcd60e51b815260040161040190610c1c565b5f805460ff191660011790558015610487575f805461ff0019166101001790555b61049082610677565b610499836106b0565b60c982905580156104e8575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104df90600190610c3f565b60405180910390a15b505050565b61050e604051806060016040528060258152602001610e16602591396106e7565b61051781610677565b7f8d4d923222e4a17f030a7f3fe695e9e6c13b437df4b3b48c2332f584395aba9060c9548260405161054a929190610c4d565b60405180910390a160c955565b61055f6105c8565b606580546001600160a01b0383166001600160a01b031990911681179091556105906033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146103d35760405162461bcd60e51b815260040161040190610c68565b6001600160a01b0381166106185760405162461bcd60e51b815260040161040190610ce3565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09061066b9083908590610cf3565b60405180910390a15050565b805f0361020b5760405163273e150360e21b815260040160405180910390fd5b606580546001600160a01b031916905561020b81610782565b5f54610100900460ff166106d65760405162461bcd60e51b815260040161040190610d55565b6106de6107d3565b61020b81610801565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab906107199033908690600401610da1565b602060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190610dc1565b90508061077e57333083604051634a3fa29360e01b815260040161040193929190610ddf565b5050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166107f95760405162461bcd60e51b815260040161040190610d55565b6103d3610827565b5f54610100900460ff166102025760405162461bcd60e51b815260040161040190610d55565b5f54610100900460ff1661084d5760405162461bcd60e51b815260040161040190610d55565b6103d333610697565b5f6001600160a01b0382165b92915050565b61087181610856565b811461020b575f80fd5b803561086281610868565b5f60208284031215610899576108995f80fd5b5f6108a4848461087b565b949350505050565b5f6001600160a01b038216610862565b5f610862826108ac565b5f610862826108bc565b6108d9816108c6565b82525050565b6020810161086282846108d0565b6108d981610856565b6020810161086282846108ed565b806108d9565b602081016108628284610904565b80610871565b803561086281610918565b5f806040838503121561093d5761093d5f80fd5b5f610948858561087b565b92505060206109598582860161091e565b9150509250929050565b5f60208284031215610976576109765f80fd5b5f6108a4848461091e565b801515610871565b805161086281610981565b805161086281610918565b5f805f606084860312156109b4576109b45f80fd5b5f6109bf8686610989565b93505060206109d086828701610994565b92505060406109e186828701610994565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b80825b6001851115610a3e57808604811115610a1d57610a1d6109eb565b6001851615610a2b57908102905b8002610a378560011c90565b9450610a02565b94509492505050565b5f82610a5557506001610b07565b81610a6157505f610b07565b8160018114610a775760028114610a8157610aae565b6001915050610b07565b60ff841115610a9257610a926109eb565b8360020a915084821115610aa857610aa86109eb565b50610b07565b5060208310610133831016604e8410600b8410161715610ae1575081810a83811115610adc57610adc6109eb565b610b07565b610aee84848460016109ff565b92509050818404811115610b0457610b046109eb565b81025b9392505050565b5f60ff83169250610b075f198484610a47565b634e487b7160e01b5f52601260045260245ffd5b5f82610b4357610b43610b21565b500490565b818102808215838204851417610b6057610b606109eb565b5092915050565b80820180821115610862576108626109eb565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161086281610b7a565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610bbb565b6020808252810161086281610bd2565b5f60ff8216610862565b6108d981610c2c565b602081016108628284610c36565b60408101610c5b8285610904565b610b076020830184610904565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610862565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610bbb565b6020808252810161086281610ca2565b60408101610d0182856108ed565b610b0760208301846108ed565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610bbb565b6020808252810161086281610d0e565b8281835e505f910152565b5f610d79825190565b808452602084019350610d90818560208601610d65565b601f01601f19169290920192915050565b60408101610daf82856108ed565b81810360208301526108a48184610d70565b5f60208284031215610dd457610dd45f80fd5b5f6108a48484610989565b60608101610ded82866108ed565b610dfa60208301856108ed565b8181036040830152610e0c8184610d70565b9594505050505056fe7365744d6178416c6c6f7765645072696365446966666572656e63652875696e7432353629a26469706673582212202f4749ca7dc9cb45a8d74c0d8153cd6ee9a374652830f7078ce44e2dfe3f044c64736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
