UNPKG

@pollum-io/pegasys-protocol

Version:

Contracts for the Pegasys Dex.

203 lines (202 loc) 25.7 kB
{ "_format": "hh-sol-artifact-1", "contractName": "RewarderViaMultiplier", "sourceName": "contracts/earn/RewarderViaMultiplier.sol", "abi": [ { "inputs": [ { "internalType": "contract IERC20[]", "name": "_rewardTokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "_rewardMultipliers", "type": "uint256[]" }, { "internalType": "uint256", "name": "_baseRewardTokenDecimals", "type": "uint256" }, { "internalType": "address", "name": "_chefV2", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "getRewardMultipliers", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardTokens", "outputs": [ { "internalType": "contract IERC20[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "rewardAmount", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "onReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "rewardAmount", "type": "uint256" } ], "name": "pendingTokens", "outputs": [ { "internalType": "contract IERC20[]", "name": "tokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "rewardAmount", "type": "uint256" } ], "name": "pendingTokensDebt", "outputs": [ { "internalType": "contract IERC20[]", "name": "tokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardMultipliers", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardTokens", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60c06040523480156200001157600080fd5b506040516200184438038062001844833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660208202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620000c6578082015181840152602081019050620000a9565b5050505090500160405260200180516040519392919084640100000000821115620000f057600080fd5b838201915060208201858111156200010757600080fd5b82518660208202830111640100000000821117156200012557600080fd5b8083526020830192505050908051906020019060200280838360005b838110156200015e57808201518184015260208101905062000141565b505050509050016040526020018051906020019092919080519060200190929190505050600084511180156200019657506064845111155b8015620001a4575082518451145b620001fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180620017c4602c913960400191505060405180910390fd5b604d82111562000257576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806200175a6039913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620002df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180620017f0602b913960400191505060405180910390fd5b60005b84518110156200040357600073ffffffffffffffffffffffffffffffffffffffff168582815181106200031157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141562000388576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180620017936031913960400191505060405180910390fd5b60008482815181106200039757fe5b602002602001015111620003f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806200181b6029913960400191505060405180910390fd5b806001019050620002e2565b5083600090805190602001906200041c92919062000482565b5082600190805190602001906200043592919062000511565b5081600a0a60a081815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050505050620005bf565b828054828255906000526020600020908101928215620004fe579160200282015b82811115620004fd5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620004a3565b5b5090506200050d919062000563565b5090565b82805482825590600052602060002090810192821562000550579160200282015b828111156200054f57825182559160200191906001019062000532565b5b5090506200055f9190620005a0565b5090565b5b808211156200059c57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000564565b5090565b5b80821115620005bb576000816000905550600101620005a1565b5090565b60805160601c60a05161116a620005f06000398061055952806109ce5280610ca95250806104a0525061116a6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063981962a71161005b578063981962a7146101bb578063c4f59f9b146101fd578063d63b3c491461025c578063f2f3e82d146103515761007d565b806337e211ba1461008257806344af0fa7146100e15780637bb7bed114610163575b600080fd5b61008a610446565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156100cd5780820151818401526020810190506100b2565b505050509050019250505060405180910390f35b610161600480360360a08110156100f757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061049e565b005b61018f6004803603602081101561017957600080fd5b810190808035906020019092919050505061087b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e7600480360360208110156101d157600080fd5b81019080803590602001909291905050506108b7565b6040518082815260200191505060405180910390f35b6102056108d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561024857808201518184015260208101905061022d565b505050509050019250505060405180910390f35b6102b26004803603606081101561027257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610966565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156102f95780820151818401526020810190506102de565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561033b578082015181840152602081019050610320565b5050505090500194505050505060405180910390f35b6103a76004803603606081101561036757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c41565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156103ee5780820151818401526020810190506103d3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610430578082015181840152602081019050610415565b5050505090500194505050505060405180910390f35b6060600180548060200260200160405190810160405280929190818152602001828054801561049457602002820191906000526020600020905b815481526020019060010190808311610480575b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806111146021913960400191505060405180910390fd5b60005b6000805490508110156108735760006106097f00000000000000000000000000000000000000000000000000000000000000006105a26001858154811061058857fe5b906000526020600020015487610e1890919063ffffffff16565b816105a957fe5b04600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002054610ead90919063ffffffff16565b9050600080838154811061061957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d60208110156106d457600080fd5b81019080805190602001909291905050509050808211156107ad57808203600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020819055506107a886826000868154811061075857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f309092919063ffffffff16565b610866565b6000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000208190555061086586836000868154811061081557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f309092919063ffffffff16565b5b5050806001019050610545565b505050505050565b6000818154811061088857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600181815481106108c457fe5b906000526020600020016000915090505481565b6060600080548060200260200160405190810160405280929190818152602001828054801561095c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610912575b5050505050905090565b60608060008054905067ffffffffffffffff8111801561098557600080fd5b506040519080825280602002602001820160405280156109b45781602001602082028036833780820191505090505b50905060005b600080549050811015610ba9576000610a7e7f0000000000000000000000000000000000000000000000000000000000000000610a17600185815481106109fd57fe5b906000526020600020015488610e1890919063ffffffff16565b81610a1e57fe5b04600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002054610ead90919063ffffffff16565b90506000808381548110610a8e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b1f57600080fd5b505afa158015610b33573d6000803e3d6000fd5b505050506040513d6020811015610b4957600080fd5b8101908080519060200190929190505050905080821115610b825780848481518110610b7157fe5b602002602001018181525050610b9c565b81848481518110610b8f57fe5b6020026020010181815250505b50508060010190506109ba565b5060008181805480602002602001604051908101604052809291908181526020018280548015610c2e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610be4575b5050505050915091509150935093915050565b60608060008054905067ffffffffffffffff81118015610c6057600080fd5b50604051908082528060200260200182016040528015610c8f5781602001602082028036833780820191505090505b50905060005b600080549050811015610d80576000610d597f0000000000000000000000000000000000000000000000000000000000000000610cf260018581548110610cd857fe5b906000526020600020015488610e1890919063ffffffff16565b81610cf957fe5b04600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002054610ead90919063ffffffff16565b905080838381518110610d6857fe5b60200260200101818152505050806001019050610c95565b5060008181805480602002602001604051908101604052809291908181526020018280548015610e0557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610dbb575b5050505050915091509150935093915050565b600080821480610e355750828283850292508281610e3257fe5b04145b610ea7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426f72696e674d6174683a204d756c204f766572666c6f77000000000000000081525060200191505060405180910390fd5b92915050565b6000818284019150811015610f2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426f72696e674d6174683a20416464204f766572666c6f77000000000000000081525060200191505060405180910390fd5b92915050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610ff35780518252602082019150602081019050602083039250610fd0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611055576040519150601f19603f3d011682016040523d82523d6000602084013e61105a565b606091505b509150915081801561109a5750600081511480611099575080806020019051602081101561108757600080fd5b81019080805190602001909291905050505b5b61110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f426f72696e6745524332303a205472616e73666572206661696c65640000000081525060200191505060405180910390fd5b505050505056fe4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e2ea2646970667358221220a8047abfb475861d22e5d5f2fceaf90a1a94eed139d9f2daf3930eb1b2ab2b6d64736f6c634300060c003352657761726465725669614d756c7469706c6965723a3a496e76616c696420626173652072657761726420746f6b656e20646563696d616c7352657761726465725669614d756c7469706c6965723a3a43616e6e6f7420726577617264207a65726f206164647265737352657761726465725669614d756c7469706c6965723a3a496e76616c696420696e707574206c656e6774687352657761726465725669614d756c7469706c6965723a3a496e76616c69642063686566206164647265737352657761726465725669614d756c7469706c6965723a3a496e76616c6964206d756c7469706c696572", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063981962a71161005b578063981962a7146101bb578063c4f59f9b146101fd578063d63b3c491461025c578063f2f3e82d146103515761007d565b806337e211ba1461008257806344af0fa7146100e15780637bb7bed114610163575b600080fd5b61008a610446565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156100cd5780820151818401526020810190506100b2565b505050509050019250505060405180910390f35b610161600480360360a08110156100f757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061049e565b005b61018f6004803603602081101561017957600080fd5b810190808035906020019092919050505061087b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e7600480360360208110156101d157600080fd5b81019080803590602001909291905050506108b7565b6040518082815260200191505060405180910390f35b6102056108d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561024857808201518184015260208101905061022d565b505050509050019250505060405180910390f35b6102b26004803603606081101561027257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610966565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156102f95780820151818401526020810190506102de565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561033b578082015181840152602081019050610320565b5050505090500194505050505060405180910390f35b6103a76004803603606081101561036757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c41565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156103ee5780820151818401526020810190506103d3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610430578082015181840152602081019050610415565b5050505090500194505050505060405180910390f35b6060600180548060200260200160405190810160405280929190818152602001828054801561049457602002820191906000526020600020905b815481526020019060010190808311610480575b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806111146021913960400191505060405180910390fd5b60005b6000805490508110156108735760006106097f00000000000000000000000000000000000000000000000000000000000000006105a26001858154811061058857fe5b906000526020600020015487610e1890919063ffffffff16565b816105a957fe5b04600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002054610ead90919063ffffffff16565b9050600080838154811061061957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d60208110156106d457600080fd5b81019080805190602001909291905050509050808211156107ad57808203600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020819055506107a886826000868154811061075857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f309092919063ffffffff16565b610866565b6000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000208190555061086586836000868154811061081557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f309092919063ffffffff16565b5b5050806001019050610545565b505050505050565b6000818154811061088857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600181815481106108c457fe5b906000526020600020016000915090505481565b6060600080548060200260200160405190810160405280929190818152602001828054801561095c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610912575b5050505050905090565b60608060008054905067ffffffffffffffff8111801561098557600080fd5b506040519080825280602002602001820160405280156109b45781602001602082028036833780820191505090505b50905060005b600080549050811015610ba9576000610a7e7f0000000000000000000000000000000000000000000000000000000000000000610a17600185815481106109fd57fe5b906000526020600020015488610e1890919063ffffffff16565b81610a1e57fe5b04600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002054610ead90919063ffffffff16565b90506000808381548110610a8e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b1f57600080fd5b505afa158015610b33573d6000803e3d6000fd5b505050506040513d6020811015610b4957600080fd5b8101908080519060200190929190505050905080821115610b825780848481518110610b7157fe5b602002602001018181525050610b9c565b81848481518110610b8f57fe5b6020026020010181815250505b50508060010190506109ba565b5060008181805480602002602001604051908101604052809291908181526020018280548015610c2e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610be4575b5050505050915091509150935093915050565b60608060008054905067ffffffffffffffff81118015610c6057600080fd5b50604051908082528060200260200182016040528015610c8f5781602001602082028036833780820191505090505b50905060005b600080549050811015610d80576000610d597f0000000000000000000000000000000000000000000000000000000000000000610cf260018581548110610cd857fe5b906000526020600020015488610e1890919063ffffffff16565b81610cf957fe5b04600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002054610ead90919063ffffffff16565b905080838381518110610d6857fe5b60200260200101818152505050806001019050610c95565b5060008181805480602002602001604051908101604052809291908181526020018280548015610e0557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610dbb575b5050505050915091509150935093915050565b600080821480610e355750828283850292508281610e3257fe5b04145b610ea7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426f72696e674d6174683a204d756c204f766572666c6f77000000000000000081525060200191505060405180910390fd5b92915050565b6000818284019150811015610f2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f426f72696e674d6174683a20416464204f766572666c6f77000000000000000081525060200191505060405180910390fd5b92915050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610ff35780518252602082019150602081019050602083039250610fd0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611055576040519150601f19603f3d011682016040523d82523d6000602084013e61105a565b606091505b509150915081801561109a5750600081511480611099575080806020019051602081101561108757600080fd5b81019080805190602001909291905050505b5b61110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f426f72696e6745524332303a205472616e73666572206661696c65640000000081525060200191505060405180910390fd5b505050505056fe4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e2ea2646970667358221220a8047abfb475861d22e5d5f2fceaf90a1a94eed139d9f2daf3930eb1b2ab2b6d64736f6c634300060c0033", "linkReferences": {}, "deployedLinkReferences": {} }