0xProject / 0x-monorepo

0x protocol monorepo - includes our smart contracts and many developer tools
Other
1.41k stars 464 forks source link

[WIP] Feature/subproviders/lattice support #2719

Closed alex-miller-0 closed 3 years ago

alex-miller-0 commented 3 years ago

Description

Hello! This PR adds support for interfacing with the GridPlus Lattice1 hardware wallet. It was developed along with GridPlus' web3-react fork in an effort to allow integrations with the Lattice. The addition is a simple subprovider schema that can be used by other modules such as web3-react. It was designed to match those of Trezor and Ledger.

About the Lattice

The Lattice is a brand new, next-generation hardware wallet designed for ease of use. Its large screen makes reading transactions and messages much more user-friendly. Keys are held in an HSM and all logic executes in a secure compute environment, which is physically separated from the network interface and protected by a physical anti-tamper mesh. The separated network interface is used to connect to external applications like this one.

The initial batch of Lattice devices is currently being manufactured and sent to presale buyers, at which point we will turn the web store back on for more orders.

For more info see https://gridplus.io/lattice

Product Shots

Here are some shots of my development device! (Data shown is not related to this PR)

Sign Transaction:

image

Sign Personal Message:

image

Testing instructions

You can't test this PR without a Lattice device, but I will provide information on how I tested it on my side. If you need to test this yourself, please reach out to justin.leroux@gridplus.io and we can work out how to get you a Lattice for testing.

I was able to test with web3-react's example Next.js app which is included in the repo. All changes to the app itself are found in this commit of our fork. This is a simple app where you just select your wallet and then test a signPersonalMessage request. Here are shots of my test:

1. Message is sent to the device from the app:

image

2. Message is signed on device and returned to app, which checks it against the available public key for validity:

Screen Shot 2020-10-02 at 9 14 38 AM

Types of changes

Checklist:

alex-miller-0 commented 3 years ago

I see this build is failing. I tried to setup the circle build per instructions, but I wasn't sure how to add that COVERALLS_REPO_TOKEN param. I didn't want to commit my repo token here and I have never used circle before (and do not have a paid account that can run the build on a medium+ resource), so I'm not sure what to do. Would appreciate guidance here as well.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 3 years ago

This issue has been automatically closed because no activity occured in 7 days after being marked as stale. If it's still relevant - feel free to reopen. Thank you for your contributions.