Documentation ¶
Overview ¶
Package bitbox02 contains the API to the physical device.
Index ¶
- Constants
- type Communication
- type Device
- func (device *Device) BTCPub(coin messages.BTCCoin, keypath []uint32, ...) (string, error)
- func (device *Device) BTCSign(btcProposedTx *btc.ProposedTransaction) ([]*btcec.Signature, error)
- func (device *Device) ChannelHash() (string, bool)
- func (device *Device) ChannelHashVerify(ok bool)
- func (device *Device) Close()
- func (device *Device) CreateBackup() error
- func (device *Device) DeviceInfo() (*DeviceInfo, error)
- func (device *Device) Identifier() string
- func (device *Device) Init(testing bool)
- func (device *Device) InsertRemoveSDCard(action messages.InsertRemoveSDCardRequest_SDCardAction) error
- func (device *Device) KeystoreForConfiguration(configuration *signing.Configuration, cosignerIndex int) keystoreInterface.Keystore
- func (device *Device) ProductName() string
- func (device *Device) Random() ([]byte, error)
- func (device *Device) SetDeviceName(deviceName string) error
- func (device *Device) SetOnEvent(onEvent func(devicepkg.Event, interface{}))
- func (device *Device) SetPassword() error
- func (device *Device) Status() Status
- type DeviceInfo
- type Error
- type Status
Constants ¶
const ( // EventChannelHashChanged is fired when the return values of ChannelHash() change. EventChannelHashChanged device.Event = "channelHashChanged" // EventStatusChanged is fired when the status changes. Check the status using Status(). EventStatusChanged device.Event = "statusChanged" )
const ( // ErrInvalidInput is returned when the request sends and invalid or unexpected input ErrInvalidInput = 101 // ErrMemory is returned when an an error occurs during memory handling in the commander ErrMemory = 102 // ErrTouchButton TODO: currently not returned anywhere ErrTouchButton = 103 // ErrSetPW is returned by SetPassword() if the two user passwords did not match. ErrSetPW = 104 // ErrUserAbort is returned when the user aborts an action on the device. ErrUserAbort = 108 )
const ProductName = "bitbox02"
ProductName is the name of the BitBox02 product.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Communication ¶
Communication contains functions needed to communicate with the device.
type Device ¶
type Device struct {
// contains filtered or unexported fields
}
Device provides the API to communicate with the BitBox02.
func NewDevice ¶
func NewDevice( deviceID string, bootloader bool, version *semver.SemVer, communication Communication, ) *Device
NewDevice creates a new instance of Device.
func (*Device) BTCPub ¶
func (device *Device) BTCPub( coin messages.BTCCoin, keypath []uint32, outputType messages.BTCPubRequest_OutputType, scriptType messages.BTCScriptType, display bool) (string, error)
BTCPub queries the device for a btc, ltc, tbtc, tltc xpub or address.
func (*Device) ChannelHash ¶
ChannelHash returns the hashed handshake channel binding
func (*Device) ChannelHashVerify ¶
ChannelHashVerify verifies the ChannelHash
func (*Device) CreateBackup ¶
CreateBackup is called after SetPassword() to create the backup.
func (*Device) DeviceInfo ¶
func (device *Device) DeviceInfo() (*DeviceInfo, error)
DeviceInfo retrieves the current device info from the bitbox
func (*Device) Identifier ¶
Identifier implements device.Device.
func (*Device) InsertRemoveSDCard ¶
func (device *Device) InsertRemoveSDCard(action messages.InsertRemoveSDCardRequest_SDCardAction) error
InsertRemoveSDCard sends a command to the device to insert of remove the sd card based on the workflow state
func (*Device) KeystoreForConfiguration ¶
func (device *Device) KeystoreForConfiguration(configuration *signing.Configuration, cosignerIndex int) keystoreInterface.Keystore
KeystoreForConfiguration implements device.Device.
func (*Device) ProductName ¶
ProductName implements device.Device.
func (*Device) SetDeviceName ¶
SetDeviceName sends a request to the device using protobuf to set the device name
func (*Device) SetOnEvent ¶
SetOnEvent implements device.Device.
func (*Device) SetPassword ¶
SetPassword invokes the set password workflow on the device. Should be called only if deviceInfo.Initialized is false.
type DeviceInfo ¶
type DeviceInfo struct { Name string `json:"name"` Version string `json:"version"` Initialized bool `json:"initialized"` }
DeviceInfo is the data returned from the device info api call.
type Error ¶
Error wraps an error from bitbox02.
type Status ¶
type Status string
Status represents the device status.
const ( // StatusUnpaired is the first status. After the pairing screen has been confirmed, we move to // StatusUninitialized or StatusInitialized depending on the device status. StatusUnpaired Status = "unpaired" // StatusPairingFailed is when the pairing code was rejected on the app or on the device. StatusPairingFailed Status = "pairingFailed" // StatusUninitialized is the uninitialized device. Use SetPassword() to proceed to // StatusSeeded. StatusUninitialized Status = "uninitialized" // StatusSeeded is after SetPassword(), before CreateBack() during initialization of the // device. Use CreateBackup() to move to StatusUnlocked. StatusSeeded Status = "seeded" // StatusInitialized means the device is seeded and the backup was created. Use Unlock() to move // to StatusUnlocked. StatusInitialized Status = "initialized" // StatusUnlocked means device authentication was successful, and the keystore is ready to use. StatusUnlocked Status = "unlocked" )