SDK lacks some features which already exist in snet-cli (dynamical caching of everything (channels/service metadata/compiled protobuf), time based strategies for gas price, support of different types of identities, etc). Instead of re-implemented all these features in SDK we should isolated them in separate library and use them in SDK and in snet-cli together.
General strategy should as following: if we need some functionality in SDK and this functionality is already presented in snet-cli we should take it from snet-cli. If we don't like how it is implemented in snet-cli we re-implement it, but we also replace old functionality in snet-cli.
@vforvalerio87 @raamb do you agree with this approach?
Functionality which already present in snet-cli, but lucking in SDK
- Support of different identity types. We should directly use
identity.py (@vforvalerio87 if you don't like how it is implemented it should be re-implemented in such a way that snet-cli could also use it)
- Mechanism for dynamical caching everything: channels/service_registration/service_metadata/compiled protobuf. SDK should also use ~/.snet by default (as I believe @ferrouswheel suggested). In such a way SDK and snet-cli will use the same cached information which is great.
- General mechanism for sending on-chain transactions including time based strategies for gas price. I'm not big fun how it is implemented in snet-cli. So we could re-implement it (but in such a way that snet-cli could use it!).
- Small libraries:
utils_agi2cogs.py utils_agi2cogs.py utils_agi2cogs.py, some functions from utils.py
- Functions for calculate call metadata from
mpe_client_command.py
SDKlacks some features which already exist insnet-cli(dynamical caching of everything (channels/service metadata/compiled protobuf), time based strategies for gas price, support of different types of identities, etc). Instead of re-implemented all these features inSDKwe should isolated them in separate library and use them inSDKand insnet-clitogether.General strategy should as following: if we need some functionality in
SDKand this functionality is already presented insnet-cliwe should take it fromsnet-cli. If we don't like how it is implemented insnet-cliwe re-implement it, but we also replace old functionality insnet-cli.@vforvalerio87 @raamb do you agree with this approach?
Functionality which already present in snet-cli, but lucking in SDK
identity.py(@vforvalerio87 if you don't like how it is implemented it should be re-implemented in such a way that snet-cli could also use it)utils_agi2cogs.pyutils_agi2cogs.pyutils_agi2cogs.py, some functions fromutils.pympe_client_command.py