> For the complete documentation index, see [llms.txt](https://legacy-docs.aragon.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://legacy-docs.aragon.org/developers/tools/aragonos/smart-contract-references/evmscript/evmscriptregistry.md).

# EVMScriptRegistry

## contract EVMScriptRegistry

is [IEVMScriptRegistry](/developers/tools/aragonos/smart-contract-references/evmscript/ievmscriptregistry.md), [EVMScriptRegistryConstants](/developers/tools/aragonos/smart-contract-references/evmscript/evmscriptregistryconstants.md), [AragonApp](/developers/tools/aragonos/smart-contract-references/apps/aragonapp.md)

Source: [contracts/evmscript/EVMScriptRegistry.sol](https://github.com/aragon/aragonOS/blob/v4.4.0/contracts/evmscript/EVMScriptRegistry.sol)

## Index

* [DisableExecutor](#disableexecutor)
* [EnableExecutor](#enableexecutor)
* [addScriptExecutor](#addscriptexecutor)
* [disableScriptExecutor](#disablescriptexecutor)
* [enableScriptExecutor](#enablescriptexecutor)
* [executorExists](#executorexists)
* [getScriptExecutor](#getscriptexecutor)
* [initialize](#initialize)

## Reference

### Events

#### **DisableExecutor** <a href="#disableexecutor" id="disableexecutor"></a>

` event`` `` `**`DisableExecutor`**`(uint256 executorId, address executorAddress)`

Parameters:

* `executorId` - uint256
* `executorAddress` - address

#### **EnableExecutor** <a href="#enableexecutor" id="enableexecutor"></a>

` event`` `` `**`EnableExecutor`**`(uint256 executorId, address executorAddress)`

Parameters:

* `executorId` - uint256
* `executorAddress` - address

### Modifiers

#### **executorExists** <a href="#executorexists" id="executorexists"></a>

` modifier`` `` `**`executorExists`**`(uint256 _executorId)`

Parameters:

* `_executorId` - uint256

### Functions

#### **addScriptExecutor** <a href="#addscriptexecutor" id="addscriptexecutor"></a>

` function`` `` `**`addScriptExecutor`**`(IEVMScriptExecutor _executor) external returns (uint256)`

Add a new script executor with address \`\_executor\` to the registry.

Modifiers:

* [auth](/developers/tools/aragonos/smart-contract-references/apps/aragonapp.md#authp)

Parameters:

* `_executor` - Address of the IEVMScriptExecutor that will be added to the registry

Returns:

* id Identifier of the executor in the registry

#### **disableScriptExecutor** <a href="#disablescriptexecutor" id="disablescriptexecutor"></a>

` function`` `` `**`disableScriptExecutor`**`(uint256 _executorId) external`

Disable script executor with ID \`\_executorId\`.

Modifiers:

* [authP](/developers/tools/aragonos/smart-contract-references/apps/aragonapp.md#canperform)

Parameters:

* `_executorId` - Identifier of the executor in the registry

#### **enableScriptExecutor** <a href="#enablescriptexecutor" id="enablescriptexecutor"></a>

` function`` `` `**`enableScriptExecutor`**`(uint256 _executorId) external`

Enable script executor with ID \`\_executorId\`.

Modifiers:

* [authP executorExists](#addscriptexecutor)

Parameters:

* `_executorId` - Identifier of the executor in the registry

#### **getScriptExecutor** <a href="#getscriptexecutor" id="getscriptexecutor"></a>

` function`` `` `**`getScriptExecutor`**`(bytes _script) public view returns (IEVMScriptExecutor)`

\`\`

Get the script executor that can execute a particular script based on its first 4 bytes.

Parameters:

* `_script` - EVMScript being inspected

Returns:

* IEVMScriptExecutor

#### **initialize** <a href="#initialize" id="initialize"></a>

` function`` `` `**`initialize`**`() public`

\`\`

Initialize the registry.

Modifiers:

* [onlyInit](/developers/tools/aragonos/smart-contract-references/common/initializable.md#getinitializationblock)
