initial addition of essential crypto, encoders, workflows and LLM instructions
This commit is contained in:
25
pkg/crypto/ec/wire/blockheader.go
Normal file
25
pkg/crypto/ec/wire/blockheader.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package wire
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"next.orly.dev/pkg/crypto/ec/chainhash"
|
||||
)
|
||||
|
||||
// BlockHeader defines information about a block and is used in the bitcoin
|
||||
// block (MsgBlock) and headers (MsgHeaders) messages.
|
||||
type BlockHeader struct {
|
||||
// Version of the block. This is not the same as the protocol version.
|
||||
Version int32
|
||||
// Hash of the previous block header in the block chain.
|
||||
PrevBlock chainhash.Hash
|
||||
// Merkle tree reference to hash of all transactions for the block.
|
||||
MerkleRoot chainhash.Hash
|
||||
// Time the block was created. This is, unfortunately, encoded as a
|
||||
// uint32 on the wire and therefore is limited to 2106.
|
||||
Timestamp time.Time
|
||||
// Difficulty target for the block.
|
||||
Bits uint32
|
||||
// Nonce used to generate the block.
|
||||
Nonce uint32
|
||||
}
|
||||
9
pkg/crypto/ec/wire/msgblock.go
Normal file
9
pkg/crypto/ec/wire/msgblock.go
Normal file
@@ -0,0 +1,9 @@
|
||||
package wire
|
||||
|
||||
// MsgBlock implements the Message interface and represents a bitcoin
|
||||
// block message. It is used to deliver block and transaction information in
|
||||
// response to a getdata message (MsgGetData) for a given block hash.
|
||||
type MsgBlock struct {
|
||||
Header BlockHeader
|
||||
Transactions []*MsgTx
|
||||
}
|
||||
43
pkg/crypto/ec/wire/msgtx.go
Normal file
43
pkg/crypto/ec/wire/msgtx.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package wire
|
||||
|
||||
import (
|
||||
"next.orly.dev/pkg/crypto/ec/chainhash"
|
||||
)
|
||||
|
||||
// OutPoint defines a bitcoin data type that is used to track previous
|
||||
// transaction outputs.
|
||||
type OutPoint struct {
|
||||
Hash chainhash.Hash
|
||||
Index uint32
|
||||
}
|
||||
|
||||
// TxWitness defines the witness for a TxIn. A witness is to be interpreted as
|
||||
// a slice of byte slices, or a stack with one or many elements.
|
||||
type TxWitness [][]byte
|
||||
|
||||
// TxIn defines a bitcoin transaction input.
|
||||
type TxIn struct {
|
||||
PreviousOutPoint OutPoint
|
||||
SignatureScript []byte
|
||||
Witness TxWitness
|
||||
Sequence uint32
|
||||
}
|
||||
|
||||
// TxOut defines a bitcoin transaction output.
|
||||
type TxOut struct {
|
||||
Value int64
|
||||
PkScript []byte
|
||||
}
|
||||
|
||||
// MsgTx implements the Message interface and represents a bitcoin tx message.
|
||||
// It is used to deliver transaction information in response to a getdata
|
||||
// message (MsgGetData) for a given transaction.
|
||||
//
|
||||
// Use the AddTxIn and AddTxOut functions to build up the list of transaction
|
||||
// inputs and outputs.
|
||||
type MsgTx struct {
|
||||
Version int32
|
||||
TxIn []*TxIn
|
||||
TxOut []*TxOut
|
||||
LockTime uint32
|
||||
}
|
||||
24
pkg/crypto/ec/wire/wire.go
Normal file
24
pkg/crypto/ec/wire/wire.go
Normal file
@@ -0,0 +1,24 @@
|
||||
// Package wire contains a set of data structure definitions for the bitcoin
|
||||
// blockchain.
|
||||
package wire
|
||||
|
||||
// BitcoinNet represents which bitcoin network a message belongs to.
|
||||
type BitcoinNet uint32
|
||||
|
||||
// Constants used to indicate the message bitcoin network. They can also be
|
||||
// used to seek to the next message when a stream's state is unknown, but
|
||||
// this package does not provide that functionality since it's generally a
|
||||
// better idea to simply disconnect clients that are misbehaving over TCP.
|
||||
const (
|
||||
// MainNet represents the main bitcoin network.
|
||||
MainNet BitcoinNet = 0xd9b4bef9
|
||||
|
||||
// TestNet represents the regression test network.
|
||||
TestNet BitcoinNet = 0xdab5bffa
|
||||
|
||||
// TestNet3 represents the test network (version 3).
|
||||
TestNet3 BitcoinNet = 0x0709110b
|
||||
|
||||
// SimNet represents the simulation test network.
|
||||
SimNet BitcoinNet = 0x12141c16
|
||||
)
|
||||
Reference in New Issue
Block a user