Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

README

        





Swarm CID

Python
Poetry

GitHub%20Actions
Pytest







Code style: black
imports: isort

GitHub license
git-last-commit
GitHub commit activity
GitHub top language

---

## ๐Ÿ“– 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)

---