kas

package
v0.0.0-...-5ed304f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2024 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ValidateAddress

func ValidateAddress(address string) bool

Types

type Block

type Block struct {
	// Header
	Version              uint32     `json:"Version"`
	Parents              [][]string `json:"Parents"`
	HashMerkleRoot       string     `json:"HashMerkleRoot"`
	AcceptedIdMerkleRoot string     `json:"AcceptedIdMerkleRoot"`
	UtxoCommitment       string     `json:"UtxoCommitment"`
	Timestamp            int64      `json:"Timestamp"`
	Bits                 uint32     `json:"Bits"`
	Nonce                uint64     `json:"Nonce"`
	DaaScore             uint64     `json:"DaaScore"`
	BlueWork             string     `json:"BlueWork"`
	PruningPoint         string     `json:"PruningPoint"`
	BlueScore            uint64     `json:"BlueScore"`
	// Transactions
	Transactions []*Transaction `json:"Transactions"`
	// VerboseData
	Hash                string   `json:"Hash"`
	Difficulty          float64  `json:"Difficulty"`
	MergeSetBluesHashes []string `json:"MergeSetBluesHashes"`
	MergeSetRedsHashes  []string `json:"MergeSetRedsHashes"`
	ChildrenHashes      []string `json:"ChildrenHashes"`
	IsChainBlock        bool     `json:"IsChainBlock"`
}

type Node

type Node struct {
	// contains filtered or unexported fields
}

func New

func New(
	mainnet bool,
	urls []string,
	rawPriv string,
	logger *log.Logger,
	tunnel *sshtunnel.SSHTunnel,
) (*Node, error)

func (Node) Address

func (node Node) Address() string

func (Node) BroadcastTx

func (node Node) BroadcastTx(txHex string) (string, error)

func (Node) CalculateHashrate

func (node Node) CalculateHashrate(blockTime, difficulty float64) float64

func (Node) Chain

func (node Node) Chain() string

func (Node) CreateTx

func (node Node) CreateTx(inputs []*types.TxInput, outputs []*types.TxOutput) (string, string, error)

func (Node) GetAccountingType

func (node Node) GetAccountingType() types.AccountingType

func (Node) GetAddressExplorerURL

func (node Node) GetAddressExplorerURL(address string) string

func (Node) GetAddressPrefix

func (node Node) GetAddressPrefix() string

func (Node) GetAdjustedShareDifficulty

func (node Node) GetAdjustedShareDifficulty() float64

func (Node) GetAuthorizeResponses

func (node Node) GetAuthorizeResponses(diffFactor int) ([]interface{}, error)

func (Node) GetBalance

func (node Node) GetBalance() (*big.Int, error)

func (Node) GetBlockExplorerURL

func (node Node) GetBlockExplorerURL(round *pooldb.Round) string

func (Node) GetBlocks

func (node Node) GetBlocks(start, end uint64) ([]*tsdb.RawBlock, error)

func (Node) GetBlocksByHash

func (node Node) GetBlocksByHash(startHash string, limit uint64) ([]*tsdb.RawBlock, error)

func (Node) GetClientType

func (node Node) GetClientType(minerClient string) int

func (Node) GetImmatureDepth

func (node Node) GetImmatureDepth() uint64

func (Node) GetMatureDepth

func (node Node) GetMatureDepth() uint64

func (Node) GetMaxDifficulty

func (node Node) GetMaxDifficulty() *big.Int

func (Node) GetSetDifficultyResponse

func (node Node) GetSetDifficultyResponse(diffFactor int) (interface{}, error)

func (Node) GetShareDifficulty

func (node Node) GetShareDifficulty(diffFactor int) *types.Difficulty

func (Node) GetStatus

func (node Node) GetStatus() (uint64, bool, error)

func (Node) GetSubscribeResponses

func (node Node) GetSubscribeResponses(id []byte, clientID, extraNonce string) ([]interface{}, error)

func (Node) GetTx

func (node Node) GetTx(txid string) (*types.TxResponse, error)

func (Node) GetTxExplorerURL

func (node Node) GetTxExplorerURL(txid string) string

func (Node) GetUnits

func (node Node) GetUnits() *types.Number

func (*Node) HandleHostPoolInfoRequest

func (node *Node) HandleHostPoolInfoRequest(w http.ResponseWriter, r *http.Request)

func (Node) JobNotify

func (node Node) JobNotify(ctx context.Context, interval time.Duration) chan *types.StratumJob

func (Node) MarshalJob

func (node Node) MarshalJob(
	id interface{},
	job *types.StratumJob,
	cleanJobs bool,
	clientType, diffFactor int,
) (interface{}, error)

func (Node) MatureRound

func (node Node) MatureRound(round *pooldb.Round) ([]*pooldb.UTXO, error)

func (Node) Mocked

func (node Node) Mocked() bool

func (Node) Name

func (node Node) Name() string

func (Node) ParseWork

func (node Node) ParseWork(data []json.RawMessage, extraNonce string) (*types.StratumWork, error)

func (Node) PingHosts

func (node Node) PingHosts() ([]string, []uint64, []bool, []error)

func (Node) ShouldMergeUTXOs

func (node Node) ShouldMergeUTXOs() bool

func (Node) SubmitWork

func (node Node) SubmitWork(
	job *types.StratumJob,
	work *types.StratumWork,
	diffFactor int,
) (types.ShareStatus, *types.Hash, *pooldb.Round, error)

func (Node) UnlockRound

func (node Node) UnlockRound(round *pooldb.Round) error

func (Node) ValidateAddress

func (node Node) ValidateAddress(address string) bool

type Transaction

type Transaction struct {
	Version      uint32               `json:"Version"`
	Inputs       []*TransactionInput  `json:"Inputs"`
	Outputs      []*TransactionOutput `json:"Outputs"`
	LockTime     uint64               `json:"LockTime"`
	SubnetworkId string               `json:"SubnetworkId"`
	Gas          uint64               `json:"Gas"`
	Payload      string               `json:"Payload"`
}

type TransactionInput

type TransactionInput struct {
	PreviousOutpoint *TransactionOutpoint `json:"PreviousOutpoint"`
	SignatureScript  string               `json:"SignatureScript"`
	Sequence         uint64               `json:"Sequence"`
	SigOpCount       uint32               `json:"SigOpCount"`
}

type TransactionOutpoint

type TransactionOutpoint struct {
	TransactionId string `json:"TransactionId"`
	Index         uint32 `json:"Index"`
}

type TransactionOutput

type TransactionOutput struct {
	Amount          uint64                   `json:"Amount"`
	ScriptPublicKey *TransactionScriptPubKey `json:"ScriptPublicKey"`
}

type TransactionScriptPubKey

type TransactionScriptPubKey struct {
	Version         uint32 `json:"Version"`
	ScriptPublicKey string `json:"ScriptPublicKey"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL