GithubHelp home page GithubHelp logo

codechain-sdk-python's People

Contributors

foriequal0 avatar posgnu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

codechain-sdk-python's Issues

Cannot pipenv with python 3.7

[0] % python3 --version
Python 3.7.4

[0] % pipenv shell
Warning: Python 3.6 was not found on your system…
[[source]]
You can specify specific versions of Python with:
  $ pipenv --python path/to/python

Release alpha version

Tentative schedule
~7/21

I reconstructed the project.
Setupping project took much time than I thought.
part 1

  • Setup project(README, tox, pipenv, setup.py, test e.g.)
    • tox
  • Change this repository the codechain-sdk-python and make the primitive code as a submodule.
  • Implement crypto lib
    • bech32
    • ecdsa
    • schnorr
    • blake
    • ripemd
  • Finish to write crypto and primitive part of the SDK spec docs
    part 2
  • Complete the primitive lib
    • asset address
    • platform address
    • utility [Do not need to be implemented]
  • Investigate keystore lib
  • Finish to write keystore part of the SDK spec docs
    part 3
  • Implement keystore lib
    • logic
      • pbkdf2
      • hdstorage encoding
      • storage encoding
    • model (~ 11/9)
      • hdkeystorage class (This is put off until use case occurs)
      • keystorage class
    • CCKey class
    • Context(We don't need to implement this layer since we are not going to use this sdk on web browser) ~~(~ 11/16)~~ (~ 11/13)
  • Investigate rpc wrapper (This wil be implemented by @foriequal0, but I will write a spec for this) (I will implement this)
  • Implement rpc wrapper [proceeding]
    • account
    • chain
    • devel
    • engine
    • mempool
    • net
    • rpc (main class)
      (~ 11/23)
  • Rewriting the SDK spec docs until the keystore
  • Investigate helper lib
  • ~~Finish writing helper part of the SDK spec docs (~ 11/30)~~ (I have tried writing this but it was too time comsuming and it didn't seem that much needed)
    part 4
  • Implement RPC wrapper (This should be done before diving into helper lib. I am not sure when @foriequal0 can finish this.)
  • Implement helper lib
    • key
      • local key store
      • memory key store
      • remote key store
      • p2pkh
      • p2pkh burn
      • key
    • rpc
      • account
      • chain
      • devel
      • engine
      • network
      • node
      • rpc
    • core
      • transactions
        • asset mint output
        • asset out point
        • asset transfer input
        • asset transfer output
        • change asset scheme
        • create shard
        • custom
        • increase asset supply
        • mint asset
        • order
        • order on transfer
        • pay
        • remove
        • set regular key
        • set shard owner
        • set shard user
        • store
        • transfer asset
        • unwrap ccc
        • wrap ccc
      • asset
      • asset scheme
      • block
      • invoice
      • script
      • signed transaction
      • text
      • transaction
    • utils
    • tests
    • examples

I decided to include sending mintAsset and transferAsset transactions only in the SDK alpha version. Bold things are needed.

`Json.stringify` in sdk-js is different from `str(object)` in python.

Json.stringify in sdk-js is different from str(object) in python. As a result, metadata in assetscheme can be different when the assetscheme is minted from sdk-js and sdk-python. It might not be a problem in each SDK's functionality but it can ruin a consistency between SDKs.

Give concrete classes to objects interacting with RPC

Currently, it takes and gives raw dict when you make a request and get a response.
However it is not desirable since we have some types that do not correspond 1:1 to JSON objects such as big integers and hash types.
We need to convert between our primitive types and JSON types.

Add HD keystore manager

CCKey class should retain both keystore manager(asset, platform) and HD keystore manager. However, we didn't implement HD keystore manager since there seems no use-case until now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.