# CorporateActions

Handles all Asset Corporate Actions related functionality

## Hierarchy

* Namespace‹[Asset](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/asset)›

  ↳ **CorporateActions**

## Index

### Properties

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

### Methods

* [getAgents](#getagents)
* [getDefaultConfig](#getdefaultconfig)
* [remove](#remove)
* [removeAgent](#removeagent)
* [setAgent](#setagent)
* [setDefaultConfig](#setdefaultconfig)

## Properties

### `Protected` context

• **context**: *Context*

*Inherited from void*

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

***

### distributions

• **distributions**: [*Distributions*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/distributions)

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:35*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L35)

***

### `Protected` parent

• **parent**: [*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/asset)

*Inherited from void*

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

## Methods

### getAgents

▸ **getAgents**(): *Promise‹*[*Identity*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/identity)*\[]›*

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:125*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L125)

Retrieve a list of agent Identities

**Returns:** *Promise‹*[*Identity*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/identity)*\[]›*

***

### getDefaultConfig

▸ **getDefaultConfig**(): *Promise‹*[*CorporateActionDefaultConfig*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/corporateactiondefaultconfig.md)*›*

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:160*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L160)

Retrieve default config comprising of targets, global tax withholding percentage and per-Identity tax withholding percentages.

**`note`** This config is applied to every Corporate Action that is created until they are modified. Modifying the default config does not impact existing Corporate Actions. When creating a Corporate Action, values passed explicitly will override this default config

**Returns:** *Promise‹*[*CorporateActionDefaultConfig*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/corporateactiondefaultconfig.md)*›*

***

### remove

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

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:118*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L118)

Remove a Corporate Action

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/proceduremethod.md), which means you can call [remove.checkAuthorization](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/proceduremethod.md#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters:**

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

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue)*‹void››*

***

### removeAgent

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

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:108*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L108)

Remove the Corporate Actions Agent of the Asset

**`note`** this action will leave the Asset owner as the Corporate Actions Agent

**`deprecated`**

**`note`** this method is of type [NoArgsProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/noargsproceduremethod.md), which means you can call [removeAgent.checkAuthorization](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/noargsproceduremethod.md#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters:**

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

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue)*‹void››*

***

### setAgent

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

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:94*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L94)

Assign a new Corporate Actions Agent for the Asset

**`note`** this may create [Authorization Requests](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/authorizationrequest) which have to be accepted by the `target` Identity. An [Account](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/enums/signertype.md#account) or [Identity](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/enums/roletype.md#identity) can fetch its pending Authorization Requests by calling [authorizations.getReceived](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/authorizations#getreceived). Also, an Account or Identity can directly fetch the details of an Authorization Request by calling [authorizations.getOne](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/authorizations#getone)

**`deprecated`** in favor of `inviteAgent`

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/proceduremethod.md), which means you can call [setAgent.checkAuthorization](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/proceduremethod.md#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters:**

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

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue)*‹void››*

***

### setDefaultConfig

▸ **setDefaultConfig**(`args`: [ModifyCaDefaultConfigParams](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/globals#modifycadefaultconfigparams), `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Asset/CorporateActions/index.ts:78*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Asset/CorporateActions/index.ts#L78)

Assign default config values(targets, global tax withholding percentage and per-Identity tax withholding percentages)

**`note`** These config values are applied to every Corporate Action that is created until they are modified. Modifying these values does not impact existing Corporate Actions. When creating a Corporate Action, values passed explicitly will override these default config values

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/proceduremethod.md), which means you can call [setDefaultConfig.checkAuthorization](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/proceduremethod.md#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters:**

| Name    | Type                                                                                                                                        |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [ModifyCaDefaultConfigParams](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/globals#modifycadefaultconfigparams) |
| `opts?` | [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)                            |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue)*‹void››*
