Giter VIP home page Giter VIP logo

keepkey-desktop's People

Contributors

0xapotheosis avatar 0xdef1cafe avatar 0xean avatar amitojsingh366 avatar asamere avatar bithighlander avatar bootsboogie avatar brymut avatar chxash avatar cjthompson avatar daodev44 avatar dependabot[bot] avatar elmutt avatar gmsteuart avatar gomesalexandre avatar jdambron avatar kaladinlight avatar lpx55 avatar markrypt0 avatar mrnerdhair avatar neomaking avatar pastaghost avatar reallybeard avatar servis avatar stackedq avatar technojak avatar theoboldfrazier avatar thesmithdao avatar toshisat avatar vividwood avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

keepkey-desktop's Issues

Enable view options in Windows

Unable to view or select developer tools in Windows Keep Key Desktop App

Recreate:
Install app on Win10
Load wallet
Unable to see toolbar options such as View

Handle finished initilization

The app doesnt correctly recognize when initilization has finished even tho the keepkey has correctly initialized

BUG: new device endpoint broke

A.C. /device should return keepkey features

a normal startup flow will get set here

https://github.com/BitHighlander/keepkey-desktop/blob/feature-firmware-update/src/context/WalletProvider/KeepKey/hooks/useKeepKeyEventHandler.ts#L69

init/firmware setup will get set in main/keepkey.ts on the result from Hardware.init

The shared global object is probally a poor way to achive this and is not working.

http://localhost:1646/device should return

    "vendor": "keepkey.com",
    "majorVersion": 7,
    "minorVersion": 2,
    "patchVersion": 1,
    "deviceId": "343733331147363327003800",
    "pinProtection": false,
    "passphraseProtection": false,
    "coinsList": [],
    "initialized": true,
    "revision": "ODY5MWUzYWI0ZWVhMDYxZTJlODc2OTJjYjExNDI0NjQ1MjJjNzdmNA==",
    "bootloaderHash": "fRqXi3u5Xv4bTPyy6nDIyxU4jpipVQ4VgdAmjnlMmNE=",
    "imported": true,
    "pinCached": true,
    "passphraseCached": false,
    "policiesList": [
        {
            "policyName": "ShapeShift",
            "enabled": true
        },
        {
            "policyName": "Pin Caching",
            "enabled": true
        },
        {
            "policyName": "Experimental",
            "enabled": false
        },
        {
            "policyName": "AdvancedMode",
            "enabled": false
        }
    ],
    "model": "K1-14AM",
    "firmwareVariant": "KeepKey",
    "firmwareHash": "6sd4A7dJnfvuEL41Ei7QtQOQbAUI1Tm4FkRYtQghoCU=",
    "noBackup": false
}```

Init new keepkey flow

Connect a keepkey with fully updated firmware

Device must NOT have initiziaed seed.

A.C

Detect that device is not init on startup

open init modal on startup

flow should continue without error

FEATURE: Expand REST api for all keepkey features

A.C. expand the REST api features for all available interactions on a keepkey.

example ref:
https://github.com/solipsis/go-keepkey

https://github.com/shapeshift/hdwallet/blob/master/packages/hdwallet-keepkey/src/keepkey.ts#L1183

  applyPolicy     Enable/Disable a named policy
  applySettings   Update the label, language, and enable/disable the passphrase
  changePin       Change or add a pin to the device
  clearSession    Clear session data such as the pin session and passphrase
  debugGetState   Get device debug info. This REVEALS SECRETS and can only be used with debug enabled firmware
  decryptKeyValue Decrypt a value with a given key and nodepath
  encryptKeyValue Encrypt a value with a given key and nodepath
  flashDump       dump certain section of flash
  flashHash       Request hash of certain segment of flash memory
  flashWrite      Write data over flash sectors
  getAddress      Get an address for a coinType and nodePath
  getEntropy      Request sample data from the hardware RNG
  getEthAddress   Get the ethereum address for a given node path
  getFeatures     Ask the device for features and model information
  getPublicKey    Get a public key for a nodePath including the XPUB
  help            Help about any command
  loadDevice      Load the device from seed words
  ping            Ping the device with a message
  recoverDevice   Begin interactive device recovery
  removePin       Disable pin on the device
  replay          Replay messages in kk log format to the device
  resetDevice     Reset the device and generate a new seed using device RNG
  signEthTx       Sign an ethereum transaction
  signMessage     Sign a message using a given node path and coin
  softReset       Soft reset / power cycle the device. Only works on devices in manufacturer mode
  upgradeFirmware Upgrade firmware to a specified tagged version or latest if none is specified
  uploadFirmware  Upload a new firmware binary to the device
  verifyMessage   Verify a signed message
  wipeDevice      Erase all sensitive information on the device```



endpoints go into bridge.js

(will need to be passed over IPC from keepkey.ts (the HDwallet object)

to add references into swagger.json

https://github.com/keepkey/keepkey-mono/blob/main/modules/keepkey-bridge/src-api/controllers/0-index.controller.ts

generate/upload to electron/api/dist/swagger.json

Wipe bug

After wipe no device found modal not popping up

BUG: broken buttons connect keepkey

Screen Shot 2022-02-26 at 1 59 26 PM

BUG: on failure to connect to keepkey buttons missing

Expected: Show failure to connect to keepkey error
(and an action to take to correct it)

Re-create:
Start app without keepkey connected. (might be related to something already running on port)

Remove All other wallets from UI

Remove all other wallets from modals

remove "switch provider" from dropdown

Open directly to "KeepKey Advanced settings" on dropdown

Clean up app store (walletConnect)

Every app listed should work

(and not be a wallet aka trustwallet)

Add search for apps

Load all apps on walletconnect.com

Bonus
some kind of flag for (tested reviewed bla bla)
we can host a DB on pioneer api if needed

Mock this data to start with a JSON blob added to project

(solidity) Mint NFT on burn

Contract

Function Burn KK token
Provable un-recoverable (no backdoor)

Event Signal desired support for X asset
(must be unique symbol and clear what they are voting for)

Give NFT on burn

NFT art based on token? something fun? community submissions? open to ideas

(ONBOARDING) Add KK info to splash

Splash screen

Button to "troubleshoot device" (force recheck of state/launching modals)

Show keepkey status

Show keepkey state

Show Keepkey device info if connected

Show link to onboarding docs (webview?)

Leaderboard (feature)

Add page to KK desktop

Show all coins voted on

rank by number of keepkey tokens burned * current USD rate of KK tokens

Allow button on each to vote more (buy - Burn - Vote)

Can't connect KK

Description

KK can't connect on app

Expected Behavior

Pair keep key

Steps to reproduce

Fully update an OOB keep key, click on "pair keep key" Will be met with unable to communicate and will not pair.

Screenshots

image
image

Logs

A

Add ALL coins to desktop search

Allow loading of all coins (coingecko)

Add to coin page:

Fields:

Native support true/false (keepekey)

If Show Apps
List apps (wallet connect/api)

If no support
Allow vote to support

Buy KK token -> Burn token -> Show burned tokens on leaderboard

Startup screen

A.C

detect state of keepkey

if update to date and init, LOAD the dashboard and show balances

if firmware update needed launch modal for firmware

if init needed launch modal for init

if no device connected, launch modal for connect device

if no device (show troubleshoot button) (is device connected? troubleshoot)
Troubleshoot gives info on OS, Devices connected to Host, gives USB info for linux (usb host drivers) and finally takes to support)

FEATURE: persist user object in DB

A.C. store user object in db, load it on startup, serve over api

This should load up on startup and NOT require and user UI (ie the connect wallet* flow)

(user may opt-OUT* of this api running in both tray/settings drop down in app)

(default is this api runs always on startup and allows applications to pair with client)

Default behavior is to load the last wallet paired in app.

Advanced (allow multiple wallets to be saved in DB, and user can select context* or default wallet in UI)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.