Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aviksaikat/swarm-cid-py
Utility library written in Python to convert Swarm hex references into Swarm CIDs
https://github.com/aviksaikat/swarm-cid-py
ethere ethereum ethereum-swarm ethersphere python3 swarm
Last synced: about 1 month ago
JSON representation
Utility library written in Python to convert Swarm hex references into Swarm CIDs
- Host: GitHub
- URL: https://github.com/aviksaikat/swarm-cid-py
- Owner: Aviksaikat
- License: bsd-3-clause
- Created: 2023-11-03T20:45:04.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-06T14:55:53.000Z (almost 1 year ago)
- Last Synced: 2024-04-14T03:05:06.832Z (9 months ago)
- Topics: ethere, ethereum, ethereum-swarm, ethersphere, python3, swarm
- Language: Python
- Homepage:
- Size: 689 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- Funding: .github/funding.yml
- License: LICENSE.txt
- Authors: AUTHORS.rst
Awesome Lists containing this project
README
Swarm CID
---
## ๐ Table of Contents
- [๐ Table of Contents](#-table-of-contents)
- [๐ API](#-Api)
- [๐ Getting Started](#-getting-started)
- [๐ง Installation](#-installation)
- [๐ค Running swarm-cid-py](#-running-swarm-cid-py)
- [๐งช Tests](#-tests)
- [๐ค Contributing](#-contributing)
- [๐ License](#-license)---
## ๐ Api
Utility library written in Python to convert Swarm hex references into Swarm CIDs.
The swarm-cid library provides the following functions:
`encode_reference(reference, type, version)`
Encodes a reference string into a CID.
- reference: The reference string to encode.
- type: The type of the reference (either ReferenceType.MANIFEST or ReferenceType.FEED).
- version: The version of the CID (either 1 or 2).
Returns a CID string.`decode_cid(cid)`
Decodes a CID string into a dictionary containing information about the underlying data.
- cid: The CID string to decode.
Returns a dictionary with the
following keys:- reference: The reference string extracted from the CID.
- type: The type of the reference (either ReferenceType.MANIFEST or ReferenceType.FEED).`decode_feed_cid(cid)`
Decodes a CID string into a feed reference string.
- cid: The CID string to decode.
Returns a feed reference string.`decode_manifest_cid(cid)`
Decodes a CID string into a manifest reference string.
- cid: The CID string to decode.
Returns a manifest reference string.`encode_feed_reference(reference)`
Encodes a feed reference string into a CID.
- reference: The feed reference string to encode.
Returns a CID string.`encode_manifest_reference(reference)`
Encodes a manifest reference string into a CID.
- reference: The manifest reference string to encode.
---
## ๐ Getting Started
**_Dependencies_**
```py
py-multiformats-cid
```---
### ๐ง Installation
```sh
pip install swarm_cid_py
```---
### ๐ค Running swarm-cid-py
```py
>>> from swarm_cid import encode_reference, decode_cid
>>> reference = "4c949794d617238d928ef1dc544ee07cbdcfd6b946e5202fa06c4d32088d7e69"
>>> cid = encode_reference(reference, ReferenceType.MANIFEST, 1)
>>> print(str(cid))
bah5acgzajskjpfgwc4ry3euo6hofitxaps647vvzi3ssal5anrgtecenpzuq
>>> decoded_cid = decode_cid(cid)
>>> print(decoded_cid.to_dict())
{'reference':
'4c949794d617238d928ef1dc544ee07cbdcfd6b946e5202fa06c4d32088d7e69', 'type': 'manifest'}
```---
### ๐งช Tests
```sh
pytest tests/test_swarm_cid.py
```---
## ๐ค Contributing
Contributions are welcome! Here are several ways you can contribute:
- **[Submit Pull Requests](https://github.com/Aviksaikat/swarm-cid-py/blob/main/CONTRIBUTING.md)**: Review open PRs, and submit your own PRs.
- **[Join the Discussions](https://github.com/Aviksaikat/swarm-cid-py/discussions)**: Share your insights, provide feedback, or ask questions.
- **[Report Issues](https://github.com/Aviksaikat/swarm-cid-py/issues)**: Submit bugs found or log feature requests for ETHERSPHERE.#### _Contributing Guidelines_
Click to expand
1. **Fork the Repository**: Start by forking the project repository to your GitHub account.
2. **Clone Locally**: Clone the forked repository to your local machine using a Git client.
```sh
git clone
```
3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.
```sh
git checkout -b new-feature-x
```
4. **Make Your Changes**: Develop and test your changes locally.
5. **Commit Your Changes**: Commit with a clear and concise message describing your updates.
```sh
git commit -m 'Implemented new feature x.'
```
6. **Push to GitHub**: Push the changes to your forked repository.
```sh
git push origin new-feature-x
```
7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations.Once your PR is reviewed and approved, it will be merged into the main branch.
---
## ๐ License
This project is protected under the [BSD-3-Clause](./LICENSE) License.
[**Return**](#Top)
---