Skip to content

Instantly share code, notes, and snippets.

@KeKs0r
Created February 23, 2023 17:36
Show Gist options
  • Save KeKs0r/84d77cfa8c4fdcfc22e2fef93b5bfda6 to your computer and use it in GitHub Desktop.
Save KeKs0r/84d77cfa8c4fdcfc22e2fef93b5bfda6 to your computer and use it in GitHub Desktop.
essenstial eth abis
export default {
_format: "hh-sol-artifact-1",
contractName: "ComplexRewarderTime",
sourceName: "contracts/ComplexRewarderTime.sol",
abi: [
{
inputs: [
{
internalType: "contract IERC20",
name: "_rewardToken",
type: "address",
},
{
internalType: "uint256",
name: "_rewardPerSecond",
type: "uint256",
},
{
internalType: "address",
name: "_MASTERCHEF_V2",
type: "address",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{
anonymous: false,
inputs: [],
name: "LogInit",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "user",
type: "address",
},
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "LogOnReward",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "allocPoint",
type: "uint256",
},
],
name: "LogPoolAddition",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "rewardPerSecond",
type: "uint256",
},
],
name: "LogRewardPerSecond",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "allocPoint",
type: "uint256",
},
],
name: "LogSetPool",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint64",
name: "lastRewardTime",
type: "uint64",
},
{
indexed: false,
internalType: "uint256",
name: "lpSupply",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "accDiffusionPerShare",
type: "uint256",
},
],
name: "LogUpdatePool",
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: "uint256",
name: "allocPoint",
type: "uint256",
},
{
internalType: "uint256",
name: "_pid",
type: "uint256",
},
],
name: "add",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "claimOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256[]",
name: "pids",
type: "uint256[]",
},
],
name: "massUpdatePools",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "address",
name: "_user",
type: "address",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "",
type: "uint256",
},
{
internalType: "uint256",
name: "lpToken",
type: "uint256",
},
],
name: "onDiffusionReward",
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: "uint256",
name: "_pid",
type: "uint256",
},
{
internalType: "address",
name: "_user",
type: "address",
},
],
name: "pendingToken",
outputs: [
{
internalType: "uint256",
name: "pending",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "address",
name: "user",
type: "address",
},
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "pendingTokens",
outputs: [
{
internalType: "contract IERC20[]",
name: "rewardTokens",
type: "address[]",
},
{
internalType: "uint256[]",
name: "rewardAmounts",
type: "uint256[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "poolIds",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "poolInfo",
outputs: [
{
internalType: "uint128",
name: "accDiffusionPerShare",
type: "uint128",
},
{
internalType: "uint64",
name: "lastRewardTime",
type: "uint64",
},
{
internalType: "uint64",
name: "allocPoint",
type: "uint64",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "poolLength",
outputs: [
{
internalType: "uint256",
name: "pools",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "address payable",
name: "to",
type: "address",
},
],
name: "reclaimTokens",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "rewardPerSecond",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_pid",
type: "uint256",
},
{
internalType: "uint256",
name: "_allocPoint",
type: "uint256",
},
],
name: "set",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_rewardPerSecond",
type: "uint256",
},
],
name: "setRewardPerSecond",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "totalAllocPoint",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
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",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
],
name: "updatePool",
outputs: [
{
components: [
{
internalType: "uint128",
name: "accDiffusionPerShare",
type: "uint128",
},
{
internalType: "uint64",
name: "lastRewardTime",
type: "uint64",
},
{
internalType: "uint64",
name: "allocPoint",
type: "uint64",
},
],
internalType: "struct ComplexRewarderTime.PoolInfo",
name: "pool",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
{
internalType: "address",
name: "",
type: "address",
},
],
name: "userInfo",
outputs: [
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "uint256",
name: "rewardDebt",
type: "uint256",
},
{
internalType: "uint256",
name: "unpaidRewards",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
],
bytecode:
"0x60c06040523480156200001157600080fd5b5060405162001b7638038062001b7683398101604081905262000034916200009e565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160601b0319606093841b811660805260069290925590911b1660a0526001600755620000fe565b600080600060608486031215620000b3578283fd5b8351620000c081620000e5565b602085015160408601519194509250620000da81620000e5565b809150509250925092565b6001600160a01b0381168114620000fb57600080fd5b50565b60805160601c60a05160601c611a2b6200014b6000398061054b52806105e0528061086052806108f55280610edb525080610e2a5280610fbd528061106e52806110af5250611a2b6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806366da5815116100ad57806393f1a40b1161007157806393f1a40b1461023a578063c1ea38681461025c578063d63b3c491461026f578063e30c397814610290578063ef0864e61461029857610121565b806366da5815146101e457806369883b4e146101f7578063771602f71461020a5780638da5cb5b1461021d5780638f10369a1461023257610121565b80631ab06ee5116100f45780631ab06ee51461018357806348e43af4146101965780634e71e0c8146101a957806351eb05a6146101b157806357a5b58c146101d157610121565b8063078dfbe714610126578063081e3eda1461013b5780631526fe271461015957806317caf6f11461017b575b600080fd5b610139610134366004611387565b6102ab565b005b61014361039a565b6040516101509190611986565b60405180910390f35b61016c6101673660046114b4565b6103a0565b6040516101509392919061195c565b6101436103d7565b61013961019136600461159b565b6103dd565b6101436101a43660046114e4565b6104bc565b61013961075a565b6101c46101bf3660046114b4565b6107e7565b6040516101509190611923565b6101396101df366004611407565b610ae5565b6101396101f23660046114b4565b610b1b565b6101436102053660046114b4565b610b85565b61013961021836600461159b565b610ba3565b610225610d39565b60405161015091906115fd565b610143610d48565b61024d6102483660046114e4565b610d4e565b6040516101509392919061198f565b61013961026a3660046113d1565b610d7a565b61028261027d366004611564565b610e02565b60405161015092919061162a565b610225610ec1565b6101396102a6366004611513565b610ed0565b6000546001600160a01b031633146102de5760405162461bcd60e51b81526004016102d59061182b565b60405180910390fd5b8115610379576001600160a01b0383161515806102f85750805b6103145760405162461bcd60e51b81526004016102d59061178e565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055610395565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b6002602052600090815260409020546001600160801b038116906001600160401b03600160801b8204811691600160c01b90041683565b60055481565b6000546001600160a01b031633146104075760405162461bcd60e51b81526004016102d59061182b565b60008281526002602052604090205460055461043e91839161043891600160c01b90046001600160401b0316611171565b9061119a565b60055561044a816111bd565b6000838152600260205260409081902080546001600160401b0393909316600160c01b026001600160c01b03909316929092179091555182907f942cc7e17a17c164bd977f32ab8c54265d5b9d481e4e352bf874f1e568874e7c906104b0908490611986565b60405180910390a25050565b60006104c6611367565b506000838152600260209081526040808320815160608101835290546001600160801b0380821683526001600160401b03600160801b8304811684870152600160c01b9092049091168284015287855260048085528386206001600160a01b03808a1688529552838620835194516378ed5d1f60e01b815293969095949092169391927f0000000000000000000000000000000000000000000000000000000000000000909216916378ed5d1f91610580918b9101611986565b60206040518083038186803b15801561059857600080fd5b505afa1580156105ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d09190611498565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161061b91906115fd565b60206040518083038186803b15801561063357600080fd5b505afa158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b91906114cc565b905083602001516001600160401b03164211801561068857508015155b156107145760006106af85602001516001600160401b03164261117190919063ffffffff16565b905060006005546106e287604001516001600160401b03166106dc600654866111ea90919063ffffffff16565b906111ea565b816106e957fe5b04905061070f836106ff8364e8d4a510006111ea565b8161070657fe5b8691900461119a565b935050505b61074f8360020154610438856001015464e8d4a510006107418789600001546111ea90919063ffffffff16565b8161074857fe5b0490611171565b979650505050505050565b6001546001600160a01b03163381146107855760405162461bcd60e51b81526004016102d590611860565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6107ef611367565b50600081815260026020908152604091829020825160608101845290546001600160801b03811682526001600160401b03600160801b82048116938301849052600160c01b9091041692810192909252421115610ae0576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f90610895908690600401611986565b60206040518083038186803b1580156108ad57600080fd5b505afa1580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611498565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161093091906115fd565b60206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098091906114cc565b90508015610a235760006109aa83602001516001600160401b03164261117190919063ffffffff16565b905060006005546109d785604001516001600160401b03166106dc600654866111ea90919063ffffffff16565b816109de57fe5b049050610a15610a04846109f78464e8d4a510006111ea565b816109fe57fe5b04611221565b85516001600160801b03169061124a565b6001600160801b0316845250505b610a2c426111bd565b6001600160401b03908116602084810191825260008681526002909152604090819020855181549351838801516001600160801b03199095166001600160801b0383161767ffffffffffffffff60801b1916600160801b82881602176001600160c01b0316600160c01b95909616949094029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610ad692909186916119a5565b60405180910390a2505b919050565b8060005b81811015610b1557610b0c848483818110610b0057fe5b905060200201356107e7565b50600101610ae9565b50505050565b6000546001600160a01b03163314610b455760405162461bcd60e51b81526004016102d59061182b565b60068190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610b7a908390611986565b60405180910390a150565b60038181548110610b9257fe5b600091825260209091200154905081565b6000546001600160a01b03163314610bcd5760405162461bcd60e51b81526004016102d59061182b565b600081815260026020526040902054600160801b90046001600160401b031615610c095760405162461bcd60e51b81526004016102d5906116e9565b6005544290610c18908461119a565b60055560408051606081019091526000815260208101610c37836111bd565b6001600160401b03168152602001610c4e856111bd565b6001600160401b0390811690915260008481526002602090815260408083208551815493870151968301518616600160c01b026001600160c01b0397909616600160801b0267ffffffffffffffff60801b196001600160801b039092166001600160801b031990951694909417169290921794909416929092179091556003805460018101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018390555182907f38410508059921573ab9ebdca2a5034be738d236366b8f32de4434ea95ed3c8190610d2c908690611986565b60405180910390a2505050565b6000546001600160a01b031681565b60065481565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b6000546001600160a01b03163314610da45760405162461bcd60e51b81526004016102d59061182b565b6001600160a01b038316610dee576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610de8573d6000803e3d6000fd5b50610395565b6103956001600160a01b0384168284611279565b60408051600180825281830190925260609182918291602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610e5657fe5b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252606091816020016020820280368337019050509050610e9d87876104bc565b81600081518110610eaa57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f185760405162461bcd60e51b81526004016102d59061174d565b600754600114610f3a5760405162461bcd60e51b81526004016102d5906118cc565b6002600755610f47611367565b610f50866107e7565b60008781526004602090815260408083206001600160a01b038a1684529091528120805492935091156110e057610fb78260020154610438846001015464e8d4a5100061074188600001516001600160801b031688600001546111ea90919063ffffffff16565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161100791906115fd565b60206040518083038186803b15801561101f57600080fd5b505afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105791906114cc565b9050808211156110a2576110956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168883611279565b80820360028401556110de565b6110d66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168884611279565b600060028401555b505b838255825164e8d4a51000906111009086906001600160801b03166111ea565b8161110757fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b8560020154850360405161115a9190611986565b60405180910390a450506001600755505050505050565b808203828111156111945760405162461bcd60e51b81526004016102d5906116ba565b92915050565b818101818110156111945760405162461bcd60e51b81526004016102d5906117f4565b60006001600160401b038211156111e65760405162461bcd60e51b81526004016102d590611895565b5090565b60008115806112055750508082028282828161120257fe5b04145b6111945760405162461bcd60e51b81526004016102d5906118ec565b60006001600160801b038211156111e65760405162461bcd60e51b81526004016102d5906117bd565b8181016001600160801b0380831690821610156111945760405162461bcd60e51b81526004016102d5906117f4565b60006060846001600160a01b031663a9059cbb858560405160240161129f929190611611565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516112d891906115c4565b6000604051808303816000865af19150503d8060008114611315576040519150601f19603f3d011682016040523d82523d6000602084013e61131a565b606091505b50915091508180156113445750805115806113445750808060200190518101906113449190611475565b6113605760405162461bcd60e51b81526004016102d590611716565b5050505050565b604080516060810182526000808252602082018190529181019190915290565b60008060006060848603121561139b578283fd5b83356113a6816119cf565b925060208401356113b6816119e7565b915060408401356113c6816119e7565b809150509250925092565b6000806000606084860312156113e5578283fd5b83356113f0816119cf565b92506020840135915060408401356113c6816119cf565b60008060208385031215611419578182fd5b82356001600160401b038082111561142f578384fd5b818501915085601f830112611442578384fd5b813581811115611450578485fd5b8660208083028501011115611463578485fd5b60209290920196919550909350505050565b600060208284031215611486578081fd5b8151611491816119e7565b9392505050565b6000602082840312156114a9578081fd5b8151611491816119cf565b6000602082840312156114c5578081fd5b5035919050565b6000602082840312156114dd578081fd5b5051919050565b600080604083850312156114f6578182fd5b823591506020830135611508816119cf565b809150509250929050565b600080600080600060a0868803121561152a578081fd5b85359450602086013561153c816119cf565b9350604086013561154c816119cf565b94979396509394606081013594506080013592915050565b600080600060608486031215611578578283fd5b83359250602084013561158a816119cf565b929592945050506040919091013590565b600080604083850312156115ad578182fd5b50508035926020909101359150565b815260200190565b60008251815b818110156115e457602081860181015185830152016115ca565b818111156115f25782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b8281101561166c5781516001600160a01b031684529284019290840190600101611647565b505050838103828501528085516116838184611986565b91508387019250845b818110156116ad5761169f8385516115bc565b93850193925060010161168c565b5090979650505050505050565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b602080825260139082015272506f6f6c20616c72656164792065786973747360681b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b03811681146119e457600080fd5b50565b80151581146119e457600080fdfea26469706673582212207237a56b71c7b073f7847994fd2dc07478370070f5cc38044fa7ecc182aa881c64736f6c634300060c0033",
deployedBytecode:
"0x608060405234801561001057600080fd5b50600436106101215760003560e01c806366da5815116100ad57806393f1a40b1161007157806393f1a40b1461023a578063c1ea38681461025c578063d63b3c491461026f578063e30c397814610290578063ef0864e61461029857610121565b806366da5815146101e457806369883b4e146101f7578063771602f71461020a5780638da5cb5b1461021d5780638f10369a1461023257610121565b80631ab06ee5116100f45780631ab06ee51461018357806348e43af4146101965780634e71e0c8146101a957806351eb05a6146101b157806357a5b58c146101d157610121565b8063078dfbe714610126578063081e3eda1461013b5780631526fe271461015957806317caf6f11461017b575b600080fd5b610139610134366004611387565b6102ab565b005b61014361039a565b6040516101509190611986565b60405180910390f35b61016c6101673660046114b4565b6103a0565b6040516101509392919061195c565b6101436103d7565b61013961019136600461159b565b6103dd565b6101436101a43660046114e4565b6104bc565b61013961075a565b6101c46101bf3660046114b4565b6107e7565b6040516101509190611923565b6101396101df366004611407565b610ae5565b6101396101f23660046114b4565b610b1b565b6101436102053660046114b4565b610b85565b61013961021836600461159b565b610ba3565b610225610d39565b60405161015091906115fd565b610143610d48565b61024d6102483660046114e4565b610d4e565b6040516101509392919061198f565b61013961026a3660046113d1565b610d7a565b61028261027d366004611564565b610e02565b60405161015092919061162a565b610225610ec1565b6101396102a6366004611513565b610ed0565b6000546001600160a01b031633146102de5760405162461bcd60e51b81526004016102d59061182b565b60405180910390fd5b8115610379576001600160a01b0383161515806102f85750805b6103145760405162461bcd60e51b81526004016102d59061178e565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055610395565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b6002602052600090815260409020546001600160801b038116906001600160401b03600160801b8204811691600160c01b90041683565b60055481565b6000546001600160a01b031633146104075760405162461bcd60e51b81526004016102d59061182b565b60008281526002602052604090205460055461043e91839161043891600160c01b90046001600160401b0316611171565b9061119a565b60055561044a816111bd565b6000838152600260205260409081902080546001600160401b0393909316600160c01b026001600160c01b03909316929092179091555182907f942cc7e17a17c164bd977f32ab8c54265d5b9d481e4e352bf874f1e568874e7c906104b0908490611986565b60405180910390a25050565b60006104c6611367565b506000838152600260209081526040808320815160608101835290546001600160801b0380821683526001600160401b03600160801b8304811684870152600160c01b9092049091168284015287855260048085528386206001600160a01b03808a1688529552838620835194516378ed5d1f60e01b815293969095949092169391927f0000000000000000000000000000000000000000000000000000000000000000909216916378ed5d1f91610580918b9101611986565b60206040518083038186803b15801561059857600080fd5b505afa1580156105ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d09190611498565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161061b91906115fd565b60206040518083038186803b15801561063357600080fd5b505afa158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b91906114cc565b905083602001516001600160401b03164211801561068857508015155b156107145760006106af85602001516001600160401b03164261117190919063ffffffff16565b905060006005546106e287604001516001600160401b03166106dc600654866111ea90919063ffffffff16565b906111ea565b816106e957fe5b04905061070f836106ff8364e8d4a510006111ea565b8161070657fe5b8691900461119a565b935050505b61074f8360020154610438856001015464e8d4a510006107418789600001546111ea90919063ffffffff16565b8161074857fe5b0490611171565b979650505050505050565b6001546001600160a01b03163381146107855760405162461bcd60e51b81526004016102d590611860565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6107ef611367565b50600081815260026020908152604091829020825160608101845290546001600160801b03811682526001600160401b03600160801b82048116938301849052600160c01b9091041692810192909252421115610ae0576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f90610895908690600401611986565b60206040518083038186803b1580156108ad57600080fd5b505afa1580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611498565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161093091906115fd565b60206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098091906114cc565b90508015610a235760006109aa83602001516001600160401b03164261117190919063ffffffff16565b905060006005546109d785604001516001600160401b03166106dc600654866111ea90919063ffffffff16565b816109de57fe5b049050610a15610a04846109f78464e8d4a510006111ea565b816109fe57fe5b04611221565b85516001600160801b03169061124a565b6001600160801b0316845250505b610a2c426111bd565b6001600160401b03908116602084810191825260008681526002909152604090819020855181549351838801516001600160801b03199095166001600160801b0383161767ffffffffffffffff60801b1916600160801b82881602176001600160c01b0316600160c01b95909616949094029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610ad692909186916119a5565b60405180910390a2505b919050565b8060005b81811015610b1557610b0c848483818110610b0057fe5b905060200201356107e7565b50600101610ae9565b50505050565b6000546001600160a01b03163314610b455760405162461bcd60e51b81526004016102d59061182b565b60068190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610b7a908390611986565b60405180910390a150565b60038181548110610b9257fe5b600091825260209091200154905081565b6000546001600160a01b03163314610bcd5760405162461bcd60e51b81526004016102d59061182b565b600081815260026020526040902054600160801b90046001600160401b031615610c095760405162461bcd60e51b81526004016102d5906116e9565b6005544290610c18908461119a565b60055560408051606081019091526000815260208101610c37836111bd565b6001600160401b03168152602001610c4e856111bd565b6001600160401b0390811690915260008481526002602090815260408083208551815493870151968301518616600160c01b026001600160c01b0397909616600160801b0267ffffffffffffffff60801b196001600160801b039092166001600160801b031990951694909417169290921794909416929092179091556003805460018101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018390555182907f38410508059921573ab9ebdca2a5034be738d236366b8f32de4434ea95ed3c8190610d2c908690611986565b60405180910390a2505050565b6000546001600160a01b031681565b60065481565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b6000546001600160a01b03163314610da45760405162461bcd60e51b81526004016102d59061182b565b6001600160a01b038316610dee576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610de8573d6000803e3d6000fd5b50610395565b6103956001600160a01b0384168284611279565b60408051600180825281830190925260609182918291602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610e5657fe5b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252606091816020016020820280368337019050509050610e9d87876104bc565b81600081518110610eaa57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f185760405162461bcd60e51b81526004016102d59061174d565b600754600114610f3a5760405162461bcd60e51b81526004016102d5906118cc565b6002600755610f47611367565b610f50866107e7565b60008781526004602090815260408083206001600160a01b038a1684529091528120805492935091156110e057610fb78260020154610438846001015464e8d4a5100061074188600001516001600160801b031688600001546111ea90919063ffffffff16565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161100791906115fd565b60206040518083038186803b15801561101f57600080fd5b505afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105791906114cc565b9050808211156110a2576110956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168883611279565b80820360028401556110de565b6110d66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168884611279565b600060028401555b505b838255825164e8d4a51000906111009086906001600160801b03166111ea565b8161110757fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b8560020154850360405161115a9190611986565b60405180910390a450506001600755505050505050565b808203828111156111945760405162461bcd60e51b81526004016102d5906116ba565b92915050565b818101818110156111945760405162461bcd60e51b81526004016102d5906117f4565b60006001600160401b038211156111e65760405162461bcd60e51b81526004016102d590611895565b5090565b60008115806112055750508082028282828161120257fe5b04145b6111945760405162461bcd60e51b81526004016102d5906118ec565b60006001600160801b038211156111e65760405162461bcd60e51b81526004016102d5906117bd565b8181016001600160801b0380831690821610156111945760405162461bcd60e51b81526004016102d5906117f4565b60006060846001600160a01b031663a9059cbb858560405160240161129f929190611611565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516112d891906115c4565b6000604051808303816000865af19150503d8060008114611315576040519150601f19603f3d011682016040523d82523d6000602084013e61131a565b606091505b50915091508180156113445750805115806113445750808060200190518101906113449190611475565b6113605760405162461bcd60e51b81526004016102d590611716565b5050505050565b604080516060810182526000808252602082018190529181019190915290565b60008060006060848603121561139b578283fd5b83356113a6816119cf565b925060208401356113b6816119e7565b915060408401356113c6816119e7565b809150509250925092565b6000806000606084860312156113e5578283fd5b83356113f0816119cf565b92506020840135915060408401356113c6816119cf565b60008060208385031215611419578182fd5b82356001600160401b038082111561142f578384fd5b818501915085601f830112611442578384fd5b813581811115611450578485fd5b8660208083028501011115611463578485fd5b60209290920196919550909350505050565b600060208284031215611486578081fd5b8151611491816119e7565b9392505050565b6000602082840312156114a9578081fd5b8151611491816119cf565b6000602082840312156114c5578081fd5b5035919050565b6000602082840312156114dd578081fd5b5051919050565b600080604083850312156114f6578182fd5b823591506020830135611508816119cf565b809150509250929050565b600080600080600060a0868803121561152a578081fd5b85359450602086013561153c816119cf565b9350604086013561154c816119cf565b94979396509394606081013594506080013592915050565b600080600060608486031215611578578283fd5b83359250602084013561158a816119cf565b929592945050506040919091013590565b600080604083850312156115ad578182fd5b50508035926020909101359150565b815260200190565b60008251815b818110156115e457602081860181015185830152016115ca565b818111156115f25782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b8281101561166c5781516001600160a01b031684529284019290840190600101611647565b505050838103828501528085516116838184611986565b91508387019250845b818110156116ad5761169f8385516115bc565b93850193925060010161168c565b5090979650505050505050565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b602080825260139082015272506f6f6c20616c72656164792065786973747360681b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b03811681146119e457600080fd5b50565b80151581146119e457600080fdfea26469706673582212207237a56b71c7b073f7847994fd2dc07478370070f5cc38044fa7ecc182aa881c64736f6c634300060c0033",
linkReferences: {},
deployedLinkReferences: {},
};
export default [
{
constant: true,
inputs: [],
name: "name",
outputs: [{ name: "", type: "string" }],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{ name: "_spender", type: "address" },
{ name: "_value", type: "uint256" },
],
name: "approve",
outputs: [{ name: "", type: "bool" }],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "totalSupply",
outputs: [{ name: "", type: "uint256" }],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{ name: "_from", type: "address" },
{ name: "_to", type: "address" },
{ name: "_value", type: "uint256" },
],
name: "transferFrom",
outputs: [{ name: "", type: "bool" }],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "decimals",
outputs: [{ name: "", type: "uint8" }],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [{ name: "_owner", type: "address" }],
name: "balanceOf",
outputs: [{ name: "balance", type: "uint256" }],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "symbol",
outputs: [{ name: "", type: "string" }],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{ name: "_to", type: "address" },
{ name: "_value", type: "uint256" },
],
name: "transfer",
outputs: [{ name: "", type: "bool" }],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [
{ name: "_owner", type: "address" },
{ name: "_spender", type: "address" },
],
name: "allowance",
outputs: [{ name: "", type: "uint256" }],
payable: false,
stateMutability: "view",
type: "function",
},
{ payable: true, stateMutability: "payable", type: "fallback" },
{
anonymous: false,
inputs: [
{ indexed: true, name: "owner", type: "address" },
{ indexed: true, name: "spender", type: "address" },
{ indexed: false, name: "value", type: "uint256" },
],
name: "Approval",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, name: "from", type: "address" },
{ indexed: true, name: "to", type: "address" },
{ indexed: false, name: "value", type: "uint256" },
],
name: "Transfer",
type: "event",
},
];
export default {
abi: [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "spender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Approval",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount0",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "Burn",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount0",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1",
type: "uint256",
},
],
name: "Mint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount0In",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1In",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount0Out",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1Out",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "Swap",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint112",
name: "reserve0",
type: "uint112",
},
{
indexed: false,
internalType: "uint112",
name: "reserve1",
type: "uint112",
},
],
name: "Sync",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Transfer",
type: "event",
},
{
constant: true,
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "MINIMUM_LIQUIDITY",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [],
name: "PERMIT_TYPEHASH",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
],
name: "allowance",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "approve",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "balanceOf",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "burn",
outputs: [
{
internalType: "uint256",
name: "amount0",
type: "uint256",
},
{
internalType: "uint256",
name: "amount1",
type: "uint256",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "decimals",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [],
name: "factory",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "getReserves",
outputs: [
{
internalType: "uint112",
name: "reserve0",
type: "uint112",
},
{
internalType: "uint112",
name: "reserve1",
type: "uint112",
},
{
internalType: "uint32",
name: "blockTimestampLast",
type: "uint32",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "",
type: "address",
},
{
internalType: "address",
name: "",
type: "address",
},
],
name: "initialize",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "kLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "mint",
outputs: [
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "name",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "nonces",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "permit",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "price0CumulativeLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "price1CumulativeLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "skim",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "uint256",
name: "amount0Out",
type: "uint256",
},
{
internalType: "uint256",
name: "amount1Out",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
name: "swap",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "symbol",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: false,
inputs: [],
name: "sync",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "token0",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "token1",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "totalSupply",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "transfer",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "from",
type: "address",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "transferFrom",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
],
evm: {
bytecode: {
linkReferences: {},
object: "",
opcodes: "",
sourceMap: "",
},
deployedBytecode: {
linkReferences: {},
object: "",
opcodes: "",
sourceMap: "",
},
},
interface: [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "spender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Approval",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount0",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "Burn",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount0",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1",
type: "uint256",
},
],
name: "Mint",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount0In",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1In",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount0Out",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount1Out",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "Swap",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint112",
name: "reserve0",
type: "uint112",
},
{
indexed: false,
internalType: "uint112",
name: "reserve1",
type: "uint112",
},
],
name: "Sync",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Transfer",
type: "event",
},
{
constant: true,
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "MINIMUM_LIQUIDITY",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [],
name: "PERMIT_TYPEHASH",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
],
name: "allowance",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "approve",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "balanceOf",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "burn",
outputs: [
{
internalType: "uint256",
name: "amount0",
type: "uint256",
},
{
internalType: "uint256",
name: "amount1",
type: "uint256",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "decimals",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [],
name: "factory",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "getReserves",
outputs: [
{
internalType: "uint112",
name: "reserve0",
type: "uint112",
},
{
internalType: "uint112",
name: "reserve1",
type: "uint112",
},
{
internalType: "uint32",
name: "blockTimestampLast",
type: "uint32",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "",
type: "address",
},
{
internalType: "address",
name: "",
type: "address",
},
],
name: "initialize",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "kLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "mint",
outputs: [
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "name",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "nonces",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "permit",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "price0CumulativeLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "price1CumulativeLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "skim",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "uint256",
name: "amount0Out",
type: "uint256",
},
{
internalType: "uint256",
name: "amount1Out",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
name: "swap",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "symbol",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
payable: false,
stateMutability: "pure",
type: "function",
},
{
constant: false,
inputs: [],
name: "sync",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [],
name: "token0",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "token1",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "totalSupply",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "transfer",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "from",
type: "address",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "transferFrom",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
],
bytecode: "",
};
export default {
abi: [
{
inputs: [],
name: "WETH",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address",
},
{
internalType: "address",
name: "tokenB",
type: "address",
},
{
internalType: "uint256",
name: "amountADesired",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBDesired",
type: "uint256",
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "addLiquidity",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "amountTokenDesired",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "addLiquidityETH",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "factory",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveIn",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveOut",
type: "uint256",
},
],
name: "getAmountIn",
outputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveIn",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveOut",
type: "uint256",
},
],
name: "getAmountOut",
outputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
],
name: "getAmountsIn",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
],
name: "getAmountsOut",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveA",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveB",
type: "uint256",
},
],
name: "quote",
outputs: [
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address",
},
{
internalType: "address",
name: "tokenB",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "removeLiquidity",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "removeLiquidityETH",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "removeLiquidityETHSupportingFeeOnTransferTokens",
outputs: [
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "bool",
name: "approveMax",
type: "bool",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "removeLiquidityETHWithPermit",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "bool",
name: "approveMax",
type: "bool",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
outputs: [
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address",
},
{
internalType: "address",
name: "tokenB",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "bool",
name: "approveMax",
type: "bool",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "removeLiquidityWithPermit",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapETHForExactTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactETHForTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactETHForTokensSupportingFeeOnTransferTokens",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForETH",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForETHSupportingFeeOnTransferTokens",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForTokensSupportingFeeOnTransferTokens",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "uint256",
name: "amountInMax",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapTokensForExactETH",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "uint256",
name: "amountInMax",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapTokensForExactTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
],
evm: {
bytecode: {
linkReferences: {},
object: "",
opcodes: "",
sourceMap: "",
},
deployedBytecode: {
immutableReferences: {},
linkReferences: {},
object: "",
opcodes: "",
sourceMap: "",
},
},
interface: [
{
inputs: [],
name: "WETH",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address",
},
{
internalType: "address",
name: "tokenB",
type: "address",
},
{
internalType: "uint256",
name: "amountADesired",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBDesired",
type: "uint256",
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "addLiquidity",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "amountTokenDesired",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "addLiquidityETH",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "factory",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveIn",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveOut",
type: "uint256",
},
],
name: "getAmountIn",
outputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveIn",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveOut",
type: "uint256",
},
],
name: "getAmountOut",
outputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
],
name: "getAmountsIn",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
],
name: "getAmountsOut",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveA",
type: "uint256",
},
{
internalType: "uint256",
name: "reserveB",
type: "uint256",
},
],
name: "quote",
outputs: [
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address",
},
{
internalType: "address",
name: "tokenB",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "removeLiquidity",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "removeLiquidityETH",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "removeLiquidityETHSupportingFeeOnTransferTokens",
outputs: [
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "bool",
name: "approveMax",
type: "bool",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "removeLiquidityETHWithPermit",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "bool",
name: "approveMax",
type: "bool",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
outputs: [
{
internalType: "uint256",
name: "amountETH",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address",
},
{
internalType: "address",
name: "tokenB",
type: "address",
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256",
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256",
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "bool",
name: "approveMax",
type: "bool",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "removeLiquidityWithPermit",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256",
},
{
internalType: "uint256",
name: "amountB",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapETHForExactTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactETHForTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactETHForTokensSupportingFeeOnTransferTokens",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForETH",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForETHSupportingFeeOnTransferTokens",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256",
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapExactTokensForTokensSupportingFeeOnTransferTokens",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "uint256",
name: "amountInMax",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapTokensForExactETH",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256",
},
{
internalType: "uint256",
name: "amountInMax",
type: "uint256",
},
{
internalType: "address[]",
name: "path",
type: "address[]",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
],
name: "swapTokensForExactTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]",
},
],
stateMutability: "nonpayable",
type: "function",
},
],
bytecode: "",
};
export default {
_format: "hh-sol-artifact-1",
contractName: "MiniChefV2",
sourceName: "contracts/MiniChefV2.sol",
abi: [
{
inputs: [
{
internalType: "contract IERC20",
name: "_sushi",
type: "address",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "user",
type: "address",
},
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "Deposit",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "user",
type: "address",
},
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "EmergencyWithdraw",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "user",
type: "address",
},
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "Harvest",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "sushiPerSecond",
type: "uint256",
},
],
name: "LogsushiPerSecond",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "allocPoint",
type: "uint256",
},
{
indexed: true,
internalType: "contract IERC20",
name: "lpToken",
type: "address",
},
{
indexed: true,
internalType: "contract IRewarder",
name: "rewarder",
type: "address",
},
],
name: "LogPoolAddition",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "allocPoint",
type: "uint256",
},
{
indexed: true,
internalType: "contract IRewarder",
name: "rewarder",
type: "address",
},
{
indexed: false,
internalType: "bool",
name: "overwrite",
type: "bool",
},
],
name: "LogSetPool",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint64",
name: "lastRewardTime",
type: "uint64",
},
{
indexed: false,
internalType: "uint256",
name: "lpSupply",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "accsushiPerShare",
type: "uint256",
},
],
name: "LogUpdatePool",
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: true,
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
],
name: "Withdraw",
type: "event",
},
{
inputs: [],
name: "sushi",
outputs: [
{
internalType: "contract IERC20",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "allocPoint",
type: "uint256",
},
{
internalType: "contract IERC20",
name: "_lpToken",
type: "address",
},
{
internalType: "contract IRewarder",
name: "_rewarder",
type: "address",
},
],
name: "add",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
name: "addedTokens",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes[]",
name: "calls",
type: "bytes[]",
},
{
internalType: "bool",
name: "revertOnFail",
type: "bool",
},
],
name: "batch",
outputs: [
{
internalType: "bool[]",
name: "successes",
type: "bool[]",
},
{
internalType: "bytes[]",
name: "results",
type: "bytes[]",
},
],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "claimOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "deposit",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "sushiPerSecond",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "emergencyWithdraw",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "harvest",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "lpToken",
outputs: [
{
internalType: "contract IERC20",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256[]",
name: "pids",
type: "uint256[]",
},
],
name: "massUpdatePools",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_pid",
type: "uint256",
},
],
name: "migrate",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "migrator",
outputs: [
{
internalType: "contract IMigratorChef",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_pid",
type: "uint256",
},
{
internalType: "address",
name: "_user",
type: "address",
},
],
name: "pendingsushi",
outputs: [
{
internalType: "uint256",
name: "pending",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "pendingOwner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "contract IERC20",
name: "token",
type: "address",
},
{
internalType: "address",
name: "from",
type: "address",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "permitToken",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "poolInfo",
outputs: [
{
internalType: "uint128",
name: "accsushiPerShare",
type: "uint128",
},
{
internalType: "uint64",
name: "lastRewardTime",
type: "uint64",
},
{
internalType: "uint64",
name: "allocPoint",
type: "uint64",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "poolLength",
outputs: [
{
internalType: "uint256",
name: "pools",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "rewarder",
outputs: [
{
internalType: "contract IRewarder",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_pid",
type: "uint256",
},
{
internalType: "uint256",
name: "_allocPoint",
type: "uint256",
},
{
internalType: "contract IRewarder",
name: "_rewarder",
type: "address",
},
{
internalType: "bool",
name: "overwrite",
type: "bool",
},
],
name: "set",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_sushiPerSecond",
type: "uint256",
},
],
name: "setsushiPerSecond",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract IMigratorChef",
name: "_migrator",
type: "address",
},
],
name: "setMigrator",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "totalAllocPoint",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
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",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
],
name: "updatePool",
outputs: [
{
components: [
{
internalType: "uint128",
name: "accsushiPerShare",
type: "uint128",
},
{
internalType: "uint64",
name: "lastRewardTime",
type: "uint64",
},
{
internalType: "uint64",
name: "allocPoint",
type: "uint64",
},
],
internalType: "struct MiniChefV2.PoolInfo",
name: "pool",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
{
internalType: "address",
name: "",
type: "address",
},
],
name: "userInfo",
outputs: [
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "int256",
name: "rewardDebt",
type: "int256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "withdraw",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "pid",
type: "uint256",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
internalType: "address",
name: "to",
type: "address",
},
],
name: "withdrawAndHarvest",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
],
bytecode:
"0x60a06040523480156200001157600080fd5b5060405162002d7738038062002d77833981016040819052620000349162000089565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b031916608052620000b9565b6000602082840312156200009b578081fd5b81516001600160a01b0381168114620000b2578182fd5b9392505050565b60805160601c612c96620000e1600039806108cd5280610bac5280611b1e5250612c966000f3fe6080604052600436106101c25760003560e01c806378ed5d1f116100f757806393f1a40b11610095578063d1abb90711610064578063d1abb90714610501578063d2423b5114610521578063deefabdd14610542578063e30c397814610557576101c2565b806393f1a40b14610473578063ab7de098146104a1578063ab92b986146104c1578063c346253d146104e1576101c2565b80637cd07e47116100d15780637cd07e471461040957806388bba42f1461041e5780638da5cb5b1461043e5780638dbdbe6d14610453576101c2565b806378ed5d1f1461039c57806379d12ffb146103bc5780637c516e94146103e9576101c2565b80632843e85e11610164578063454b06081161013e578063454b06081461031a5780634e71e0c81461033a57806351eb05a61461034f57806357a5b58c1461037c576101c2565b80632843e85e146102b85780632f940c70146102d85780633c314187146102f8576101c2565b80631526fe27116101a05780631526fe271461023457806317caf6f11461026357806318fccc761461027857806323cf311814610298576101c2565b8063078dfbe7146101c7578063081e3eda146101e95780630ad58d2f14610214575b600080fd5b3480156101d357600080fd5b506101e76101e23660046122a8565b61056c565b005b3480156101f557600080fd5b506101fe61065b565b60405161020b9190612b4a565b60405180910390f35b34801561022057600080fd5b506101e761022f366004612568565b610661565b34801561024057600080fd5b5061025461024f3660046124d3565b6107f1565b60405161020b93929190612b20565b34801561026f57600080fd5b506101fe610833565b34801561028457600080fd5b506101e7610293366004612503565b610839565b3480156102a457600080fd5b506101e76102b336600461228c565b6109d3565b3480156102c457600080fd5b506101e76102d33660046124d3565b610a1f565b3480156102e457600080fd5b506101e76102f3366004612503565b610a89565b34801561030457600080fd5b5061030d610baa565b60405161020b9190612636565b34801561032657600080fd5b506101e76103353660046124d3565b610bce565b34801561034657600080fd5b506101e7610eec565b34801561035b57600080fd5b5061036f61036a3660046124d3565b610f79565b60405161020b9190612ae7565b34801561038857600080fd5b506101e761039736600461233b565b611203565b3480156103a857600080fd5b5061030d6103b73660046124d3565b611239565b3480156103c857600080fd5b506103dc6103d736600461228c565b611260565b60405161020b9190612762565b3480156103f557600080fd5b506101e76104043660046123b2565b611275565b34801561041557600080fd5b5061030d6112e9565b34801561042a57600080fd5b506101e7610439366004612595565b6112f8565b34801561044a57600080fd5b5061030d611465565b34801561045f57600080fd5b506101e761046e366004612568565b611474565b34801561047f57600080fd5b5061049361048e366004612503565b6115ff565b60405161020b929190612b92565b3480156104ad57600080fd5b506101e76104bc366004612532565b611623565b3480156104cd57600080fd5b506101fe6104dc366004612503565b611849565b3480156104ed57600080fd5b5061030d6104fc3660046124d3565b611a43565b34801561050d57600080fd5b506101e761051c366004612568565b611a50565b61053461052f3660046122f2565b611c83565b60405161020b9291906126c8565b34801561054e57600080fd5b506101fe611e13565b34801561056357600080fd5b5061030d611e19565b6000546001600160a01b0316331461059f5760405162461bcd60e51b815260040161059690612932565b60405180910390fd5b811561063a576001600160a01b0383161515806105b95750805b6105d55760405162461bcd60e51b81526004016105969061284c565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055610656565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b610669612224565b61067284610f79565b600085815260066020908152604080832033845290915290208151919250906106c49064e8d4a51000906106b09087906001600160801b0316611e28565b816106b757fe5b6001840154919004611e65565b600182015580546106d59085611eb2565b81556005805460009190879081106106e957fe5b6000918252602090912001546001600160a01b03169050801561076f578154604051637784327360e11b81526001600160a01b0383169163ef0864e69161073c918a9133918a9160009190600401612b53565b600060405180830381600087803b15801561075657600080fd5b505af115801561076a573d6000803e3d6000fd5b505050505b61079d84866004898154811061078157fe5b6000918252602090912001546001600160a01b03169190611ed5565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107e19190612b4a565b60405180910390a4505050505050565b600381815481106107fe57fe5b6000918252602090912001546001600160801b03811691506001600160401b03600160801b8204811691600160c01b90041683565b60085481565b610841612224565b61084a83610f79565b6000848152600660209081526040808320338452909152812082518154939450909264e8d4a510009161088691906001600160801b0316611e28565b8161088d57fe5b04905060006108b16108ac846001015484611e6590919063ffffffff16565b611fc3565b60018401839055905080156108f4576108f46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611ed5565b60006005878154811061090357fe5b6000918252602090912001546001600160a01b031690508015610988578354604051637784327360e11b81526001600160a01b0383169163ef0864e691610955918b9133918c91899190600401612b53565b600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954846040516109c29190612b4a565b60405180910390a350505050505050565b6000546001600160a01b031633146109fd5760405162461bcd60e51b815260040161059690612932565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a495760405162461bcd60e51b815260040161059690612932565b60098190556040517fa88809e216d7a0564bd5ad2ac680a84448b0b926602624d9e395c7c3864e72e990610a7e908390612b4a565b60405180910390a150565b60008281526006602090815260408083203384529091528120805482825560018201839055600580549293919286908110610ac057fe5b6000918252602090912001546001600160a01b031690508015610b4557604051637784327360e11b81526001600160a01b0382169063ef0864e690610b12908890339089906000908190600401612b53565b600060405180830381600087803b158015610b2c57600080fd5b505af1158015610b40573d6000803e3d6000fd5b505050505b610b5784836004888154811061078157fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610b9b9190612b4a565b60405180910390a45050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546001600160a01b0316610bf65760405162461bcd60e51b815260040161059690612a00565b600060048281548110610c0557fe5b60009182526020822001546040516370a0823160e01b81526001600160a01b03909116925082906370a0823190610c40903090600401612636565b60206040518083038186803b158015610c5857600080fd5b505afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9091906124eb565b60025460405163095ea7b360e01b81529192506001600160a01b038085169263095ea7b392610cc592169085906004016126af565b602060405180830381600087803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d17919061237a565b5060025460405163ce5494bb60e01b81526000916001600160a01b03169063ce5494bb90610d49908690600401612636565b602060405180830381600087803b158015610d6357600080fd5b505af1158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190612396565b6040516370a0823160e01b81529091506001600160a01b038216906370a0823190610dca903090600401612636565b60206040518083038186803b158015610de257600080fd5b505afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a91906124eb565b8214610e385760405162461bcd60e51b81526004016105969061287b565b6001600160a01b03811660009081526007602052604090205460ff1615610e715760405162461bcd60e51b81526004016105969061299c565b6001600160a01b03808216600090815260076020526040808220805460ff1990811660011790915592861682529020805490911690556004805482919086908110610eb857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b6001546001600160a01b0316338114610f175760405162461bcd60e51b815260040161059690612967565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b610f81612224565b60038281548110610f8e57fe5b60009182526020918290206040805160608101825292909101546001600160801b03811683526001600160401b03600160801b82048116948401859052600160c01b909104169082015291504211156111fe57600060048381548110610ff057fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190611029903090600401612636565b60206040518083038186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107991906124eb565b905080156111225760006110a383602001516001600160401b031642611eb290919063ffffffff16565b905060006008546110d685604001516001600160401b03166110d060095486611e2890919063ffffffff16565b90611e28565b816110dd57fe5b049050611114611103846110f68464e8d4a51000611e28565b816110fd57fe5b04611fe9565b85516001600160801b031690612012565b6001600160801b0316845250505b61112b42612041565b6001600160401b03166020830152600380548391908590811061114a57fe5b6000918252602091829020835191018054848401516040958601516001600160801b03199092166001600160801b039094169390931767ffffffffffffffff60801b1916600160801b6001600160401b0394851602176001600160c01b0316600160c01b93909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad353926111f49290918691612ba0565b60405180910390a2505b919050565b8060005b818110156112335761122a84848381811061121e57fe5b90506020020135610f79565b50600101611207565b50505050565b6004818154811061124657fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205460ff1681565b60405163d505accf60e01b81526001600160a01b0389169063d505accf906112ad908a908a908a908a908a908a908a9060040161266e565b600060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146113225760405162461bcd60e51b815260040161059690612932565b6113618361135b6003878154811061133657fe5b60009182526020909120015460085490600160c01b90046001600160401b0316611eb2565b9061206a565b60085561136d83612041565b6003858154811061137a57fe5b9060005260206000200160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555080156113ee5781600585815481106113bf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8061141a576005848154811061140057fe5b6000918252602090912001546001600160a01b031661141c565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e18658584604051611457929190612b82565b60405180910390a350505050565b6000546001600160a01b031681565b61147c612224565b61148584610f79565b60008581526006602090815260408083206001600160a01b038716845290915290208054919250906114b7908561206a565b815581516114ee9064e8d4a51000906114da9087906001600160801b0316611e28565b816114e157fe5b600184015491900461208d565b816001018190555060006005868154811061150557fe5b6000918252602090912001546001600160a01b03169050801561158b578154604051637784327360e11b81526001600160a01b0383169163ef0864e691611558918a918991829160009190600401612b53565b600060405180830381600087803b15801561157257600080fd5b505af1158015611586573d6000803e3d6000fd5b505050505b6115bb33308760048a8154811061159e57fe5b6000918252602090912001546001600160a01b03169291906120d3565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107e19190612b4a565b60066020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b0316331461164d5760405162461bcd60e51b815260040161059690612932565b6001600160a01b03821660009081526007602052604090205460ff16156116865760405162461bcd60e51b81526004016105969061299c565b600854611693908461206a565b6008556004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b038086166001600160a01b03199283161790925560058054938401815560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090930180549285169290911691909117905560408051606081019091529081526003906020810161174042612041565b6001600160401b0316815260200161175786612041565b6001600160401b0390811690915282546001818101855560009485526020808620855193018054828701516040978801518716600160c01b026001600160c01b0391909716600160801b0267ffffffffffffffff60801b196001600160801b039097166001600160801b031990931692909217959095161793909316939093179091556001600160a01b03808716808652600790935292909320805460ff19168417905560045491841692909161180d91611eb2565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161183c9190612b4a565b60405180910390a4505050565b6000611853612224565b6003848154811061186057fe5b600091825260208083206040805160608101825291909301546001600160801b0380821683526001600160401b03600160801b8304811684860152600160c01b90920490911682850152888552600683528385206001600160a01b03891686529092529183208251600480549496509194921692889081106118de57fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190611917903090600401612636565b60206040518083038186803b15801561192f57600080fd5b505afa158015611943573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196791906124eb565b905083602001516001600160401b03164211801561198457508015155b15611a0a5760006119ab85602001516001600160401b031642611eb290919063ffffffff16565b905060006008546119d887604001516001600160401b03166110d060095486611e2890919063ffffffff16565b816119df57fe5b049050611a05836119f58364e8d4a51000611e28565b816119fc57fe5b8691900461206a565b935050505b60018301548354611a38916108ac9164e8d4a5100090611a2a9087611e28565b81611a3157fe5b0490611e65565b979650505050505050565b6005818154811061124657fe5b611a58612224565b611a6184610f79565b6000858152600660209081526040808320338452909152812082518154939450909264e8d4a5100091611a9d91906001600160801b0316611e28565b81611aa457fe5b0490506000611ac36108ac846001015484611e6590919063ffffffff16565b9050611afe64e8d4a51000611aee86600001516001600160801b031689611e2890919063ffffffff16565b81611af557fe5b84919004611e65565b60018401558254611b0f9087611eb2565b8355611b456001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611ed5565b600060058881548110611b5457fe5b6000918252602090912001546001600160a01b031690508015611bd9578354604051637784327360e11b81526001600160a01b0383169163ef0864e691611ba6918c9133918c91899190600401612b53565b600060405180830381600087803b158015611bc057600080fd5b505af1158015611bd4573d6000803e3d6000fd5b505050505b611beb868860048b8154811061078157fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611c2f9190612b4a565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611c719190612b4a565b60405180910390a35050505050505050565b606080836001600160401b0381118015611c9c57600080fd5b50604051908082528060200260200182016040528015611cc6578160200160208202803683370190505b509150836001600160401b0381118015611cdf57600080fd5b50604051908082528060200260200182016040528015611d1357816020015b6060815260200190600190039081611cfe5790505b50905060005b84811015611e0a576000606030888885818110611d3257fe5b9050602002810190611d449190612bca565b604051611d5292919061260a565b600060405180830381855af49150503d8060008114611d8d576040519150601f19603f3d011682016040523d82523d6000602084013e611d92565b606091505b50915091508180611da1575085155b611daa826121c4565b90611dc85760405162461bcd60e51b8152600401610596919061276d565b5081858481518110611dd657fe5b60200260200101901515908115158152505080848481518110611df557fe5b60209081029190910101525050600101611d19565b50935093915050565b60095481565b6001546001600160a01b031681565b6000811580611e4357505080820282828281611e4057fe5b04145b611e5f5760405162461bcd60e51b815260040161059690612ab0565b92915050565b6000818303818312801590611e7a5750838113155b80611e8f5750600083128015611e8f57508381135b611eab5760405162461bcd60e51b815260040161059690612a37565b9392505050565b80820382811115611e5f5760405162461bcd60e51b815260040161059690612780565b60006060846001600160a01b031663a9059cbb8585604051602401611efb9291906126af565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611f34919061261a565b6000604051808303816000865af19150503d8060008114611f71576040519150601f19603f3d011682016040523d82523d6000602084013e611f76565b606091505b5091509150818015611fa0575080511580611fa0575080806020019051810190611fa0919061237a565b611fbc5760405162461bcd60e51b8152600401610596906127d4565b5050505050565b600080821215611fe55760405162461bcd60e51b8152600401610596906127af565b5090565b60006001600160801b03821115611fe55760405162461bcd60e51b8152600401610596906128c4565b8181016001600160801b038083169082161015611e5f5760405162461bcd60e51b8152600401610596906128fb565b60006001600160401b03821115611fe55760405162461bcd60e51b8152600401610596906129c9565b81810181811015611e5f5760405162461bcd60e51b8152600401610596906128fb565b60008282018183128015906120a25750838112155b806120b757506000831280156120b757508381125b611eab5760405162461bcd60e51b81526004016105969061280b565b60006060856001600160a01b03166323b872dd8686866040516024016120fb9392919061264a565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612134919061261a565b6000604051808303816000865af19150503d8060008114612171576040519150601f19603f3d011682016040523d82523d6000602084013e612176565b606091505b50915091508180156121a05750805115806121a05750808060200190518101906121a0919061237a565b6121bc5760405162461bcd60e51b815260040161059690612a7b565b505050505050565b606060448251101561220a575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c7900000060208201526111fe565b60048201915081806020019051810190611e5f9190612439565b604080516060810182526000808252602082018190529181019190915290565b60008083601f840112612255578182fd5b5081356001600160401b0381111561226b578182fd5b602083019150836020808302850101111561228557600080fd5b9250929050565b60006020828403121561229d578081fd5b8135611eab81612c3a565b6000806000606084860312156122bc578182fd5b83356122c781612c3a565b925060208401356122d781612c52565b915060408401356122e781612c52565b809150509250925092565b600080600060408486031215612306578283fd5b83356001600160401b0381111561231b578384fd5b61232786828701612244565b90945092505060208401356122e781612c52565b6000806020838503121561234d578182fd5b82356001600160401b03811115612362578283fd5b61236e85828601612244565b90969095509350505050565b60006020828403121561238b578081fd5b8151611eab81612c52565b6000602082840312156123a7578081fd5b8151611eab81612c3a565b600080600080600080600080610100898b0312156123ce578384fd5b88356123d981612c3a565b975060208901356123e981612c3a565b965060408901356123f981612c3a565b9550606089013594506080890135935060a089013560ff8116811461241c578384fd5b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561244a578081fd5b81516001600160401b0380821115612460578283fd5b818401915084601f830112612473578283fd5b815181811115612481578384fd5b604051601f8201601f1916810160200183811182821017156124a1578586fd5b6040528181528382016020018710156124b8578485fd5b6124c9826020830160208701612c0e565b9695505050505050565b6000602082840312156124e4578081fd5b5035919050565b6000602082840312156124fc578081fd5b5051919050565b60008060408385031215612515578182fd5b82359150602083013561252781612c3a565b809150509250929050565b600080600060608486031215612546578081fd5b83359250602084013561255881612c3a565b915060408401356122e781612c3a565b60008060006060848603121561257c578081fd5b833592506020840135915060408401356122e781612c3a565b600080600080608085870312156125aa578182fd5b843593506020850135925060408501356125c381612c3a565b915060608501356125d381612c52565b939692955090935050565b600081518084526125f6816020860160208601612c0e565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161262c818460208701612c0e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156127035781511515845292840192908401906001016126e5565b5050508381038285015280855161271a8184612b4a565b91508192508381028201848801865b838110156127535785830385526127418383516125de565b94870194925090860190600101612729565b50909998505050505050505050565b901515815260200190565b600060208252611eab60208301846125de565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252600b908201526a0496e7465676572203c20360ac1b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b60208082526029908201527f4d61737465724368656656323a206d696772617465642062616c616e6365206d6040820152680eae6e840dac2e8c6d60bb1b606082015260800190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b602080825260139082015272151bdad95b88185b1c9958591e481859191959606a1b604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252601d908201527f4d61737465724368656656323a206e6f206d69677261746f7220736574000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6000808335601e19843603018112612be0578283fd5b8301803591506001600160401b03821115612bf9578283fd5b60200191503681900382131561228557600080fd5b60005b83811015612c29578181015183820152602001612c11565b838111156112335750506000910152565b6001600160a01b0381168114612c4f57600080fd5b50565b8015158114612c4f57600080fdfea2646970667358221220e810aee30ec465dfbd653f20d86b628740567fb8a3aa21bbb4e994c8659e0cbe64736f6c634300060c0033",
deployedBytecode:
"0x6080604052600436106101c25760003560e01c806378ed5d1f116100f757806393f1a40b11610095578063d1abb90711610064578063d1abb90714610501578063d2423b5114610521578063deefabdd14610542578063e30c397814610557576101c2565b806393f1a40b14610473578063ab7de098146104a1578063ab92b986146104c1578063c346253d146104e1576101c2565b80637cd07e47116100d15780637cd07e471461040957806388bba42f1461041e5780638da5cb5b1461043e5780638dbdbe6d14610453576101c2565b806378ed5d1f1461039c57806379d12ffb146103bc5780637c516e94146103e9576101c2565b80632843e85e11610164578063454b06081161013e578063454b06081461031a5780634e71e0c81461033a57806351eb05a61461034f57806357a5b58c1461037c576101c2565b80632843e85e146102b85780632f940c70146102d85780633c314187146102f8576101c2565b80631526fe27116101a05780631526fe271461023457806317caf6f11461026357806318fccc761461027857806323cf311814610298576101c2565b8063078dfbe7146101c7578063081e3eda146101e95780630ad58d2f14610214575b600080fd5b3480156101d357600080fd5b506101e76101e23660046122a8565b61056c565b005b3480156101f557600080fd5b506101fe61065b565b60405161020b9190612b4a565b60405180910390f35b34801561022057600080fd5b506101e761022f366004612568565b610661565b34801561024057600080fd5b5061025461024f3660046124d3565b6107f1565b60405161020b93929190612b20565b34801561026f57600080fd5b506101fe610833565b34801561028457600080fd5b506101e7610293366004612503565b610839565b3480156102a457600080fd5b506101e76102b336600461228c565b6109d3565b3480156102c457600080fd5b506101e76102d33660046124d3565b610a1f565b3480156102e457600080fd5b506101e76102f3366004612503565b610a89565b34801561030457600080fd5b5061030d610baa565b60405161020b9190612636565b34801561032657600080fd5b506101e76103353660046124d3565b610bce565b34801561034657600080fd5b506101e7610eec565b34801561035b57600080fd5b5061036f61036a3660046124d3565b610f79565b60405161020b9190612ae7565b34801561038857600080fd5b506101e761039736600461233b565b611203565b3480156103a857600080fd5b5061030d6103b73660046124d3565b611239565b3480156103c857600080fd5b506103dc6103d736600461228c565b611260565b60405161020b9190612762565b3480156103f557600080fd5b506101e76104043660046123b2565b611275565b34801561041557600080fd5b5061030d6112e9565b34801561042a57600080fd5b506101e7610439366004612595565b6112f8565b34801561044a57600080fd5b5061030d611465565b34801561045f57600080fd5b506101e761046e366004612568565b611474565b34801561047f57600080fd5b5061049361048e366004612503565b6115ff565b60405161020b929190612b92565b3480156104ad57600080fd5b506101e76104bc366004612532565b611623565b3480156104cd57600080fd5b506101fe6104dc366004612503565b611849565b3480156104ed57600080fd5b5061030d6104fc3660046124d3565b611a43565b34801561050d57600080fd5b506101e761051c366004612568565b611a50565b61053461052f3660046122f2565b611c83565b60405161020b9291906126c8565b34801561054e57600080fd5b506101fe611e13565b34801561056357600080fd5b5061030d611e19565b6000546001600160a01b0316331461059f5760405162461bcd60e51b815260040161059690612932565b60405180910390fd5b811561063a576001600160a01b0383161515806105b95750805b6105d55760405162461bcd60e51b81526004016105969061284c565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055610656565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b610669612224565b61067284610f79565b600085815260066020908152604080832033845290915290208151919250906106c49064e8d4a51000906106b09087906001600160801b0316611e28565b816106b757fe5b6001840154919004611e65565b600182015580546106d59085611eb2565b81556005805460009190879081106106e957fe5b6000918252602090912001546001600160a01b03169050801561076f578154604051637784327360e11b81526001600160a01b0383169163ef0864e69161073c918a9133918a9160009190600401612b53565b600060405180830381600087803b15801561075657600080fd5b505af115801561076a573d6000803e3d6000fd5b505050505b61079d84866004898154811061078157fe5b6000918252602090912001546001600160a01b03169190611ed5565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107e19190612b4a565b60405180910390a4505050505050565b600381815481106107fe57fe5b6000918252602090912001546001600160801b03811691506001600160401b03600160801b8204811691600160c01b90041683565b60085481565b610841612224565b61084a83610f79565b6000848152600660209081526040808320338452909152812082518154939450909264e8d4a510009161088691906001600160801b0316611e28565b8161088d57fe5b04905060006108b16108ac846001015484611e6590919063ffffffff16565b611fc3565b60018401839055905080156108f4576108f46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611ed5565b60006005878154811061090357fe5b6000918252602090912001546001600160a01b031690508015610988578354604051637784327360e11b81526001600160a01b0383169163ef0864e691610955918b9133918c91899190600401612b53565b600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954846040516109c29190612b4a565b60405180910390a350505050505050565b6000546001600160a01b031633146109fd5760405162461bcd60e51b815260040161059690612932565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a495760405162461bcd60e51b815260040161059690612932565b60098190556040517fa88809e216d7a0564bd5ad2ac680a84448b0b926602624d9e395c7c3864e72e990610a7e908390612b4a565b60405180910390a150565b60008281526006602090815260408083203384529091528120805482825560018201839055600580549293919286908110610ac057fe5b6000918252602090912001546001600160a01b031690508015610b4557604051637784327360e11b81526001600160a01b0382169063ef0864e690610b12908890339089906000908190600401612b53565b600060405180830381600087803b158015610b2c57600080fd5b505af1158015610b40573d6000803e3d6000fd5b505050505b610b5784836004888154811061078157fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610b9b9190612b4a565b60405180910390a45050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546001600160a01b0316610bf65760405162461bcd60e51b815260040161059690612a00565b600060048281548110610c0557fe5b60009182526020822001546040516370a0823160e01b81526001600160a01b03909116925082906370a0823190610c40903090600401612636565b60206040518083038186803b158015610c5857600080fd5b505afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9091906124eb565b60025460405163095ea7b360e01b81529192506001600160a01b038085169263095ea7b392610cc592169085906004016126af565b602060405180830381600087803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d17919061237a565b5060025460405163ce5494bb60e01b81526000916001600160a01b03169063ce5494bb90610d49908690600401612636565b602060405180830381600087803b158015610d6357600080fd5b505af1158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190612396565b6040516370a0823160e01b81529091506001600160a01b038216906370a0823190610dca903090600401612636565b60206040518083038186803b158015610de257600080fd5b505afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a91906124eb565b8214610e385760405162461bcd60e51b81526004016105969061287b565b6001600160a01b03811660009081526007602052604090205460ff1615610e715760405162461bcd60e51b81526004016105969061299c565b6001600160a01b03808216600090815260076020526040808220805460ff1990811660011790915592861682529020805490911690556004805482919086908110610eb857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b6001546001600160a01b0316338114610f175760405162461bcd60e51b815260040161059690612967565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b610f81612224565b60038281548110610f8e57fe5b60009182526020918290206040805160608101825292909101546001600160801b03811683526001600160401b03600160801b82048116948401859052600160c01b909104169082015291504211156111fe57600060048381548110610ff057fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190611029903090600401612636565b60206040518083038186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107991906124eb565b905080156111225760006110a383602001516001600160401b031642611eb290919063ffffffff16565b905060006008546110d685604001516001600160401b03166110d060095486611e2890919063ffffffff16565b90611e28565b816110dd57fe5b049050611114611103846110f68464e8d4a51000611e28565b816110fd57fe5b04611fe9565b85516001600160801b031690612012565b6001600160801b0316845250505b61112b42612041565b6001600160401b03166020830152600380548391908590811061114a57fe5b6000918252602091829020835191018054848401516040958601516001600160801b03199092166001600160801b039094169390931767ffffffffffffffff60801b1916600160801b6001600160401b0394851602176001600160c01b0316600160c01b93909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad353926111f49290918691612ba0565b60405180910390a2505b919050565b8060005b818110156112335761122a84848381811061121e57fe5b90506020020135610f79565b50600101611207565b50505050565b6004818154811061124657fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205460ff1681565b60405163d505accf60e01b81526001600160a01b0389169063d505accf906112ad908a908a908a908a908a908a908a9060040161266e565b600060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146113225760405162461bcd60e51b815260040161059690612932565b6113618361135b6003878154811061133657fe5b60009182526020909120015460085490600160c01b90046001600160401b0316611eb2565b9061206a565b60085561136d83612041565b6003858154811061137a57fe5b9060005260206000200160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555080156113ee5781600585815481106113bf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8061141a576005848154811061140057fe5b6000918252602090912001546001600160a01b031661141c565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e18658584604051611457929190612b82565b60405180910390a350505050565b6000546001600160a01b031681565b61147c612224565b61148584610f79565b60008581526006602090815260408083206001600160a01b038716845290915290208054919250906114b7908561206a565b815581516114ee9064e8d4a51000906114da9087906001600160801b0316611e28565b816114e157fe5b600184015491900461208d565b816001018190555060006005868154811061150557fe5b6000918252602090912001546001600160a01b03169050801561158b578154604051637784327360e11b81526001600160a01b0383169163ef0864e691611558918a918991829160009190600401612b53565b600060405180830381600087803b15801561157257600080fd5b505af1158015611586573d6000803e3d6000fd5b505050505b6115bb33308760048a8154811061159e57fe5b6000918252602090912001546001600160a01b03169291906120d3565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107e19190612b4a565b60066020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b0316331461164d5760405162461bcd60e51b815260040161059690612932565b6001600160a01b03821660009081526007602052604090205460ff16156116865760405162461bcd60e51b81526004016105969061299c565b600854611693908461206a565b6008556004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b038086166001600160a01b03199283161790925560058054938401815560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090930180549285169290911691909117905560408051606081019091529081526003906020810161174042612041565b6001600160401b0316815260200161175786612041565b6001600160401b0390811690915282546001818101855560009485526020808620855193018054828701516040978801518716600160c01b026001600160c01b0391909716600160801b0267ffffffffffffffff60801b196001600160801b039097166001600160801b031990931692909217959095161793909316939093179091556001600160a01b03808716808652600790935292909320805460ff19168417905560045491841692909161180d91611eb2565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161183c9190612b4a565b60405180910390a4505050565b6000611853612224565b6003848154811061186057fe5b600091825260208083206040805160608101825291909301546001600160801b0380821683526001600160401b03600160801b8304811684860152600160c01b90920490911682850152888552600683528385206001600160a01b03891686529092529183208251600480549496509194921692889081106118de57fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190611917903090600401612636565b60206040518083038186803b15801561192f57600080fd5b505afa158015611943573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196791906124eb565b905083602001516001600160401b03164211801561198457508015155b15611a0a5760006119ab85602001516001600160401b031642611eb290919063ffffffff16565b905060006008546119d887604001516001600160401b03166110d060095486611e2890919063ffffffff16565b816119df57fe5b049050611a05836119f58364e8d4a51000611e28565b816119fc57fe5b8691900461206a565b935050505b60018301548354611a38916108ac9164e8d4a5100090611a2a9087611e28565b81611a3157fe5b0490611e65565b979650505050505050565b6005818154811061124657fe5b611a58612224565b611a6184610f79565b6000858152600660209081526040808320338452909152812082518154939450909264e8d4a5100091611a9d91906001600160801b0316611e28565b81611aa457fe5b0490506000611ac36108ac846001015484611e6590919063ffffffff16565b9050611afe64e8d4a51000611aee86600001516001600160801b031689611e2890919063ffffffff16565b81611af557fe5b84919004611e65565b60018401558254611b0f9087611eb2565b8355611b456001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611ed5565b600060058881548110611b5457fe5b6000918252602090912001546001600160a01b031690508015611bd9578354604051637784327360e11b81526001600160a01b0383169163ef0864e691611ba6918c9133918c91899190600401612b53565b600060405180830381600087803b158015611bc057600080fd5b505af1158015611bd4573d6000803e3d6000fd5b505050505b611beb868860048b8154811061078157fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611c2f9190612b4a565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611c719190612b4a565b60405180910390a35050505050505050565b606080836001600160401b0381118015611c9c57600080fd5b50604051908082528060200260200182016040528015611cc6578160200160208202803683370190505b509150836001600160401b0381118015611cdf57600080fd5b50604051908082528060200260200182016040528015611d1357816020015b6060815260200190600190039081611cfe5790505b50905060005b84811015611e0a576000606030888885818110611d3257fe5b9050602002810190611d449190612bca565b604051611d5292919061260a565b600060405180830381855af49150503d8060008114611d8d576040519150601f19603f3d011682016040523d82523d6000602084013e611d92565b606091505b50915091508180611da1575085155b611daa826121c4565b90611dc85760405162461bcd60e51b8152600401610596919061276d565b5081858481518110611dd657fe5b60200260200101901515908115158152505080848481518110611df557fe5b60209081029190910101525050600101611d19565b50935093915050565b60095481565b6001546001600160a01b031681565b6000811580611e4357505080820282828281611e4057fe5b04145b611e5f5760405162461bcd60e51b815260040161059690612ab0565b92915050565b6000818303818312801590611e7a5750838113155b80611e8f5750600083128015611e8f57508381135b611eab5760405162461bcd60e51b815260040161059690612a37565b9392505050565b80820382811115611e5f5760405162461bcd60e51b815260040161059690612780565b60006060846001600160a01b031663a9059cbb8585604051602401611efb9291906126af565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611f34919061261a565b6000604051808303816000865af19150503d8060008114611f71576040519150601f19603f3d011682016040523d82523d6000602084013e611f76565b606091505b5091509150818015611fa0575080511580611fa0575080806020019051810190611fa0919061237a565b611fbc5760405162461bcd60e51b8152600401610596906127d4565b5050505050565b600080821215611fe55760405162461bcd60e51b8152600401610596906127af565b5090565b60006001600160801b03821115611fe55760405162461bcd60e51b8152600401610596906128c4565b8181016001600160801b038083169082161015611e5f5760405162461bcd60e51b8152600401610596906128fb565b60006001600160401b03821115611fe55760405162461bcd60e51b8152600401610596906129c9565b81810181811015611e5f5760405162461bcd60e51b8152600401610596906128fb565b60008282018183128015906120a25750838112155b806120b757506000831280156120b757508381125b611eab5760405162461bcd60e51b81526004016105969061280b565b60006060856001600160a01b03166323b872dd8686866040516024016120fb9392919061264a565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612134919061261a565b6000604051808303816000865af19150503d8060008114612171576040519150601f19603f3d011682016040523d82523d6000602084013e612176565b606091505b50915091508180156121a05750805115806121a05750808060200190518101906121a0919061237a565b6121bc5760405162461bcd60e51b815260040161059690612a7b565b505050505050565b606060448251101561220a575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c7900000060208201526111fe565b60048201915081806020019051810190611e5f9190612439565b604080516060810182526000808252602082018190529181019190915290565b60008083601f840112612255578182fd5b5081356001600160401b0381111561226b578182fd5b602083019150836020808302850101111561228557600080fd5b9250929050565b60006020828403121561229d578081fd5b8135611eab81612c3a565b6000806000606084860312156122bc578182fd5b83356122c781612c3a565b925060208401356122d781612c52565b915060408401356122e781612c52565b809150509250925092565b600080600060408486031215612306578283fd5b83356001600160401b0381111561231b578384fd5b61232786828701612244565b90945092505060208401356122e781612c52565b6000806020838503121561234d578182fd5b82356001600160401b03811115612362578283fd5b61236e85828601612244565b90969095509350505050565b60006020828403121561238b578081fd5b8151611eab81612c52565b6000602082840312156123a7578081fd5b8151611eab81612c3a565b600080600080600080600080610100898b0312156123ce578384fd5b88356123d981612c3a565b975060208901356123e981612c3a565b965060408901356123f981612c3a565b9550606089013594506080890135935060a089013560ff8116811461241c578384fd5b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561244a578081fd5b81516001600160401b0380821115612460578283fd5b818401915084601f830112612473578283fd5b815181811115612481578384fd5b604051601f8201601f1916810160200183811182821017156124a1578586fd5b6040528181528382016020018710156124b8578485fd5b6124c9826020830160208701612c0e565b9695505050505050565b6000602082840312156124e4578081fd5b5035919050565b6000602082840312156124fc578081fd5b5051919050565b60008060408385031215612515578182fd5b82359150602083013561252781612c3a565b809150509250929050565b600080600060608486031215612546578081fd5b83359250602084013561255881612c3a565b915060408401356122e781612c3a565b60008060006060848603121561257c578081fd5b833592506020840135915060408401356122e781612c3a565b600080600080608085870312156125aa578182fd5b843593506020850135925060408501356125c381612c3a565b915060608501356125d381612c52565b939692955090935050565b600081518084526125f6816020860160208601612c0e565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161262c818460208701612c0e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156127035781511515845292840192908401906001016126e5565b5050508381038285015280855161271a8184612b4a565b91508192508381028201848801865b838110156127535785830385526127418383516125de565b94870194925090860190600101612729565b50909998505050505050505050565b901515815260200190565b600060208252611eab60208301846125de565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252600b908201526a0496e7465676572203c20360ac1b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b60208082526029908201527f4d61737465724368656656323a206d696772617465642062616c616e6365206d6040820152680eae6e840dac2e8c6d60bb1b606082015260800190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b602080825260139082015272151bdad95b88185b1c9958591e481859191959606a1b604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252601d908201527f4d61737465724368656656323a206e6f206d69677261746f7220736574000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6000808335601e19843603018112612be0578283fd5b8301803591506001600160401b03821115612bf9578283fd5b60200191503681900382131561228557600080fd5b60005b83811015612c29578181015183820152602001612c11565b838111156112335750506000910152565b6001600160a01b0381168114612c4f57600080fd5b50565b8015158114612c4f57600080fdfea2646970667358221220e810aee30ec465dfbd653f20d86b628740567fb8a3aa21bbb4e994c8659e0cbe64736f6c634300060c0033",
linkReferences: {},
deployedLinkReferences: {},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment