Packages
stellar_sdk
0.9.3
0.23.0
0.22.0
0.21.2
0.21.1
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.17.1
0.17.0
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Elixir SDK for the Stellar network.
Current section
Files
Jump to
Current section
Files
lib/tx_build.ex
defmodule Stellar.TxBuild do
@moduledoc """
Specifies an API to build Stellar transactions.
"""
@behaviour Stellar.TxBuild.Spec
alias Stellar.TxBuild.{Signature, Transaction, TransactionEnvelope}
@type tx :: Transaction.t()
@type signatures :: Signature.t() | list(Signature.t())
@type tx_envelope :: TransactionEnvelope.t() | nil
@type t :: %__MODULE__{
tx: tx(),
signatures: signatures(),
tx_envelope: tx_envelope()
}
defstruct [:tx, :signatures, :tx_envelope]
@impl true
def new(account, opts \\ []), do: impl().new(account, opts)
@impl true
def add_memo(tx, memo), do: impl().add_memo(tx, memo)
@impl true
def set_time_bounds(tx, time_bounds), do: impl().set_time_bounds(tx, time_bounds)
@impl true
def set_preconditions(tx, preconditions), do: impl().set_preconditions(tx, preconditions)
@impl true
def set_base_fee(tx, timeout), do: impl().set_base_fee(tx, timeout)
@impl true
def set_sequence_number(tx, sequence_number),
do: impl().set_sequence_number(tx, sequence_number)
@impl true
def add_operation(tx, operation), do: impl().add_operation(tx, operation)
@impl true
def add_operations(tx, operations), do: impl().add_operations(tx, operations)
@impl true
def sign(tx, signatures), do: impl().sign(tx, signatures)
@impl true
def build(tx), do: impl().build(tx)
@impl true
def envelope(tx), do: impl().envelope(tx)
@impl true
def sign_envelope(base64_envelope, signatures),
do: impl().sign_envelope(base64_envelope, signatures)
@spec impl() :: atom()
defp impl do
Application.get_env(:stellar_sdk, :tx_build_impl, Stellar.TxBuild.Default)
end
end