{
  "_format": "hh-sol-artifact-1",
  "contractName": "PendleRetroactiveDistribution",
  "sourceName": "contracts/misc/PendleRetroactiveDistribution.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "rewardType",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "totalAmount",
          "type": "uint256"
        }
      ],
      "name": "DistributeReward",
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RedeemReward",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "rewardType",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "totalAmount",
          "type": "uint256"
        }
      ],
      "name": "UndistributeReward",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ETH_ADDRESS",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "available",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "rewardType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "internalType": "struct UserAmount[]",
          "name": "data",
          "type": "tuple[]"
        }
      ],
      "name": "distribute",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "address payable",
          "name": "forAddr",
          "type": "address"
        }
      ],
      "name": "redeem",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "rewardType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "internalType": "struct UserAmount[]",
          "name": "data",
          "type": "tuple[]"
        }
      ],
      "name": "unDistribute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060016000908155610020610073565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610077565b3390565b610f89806100866000396000f3fe60806040526004361061007b5760003560e01c8063bd85cef61161004e578063bd85cef614610104578063e003d24c14610117578063f2fde38b14610137578063f874d8f6146101575761007b565b8063715018a6146100805780638da5cb5b14610097578063a734f06e146100c2578063bbe430de146100d7575b600080fd5b34801561008c57600080fd5b50610095610184565b005b3480156100a357600080fd5b506100ac610230565b6040516100b99190610df0565b60405180910390f35b3480156100ce57600080fd5b506100ac61023f565b3480156100e357600080fd5b506100f76100f2366004610c91565b610257565b6040516100b99190610eb2565b610095610112366004610d69565b610274565b34801561012357600080fd5b50610095610132366004610d69565b610437565b34801561014357600080fd5b50610095610152366004610c75565b6105d3565b34801561016357600080fd5b50610177610172366004610cc9565b6106d6565b6040516100b99190610e41565b61018c61093a565b6001600160a01b031661019d610230565b6001600160a01b0316146101e6576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b600260209081526000928352604080842090915290825290205481565b61027c61093a565b6001600160a01b031661028d610230565b6001600160a01b0316146102d6576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6000805b828110156103eb576103648484838181106102f157fe5b9050604002016020013560026000886001600160a01b03166001600160a01b03168152602001908152602001600020600087878681811061032e57fe5b6103449260206040909202019081019150610c75565b6001600160a01b031681526020810191909152604001600020549061093e565b6001600160a01b03861660009081526002602052604081209086868581811061038957fe5b61039f9260206040909202019081019150610c75565b6001600160a01b031681526020810191909152604001600020556103e18484838181106103c857fe5b905060400201602001358361093e90919063ffffffff16565b91506001016102da565b506103f6848261099f565b847f726333e247399631219bef1164182fc3620e4d04f7fdf79cd4fc5db391562c098583604051610428929190610e28565b60405180910390a25050505050565b61043f61093a565b6001600160a01b0316610450610230565b6001600160a01b031614610499576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6000805b82811015610595576105278484838181106104b457fe5b9050604002016020013560026000886001600160a01b03166001600160a01b0316815260200190815260200160002060008787868181106104f157fe5b6105079260206040909202019081019150610c75565b6001600160a01b0316815260208101919091526040016000205490610a79565b6001600160a01b03861660009081526002602052604081209086868581811061054c57fe5b6105629260206040909202019081019150610c75565b6001600160a01b0316815260208101919091526040016000205561058b8484838181106103c857fe5b915060010161049d565b506105a1848233610ad6565b847fcdcbc26867390707c6f8e4d637be4990bf4eec376d4a2d474e9892dc7d1dba7b8583604051610428929190610e28565b6105db61093a565b6001600160a01b03166105ec610230565b6001600160a01b031614610635576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6001600160a01b03811661067a5760405162461bcd60e51b8152600401808060200182810382526026815260200180610ed46026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b606060026000541415610730576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055828067ffffffffffffffff8111801561074d57600080fd5b50604051908082528060200260200182016040528015610777578160200160208202803683370190505b50915060005b8181101561092c576002600087878481811061079557fe5b90506020020160208101906107aa9190610c75565b6001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b03168152602001908152602001600020548382815181106107fa57fe5b60200260200101818152505082818151811061081257fe5b60200260200101516000141561082757610924565b60006002600088888581811061083957fe5b905060200201602081019061084e9190610c75565b6001600160a01b03908116825260208083019390935260409182016000908120918916815292529020556108b686868381811061088757fe5b905060200201602081019061089c9190610c75565b8483815181106108a857fe5b602002602001015186610ad6565b337f98156fd1dc162f7b90037a041f959d71a7b6559f8c0a4334d3c571524bcb9a508787848181106108e457fe5b90506020020160208101906108f99190610c75565b85848151811061090557fe5b602002602001015160405161091b929190610e28565b60405180910390a25b60010161077d565b505060016000559392505050565b3390565b600082820183811015610998576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156109f1578034146109ec5760405162461bcd60e51b81526004016109e390610e85565b60405180910390fd5b610a75565b6040516323b872dd60e01b81526001600160a01b038316906323b872dd90610a2190339030908690600401610e04565b602060405180830381600087803b158015610a3b57600080fd5b505af1158015610a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a739190610d49565b505b5050565b600082821115610ad0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610b0a57610b058183610b90565b610a73565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610b389084908690600401610e28565b602060405180830381600087803b158015610b5257600080fd5b505af1158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190610d49565b50505050565b80471015610be5576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610c30576040519150601f19603f3d011682016040523d82523d6000602084013e610c35565b606091505b5050905080610a735760405162461bcd60e51b815260040180806020018281038252603a815260200180610efa603a913960400191505060405180910390fd5b600060208284031215610c86578081fd5b813561099881610ebb565b60008060408385031215610ca3578081fd5b8235610cae81610ebb565b91506020830135610cbe81610ebb565b809150509250929050565b600080600060408486031215610cdd578081fd5b833567ffffffffffffffff80821115610cf4578283fd5b818601915086601f830112610d07578283fd5b813581811115610d15578384fd5b8760208083028501011115610d28578384fd5b60209283019550935050840135610d3e81610ebb565b809150509250925092565b600060208284031215610d5a578081fd5b81518015158114610998578182fd5b60008060008060608587031215610d7e578081fd5b843593506020850135610d9081610ebb565b9250604085013567ffffffffffffffff80821115610dac578283fd5b818701915087601f830112610dbf578283fd5b813581811115610dcd578384fd5b886020604083028501011115610de1578384fd5b95989497505060200194505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015610e7957835183529284019291840191600101610e5d565b50909695505050505050565b60208082526013908201527208aa890be829a9eaa9ca8be9a92a69a82a8869606b1b604082015260600190565b90815260200190565b6001600160a01b0381168114610ed057600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d617920686176652072657665727465644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209f44b67b52f24c081a0a374f7d09749b439f1eb7ddfc3c0b58939656ce989e2964736f6c63430007060033",
  "deployedBytecode": "0x60806040526004361061007b5760003560e01c8063bd85cef61161004e578063bd85cef614610104578063e003d24c14610117578063f2fde38b14610137578063f874d8f6146101575761007b565b8063715018a6146100805780638da5cb5b14610097578063a734f06e146100c2578063bbe430de146100d7575b600080fd5b34801561008c57600080fd5b50610095610184565b005b3480156100a357600080fd5b506100ac610230565b6040516100b99190610df0565b60405180910390f35b3480156100ce57600080fd5b506100ac61023f565b3480156100e357600080fd5b506100f76100f2366004610c91565b610257565b6040516100b99190610eb2565b610095610112366004610d69565b610274565b34801561012357600080fd5b50610095610132366004610d69565b610437565b34801561014357600080fd5b50610095610152366004610c75565b6105d3565b34801561016357600080fd5b50610177610172366004610cc9565b6106d6565b6040516100b99190610e41565b61018c61093a565b6001600160a01b031661019d610230565b6001600160a01b0316146101e6576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b600260209081526000928352604080842090915290825290205481565b61027c61093a565b6001600160a01b031661028d610230565b6001600160a01b0316146102d6576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6000805b828110156103eb576103648484838181106102f157fe5b9050604002016020013560026000886001600160a01b03166001600160a01b03168152602001908152602001600020600087878681811061032e57fe5b6103449260206040909202019081019150610c75565b6001600160a01b031681526020810191909152604001600020549061093e565b6001600160a01b03861660009081526002602052604081209086868581811061038957fe5b61039f9260206040909202019081019150610c75565b6001600160a01b031681526020810191909152604001600020556103e18484838181106103c857fe5b905060400201602001358361093e90919063ffffffff16565b91506001016102da565b506103f6848261099f565b847f726333e247399631219bef1164182fc3620e4d04f7fdf79cd4fc5db391562c098583604051610428929190610e28565b60405180910390a25050505050565b61043f61093a565b6001600160a01b0316610450610230565b6001600160a01b031614610499576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6000805b82811015610595576105278484838181106104b457fe5b9050604002016020013560026000886001600160a01b03166001600160a01b0316815260200190815260200160002060008787868181106104f157fe5b6105079260206040909202019081019150610c75565b6001600160a01b0316815260208101919091526040016000205490610a79565b6001600160a01b03861660009081526002602052604081209086868581811061054c57fe5b6105629260206040909202019081019150610c75565b6001600160a01b0316815260208101919091526040016000205561058b8484838181106103c857fe5b915060010161049d565b506105a1848233610ad6565b847fcdcbc26867390707c6f8e4d637be4990bf4eec376d4a2d474e9892dc7d1dba7b8583604051610428929190610e28565b6105db61093a565b6001600160a01b03166105ec610230565b6001600160a01b031614610635576040805162461bcd60e51b81526020600482018190526024820152600080516020610f34833981519152604482015290519081900360640190fd5b6001600160a01b03811661067a5760405162461bcd60e51b8152600401808060200182810382526026815260200180610ed46026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b606060026000541415610730576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055828067ffffffffffffffff8111801561074d57600080fd5b50604051908082528060200260200182016040528015610777578160200160208202803683370190505b50915060005b8181101561092c576002600087878481811061079557fe5b90506020020160208101906107aa9190610c75565b6001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b03168152602001908152602001600020548382815181106107fa57fe5b60200260200101818152505082818151811061081257fe5b60200260200101516000141561082757610924565b60006002600088888581811061083957fe5b905060200201602081019061084e9190610c75565b6001600160a01b03908116825260208083019390935260409182016000908120918916815292529020556108b686868381811061088757fe5b905060200201602081019061089c9190610c75565b8483815181106108a857fe5b602002602001015186610ad6565b337f98156fd1dc162f7b90037a041f959d71a7b6559f8c0a4334d3c571524bcb9a508787848181106108e457fe5b90506020020160208101906108f99190610c75565b85848151811061090557fe5b602002602001015160405161091b929190610e28565b60405180910390a25b60010161077d565b505060016000559392505050565b3390565b600082820183811015610998576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156109f1578034146109ec5760405162461bcd60e51b81526004016109e390610e85565b60405180910390fd5b610a75565b6040516323b872dd60e01b81526001600160a01b038316906323b872dd90610a2190339030908690600401610e04565b602060405180830381600087803b158015610a3b57600080fd5b505af1158015610a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a739190610d49565b505b5050565b600082821115610ad0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610b0a57610b058183610b90565b610a73565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610b389084908690600401610e28565b602060405180830381600087803b158015610b5257600080fd5b505af1158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190610d49565b50505050565b80471015610be5576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610c30576040519150601f19603f3d011682016040523d82523d6000602084013e610c35565b606091505b5050905080610a735760405162461bcd60e51b815260040180806020018281038252603a815260200180610efa603a913960400191505060405180910390fd5b600060208284031215610c86578081fd5b813561099881610ebb565b60008060408385031215610ca3578081fd5b8235610cae81610ebb565b91506020830135610cbe81610ebb565b809150509250929050565b600080600060408486031215610cdd578081fd5b833567ffffffffffffffff80821115610cf4578283fd5b818601915086601f830112610d07578283fd5b813581811115610d15578384fd5b8760208083028501011115610d28578384fd5b60209283019550935050840135610d3e81610ebb565b809150509250925092565b600060208284031215610d5a578081fd5b81518015158114610998578182fd5b60008060008060608587031215610d7e578081fd5b843593506020850135610d9081610ebb565b9250604085013567ffffffffffffffff80821115610dac578283fd5b818701915087601f830112610dbf578283fd5b813581811115610dcd578384fd5b886020604083028501011115610de1578384fd5b95989497505060200194505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015610e7957835183529284019291840191600101610e5d565b50909695505050505050565b60208082526013908201527208aa890be829a9eaa9ca8be9a92a69a82a8869606b1b604082015260600190565b90815260200190565b6001600160a01b0381168114610ed057600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d617920686176652072657665727465644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209f44b67b52f24c081a0a374f7d09749b439f1eb7ddfc3c0b58939656ce989e2964736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
