Documentation ¶
Overview ¶
Package bitbox02 contains the API to the physical device.
Index ¶
- Constants
- type Backup
- 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) ListBackups() ([]*Backup, error)
- func (device *Device) ProductName() string
- func (device *Device) Random() ([]byte, error)
- func (device *Device) RestoreBackup(id string) error
- func (device *Device) SetDeviceName(deviceName string) error
- func (device *Device) SetMnemonicPassphraseEnabled(enabled bool) error
- func (device *Device) SetOnEvent(onEvent func(devicepkg.Event, interface{}))
- func (device *Device) SetPassword() error
- func (device *Device) Status() Status
- func (device *Device) UpgradeFirmware() error
- func (device *Device) Version() *semver.SemVer
- 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 // ErrUserAbort is returned when the user aborts an action on the device. ErrUserAbort = 104 )
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, 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) ListBackups ¶
ListBackups returns a list of all backups on the SD card.
func (*Device) ProductName ¶
ProductName implements device.Device.
func (*Device) RestoreBackup ¶
RestoreBackup restores a backup returned by ListBackups (id).
func (*Device) SetDeviceName ¶
SetDeviceName sends a request to the device using protobuf to set the device name
func (*Device) SetMnemonicPassphraseEnabled ¶
SetMnemonicPassphraseEnabled enables or disables entering a mnemonic passphrase after the normal unlock.
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.
func (*Device) UpgradeFirmware ¶
UpgradeFirmware reboots into the bootloader so a firmware can be flashed.
type DeviceInfo ¶
type DeviceInfo struct { Name string `json:"name"` Version string `json:"version"` Initialized bool `json:"initialized"` MnemonicPassphraseEnabled bool `json:"mnemonicPassphraseEnabled"` }
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 StatusInitialized. StatusSeeded Status = "seeded" // StatusInitialized means the device is seeded and the backup was created, and the device is // unlocked. The keystore is ready to use. StatusInitialized Status = "initialized" // StatusRequireFirmwareUpgrade means that the a firmware upgrade is required before being able // to proceed to StatusLoggedIn or StatusSeeded (firmware version too old). StatusRequireFirmwareUpgrade Status = "require_firmware_upgrade" // StatusRequireAppUpgrade means that the an app upgrade is required (firmware version too new). StatusRequireAppUpgrade Status = "require_app_upgrade" )