Skip to main content

TWFee

Methods

DEFAULT_ADMIN_ROLE

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns

NameTypeDescription
_0bytes32undefined

MAX_FEE_BPS

function MAX_FEE_BPS() external view returns (uint256)

The maximum threshold for fees. 1%

Returns

NameTypeDescription
_0uint256undefined

factory

function factory() external view returns (contract TWFactory)

The factory for deploying contracts.

Returns

NameTypeDescription
_0contract TWFactoryundefined

feeInfo

function feeInfo(uint256, uint256) external view returns (uint256 bps, address recipient)

Mapping from pricing tier id => Fee Type (lib/FeeType.sol) => FeeInfo

Parameters

NameTypeDescription
_0uint256undefined
_1uint256undefined

Returns

NameTypeDescription
bpsuint256undefined
recipientaddressundefined

getFeeInfo

function getFeeInfo(address _proxy, uint256 _feeType) external view returns (address recipient, uint256 bps)

Returns the fee info for a given module and fee type.

Parameters

NameTypeDescription
_proxyaddressundefined
_feeTypeuint256undefined

Returns

NameTypeDescription
recipientaddressundefined
bpsuint256undefined

getFeeTier

function getFeeTier(address _deployer, address _proxy) external view returns (uint128 tierId, uint128 validUntilTimestamp)

Returns the fee tier for a proxy deployer wallet or contract address.

Parameters

NameTypeDescription
_deployeraddressundefined
_proxyaddressundefined

Returns

NameTypeDescription
tierIduint128undefined
validUntilTimestampuint128undefined

getRoleAdmin

function getRoleAdmin(bytes32 role) external view returns (bytes32)

Returns the admin role that controls role. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters

NameTypeDescription
rolebytes32undefined

Returns

NameTypeDescription
_0bytes32undefined

getRoleMember

function getRoleMember(bytes32 role, uint256 index) external view returns (address)

Returns one of the accounts that have role. index must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.

Parameters

NameTypeDescription
rolebytes32undefined
indexuint256undefined

Returns

NameTypeDescription
_0addressundefined

getRoleMemberCount

function getRoleMemberCount(bytes32 role) external view returns (uint256)

Returns the number of accounts that have role. Can be used together with {getRoleMember} to enumerate all bearers of a role.

Parameters

NameTypeDescription
rolebytes32undefined

Returns

NameTypeDescription
_0uint256undefined

grantRole

function grantRole(bytes32 role, address account) external nonpayable

Grants role to account. If account had not been already granted role, emits a {RoleGranted} event. Requirements: - the caller must have role's admin role. May emit a {RoleGranted} event.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

hasRole

function hasRole(bytes32 role, address account) external view returns (bool)

Returns true if account has been granted role.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

Returns

NameTypeDescription
_0boolundefined

isTrustedForwarder

function isTrustedForwarder(address forwarder) external view returns (bool)

Parameters

NameTypeDescription
forwarderaddressundefined

Returns

NameTypeDescription
_0boolundefined

multicall

function multicall(bytes[] data) external nonpayable returns (bytes[] results)

Receives and executes a batch of function calls on this contract.

Parameters

NameTypeDescription
databytes[]undefined

Returns

NameTypeDescription
resultsbytes[]undefined

renounceRole

function renounceRole(bytes32 role, address account) external nonpayable

Revokes role from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked role, emits a {RoleRevoked} event. Requirements: - the caller must be account. May emit a {RoleRevoked} event.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

revokeRole

function revokeRole(bytes32 role, address account) external nonpayable

Revokes role from account. If account had been granted role, emits a {RoleRevoked} event. Requirements: - the caller must have role's admin role. May emit a {RoleRevoked} event.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

setFeeInfoForTier

function setFeeInfoForTier(uint256 _tierId, uint256 _feeBps, address _feeRecipient, uint256 _feeType) external nonpayable

Lets the admin set fee bps and recipient for the given pricing tier and fee type.

Parameters

NameTypeDescription
_tierIduint256undefined
_feeBpsuint256undefined
_feeRecipientaddressundefined
_feeTypeuint256undefined

setFeeTierPlacementExtension

function setFeeTierPlacementExtension(address _extension) external nonpayable

Parameters

NameTypeDescription
_extensionaddressundefined

setTier

function setTier(address _proxyOrDeployer, uint128 _tierId, uint128 _validUntilTimestamp) external nonpayable

Lets a TIER_CONTROLLER_ROLE holder assign a tier to a proxy deployer.

Parameters

NameTypeDescription
_proxyOrDeployeraddressundefined
_tierIduint128undefined
_validUntilTimestampuint128undefined

supportsInterface

function supportsInterface(bytes4 interfaceId) external view returns (bool)

See {IERC165-supportsInterface}.

Parameters

NameTypeDescription
interfaceIdbytes4undefined

Returns

NameTypeDescription
_0boolundefined

tierPlacementExtension

function tierPlacementExtension() external view returns (contract IFeeTierPlacementExtension)

If we want to extend the logic for fee tier placement, we could easily points it to a different extension implementation.

Returns

NameTypeDescription
_0contract IFeeTierPlacementExtensionundefined

Events

FeeTierUpdated

event FeeTierUpdated(uint256 indexed tierId, uint256 indexed feeType, address recipient, uint256 bps)

Parameters

NameTypeDescription
tierId indexeduint256undefined
feeType indexeduint256undefined
recipientaddressundefined
bpsuint256undefined

RoleAdminChanged

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Parameters

NameTypeDescription
role indexedbytes32undefined
previousAdminRole indexedbytes32undefined
newAdminRole indexedbytes32undefined

RoleGranted

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

NameTypeDescription
role indexedbytes32undefined
account indexedaddressundefined
sender indexedaddressundefined

RoleRevoked

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

NameTypeDescription
role indexedbytes32undefined
account indexedaddressundefined
sender indexedaddressundefined

TierUpdated

event TierUpdated(address indexed proxyOrDeployer, uint256 tierId, uint256 validUntilTimestamp)

Events

Parameters

NameTypeDescription
proxyOrDeployer indexedaddressundefined
tierIduint256undefined
validUntilTimestampuint256undefined