Table of Contents

Namespace Concordium.Sdk.Transactions

Classes

AccountSignatureMap

Represents a map from AccountKeyIndex values to signatures.

An AccountSignatureMap corresponds to a mapping from key indices to signatures produced by signing a transaction hash with the account keys corresponding to the indices. A key index is always relative to an AccountCredentialIndex. Each signature is currently produced by signing with an Ed25519SignKey and therefore 64 bytes long.

AccountTransactionHeader

Represents the header of an account transaction.

Transactions sent to the node include an account transaction header with the following information that is used when processing the transaction:

The AccountAddress of the sender, the AccountSequenceNumber to use, the Expiry time of the transaction, the maximum EnergyAmount to spend on the transaction as well as the PayloadSize.

AccountTransactionPayload

Represents the payload of account transaction.

Inheriting records should implement data specific to the transaction they model as well as helpers for constructing serialized transaction payloads to be sent to the Concordium node.

AccountTransactionSignature

Represents the signature of a signed account transaction.

An account has one or more credentials with each such credential having up to 256 sign keys (and accompanying verification keys). Each credential is identified by its unique AccountCredentialIndex and each key by a unique pair of a AccountCredentialIndex corresponding to the credential to which it belongs, and a unique AccountKeyIndex relative to that credential index of the account. For each key, it is thus represented by some pair of a credential index and a key index.

An AccountTransactionSignature corresponds to a mapping from credential and key indices to signatures produced by signing the transaction hash with the account keys corresponding to the indices.

Producers of AccountTransactionSignatures should implement ITransactionSigner.

BlockItem

A block item.

BlockItemType

Either a SignedAccountTransaction, CredentialDeployment or UpdateInstruction.

CredentialDeployment

Credential deployments create new accounts. They are not paid for directly by the sender. Instead, bakers are rewarded by the protocol for including them.

CredentialPayloadRaw

A raw payload, which is just the encoded payload. A typed variant might be added in the future.

DeployModule

A deployment of a Wasm smart contract module.

InitContract

Represents an "init_contract" transaction.

Used for initializing deployed smart contracts.

PreparedAccountTransaction

Represents an account transaction which is prepared for signing.

The transaction is prepared in the sense that it is augmented with the AccountAddress of the sender, the AccountSequenceNumber to use when submitting the transaction as well as its Expiry. These are also used when signing the transaction.

RawPayload

Represents the raw payload of an account transaction.

Used mostly for debugging, the only place where this will be encountered is when querying transactions from chain that have not been implemented for this SDK yet, and thus can not be deserialized.

RegisterData

Represents a "register data" account transaction.

Used for registering data on-chain.

SignedAccountTransaction

Represents a signed account transaction which is ready to be sent to the node.

A signed account transaction constitutes an AccountTransactionHeader, an AccountTransactionPayload as well as an AccountTransactionSignature.

A SignedAccountTransaction can be created with the Sign(ITransactionSigner) method with an implementer of ITransactionSigner.

TransactionSigner

Dictionary based implementation of ITransactionSigner.

Maintains a dictionary mapping pairs of AccountCredentialIndex and AccountKeyIndex to ISigners corresponding to the sign keys of an account.

Transfer

Represents a "transfer" account transaction.

Used for transferring CCD from one account to another.

TransferWithMemo

Represents a "transfer with memo" account transaction.

Used for transferring CCD from one account to another. Like Transfer, but additionally stores a memo associated with the transfer on-chain.

UpdateContract

A deployment of a Wasm smart contract module.

UpdateInstruction

Update instructions are messages which can update the chain parameters. Including which keys are allowed to make future update instructions.

UpdateInstructionHeader

The header of an UpdateInstruction.

UpdateInstructionPayloadRaw

A raw payload encoded according to the format defined by the protocol.

UpdateInstructionSignatureMap

A map from UpdateKeysIndex to signatures.

UpdateKeysIndex

Index of a key in an authorizations update payload.

UpdateSequenceNumber

A sequence number that determines the ordering of update transactions. Equivalent to SequenceNumber for account transactions. Update sequence numbers are per update type and the minimum value is 1.

Interfaces

ICredentialPayload

The payload of a Credential Deployment.

ITransactionSigner

Implementers of ITransactionSigner provide functionality for signing data using account keys.

An account has one or more credentials with each such credential having up to 256 sign keys (and accompanying verification keys). Each credential is identified by its unique AccountCredentialIndex and each key by a unique pair of a AccountCredentialIndex corresponding to the credential to which it belongs, and a unique AccountKeyIndex relative to that credential index of the account. For each key, it is thus represented by some pair of a credential index and a key index.

The resulting AccountTransactionSignature from calling Sign(byte[]) should reflect this structure and correspond to a mapping from credential and key indices to the signatures produced by signing a transaction hash with the corresponding keys.

IUpdateInstructionPayload

The payload for an UpdateInstruction.