steemit / steem-python

The official Python (3) library for the Steem Blockchain.
https://steem.io
MIT License
154 stars 100 forks source link

TN: HF20: Support different asset symbols & testnet configurations #253

Closed relativityboy closed 5 years ago

relativityboy commented 5 years ago

As a python developer on Steem I want to be able to easily connect to all Steem based blockchains using only simple configuration.

AC

feruzm commented 5 years ago

Results

In order to support custom networks following file has to be changed with chain properties: https://github.com/steemit/steem-python/blob/master/steembase/chains.py This would be manual change everytime there is new network.

Better solution, From what I can see, it will require some refactoring to generalize chains.py to something that could be changed dynamically. This file needs refactoring: where steemd connection or chain parameters are defined: https://github.com/steemit/steem-python/blob/master/steem/steemd.py#L60


Chain specific changes, HF20 and/or Appbase (asset style changes)

Asset style changes will require more deeper changes, in multiple files.. starting with https://github.com/steemit/steem-python/blob/master/steem/amount.py and https://github.com/steemit/steem-python/blob/master/steembase/operations.py


And of course,

deprecated and new operations from HF20 and Appbase should be added here: https://github.com/steemit/steem-python/blob/master/steembase/operationids.py https://github.com/steemit/steem-python/blob/master/steembase/operations.py

I would suggest 3x2 separate stories for each section changes (implementation and testing)

relativityboy commented 5 years ago

@feruzm

refactoring to generalize chains.py to something that could be changed dynamically.

Is your thinking that the users of the library should pass in an object of their own to the constructor in steemd.py? Perhaps the library could allow either a string for configurations currently in chains.py or the user-supplied object as mentioned above? Should a file uri with configuration be an option?

feruzm commented 5 years ago

@relativityboy Something similar to how private keys are used in library. User credentials are stored locally steembase/storage.py and used dynamically. Chains could use similar approach, much more flexible.