{
  "_format": "hh3-artifact-1",
  "contractName": "LinearPremiumPriceOracle",
  "sourceName": "contracts/ethregistrar/LinearPremiumPriceOracle.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract AggregatorInterface",
          "name": "_usdOracle",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_rentPrices",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "_initialPremium",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_premiumDecreaseRate",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "prices",
          "type": "uint256[]"
        }
      ],
      "name": "RentPriceChanged",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "initialPremium",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "expires",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "duration",
          "type": "uint256"
        }
      ],
      "name": "premium",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "premiumDecreaseRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "expires",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "duration",
          "type": "uint256"
        }
      ],
      "name": "price",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "base",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "premium",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPriceOracle.Price",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "price1Letter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "price2Letter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "price3Letter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "price4Letter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "price5Letter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceID",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "expires",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "timeUntilPremium",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "usdOracle",
      "outputs": [
        {
          "internalType": "contract AggregatorInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6101a06040526276a7006101405234801561001957600080fd5b5060405161109a38038061109a8339810160408190526100389161011f565b6001600160a01b03841661012052825184908490819060009061005d5761005d61021b565b6020026020010151608081815250508060018151811061007f5761007f61021b565b602002602001015160a08181525050806002815181106100a1576100a161021b565b602002602001015160c08181525050806003815181106100c3576100c361021b565b602002602001015160e08181525050806004815181106100e5576100e561021b565b60209081029190910101516101005250506101609190915261018052506102319050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561013557600080fd5b84516001600160a01b038116811461014c57600080fd5b60208601519094506001600160401b0381111561016857600080fd5b8501601f8101871361017957600080fd5b80516001600160401b0381111561019257610192610109565b604051600582901b90603f8201601f191681016001600160401b03811182821017156101c0576101c0610109565b60405291825260208184018101929081018a8411156101de57600080fd5b6020850194505b83851015610201578451808252602095860195909350016101e5565b506040890151606090990151979a90995095505050505050565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e0516101005161012051610140516101605161018051610d976103036000396000818161029e015281816105cf01526109a101526000818161019001528181610542015281816105a0015281816109ca0152610a00015260008181610573015261095a0152600081816101f1015281816108a30152610a29015260008181610169015261038301526000818161026401526103bc0152600081816101b701526103ee01526000818161023d0152610420015260008181610106015261044a0152610d976000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063a34e359611610081578063d820ed421161005b578063d820ed421461025f578063ed6c33ed14610286578063f05af2b71461029957600080fd5b8063a34e3596146101d9578063c8a4271f146101ec578063cd5d2c741461023857600080fd5b806359b6b86c116100b257806359b6b86c146101645780637d3fb8b71461018b578063a200e153146101b257600080fd5b806301ffc9a7146100d95780632c0fd74c1461010157806350e9a71514610136575b600080fd5b6100ec6100e7366004610b55565b6102c0565b60405190151581526020015b60405180910390f35b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100f8565b610149610144366004610b97565b61031c565b604080518251815260209283015192810192909252016100f8565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101286101e7366004610b97565b6104e2565b6102137f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b610128610294366004610c18565b610533565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fa377dd960000000000000000000000000000000000000000000000000000000014806103165750610316826105ff565b92915050565b6040805180820190915260008082526020820152600061037186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061069792505050565b90506000600582106103ae576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b9050610471565b816004036103e0576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b81600303610412576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b81600203610444576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b61046e847f0000000000000000000000000000000000000000000000000000000000000000610c69565b90505b60405180604001604052806104858361089e565b81526020016104d56104d08a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b91506109529050565b61089e565b9052979650505050505050565b600061052a6104d086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892508791506109529050565b95945050505050565b600061053e82610a24565b91507f000000000000000000000000000000000000000000000000000000000000000082111561056d57600080fd5b610597837f0000000000000000000000000000000000000000000000000000000000000000610ac7565b925060006105c57f000000000000000000000000000000000000000000000000000000000000000084610ae3565b905060006105f3827f0000000000000000000000000000000000000000000000000000000000000000610b06565b905061052a8582610ac7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061031657507fffffffff0000000000000000000000000000000000000000000000000000000082167f50e9a715000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b808210156108955760008583815181106106bd576106bd610c80565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f800000000000000000000000000000000000000000000000000000000000000081101561072057610719600184610caf565b9250610882565b7fe0000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561077557610719600284610caf565b7ff0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156107ca57610719600384610caf565b7ff8000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561081f57610719600484610caf565b7ffc000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561087457610719600584610caf565b61087f600684610caf565b92505b508261088d81610cc2565b9350506106a1565b50909392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190610cfa565b905080610941846305f5e100610c69565b61094b9190610d13565b9392505050565b600061097e837f0000000000000000000000000000000000000000000000000000000000000000610ac7565b9250428311156109905750600061094b565b60006109c661099f4286610ae3565b7f000000000000000000000000000000000000000000000000000000000000000090610b20565b90507f00000000000000000000000000000000000000000000000000000000000000008111156109fa57600091505061094b565b61052a817f0000000000000000000000000000000000000000000000000000000000000000610d4e565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab69190610cfa565b90506305f5e1006109418285610c69565b600080610ad48385610caf565b90508381101561094b57600080fd5b600082821115610af257600080fd5b6000610afe8385610d4e565b949350505050565b6000808211610b1457600080fd5b6000610afe8385610d13565b600082600003610b3257506000610316565b6000610b3e8385610c69565b905082610b4b8583610d13565b1461094b57600080fd5b600060208284031215610b6757600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461094b57600080fd5b60008060008060608587031215610bad57600080fd5b843567ffffffffffffffff811115610bc457600080fd5b8501601f81018713610bd557600080fd5b803567ffffffffffffffff811115610bec57600080fd5b876020828401011115610bfe57600080fd5b602091820198909750908601359560400135945092505050565b60008060408385031215610c2b57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761031657610316610c3a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561031657610316610c3a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610cf357610cf3610c3a565b5060010190565b600060208284031215610d0c57600080fd5b5051919050565b600082610d49577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561031657610316610c3a56fea264697066735822122068e0110a194162832a92affaff72a266a2c1b4767259cb333733609da678af9e64736f6c634300081a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063a34e359611610081578063d820ed421161005b578063d820ed421461025f578063ed6c33ed14610286578063f05af2b71461029957600080fd5b8063a34e3596146101d9578063c8a4271f146101ec578063cd5d2c741461023857600080fd5b806359b6b86c116100b257806359b6b86c146101645780637d3fb8b71461018b578063a200e153146101b257600080fd5b806301ffc9a7146100d95780632c0fd74c1461010157806350e9a71514610136575b600080fd5b6100ec6100e7366004610b55565b6102c0565b60405190151581526020015b60405180910390f35b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100f8565b610149610144366004610b97565b61031c565b604080518251815260209283015192810192909252016100f8565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101286101e7366004610b97565b6104e2565b6102137f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b610128610294366004610c18565b610533565b6101287f000000000000000000000000000000000000000000000000000000000000000081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fa377dd960000000000000000000000000000000000000000000000000000000014806103165750610316826105ff565b92915050565b6040805180820190915260008082526020820152600061037186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061069792505050565b90506000600582106103ae576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b9050610471565b816004036103e0576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b81600303610412576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b81600203610444576103a7847f0000000000000000000000000000000000000000000000000000000000000000610c69565b61046e847f0000000000000000000000000000000000000000000000000000000000000000610c69565b90505b60405180604001604052806104858361089e565b81526020016104d56104d08a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b91506109529050565b61089e565b9052979650505050505050565b600061052a6104d086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892508791506109529050565b95945050505050565b600061053e82610a24565b91507f000000000000000000000000000000000000000000000000000000000000000082111561056d57600080fd5b610597837f0000000000000000000000000000000000000000000000000000000000000000610ac7565b925060006105c57f000000000000000000000000000000000000000000000000000000000000000084610ae3565b905060006105f3827f0000000000000000000000000000000000000000000000000000000000000000610b06565b905061052a8582610ac7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061031657507fffffffff0000000000000000000000000000000000000000000000000000000082167f50e9a715000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b808210156108955760008583815181106106bd576106bd610c80565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f800000000000000000000000000000000000000000000000000000000000000081101561072057610719600184610caf565b9250610882565b7fe0000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561077557610719600284610caf565b7ff0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156107ca57610719600384610caf565b7ff8000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561081f57610719600484610caf565b7ffc000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561087457610719600584610caf565b61087f600684610caf565b92505b508261088d81610cc2565b9350506106a1565b50909392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190610cfa565b905080610941846305f5e100610c69565b61094b9190610d13565b9392505050565b600061097e837f0000000000000000000000000000000000000000000000000000000000000000610ac7565b9250428311156109905750600061094b565b60006109c661099f4286610ae3565b7f000000000000000000000000000000000000000000000000000000000000000090610b20565b90507f00000000000000000000000000000000000000000000000000000000000000008111156109fa57600091505061094b565b61052a817f0000000000000000000000000000000000000000000000000000000000000000610d4e565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab69190610cfa565b90506305f5e1006109418285610c69565b600080610ad48385610caf565b90508381101561094b57600080fd5b600082821115610af257600080fd5b6000610afe8385610d4e565b949350505050565b6000808211610b1457600080fd5b6000610afe8385610d13565b600082600003610b3257506000610316565b6000610b3e8385610c69565b905082610b4b8583610d13565b1461094b57600080fd5b600060208284031215610b6757600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461094b57600080fd5b60008060008060608587031215610bad57600080fd5b843567ffffffffffffffff811115610bc457600080fd5b8501601f81018713610bd557600080fd5b803567ffffffffffffffff811115610bec57600080fd5b876020828401011115610bfe57600080fd5b602091820198909750908601359560400135945092505050565b60008060408385031215610c2b57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761031657610316610c3a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561031657610316610c3a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610cf357610cf3610c3a565b5060010190565b600060208284031215610d0c57600080fd5b5051919050565b600082610d49577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561031657610316610c3a56fea264697066735822122068e0110a194162832a92affaff72a266a2c1b4767259cb333733609da678af9e64736f6c634300081a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {
    "20172": [
      {
        "length": 32,
        "start": 1395
      },
      {
        "length": 32,
        "start": 2394
      }
    ],
    "20174": [
      {
        "length": 32,
        "start": 400
      },
      {
        "length": 32,
        "start": 1346
      },
      {
        "length": 32,
        "start": 1440
      },
      {
        "length": 32,
        "start": 2506
      },
      {
        "length": 32,
        "start": 2560
      }
    ],
    "20176": [
      {
        "length": 32,
        "start": 670
      },
      {
        "length": 32,
        "start": 1487
      },
      {
        "length": 32,
        "start": 2465
      }
    ],
    "20586": [
      {
        "length": 32,
        "start": 262
      },
      {
        "length": 32,
        "start": 1098
      }
    ],
    "20588": [
      {
        "length": 32,
        "start": 573
      },
      {
        "length": 32,
        "start": 1056
      }
    ],
    "20590": [
      {
        "length": 32,
        "start": 439
      },
      {
        "length": 32,
        "start": 1006
      }
    ],
    "20592": [
      {
        "length": 32,
        "start": 612
      },
      {
        "length": 32,
        "start": 956
      }
    ],
    "20594": [
      {
        "length": 32,
        "start": 361
      },
      {
        "length": 32,
        "start": 899
      }
    ],
    "20597": [
      {
        "length": 32,
        "start": 497
      },
      {
        "length": 32,
        "start": 2211
      },
      {
        "length": 32,
        "start": 2601
      }
    ]
  },
  "inputSourceName": "project/contracts/ethregistrar/LinearPremiumPriceOracle.sol",
  "buildInfoId": "solc-0_8_26-f05bdccb11f2cf6df865fc6a27a95b5ace6017ea"
}