0 txs
0 calls
constructor
constructor(address owner, address _treasuryAddress, address _backendSigner, address _tokenAddress)
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
backendSigner
viewfunction backendSigner() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
erc20
viewfunction erc20() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hashMessage
purefunction hashMessage(uint256 characterId, uint256 amount, address user, address tokenAddress, uint256 timestamp) pure returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isSupportedToken
viewfunction isSupportedToken(address _address) view returns (bool)
recoverSigner
purefunction recoverSigner(uint256 characterId, uint256 amount, address user, bytes32 r, bytes32 s, uint8 v, address tokenAddress, uint256 timestamp) pure returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
treasuryAddress
viewfunction treasuryAddress() view returns (address)
addSupportedTokens
nonpayablefunction addSupportedTokens(address _address)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pay
nonpayablefunction pay(uint256 characterId, bytes32 _r, bytes32 _s, uint8 _v, address tokenAddress, uint256 amount, uint256 timestamp)
removeSupportedAddress
nonpayablefunction removeSupportedAddress(address _address)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setBackendSigner
nonpayablefunction setBackendSigner(address _address)
setTreasuryAddress
nonpayablefunction setTreasuryAddress(address _address)
events
PaymentReceived
event PaymentReceived(uint256 indexed amount, address indexed from, uint256 indexed characterId, address tokenAddress)
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
ErrorOnTransferringFee
error ErrorOnTransferringFee()
InvalidMessage
error InvalidMessage()
InvalidTimeStamp
error InvalidTimeStamp()
NotASupportedToken
error NotASupportedToken()
creation bytecode
0x60806040523480156200001157600080fd5b50604051620013633803806200136383398101604081905262000034916200019c565b6200004e6000801b85620000a060201b620007651760201c565b600180546001600160a01b03199081166001600160a01b0395861617825560028054909116938516939093179092559091166000908152600360205260409020805460ff19169091179055506200020a565b620000ac8282620000b0565b5050565b620000bc828262000138565b620000ac576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000f43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b60006001600160a01b0382166200015d565b620001808162000163565b81146200018c57600080fd5b50565b80516200015d8162000175565b60008060008060808587031215620001b757620001b7600080fd5b6000620001c587876200018f565b9450506020620001d8878288016200018f565b9350506040620001eb878288016200018f565b9250506060620001fe878288016200018f565b91505092959194509250565b611149806200021a6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636605bfda116100ad578063c5f956af11610071578063c5f956af1461028f578063c62815dc146102a2578063c6d82cca146102b5578063d547741f146102c8578063f0f8d599146102db57600080fd5b80636605bfda1461022c57806375b238fc1461023f578063785e9e861461025457806391d1485414610274578063a217fddf1461028757600080fd5b806336568abe116100f457806336568abe146101c057806336f95670146101d357806347606673146101e657806362a2f9cc1461020657806365d65e861461021957600080fd5b806301ffc9a714610126578063240028e81461014f578063248a9ca31461017b5780632f2ff15d146101ab575b600080fd5b610139610134366004610a65565b6102ee565b6040516101469190610a98565b60405180910390f35b61013961015d366004610acb565b6001600160a01b031660009081526003602052604090205460ff1690565b61019e610189366004610afd565b60009081526020819052604090206001015490565b6040516101469190610b24565b6101be6101b9366004610b32565b610325565b005b6101be6101ce366004610b32565b61034f565b6101be6101e1366004610acb565b61038e565b6101f96101f4366004610b83565b6103c9565b6040516101469190610c3f565b6101be610214366004610acb565b61045f565b6002546101f9906001600160a01b031681565b6101be61023a366004610acb565b6104be565b61019e6000805160206110f483398151915281565b600454610267906001600160a01b031681565b6040516101469190610c6c565b610139610282366004610b32565b6104f9565b61019e600081565b6001546101f9906001600160a01b031681565b6101be6102b0366004610c7a565b610522565b61019e6102c3366004610d19565b6106c5565b6101be6102d6366004610b32565b610706565b6101be6102e9366004610acb565b61072b565b60006001600160e01b03198216637965db0b60e01b148061031f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000828152602081905260409020600101546103408161076f565b61034a838361077c565b505050565b6001600160a01b03811633146103805760405162461bcd60e51b815260040161037790610d91565b60405180910390fd5b61038a8282610800565b5050565b6000805160206110f48339815191526103a68161076f565b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000806103d98a8a8a87876106c5565b6040516020016103e99190610de4565b604051602081830303815290604052805190602001209050600181868989604051600081526020016040526040516104249493929190610e28565b6020604051602081039080840390855afa158015610446573d6000803e3d6000fd5b5050604051601f1901519b9a5050505050505050505050565b6000805160206110f48339815191526104778161076f565b6001600160a01b03821660009081526003602052604090205460ff1661038a576001600160a01b0382166000908152600360205260409020805460ff191660011790555050565b6000805160206110f48339815191526104d68161076f565b50600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3360006105358985848b8b8b8b8a6103c9565b6002549091506001600160a01b0380831691161461056657604051636eca2e4b60e01b815260040160405180910390fd5b8261057361025842610e73565b111561059257604051634b3d204d60e01b815260040160405180910390fd5b6001600160a01b03851660009081526003602052604090205460ff166105cb57604051633df81df960e11b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0387811691821783556001546040516323b872dd60e01b81526000946323b872dd936106139333939116918b9101610e86565b6020604051808303816000875af1158015610632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106569190610ec1565b90508061067657604051630de4bc2f60e01b815260040160405180910390fd5b89836001600160a01b0316867ff1400a28399713d21ebd76a4ea01970fad70f24ef5f1f4d770c0fff4c2c70501896040516106b19190610c3f565b60405180910390a450505050505050505050565b60008086868686866040516020016106e1959493929190610f0a565b60408051601f1981840301815291905280516020909101209150505b95945050505050565b6000828152602081905260409020600101546107218161076f565b61034a8383610800565b6000805160206110f48339815191526107438161076f565b506001600160a01b03166000908152600360205260409020805460ff19169055565b61038a828261077c565b6107798133610865565b50565b61078682826104f9565b61038a576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556107bc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61080a82826104f9565b1561038a576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61086f82826104f9565b61038a5761087c816108be565b6108878360206108d0565b604051602001610898929190610fa9565b60408051601f198184030181529082905262461bcd60e51b825261037791600401611033565b606061031f6001600160a01b03831660145b606060006108df836002611044565b6108ea906002611063565b67ffffffffffffffff81111561090257610902611076565b6040519080825280601f01601f19166020018201604052801561092c576020820181803683370190505b509050600360fc1b816000815181106109475761094761108c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106109765761097661108c565b60200101906001600160f81b031916908160001a905350600061099a846002611044565b6109a5906001611063565b90505b6001811115610a1d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106109d9576109d961108c565b1a60f81b8282815181106109ef576109ef61108c565b60200101906001600160f81b031916908160001a90535060049490941c93610a16816110a2565b90506109a8565b508315610a3c5760405162461bcd60e51b8152600401610377906110b9565b9392505050565b6001600160e01b031981165b811461077957600080fd5b803561031f81610a43565b600060208284031215610a7a57610a7a600080fd5b6000610a868484610a5a565b949350505050565b8015155b82525050565b6020810161031f8284610a8e565b60006001600160a01b03821661031f565b610a4f81610aa6565b803561031f81610ab7565b600060208284031215610ae057610ae0600080fd5b6000610a868484610ac0565b80610a4f565b803561031f81610aec565b600060208284031215610b1257610b12600080fd5b6000610a868484610af2565b80610a92565b6020810161031f8284610b1e565b60008060408385031215610b4857610b48600080fd5b6000610b548585610af2565b9250506020610b6585828601610ac0565b9150509250929050565b60ff8116610a4f565b803561031f81610b6f565b600080600080600080600080610100898b031215610ba357610ba3600080fd5b6000610baf8b8b610af2565b9850506020610bc08b828c01610af2565b9750506040610bd18b828c01610ac0565b9650506060610be28b828c01610af2565b9550506080610bf38b828c01610af2565b94505060a0610c048b828c01610b78565b93505060c0610c158b828c01610ac0565b92505060e0610c268b828c01610af2565b9150509295985092959890939650565b610a9281610aa6565b6020810161031f8284610c36565b600061031f82610aa6565b600061031f82610c4d565b610a9281610c58565b6020810161031f8284610c63565b600080600080600080600060e0888a031215610c9857610c98600080fd5b6000610ca48a8a610af2565b9750506020610cb58a828b01610af2565b9650506040610cc68a828b01610af2565b9550506060610cd78a828b01610b78565b9450506080610ce88a828b01610ac0565b93505060a0610cf98a828b01610af2565b92505060c0610d0a8a828b01610af2565b91505092959891949750929550565b600080600080600060a08688031215610d3457610d34600080fd5b6000610d408888610af2565b9550506020610d5188828901610af2565b9450506040610d6288828901610ac0565b9350506060610d7388828901610ac0565b9250506080610d8488828901610af2565b9150509295509295909350565b6020808252810161031f81602f81527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560208201526e103937b632b9903337b91039b2b63360891b604082015260600190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c016000610e168284610b1e565b50602001919050565b60ff8116610a92565b60808101610e368287610b1e565b610e436020830186610e1f565b610e506040830185610b1e565b6106fd6060830184610b1e565b634e487b7160e01b600052601160045260246000fd5b8181038181111561031f5761031f610e5d565b60608101610e948286610c36565b610ea16020830185610c36565b610a866040830184610b1e565b801515610a4f565b805161031f81610eae565b600060208284031215610ed657610ed6600080fd5b6000610a868484610eb6565b600061031f8260601b90565b600061031f82610ee2565b610a92610f0582610aa6565b610eee565b6000610f168288610b1e565b602082019150610f268287610b1e565b602082019150610f368286610ef9565b601482019150610f468285610ef9565b601482019150610f568284610b1e565b5060200195945050505050565b60005b83811015610f7e578181015183820152602001610f66565b50506000910152565b6000610f91825190565b610f9f818560208601610f63565b9290920192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526017016000610fdb8285610f87565b7001034b99036b4b9b9b4b733903937b6329607d1b81526011019150610a868284610f87565b600061100b825190565b808452602084019350611022818560208601610f63565b601f01601f19169290920192915050565b60208082528101610a3c8184611001565b81810280821583820485141761105c5761105c610e5d565b5092915050565b8082018082111561031f5761031f610e5d565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816110b1576110b1610e5d565b506000190190565b60208082528181019081527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460408301526060820161031f56fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212204b931f862f449668e4c1738034b4004379e9d26f58b50331d87a3e9007106c4664736f6c634300081100330000000000000000000000002472d36f785ca4cfad266269081cbb7fca8e31fe000000000000000000000000ba59095671e8682317eb9bbaec87ce7cc4ff53ec00000000000000000000000067af9c658832f4d0befc6005f3e71ccd90585550000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913