nonReentrant() modifier

Prevents a contract from calling itself, directly or indirectly. Calling a nonReentrant function from another nonReentrant function is not supported. It is possible to prevent this from happening by making the nonReentrant function external, and make it call a private function that does the actual work.

nonReentrantView() modifier

Designed to prevent a view-only method from being re-entered during a call to a nonReentrant() state-changing method.

onlyIfTest() modifier

Reverts if not running in test mode.

constructor(address _finderAddress, address _tokenFactoryAddress, address _timerAddress) public

Constructs the Perpetual contract.


  • _finderAddress: UMA protocol Finder used to discover other protocol contracts.

  • _tokenFactoryAddress: ERC20 token factory used to deploy synthetic token instances.

  • _timerAddress: Contract that stores the current time in a testing environment.

createPerpetual(struct PerpetualCreator.Params params, struct ConfigStoreInterface.ConfigSettings configSettings) → address public

Creates an instance of perpetual and registers it within the registry.


  • params: is a ConstructorParams object from Perpetual.

_getSyntheticDecimals(address _collateralAddress) → uint8 decimals public

_preEntranceCheck() internal

_preEntranceSet() internal

_postEntranceReset() internal

setCurrentTime(uint256 time) external

Sets the current time.

Will revert if not running in test mode.


  • time: timestamp to set current Testable time to.

getCurrentTime() → uint256 public

Gets the current time. Will return the last time set in setCurrentTime if running in test mode. Otherwise, it will return the block timestamp.

_requireWhitelistedCollateral(address collateralAddress) internal

_registerContract(address[] parties, address contractToRegister) internal

CreatedPerpetual(address perpetualAddress, address deployerAddress) event

CreatedConfigStore(address configStoreAddress, address ownerAddress) event

© UMA Project 2018-2019