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