Transaction Input
Overview
Purpose
Basic Usage
import { Transaction, TransactionInput, PrivateKey, P2PKH } from '@bsv/sdk';
// Create a transaction with an input
const privKey = PrivateKey.fromWif('L5EY1SbTvvPNSdCYQe1EJHfXCBBT4PmnF6CDbzCm9iifZptUvDGB');
// Reference to previous transaction
const sourceTransaction = Transaction.fromHex('0100000001...');
const sourceOutputIndex = 0;
// Create input with unlocking script template
const input: TransactionInput = {
sourceTransaction,
sourceOutputIndex,
unlockingScriptTemplate: new P2PKH().unlock(privKey),
sequence: 0xffffffff // Default sequence number
};
// Create transaction and add input
const tx = new Transaction();
tx.addInput(input);
// The unlocking script will be populated during signing
await tx.sign();
console.log('Input added:', tx.inputs[0]);
console.log('Unlocking script:', tx.inputs[0].unlockingScript?.toHex());Key Features
1. Creating Transaction Inputs with Source References
2. Unlocking Script Templates
3. Sequence Numbers and Time Locks
4. SPV with Merkle Proofs
API Reference
TransactionInput Interface
Creating Inputs
Input Properties
Serialization
Common Patterns
Pattern 1: Spending Multiple UTXOs
Pattern 2: Multi-Signature Input
Pattern 3: UTXO Management and Coin Selection
Security Considerations
Performance Considerations
Related Components
Code Examples
Best Practices
Troubleshooting
Issue: Input references non-existent UTXO
Issue: Insufficient funds
Issue: Unlocking script doesn't match locking script
Issue: Sequence number prevents replacement
Further Reading
Status
Last updated
