Skip to main content
Version: 30.0.x

Class: PolymeshTransaction<ReturnValue, TransformedReturnValue, Args>

Defined in: src/base/PolymeshTransaction.ts:14

Wrapper class for a Polymesh Transaction

Extends​

Type Parameters​

Type ParameterDefault type

ReturnValue

‐

TransformedReturnValue

ReturnValue

Args extends unknown[] | []

unknown[]

Properties​

args​

args: Args

Defined in: src/base/PolymeshTransaction.ts:40

arguments for the transaction in SCALE format (polkadot.js Codec)


blockHash?​

optional blockHash?: string

Defined in: src/base/PolymeshTransactionBase.ts:107

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

Inherited from​

PolymeshTransactionBase.blockHash


blockNumber?​

optional blockNumber?: BigNumber

Defined in: src/base/PolymeshTransactionBase.ts:112

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

Inherited from​

PolymeshTransactionBase.blockNumber


error?​

optional error?: PolymeshError

Defined in: src/base/PolymeshTransactionBase.ts:87

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

Inherited from​

PolymeshTransactionBase.error


multiSig​

multiSig: MultiSig | null

Defined in: src/base/PolymeshTransactionBase.ts:120

This will be set if the signingAddress is a MultiSig signer, otherwise null

When set it indicates the transaction will be wrapped as a proposal for the MultiSig, meaning .runAsProposal should be used instead of .run

Inherited from​

PolymeshTransactionBase.multiSig


receipt?​

optional receipt?: ISubmittableResult

Defined in: src/base/PolymeshTransactionBase.ts:92

stores the transaction receipt (if successful)

Inherited from​

PolymeshTransactionBase.receipt


status​

status: TransactionStatus = TransactionStatus.Idle

Defined in: src/base/PolymeshTransactionBase.ts:82

current status of the transaction

Inherited from​

PolymeshTransactionBase.status


tag​

tag: TxTag

Defined in: src/base/PolymeshTransaction.ts:45

type of transaction represented by this instance (mostly for display purposes)


txHash?​

optional txHash?: string

Defined in: src/base/PolymeshTransactionBase.ts:97

transaction hash (status: Running, Succeeded, Failed)

Inherited from​

PolymeshTransactionBase.txHash


txIndex?​

optional txIndex?: BigNumber

Defined in: src/base/PolymeshTransactionBase.ts:102

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

Inherited from​

PolymeshTransactionBase.txIndex

Accessors​

isSuccess​

Get Signature​

get isSuccess(): boolean

Defined in: src/base/PolymeshTransactionBase.ts:929

returns true if transaction has completed successfully

Returns​

boolean

Inherited from​

PolymeshTransactionBase.isSuccess


result​

Get Signature​

get result(): TransformedReturnValue

Defined in: src/base/PolymeshTransactionBase.ts:840

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

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!

Returns​

TransformedReturnValue

Inherited from​

PolymeshTransactionBase.result

Methods​

getProtocolFees()​

getProtocolFees(): Promise<BigNumber>

Defined in: src/base/PolymeshTransaction.ts:120

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>

Overrides​

PolymeshTransactionBase.getProtocolFees


getTotalFees()​

getTotalFees(asProposal?: boolean): Promise<PayingAccountFees>

Defined in: src/base/PolymeshTransactionBase.ts:566

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

Parameters​

ParameterTypeDefault valueDescription

asProposal

boolean

true

When true (default), treats the transaction as a MultiSig proposal if the signing account is a MultiSig signer. When false, treats the transaction as a direct transaction from the signing account, ignoring the MultiSig.

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)

Inherited from​

PolymeshTransactionBase.getTotalFees


onProcessedByMiddleware()​

onProcessedByMiddleware(listener: (err?: PolymeshError) => void): UnsubCallback

Defined in: src/base/PolymeshTransactionBase.ts:606

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

Parameters​

ParameterTypeDescription

listener

(err?: PolymeshError) => void

callback 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

Inherited from​

PolymeshTransactionBase.onProcessedByMiddleware


onStatusChange()​

onStatusChange(listener: (transaction: GenericPolymeshTransaction<ReturnValue, TransformedReturnValue>) => void): UnsubCallback

Defined in: src/base/PolymeshTransactionBase.ts:545

Subscribe to status changes

Parameters​

ParameterTypeDescription

listener

(transaction: GenericPolymeshTransaction<ReturnValue, TransformedReturnValue>) => void

callback function that will be called whenever the status changes

Returns​

UnsubCallback

unsubscribe function

Inherited from​

PolymeshTransactionBase.onStatusChange


run()​

run(): Promise<TransformedReturnValue>

Defined in: src/base/PolymeshTransactionBase.ts:285

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>

Inherited from​

PolymeshTransactionBase.run


runAsProposal()​

runAsProposal(): Promise<MultiSigProposal>

Defined in: src/base/PolymeshTransactionBase.ts:238

Run the transaction as a multiSig proposal

Returns​

Promise<MultiSigProposal>

Inherited from​

PolymeshTransactionBase.runAsProposal


supportsSubsidy()​

supportsSubsidy(): boolean

Defined in: src/base/PolymeshTransaction.ts:145

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)

Overrides​

PolymeshTransactionBase.supportsSubsidy


toSignablePayload()​

toSignablePayload(metadata?: Record<string, string>, asProposal?: boolean): Promise<TransactionPayload>

Defined in: src/base/PolymeshTransactionBase.ts:865

Returns a representation intended for offline signers.

Parameters​

ParameterTypeDefault valueDescription

metadata

Record<string, string>

{}

Additional information attached to the payload, such as IDs or memos about the transaction

asProposal

boolean

true

When true (default), treats the transaction as a MultiSig proposal if the signing account is a MultiSig signer. When false, treats the transaction as a direct transaction from the signing account, ignoring the MultiSig.

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.

Inherited from​

PolymeshTransactionBase.toSignablePayload