BSV.Tokens.Factory.Stas (bsv_sdk v1.1.0)

Copy Markdown View Source

STAS transaction factories.

Pure functions that build complete, signed transactions for STAS token operations: issue, transfer, split, merge, and redeem.

Summary

Functions

Build an issue transaction.

Build a merge transaction.

Build a redeem (burn) transaction.

Build a split transaction.

Build a transfer transaction.

Types

issue_config()

@type issue_config() :: %{
  contract_utxo: BSV.Tokens.Payment.t(),
  destinations: [BSV.Tokens.Destination.t()],
  redemption_pkh: <<_::160>>,
  splittable: boolean(),
  funding: BSV.Tokens.Payment.t(),
  fee_rate: non_neg_integer()
}

merge_config()

@type merge_config() :: %{
  token_utxos: [BSV.Tokens.Payment.t()],
  destination: BSV.Tokens.Destination.t(),
  redemption_pkh: <<_::160>>,
  splittable: boolean(),
  funding: BSV.Tokens.Payment.t(),
  fee_rate: non_neg_integer()
}

redeem_config()

@type redeem_config() :: %{
  token_utxo: BSV.Tokens.Payment.t(),
  funding: BSV.Tokens.Payment.t(),
  fee_rate: non_neg_integer()
}

split_config()

@type split_config() :: %{
  token_utxo: BSV.Tokens.Payment.t(),
  destinations: [BSV.Tokens.Destination.t()],
  redemption_pkh: <<_::160>>,
  funding: BSV.Tokens.Payment.t(),
  fee_rate: non_neg_integer()
}

transfer_config()

@type transfer_config() :: %{
  token_utxo: BSV.Tokens.Payment.t(),
  destination: BSV.Tokens.Destination.t(),
  redemption_pkh: <<_::160>>,
  splittable: boolean(),
  funding: BSV.Tokens.Payment.t(),
  fee_rate: non_neg_integer()
}

Functions

build_issue_tx(config)

@spec build_issue_tx(issue_config()) :: {:ok, BSV.Transaction.t()} | {:error, term()}

Build an issue transaction.

build_merge_tx(config)

@spec build_merge_tx(merge_config()) :: {:ok, BSV.Transaction.t()} | {:error, term()}

Build a merge transaction.

build_redeem_tx(config)

@spec build_redeem_tx(redeem_config()) ::
  {:ok, BSV.Transaction.t()} | {:error, term()}

Build a redeem (burn) transaction.

build_split_tx(config)

@spec build_split_tx(split_config()) :: {:ok, BSV.Transaction.t()} | {:error, term()}

Build a split transaction.

build_transfer_tx(config)

@spec build_transfer_tx(transfer_config()) ::
  {:ok, BSV.Transaction.t()} | {:error, term()}

Build a transfer transaction.