Closed
Description
Summary
Implement SIGN_MODE_TEXTUAL as described in #10701. If you want to help, please contact @AmauryM to be part of the working group.
Proposal
We propose to do Golang and JS implementations in parallel, and update the SPEC if anything needs to be changed.
Step 1: Value Renderers Format
See specification in ADR-050 Annex 1. Each item is checked when both Golang and JavaScript implementations are done, using the same test cases.
- @AmauryM Integers and Decimals Textual Value Renderers for Numbers #12613
- @AmauryM
sdk.Coin
andsdk.Coins
TEXTUAL Value Renderer forCoin
andCoins
#12708 - @joeabbey bytes TEXTUAL Value Renderers for
bytes
#12711 - @JimLarson
google.Protobuf.Timestamp
TEXTUAL Value Renderers forgoogle.protobuf.Timestamp
#12709 - @JimLarson
google.Protobuf.Duration
TEXTUAL Value Renderers forgoogle.protobuf.Duration
#12710 - @odeke-em enums TEXTUAL Value Renderers for Protobuf Enums #12712
- @JimLarson
message
s TEXTUAL Value Renderers for Protobufmessage
#12713 - @joeabbey
repeated
TEXTUAL Value Renderers for Protobufrepeated
fields #12714 - @JimLarson
google.protobuf.Any
TEXTUAL Value Renderers forgoogle.Protobuf.Any
#12715 - TEXTUAL public keys value renderer #13626
- @AmauryM Textual Value renderer for the proto
Tx
struct #13579 - Remove
anypb.Any
type url prefix "type.googleapis.com" #13669 - @AmauryM TEXTUAL ValueRenderers Add decimals &
sdk.Coins
parsing #13153 - Textual Any Renderer: Remove msg header screen #14170
- Textual bytes value renderer: Sign over hash #14206
- refactor(textual): Make
Address
field expert #14651 - Textual: Use
Key
+Value
instead of simplyText
#14665 - tx/textual/valuerenderer: should formatInteger return "0" for an empty string "" instead of crashing? #12809
- Support Non-Atomic txs, ref: feat: add non-atomic multi-msg transactions #15038 (comment)
Step 2: Wire up to sign mode handlers
- @JimLarson Specify and implement CBOR deterministic encoding of
[]Screen
#13647 - @AmauryM SignModeHandler's
GetSignBytes
: add Context arg #13646 - @AmauryM Add Textual SignModeHandler #13700
- @AmauryM Allow client-side signing with SIGN_MODE_TEXTUAL #13747
- @AmauryM Improve Textual public API #14552
- Add support to plug gogo's registry into Textual #14647
- docs(adr): Change Textual SignDoc to struct #15282
- feat(client): Add cobra's context to clientCtx #15458
By this stage, we can do a E2E signing flow with Ledger and SIGN_MODE_TEXTUAL. Edit: Done in an exploration PR #13734.
Step 3: QA and docs
- SIGN_MODE_TEXTUAL Manual Testing #14975
- @cosmos/zondax Create a PR on the Ledger.com Repo for the new Ledger Cosmos app. This app will support both AminoJSON and TEXTUAL.
- How to handle SIGN_MODE_TEXTUAL spec updates #15291
- External Audit. Scope is:
- Textual Internal Audit #15549
- SIGN_MODE_TEXTUAL Documentation #14972
- Add SIGN_MODE_TEXTUAL to default modes and remove client-side guard
For Admin Use
- Not duplicate issue
- Appropriate labels applied
- Appropriate contributors tagged
- Contributor assigned/self-assigned
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment