7 txs
33 calls
constructor
constructor(address guardian)
functions
CLIENT_ROLE
viewfunction CLIENT_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultFee
viewfunction defaultFee(address) view returns (bool active, uint256 flatFee, uint256 bpsFee)
defaultFeeOverride
viewfunction defaultFeeOverride(address, address) view returns (bool active, uint256 flatFee, uint256 bpsFee)
FEE_MANAGER_ROLE
viewfunction FEE_MANAGER_ROLE() view returns (bytes32)
FEE_PRECISION
viewfunction FEE_PRECISION() view returns (uint256)
getActiveFeeConfig
viewfunction getActiveFeeConfig(address rwaToken, address stablecoin, bytes32 userID) view returns (tuple activeFeeConfig, tuple activeUserFeeConfig)
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)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
userFee
viewfunction userFee(address, bytes32) view returns (tuple feeConfig, uint8 userFeeMode, uint256 limitVolume, uint256 currentVolume, uint256 lastReset, uint256 volumeWindow)
userFeeOverride
viewfunction userFeeOverride(address, address, bytes32) view returns (tuple feeConfig, uint8 userFeeMode, uint256 limitVolume, uint256 currentVolume, uint256 lastReset, uint256 volumeWindow)
getAndUpdateFee
nonpayablefunction getAndUpdateFee(address rwaToken, address stablecoin, bytes32 userID, uint256 usdValue) returns (uint256 usdFee)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setDefaultFee
nonpayablefunction setDefaultFee(address rwaToken, tuple feeConfig)
setDefaultFeeOverride
nonpayablefunction setDefaultFeeOverride(address rwaToken, address stablecoin, tuple feeConfig)
setUserFee
nonpayablefunction setUserFee(address rwaToken, bytes32 userID, tuple userFeeConfig)
setUserFeeConfigWindow
nonpayablefunction setUserFeeConfigWindow(address rwaToken, address stablecoin, bytes32 userID, uint256 newVolume, uint256 newLastResetTime)
setUserFeeOverride
nonpayablefunction setUserFeeOverride(address rwaToken, address stablecoin, bytes32 userID, tuple userFeeConfig)
events
DefaultFeeConfigOverrideUpdated
event DefaultFeeConfigOverrideUpdated(address rwaToken, address stablecoin, bool active, uint256 flatFee, uint256 bpsFee)
DefaultFeeConfigUpdated
event DefaultFeeConfigUpdated(address rwaToken, bool active, uint256 flatFee, uint256 bpsFee)
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)
UserFeeConfigOverrideUpdated
event UserFeeConfigOverrideUpdated(address rwaToken, address stablecoin, bytes32 userID, bool active, uint256 flatFee, uint256 bpsFee, uint8 userFeeMode, uint256 limitVolume, uint256 currentVolume, uint256 lastReset, uint256 volumeWindow)
UserFeeConfigUpdated
event UserFeeConfigUpdated(address rwaToken, bytes32 userID, bool active, uint256 flatFee, uint256 bpsFee, uint8 userFeeMode, uint256 limitVolume, uint256 currentVolume, uint256 lastReset, uint256 volumeWindow)
errors
FeeNotSet
error FeeNotSet()
InvalidAddress
error InvalidAddress()
InvalidBpsFee
error InvalidBpsFee()
InvalidTimestamp
error InvalidTimestamp()
InvalidUserID
error InvalidUserID()
creation bytecode
0x60806040523480156200001157600080fd5b50604051620021823803806200218283398101604081905262000034916200019e565b6200004160008262000048565b50620001d0565b6200005f82826200008b60201b620010ff1760201c565b600082815260016020908152604090912062000086918390620011836200012c821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000128576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000e73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000143836001600160a01b0384166200014c565b90505b92915050565b6000818152600183016020526040812054620001955750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000146565b50600062000146565b600060208284031215620001b157600080fd5b81516001600160a01b0381168114620001c957600080fd5b9392505050565b611fa280620001e06000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806391e06b14116100c3578063ca15c8731161007c578063ca15c8731461042a578063d547741f1461043d578063d99fa56a14610450578063e63a391f14610463578063e8ac8b2f1461046c578063eae6f6521461048d57600080fd5b806391e06b14146102ba5780639219e8481461034e57806395f8e4f614610361578063a217fddf146103db578063be19e0cb146103e3578063c75af6351461041757600080fd5b806336568abe1161011557806336568abe146102305780637b7312ec14610243578063836ec2cc1461025657806384103bbf146102695780639010d07c1461027c57806391d14854146102a757600080fd5b806301ffc9a714610152578063040272911461017a57806305db2f41146101d5578063248a9ca3146101f85780632f2ff15d1461021b575b600080fd5b6101656101603660046117e3565b6104b4565b60405190151581526020015b60405180910390f35b6101b8610188366004611829565b600360209081526000928352604080842090915290825290208054600182015460029092015460ff909116919083565b604080519315158452602084019290925290820152606001610171565b6101ea600080516020611f4d83398151915281565b604051908152602001610171565b6101ea61020636600461185c565b60009081526020819052604090206001015490565b61022e610229366004611875565b6104df565b005b61022e61023e366004611875565b61050a565b61022e610251366004611926565b61058d565b61022e610264366004611a08565b6106af565b61022e610277366004611a3d565b61083b565b61028f61028a366004611a68565b61092b565b6040516001600160a01b039091168152602001610171565b6101656102b5366004611875565b61094a565b61033c6102c8366004611a8a565b600560208181526000948552604080862082529385528385208152918452928290208251606081018452815460ff9081161515825260018301549382019390935260028201549381019390935260038101546004820154948201546006830154600790930154949591909316939092919086565b60405161017196959493929190611afe565b61022e61035c366004611b4d565b610973565b61033c61036f366004611b9a565b60046020818152600093845260408085208252928452928290208251606081018452815460ff9081161515825260018301549582019590955260028201549381019390935260038101549181015460058201546006830154600790930154949593909316939092919086565b6101ea600081565b6101b86103f1366004611bc4565b600260208190526000918252604090912080546001820154919092015460ff9092169183565b6101ea610425366004611bdf565b610aa2565b6101ea61043836600461185c565b610c99565b61022e61044b366004611875565b610cb0565b61022e61045e366004611c21565b610cd6565b6101ea61271081565b61047f61047a366004611a8a565b610e93565b604051610171929190611c70565b6101ea7fa5ff3ec7a96cdbba4d2d5172d66bbc73c6db3885f29b21be5da9fa7a7c02523281565b60006001600160e01b03198216635a05180f60e01b14806104d957506104d982611198565b92915050565b6000828152602081905260409020600101546104fb81336111cd565b6105058383611231565b505050565b6001600160a01b038116331461057f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105898282611253565b5050565b600080516020611f4d8339815191526105a681336111cd565b6001600160a01b03841615806105c357506001600160a01b038316155b156105e15760405163e6c4247b60e01b815260040160405180910390fd5b6127108260400151111561060857604051633f6e8d0d60e21b815260040160405180910390fd5b6001600160a01b038481166000818152600360209081526040808320948816808452948252918290208651815460ff19169015159081178255878301516001830181905588850151600290930183905584519586529285019590955291830193909352606082019290925260808101919091527f9a63f705d399866097fd58eae4bc4140eefd36805b90a6b715e5ec18f1d202b69060a0015b60405180910390a150505050565b600080516020611f4d8339815191526106c881336111cd565b6001600160a01b0384166106ef5760405163e6c4247b60e01b815260040160405180910390fd5b6000839003610711576040516370f4875960e11b815260040160405180910390fd5b815160400151612710101561073957604051633f6e8d0d60e21b815260040160405180910390fd5b6001600160a01b038416600090815260046020908152604080832086845282529182902084518051825490151560ff19918216178355818401516001808501919091559190940151600283015591850151600382018054879593949293919291169083818111156107ac576107ac611ac6565b021790555060408281015160048301556060808401516005840155608080850151600685015560a09485015160079094019390935585518051602080830151928501519089015189860151948a0151968a0151978a015195517fe0c03fbb9dfb6af544bb37ae4717370a5cb766f353b3562c145aa4b0bbe809fc986106a1988e988e9896979693919291611cee565b600080516020611f4d83398151915261085481336111cd565b6001600160a01b03831661087b5760405163e6c4247b60e01b815260040160405180910390fd5b612710826040015111156108a257604051633f6e8d0d60e21b815260040160405180910390fd5b6001600160a01b0383166000818152600260208181526040928390208651815460ff19169015159081178255878301516001830181905588860151929094018290558451958652918501919091529183015260608201527f5f7401b7e2e9e280aab79efa0ec321cc427486dc759a3bc9aa86fb27df4c9eef9060800160405180910390a1505050565b60008281526001602052604081206109439083611275565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020611f4d83398151915261098c81336111cd565b6001600160a01b0386166109b35760405163e6c4247b60e01b815260040160405180910390fd5b60008490036109d5576040516370f4875960e11b815260040160405180910390fd5b428211156109f65760405163b7d0949760e01b815260040160405180910390fd5b60006001600160a01b03861615610a39576001600160a01b038088166000908152600560209081526040808320938a168352928152828220888352905220610a5d565b6001600160a01b038716600090815260046020908152604080832088845290915290205b805490915060ff16610a8257604051631b46848160e31b815260040160405180910390fd5b82600003610a8e574292505b600581019390935550600690910155505050565b60007fa5ff3ec7a96cdbba4d2d5172d66bbc73c6db3885f29b21be5da9fa7a7c025232610acf81336111cd565b6000610adc878787611281565b9050610b04604051806060016040528060001515815260200160008152602001600081525090565b815460ff1615610b49575060408051606081018252825460ff161515815260018301546020820152600283015491810191909152610b428286611317565b9450610c51565b6001600160a01b038089166000908152600360209081526040808320938b168352929052205460ff1615610bcd57506001600160a01b038088166000908152600360209081526040808320938a168352928152908290208251606081018452815460ff16151581526001820154928101929092526002015491810191909152610c51565b6001600160a01b03881660009081526002602052604090205460ff1615610c3857506001600160a01b0387166000908152600260208181526040928390208351606081018552815460ff16151581526001820154928101929092529091015491810191909152610c51565b604051631b46848160e31b815260040160405180910390fd5b60008511610c60576000610c66565b80602001515b604082015190945015610c8e57610c8181604001518661143e565b610c8b9085611d68565b93505b505050949350505050565b60008181526001602052604081206104d990611457565b600082815260208190526040902060010154610ccc81336111cd565b6105058383611253565b600080516020611f4d833981519152610cef81336111cd565b6001600160a01b0385161580610d0c57506001600160a01b038416155b15610d2a5760405163e6c4247b60e01b815260040160405180910390fd5b6000839003610d4c576040516370f4875960e11b815260040160405180910390fd5b8151604001516127101015610d7457604051633f6e8d0d60e21b815260040160405180910390fd5b6001600160a01b038086166000908152600560209081526040808320938816835292815282822086835281529082902084518051825490151560ff1991821617835581840151600180850191909155919094015160028301559185015160038201805487959394929391929116908381811115610df357610df3611ac6565b021790555060408281015160048301556060808401516005840155608080850151600685015560a09485015160079094019390935585518051602080830151928501519089015189860151948a0151968a0151978a015195517fbd33bd762cba453d31f22e7b7849e4a3628b7df11c31f0c0318097114094e9b098610e84988f988f988f9896959490939190611d7b565b60405180910390a15050505050565b610eb9604051806060016040528060001515815260200160008152602001600081525090565b610f0c604080516101208101909152600060c0820181815260e083018290526101008301919091528190815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000610f19868686611281565b604080516101208101909152815460ff908116151560c0830190815260018085015460e08501526002850154610100850152908352600384015492939260208501921690811115610f6c57610f6c611ac6565b6001811115610f7d57610f7d611ac6565b815260048201546020820152600582015460408201526006820154606082015260079091015460809091015280515190915015610fda576040805160608101825260008082526020820181905291810191909152925090506110f7565b6001600160a01b0380871660009081526003602090815260408083209389168352929052205460ff16156110af576001600160a01b03808716600090815260036020908152604080832093891683529281528282208351610120810190945260c0840183815260e08501849052610100850184905284529291908201905b8152600060208083018290526040808401839052606080850184905260809094019290925281519283018252845460ff16151583526001850154908301526002909301549281019290925290935091506110f79050565b6001600160a01b03861660009081526002602090815260408083208151610120810190925260c0820184815260e0830185905261010083018590528252929091820190611058565b935093915050565b611109828261094a565b610589576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561113f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610943836001600160a01b038416611461565b60006001600160e01b03198216637965db0b60e01b14806104d957506301ffc9a760e01b6001600160e01b03198316146104d9565b6111d7828261094a565b610589576111ef816001600160a01b031660146114b0565b6111fa8360206114b0565b60405160200161120b929190611e0d565b60408051601f198184030181529082905262461bcd60e51b825261057691600401611e82565b61123b82826110ff565b60008281526001602052604090206105059082611183565b61125d828261164c565b600082815260016020526040902061050590826116b1565b600061094383836116c6565b6001600160a01b038084166000908152600560209081526040808320938616835292815282822084835290529081205460ff16156112ec57506001600160a01b0380841660009081526005602090815260408083209386168352928152828220848352905220610943565b506001600160a01b038316600090815260046020908152604080832084845290915290209392505050565b6000826007015483600601544261132e9190611eb5565b111561134257600060058401554260068401555b50600080600384015460ff16600181111561135f5761135f611ac6565b036113bc57826004015483600501541061137a57508061141e565b826004015482846005015461138f9190611d68565b11156113b75782600401548284600501546113aa9190611d68565b6113b49190611eb5565b90505b61141e565b6001600384015460ff1660018111156113d7576113d7611ac6565b0361141e5782600401548360050154101561141e5782600401548284600501546114019190611d68565b111561141b57826005015483600401546113b49190611eb5565b50805b818360050160008282546114329190611d68565b90915550909392505050565b600061271061144d8484611ec8565b6109439190611ee7565b60006104d9825490565b60008181526001830160205260408120546114a8575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104d9565b5060006104d9565b606060006114bf836002611ec8565b6114ca906002611d68565b67ffffffffffffffff8111156114e2576114e2611898565b6040519080825280601f01601f19166020018201604052801561150c576020820181803683370190505b509050600360fc1b8160008151811061152757611527611f09565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061155657611556611f09565b60200101906001600160f81b031916908160001a905350600061157a846002611ec8565b611585906001611d68565b90505b60018111156115fd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106115b9576115b9611f09565b1a60f81b8282815181106115cf576115cf611f09565b60200101906001600160f81b031916908160001a90535060049490941c936115f681611f1f565b9050611588565b5083156109435760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610576565b611656828261094a565b15610589576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610943836001600160a01b0384166116f0565b60008260000182815481106116dd576116dd611f09565b9060005260206000200154905092915050565b600081815260018301602052604081205480156117d9576000611714600183611eb5565b855490915060009061172890600190611eb5565b905081811461178d57600086600001828154811061174857611748611f09565b906000526020600020015490508087600001848154811061176b5761176b611f09565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061179e5761179e611f36565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104d9565b60009150506104d9565b6000602082840312156117f557600080fd5b81356001600160e01b03198116811461094357600080fd5b80356001600160a01b038116811461182457600080fd5b919050565b6000806040838503121561183c57600080fd5b6118458361180d565b91506118536020840161180d565b90509250929050565b60006020828403121561186e57600080fd5b5035919050565b6000806040838503121561188857600080fd5b823591506118536020840161180d565b634e487b7160e01b600052604160045260246000fd5b6000606082840312156118c057600080fd5b6040516060810181811067ffffffffffffffff821117156118f157634e487b7160e01b600052604160045260246000fd5b6040529050808235801515811461190757600080fd5b8082525060208301356020820152604083013560408201525092915050565b600080600060a0848603121561193b57600080fd5b6119448461180d565b92506119526020850161180d565b915061196185604086016118ae565b90509250925092565b6000610100828403121561197d57600080fd5b60405160c0810181811067ffffffffffffffff821117156119ae57634e487b7160e01b600052604160045260246000fd5b6040529050806119be84846118ae565b81526060830135600281106119d257600080fd5b806020830152506080830135604082015260a0830135606082015260c0830135608082015260e083013560a08201525092915050565b60008060006101408486031215611a1e57600080fd5b611a278461180d565b925060208401359150611961856040860161196a565b60008060808385031215611a5057600080fd5b611a598361180d565b915061185384602085016118ae565b60008060408385031215611a7b57600080fd5b50508035926020909101359150565b600080600060608486031215611a9f57600080fd5b611aa88461180d565b9250611ab66020850161180d565b9150604084013590509250925092565b634e487b7160e01b600052602160045260246000fd5b60028110611afa57634e487b7160e01b600052602160045260246000fd5b9052565b86511515815260208088015190820152604080880151908201526101008101611b2a6060830188611adc565b8560808301528460a08301528360c08301528260e0830152979650505050505050565b600080600080600060a08688031215611b6557600080fd5b611b6e8661180d565b9450611b7c6020870161180d565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215611bad57600080fd5b611bb68361180d565b946020939093013593505050565b600060208284031215611bd657600080fd5b6109438261180d565b60008060008060808587031215611bf557600080fd5b611bfe8561180d565b9350611c0c6020860161180d565b93969395505050506040820135916060013590565b6000806000806101608587031215611c3857600080fd5b611c418561180d565b9350611c4f6020860161180d565b925060408501359150611c65866060870161196a565b905092959194509250565b82511515815260208084015181830152604080850151818401528351805115156060850152808301516080850152015160a0830152820151610160820190611cbb60c0840182611adc565b50604083015160e08301526060830151610100830152608083015161012083015260a08301516101408301529392505050565b6001600160a01b038b168152602081018a9052881515604082015260608101889052608081018790526101408101611d2960a0830188611adc565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104d9576104d9611d52565b6001600160a01b038c811682528b166020820152604081018a905288151560608201526080810188905260a081018790526101608101611dbe60c0830188611adc565b8560e08301528461010083015283610120830152826101408301529c9b505050505050505050505050565b60005b83811015611e04578181015183820152602001611dec565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611e45816017850160208801611de9565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611e76816028840160208801611de9565b01602801949350505050565b6020815260008251806020840152611ea1816040850160208701611de9565b601f01601f19169190910160400192915050565b818103818111156104d9576104d9611d52565b6000816000190483118215151615611ee257611ee2611d52565b500290565b600082611f0457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081611f2e57611f2e611d52565b506000190190565b634e487b7160e01b600052603160045260246000fdfe6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1ca2646970667358221220b78cd80f211b43b16c301eadb3255589469ee0fad1f0a2bdae6aa0e21d667cc264736f6c63430008100033000000000000000000000000094bee6b74ec29d32869ae3140a659cac0482882