Week 10 summary:
Week Goals:
- [x] Initialize Aries agent wallet
- [x] Mediator (http) PR merge with fixes
- [ ] // Hold back from agent implementation; for a bit. Some PRs are merging that will make our task easier, fluid.
Reading:
# Visibility and privacy (pub)
- https://doc.rust-lang.org/reference/visibility-and-privacy.html
# pub stands for publish, not public
- https://internals.rust-lang.org/t/visibility-modifiers-pub-super-vs-super/7838/4
# Workspaces (To understand how aries_vcx is organised)
- https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
# Multiple impl blocks can be used sometimes
- https://doc.rust-lang.org/book/ch05-03-method-syntax.html?highlight=method%20syntax#multiple-impl-blocks
Questions:
- Q: What is difference between use `aries_vcx::core` and `aries_vcx_core` ?
A:
- `aries_vcx_core`: integrations with wallets etc
- `aries_vcx::core`: internal state machine integration.
- Q: What is relationship between `agent`, `agency_client` ?
- I know `agent` _uses_ `agency_client`. What is in each?
- What is an `agency_client`? I am assuming `agent` means Aries agent.
A:
- `agency_client`: client, for `vcxagencynode` (a nodejs based mediator).
- Uses custom communication (custom api)
- We won't need it. We will write our own client, supporting Pick Up protocol
- Q: What is `Profile` (in `aries_vcx`)?
A:
- Not required for third party app.
- Container that stores, wallet, ledger, anoncreds etc. A helper store.
- For mediator, we won't need ledger, anoncreds, etc, so no need of this compilation struct.
Insight/Thoughts:
- Unwrap is bad (in production), use expect instead
- Maybe okay sometimes. But maybe default to .expect, so as to document why we ignore this error/None case.
- (Patrik:) Testing pyramid. [archive]
- Try to test closer to function (unit tests) more often, and about a handful of overarching integration tests.
Next Todo:
- OOB (out of band) invite: create, accept.