Skip to main content

TWFactory

Methods​

DEFAULT_ADMIN_ROLE​

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns​

NameTypeDescription
_0bytes32undefined

FACTORY_ROLE​

function FACTORY_ROLE() external view returns (bytes32)

Only FACTORY_ROLE holders can approve/unapprove implementations for proxies to point to.

Returns​

NameTypeDescription
_0bytes32undefined

addImplementation​

function addImplementation(address _implementation) external nonpayable

Lets a contract admin set the address of a contract type x version.

Parameters​

NameTypeDescription
_implementationaddressundefined

approval​

function approval(address) external view returns (bool)

mapping of implementation address to deployment approval

Parameters​

NameTypeDescription
_0addressundefined

Returns​

NameTypeDescription
_0boolundefined

approveImplementation​

function approveImplementation(address _implementation, bool _toApprove) external nonpayable

Lets a contract admin approve a specific contract for deployment.

Parameters​

NameTypeDescription
_implementationaddressundefined
_toApproveboolundefined

currentVersion​

function currentVersion(bytes32) external view returns (uint256)

mapping of implementation address to implementation added version

Parameters​

NameTypeDescription
_0bytes32undefined

Returns​

NameTypeDescription
_0uint256undefined

deployProxy​

function deployProxy(bytes32 _type, bytes _data) external nonpayable returns (address)

Deploys a proxy that points to the latest version of the given contract type.

Parameters​

NameTypeDescription
_typebytes32undefined
_databytesundefined

Returns​

NameTypeDescription
_0addressundefined

deployProxyByImplementation​

function deployProxyByImplementation(address _implementation, bytes _data, bytes32 _salt) external nonpayable returns (address deployedProxy)

Deploys a proxy that points to the given implementation.

Parameters​

NameTypeDescription
_implementationaddressundefined
_databytesundefined
_saltbytes32undefined

Returns​

NameTypeDescription
deployedProxyaddressundefined

deployProxyDeterministic​

function deployProxyDeterministic(bytes32 _type, bytes _data, bytes32 _salt) external nonpayable returns (address)

Deploys a proxy at a deterministic address by taking in salt as a parameter. Proxy points to the latest version of the given contract type.

Parameters​

NameTypeDescription
_typebytes32undefined
_databytesundefined
_saltbytes32undefined

Returns​

NameTypeDescription
_0addressundefined

deployer​

function deployer(address) external view returns (address)

mapping of proxy address to deployer address

Parameters​

NameTypeDescription
_0addressundefined

Returns​

NameTypeDescription
_0addressundefined

getImplementation​

function getImplementation(bytes32 _type, uint256 _version) external view returns (address)

Returns the implementation given a contract type and version.

Parameters​

NameTypeDescription
_typebytes32undefined
_versionuint256undefined

Returns​

NameTypeDescription
_0addressundefined

getLatestImplementation​

function getLatestImplementation(bytes32 _type) external view returns (address)

Returns the latest implementation given a contract type.

Parameters​

NameTypeDescription
_typebytes32undefined

Returns​

NameTypeDescription
_0addressundefined

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

implementation​

function implementation(bytes32, uint256) external view returns (address)

mapping of contract type to module version to implementation address

Parameters​

NameTypeDescription
_0bytes32undefined
_1uint256undefined

Returns​

NameTypeDescription
_0addressundefined

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

registry​

function registry() external view returns (contract TWRegistry)

Returns​

NameTypeDescription
_0contract TWRegistryundefined

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

supportsInterface​

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

See {IERC165-supportsInterface}.

Parameters​

NameTypeDescription
interfaceIdbytes4undefined

Returns​

NameTypeDescription
_0boolundefined

Events​

ImplementationAdded​

event ImplementationAdded(address implementation, bytes32 indexed contractType, uint256 version)

Parameters​

NameTypeDescription
implementationaddressundefined
contractType indexedbytes32undefined
versionuint256undefined

ImplementationApproved​

event ImplementationApproved(address implementation, bool isApproved)

Parameters​

NameTypeDescription
implementationaddressundefined
isApprovedboolundefined

ProxyDeployed​

event ProxyDeployed(address indexed implementation, address proxy, address indexed deployer)

Emitted when a proxy is deployed.

Parameters​

NameTypeDescription
implementation indexedaddressundefined
proxyaddressundefined
deployer indexedaddressundefined

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