# Requirements

Handles all Security Token Compliance Requirements related functionality

## Hierarchy

* Namespace‹[SecurityToken](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)›

  ↳ **Requirements**

## Index

### Properties

* [context](#protected-context)
* [parent](#protected-parent)

### Methods

* [arePaused](#arepaused)
* [checkSettle](#checksettle)
* [get](#get)
* [pause](#pause)
* [reset](#reset)
* [set](#set)
* [unpause](#unpause)

## Properties

### `Protected` context

• **context**: [*Context*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/context)

*Inherited from void*

*Defined in* [*src/api/entities/Namespace.ts:11*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/Namespace.ts#L11)

***

### `Protected` parent

• **parent**: [*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)

*Inherited from void*

*Defined in* [*src/api/entities/Namespace.ts:9*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/Namespace.ts#L9)

## Methods

### arePaused

▸ **arePaused**(): *Promise‹boolean›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:228*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L228)

Check whether asset compliance requirements are paused or not

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

***

### checkSettle

▸ **checkSettle**(`args`: object): *Promise‹Compliance›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:199*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L199)

Check whether the sender and receiver Identities in a transfer comply with all the requirements of this asset

**`note`** this does not take balances into account

**`deprecated`** in favor of `settlements.canTransfer`

**Parameters:**

▪ **args**: *object*

| Name    | Type                                                                                                          | Description                                                  |
| ------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| `from?` | string \| [Identity](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/identity) | sender Identity (optional, defaults to the current Identity) |
| `to`    | string \| [Identity](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/identity) | receiver Identity                                            |

**Returns:** *Promise‹Compliance›*

***

### get

▸ **get**(): *Promise‹*[*Requirement*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/requirement.md)*\[]›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:78*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L78)

Retrieve all of the Security Token's requirements

**`note`** can be subscribed to

**Returns:** *Promise‹*[*Requirement*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/requirement.md)*\[]›*

▸ **get**(`callback`: [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/globals#subcallback)‹[Requirement](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/requirement.md)\[]›): *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/globals#unsubcallback)*›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:79*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L79)

**Parameters:**

| Name       | Type                                                                                                                                                                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/globals#subcallback)‹[Requirement](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/requirement.md)\[]› |

**Returns:** *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/globals#unsubcallback)*›*

***

### pause

▸ **pause**(`args`: void, `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:175*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L175)

Pause all the Security Token's requirements. This means that all transfers will be allowed until requirements are unpaused

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/proceduremethod.md), which means you can call `pause.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name    | Type                                                                                                            |
| ------- | --------------------------------------------------------------------------------------------------------------- |
| `args`  | void                                                                                                            |
| `opts?` | [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

***

### reset

▸ **reset**(`args`: void, `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:165*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L165)

Detele all the current requirements for the Security Token.

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/proceduremethod.md), which means you can call `reset.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name    | Type                                                                                                            |
| ------- | --------------------------------------------------------------------------------------------------------------- |
| `args`  | void                                                                                                            |
| `opts?` | [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

***

### set

▸ **set**(`args`: [SetAssetRequirementsParams](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/setassetrequirementsparams.md), `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:69*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L69)

Configure asset compliance requirements for the Security Token. This operation will replace all existing requirements with a new requirement set

This requires two transactions

**`example`** Say A, B, C, D and E are requirements and we arrange them as `[[A, B], [C, D], [E]]`. For a transfer to succeed, it must either comply with A AND B, C AND D, OR E.

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/proceduremethod.md), which means you can call `set.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name    | Type                                                                                                                                      |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [SetAssetRequirementsParams](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/setassetrequirementsparams.md) |
| `opts?` | [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md)                           |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

***

### unpause

▸ **unpause**(`args`: void, `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:185*](https://github.com/PolymathNetwork/polymesh-sdk/blob/da0f7fd7/src/api/entities/SecurityToken/Compliance/Requirements.ts#L185)

Un-pause all the Security Token's current requirements

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/proceduremethod.md), which means you can call `unpause.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name    | Type                                                                                                            |
| ------- | --------------------------------------------------------------------------------------------------------------- |
| `args`  | void                                                                                                            |
| `opts?` | [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/v11/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/transactionqueue)*‹*[*SecurityToken*](https://developers.polymath.network/polymesh-sdk-api-reference/v11.0.2/classes/securitytoken)*››*
