# Features

Namespace that handles all Feature related functionality

## Hierarchy

* [SubModule](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_submodule_.submodule)

  ↳ **Features**

## Index

### Constructors

* [constructor](#constructor)

### Properties

* [context](#protected-context)
* [list](#list)
* [securityToken](#protected-securitytoken)

### Methods

* [disable](#disable)
* [enable](#enable)
* [getModuleNameFromFeature](#private-getmodulenamefromfeature)
* [getStatus](#getstatus)
* [isEnabled](#isenabled)

## Constructors

### constructor

\+ **new Features**(`securityToken`: [SecurityToken](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken), `context`: [Context](https://developers.polymath.network/classic-sdk/classes/_context_.context)): [*Features*](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_features_.features)

*Inherited from* [*SubModule*](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_submodule_.submodule)*.*[*constructor*](https://developers.polymath.network/classic-sdk/_entities_securitytoken_submodule_.submodule#constructor)

*Defined in* [*src/entities/SecurityToken/SubModule.ts:10*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/SubModule.ts#L10)

Create a new SubModule instance

**Parameters:**

| Name            | Type                                                                                                                          |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `securityToken` | [SecurityToken](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken) |
| `context`       | [Context](https://developers.polymath.network/classic-sdk/classes/_context_.context)                                          |

**Returns:** [*Features*](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_features_.features)

## Properties

### `Protected` context

• **context**: [*Context*](https://developers.polymath.network/classic-sdk/classes/_context_.context)

*Inherited from* [*SubModule*](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_submodule_.submodule)*.*[*context*](https://developers.polymath.network/classic-sdk/_entities_securitytoken_submodule_.submodule#protected-context)

*Defined in* [*src/entities/SecurityToken/SubModule.ts:10*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/SubModule.ts#L10)

### list

• **list**: [*Feature*](https://developers.polymath.network/classic-sdk/enums/_types_index_.feature)*\[]* = \[ Feature.Permissions, Feature.Tokenholders, Feature.Dividends, Feature.TokenholderCountRestrictions, Feature.PercentageOwnershipRestrictions, ]

*Defined in* [*src/entities/SecurityToken/Features.ts:80*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Features.ts#L80)

List of all existing features

### `Protected` securityToken

• **securityToken**: [*SecurityToken*](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken)

*Inherited from* [*SubModule*](https://developers.polymath.network/classic-sdk/classes/_entities_securitytoken_submodule_.submodule)*.*[*securityToken*](https://developers.polymath.network/classic-sdk/_entities_securitytoken_submodule_.submodule#protected-securitytoken)

*Defined in* [*src/entities/SecurityToken/SubModule.ts:8*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/SubModule.ts#L8)

## Methods

### disable

▸ **disable**(`args`: object): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/classic-sdk/classes/_entities_transactionqueue_.transactionqueue)*‹*[*DisableFeatureProcedureArgs*](https://developers.polymath.network/classic-sdk/interfaces/_types_index_.disablefeatureprocedureargs)*››*

*Defined in* [*src/entities/SecurityToken/Features.ts:213*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Features.ts#L213)

Disable a feature

**Parameters:**

▪ **args**: *object*

| Name      | Type                                                                                   |
| --------- | -------------------------------------------------------------------------------------- |
| `feature` | [Feature](https://developers.polymath.network/classic-sdk/enums/_types_index_.feature) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/classic-sdk/classes/_entities_transactionqueue_.transactionqueue)*‹*[*DisableFeatureProcedureArgs*](https://developers.polymath.network/classic-sdk/interfaces/_types_index_.disablefeatureprocedureargs)*››*

### enable

▸ **enable**(`args`: object, `opts?`: [EnableOpts](https://developers.polymath.network/classic-sdk/external-modules/_entities_securitytoken_features_#enableopts)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/classic-sdk/classes/_entities_transactionqueue_.transactionqueue)*›*

*Defined in* [*src/entities/SecurityToken/Features.ts:138*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Features.ts#L138)

Enable a feature

**Parameters:**

▪ **args**: *object*

| Name      | Type                                                                                   |
| --------- | -------------------------------------------------------------------------------------- |
| `feature` | [Feature](https://developers.polymath.network/classic-sdk/enums/_types_index_.feature) |

▪`Optional` **opts**: [*EnableOpts*](https://developers.polymath.network/classic-sdk/external-modules/_entities_securitytoken_features_#enableopts)

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/classic-sdk/classes/_entities_transactionqueue_.transactionqueue)*›*

### `Private` getModuleNameFromFeature

▸ **getModuleNameFromFeature**(`feature`: [Feature](https://developers.polymath.network/classic-sdk/enums/_types_index_.feature)): *ModuleName*

*Defined in* [*src/entities/SecurityToken/Features.ts:240*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Features.ts#L240)

**Parameters:**

| Name      | Type                                                                                   |
| --------- | -------------------------------------------------------------------------------------- |
| `feature` | [Feature](https://developers.polymath.network/classic-sdk/enums/_types_index_.feature) |

**Returns:** *ModuleName*

### getStatus

▸ **getStatus**(): *Promise‹*[*FeatureStatuses*](https://developers.polymath.network/classic-sdk/interfaces/_entities_securitytoken_features_.featurestatuses)*›*

*Defined in* [*src/entities/SecurityToken/Features.ts:111*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Features.ts#L111)

Gets the status on all Security Token features (true = enabled, false = not enabled/disabled)

**Returns:** *Promise‹*[*FeatureStatuses*](https://developers.polymath.network/classic-sdk/interfaces/_entities_securitytoken_features_.featurestatuses)*›*

### isEnabled

▸ **isEnabled**(`args`: object): *Promise‹boolean›*

*Defined in* [*src/entities/SecurityToken/Features.ts:93*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Features.ts#L93)

Returns whether a particular feature has been enabled or not

**Parameters:**

▪ **args**: *object*

| Name      | Type                                                                                   |
| --------- | -------------------------------------------------------------------------------------- |
| `feature` | [Feature](https://developers.polymath.network/classic-sdk/enums/_types_index_.feature) |

**Returns:** *Promise‹boolean›*
