# Module BSV::Wallet::Engine::InputSource <a id="module-BSV-Wallet-Engine-InputSource"></a>

Single point of truth for wiring source-output data onto a TransactionInput.
Used by Engine::TxBuilder#build_inputs (inline construction path, before
signing) and Engine::Broadcast#hydrated_transaction_for (daemon path, after
parsing raw_tx). Both paths converge here so the SDK can serialize the
transaction to Extended Format on the wire.

## Public Class Methods
### `attach!(input, source)` <a id="method-c-attach-21"></a> <a id="attach!-class_method"></a>
Attach source-output data to a TransactionInput.

`source` is a row from +Store#resolve_inputs_for_signing+ carrying
<code>:source_satoshis</code> (Integer) and
<code>:source_locking_script</code> (binary bytes). The locking script is
wrapped in <code>BSV::Script::Script</code> for the SDK's EF serializer.
- **@param** `input` [Transaction::TransactionInput]
- **@param** `source` [Hash] row from Store#resolve_inputs_for_signing
