Skip to content
8 changes: 7 additions & 1 deletion gen/rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,17 @@ ledgers = ["utxorpc-v1alpha-cardano"]
# @@protoc_deletion_point(features)
# This section is automatically generated by protoc-gen-prost-crate.
# Changes in this area may be lost on regeneration.
proto_full = ["utxorpc-v1alpha-bitcoin","utxorpc-v1alpha-cardano","utxorpc-v1alpha-query","utxorpc-v1alpha-submit","utxorpc-v1alpha-sync","utxorpc-v1alpha-watch"]
proto_full = ["utxorpc-v1alpha-bitcoin","utxorpc-v1alpha-cardano","utxorpc-v1alpha-query","utxorpc-v1alpha-submit","utxorpc-v1alpha-sync","utxorpc-v1alpha-watch","utxorpc-v1beta-bitcoin","utxorpc-v1beta-cardano","utxorpc-v1beta-query","utxorpc-v1beta-submit","utxorpc-v1beta-sync","utxorpc-v1beta-watch"]
"utxorpc-v1alpha-bitcoin" = []
"utxorpc-v1alpha-cardano" = []
"utxorpc-v1alpha-query" = ["utxorpc-v1alpha-cardano"]
"utxorpc-v1alpha-submit" = ["utxorpc-v1alpha-cardano"]
"utxorpc-v1alpha-sync" = ["utxorpc-v1alpha-cardano"]
"utxorpc-v1alpha-watch" = ["utxorpc-v1alpha-cardano"]
"utxorpc-v1beta-bitcoin" = []
"utxorpc-v1beta-cardano" = []
"utxorpc-v1beta-query" = ["utxorpc-v1beta-cardano"]
"utxorpc-v1beta-submit" = ["utxorpc-v1beta-cardano"]
"utxorpc-v1beta-sync" = ["utxorpc-v1beta-cardano"]
"utxorpc-v1beta-watch" = ["utxorpc-v1beta-cardano"]
## @@protoc_insertion_point(features)
38 changes: 38 additions & 0 deletions gen/rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,42 @@ pub mod utxorpc {
// @@protoc_insertion_point(utxorpc.v1alpha.watch)
}
}
pub mod v1beta {
#[cfg(feature = "utxorpc-v1beta-bitcoin")]
// @@protoc_insertion_point(attribute:utxorpc.v1beta.bitcoin)
pub mod bitcoin {
include!("utxorpc.v1beta.bitcoin.rs");
// @@protoc_insertion_point(utxorpc.v1beta.bitcoin)
}
#[cfg(feature = "utxorpc-v1beta-cardano")]
// @@protoc_insertion_point(attribute:utxorpc.v1beta.cardano)
pub mod cardano {
include!("utxorpc.v1beta.cardano.rs");
// @@protoc_insertion_point(utxorpc.v1beta.cardano)
}
#[cfg(feature = "utxorpc-v1beta-query")]
// @@protoc_insertion_point(attribute:utxorpc.v1beta.query)
pub mod query {
include!("utxorpc.v1beta.query.rs");
// @@protoc_insertion_point(utxorpc.v1beta.query)
}
#[cfg(feature = "utxorpc-v1beta-submit")]
// @@protoc_insertion_point(attribute:utxorpc.v1beta.submit)
pub mod submit {
include!("utxorpc.v1beta.submit.rs");
// @@protoc_insertion_point(utxorpc.v1beta.submit)
}
#[cfg(feature = "utxorpc-v1beta-sync")]
// @@protoc_insertion_point(attribute:utxorpc.v1beta.sync)
pub mod sync {
include!("utxorpc.v1beta.sync.rs");
// @@protoc_insertion_point(utxorpc.v1beta.sync)
}
#[cfg(feature = "utxorpc-v1beta-watch")]
// @@protoc_insertion_point(attribute:utxorpc.v1beta.watch)
pub mod watch {
include!("utxorpc.v1beta.watch.rs");
// @@protoc_insertion_point(utxorpc.v1beta.watch)
}
}
}
48 changes: 48 additions & 0 deletions proto/utxorpc/v1beta/bitcoin/bitcoin.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
syntax = "proto3";

package utxorpc.v1beta.bitcoin;

// Represents an input in a Bitcoin transaction.
message TxInput {
optional bytes txid = 1; // Hash of the previous transaction output, corresponds to txid
optional bytes scriptSig = 2; // Unlocking script for spending the UTXO
uint32 sequence = 3; // Used for relative timelocks
optional bytes coinbase = 4; // Coinbase transactions have this instead of txid and scriptSig
repeated bytes txinwitness = 5; // Witness data for SegWit transactions
}

// Represents an output in a Bitcoin transaction.
message TxOutput {
uint64 value = 1; // Amount of Bitcoin in Satoshis
ScriptPubKey scriptPubKey = 2; // Locking script defining spendability
}

// Represents a script pub key in the output.
message ScriptPubKey {
bytes asm = 1; // Script in human-readable format
bytes hex = 2; // Script in hexadecimal format
bytes type = 3;
optional bytes address = 4; // Some outputs have addresses
}

// Represents a transaction in the Bitcoin network.
message Transaction {
uint32 version = 1; // Transaction version number. Currently 1
repeated TxInput vin = 2; // List of transaction inputs
repeated TxOutput vout = 3; // List of transaction outputs
uint32 locktime = 4; // Block height or timestamp when transaction is final
bytes hash = 5; // Hash of the transaction
optional bytes blockhash = 6; // Transactions reference their block
optional uint32 time = 7; // Timestamp of the transaction
}

// Represents a block in the Bitcoin blockchain.
message Block {
uint32 version = 1; // Block version number
optional bytes previousblockhash = 2; // Hash of the previous block
bytes merkleroot = 3; // Root hash of the Merkle tree
uint32 time = 4; // Time when the block was created
uint32 bits = 5; // Target difficulty value
uint32 nonce = 6; // Value used for Proof-of-Work
repeated Transaction tx = 7; // List of transactions included in the block
}
Loading
Loading