Skip to main content
Version: 24.2.x

Class: PolymeshTransactionBase<ReturnValue, TransformedReturnValue>

base/PolymeshTransactionBase.PolymeshTransactionBase

Wrapper class for a Polymesh Transaction

Type parameters

NameType
ReturnValuevoid
TransformedReturnValueReturnValue

Hierarchy

Properties

blockHash

Optional blockHash: string

hash of the block where this transaction resides (status: Succeeded, Failed)

Defined in

base/PolymeshTransactionBase.ts:92


blockNumber

Optional blockNumber: BigNumber

number of the block where this transaction resides (status: Succeeded, Failed)

Defined in

base/PolymeshTransactionBase.ts:97


error

Optional error: PolymeshError

stores errors thrown while running the transaction (status: Failed, Aborted)

Defined in

base/PolymeshTransactionBase.ts:72


receipt

Optional receipt: ISubmittableResult

stores the transaction receipt (if successful)

Defined in

base/PolymeshTransactionBase.ts:77


status

status: TransactionStatus = TransactionStatus.Idle

current status of the transaction

Defined in

base/PolymeshTransactionBase.ts:67


txHash

Optional txHash: string

transaction hash (status: Running, Succeeded, Failed)

Defined in

base/PolymeshTransactionBase.ts:82


txIndex

Optional txIndex: BigNumber

transaction index within its block (status: Succeeded, Failed)

Defined in

base/PolymeshTransactionBase.ts:87

Accessors

isSuccess

get isSuccess(): boolean

returns true if transaction has completed successfully

Returns

boolean

Defined in

base/PolymeshTransactionBase.ts:756


result

get result(): TransformedReturnValue

returns the transaction result - this is the same value as the Promise run returns

Returns

TransformedReturnValue

Note

it is generally preferable to await the Promise returned by transaction.run() instead of reading this property

Throws

if the transaction.isSuccess property is false — be sure to check that before accessing!

Defined in

base/PolymeshTransactionBase.ts:673

Methods

getProtocolFees

Abstract getProtocolFees(): Promise<BigNumber>

Return this transaction's protocol fees. These are extra fees charged for specific operations on the chain. Not to be confused with network fees (which depend on the complexity of the operation), protocol fees are set by governance and/or chain upgrades

Returns

Promise<BigNumber>

Defined in

base/PolymeshTransactionBase.ts:601


getTotalFees

getTotalFees(): Promise<PayingAccountFees>

Retrieve a breakdown of the fees required to run this transaction, as well as the Account responsible for paying them

Returns

Promise<PayingAccountFees>

Note

these values might be inaccurate if the transaction is run at a later time. This can be due to a governance vote or other chain related factors (like modifications to a specific subsidizer relationship or a chain upgrade)

Defined in

base/PolymeshTransactionBase.ts:401


onProcessedByMiddleware

onProcessedByMiddleware(listener): UnsubCallback

Subscribe to the results of this transaction being processed by the indexing service (and as such, available to the middleware)

Parameters

NameTypeDescription
listener(err?: PolymeshError) => voidcallback function that will be called whenever the middleware is updated with the latest data. If there is an error (timeout or middleware offline) it will be passed to this callback

Returns

UnsubCallback

unsubscribe function

Note

this event will be fired even if the queue fails

Throws

if the middleware wasn't enabled when instantiating the SDK client

Defined in

base/PolymeshTransactionBase.ts:441


onStatusChange

onStatusChange(listener): UnsubCallback

Subscribe to status changes

Parameters

NameTypeDescription
listener(transaction: GenericPolymeshTransaction<ReturnValue, TransformedReturnValue>) => voidcallback function that will be called whenever the status changes

Returns

UnsubCallback

unsubscribe function

Defined in

base/PolymeshTransactionBase.ts:383


run

run(): Promise<TransformedReturnValue>

Run the transaction, update its status and return a result if applicable. Certain transactions create Entities on the blockchain, and those Entities are returned for convenience. For example, when running a transaction that creates an Asset, the Asset itself is returned

Returns

Promise<TransformedReturnValue>

Defined in

base/PolymeshTransactionBase.ts:191


supportsSubsidy

Abstract supportsSubsidy(): boolean

Return whether the transaction can be subsidized. If the result is false AND the caller is being subsidized by a third party, the transaction can't be executed and trying to do so will result in an error

Returns

boolean

Note

this depends on the type of transaction itself (e.g. staking.bond can't be subsidized, but asset.createAsset can)

Defined in

base/PolymeshTransactionBase.ts:571


toSignablePayload

toSignablePayload(metadata?): Promise<TransactionPayload>

Returns a representation intended for offline signers.

Parameters

NameType
metadataRecord<string, string>

Returns

Promise<TransactionPayload>

Note

Usually .run() should be preferred due to is simplicity.

Note

When using this method, details like account nonces, and transaction mortality require extra consideration. Generating a payload for offline sign implies asynchronicity. If using this API, be sure each procedure is created with the correct nonce, accounting for in flight transactions, and the lifetime is sufficient.

Defined in

base/PolymeshTransactionBase.ts:694