{
  "_format": "hh-sol-artifact-1",
  "contractName": "PendleIncentiveData",
  "sourceName": "contracts/misc/PendleIncentiveData.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "epochId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "epochBegin",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "epochEnd",
              "type": "uint32"
            },
            {
              "internalType": "uint192",
              "name": "total",
              "type": "uint192"
            }
          ],
          "indexed": false,
          "internalType": "struct PendleIncentiveData.IncentiveData",
          "name": "totalIncentives",
          "type": "tuple"
        }
      ],
      "name": "IncentivesUpdate",
      "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": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "epochBegin",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "epochEnd",
              "type": "uint32"
            },
            {
              "internalType": "uint192",
              "name": "total",
              "type": "uint192"
            }
          ],
          "internalType": "struct PendleIncentiveData.IncentiveData[]",
          "name": "data",
          "type": "tuple[]"
        }
      ],
      "name": "addNewData",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        }
      ],
      "name": "getCurrentData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "epochBegin",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "epochEnd",
              "type": "uint32"
            },
            {
              "internalType": "uint192",
              "name": "total",
              "type": "uint192"
            }
          ],
          "internalType": "struct PendleIncentiveData.IncentiveData[]",
          "name": "data",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        }
      ],
      "name": "getLatestEpochId",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "res",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "incentives",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "epochBegin",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "epochEnd",
          "type": "uint32"
        },
        {
          "internalType": "uint192",
          "name": "total",
          "type": "uint192"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "epochBegin",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "epochEnd",
              "type": "uint32"
            },
            {
              "internalType": "uint192",
              "name": "total",
              "type": "uint192"
            }
          ],
          "internalType": "struct PendleIncentiveData.IncentiveData",
          "name": "newData",
          "type": "tuple"
        }
      ],
      "name": "overwriteData",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "direct",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "renounce",
          "type": "bool"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610e5d806100326000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806332e2e2131161006657806332e2e213146100fc57806340406fcb1461011e5780634e71e0c81461013e5780638da5cb5b14610146578063e30c39781461015b57610093565b8063078dfbe71461009857806313416bc4146100ad5780631730a649146100c05780631fc8a93a146100d3575b600080fd5b6100ab6100a6366004610a36565b610163565b005b6100ab6100bb366004610b27565b6102ab565b6100ab6100ce366004610aa1565b610489565b6100e66100e1366004610ae7565b6105a6565b6040516100f39190610c3a565b60405180910390f35b61010f61010a366004610a78565b610632565b6040516100f393929190610d53565b61013161012c366004610ae7565b610682565b6040516100f39190610bcf565b6100ab610843565b61014e610905565b6040516100f39190610bbb565b61014e610914565b6000546001600160a01b031633146101c2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b811561028a576001600160a01b0383161515806101dc5750805b610225576040805162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b604482015290519081900360640190fd5b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b0319918216179091556001805490911690556102a6565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6000546001600160a01b0316331461030a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b828181146103335760405162461bcd60e51b815260040161032a90610cd0565b60405180910390fd5b60005b81811015610481576002600087878481811061034e57fe5b90506020020160208101906103639190610a15565b6001600160a01b03166001600160a01b0316815260200190815260200160002084848381811061038f57fe5b835460018101855560009485526020909420606090910292909201929190910190506103bb8282610d7c565b50506104076001600260008989868181106103d257fe5b90506020020160208101906103e79190610a15565b6001600160a01b0316815260208101919091526040016000205490610923565b86868381811061041357fe5b90506020020160208101906104289190610a15565b6001600160a01b03167fd4623cd835e30755fd0148244a8d2ac32f1bc55b275e0d24c82e000a91bdc35086868581811061045e57fe5b9050606002016040516104719190610cff565b60405180910390a3600101610336565b505050505050565b6000546001600160a01b031633146104e8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038316600090815260026020526040902054821061051f5760405162461bcd60e51b815260040161032a90610ca9565b6001600160a01b038316600090815260026020526040902080548291908490811061054657fe5b90600052602060002001818161055c9190610d7c565b90505081836001600160a01b03167fd4623cd835e30755fd0148244a8d2ac32f1bc55b275e0d24c82e000a91bdc350836040516105999190610cff565b60405180910390a3505050565b60608167ffffffffffffffff811180156105bf57600080fd5b506040519080825280602002602001820160405280156105e9578160200160208202803683370190505b50905060005b8281101561062b5761060c6001600260008787868181106103d257fe5b82828151811061061857fe5b60209081029190910101526001016105ef565b5092915050565b6002602052816000526040600020818154811061064e57600080fd5b60009182526020909120015463ffffffff80821693506401000000008204169150600160401b90046001600160c01b031683565b60608167ffffffffffffffff8111801561069b57600080fd5b506040519080825280602002602001820160405280156106d557816020015b6106c2610980565b8152602001906001900390816106ba5790505b50905060005b8281101561062b576000600260008686858181106106f557fe5b905060200201602081019061070a9190610a15565b6001600160a01b031681526020810191909152604001600020549050806107435760405162461bcd60e51b815260040161032a90610c7e565b60001981015b60006002600088888781811061075b57fe5b90506020020160208101906107709190610a15565b6001600160a01b03166001600160a01b03168152602001908152602001600020828154811061079b57fe5b600091825260209182902060408051606081018252929091015463ffffffff808216808552640100000000830490911694840194909452600160401b90046001600160c01b031690820152915042108015906108015750806020015163ffffffff164211155b15610824578085858151811061081357fe5b602002602001018190525050610839565b8161082f5750610839565b5060001901610749565b50506001016106db565b6001546001600160a01b03163381146108a3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b031681565b6001546001600160a01b031681565b60008282111561097a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516060810182526000808252602082018190529181019190915290565b80356001600160a01b03811681146109b757600080fd5b919050565b60008083601f8401126109cd578182fd5b50813567ffffffffffffffff8111156109e4578182fd5b60208301915083602080830285010111156109fe57600080fd5b9250929050565b803580151581146109b757600080fd5b600060208284031215610a26578081fd5b610a2f826109a0565b9392505050565b600080600060608486031215610a4a578182fd5b610a53846109a0565b9250610a6160208501610a05565b9150610a6f60408501610a05565b90509250925092565b60008060408385031215610a8a578182fd5b610a93836109a0565b946020939093013593505050565b600080600083850360a0811215610ab6578384fd5b610abf856109a0565b9350602085013592506060603f1982011215610ad9578182fd5b506040840190509250925092565b60008060208385031215610af9578182fd5b823567ffffffffffffffff811115610b0f578283fd5b610b1b858286016109bc565b90969095509350505050565b60008060008060408587031215610b3c578081fd5b843567ffffffffffffffff80821115610b53578283fd5b610b5f888389016109bc565b90965094506020870135915080821115610b77578283fd5b818701915087601f830112610b8a578283fd5b813581811115610b98578384fd5b886020606083028501011115610bac578384fd5b95989497505060200194505050565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b82811015610c2d578151805163ffffffff90811686528782015116878601528501516001600160c01b03168585015260609093019290850190600101610bec565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610c7257835183529284019291840191600101610c56565b50909695505050505050565b6020808252601190820152702727afa220aa20afa327a92faa27a5a2a760791b604082015260600190565b6020808252600d908201526c0929cac82989288be929c888ab609b1b604082015260600190565b602080825260159082015274082a4a482b2be988a9c8ea890be9a92a69a82a8869605b1b604082015260600190565b606081018235610d0e81610e15565b63ffffffff9081168352602084013590610d2782610e15565b1660208301526040830135610d3b81610dfd565b6001600160c01b031660409290920191909152919050565b63ffffffff93841681529190921660208201526001600160c01b03909116604082015260600190565b8135610d8781610e15565b815463ffffffff191663ffffffff91909116178082556020830135610dab81610e15565b67ffffffff000000008160201b1667ffffffff00000000198316179150508082556040830135610dda81610dfd565b67ffffffffffffffff198160401b1667ffffffffffffffff831617835550505050565b6001600160c01b0381168114610e1257600080fd5b50565b63ffffffff81168114610e1257600080fdfea26469706673582212201e5e0cc5298d3ea8b9db61d5b968ee27f538ba19e660d1935592328ad322418064736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c806332e2e2131161006657806332e2e213146100fc57806340406fcb1461011e5780634e71e0c81461013e5780638da5cb5b14610146578063e30c39781461015b57610093565b8063078dfbe71461009857806313416bc4146100ad5780631730a649146100c05780631fc8a93a146100d3575b600080fd5b6100ab6100a6366004610a36565b610163565b005b6100ab6100bb366004610b27565b6102ab565b6100ab6100ce366004610aa1565b610489565b6100e66100e1366004610ae7565b6105a6565b6040516100f39190610c3a565b60405180910390f35b61010f61010a366004610a78565b610632565b6040516100f393929190610d53565b61013161012c366004610ae7565b610682565b6040516100f39190610bcf565b6100ab610843565b61014e610905565b6040516100f39190610bbb565b61014e610914565b6000546001600160a01b031633146101c2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b811561028a576001600160a01b0383161515806101dc5750805b610225576040805162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b604482015290519081900360640190fd5b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b0319918216179091556001805490911690556102a6565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6000546001600160a01b0316331461030a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b828181146103335760405162461bcd60e51b815260040161032a90610cd0565b60405180910390fd5b60005b81811015610481576002600087878481811061034e57fe5b90506020020160208101906103639190610a15565b6001600160a01b03166001600160a01b0316815260200190815260200160002084848381811061038f57fe5b835460018101855560009485526020909420606090910292909201929190910190506103bb8282610d7c565b50506104076001600260008989868181106103d257fe5b90506020020160208101906103e79190610a15565b6001600160a01b0316815260208101919091526040016000205490610923565b86868381811061041357fe5b90506020020160208101906104289190610a15565b6001600160a01b03167fd4623cd835e30755fd0148244a8d2ac32f1bc55b275e0d24c82e000a91bdc35086868581811061045e57fe5b9050606002016040516104719190610cff565b60405180910390a3600101610336565b505050505050565b6000546001600160a01b031633146104e8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038316600090815260026020526040902054821061051f5760405162461bcd60e51b815260040161032a90610ca9565b6001600160a01b038316600090815260026020526040902080548291908490811061054657fe5b90600052602060002001818161055c9190610d7c565b90505081836001600160a01b03167fd4623cd835e30755fd0148244a8d2ac32f1bc55b275e0d24c82e000a91bdc350836040516105999190610cff565b60405180910390a3505050565b60608167ffffffffffffffff811180156105bf57600080fd5b506040519080825280602002602001820160405280156105e9578160200160208202803683370190505b50905060005b8281101561062b5761060c6001600260008787868181106103d257fe5b82828151811061061857fe5b60209081029190910101526001016105ef565b5092915050565b6002602052816000526040600020818154811061064e57600080fd5b60009182526020909120015463ffffffff80821693506401000000008204169150600160401b90046001600160c01b031683565b60608167ffffffffffffffff8111801561069b57600080fd5b506040519080825280602002602001820160405280156106d557816020015b6106c2610980565b8152602001906001900390816106ba5790505b50905060005b8281101561062b576000600260008686858181106106f557fe5b905060200201602081019061070a9190610a15565b6001600160a01b031681526020810191909152604001600020549050806107435760405162461bcd60e51b815260040161032a90610c7e565b60001981015b60006002600088888781811061075b57fe5b90506020020160208101906107709190610a15565b6001600160a01b03166001600160a01b03168152602001908152602001600020828154811061079b57fe5b600091825260209182902060408051606081018252929091015463ffffffff808216808552640100000000830490911694840194909452600160401b90046001600160c01b031690820152915042108015906108015750806020015163ffffffff164211155b15610824578085858151811061081357fe5b602002602001018190525050610839565b8161082f5750610839565b5060001901610749565b50506001016106db565b6001546001600160a01b03163381146108a3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b031681565b6001546001600160a01b031681565b60008282111561097a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516060810182526000808252602082018190529181019190915290565b80356001600160a01b03811681146109b757600080fd5b919050565b60008083601f8401126109cd578182fd5b50813567ffffffffffffffff8111156109e4578182fd5b60208301915083602080830285010111156109fe57600080fd5b9250929050565b803580151581146109b757600080fd5b600060208284031215610a26578081fd5b610a2f826109a0565b9392505050565b600080600060608486031215610a4a578182fd5b610a53846109a0565b9250610a6160208501610a05565b9150610a6f60408501610a05565b90509250925092565b60008060408385031215610a8a578182fd5b610a93836109a0565b946020939093013593505050565b600080600083850360a0811215610ab6578384fd5b610abf856109a0565b9350602085013592506060603f1982011215610ad9578182fd5b506040840190509250925092565b60008060208385031215610af9578182fd5b823567ffffffffffffffff811115610b0f578283fd5b610b1b858286016109bc565b90969095509350505050565b60008060008060408587031215610b3c578081fd5b843567ffffffffffffffff80821115610b53578283fd5b610b5f888389016109bc565b90965094506020870135915080821115610b77578283fd5b818701915087601f830112610b8a578283fd5b813581811115610b98578384fd5b886020606083028501011115610bac578384fd5b95989497505060200194505050565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b82811015610c2d578151805163ffffffff90811686528782015116878601528501516001600160c01b03168585015260609093019290850190600101610bec565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610c7257835183529284019291840191600101610c56565b50909695505050505050565b6020808252601190820152702727afa220aa20afa327a92faa27a5a2a760791b604082015260600190565b6020808252600d908201526c0929cac82989288be929c888ab609b1b604082015260600190565b602080825260159082015274082a4a482b2be988a9c8ea890be9a92a69a82a8869605b1b604082015260600190565b606081018235610d0e81610e15565b63ffffffff9081168352602084013590610d2782610e15565b1660208301526040830135610d3b81610dfd565b6001600160c01b031660409290920191909152919050565b63ffffffff93841681529190921660208201526001600160c01b03909116604082015260600190565b8135610d8781610e15565b815463ffffffff191663ffffffff91909116178082556020830135610dab81610e15565b67ffffffff000000008160201b1667ffffffff00000000198316179150508082556040830135610dda81610dfd565b67ffffffffffffffff198160401b1667ffffffffffffffff831617835550505050565b6001600160c01b0381168114610e1257600080fd5b50565b63ffffffff81168114610e1257600080fdfea26469706673582212201e5e0cc5298d3ea8b9db61d5b968ee27f538ba19e660d1935592328ad322418064736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
