Skip to main content
Version: 23.0.x

Class: Count

api/entities/Asset/Fungible/TransferRestrictions/Count.Count

Handles all Count Transfer Restriction related functionality

Hierarchy

Properties

addRestriction

addRestriction: ProcedureMethod<Omit<AddCountTransferRestrictionParams, "type">, BigNumber, BigNumber>

Add a Count Transfer Restriction to this Asset. This limits to total number of individual investors that may hold the Asset. In some jurisdictions once a threshold of investors is passed, different regulations may apply. Count Transfer Restriction can ensure such limits are not exceeded

Throws

if a count statistic is not enabled for the Asset. Count.enableStat should be called before this method

Overrides

TransferRestrictionBase.addRestriction

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:38


disableStat

disableStat: NoArgsProcedureMethod<void, void>

Disables the investor count statistic for the Asset. Since statistics introduce slight overhead to each transaction involving the Asset, disabling unused stats will reduce gas fees for investors when they transact with the Asset

Throws

if the stat is being used by a restriction or is not set

Overrides

TransferRestrictionBase.disableStat

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:82


enableStat

enableStat: ProcedureMethod<Pick<AddCountStatParams, "count">, void, void>

Enables an investor count statistic for the Asset, which is required before creating restrictions

The counter is only updated automatically with each transfer of tokens after the stat has been enabled. As such the initial value for the stat should be passed in, which can be fetched with Count.investorCount

Note

Currently there is a potential race condition if passing in counts values when the Asset is being traded. It is recommended to call this method during the initial configuration of the Asset, before people are trading it. Otherwise the Asset should be frozen, or the stat checked after being set to ensure the correct value is used. Future versions of the chain may expose a new extrinsic to avoid this issue

Overrides

TransferRestrictionBase.enableStat

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:74


get

get: () => Promise<ActiveTransferRestrictions <CountTransferRestriction>>

Type declaration

▸ (): Promise<ActiveTransferRestrictions <CountTransferRestriction>>

/**

  • Retrieve all active Count Transfer Restrictions
Returns

Promise<ActiveTransferRestrictions <CountTransferRestriction>>

Note

there is a maximum number of restrictions allowed across all types.

  • The availableSlots property of the result represents how many more restrictions can be added
  • before reaching that limit

Overrides

TransferRestrictionBase.get

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:93


investorCount

investorCount: () => Promise<BigNumber>

Type declaration

▸ (): Promise<BigNumber>

Returns the count of individual holders of the Asset

Returns

Promise<BigNumber>

Note

This value can be used to initialize enableStat. If used for this purpose there is a potential race condition if Asset transfers happen between the time of check and time of use. Either pause Asset transfers, or check after stat creation and try again if a race occurred. Future versions of the chain should introduce an extrinsic to avoid this issue

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:102


removeRestrictions

removeRestrictions: NoArgsProcedureMethod<BigNumber, BigNumber>

Removes all Count Transfer Restrictions from this Asset

Note

the result is the total amount of restrictions after the procedure has run

Overrides

TransferRestrictionBase.removeRestrictions

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:61


setRestrictions

setRestrictions: ProcedureMethod<Omit<SetCountTransferRestrictionsParams, "type">, BigNumber, BigNumber>

Sets all Count Transfer Restrictions on this Asset

Note

this method sets exempted Identities for restrictions as well. If an Identity is currently exempted from a Count Transfer Restriction but not passed into this call then it will be removed

Note

the result is the total amount of restrictions after the procedure has run

Overrides

TransferRestrictionBase.setRestrictions

Defined in

api/entities/Asset/Fungible/TransferRestrictions/Count.ts:51