    import {Transaction} from '@solana/web3'

public class | source

# Transaction

Transaction class

## Static Method Summary

Static Public Methods
public static | from(buffer: Buffer | Uint8Array | Array<number>): Transaction Parse a wire transaction into a Transaction object. |
public static | populate(message: Message, signatures: Array<string>): Transaction Populate Transaction object from message and signatures |

## Constructor Summary

Public Constructor
public | constructor(opts: TransactionCtorFields) Construct an empty Transaction |

## Member Summary

Public Members
public | instructions: Array<TransactionInstruction> The instructions to atomically execute |
public | nonceInfo: NonceInformation | nullliteral Optional Nonce information. |
public | recentBlockhash: Blockhash | nullliteral A recent transaction id. |
public get | signature: Buffer | nullliteral The first (payer) Transaction signature |
public | signatures: Array<SignaturePubkeyPair> Signatures for the transaction. |

## Method Summary

Public Methods
public | add(items: ...Array<Transaction|TransactionInstruction|TransactionInstructionCtorFields>): Transaction Add one or more instructions to this Transaction |
public | addSignature(pubkey: PublicKey, signature: Buffer) Add an externally created signature to a transaction |
public | addSigner(signer: Account) Fill in a signature for a partially signed Transaction. |
public | compileMessage(): Message Compile transaction data |
public | serialize(): Buffer Serialize the Transaction in the wire format. |
public | serializeMessage(): Buffer Get a buffer of the Transaction data that need to be covered by signatures |
public | sign(signers: ...Array<Account>) Sign the Transaction with the specified accounts. |
public | signPartial(partialSigners: ...Array<PublicKey|Account>) Partially sign a Transaction with the specified accounts. |
public | verifySignatures(): boolean Verify signatures of a complete, signed Transaction |

## Static Public Methods

### public static from(buffer: Buffer | Uint8Array | Array<number>): Transaction source

Parse a wire transaction into a Transaction object.

#### Params:

Name | Type | Attribute | Description
buffer | Buffer | Uint8Array | Array<number> |  |

#### Return:

Transaction

### public static populate(message: Message, signatures: Array<string>): Transaction source

Populate Transaction object from message and signatures

#### Params:

Name | Type | Attribute | Description
message | Message |  |
signatures | Array<string> |  |

#### Return:

Transaction

## Public Constructors

### public constructor(opts: TransactionCtorFields) source

Construct an empty Transaction

#### Params:

Name | Type | Attribute | Description
opts | TransactionCtorFields |  |

## Public Members

### public instructions: Array<TransactionInstruction> source

The instructions to atomically execute

### public nonceInfo: NonceInformation | nullliteral source

Optional Nonce information. If populated, transaction will use a durable Nonce hash instead of a recentBlockhash. Must be populated by the caller

### public recentBlockhash: Blockhash | nullliteral source

A recent transaction id. Must be populated by the caller

### public get signature: Buffer | nullliteral source

The first (payer) Transaction signature

### public signatures: Array<SignaturePubkeyPair> source

Signatures for the transaction. Typically created by invoking the `sign()` method

## Public Methods

### public add(items: ...Array<Transaction|TransactionInstruction|TransactionInstructionCtorFields>): Transaction source

Add one or more instructions to this Transaction

#### Params:

Name | Type | Attribute | Description
items | ...Array<Transaction|TransactionInstruction|TransactionInstructionCtorFields> |  |

#### Return:

Transaction

### public addSignature(pubkey: PublicKey, signature: Buffer) source

Add an externally created signature to a transaction

#### Params:

Name | Type | Attribute | Description
pubkey | PublicKey |  |
signature | Buffer |  |

### public addSigner(signer: Account) source

Fill in a signature for a partially signed Transaction. The `signer` must be the corresponding `Account` for a `PublicKey` that was previously provided to `signPartial`

#### Params:

Name | Type | Attribute | Description
signer | Account |  |

### public compileMessage(): Message source

Compile transaction data

#### Return:

Message

### public serialize(): Buffer source

Serialize the Transaction in the wire format.

The Transaction must have a valid `signature` before invoking this method

#### Return:

Buffer

### public serializeMessage(): Buffer source

Get a buffer of the Transaction data that need to be covered by signatures

#### Return:

Buffer

### public sign(signers: ...Array<Account>) source

Sign the Transaction with the specified accounts. Multiple signatures may be applied to a Transaction. The first signature is considered "primary" and is used when testing for Transaction confirmation.

Transaction fields should not be modified after the first call to `sign`, as doing so may invalidate the signature and cause the Transaction to be rejected.

The Transaction must be assigned a valid `recentBlockhash` before invoking this method

#### Params:

Name | Type | Attribute | Description
signers | ...Array<Account> |  |

### public signPartial(partialSigners: ...Array<PublicKey|Account>) source

Partially sign a Transaction with the specified accounts. The `Account` inputs will be used to sign the Transaction immediately, while any `PublicKey` inputs will be referenced in the signed Transaction but need to be filled in later by calling `addSigner()` with the matching `Account`.

All the caveats from the `sign` method apply to `signPartial`

#### Params:

Name | Type | Attribute | Description
partialSigners | ...Array<PublicKey|Account> |  |

### public verifySignatures(): boolean source

Verify signatures of a complete, signed Transaction

#### Return:

boolean