{
  "_format": "hh3-artifact-1",
  "contractName": "ExponentialPremiumPriceOracle",
  "sourceName": "contracts/ethregistrar/ExponentialPremiumPriceOracle.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract AggregatorInterface",
          "name": "_usdOracle",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_rentPrices",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "_startPremium",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalDays",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "prices",
          "type": "uint256[]"
        }
      ],
      "name": "RentPriceChanged",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "startPremium",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "elapsed",
          "type": "uint256"
        }
      ],
      "name": "decayedPremium",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "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": [
        {
          "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": [],
      "name": "usdOracle",
      "outputs": [
        {
          "internalType": "contract AggregatorInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61018060405234801561001157600080fd5b5060405161115538038061115583398101604081905261003091610117565b6001600160a01b03841661012052825184908490819060009061005557610055610213565b6020026020010151608081815250508060018151811061007757610077610213565b602002602001015160a081815250508060028151811061009957610099610213565b602002602001015160c08181525050806003815181106100bb576100bb610213565b602002602001015160e08181525050806004815181106100dd576100dd610213565b60209081029190910101516101005250506101408290521c61016052506102299050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561012d57600080fd5b84516001600160a01b038116811461014457600080fd5b60208601519094506001600160401b0381111561016057600080fd5b8501601f8101871361017157600080fd5b80516001600160401b0381111561018a5761018a610101565b604051600582901b90603f8201601f191681016001600160401b03811182821017156101b8576101b8610101565b60405291825260208184018101929081018a8411156101d657600080fd5b6020850194505b838510156101f9578451808252602095860195909350016101dd565b506040890151606090990151979a90995095505050505050565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e05161010051610120516101405161016051610e976102be600039600081816108d101526108fb015260006108a80152600081816101c701526107c301526000818161015301526102d401526000818161023a015261030d01526000818161018d015261033f015260008181610213015261037101526000818160f0015261039b0152610e976000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a200e15311610076578063c8a4271f1161005b578063c8a4271f146101c2578063cd5d2c741461020e578063d820ed421461023557600080fd5b8063a200e15314610188578063a34e3596146101af57600080fd5b806350e9a715116100a757806350e9a7151461012057806359b6b86c1461014e57806359e1777c1461017557600080fd5b806301ffc9a7146100c35780632c0fd74c146100eb575b600080fd5b6100d66100d1366004610c55565b61025c565b60405190151581526020015b60405180910390f35b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100e2565b61013361012e366004610c97565b61026d565b604080518251815260209283015192810192909252016100e2565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b610112610183366004610d18565b610433565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6101126101bd366004610c97565b6104ce565b6101e97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e2565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b60006102678261051f565b92915050565b604080518082019091526000808252602082015260006102c286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506105b792505050565b90506000600582106102ff576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b90506103c2565b81600403610331576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b81600303610363576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b81600203610395576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b6103bf847f0000000000000000000000000000000000000000000000000000000000000000610d69565b90505b60405180604001604052806103d6836107be565b81526020016104266104218a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b91506108729050565b6107be565b9052979650505050505050565b6000806201518061044c670de0b6b3a764000085610d69565b6104569190610d80565b9050600061046c670de0b6b3a764000083610d80565b905084811c6000610485670de0b6b3a764000084610d69565b61048f9085610dbb565b90506000670de0b6b3a76400006104a98362010000610d69565b6104b39190610d80565b905060006104c18285610935565b9998505050505050505050565b600061051661042186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892508791506108729050565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061026757507fffffffff0000000000000000000000000000000000000000000000000000000082167f50e9a715000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b808210156107b55760008583815181106105dd576105dd610dce565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f800000000000000000000000000000000000000000000000000000000000000081101561064057610639600184610dfd565b92506107a2565b7fe0000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561069557610639600284610dfd565b7ff0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156106ea57610639600384610dfd565b7ff8000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561073f57610639600484610dfd565b7ffc000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561079457610639600584610dfd565b61079f600684610dfd565b92505b50826107ad81610e10565b9350506105c1565b50909392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190610e48565b905080610861846305f5e100610d69565b61086b9190610d80565b9392505050565b60006108816276a70084610dfd565b9250428311156108935750600061086b565b600061089f8442610dbb565b905060006108cd7f000000000000000000000000000000000000000000000000000000000000000083610433565b90507f00000000000000000000000000000000000000000000000000000000000000008110610929576109207f000000000000000000000000000000000000000000000000000000000000000082610dbb565b9250505061086b565b50600095945050505050565b6000600183161561096857670de0b6b3a764000061095b670de0ad151d09418084610d69565b6109659190610d80565b91505b600283161561099957670de0b6b3a764000061098c670de0a3769959680084610d69565b6109969190610d80565b91505b60048316156109ca57670de0b6b3a76400006109bd670de09039a5fa510084610d69565b6109c79190610d80565b91505b60088316156109fb57670de0b6b3a76400006109ee670de069c00f3e120084610d69565b6109f89190610d80565b91505b6010831615610a2c57670de0b6b3a7640000610a1f670de01cce21c9440084610d69565b610a299190610d80565b91505b6020831615610a5d57670de0b6b3a7640000610a50670ddf82ef46ce100084610d69565b610a5a9190610d80565b91505b6040831615610a8e57670de0b6b3a7640000610a81670dde4f458f8e8d8084610d69565b610a8b9190610d80565b91505b6080831615610abf57670de0b6b3a7640000610ab2670ddbe84213d5f08084610d69565b610abc9190610d80565b91505b610100831615610af157670de0b6b3a7640000610ae4670dd71b7aa6df5b8084610d69565b610aee9190610d80565b91505b610200831615610b2357670de0b6b3a7640000610b16670dcd86e7f28cde0084610d69565b610b209190610d80565b91505b610400831615610b5557670de0b6b3a7640000610b48670dba71a3084ad68084610d69565b610b529190610d80565b91505b610800831615610b8757670de0b6b3a7640000610b7a670d94961b13dbde8084610d69565b610b849190610d80565b91505b611000831615610bb957670de0b6b3a7640000610bac670d4a171c35c9838084610d69565b610bb69190610d80565b91505b612000831615610beb57670de0b6b3a7640000610bde670cb9da519ccfb70084610d69565b610be89190610d80565b91505b614000831615610c1d57670de0b6b3a7640000610c10670bab76d59c18d68084610d69565b610c1a9190610d80565b91505b618000831615610c4f57670de0b6b3a7640000610c426709d025defee4df8084610d69565b610c4c9190610d80565b91505b50919050565b600060208284031215610c6757600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461086b57600080fd5b60008060008060608587031215610cad57600080fd5b843567ffffffffffffffff811115610cc457600080fd5b8501601f81018713610cd557600080fd5b803567ffffffffffffffff811115610cec57600080fd5b876020828401011115610cfe57600080fd5b602091820198909750908601359560400135945092505050565b60008060408385031215610d2b57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761026757610267610d3a565b600082610db6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561026757610267610d3a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561026757610267610d3a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e4157610e41610d3a565b5060010190565b600060208284031215610e5a57600080fd5b505191905056fea2646970667358221220f850f811747b5b4791c234b858e4afec1634a9065d026da7ac0e1f845eaac44e64736f6c634300081a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a200e15311610076578063c8a4271f1161005b578063c8a4271f146101c2578063cd5d2c741461020e578063d820ed421461023557600080fd5b8063a200e15314610188578063a34e3596146101af57600080fd5b806350e9a715116100a757806350e9a7151461012057806359b6b86c1461014e57806359e1777c1461017557600080fd5b806301ffc9a7146100c35780632c0fd74c146100eb575b600080fd5b6100d66100d1366004610c55565b61025c565b60405190151581526020015b60405180910390f35b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100e2565b61013361012e366004610c97565b61026d565b604080518251815260209283015192810192909252016100e2565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b610112610183366004610d18565b610433565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6101126101bd366004610c97565b6104ce565b6101e97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e2565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b60006102678261051f565b92915050565b604080518082019091526000808252602082015260006102c286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506105b792505050565b90506000600582106102ff576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b90506103c2565b81600403610331576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b81600303610363576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b81600203610395576102f8847f0000000000000000000000000000000000000000000000000000000000000000610d69565b6103bf847f0000000000000000000000000000000000000000000000000000000000000000610d69565b90505b60405180604001604052806103d6836107be565b81526020016104266104218a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b91506108729050565b6107be565b9052979650505050505050565b6000806201518061044c670de0b6b3a764000085610d69565b6104569190610d80565b9050600061046c670de0b6b3a764000083610d80565b905084811c6000610485670de0b6b3a764000084610d69565b61048f9085610dbb565b90506000670de0b6b3a76400006104a98362010000610d69565b6104b39190610d80565b905060006104c18285610935565b9998505050505050505050565b600061051661042186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892508791506108729050565b95945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061026757507fffffffff0000000000000000000000000000000000000000000000000000000082167f50e9a715000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b808210156107b55760008583815181106105dd576105dd610dce565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f800000000000000000000000000000000000000000000000000000000000000081101561064057610639600184610dfd565b92506107a2565b7fe0000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561069557610639600284610dfd565b7ff0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156106ea57610639600384610dfd565b7ff8000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561073f57610639600484610dfd565b7ffc000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561079457610639600584610dfd565b61079f600684610dfd565b92505b50826107ad81610e10565b9350506105c1565b50909392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190610e48565b905080610861846305f5e100610d69565b61086b9190610d80565b9392505050565b60006108816276a70084610dfd565b9250428311156108935750600061086b565b600061089f8442610dbb565b905060006108cd7f000000000000000000000000000000000000000000000000000000000000000083610433565b90507f00000000000000000000000000000000000000000000000000000000000000008110610929576109207f000000000000000000000000000000000000000000000000000000000000000082610dbb565b9250505061086b565b50600095945050505050565b6000600183161561096857670de0b6b3a764000061095b670de0ad151d09418084610d69565b6109659190610d80565b91505b600283161561099957670de0b6b3a764000061098c670de0a3769959680084610d69565b6109969190610d80565b91505b60048316156109ca57670de0b6b3a76400006109bd670de09039a5fa510084610d69565b6109c79190610d80565b91505b60088316156109fb57670de0b6b3a76400006109ee670de069c00f3e120084610d69565b6109f89190610d80565b91505b6010831615610a2c57670de0b6b3a7640000610a1f670de01cce21c9440084610d69565b610a299190610d80565b91505b6020831615610a5d57670de0b6b3a7640000610a50670ddf82ef46ce100084610d69565b610a5a9190610d80565b91505b6040831615610a8e57670de0b6b3a7640000610a81670dde4f458f8e8d8084610d69565b610a8b9190610d80565b91505b6080831615610abf57670de0b6b3a7640000610ab2670ddbe84213d5f08084610d69565b610abc9190610d80565b91505b610100831615610af157670de0b6b3a7640000610ae4670dd71b7aa6df5b8084610d69565b610aee9190610d80565b91505b610200831615610b2357670de0b6b3a7640000610b16670dcd86e7f28cde0084610d69565b610b209190610d80565b91505b610400831615610b5557670de0b6b3a7640000610b48670dba71a3084ad68084610d69565b610b529190610d80565b91505b610800831615610b8757670de0b6b3a7640000610b7a670d94961b13dbde8084610d69565b610b849190610d80565b91505b611000831615610bb957670de0b6b3a7640000610bac670d4a171c35c9838084610d69565b610bb69190610d80565b91505b612000831615610beb57670de0b6b3a7640000610bde670cb9da519ccfb70084610d69565b610be89190610d80565b91505b614000831615610c1d57670de0b6b3a7640000610c10670bab76d59c18d68084610d69565b610c1a9190610d80565b91505b618000831615610c4f57670de0b6b3a7640000610c426709d025defee4df8084610d69565b610c4c9190610d80565b91505b50919050565b600060208284031215610c6757600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461086b57600080fd5b60008060008060608587031215610cad57600080fd5b843567ffffffffffffffff811115610cc457600080fd5b8501601f81018713610cd557600080fd5b803567ffffffffffffffff811115610cec57600080fd5b876020828401011115610cfe57600080fd5b602091820198909750908601359560400135945092505050565b60008060408385031215610d2b57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761026757610267610d3a565b600082610db6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561026757610267610d3a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561026757610267610d3a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e4157610e41610d3a565b5060010190565b600060208284031215610e5a57600080fd5b505191905056fea2646970667358221220f850f811747b5b4791c234b858e4afec1634a9065d026da7ac0e1f845eaac44e64736f6c634300081a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {
    "19416": [
      {
        "length": 32,
        "start": 2216
      }
    ],
    "19418": [
      {
        "length": 32,
        "start": 2257
      },
      {
        "length": 32,
        "start": 2299
      }
    ],
    "20586": [
      {
        "length": 32,
        "start": 240
      },
      {
        "length": 32,
        "start": 923
      }
    ],
    "20588": [
      {
        "length": 32,
        "start": 531
      },
      {
        "length": 32,
        "start": 881
      }
    ],
    "20590": [
      {
        "length": 32,
        "start": 397
      },
      {
        "length": 32,
        "start": 831
      }
    ],
    "20592": [
      {
        "length": 32,
        "start": 570
      },
      {
        "length": 32,
        "start": 781
      }
    ],
    "20594": [
      {
        "length": 32,
        "start": 339
      },
      {
        "length": 32,
        "start": 724
      }
    ],
    "20597": [
      {
        "length": 32,
        "start": 455
      },
      {
        "length": 32,
        "start": 1987
      }
    ]
  },
  "inputSourceName": "project/contracts/ethregistrar/ExponentialPremiumPriceOracle.sol",
  "buildInfoId": "solc-0_8_26-f05bdccb11f2cf6df865fc6a27a95b5ace6017ea"
}