{
  "contractName": "AaveV2StakedTokenIncentivesController",
  "abi": [{"inputs":[{"internalType":"contract IStakedTokenWithConfig","name":"stakeToken","type":"address"},{"internalType":"address","name":"emissionManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"}],"name":"AssetConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"AssetIndexUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"}],"name":"ClaimerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDistributionEnd","type":"uint256"}],"name":"DistributionEndUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsAccrued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"UserIndexUpdated","type":"event"},{"inputs":[],"name":"DISTRIBUTION_END","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMISSION_MANAGER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REVISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REWARD_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKE_TOKEN","outputs":[{"internalType":"contract IStakedTokenWithConfig","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"assets","outputs":[{"internalType":"uint104","name":"emissionPerSecond","type":"uint104"},{"internalType":"uint104","name":"index","type":"uint104"},{"internalType":"uint40","name":"lastUpdateTimestamp","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"claimRewardsOnBehalf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"emissionsPerSecond","type":"uint256[]"}],"name":"configureAssets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getAssetData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getClaimer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDistributionEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"address","name":"user","type":"address"}],"name":"getRewardsBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"asset","type":"address"}],"name":"getUserAssetData","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserUnclaimedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"}],"name":"handleAction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressesProvider","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"caller","type":"address"}],"name":"setClaimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"distributionEnd","type":"uint256"}],"name":"setDistributionEnd","outputs":[],"stateMutability":"nonpayable","type":"function"}],
  "bytecode": "60c0604052600080553480156200001557600080fd5b5060405162001e7138038062001e71833981016040819052620000389162000058565b6001600160601b0319606091821b811660805291901b1660a052620000af565b600080604083850312156200006b578182fd5b8251620000788162000096565b60208401519092506200008b8162000096565b809150509250929050565b6001600160a01b0381168114620000ac57600080fd5b50565b60805160601c60a05160601c611d75620000fc6000398061030552806109a85280610a275280610a4b5280610e49525080610442528061058d5280610af05280610b595250611d756000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638b599f26116100ad578063cbcbb50711610071578063cbcbb50714610263578063cc69afec1461022b578063dde43cba1461026b578063f11b818814610273578063f5cf673b146102955761012c565b80638b599f2614610218578063919cd40f1461022b57806399248ea714610233578063aaf5eb681461023b578063c4d66de8146102505761012c565b80633373ee4c116100f45780633373ee4c146101b957806339ccbdd3146101cc5780636d34b96e146101df57806374d945ec146101f257806379f171b2146102055761012c565b80631652e7b714610131578063198fa81e1461015c5780631c39b6721461017c5780633111e7b31461019157806331873e2e146101a4575b600080fd5b61014461013f36600461186f565b6102a8565b60405161015393929190611c75565b60405180910390f35b61016f61016a36600461186f565b6102e8565b6040516101539190611c6c565b610184610303565b6040516101539190611af3565b61016f61019f3660046119d1565b610327565b6101b76101b23660046118df565b610371565b005b61016f6101c73660046118a7565b610406565b6101b76101da366004611aa0565b610437565b61016f6101ed366004611a2e565b6104bf565b61018461020036600461186f565b610564565b6101b7610213366004611968565b610582565b61016f610226366004611913565b6107e7565b61016f6109a0565b6101846109a6565b6102436109ca565b6040516101539190611c8b565b6101b761025e36600461186f565b6109cf565b610184610aee565b61016f610b12565b61028661028136600461186f565b610b17565b60405161015393929190611c42565b6101b76102a33660046118a7565b610b4e565b6001600160a01b0316600090815260336020526040902054600160681b81046001600160681b039081169290821691600160d01b900464ffffffffff1690565b6001600160a01b031660009081526035602052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b0382166103585760405162461bcd60e51b815260040161034f90611b4e565b60405180910390fd5b610366858585333387610bed565b90505b949350505050565b600061037f84338486610f17565b90508015610400576001600160a01b0384166000908152603560205260409020546103aa9082610fd6565b6001600160a01b038516600081815260356020526040908190209290925590517f2468f9268c60ad90e2d49edb0032c8a001e733ae888b3ab8e982edf535be1a76906103f7908490611c6c565b60405180910390a25b50505050565b6001600160a01b03808216600090815260336020908152604080832093861683526001909301905220545b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461047f5760405162461bcd60e51b815260040161034f90611bd1565b60348190556040517f1cc1849a6602c3e91f2088cadea4381cc5717f2f28584197060ed2ebb434c16f906104b4908390611c6c565b60405180910390a150565b6001600160a01b038083166000908152603660205260408120549091339185911682146104fe5760405162461bcd60e51b815260040161034f90611c00565b6001600160a01b0385166105245760405162461bcd60e51b815260040161034f90611b20565b6001600160a01b03841661054a5760405162461bcd60e51b815260040161034f90611b4e565b610558888888338989610bed565b98975050505050505050565b6001600160a01b039081166000908152603660205260409020541690565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105ca5760405162461bcd60e51b815260040161034f90611bd1565b8281146105e95760405162461bcd60e51b815260040161034f90611b7a565b60608367ffffffffffffffff8111801561060257600080fd5b5060405190808252806020026020018201604052801561063c57816020015b6106296117dc565b8152602001906001900390816106215790505b50905060005b848110156107d65785858281811061065657fe5b905060200201602081019061066b919061186f565b82828151811061067757fe5b6020026020010151604001906001600160a01b031690816001600160a01b0316815250508383828181106106a757fe5b905060200201358282815181106106ba57fe5b60209081029190910101516001600160681b0390911690528383828181106106de57fe5b905060200201358282815181106106f157fe5b6020026020010151600001516001600160681b0316146107235760405162461bcd60e51b815260040161034f90611b7a565b85858281811061072f57fe5b9050602002016020810190610744919061186f565b6001600160a01b031663b1bf962d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561077c57600080fd5b505afa158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b49190611ab8565b8282815181106107c057fe5b6020908102919091018101510152600101610642565b506107e081610fe6565b5050505050565b6001600160a01b03811660009081526035602052604081205460608467ffffffffffffffff8111801561081957600080fd5b5060405190808252806020026020018201604052801561085357816020015b6108406117fc565b8152602001906001900390816108385790505b50905060005b8581101561097f5786868281811061086d57fe5b9050602002016020810190610882919061186f565b82828151811061088e57fe5b60209081029190910101516001600160a01b0390911690528686828181106108b257fe5b90506020020160208101906108c7919061186f565b6001600160a01b0316630afbcdc9866040518263ffffffff1660e01b81526004016108f29190611af3565b604080518083038186803b15801561090957600080fd5b505afa15801561091d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109419190611ad0565b83838151811061094d57fe5b602002602001015160200184848151811061096457fe5b60209081029190910101516040019190915252600101610859565b5061099461098d858361111e565b8390610fd6565b925050505b9392505050565b60345490565b7f000000000000000000000000000000000000000000000000000000000000000090565b601281565b60006109d961121c565b90506000548111610a1b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611cb2602e913960400191505060405180910390fd5b80600081905550610aea7f00000000000000000000000000000000000000000000000000000000000000006000197f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663312f6b836040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa257600080fd5b505afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada919061188b565b6001600160a01b03169190611221565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600181565b6033602052600090815260409020546001600160681b0380821691600160681b810490911690600160d01b900464ffffffffff1683565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b965760405162461bcd60e51b815260040161034f90611bd1565b6001600160a01b0382811660008181526036602052604080822080546001600160a01b0319169486169485179055517f4925eafc82d0c4d67889898eeed64b18488ab19811e61620f387026dec126a289190a35050565b600084610bfc57506000610f0d565b6001600160a01b03831660009081526035602052604090205460608767ffffffffffffffff81118015610c2e57600080fd5b50604051908082528060200260200182016040528015610c6857816020015b610c556117fc565b815260200190600190039081610c4d5790505b50905060005b88811015610d9457898982818110610c8257fe5b9050602002016020810190610c97919061186f565b828281518110610ca357fe5b60209081029190910101516001600160a01b039091169052898982818110610cc757fe5b9050602002016020810190610cdc919061186f565b6001600160a01b0316630afbcdc9876040518263ffffffff1660e01b8152600401610d079190611af3565b604080518083038186803b158015610d1e57600080fd5b505afa158015610d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d569190611ad0565b838381518110610d6257fe5b6020026020010151602001848481518110610d7957fe5b60209081029190910101516040019190915252600101610c6e565b506000610da18683611339565b90508015610df757610db38382610fd6565b9250856001600160a01b03167f2468f9268c60ad90e2d49edb0032c8a001e733ae888b3ab8e982edf535be1a7682604051610dee9190611c6c565b60405180910390a25b82610e085760009350505050610f0d565b6000838911610e175788610e19565b835b6001600160a01b03808916600090815260356020526040908190208388039055516356e4bb9760e11b81529192507f0000000000000000000000000000000000000000000000000000000000000000169063adc9772e90610e809089908590600401611b07565b600060405180830381600087803b158015610e9a57600080fd5b505af1158015610eae573d6000803e3d6000fd5b50505050876001600160a01b0316866001600160a01b0316886001600160a01b03167f5637d7f962248a7f05a7ab69eec6446e31f3d0a299d997f135a65c62806e789184604051610eff9190611c6c565b60405180910390a493505050505b9695505050505050565b6001600160a01b0380841660009081526033602090815260408083209388168352600184019091528120549091908280610f528885886113a5565b9050808314610fca578615610f6f57610f6c8782856114d5565b91505b6001600160a01b03808a1660008181526001870160205260409081902084905551918a16917fbb123b5c06d5408bbea3c4fef481578175cfb432e3b482c6186f02ed9086585b90610fc1908590611c6c565b60405180910390a35b50979650505050505050565b8082018281101561043157600080fd5b60005b8151811015610aea5760006033600084848151811061100457fe5b6020026020010151604001516001600160a01b03166001600160a01b03168152602001908152602001600020905061106b83838151811061104157fe5b6020026020010151604001518285858151811061105a57fe5b6020026020010151602001516113a5565b5082828151811061107857fe5b60209081029190910101515181546cffffffffffffffffffffffffff19166001600160681b0390911617815582518390839081106110b257fe5b6020026020010151604001516001600160a01b03167f87fa03892a0556cb6b8f97e6d533a150d4d55fcbf275fff5fa003fa636bcc7fa8484815181106110f457fe5b60200260200101516000015160405161110d9190611c2e565b60405180910390a250600101610fe9565b600080805b83518110156112145760006033600086848151811061113e57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000908120805487519193506111b391600160681b82046001600160681b039081169290811691600160d01b90910464ffffffffff16908a90889081106111a257fe5b602002602001015160400151611504565b90506112086112018785815181106111c757fe5b602002602001015160200151838560010160008c6001600160a01b03166001600160a01b03168152602001908152602001600020546114d5565b8590610fd6565b93505050600101611123565b509392505050565b600190565b8015806112a7575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561127957600080fd5b505afa15801561128d573d6000803e3d6000fd5b505050506040513d60208110156112a357600080fd5b5051155b6112e25760405162461bcd60e51b8152600401808060200182810382526036815260200180611d0a6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526113349084906115a4565b505050565b600080805b83518110156112145761139b61098d8686848151811061135a57fe5b60200260200101516000015187858151811061137257fe5b60200260200101516020015188868151811061138a57fe5b602002602001015160400151610f17565b915060010161133e565b81546000906001600160681b03600160681b82048116919081169064ffffffffff600160d01b90910416428114156113e257829350505050610999565b60006113f084848489611504565b90508381146114ab5780816001600160681b0316146114215760405162461bcd60e51b815260040161034f90611ba9565b86546cffffffffffffffffffffffffff60681b1916600160681b6001600160681b038316021764ffffffffff60d01b1916600160d01b4264ffffffffff16021787556040516001600160a01b038916907f5777ca300dfe5bead41006fbce4389794dbc0ed8d6cccebfaf94630aa04184bc9061149e908490611c6c565b60405180910390a26114ca565b865464ffffffffff60d01b1916600160d01b4264ffffffffff16021787555b979650505050505050565b6000670de0b6b3a76400006114f46114ed858561175c565b869061176c565b816114fb57fe5b04949350505050565b603454600090841580611515575082155b80611528575042846001600160801b0316145b8061153c575080846001600160801b031610155b1561154a5785915050610369565b6000814211611559574261155b565b815b90506000611572826001600160801b03881661175c565b90506105588861159e87611598670de0b6b3a76400006115928d8861176c565b9061176c565b90611790565b90610fd6565b6115b6826001600160a01b03166117a3565b611607576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106116455780518252601f199092019160209182019101611626565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116a7576040519150601f19603f3d011682016040523d82523d6000602084013e6116ac565b606091505b509150915081611703576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156104005780806020019051602081101561171f57600080fd5b50516104005760405162461bcd60e51b815260040180806020018281038252602a815260200180611ce0602a913960400191505060405180910390fd5b8082038281111561043157600080fd5b60008215806117875750508181028183828161178457fe5b04145b61043157600080fd5b600081838161179b57fe5b049392505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610369575050151592915050565b604080516060810182526000808252602082018190529181019190915290565b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b60008083601f840112611837578182fd5b50813567ffffffffffffffff81111561184e578182fd5b602083019150836020808302850101111561186857600080fd5b9250929050565b600060208284031215611880578081fd5b813561099981611c99565b60006020828403121561189c578081fd5b815161099981611c99565b600080604083850312156118b9578081fd5b82356118c481611c99565b915060208301356118d481611c99565b809150509250929050565b6000806000606084860312156118f3578081fd5b83356118fe81611c99565b95602085013595506040909401359392505050565b600080600060408486031215611927578283fd5b833567ffffffffffffffff81111561193d578384fd5b61194986828701611826565b909450925050602084013561195d81611c99565b809150509250925092565b6000806000806040858703121561197d578081fd5b843567ffffffffffffffff80821115611994578283fd5b6119a088838901611826565b909650945060208701359150808211156119b8578283fd5b506119c587828801611826565b95989497509550505050565b600080600080606085870312156119e6578384fd5b843567ffffffffffffffff8111156119fc578485fd5b611a0887828801611826565b909550935050602085013591506040850135611a2381611c99565b939692955090935050565b600080600080600060808688031215611a45578081fd5b853567ffffffffffffffff811115611a5b578182fd5b611a6788828901611826565b909650945050602086013592506040860135611a8281611c99565b91506060860135611a9281611c99565b809150509295509295909350565b600060208284031215611ab1578081fd5b5035919050565b600060208284031215611ac9578081fd5b5051919050565b60008060408385031215611ae2578182fd5b505080516020909101519092909150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b602080825260149082015273494e56414c49445f555345525f4144445245535360601b604082015260600190565b602080825260129082015271494e56414c49445f544f5f4144445245535360701b604082015260600190565b60208082526015908201527424a72b20a624a22fa1a7a72324a3aaa920aa24a7a760591b604082015260600190565b6020808252600e908201526d496e646578206f766572666c6f7760901b604082015260600190565b60208082526015908201527427a7262cafa2a6a4a9a9a4a7a72fa6a0a720a3a2a960591b604082015260600190565b60208082526014908201527310d3105253515497d5539055551213d49256915160621b604082015260600190565b6001600160681b0391909116815260200190565b6001600160681b03938416815291909216602082015264ffffffffff909116604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114611cae57600080fd5b5056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220d94e1a7bc1c2da8e7f89644f4c7824cbb4d6c28be01bda08c043c6db1633574f64736f6c63430007050033",
  "deployedBytecode": "",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
