nft-folder-blockchain-connector-besu
Version:
A NestJS-based blockchain connector that communicates with specific smart contracts from the NFT Folder project.
172 lines (135 loc) • 9.26 kB
Markdown
<a id="readme-top"></a>
[![Stars][stars-shield]][stars-url] [![Forks][forks-shield]][forks-url] [![Watchers][watchers-shield]][watchers-url]
[![Contributors][contributors-shield]][contributors-url] [![Commit Activity][commitactivity-shield]][commitactivity-url]
[![Last Commit][lastcommit-shield]][lastcommit-url] [![Issues][issues-shield]][issues-url]
[![License][license-shield]][license-url]
<br />
<div align="center">
<h2 align="center">Blockchain Connector (NFT-Folder)</h3>
<p align="center">
A NestJS-based blockchain connector for interacting with specific smart contracts from the NFT-Folder project.
<br />
<a href="https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/issues/new?labels=bug&template=bug-report---.md">🐞 Report Bug</a> ·
<a href="https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/issues/new?labels=enhancement&template=feature-request---.md">💡 Request Feature</a>
</p>
</div>
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#about-the-project">📚 About The Project</a>
<ul><li><a href="#description">📄 Description</a></li></ul>
<ul><li><a href="#documentation">📖 Documentation</a></li></ul>
<ul><li><a href="#built-with">🛠️ Built With</a></li></ul>
</li>
<li><a href="#getting-started">🚀 Getting Started</a></li>
<li>
<a href="#contributing">🤝 Contributing</a>
<ul><li><a href="#getting-involved">🌟 Getting Involved</a></li></ul>
<ul><li><a href="#top-contributors">🏆 Top Contributors</a></li></ul>
</li>
<li><a href="#license">📜 License</a></li>
<li><a href="#contact">📬 Contact</a></li>
<li><a href="#acknowledgments">🙏 Acknowledgments</a></li>
</ol>
</details>
## 📚 About The Project <a id="about-the-project"></a>
### 📄 Description <a id="description"></a>
The **NFT-Folder** project enables the tokenization, structuring and secure storage of assets as Non-Fungible Tokens
(NFTs) on the blockchain. With tamper-proof and traceable documentation of changes, NFT-Folder ensures the integrity and
authenticity of digital assets, making it a valuable tool for various industries. Key components include:
- **Blockchain Connector**: A NestJS bridge for enabling interactions between an application and the smart contracts.
- **Container Smart Contract**: Organizes and manages NFTs for each organization.
- **Segment Smart Contract**: Enables the subdivision of NFTs into logical segments within a container.
- **Token Smart Contract**: Follows the ERC-721 standard for NFTs on Ethereum, allowing for industrial tokenization of
assets by storing additional essential information, such as identifiers and fingerprints.
### 📖 Documentation <a id="documentation"></a>
A detailed documentation for the NFT-Folder project is available in this
[repository](https://github.com/fraunhofer-iml/nft-folder-documentation).
### 🛠️ Built With <a id="built-with"></a>
- [![ESLint][eslint-shield]][eslint-url] Utility for linting and enforcing code quality in JavaScript and TypeScript
- [![Ethers][ethers-shield]][ethers-url] Library for interacting with Ethereum and blockchain networks
- [![Jest][jest-shield]][jest-url] Powerful JavaScript testing framework
- [![NestJS][nestjs-shield]][nestjs-url] Node.js framework for building scalable server-side applications
- [![Node.js][nodejs-shield]][nodejs-url] JavaScript runtime built on Chrome's V8 engine for scalable applications
- [![Prettier][prettier-shield]][prettier-url] Code formatter for consistent style
- [![Swagger][swagger-shield]][swagger-url] Tools for designing and documenting APIs
- [![TypeScript][typescript-shield]][typescript-url] Strongly typed programming language that enhances JavaScript
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## 🚀 Getting Started <a id="getting-started"></a>
To set up and run the NFT-Folder locally, please consult the
[Tutorial section](https://github.com/fraunhofer-iml/nft-folder-documentation/-/blob/main/chapter12.adoc) in our
documentation. This section provides step-by-step instructions to guide you through the process of installing,
configuring and running the NFT-Folder environment on your local machine.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## 🤝 Contributing <a id="contributing"></a>
### 🌟 Getting Involved <a id="getting-involved"></a>
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any
contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also
simply open an issue with the tag "enhancement".
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/amazing-feature`)
3. Commit your Changes (`git commit -m 'feat: add some amazing-feature'`)
4. Push to the Branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
We are using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for our commit messages.
### 🏆 Top Contributors <a id="top-contributors"></a>
<a href="https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/graphs/contributors">
<img src="https://contrib.rocks/image?repo=fraunhofer-iml/nft-folder-blockchain-connector" alt="contrib.rocks image" />
</a>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## 📜 License <a id="license"></a>
Licensed under the Apache License 2.0. See `LICENSE` for details.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## 📬 Contact <a id="contact"></a>
Lukas Grieger: lukas.grieger@iml.fraunhofer.de
Michael Pichura: michael.pichura@iml.fraunhofer.de
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## 🙏 Acknowledgments <a id="acknowledgments"></a>
- [Best-README-Template](https://github.com/othneildrew/Best-README-Template) provided inspiration and structure for
creating this README file
- [Img Shields](https://shields.io) enabled the creation of customizable and visually appealing badges for this project
- [contrib.rocks](https://contrib.rocks) simplified the visualization of contributors in this project
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[stars-shield]:
https://img.shields.io/github/stars/fraunhofer-iml/nft-folder-blockchain-connector.svg?style=for-the-badge
[stars-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/stargazers
[forks-shield]:
https://img.shields.io/github/forks/fraunhofer-iml/nft-folder-blockchain-connector.svg?style=for-the-badge
[forks-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/forks
[watchers-shield]:
https://img.shields.io/github/watchers/fraunhofer-iml/nft-folder-blockchain-connector?style=for-the-badge
[watchers-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/watchers
[contributors-shield]:
https://img.shields.io/github/contributors/fraunhofer-iml/nft-folder-blockchain-connector.svg?style=for-the-badge
[contributors-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/graphs/contributors
[commitactivity-shield]:
https://img.shields.io/github/commit-activity/y/fraunhofer-iml/nft-folder-blockchain-connector?style=for-the-badge
[commitactivity-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/graphs/commit-activity
[lastcommit-shield]:
https://img.shields.io/github/last-commit/fraunhofer-iml/nft-folder-blockchain-connector?style=for-the-badge
[lastcommit-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/commits/main
[issues-shield]:
https://img.shields.io/github/issues/fraunhofer-iml/nft-folder-blockchain-connector.svg?style=for-the-badge
[issues-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/issues
[license-shield]:
https://img.shields.io/github/license/fraunhofer-iml/nft-folder-blockchain-connector.svg?style=for-the-badge
[license-url]: https://github.com/fraunhofer-iml/nft-folder-blockchain-connector/blob/main/LICENSE
[eslint-shield]: https://img.shields.io/badge/Linting-ESLint-4B32C3?style=flat&logo=eslint
[eslint-url]: https://eslint.org/
[ethers-shield]: https://img.shields.io/badge/Library-Ethers-6633FF?style=flat&logo=ethereum
[ethers-url]: https://ethers.org/
[jest-shield]: https://img.shields.io/badge/Testing-Jest-C21325?style=flat&logo=jest
[jest-url]: https://jestjs.io/
[nestjs-shield]: https://img.shields.io/badge/Framework-NestJS-E0234E?style=flat&logo=nestjs
[nestjs-url]: https://nestjs.com/
[nodejs-shield]: https://img.shields.io/badge/Runtime-Node.js-339933?style=flat&logo=node.js
[nodejs-url]: https://nodejs.org/
[prettier-shield]: https://img.shields.io/badge/Formatting-Prettier-F7B93E?style=flat&logo=prettier
[prettier-url]: https://prettier.io/
[swagger-shield]: https://img.shields.io/badge/API-Swagger-85EA2D?style=flat&logo=swagger
[swagger-url]: https://swagger.io/
[typescript-shield]: https://img.shields.io/badge/Language-TypeScript-007ACC?style=flat&logo=typescript
[typescript-url]: https://www.typescriptlang.org/