owned this note
owned this note
Published
Linked with GitHub
# SIGN_MODE_TEXTUAL Bi-weekly Meeting Notes
~~These meeting notes should be accompanied with the SIGN_MODE_TEXTUAL spec living doc: https://hackmd.io/fsZAO-TfT0CKmLDtfMcKeA?edit.~~ *This has been merged into ADR-050.*
Implementation tracking issue: https://github.com/cosmos/cosmos-sdk/issues/11970
# Meeting 05.06.2023
- [] Ledger App
- [x] Audit finished (and we have a report)
# Meeting 22.05.2023
- [] Ledger App
- [] Audit finishing (writing the report)
# Meeting 24.04.2023
- [x] Ledger App (no updates)
- [x] Audit
- Zellic
Estimated Project Timeline
Pre-Audit Preparation: Up until May 2, 2023
Scope Call: May 2, 2023
Primary Review Period: May 2, 2023 to May 23, 2023
Closing Call: May 24, 2023
Post-Audit Remediation: May 24, 2023 to June 14, 2023
- [ ] PRs
- [ ] Bool value renderer: https://github.com/cosmos/cosmos-sdk/pull/15863
- [ ] Internal audit changes https://github.com/cosmos/cosmos-sdk/pull/15715
Other:
- Internal audit report https://hackmd.io/G35OvyFES5C3tOnEuej0yw
- [Comment by Jim on Amaury's PR](https://github.com/cosmos/cosmos-sdk/pull/15550#discussion_r1162120350)
- Offline signing needed? https://github.com/cosmos/cosmos-sdk/issues/15864 (Marko thinks we don't)
Notes:
- signmode textual in CosmJS in Q3 probably
- Jim will be backporting to Agoric
# Meeting 10.04.2023
- [x] Ledger App
- [x] Audit (no news yet)
- [x] PRs
- [x] Amaury's PR #15550
- [x] Orijtech fuzz testing :+1:
- [x] Facu will have a PR ready for this week with small changes
Questions:
- `It must be able to parse all valid screens, however the behavior of Parse on invalid screens is not specified, and does not necessarily error.` ??
Notes:
- Parse is currently used only for testing
# Meeting 27.03.2023
- [x] Audit
- Zellic
- [x] Ledger app
# Meeting 20.03.2023
- [x] Audit
- 3 repos
- https://github.com/cosmos/ledger-cosmos
- use tag https://github.com/cosmos/ledger-cosmos/tree/v2.35.3
- https://github.com/cosmos/ledger-cosmos-go
- use tag https://github.com/cosmos/ledger-cosmos-go/tree/v0.13.0
- https://github.com/cosmos/cosmos-sdk
- maybe tag a new x/tx tag
- [x] Spec
- [x] PRs
Notes:
- ledger app:
- OK to submit ledger app to the ledger repo
- Internal audit
- Facu and Amaury to share this task
# Meeting 13.03.2023
- [x] Ledger App
- Array to Struct change https://github.com/cosmos/cosmos-sdk/pull/15282
- [x] Spec
- SpecVersion https://github.com/cosmos/cosmos-sdk/pull/15270
- [x] PRs
- Support gogo registry https://github.com/cosmos/cosmos-sdk/pull/15302
Notes:
- Ledger
- Carlos implemented array to
- Facu and Amaury to test it
```
type SignDoc struct {
Screens []Screen
}
```
- Keep struct
- Current version == 0 (update in the PR)
-
# Meeting 06.03.2023
- [x] Ledger App
- Last pieces before submitting the app:
- [x] MsgMultiSend (tested by Amaury, Facu will also test it)
- [x] MsgDelegate (tested by Amaury)
- [x] Spec
- Updates to the spec https://github.com/cosmos/cosmos-sdk/pull/15270
- [x] PRs
- https://github.com/cosmos/cosmos-sdk/pull/15208
- https://github.com/cosmos/cosmos-sdk/issues/12809
Notes:
- Ledger app:
- Facu to do last MsgMultiSend test
- then we can submit the PR
- Still some (maintenance) code to be updated for the ledger repo
- Spec
We decided to do:
```
type SignDocTextual = { screens: []Screen } // integer-encoded key
```
# Meeting 20.02.2023
- [x] Ledger App
- Manual testing https://github.com/cosmos/cosmos-sdk/issues/14975
- [x] Spec
- [x] PRs
- msg header in anys
Notes:
- Ledger: last pieces before sending the app to Ledger:
- MsgDelegate fixed
- carlos to send the installer script, amaury to test it
- msgMultiSend: crashes because Json parsing number of tokens got reduced, to handle Textual
- Carlos: looking into increase number of tokens
- tracking the `>>>` issue with Facu
- Next Meeting: March 6th
- Spec:
- Spec updates:
- Simon: multi-chain client needs to know version of the Textual spec
- Simon: spec version counter
- Simon: no need for endpoint to expose version for now, keep it simple.
# Meeting 13.02.2023
- [x] Ledger App
- Manual Testing issue: https://github.com/cosmos/cosmos-sdk/issues/14975
- Is this enough?
- [x] Spec
- [x] PRs
- msg header in anys
## Notes
- Amaury and Facu to finish manual testing, ideally this week
- Right after: send PR to Ledger
- Internal audit:
- Jim: confident in core value renderer code, less confident in 1/ plumbing code with SDK signing 2/ number of screens
- SPEC updates
- tweaks to formatting allowed, should be expected, needs to documented (state-machine breaking)
- changes that impact ledger cosmos app should be minimized as much as possible
# Meeting 06.02.2023
- [x] Ledger App
- [x] Spec
- [x] PRs
- any msg header
- title/content follow-up
Notes:
- Ledger
- Send PR now VS wait for audit?
- Fernando: send asap
- Amaury/Marko: send asap
- Estimated timeline: in 2 weeks
-
# Meeting 30.01.2023
- [x] Ledger App
- [x] Spec
- [x] PRs
- title content
- msg header (https://github.com/cosmos/cosmos-sdk/pull/14784)
Notes:
- Ledger
- v2.35.2 Looks good
- Ledger review process can be uncertain, sometimes our tests pass theirs don't
- might be a good idea to do audit of ledger app
- Process:
- create PR on ledger repo
- they run fuzzers
- they have more user-focused testing
- Textual not available, but if we provide a document/tutorial/spec, it should be fine
- Ask Ainhoa for feedback about audit + length review length
# Meeting 23.01.2023
## Agenda:
- [x] Ledger App
- Put long titles into content
- title/content new keys in CBOR
- [x] Spec
- title/content
- [x] PRs
- Textual in SDK client-side https://github.com/cosmos/cosmos-sdk/pull/14661
- Any msg header
## Notes
- Ledger:
- Amaury updated PR with updated cbor
- 2-3d, and Amaury will test it
- Spec:
- Title/content PR: https://github.com/cosmos/cosmos-sdk/pull/14730
# Meeting 16.01.2023
## Agenda:
- [x] Ledger App
- Managed to sign a tx with the ledger device
- Truncated Header
- [x] Spec
- Is Address necessary?
- [ ] PRs
- Any header
- Expert address field (@amaurym to create an issue)
- SignModeHandler https://github.com/cosmos/cosmos-sdk/pull/13734
## Notes
- SPEC Remove the address as it's redundant (SDK code, golang) in the envelope
- mark as expert
- Truncate:
- Done on ledger
- Concern 1: different fields, same truncated text
- Concern 2: important semantic info truncated, e.g. `from_address_to_exclude`
Going with this format:
```
|>>> --- [1/2]
|From address: cosmos1sdafdsa
|dafdsfdasfdsa
---
|>>> --- [2/2]
|sdafdsafdsfdsa
|dafdsfdasfdsa
```
Define length on Nano S and Nano S plus to start truncating.
# Meeting 09.01.2023
Agenda:
- [ ] Ledger App
- [ ] PRs
- envelope https://github.com/cosmos/cosmos-sdk/pull/13600
- any header https://github.com/cosmos/cosmos-sdk/issues/14170
Notes:
- No updates on the ledger app
- Amaury: this week make it work with Ledger app
# Meeting 19.12.2022
- [x] Scheduling
- Jan 9th
- [x] Ledger App
- [x] Spec
- Sign over long bytes hash https://github.com/cosmos/cosmos-sdk/pull/14275
- [x] PRs
- envelope https://github.com/cosmos/cosmos-sdk/pull/13600
- any header https://github.com/cosmos/cosmos-sdk/issues/14170
Notes:
- Ledger:
- Fernando: managed to sign big tx
- https://github.com/cosmos/ledger-cosmos/releases/tag/v2.35.0
- follow readme, run script
- python3 dep, Ledger blue dependency (https://pypi.org/project/ledgerblue/)
- Can't install on Nano X
- No need to restrict
- Use some unused memory in JSON parser to the textual
- Next step: testing with real device (first week of Jan)
-
# Meeting 12.12.2022
- [x] Ledger app
- Is AMINO_JSON + Textual possible in one app?
- [x] Spec:
- Remove sub-message header screen for Anys: https://github.com/cosmos/cosmos-sdk/issues/14170
- Bytes value renderer to output hash for long bytes: https://github.com/cosmos/cosmos-sdk/issues/14206
- overridable with scalars
- Title/content
- [x] PRs:
- Envelope https://github.com/cosmos/cosmos-sdk/pull/13600
## Notes
- Ledger
- Carlos: version working, but not on nano s becuase of memory constraints
```
{
"text": ...,
"expert": bool,
"indent": int
}[]
```
"Memo: foo" gives
```
------------
| Memo:
| Foo
---------
```
Idea:
```
{
"title": string, // max 11 chars
"content": string
"expert": bool,
"indent": int
}[]
```
- UTF-8 in strings?
- Zondax: ideally not
- Make titles shorter (e.g. Msg instead of Message)
- Simon: maybe remove AMION_JSON support for nano S, only do Textual
- makes no sense for legacy nano s to define Textual spec
- Simon: doubt that CBOR addition leads to out of memory. In the long-term would prefer not to use JSON
- Jim: see why AMINO_JSON is shorter
- Solutions:
1. Let the server do some more handling (unicode->ASCII, title/content, shorter screens)
2. Continue w/ current spec
2a. Only support the minimum for nano s
2b. 2 differents apps for nano s.
- Fernando: 2a is preferred, if nano s support 80%-90% of txs
- Amaury: 2a
- Simon: 2a is best, we can do 1 if we don't harm future spec because of legacy nano s txs.
- e.g. title/content spec makes it better
- not for unicode
- Jim: is it code memory pressure or data memory pressure? Or same resource pool?
- code memory and data memory separate
- We can add more code to help reduce the runtime memory
### Action items
- try a big tx that's signable with AMINO_JSON
- double check: large tx passes on nano X and s plus
- Create issue for title/content @amaurym
# Meeting 05.12.2022
- [x] Ledger updates
- [x] Scheduling
- [x] SPEC updates
- Any https://github.com/cosmos/cosmos-sdk/pull/14117
- [x] PRs walkthrough
```
Vote:
> Voter: cosmos1
```
Not okay
```
Vote: [Vote object
> Voter: cosmos1
]
```
current one
```
Vote: /cosmos.gov.v1.Vote
> Voter: cosmos1
```
too long
## Notes
- Ledger
- Fernando: stack overflow on nano s
- related to JSON library
- possible solution: no AMINO_JSON on nano S
- Jim: fine to have both apps?
- possible yes
- Fernando: priority to put 2 sign modes in one app
- Jim: would we have stack overflow without CBOR?
- Fernando: not sure
- Jim: option: idea to reuse JSON instead of CBOR (easy fix)
- Fernando: ideally have a answer whether both sign modes in one app (nano s) is possible
- Carlos: no issues on guidelines and tst cases
# Meeting 28.11.2022
Agenda:
- [x] Ledger updates
- Do the [guidelines](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-050-sign-mode-textual-annex2.md) and [test vectors](https://github.com/cosmos/cosmos-sdk/pull/13992/files) make sense?
- `@` as terminator for whitespaces
- `\u` for unicode (except special chars)
- pagination
- [x] PRs (walk through the tracking issue)
Notes:
- Ledger
- Working on parser using test vectors
- https://www.npmjs.com/package/@zondax/zemu, https://github.com/cosmos/ledger-cosmos/tree/main/tests_zemu emulate ledger to run e2e tests
- If no `: `, what to show in title/content
- let's start without a title
https://github.com/cosmos/ledger-cosmos/blob/main/tests_zemu/snapshots/s-sign_basic/00001.png
```
------------
| <title>
| <content>
---------
```
```
------------------------
| <no title>
| > End of transactions
-------------------------
```
Action item:
- amaurym create edge case no `: ` separator and long screen
# Meeting 21.11.2022
Agenda:
- [x] Ledger updates
- [x] PRs (walk through the tracking issue)
Notes:
- Fernando:
- good progress with parser
- need more test vectors
- Good to star twith 2/3 test casees
- Before sending to Ledger:
- much more test cases, with edge cases
- maybe with a tool to generate those test cases
Action Items
- amaury: create a JSON file with 2-3 test cases
- try to cover corner cases, e.g. with a lot of fields
- differents txs with different fields
JSON file:
- Screen with short and long lines (does fit/not fit in one device line)
- example: https://github.com/cosmos/ledger-cosmos/blob/2b7337fdddf7eec0511b65f2e0021ce391ec34b3/tests/testcases/manual.json#L812
- one with a lot of screens (maybe)
- one with UTF-8
- one with expert mode, indentation
```json
{
"tx": "<binary_repr>" // CBOR-encoded
"output": [
"<screen1>",
"<screenN>",
],
"expert": true
}
```
# Meeting 14.11.2022
- [x] Ledger updates
- [x] PRs
- Enum R4R https://github.com/cosmos/cosmos-sdk/pull/13853 @jim
- Parseing coins, dec, int https://github.com/cosmos/cosmos-sdk/pull/13696 @jim
- Any prefix: blocked on https://github.com/cosmos/cosmos-proto/pull/92
- [x] Coins (if Simon's here)
```
[{denom:"ATOM",amount:1},{denom:"uatom",amount:1000000}]
```
Current: `1 ATOM, 1 ATOM`
Conclusion: no special handling of coins, all test cases (and parse) use base denom
- Notes
- ledger: started work, added cbor lib, add instruction for Textual
- looked into how add textual without much duplication
- https://github.com/cosmos/ledger-cosmos/tree/dev_sign_mode_textual
- Jim: if pressed for space, no need for lib
- CosmJS
- currently not active, not in foreseeable future
- framing: want Library developer (language is secondary)
- confio: more a mgmt problem than a talent problem (for newcomers)
# Meeting 07.11.2022
- [x] Ledger app updates
- [x] CBOR pr https://github.com/cosmos/cosmos-sdk/pull/13697
- [x] Coins bijectivity
- [x] PRs progress
- [x] enum (@amaurym)
- [x] repeated
- [x] any
- [x] coins parsing (@atheesh)
- [x] tx envelope
- [x] plumbing https://github.com/cosmos/cosmos-sdk/pull/13734
- [x] custom field-level proto annotation
## Notes
- Ledger:
- Support both AMINO_JSON and TEXTUAL (ideal solution)
- Fernando: Checkout about Nano S memory
- PR (draft) on https://github.com/cosmos/ledger-cosmos
- No need for determinism check on the ledger decoding side
- strings vs integers on struct fields for CBOR:
- Fernando: both are fine
- Jim: keep as integers
- Timeline:
- Ainhoa: should be fine by Christmas for a testable version of the app
- Not for release
- Jim: would love to have this asap for Agoric
- Monday 5:30pm CEST
- Coins
- Problem:
1. Not bijective `1000000uatom` -> `1 ATOM`, `1000 matom` -> `1 ATOM`
2. https://api.cosmos.network/cosmos/bank/v1beta1/denoms_metadata/uatom
- Solutions:
1. Show original denom in renderering (e.g. in expert mode)
2. Only allow Format from base denom
3. Spec: "We require" -> "We strongly recommend"
- map: denom => base_denom
- MsgSend {
Amount: {denom: "atom", amount: 1} // user does not have funds
}
- Conclusion: add comments in Parsing that we parse back to base denom (and not original denom) (problem for future us)
- Joe: probably too late, but https://cbor.me/ has been helpful in the past
- to be used to decode cbor, probably useful for testing
- Proto annotations
https://github.com/cosmos/cosmos-sdk/pull/13466/files
```
string foo = 1 [cosmos_proto.scalar="cosmos.Dec"];
```
cosmos/scalars.proto
declare_scalar = {
}
alternative:
```
string foo = 1 [cosmos.textual.v1.value_renderer="Dec",
cosmos.amino.v1.encoding="Dec"]];
```
conclusion: let's go with scalars
# Meeting 24.10.2022
- [x] Ledger App
- Guidelines: Annex 2 https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-050-sign-mode-textual-annex2.md
- [x] enums (inspiration: https://github.com/cosmos/cosmos-sdk/pull/13510)
- [x] messages
- [x] repeated
- [x] Any
- [x] Public Key value renderer
- [ ] Scalars (i.e. custom field-level renderers)
Notes:
- Ledger app
- Juan: maybe early November
- Juan: needs test vectors
- inputted data: CBOR-encoded
- output: []string (with or without expert)
- Juan: get developer to join biweekly syncs
- Jim: Still need to specify CBOR encoding
- Juan: one ledger app to support both
- Add a new command for textual https://github.com/cosmos/ledger-cosmos/blob/main/docs/APDUSPEC.md#sign_secp256k1
- derivation path:
- Simon: it's on hold, out of scope of Textual
- Trezor: see if they are interested
Action items;
- create issues for integration with existing signing flow @amaurym
- call for in 2 weeks
# Meeting 17.10.2022
- Structued screens ADR update got merged
- https://github.com/cosmos/cosmos-sdk/pull/13434
- unicode support
- [ ] messages PR (Jim)
- [ ] Any PR (Jim)
- [ ] repeated (Joe for now, but maybe Jim takes over)
- [ ] enums (Emmanuel)
- Simon: in CW, msg gets encoded as JSON and put into a `bytes` field, so shown as base64. It would be ideal to do show the msg contetnts
- idea1: custom message renderer
- idea2: add a field custom renderer
- simon to create an issue
- https://github.com/CosmWasm/wasmd/blob/main/proto/cosmwasm/wasm/v1/tx.proto#L84-L85
Action Item:
- next time(s): Zondax team member to join call
# Meeting 03.10.2022
- [x] Spec PR with new strcutured screens (Jim)
- ping Simon Amaury Juan to review, secondary Joe, Emmanuel
- [x] Duration PR
- [x] Messages PR (Jim)
- Ask Juan about Annex 2:
- does Juan want exact spec, or general guidelines?
# Meeting 14.09.2022
Juan, Jim, Amaury
### What Ledger device receives
Before:
```
\n-delimited string
each screen: ASCII 32-127, e.g. *, >
```
After:
```
Item {
"expert": true,
"indentation": 5, // >>>>>
"string": "..." // can contain any UTF-8, can contain >, *, \n
}
SignDoc = []Item
What Ledger receives:
enc(SignDoc) // where enc is a determinitic encoding fn
```
What should enc be:
- micro-format
- no need to innovate
- payload size gains not significant compared to cbor
- CBOR (cbor.me, https://cbor.io/)
- blockchains with use cbor in ledger:
- filecoin
- dfinity
- oasis
- cardano https://input-output-hk.github.io/ouroboros-network/cardano-ledger/Cardano-Chain-Common-CBOR.html
- https://github.com/intel/tinycbor
- ~~NEAR binary format (https://borsh.io/)~~ Pain
Decision: CBOR (make sure about determinism)
### UTF8
- in other projects:
- replace with `.` for everything outside 32-127
- other ideas:
- bijective quotation (e.g. \u... or U+...)
- e.g. \uAB32
- https://en.wikipedia.org/wiki/Punycode
- e.g. Bahnhof München-Ost -> Bahnhof Mnchen-Ost-u6b
- other idea: keep ASCII in spec, hardware devices that can show UTF-8 can also decode on-device
\n-delimiter string vs CBOR(): Juan prefers CBOR
If we go CBOR: Juan prefers escpaed utf8 in the serialized `Item.string`
Decision:
- go with CBOR
- in the `Item.string` field, can be full utf-8
- During serialiazation, `Item.string` quoted to printable ASCII 32-127
To check: is CBOR's string an ASCII string or UTF-8 string?
### Other questions
- Maximum expected size of txs
- cosmwasm contracts
- maybe sign hash (to be discussed next time)
- maybe streaming
- agoric: use custom msg renderers to shorten the Item
- What to do with long values (e.g. long memo field)?
- not monospace font
- sensible limit: 255 ASCII chars (after encoding)
# Meeting 12.09.2022
## Agenda
Spec:
- [x] Scope of the SPEC
- What sign_mode_textual produces
- Which parts are left to the signing device
Implementation PRs:
- [ ] Coins https://github.com/cosmos/cosmos-sdk/pull/12729
## Notes
- SIGN_MODE_TEXTUAL spec:
```
Item {
"expert": true,
"indentation": 5,
"string": "..." // can contain any UTF-8, can contain >, *, \n
}
SignDoc = []Item
Encoding of SignDoc: (needs to be deterministic)
- micro-format
- CBOR
- NEAR binary format (https://borsh.io/)
```
- Annex 2: add a Ledger spec
- How does ledger handle unicodes?
- dot (`.`) used in other ecosystems
- bijective quotation (e.g. `\u...` or `U+...`)
- https://en.wikipedia.org/wiki/Punycode
## Action Items
- Ask Juan about:
- encoding of SignDoc
- UTF-8 quotation
# Meeting 05.09.2022
Agenda:
Spec:
- [x] Merge custom msg renderers https://github.com/cosmos/cosmos-sdk/pull/12785 (@Jim)
- [ ] Bijevtivity `MUST` -> `SHOULD` with clear definitions (@amaury)
- [x] What to do with UTF8 chars?
- [x] Test vectors Spec ?
Implementation PRs:
- [ ] Coins https://github.com/cosmos/cosmos-sdk/pull/12729
- [ ] Message https://github.com/cosmos/cosmos-sdk/pull/12878
Action items:
- Ask Juan about converting UTF8 chars to display code (string -> string literal, use qutoation marks, similar to JSON) inside the Ledger App.
# Meeting 22.08.2022
Agenda:
- [x] Security audit: what needs to be done.
- [x] Bijectivity
- [x] Spec PRs:
- [x] Custom Msg Renderers https://github.com/cosmos/cosmos-sdk/pull/12785
- [x] Sign over body_ and auth_info_bytes https://github.com/cosmos/cosmos-sdk/pull/12910
- [x] Hex vs Base64 https://github.com/cosmos/cosmos-sdk/pull/12954
- [x] Implementations PRs:
- [x] timestamp https://github.com/cosmos/cosmos-sdk/pull/12860
- [x] generic message https://github.com/cosmos/cosmos-sdk/pull/12878
- [x] enums https://github.com/cosmos/cosmos-sdk/pull/12930
Notes:
- Security:
- Today: if we merge above PRs, then nothing to do
- Before shipping:
- internal (SDK team) audit SPEC+impl
- external (cosmos ecosystem) audit SPEC+impl
- bijectivity: part of security
- Bijectivity:
- Simon: do we really need it?
- Jim:
- 1. sigs are not malleable
- 2. sig over readable tx data
- Hex or base64 for pubkeys?
Action Items:
- (from last week) Update SPEC with `*` and `>` positioning
- change bijectivity to SHOULD. Bijectivity between ``"Semantic Tx" -> []string`
- create issue on SDK to ask about hex vs base64.
- Jim: Custom Msg reneder PR: push to finish line
# Meeting 08.08.2022
Agenda:
- [x] go through remaining PR points https://github.com/cosmos/cosmos-sdk/pull/12785
- [x] assign issues https://github.com/cosmos/cosmos-sdk/issues/11970
```
MsgFooBar {
// link to spec custom render =
custom_renderer = "algo_id"
}
```
Notes:
- Clear up SPEC on asterisks
- add recursive asterisks spec (only 1 asterisk)
- one asterisk for multiple nested expert fields
- `*` or `>`: * at beginning
- `*> Amount: 20 atom`
- a regular formatted string should not start with '*' or '>'
- Add that `custom_renderer` proto option is optional
# Meeting 25.07.2022
Agenda:
- [x] Custom formatting for message
- [x] Implementation (SDK)
- [x] ISO8601 vs RFC3339
- go with RFC3339 https://github.com/cosmos/cosmos-sdk/pull/10701#discussion_r925614083
Notes:
- Issue: https://github.com/cosmos/cosmos-sdk/issues/11970
- assigned Jim and Joe to some subtasks
- For custom renderers:
- Jim: prefer the custom function
- Amaury: okay for this if we can make this function bijective, or else fall back to hidden fields.
- Internationalization:
- Amaury: update ADR
- amaury: ask marko to add JimLarson to sdk-write
# Meeting 11.07.2022
Agenda:
- [x] Expert mode
- [ ] Implementation
```proto
message MsgMyExample {
string user_string = 1;
string address = 2 [exprert=true];
// other fields [exprert=true];
}
```
```proto
message MsgMyExample3 {
[option expert_all_but="user_string"]
string user_string = 1;
string address = 2;
// other fields;
}
```
```proto
message MsgMyExample2 {
[option readable_string="...{{address}}..."]
string address = 2;
// other fields;
}
```
(template engine not expressive enough for agoric's use cases)
Action Items:
- Simon to think about user-defined function inside proto file to do Msg -> string encoding
# Meeting 16.05.2022
Agenda:
- [x] Merge ADR-050
- ideally merge it before next biweekly call
- [x] Vacation Amaury June 6th - July 3rd
- [x] Textual implementation update and next steps https://github.com/cosmos/cosmos-sdk/issues/11970
- In JSONs, add error cases too
# Meeting 21.03.2022
- [x] Textual implementation
- https://github.com/cosmos/cosmjs/compare/sign-mode-textual (don't rely on commit hashes due to rebasing)
- https://github.com/cosmos/cosmos-sdk/tree/am/textual-number
- [ ] CosmJS
- https://github.com/cosmos/cosmos-sdk/pull/11413
```
import { gluecode } from '@cosmjs/core|gluecode'
import authz frm '@cosmjs/authz'
import ecocredits frm '@regenjs/ecocredis'
export const client = gluecode([
authz,
ecocredits,
])
// publish this client
```
## Action items
- amaury: add negative numbers, ask around if there's a use case
# Meeting 07.03.2022
- [x] Implementation board https://github.com/orgs/cosmos/projects/22/views/1?layout=board
Notes:
- Cosmos app in review by Ledger (maybe EOW)
- Plan: update Ledger SDK to newest version (for nano S plus)
- Textual sign mode: 6mo-1y
- Amaury 20% of my time in nexy 6mo
- amaury have a look https://github.com/cosmos/cosmos-sdk/issues/10863
# Meeting 21.02.2022
- [x] Tips check-in
- [x] Max length on each screen?
- [x] Start implementation
## Notes
- tips:
- Juan talked with Billy, moved to cosmos org, tip support added
- https://github.com/cosmos/ledger-cosmos
- Ledger reviewing
- on cosmjs: no timeline. Bad quality external contributors, can ask Emeris team to add, but needs to be good quality (advanced TS engineers).
- if there's really urgent need, Zondax can help.
- Max length
- nano s max tx size == 8kb
- Gov submit proposal `metadata`, change to string?
- additional restrictions: acsii range,
- no risk, ledger returns an error if tx too big. no need to put artifical limit here
- Implementation
- Metadata denom: don't change capitilization, keep what's in state
- what happens to TEXTUAL on state change? Will make offline signing harder if state changes often, but for metadat it should be okay,
## Action Items
- @amaurym Gov submit proposal `metadata`, change to string?
# Meeting 07.02.2022
Agenda:
- [x] transaction tips check-in
Recall from [12.10.2021](https://hackmd.io/G4mjmz7YRJ-5_rE12Y8uYQ):
```diff
{
"account_number": {number},
"chain_id": {string},
"fee": {
"amount": [{"amount": {number}, "denom": {string}}, ...],
"gas": {number},
+ "granter": {string}, // optional, omitempty, chain-specific bech32 address
+ "payer": {string}, // optional, omitempty, chain-specific bech32 address
},
"memo": {string},
"msgs": [{arbitrary}],
"sequence": {number},
+ "tip": { // optional, whole struct is omitempty
+ "amount": [{"amount": {number}, "denom": {string}}, ...], // array of coins
+ "tipper": "cosmos1...",
+ }
}
```
From Zondax:
- moving the Ledger app code to the cosmos org
- end feb seems like a reasonable timeline for code-readiness. Then unknown time for Ledger team approval.
- [x] textual check-in
No reply from Ledger team on Discord. Amaury will ping Sam/Billy if nothing moves.
# Meeting 24.01.2022
Agenda:
- [x] check-in Ledger
- [x] Nested Msgs with `>`
- [x] Links (e.g. propsal on MsgVote)
Action items;
- amaury to send a msg to billy/sam for comms with Ledger
- start impl (Simon & Amaury) once we have a ledger ACK
# Meeting 10.01.2022
Agenda:
- [x] If we get ACK from ledger, start implementation?
- [x] Nested Msgs with `>`
- [ ] Links (e.g. propsal on MsgVote)
- [ ] SPEC
Notes:
- Ledger still playing hard to get, Amaury and Juan to continue harassing
- Once Ledger says OK, Simon & Amaury can start a couple of hours per week on paired impl.
- Simon: important to have multi-langugage impl, to iterate with SPEC (and not have impl-as-SPEC)
- Amaury: share test cases between go & js
- OK to go with `>` for nested messages, put it in spec (would love to have Juan's input on)
- Amaury to continue write Value Renderers in a SPEC-y language
# Meeting 13.11.2021
Agenda:
- [x] Ledger Team update
- [x] Wider Ledger UX discussion (from Josh): https://hackmd.io/@dogemos/BkeJUJTtK
- [ ] SPEC
Notes:
- ADR-049 https://github.com/cosmos/cosmos-sdk/pull/10701
- @amaurym to ask Billy to coordinate a call with Ledger UX stakeholders (incl Josh)
# Meeting 29.11.2021
Agenda:
- [x] BC Vault update
- [x] SPEC
Action:
- Create draft PR, so that some decisions can be discussed asyncly
# Meeting 15.11.2021
Agenda:
- [x] Ledger team schedule call (or in-person event)
- [x] Continue on Spec
Notes:
- make Ledger understand that we need to get on a call w/ them
Action item:
- @corlock reach out to Billy/Sam to contact Ledger
- @amaurym ping denis to contact BCVault
-
# Meeting 08.11.2021
Agenda:
- [x] Meeting frequency
- Ok to swithc to biweekly starting from 15th Nov
- [x] Go through the initial design doc
- Let's schedule a call with the ledger team
- Event in Paris Dec 9th-10th 2021: https://www.eventbrite.com/e/ledger-open-paris-tickets-186074232037
- In value renderers for numbers: consider using `'` for 1000s separator. (depends on language, find compromise)
- Simon: use consistent language, prefer full words (e.g. transaction over tx, message over Msg)
- What if user put `\n` in memo?
- Juan: propose to only allow ASCII 32-127
- > Each string is less than N (TBD) characters, to avoid string streaming on the screen.
- More relevant is pixel size. "m" is wider then "i"
- Think about the realisitic max number of lines and max number of chars/line.
# Meeting 04.10.2021
Agenda:
- [ ] Make sure everyone is aware we're going with `SIGN_MODE_AMINO_AUX` for SDK v0.45 (~Nov).
- Existing LEGACY_AMINO_JSON:
```go
type StdSignDoc struct {
AccountNumber uint64
Sequence uint64
TimeoutHeight uint64
ChainID string
Memo string
Fee json.RawMessage
Msgs []json.RawMessage
}
```
- New AMINO_AUX
```go
type StdSignDocAux struct {
AccountNumber uint64
Sequence uint64
TimeoutHeight uint64
ChainID string
Memo string
Msgs []json.RawMessage
Tip sdk.Coins // [{"amount":"1000", "denom":"atom"}]
}
```
- [ ] Temperature check on whether the updated `SIGN_MODE_TEXTUAL` is a good starting point.
Notes:
Action Items: