Skip to main content

ComChain API client library

Project description

pyc3l

Latest Pypi Version

This project allow to create python scripts communicating with the ComChain API.

Maturity

This code is in alpha stage. It wasn't tested on Windows. API may change. This is more a draft for an ongoing reflection.

Requirement

This code is for python3 and uses:

  • eth_account
  • web3
  • ecdsa
  • requests

It is tested on Python 3.9, 3.10, 3.11 and 3.12.

Installation

You don't need to download the git version of the code as pyc3l is available on the PyPI. So you should be able to run:

pip install pyc3l

If you have downloaded the GIT sources, then you could add install the current version via traditional::

pip install .

And if you don't have the GIT sources but would like to get the latest master or branch from github, you could also::

pip install git+https://github.com/com-chain/pyc3l

Or even select a specific revision (branch/tag/commit)::

pip install git+https://github.com/com-chain/pyc3l@master

Usage

from pyc3l import Pyc3l

## Instantiate our interface to Comchain's node
pyc3l = Pyc3l()

## load your ciphered wallet
wallet = pyc3l.Wallet.from_json(json_string_wallet)

## use the ``wallet`` object to read the blockchain

wallet.isValidAdmin
wallet.status

wallet.globalBalance
wallet.nantBalance
wallet.cmBalance
wallet.cmLimitMin
wallet.cmLimitMax

wallet.Allowances        ## dict of {address: amount}
wallet.Requests          ## dict of {address: amount}
wallet.MyRequests        ## dict of {address: amount}
wallet.Delegations       ## dict of {address: amount}
wallet.MyDelegations     ## dict of {address: amount}
wallet.AcceptedRequests  ## dict of {address: amount}
wallet.RejectedRequests  ## dict of {address: amount}


## use the ``wallet`` object to emit transaction

## unlock your wallet with your password
wallet.unlock(mypassword)

wallet.enable(address)
wallet.disable(address)

wallet.pledge(address, amount, amount,  message_from="", message_to="")
wallet.delegate(address, amount)

wallet.transferNant(address, amount, message_from="", message_to="")
wallet.transferOnBehalfOf(address_from, address_to, amount, message_from="", message_to="")


## Get the currency object

currency = Currency("Lemanopolis")
## or from wallet:
currency = wallet.currency

Please note that pyc3l-cli package has a lot of short and simple scripts to showcase the usage of the library.

Contributing

Any suggestions or issues are welcome. Push requests are very welcome, please check out the guidelines.

Test

To run the tests, you'll need to install hatch and::

hatch run test

Push Request Guidelines

You can send any code. I'll look at it and will integrate it myself in the code base and leave you as the author. This process can take time and it'll take less time if you follow the following guidelines:

  • check your code with PEP8 or pylint. Try to stick to 80 columns wide.
  • separate your commits per smallest concern.
  • each commit should pass the tests (to allow easy bisect)
  • each functionality/bugfix commit should contain the code, tests, and doc.
  • prior minor commit with typographic or code cosmetic changes are very welcome. These should be tagged in their commit summary with !minor.
  • the commit message should follow gitchangelog rules (check the git log to get examples)
  • if the commit fixes an issue or finished the implementation of a feature, please mention it in the summary.

If you have some questions about guidelines which is not answered here, please check the current git log, you might find previous commit that shows you how to deal with your issue.

License

Licensed under the [GNU Affero General Public License](GNU Affero General Public License: http://raw.github.com/com-chain/pyc3l/master/LICENSE)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyc3l-0.3.3.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyc3l-0.3.3-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file pyc3l-0.3.3.tar.gz.

File metadata

  • Download URL: pyc3l-0.3.3.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for pyc3l-0.3.3.tar.gz
Algorithm Hash digest
SHA256 e36164abe3b4bba833b8f6049b4aaeea989adbc9687301295f5db74e8b493e5f
MD5 93d2a661ca183b1850380ed7047ecd3a
BLAKE2b-256 07940fb98799edfd823686824b6ceabc5c26205fa1b3e65f6da40df3b94e775d

See more details on using hashes here.

File details

Details for the file pyc3l-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: pyc3l-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 31.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for pyc3l-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f7243e97c6441f75861c39027fccad1d8fcf4434163fe26deea71d868626222a
MD5 00df19ebc0714bf59cda84ec8a84df78
BLAKE2b-256 11ceb977c49fa3879675de79fc3fdffec91ed4d6a5a47131589994ec46ff0238

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page