mirror of
https://github.com/muun/recovery.git
synced 2025-11-11 14:30:19 -05:00
Release v0.3.0
This commit is contained in:
88
vendor/github.com/btcsuite/btcwallet/wallet/common.go
generated
vendored
Normal file
88
vendor/github.com/btcsuite/btcwallet/wallet/common.go
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
// Copyright (c) 2016 The Decred developers
|
||||
// Copyright (c) 2017 The btcsuite developers
|
||||
// Use of this source code is governed by an ISC
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package wallet
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/btcsuite/btcutil"
|
||||
)
|
||||
|
||||
// Note: The following common types should never reference the Wallet type.
|
||||
// Long term goal is to move these to their own package so that the database
|
||||
// access APIs can create them directly for the wallet to return.
|
||||
|
||||
// BlockIdentity identifies a block, or the lack of one (used to describe an
|
||||
// unmined transaction).
|
||||
type BlockIdentity struct {
|
||||
Hash chainhash.Hash
|
||||
Height int32
|
||||
}
|
||||
|
||||
// None returns whether there is no block described by the instance. When
|
||||
// associated with a transaction, this indicates the transaction is unmined.
|
||||
func (b *BlockIdentity) None() bool {
|
||||
// BUG: Because dcrwallet uses both 0 and -1 in various places to refer
|
||||
// to an unmined transaction this must check against both and may not
|
||||
// ever be usable to represent the genesis block.
|
||||
return *b == BlockIdentity{Height: -1} || *b == BlockIdentity{}
|
||||
}
|
||||
|
||||
// OutputKind describes a kind of transaction output. This is used to
|
||||
// differentiate between coinbase, stakebase, and normal outputs.
|
||||
type OutputKind byte
|
||||
|
||||
// Defined OutputKind constants
|
||||
const (
|
||||
OutputKindNormal OutputKind = iota
|
||||
OutputKindCoinbase
|
||||
)
|
||||
|
||||
// TransactionOutput describes an output that was or is at least partially
|
||||
// controlled by the wallet. Depending on context, this could refer to an
|
||||
// unspent output, or a spent one.
|
||||
type TransactionOutput struct {
|
||||
OutPoint wire.OutPoint
|
||||
Output wire.TxOut
|
||||
OutputKind OutputKind
|
||||
// These should be added later when the DB can return them more
|
||||
// efficiently:
|
||||
//TxLockTime uint32
|
||||
//TxExpiry uint32
|
||||
ContainingBlock BlockIdentity
|
||||
ReceiveTime time.Time
|
||||
}
|
||||
|
||||
// OutputRedeemer identifies the transaction input which redeems an output.
|
||||
type OutputRedeemer struct {
|
||||
TxHash chainhash.Hash
|
||||
InputIndex uint32
|
||||
}
|
||||
|
||||
// P2SHMultiSigOutput describes a transaction output with a pay-to-script-hash
|
||||
// output script and an imported redemption script. Along with common details
|
||||
// of the output, this structure also includes the P2SH address the script was
|
||||
// created from and the number of signatures required to redeem it.
|
||||
//
|
||||
// TODO: Could be useful to return how many of the required signatures can be
|
||||
// created by this wallet.
|
||||
type P2SHMultiSigOutput struct {
|
||||
// TODO: Add a TransactionOutput member to this struct and remove these
|
||||
// fields which are duplicated by it. This improves consistency. Only
|
||||
// not done now because wtxmgr APIs don't support an efficient way of
|
||||
// fetching other Transactionoutput data together with the rest of the
|
||||
// multisig info.
|
||||
OutPoint wire.OutPoint
|
||||
OutputAmount btcutil.Amount
|
||||
ContainingBlock BlockIdentity
|
||||
|
||||
P2SHAddress *btcutil.AddressScriptHash
|
||||
RedeemScript []byte
|
||||
M, N uint8 // M of N signatures required to redeem
|
||||
Redeemer *OutputRedeemer // nil unless spent
|
||||
}
|
||||
Reference in New Issue
Block a user