Show / Hide Table of Contents

Class SignatureComposer

Composes a fully signed transaction from partially signed blobs (#43). Devices sign with whatever keys they hold — single main signature, sponsor or counterparty co-signature, or portable multisig Signer entries — and the composer routes everything into the right sections. Which section an entry belongs to is still decided here, by account, but it is no longer only the composer's business: since rippled's fixCleanup3_4_0 an entry in SponsorSignature.Signers or CounterpartySignature.Signers covers different bytes than one in tx.Signers, so the signer had to know its side already. It works that out from the transaction in every shape but one - see SignatureRole - and routing an entry into a section its signer did not sign for now produces a signature the node rejects rather than a portable one.

Inheritance
object
SignatureComposer
Namespace: Xrpl.Wallet
Assembly: Xrpl.dll
Syntax
public static class SignatureComposer

Methods

| Edit this page View Source

ComposeSignatures(IEnumerable<string>, IReadOnlyCollection<string>?)

The two-argument form, for sponsor-side routing only.

Declaration
public static SignatureResult ComposeSignatures(IEnumerable<string> partBlobs, IReadOnlyCollection<string>? sponsorSignerAccounts)
Parameters
Type Name Description
IEnumerable<string> partBlobs

Partially signed blobs of the same transaction.

IReadOnlyCollection<string> sponsorSignerAccounts

Accounts whose Signer entries belong to the sponsor's SignerList.

Returns
Type Description
SignatureResult
Remarks

Kept as its own overload rather than folded into the three-argument method above. Adding a parameter with a default is source-compatible but not binary-compatible: an assembly compiled against the two-argument signature emits a call to a method that would no longer exist, and fails at run time rather than at build.

| Edit this page View Source

ComposeSignatures(IEnumerable<string>, IReadOnlyCollection<string>?, IReadOnlyCollection<string>?)

Offline composition. Signer entries from accounts listed in sponsorSignerAccounts go into SponsorSignature.Signers, entries from counterpartySignerAccounts into CounterpartySignature.Signers (XLS-66 LoanSet borrower with a SignerList); all other entries go into tx.Signers. For ledger-driven routing use the IXrplClient.ComposeSignatures extension instead.

Declaration
public static SignatureResult ComposeSignatures(IEnumerable<string> partBlobs, IReadOnlyCollection<string>? sponsorSignerAccounts = null, IReadOnlyCollection<string>? counterpartySignerAccounts = null)
Parameters
Type Name Description
IEnumerable<string> partBlobs

Partially signed blobs of the same transaction.

IReadOnlyCollection<string> sponsorSignerAccounts

Accounts whose Signer entries belong to the sponsor's SignerList.

IReadOnlyCollection<string> counterpartySignerAccounts

Accounts whose Signer entries belong to the LoanSet counterparty's SignerList.

Returns
Type Description
SignatureResult
  • Edit this page
  • View Source
In this article
Back to top Generated by DocFX