10 txs
62 calls
constructor
constructor(address guardian)
functions
CLIENT_ROLE
viewfunction CLIENT_ROLE() view returns (bytes32)
CONFIGURER_ROLE
viewfunction CONFIGURER_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultUserRedemptionLimitConfigs
viewfunction defaultUserRedemptionLimitConfigs(address) view returns (uint256 limit, uint48 window)
defaultUserSubscriptionLimitConfigs
viewfunction defaultUserSubscriptionLimitConfigs(address) view returns (uint256 limit, uint48 window)
getCurrentGlobalRedemptionLimit
viewfunction getCurrentGlobalRedemptionLimit(address rwaToken) view returns (uint256 currentCapacityUsed, uint256 availableCapacity)
getCurrentGlobalSubscriptionLimit
viewfunction getCurrentGlobalSubscriptionLimit(address rwaToken) view returns (uint256 currentCapacityUsed, uint256 availableCapacity)
getCurrentUserRedemptionLimit
viewfunction getCurrentUserRedemptionLimit(address rwaToken, bytes32 userID) view returns (uint256 currentCapacityUsed, uint256 availableCapacity)
getCurrentUserSubscriptionLimit
viewfunction getCurrentUserSubscriptionLimit(address rwaToken, bytes32 userID) view returns (uint256 currentCapacityUsed, uint256 availableCapacity)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
globalRedemptionLimits
viewfunction globalRedemptionLimits(address) view returns (uint256 capacityUsed, uint256 lastUpdated, uint256 limit, uint48 window)
globalSubscriptionLimits
viewfunction globalSubscriptionLimits(address) view returns (uint256 capacityUsed, uint256 lastUpdated, uint256 limit, uint48 window)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
userRedemptionLimits
viewfunction userRedemptionLimits(address, bytes32) view returns (uint256 capacityUsed, uint256 lastUpdated, uint256 limit, uint48 window)
userSubscriptionLimits
viewfunction userSubscriptionLimits(address, bytes32) view returns (uint256 capacityUsed, uint256 lastUpdated, uint256 limit, uint48 window)
checkAndUpdateRateLimit
nonpayablefunction checkAndUpdateRateLimit(uint8 transactionType, address rwaToken, bytes32 userID, uint256 usdValue)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setDefaultUserRedemptionLimitConfig
nonpayablefunction setDefaultUserRedemptionLimitConfig(address rwaToken, uint256 limit, uint48 window)
setDefaultUserSubscriptionLimitConfig
nonpayablefunction setDefaultUserSubscriptionLimitConfig(address rwaToken, uint256 limit, uint48 window)
setGlobalRedemptionLimit
nonpayablefunction setGlobalRedemptionLimit(address rwaToken, uint256 limit, uint48 window)
setGlobalSubscriptionLimit
nonpayablefunction setGlobalSubscriptionLimit(address rwaToken, uint256 limit, uint48 window)
setUserRedemptionRateLimit
nonpayablefunction setUserRedemptionRateLimit(address rwaToken, bytes32 userID, uint256 redemptionLimit, uint48 redemptionWindow)
setUserSubscriptionRateLimit
nonpayablefunction setUserSubscriptionRateLimit(address rwaToken, bytes32 userID, uint256 subscriptionLimit, uint48 subscriptionWindow)
events
DefaultUserRateLimitSet
event DefaultUserRateLimitSet(uint8 transactionType, address rwaToken, uint256 limit, uint48 window)
GlobalRateLimitSet
event GlobalRateLimitSet(uint8 transactionType, address rwaToken, uint256 limit, uint48 window)
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)
UserRateLimitSet
event UserRateLimitSet(uint8 transactionType, address rwaToken, bytes32 userID, uint256 limit, uint48 window)
errors
DefaultUserRateLimitNotSet
error DefaultUserRateLimitNotSet()
GlobalRateLimitNotSet
error GlobalRateLimitNotSet()
RateLimitExceeded
error RateLimitExceeded()
RWAAddressCantBeZero
error RWAAddressCantBeZero()
UserIDCantBeZero
error UserIDCantBeZero()
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001d4e38038062001d4e83398101604081905262000034916200019e565b6200004160008262000048565b50620001d0565b6200005f82826200008b60201b6200101d1760201c565b600082815260016020908152604090912062000086918390620010a16200012c821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000128576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000e73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000143836001600160a01b0384166200014c565b90505b92915050565b6000818152600183016020526040812054620001955750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000146565b50600062000146565b600060208284031215620001b157600080fd5b81516001600160a01b0381168114620001c957600080fd5b9392505050565b611b6e80620001e06000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80637f01ed89116100f9578063b6ee2ef511610097578063ca15c87311610071578063ca15c8731461050b578063cd6ea8e41461051e578063d547741f1461054d578063eae6f6521461056057600080fd5b8063b6ee2ef5146104d2578063b6ee3624146104e5578063c1c48984146104f857600080fd5b806391d14854116100d357806391d148541461048f578063a217fddf146104a2578063ab9613dd146104aa578063abbb9f4c146104bd57600080fd5b80637f01ed891461043e5780638a75d46f146104515780639010d07c1461046457600080fd5b80632f2ff15d11610166578063435e3a0811610140578063435e3a081461038e578063452f35a2146103cd57806361d925cb146104185780637d4945b71461042b57600080fd5b80632f2ff15d1461034057806336568abe1461035357806337866b8f1461036657600080fd5b80631989e499116101a25780631989e499146102755780631f50eecb14610288578063248a9ca3146102d0578063259ae9381461030157600080fd5b8062decd57146101c857806301ffc9a71461023d5780630f36a80b14610260575b600080fd5b6102106101d636600461170c565b600460209081526000928352604080842090915290825290208054600182015460028301546003909301549192909165ffffffffffff1684565b6040805194855260208501939093529183015265ffffffffffff1660608201526080015b60405180910390f35b61025061024b366004611736565b610587565b6040519015158152602001610234565b61027361026e366004611776565b6105b2565b005b6102736102833660046117bc565b6106d0565b61021061029636600461170c565b600560209081526000928352604080842090915290825290208054600182015460028301546003909301549192909165ffffffffffff1684565b6102f36102de3660046117f8565b60009081526020819052604090206001015490565b604051908152602001610234565b61021061030f366004611811565b600360208190526000918252604090912080546001820154600283015492909301549092919065ffffffffffff1684565b61027361034e36600461182c565b6107a2565b61027361036136600461182c565b6107cd565b61037961037436600461170c565b610850565b60408051928352602083019190915201610234565b61021061039c366004611811565b600260208190526000918252604090912080546001820154928201546003909201549092919065ffffffffffff1684565b6103fc6103db366004611811565b6006602052600090815260409020805460019091015465ffffffffffff1682565b6040805192835265ffffffffffff909116602083015201610234565b6102736104263660046117bc565b6108c6565b610273610439366004611858565b6109ad565b61037961044c366004611811565b610ba0565b61027361045f3660046117bc565b610c0b565b6104776104723660046118a0565b610cd3565b6040516001600160a01b039091168152602001610234565b61025061049d36600461182c565b610cf2565b6102f3600081565b6102736104b83660046117bc565b610d1b565b6102f3600080516020611b1983398151915281565b6103796104e0366004611811565b610e02565b6102736104f3366004611776565b610e62565b61037961050636600461170c565b610f76565b6102f36105193660046117f8565b610fe0565b6103fc61052c366004611811565b6007602052600090815260409020805460019091015465ffffffffffff1682565b61027361055b36600461182c565b610ff7565b6102f37fa5ff3ec7a96cdbba4d2d5172d66bbc73c6db3885f29b21be5da9fa7a7c02523281565b60006001600160e01b03198216635a05180f60e01b14806105ac57506105ac826110b6565b92915050565b600080516020611b198339815191526105cb81336110eb565b6001600160a01b0385166105f25760405163a04472bf60e01b815260040160405180910390fd5b6000849003610614576040516310bb42ab60e01b815260040160405180910390fd5b60408051608081018252600080825242602080840191825283850188815265ffffffffffff888116606087019081526001600160a01b038d168652600484528786208c87529093528685209551865592516001860155516002850155516003909301805465ffffffffffff1916939091169290921790915590517f080e2829ffdf0bfdba11b72075d05e96e54668c10022757045e019361c42b13f916106c19188908890889088906118fa565b60405180910390a15050505050565b600080516020611b198339815191526106e981336110eb565b6001600160a01b0384166107105760405163a04472bf60e01b815260040160405180910390fd5b60408051808201825284815265ffffffffffff84811660208084019182526001600160a01b0389166000908152600790915284902092518355516001928301805465ffffffffffff19169190921617905590517ffea502c05df8e0d99757f2169af37f199479eae2681b84192295d56bbab3a4e7916107949187908790879061193c565b60405180910390a150505050565b6000828152602081905260409020600101546107be81336110eb565b6107c8838361114f565b505050565b6001600160a01b03811633146108425760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61084c8282611171565b5050565b6001600160a01b03821660009081526004602090815260408083208484528252808320815160808101835281548082526001830154948201859052600283015493820184905260039092015465ffffffffffff1660608201819052859491936108ba939291611193565b92509250509250929050565b600080516020611b198339815191526108df81336110eb565b6001600160a01b0384166109065760405163a04472bf60e01b815260040160405180910390fd5b60408051608081018252600080825242602080840191825283850188815265ffffffffffff888116606087019081526001600160a01b038c168652600293849052878620965187559351600187015590519185019190915590516003909301805465ffffffffffff1916939091169290921790915590517e37e03ec575b1c5076e32dabd3ea90880aab88cb56b5d9cc9cc27038008e74e916107949187908790879061193c565b7fa5ff3ec7a96cdbba4d2d5172d66bbc73c6db3885f29b21be5da9fa7a7c0252326109d881336110eb565b6000808660018111156109ed576109ed6118c2565b14610a0f576001600160a01b0385166000908152600360205260409020610a28565b6001600160a01b03851660009081526002602052604090205b90508060010154600003610a4e576040516203f19d60ee1b815260040160405180910390fd5b80546001820154600283015460038401546000938493610a7a93919290919065ffffffffffff16611193565b9150915080851115610a9f5760405163a74c1c5f60e01b815260040160405180910390fd5b600080896001811115610ab457610ab46118c2565b14610ae1576001600160a01b03881660009081526005602090815260408083208a84529091529020610b05565b6001600160a01b03881660009081526004602090815260408083208a845290915290205b90508060010154600003610b1e57610b1e898989611220565b80546001820154600283015460038401546000938493610b4a93919290919065ffffffffffff16611193565b9150915080881115610b6f5760405163a74c1c5f60e01b815260040160405180910390fd5b610b79888661198c565b8655426001870155610b8b888361198c565b83555050426001909101555050505050505050565b6001600160a01b03811660009081526002602081815260408084208151608081018352815480825260018301549482018590529482015492810183905260039091015465ffffffffffff166060820181905285949193610c01939091611193565b9250925050915091565b600080516020611b19833981519152610c2481336110eb565b6001600160a01b038416610c4b5760405163a04472bf60e01b815260040160405180910390fd5b60408051808201825284815265ffffffffffff84811660208084019182526001600160a01b038916600090815260069091528481209351845590516001909301805465ffffffffffff19169390921692909217905590517ffea502c05df8e0d99757f2169af37f199479eae2681b84192295d56bbab3a4e7916107949187908790879061193c565b6000828152600160205260408120610ceb9083611358565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020611b19833981519152610d3481336110eb565b6001600160a01b038416610d5b5760405163a04472bf60e01b815260040160405180910390fd5b60408051608081018252600080825242602080840191825283850188815265ffffffffffff888116606087019081526001600160a01b038c168652600393849052948790209551865592516001808701919091559051600286015592519301805465ffffffffffff1916939091169290921790915590517e37e03ec575b1c5076e32dabd3ea90880aab88cb56b5d9cc9cc27038008e74e916107949187908790879061193c565b6001600160a01b03811660009081526003602081815260408084208151608081018352815480825260018301549482018590526002830154938201849052919094015465ffffffffffff1660608501819052859493610c01939091611193565b600080516020611b19833981519152610e7b81336110eb565b6001600160a01b038516610ea25760405163a04472bf60e01b815260040160405180910390fd5b6000849003610ec4576040516310bb42ab60e01b815260040160405180910390fd5b60408051608081018252600080825242602080840191825283850188815265ffffffffffff888116606087019081526001600160a01b038d168652600584528786208c87529093529386902094518555915160018086019190915591516002850155516003909301805465ffffffffffff19169390921692909217905590517f080e2829ffdf0bfdba11b72075d05e96e54668c10022757045e019361c42b13f916106c19188908890889088906118fa565b6001600160a01b03821660009081526005602090815260408083208484528252808320815160808101835281548082526001830154948201859052600283015493820184905260039092015465ffffffffffff1660608201819052859491936108ba939291611193565b60008181526001602052604081206105ac90611364565b60008281526020819052604090206001015461101381336110eb565b6107c88383611171565b6110278282610cf2565b61084c576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561105d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ceb836001600160a01b03841661136e565b60006001600160e01b03198216637965db0b60e01b14806105ac57506301ffc9a760e01b6001600160e01b03198316146105ac565b6110f58282610cf2565b61084c5761110d816001600160a01b031660146113bd565b6111188360206113bd565b6040516020016111299291906119c3565b60408051601f198184030181529082905262461bcd60e51b825261083991600401611a38565b611159828261101d565b60008281526001602052604090206107c890826110a1565b61117b8282611559565b60008281526001602052604090206107c890826115be565b600080806111a18642611a6b565b90508365ffffffffffff1681106111bf576000859250925050611217565b600065ffffffffffff85166111d48388611a7e565b6111de9190611a9d565b90508088116111ee5760006111f8565b6111f88189611a6b565b9350838611611208576000611212565b6112128487611a6b565b925050505b94509492505050565b600080846001811115611235576112356118c2565b14611257576001600160a01b0383166000908152600760205260409020611270565b6001600160a01b03831660009081526006602052604090205b60408051808201909152815480825260019092015465ffffffffffff16602082015291506000036112b45760405163021a286760e21b815260040160405180910390fd5b6000808560018111156112c9576112c96118c2565b146112f6576001600160a01b0384166000908152600560209081526040808320868452909152902061131a565b6001600160a01b038416600090815260046020908152604080832086845290915290205b60008155426001820155825160028201556020909201516003909201805465ffffffffffff191665ffffffffffff9093169290921790915550505050565b6000610ceb83836115d3565b60006105ac825490565b60008181526001830160205260408120546113b5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105ac565b5060006105ac565b606060006113cc836002611a7e565b6113d790600261198c565b67ffffffffffffffff8111156113ef576113ef611abf565b6040519080825280601f01601f191660200182016040528015611419576020820181803683370190505b509050600360fc1b8160008151811061143457611434611ad5565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061146357611463611ad5565b60200101906001600160f81b031916908160001a9053506000611487846002611a7e565b61149290600161198c565b90505b600181111561150a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106114c6576114c6611ad5565b1a60f81b8282815181106114dc576114dc611ad5565b60200101906001600160f81b031916908160001a90535060049490941c9361150381611aeb565b9050611495565b508315610ceb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610839565b6115638282610cf2565b1561084c576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ceb836001600160a01b0384166115fd565b60008260000182815481106115ea576115ea611ad5565b9060005260206000200154905092915050565b600081815260018301602052604081205480156116e6576000611621600183611a6b565b855490915060009061163590600190611a6b565b905081811461169a57600086600001828154811061165557611655611ad5565b906000526020600020015490508087600001848154811061167857611678611ad5565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806116ab576116ab611b02565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105ac565b60009150506105ac565b80356001600160a01b038116811461170757600080fd5b919050565b6000806040838503121561171f57600080fd5b611728836116f0565b946020939093013593505050565b60006020828403121561174857600080fd5b81356001600160e01b031981168114610ceb57600080fd5b803565ffffffffffff8116811461170757600080fd5b6000806000806080858703121561178c57600080fd5b611795856116f0565b935060208501359250604085013591506117b160608601611760565b905092959194509250565b6000806000606084860312156117d157600080fd5b6117da846116f0565b9250602084013591506117ef60408501611760565b90509250925092565b60006020828403121561180a57600080fd5b5035919050565b60006020828403121561182357600080fd5b610ceb826116f0565b6000806040838503121561183f57600080fd5b8235915061184f602084016116f0565b90509250929050565b6000806000806080858703121561186e57600080fd5b84356002811061187d57600080fd5b935061188b602086016116f0565b93969395505050506040820135916060013590565b600080604083850312156118b357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b600281106118f657634e487b7160e01b600052602160045260246000fd5b9052565b60a0810161190882886118d8565b6001600160a01b039590951660208201526040810193909352606083019190915265ffffffffffff16608090910152919050565b6080810161194a82876118d8565b6001600160a01b03949094166020820152604081019290925265ffffffffffff16606090910152919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105ac576105ac611976565b60005b838110156119ba5781810151838201526020016119a2565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516119fb81601785016020880161199f565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611a2c81602884016020880161199f565b01602801949350505050565b6020815260008251806020840152611a5781604085016020870161199f565b601f01601f19169190910160400192915050565b818103818111156105ac576105ac611976565b6000816000190483118215151615611a9857611a98611976565b500290565b600082611aba57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081611afa57611afa611976565b506000190190565b634e487b7160e01b600052603160045260246000fdfef45c97b23e2beeefda80e1ce5cb3e234aa7b6888ad5cbabb75bfd654dd8e102da26469706673582212202332c685f8127d74484771f07510282169bb14d75c7ab830346209f859e32b6c64736f6c63430008100033000000000000000000000000094bee6b74ec29d32869ae3140a659cac0482882