@ledgerhq/hw-app-btc
Version:
Ledger Hardware Wallet Bitcoin Application API
101 lines (92 loc) • 2.51 kB
text/typescript
/**
*/
export interface TransactionInput {
prevout: Buffer;
script: Buffer;
sequence: Buffer;
tree?: Buffer;
}
/**
*/
export interface TransactionOutput {
amount: Buffer;
script: Buffer;
}
/**
*/
export interface Transaction {
// Each transaction is prefixed by a four-byte transaction version number
// which tells Bitcoin peers and miners which set of rules to use to validate it.
version: Buffer;
inputs: TransactionInput[];
outputs?: TransactionOutput[];
// locktime indicates the earliest time or earliest block when that transaction may
// be added to the block chain.
locktime?: Buffer;
witness?: Buffer;
// timestamp is used only for peercoin but it is no longer necessary anymore
timestamp?: Buffer;
// nVersionGroupId is used only for Zcash, different version of Zcash has different nVersionGroupId
// refer to https://github.com/zcash/zcash/blob/master/src/primitives/transaction.h for more details
nVersionGroupId?: Buffer;
// nExpiryHeight is used only for Decred and Zcash and ZenCash.
// It sets the block height after which transactions will be removed
// from the mempool if they have not been mined
// refer to https://zips.z.cash/zip-0203 for more details
nExpiryHeight?: Buffer;
// extraData is used only for Zcash and ZenCash and komodo
extraData?: Buffer;
// zCash specific
consensusBranchId?: Buffer;
sapling?: SaplingData;
orchard?: OrchardData;
}
export interface TrustedInput {
trustedInput: boolean;
value: Buffer;
sequence: Buffer;
}
// zCash specific
/**
*/
export interface SaplingData {
vSpendsSapling: SaplingSpendDescriptionV5[];
vOutputSapling: SaplingOutputDescriptionV5[];
valueBalanceSapling: Buffer;
anchorSapling: Buffer;
vSpendProofsSapling: Buffer;
vSpendAuthSigsSapling: Buffer;
vOutputProofsSapling: Buffer;
bindingSigSapling: Buffer;
}
export interface SaplingSpendDescriptionV5 {
cv: Buffer;
nullifier: Buffer;
rk: Buffer;
}
export interface SaplingOutputDescriptionV5 {
cv: Buffer;
cmu: Buffer;
ephemeralKey: Buffer;
encCiphertext: Buffer;
outCiphertext: Buffer;
}
export interface OrchardAction {
cv: Buffer;
nullifier: Buffer;
rk: Buffer;
cmx: Buffer;
ephemeralKey: Buffer;
encCiphertext: Buffer;
outCiphertext: Buffer;
}
export interface OrchardData {
vActions: OrchardAction[];
flags: Buffer;
valueBalance: Buffer;
anchor: Buffer;
sizeProofs: Buffer;
proofs: Buffer;
vSpendsAuthSigs: Buffer;
bindingSig: Buffer;
}