1.8k txs
1.8k calls
constructor
constructor(address _approvedToken, address _xyroToken, address _treasury, address _wallet, address _swapRouter)
functions
ACCOUNTANT_ROLE
viewfunction ACCOUNTANT_ROLE() view returns (bytes32)
approvedToken
viewfunction approvedToken() view returns (address)
buybackBalance
viewfunction buybackBalance() view returns (uint256)
buybackPart
viewfunction buybackPart() view returns (uint256)
collectedFees
viewfunction collectedFees() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
FEE_DENOMINATOR
viewfunction FEE_DENOMINATOR() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
nonces
viewfunction nonces(address owner) view returns (uint256)
rewardsBalance
viewfunction rewardsBalance() view returns (uint256)
rewardsPart
viewfunction rewardsPart() view returns (uint256)
signers
viewfunction signers(address) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
swapRouter
viewfunction swapRouter() view returns (address)
treasury
viewfunction treasury() view returns (address)
wallet
viewfunction wallet() view returns (address)
xyroToken
viewfunction xyroToken() view returns (address)
buybackAndBurn
nonpayablefunction buybackAndBurn()
collectFees
nonpayablefunction collectFees(uint256 amount, address token)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setApprovedToken
nonpayablefunction setApprovedToken(address _approvedToken)
setFeeDistribution
nonpayablefunction setFeeDistribution(uint256 _buybackPart, uint256 _rewardsPart)
setSigner
nonpayablefunction setSigner(address signer, bool status)
setSwapRouter
nonpayablefunction setSwapRouter(address _swapRouter)
setTreasury
nonpayablefunction setTreasury(address _treasury)
setWallet
nonpayablefunction setWallet(address _wallet)
setXyroToken
nonpayablefunction setXyroToken(address _xyroToken)
verifyTransfer
nonpayablefunction verifyTransfer(tuple data, bytes signature)
withdraw
nonpayablefunction withdraw(uint256 amount, address to)
events
EIP712DomainChanged
event EIP712DomainChanged()
NewApprovedToken
event NewApprovedToken(address approvedToken)
NewSigner
event NewSigner(address signer)
NewSwapRouter
event NewSwapRouter(address swapRouter)
NewTreasury
event NewTreasury(address treasury)
NewWallet
event NewWallet(address wallet)
NewXyroToken
event NewXyroToken(address xyroToken)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
FailedInnerCall
error FailedInnerCall()
InvalidAccountNonce
error InvalidAccountNonce(address account, uint256 currentNonce)
InvalidShortString
error InvalidShortString()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StringTooLong
error StringTooLong(string str)
creation bytecode
0x6101606040526109c46007556103e86008553480156200001e57600080fd5b5060405162001fbf38038062001fbf833981016040819052620000419162000312565b604051806040016040528060048152602001635859524f60e01b815250604051806040016040528060018152602001603160f81b8152506200008e600183620001c260201b90919060201c565b610120526200009f816002620001c2565b61014052815160208084019190912060e052815190820120610100524660a0526200012d60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05262000143600033620001fb565b50600980546001600160a01b03199081166001600160a01b0397881617909155600a8054821695871695909517909455336000908152600b60205260409020805460ff19166001179055600c8054851693861693909317909255600e8054841692851692909217909155600d805490921692169190911790556200056b565b6000602083511015620001e257620001da83620002a9565b9050620001f5565b81620001ef848262000429565b5060ff90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620002a0576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002573390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620001f5565b506000620001f5565b600080829050601f81511115620002e0578260405163305a27a960e01b8152600401620002d79190620004f5565b60405180910390fd5b8051620002ed8262000546565b179392505050565b80516001600160a01b03811681146200030d57600080fd5b919050565b600080600080600060a086880312156200032b57600080fd5b6200033686620002f5565b94506200034660208701620002f5565b93506200035660408701620002f5565b92506200036660608701620002f5565b91506200037660808701620002f5565b90509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003ad57607f821691505b602082108103620003ce57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000424576000816000526020600020601f850160051c81016020861015620003ff5750805b601f850160051c820191505b8181101562000420578281556001016200040b565b5050505b505050565b81516001600160401b0381111562000445576200044562000382565b6200045d8162000456845462000398565b84620003d4565b602080601f8311600181146200049557600084156200047c5750858301515b600019600386901b1c1916600185901b17855562000420565b600085815260208120601f198616915b82811015620004c657888601518255948401946001909101908401620004a5565b5085821015620004e55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808352835180602085015260005b81811015620005255785810183015185820160400152820162000507565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620003ce5760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516119f9620005c66000396000610f6101526000610f2f01526000611101015260006110d9015260006110340152600061105e0152600061108801526119f96000f3fe608060405234801561001057600080fd5b50600436106101fa5760003560e01c80637ecebe001161011a578063bc46182c116100ad578063deaa59df1161007c578063deaa59df14610445578063e5b8650514610458578063e9bdbcb81461046b578063f0f442601461047e578063fb210b201461049157600080fd5b8063bc46182c14610403578063c31c9c0714610416578063d547741f14610429578063d73792a91461043c57600080fd5b8063a217fddf116100e9578063a217fddf146103b8578063a8b51fc8146103c0578063ab1efbab146103c9578063bab46259146103f057600080fd5b80637ecebe001461036e57806384b0196e146103815780639003adfe1461039c57806391d14854146103a557600080fd5b8063406ecfd51161019257806360d458ed1161016157806360d458ed1461031257806361d027b314610325578063726cb00214610338578063736c0d5b1461034b57600080fd5b8063406ecfd5146102b857806341273657146102c157806351f3b4bd146102d4578063521eb273146102e757600080fd5b80632f2ff15d116101ce5780632f2ff15d1461027657806331cb61051461028957806335acd1081461029c57806336568abe146102a557600080fd5b8062f714ce146101ff57806301ffc9a714610214578063131f2e531461023c578063248a9ca314610253575b600080fd5b61021261020d36600461158c565b610499565b005b6102276102223660046115b8565b61051d565b60405190151581526020015b60405180910390f35b61024560055481565b604051908152602001610233565b6102456102613660046115e2565b60009081526020819052604090206001015490565b61021261028436600461158c565b610554565b610212610297366004611609565b61057f565b61024560075481565b6102126102b336600461158c565b6105e7565b61024560085481565b6102126102cf366004611640565b61061a565b6102126102e236600461158c565b61067b565b600d546102fa906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61021261032036600461165b565b6107b1565b600c546102fa906001600160a01b031681565b6102126103463660046116ed565b6107c8565b610227610359366004611640565b600b6020526000908152604090205460ff1681565b61024561037c366004611640565b6109a1565b6103896109bf565b6040516102339796959493929190611813565b61024560065481565b6102276103b336600461158c565b610a05565b610245600081565b61024560045481565b6102457f369da55721ba2b3acddd63aac7d6512c3e5762a78fa01c44f423f97868330c3481565b6009546102fa906001600160a01b031681565b600a546102fa906001600160a01b031681565b600e546102fa906001600160a01b031681565b61021261043736600461158c565b610a2e565b61024561271081565b610212610453366004611640565b610a53565b610212610466366004611640565b610aac565b610212610479366004611640565b610b05565b61021261048c366004611640565b610b5e565b610212610bb7565b60006104a481610d75565b8260065410156104ea5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064015b60405180910390fd5b82600660008282546104fc91906118c2565b9091555050600954610518906001600160a01b03168385610d82565b505050565b60006001600160e01b03198216637965db0b60e01b148061054e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526020819052604090206001015461056f81610d75565b6105798383610dd4565b50505050565b600061058a81610d75565b6001600160a01b0383166000818152600b6020908152604091829020805460ff191686151517905590519182527fffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb910160405180910390a1505050565b6001600160a01b03811633146106105760405163334bd91960e11b815260040160405180910390fd5b6105188282610e66565b600061062581610d75565b600e80546001600160a01b0319166001600160a01b0384169081179091556040519081527fdf9875a9a8977fb4b070a90c9f4b1f1b8ac32ef8bce3a97deab2fcf5fb89cd4e906020015b60405180910390a15050565b7f369da55721ba2b3acddd63aac7d6512c3e5762a78fa01c44f423f97868330c346106a581610d75565b600c54604051634dd1b96160e11b8152306004820152602481018590526001600160a01b03848116604483015290911690639ba372c290606401600060405180830381600087803b1580156106f957600080fd5b505af115801561070d573d6000803e3d6000fd5b5050505060006127106007548561072491906118d5565b61072e91906118ec565b90508060046000828254610742919061190e565b90915550506008546000906127109061075b90876118d5565b61076591906118ec565b90508060056000828254610779919061190e565b9091555082905061078a82876118c2565b61079491906118c2565b600660008282546107a5919061190e565b90915550505050505050565b60006107bc81610d75565b50600791909155600855565b8160400151421061080e5760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b9948195e1c1a5c995960821b60448201526064016104e1565b815160208301516000916108b5917f3d9407a1a095994ffd2c0091b9504f413900b3c52a314ee6de93a7aa84b10a169190610866826001600160a01b0316600090815260036020526040902080546001810190915590565b604080890151815160208101969096526001600160a01b03909416908501526060840191909152608083015260a082015260c00160405160208183030381529060405280519060200120610ed1565b905060006108c38284610efe565b6001600160a01b0381166000908152600b602052604090205490915060ff1661091d5760405162461bcd60e51b815260206004820152600c60248201526b2bb937b7339039b4b3b732b960a11b60448201526064016104e1565b836020015160055410156109685760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f756768207265776172647360701b60448201526064016104e1565b83602001516005600082825461097e91906118c2565b909155505060095484516020860151610579926001600160a01b03169190610d82565b6001600160a01b03811660009081526003602052604081205461054e565b6000606080600080600060606109d3610f28565b6109db610f5a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610a4981610d75565b6105798383610e66565b6000610a5e81610d75565b600d80546001600160a01b0319166001600160a01b0384169081179091556040519081527fd627a1aeb13261b560c345aaf7d003d55a27193b9284c0b941f53cd62a045f169060200161066f565b6000610ab781610d75565b600a80546001600160a01b0319166001600160a01b0384169081179091556040519081527f5000f11a2e342a457b8a973e7da51f02de5107cd90478018116e35ba0a5570b79060200161066f565b6000610b1081610d75565b600980546001600160a01b0319166001600160a01b0384169081179091556040519081527f64a7f2d332518c73716ad23fe3e055c4360ac3ef8d87aeb5dd689091a12a9b6b9060200161066f565b6000610b6981610d75565b600c80546001600160a01b0319166001600160a01b0384169081179091556040519081527fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea0869060200161066f565b7f369da55721ba2b3acddd63aac7d6512c3e5762a78fa01c44f423f97868330c34610be181610d75565b600954600e546004805460405163095ea7b360e01b81526001600160a01b0393841692810192909252602482015291169063095ea7b3906044016020604051808303816000875af1158015610c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5e9190611921565b506040805160e0810182526009546001600160a01b039081168252600a54811660208301908152610bb883850190815230606085019081526004805460808701908152600060a0880181815260c08901828152828555600e549a516304e45aaf60e01b81528a518a1695810195909552965188166024850152945162ffffff166044840152925186166064830152516084820152915160a48301529151831660c4820152929390929116906304e45aaf9060e4016020604051808303816000875af1158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061193e565b600a54600d54919250610518916001600160a01b03918216911683610d82565b610d7f8133610f87565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610518908490610fc4565b6000610de08383610a05565b610e5e576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610e163390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161054e565b50600061054e565b6000610e728383610a05565b15610e5e576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161054e565b600061054e610ede611027565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610f0e8686611152565b925092509250610f1e828261119f565b5090949350505050565b6060610f557f00000000000000000000000000000000000000000000000000000000000000006001611258565b905090565b6060610f557f00000000000000000000000000000000000000000000000000000000000000006002611258565b610f918282610a05565b610fc05760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016104e1565b5050565b6000610fd96001600160a01b03841683611303565b90508051600014158015610ffe575080806020019051810190610ffc9190611921565b155b1561051857604051635274afe760e01b81526001600160a01b03841660048201526024016104e1565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561108057507f000000000000000000000000000000000000000000000000000000000000000046145b156110aa57507f000000000000000000000000000000000000000000000000000000000000000090565b610f55604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000806000835160410361118c5760208401516040850151606086015160001a61117e88828585611318565b955095509550505050611198565b50508151600091506002905b9250925092565b60008260038111156111b3576111b3611957565b036111bc575050565b60018260038111156111d0576111d0611957565b036111ee5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561120257611202611957565b036112235760405163fce698f760e01b8152600481018290526024016104e1565b600382600381111561123757611237611957565b03610fc0576040516335e2f38360e21b8152600481018290526024016104e1565b606060ff83146112725761126b836113e7565b905061054e565b81805461127e9061196d565b80601f01602080910402602001604051908101604052809291908181526020018280546112aa9061196d565b80156112f75780601f106112cc576101008083540402835291602001916112f7565b820191906000526020600020905b8154815290600101906020018083116112da57829003601f168201915b5050505050905061054e565b606061131183836000611426565b9392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561135357506000915060039050826113dd565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156113a7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166113d3575060009250600191508290506113dd565b9250600091508190505b9450945094915050565b606060006113f4836114c3565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60608147101561144b5760405163cd78605960e01b81523060048201526024016104e1565b600080856001600160a01b0316848660405161146791906119a7565b60006040518083038185875af1925050503d80600081146114a4576040519150601f19603f3d011682016040523d82523d6000602084013e6114a9565b606091505b50915091506114b98683836114eb565b9695505050505050565b600060ff8216601f81111561054e57604051632cd44ac360e21b815260040160405180910390fd5b606082611500576114fb82611547565b611311565b815115801561151757506001600160a01b0384163b155b1561154057604051639996b31560e01b81526001600160a01b03851660048201526024016104e1565b5080611311565b8051156115575780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461158757600080fd5b919050565b6000806040838503121561159f57600080fd5b823591506115af60208401611570565b90509250929050565b6000602082840312156115ca57600080fd5b81356001600160e01b03198116811461131157600080fd5b6000602082840312156115f457600080fd5b5035919050565b8015158114610d7f57600080fd5b6000806040838503121561161c57600080fd5b61162583611570565b91506020830135611635816115fb565b809150509250929050565b60006020828403121561165257600080fd5b61131182611570565b6000806040838503121561166e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156116b6576116b661167d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156116e5576116e561167d565b604052919050565b600080828403608081121561170157600080fd5b606081121561170f57600080fd5b50611718611693565b61172184611570565b815260208085013581830152604085013560408301528193506060850135915067ffffffffffffffff8083111561175757600080fd5b828601925086601f84011261176b57600080fd5b82358181111561177d5761177d61167d565b61178f601f8201601f191684016116bc565b915080825287838286010111156117a557600080fd5b80838501848401376000838284010152508093505050509250929050565b60005b838110156117de5781810151838201526020016117c6565b50506000910152565b600081518084526117ff8160208601602086016117c3565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e0602084015261183460e084018a6117e7565b8381036040850152611846818a6117e7565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b8181101561189a5783518352928401929184019160010161187e565b50909c9b505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561054e5761054e6118ac565b808202811582820484141761054e5761054e6118ac565b60008261190957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561054e5761054e6118ac565b60006020828403121561193357600080fd5b8151611311816115fb565b60006020828403121561195057600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061198157607f821691505b6020821081036119a157634e487b7160e01b600052602260045260246000fd5b50919050565b600082516119b98184602087016117c3565b919091019291505056fea26469706673582212209d2fc103c9b06f8a42bad5c2b8f7a79c48985ec712a364ae20385e31fa56d5e864736f6c63430008180033000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9000000000000000000000000aeac3b55c3522157ecda7ec8fcb86c832faa28af0000000000000000000000009c8c0ee484896d734ab0c96578e26d40876a9b8700000000000000000000000059d74185d879b63e8543073ffa73cd5a12fc4104000000000000000000000000101f443b4d1b059569d643917553c771e1b9663e