Comments (3)
I wouldn't support any of the interoperability stuff for now as there does not seem to be a clear use case. Implementing only the simplest correct scheme (compatible with Ledger) for now makes the most sense.
from cli.
I did some research today how Polkadot uses sr25519.
Key derivation:
- they do not use standard bip32 derivation, but their own substrate derivation obtaining "soft" and "hard" keys.
- I tested Enkrypt and Polkagate wallets and they derive the same substrate addresses for the given mnemonic.
- Ledger's Polkadot nano app (developed by Zondax) do not implement substrate, but a bip44-like derivation using
m/44'/354'/account'/0'/0'
path. This gives incompatible addresses with Enkrypt and Polkagate. - Importing Polkadot accounts is done via .json files or the mnemonic. No "Enter private key:" fields exist in the wallets.
Addresses:
- Polkadot addresses use Base58 encoding.
- Three types of addresses based on the prefix: Polkadot (0), Kusama (2) and Generic Substrate (42).
For better interoperability with Polkadot, I suggest we split the sr25519 work into:
- use Polkadot derivation path library (and add new account type
sr25519-substrate
?) - use the ledger's way of deriving the account (PR #76,
sr25519-bip44
?) - define Polkadot -> Oasis address mapping (similar to what we did for ethereum)
- show sr25519 addresses in Polkadot's Base58 format
- support importing Polkadot wallets from JSON-encoded export file (I think this eventually generates
sr25519-substrate
type then)
from cli.
Implemented in #119
from cli.
Related Issues (20)
- Add command for fetching compute committees HOT 1
- Generate wallet with desired suffix by randomizing mnemonics HOT 1
- Trim 0x when importing secp256k1 private key
- Add `-y` flag to `oasis wallet remove`
- Support removal of multiple accounts
- Make network status output cleaner
- Name addresses, if found in wallet/addressbook/test/paratime entries
- QoL: `oasis paratime show` should support Ethereum transaction IDs (with optional `0x` prefix)
- CLI docs for node operators HOT 2
- Add `oasis account entity init`
- Support relative amount for tokens and shares
- Support ethereum public key in `oasis account from-public-key`
- Further denomination-related improvements
- Oasis CLI v0.8.0-gitc2cd406 has "panic: assignment to entry in nil map" HOT 1
- `oasis wallet import` add non-interactive mode
- Add support for YubiHSM
- `wallet import`: Check whether Ed25519 keypair is valid
- Offline signing: Store public keys in address book
- examples: Make examples run in parallel
- Crash when viewing ParaTime block
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cli.