# api\_entities\_Offering.Offering

[@polymeshassociation/polymesh-sdk](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes) / [Modules](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules) / [api/entities/Offering](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_offering) / Offering

## Class: Offering

[api/entities/Offering](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_offering).Offering

Represents an Asset Offering in the Polymesh blockchain

### Hierarchy

* [`Entity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity)<[`UniqueIdentifiers`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_offering.uniqueidentifiers), `HumanReadable`>

  ↳ **`Offering`**

### Table of contents

#### Properties

* [asset](#asset)
* [id](#id)
* [uuid](#uuid)

#### Methods

* [close](#close)
* [details](#details)
* [exists](#exists)
* [freeze](#freeze)
* [getInvestments](#getinvestments)
* [invest](#invest)
* [isEqual](#isequal)
* [modifyTimes](#modifytimes)
* [toHuman](#tohuman)
* [unfreeze](#unfreeze)
* [generateUuid](#generateuuid)
* [unserialize](#unserialize)

### Properties

#### asset

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

Asset being offered

**Defined in**

[api/entities/Offering/index.ts:66](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L66)

***

#### id

• **id**: `BigNumber`

identifier number of the Offering

**Defined in**

[api/entities/Offering/index.ts:61](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L61)

***

#### uuid

• **uuid**: `string`

**Inherited from**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[uuid](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#uuid)

**Defined in**

[api/entities/Entity.ts:46](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L46)

### Methods

#### close

▸ **close**(`opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Close the Offering

**`note`** this method is of type [NoArgsProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod), which means you can call [close.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod#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://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts) |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Offering/index.ts:159](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L159)

***

#### details

▸ **details**(): `Promise`<[`OfferingDetails`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_offering_types.offeringdetails)>

Retrieve the Offering's details

**`note`** can be subscribed to

**Returns**

`Promise`<[`OfferingDetails`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_offering_types.offeringdetails)>

**Defined in**

[api/entities/Offering/index.ts:112](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L112)

▸ **details**(`callback`): `Promise`<[`UnsubCallback`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/types#unsubcallback)>

**Parameters**

| Name       | Type                                                                                                                                                                                                                                                                          |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback` | [`SubCallback`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/types#subcallback)<[`OfferingDetails`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_offering_types.offeringdetails)> |

**Returns**

`Promise`<[`UnsubCallback`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/types#unsubcallback)>

**Defined in**

[api/entities/Offering/index.ts:113](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L113)

***

#### exists

▸ **exists**(): `Promise`<`boolean`>

Determine whether this Offering exists on chain

**Returns**

`Promise`<`boolean`>

**Overrides**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[exists](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#exists)

**Defined in**

[api/entities/Offering/index.ts:278](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L278)

***

#### freeze

▸ **freeze**(`opts?`): `Promise`<`TransactionQueue`<[`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), [`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), `unknown`\[]\[]>>

Freeze the Offering

**`note`** this method is of type [NoArgsProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod), which means you can call [freeze.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod#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://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts) |

**Returns**

`Promise`<`TransactionQueue`<[`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), [`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), `unknown`\[]\[]>>

**Defined in**

[api/entities/Offering/index.ts:169](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L169)

***

#### getInvestments

▸ **getInvestments**(`opts?`): `Promise`<[`ResultSet`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.resultset)<[`Investment`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_offering_types.investment)>>

Retrieve all investments made on this Offering

**`note`** supports pagination

**`note`** uses the middleware

**Parameters**

| Name          | Type        | Description |
| ------------- | ----------- | ----------- |
| `opts`        | `Object`    | -           |
| `opts.size?`  | `BigNumber` | page size   |
| `opts.start?` | `BigNumber` | page offset |

**Returns**

`Promise`<[`ResultSet`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.resultset)<[`Investment`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_offering_types.investment)>>

**Defined in**

[api/entities/Offering/index.ts:221](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L221)

***

#### invest

▸ **invest**(`args`, `opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Invest in the Offering

**`note`** required roles:

* Purchase Portfolio Custodian
* Funding Portfolio Custodian

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [invest.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                                                                    |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`InvestInOfferingParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_procedures_investinoffering.investinofferingparams) |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts)                                             |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Offering/index.ts:208](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L208)

***

#### isEqual

▸ **isEqual**(`entity`): `boolean`

Determine whether this Entity is the same as another one

**Parameters**

| Name     | Type                                                                                                                                           |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `entity` | [`Entity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity)<`unknown`, `unknown`> |

**Returns**

`boolean`

**Inherited from**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[isEqual](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#isequal)

**Defined in**

[api/entities/Entity.ts:61](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L61)

***

#### modifyTimes

▸ **modifyTimes**(`args`, `opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Modify the start/end time of the Offering

**`throws`** if:

* Trying to modify the start time on an Offering that already started
* Trying to modify anything on an Offering that already ended
* Trying to change start or end time to a past date

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [modifyTimes.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                                                                            |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`ModifyOfferingTimesParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_procedures_modifyofferingtimes#modifyofferingtimesparams) |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts)                                                     |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Offering/index.ts:194](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L194)

***

#### toHuman

▸ **toHuman**(): `HumanReadable`

Return the Offering's ID and Asset ticker

**Returns**

`HumanReadable`

**Overrides**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[toHuman](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#tohuman)

**Defined in**

[api/entities/Offering/index.ts:296](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L296)

***

#### unfreeze

▸ **unfreeze**(`opts?`): `Promise`<`TransactionQueue`<[`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), [`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), `unknown`\[]\[]>>

Unfreeze the Offering

**`note`** this method is of type [NoArgsProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod), which means you can call [unfreeze.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod#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://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts) |

**Returns**

`Promise`<`TransactionQueue`<[`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), [`Offering`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_offering.offering), `unknown`\[]\[]>>

**Defined in**

[api/entities/Offering/index.ts:179](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Offering/index.ts#L179)

***

#### generateUuid

▸ `Static` **generateUuid**<`Identifiers`>(`identifiers`): `string`

Generate the Entity's UUID from its identifying properties

**Type parameters**

| Name          |
| ------------- |
| `Identifiers` |

**Parameters**

| Name          | Type          |
| ------------- | ------------- |
| `identifiers` | `Identifiers` |

**Returns**

`string`

**Inherited from**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[generateUuid](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#generateuuid)

**Defined in**

[api/entities/Entity.ts:14](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L14)

***

#### unserialize

▸ `Static` **unserialize**<`Identifiers`>(`serialized`): `Identifiers`

Unserialize a UUID into its Unique Identifiers

**Type parameters**

| Name          |
| ------------- |
| `Identifiers` |

**Parameters**

| Name         | Type     | Description         |
| ------------ | -------- | ------------------- |
| `serialized` | `string` | UUID to unserialize |

**Returns**

`Identifiers`

**Inherited from**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[unserialize](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#unserialize)

**Defined in**

[api/entities/Entity.ts:23](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L23)
