Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge to main #59

Merged
merged 109 commits into from
Oct 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
e976e23
✨ Start the log transactions useCase
wjuniorbh92 Aug 15, 2023
264c4b5
🗃️ Fix the migration
wjuniorbh92 Aug 15, 2023
601dec8
🎨 Improve the sql struct
wjuniorbh92 Aug 17, 2023
4f01940
🐛 Fix the sponsor
wjuniorbh92 Aug 17, 2023
67aa9f9
feat: init dashboards
lucasmagnus Aug 18, 2023
cf09335
📝 Update Docs
wjuniorbh92 Aug 18, 2023
4bc42a5
🎨
wjuniorbh92 Aug 18, 2023
3e52c69
feat: refactor asset sizes
lucasmagnus Aug 18, 2023
5172bc1
chore: update git submodules urls
monteiro-alan Aug 19, 2023
70b8e18
Merge pull request #48 from CheesecakeLabs/chore/update_submodule_url…
monteiro-alan Aug 21, 2023
ac20201
Merge branch 'dev' into log_transactions
wjuniorbh92 Aug 21, 2023
1838564
fix border radius menu
lucasmagnus Aug 21, 2023
d631cdf
feat: change soroban cod
lucasmagnus Aug 21, 2023
1abb3b6
Merge pull request #49 from CheesecakeLabs/feat_change_soroban_cod
lucasmagnus Aug 21, 2023
47dff76
🚀 Add the new error log
wjuniorbh92 Aug 21, 2023
42b0b1b
Merge remote-tracking branch 'origin/dev' into feat_dashboards
lucasmagnus Aug 22, 2023
6ca4da0
♻️ Refactor the error function
wjuniorbh92 Aug 22, 2023
7190f6a
Merge pull request #50 from CheesecakeLabs/fix-token-factory-error-co…
wjuniorbh92 Aug 22, 2023
8345a36
feat: asset dashboard chart
lucasmagnus Aug 22, 2023
d4c322e
feat: distribute chart
lucasmagnus Aug 22, 2023
a41d571
feat: brazil flag
lucasmagnus Aug 22, 2023
de79c3d
fix asset home chart
lucasmagnus Aug 23, 2023
58cad69
Merge branch 'dev' into log_transactions
wjuniorbh92 Aug 23, 2023
fb91893
fix dark mode
lucasmagnus Aug 23, 2023
47665e3
fix: edit vault dark mode
lucasmagnus Aug 23, 2023
756d2ac
🐛 Fix the query params
wjuniorbh92 Aug 23, 2023
8670ad3
♻️ Add the TransactionType
wjuniorbh92 Aug 23, 2023
e2dfdf6
feat: quantity of transactions
lucasmagnus Aug 23, 2023
cf4fd71
Merge remote-tracking branch 'origin/log_transactions' into log_trans…
lucasmagnus Aug 23, 2023
98c0bd4
📝 Improved the swag
wjuniorbh92 Aug 23, 2023
72555ea
fix: quantity transactions
lucasmagnus Aug 23, 2023
08f96d4
feat: chart periods
lucasmagnus Aug 23, 2023
abdb25e
Merge remote-tracking branch 'origin/log_transactions' into log_trans…
lucasmagnus Aug 23, 2023
81bce47
Merge pull request #33 from CheesecakeLabs/log_transactions
lucasmagnus Aug 23, 2023
6f1b2fa
fix: update mint chart
lucasmagnus Aug 23, 2023
d256d8d
feat: payments history nav
lucasmagnus Aug 24, 2023
79bf3b1
Merge pull request #52 from CheesecakeLabs/feat_dashboards
lucasmagnus Aug 25, 2023
042c0a8
feat: create settings permissions
lucasmagnus Aug 27, 2023
578880c
fix: asset dashboard empty
lucasmagnus Aug 27, 2023
a160176
feat: roles manage
lucasmagnus Aug 29, 2023
c1befc4
feat: manage assets permissions
lucasmagnus Aug 30, 2023
ebcad87
feat: vaults permissions
lucasmagnus Aug 31, 2023
eade99f
Merge branch 'fix_asset_dashboard_empty' into feat_manage_permissions
lucasmagnus Aug 31, 2023
e47d74d
✨ Add the Asset Image
wjuniorbh92 Sep 4, 2023
6d2aa81
feat: manage permissions
lucasmagnus Sep 5, 2023
978ecdb
feat: sdf changes
lucasmagnus Sep 5, 2023
ecd743e
feat: update mocks
lucasmagnus Sep 5, 2023
f1fafd2
fix: update operations
lucasmagnus Sep 5, 2023
55433ca
feat: fix update permissions
lucasmagnus Sep 5, 2023
27f3f00
Merge pull request #56 from CheesecakeLabs/feat_permission_manage_bac…
lucasmagnus Sep 6, 2023
9c134f3
feat: format number inputs
lucasmagnus Sep 7, 2023
f02afe8
fix frozen accounts
lucasmagnus Sep 7, 2023
0939df2
feat: supply chart
lucasmagnus Sep 11, 2023
ec12d69
Merge pull request #55 from CheesecakeLabs/feat_manage_permissions
lucasmagnus Sep 11, 2023
0fd96fb
feat: change vault status list
lucasmagnus Sep 11, 2023
9b05a45
feat: top holders
lucasmagnus Sep 12, 2023
df9eccc
fix top holders
lucasmagnus Sep 12, 2023
531cd08
♻️ Add the log_transcation supply
wjuniorbh92 Sep 13, 2023
3a488aa
feat: smart contracts update
lucasmagnus Sep 13, 2023
3c84ca1
feat: holders chart
lucasmagnus Sep 14, 2023
b329aa5
fix supply float
lucasmagnus Sep 14, 2023
1f10214
Merge remote-tracking branch 'origin/dev' into feat_supply_chart
lucasmagnus Sep 14, 2023
38ba734
feat: refact permissions
lucasmagnus Sep 14, 2023
0edbf65
design fixes
lucasmagnus Sep 14, 2023
73c4836
feat: supply chart
lucasmagnus Sep 15, 2023
c34d53b
feat: change limit latest transactions
lucasmagnus Sep 15, 2023
4c4e563
feat: remove limit last transactions
lucasmagnus Sep 15, 2023
e4777f2
feat: delete log transaction wrong
lucasmagnus Sep 15, 2023
6bacbf5
fix: save log transaction with error
lucasmagnus Sep 15, 2023
80109e4
fix: remove log transaction 181
lucasmagnus Sep 15, 2023
7744101
feat: chart supply
lucasmagnus Sep 15, 2023
ca40752
feat: names changes
lucasmagnus Sep 15, 2023
f98f80e
fix dashboard width
lucasmagnus Sep 15, 2023
cd23339
asset code top holders
lucasmagnus Sep 15, 2023
67820ad
fix main vault supply
lucasmagnus Sep 15, 2023
fcc59ca
fix decimals operation
lucasmagnus Sep 18, 2023
259e042
feat: home page video
lucasmagnus Sep 19, 2023
df31326
feat: tooltips
lucasmagnus Sep 22, 2023
29fc9c8
feat: format name
lucasmagnus Sep 22, 2023
9bc7be7
feat: admin role
lucasmagnus Sep 22, 2023
480f381
feat: add root path
lucasmagnus Sep 22, 2023
ccd5023
fix routes
lucasmagnus Sep 22, 2023
b97d172
feat: fix route
lucasmagnus Sep 22, 2023
ae39190
fix home videos
lucasmagnus Sep 25, 2023
b3ba446
fix reponsive dashboards
lucasmagnus Sep 25, 2023
7ba59fd
fix responsive admin
lucasmagnus Sep 25, 2023
687e9cb
change package.json
lucasmagnus Sep 25, 2023
fab71a2
ci(frontend): add PUBLIC_URL environment variable
monteiro-alan Sep 25, 2023
744db3c
remove homepage
lucasmagnus Sep 25, 2023
d4f05b1
Merge remote-tracking branch 'origin/feat_home_page' into feat_home_page
lucasmagnus Sep 25, 2023
cb10df3
ci(frontend): add REACT_APP_PUBLIC_URL environment variable
monteiro-alan Sep 25, 2023
6d8c530
remove basename
lucasmagnus Sep 25, 2023
5c2f041
add basename
lucasmagnus Sep 25, 2023
725b7e9
chore(frontend): add mkdir and mv to frontend build
monteiro-alan Sep 25, 2023
db4d359
feat: responsive forge token
lucasmagnus Sep 26, 2023
58a9c27
fix scroll
lucasmagnus Sep 26, 2023
5f1ad3b
Merge remote-tracking branch 'origin/feat_home_page' into feat_home_page
lucasmagnus Sep 26, 2023
a6dd7a0
fix login expired
lucasmagnus Sep 27, 2023
aefc966
fix sign out
lucasmagnus Sep 27, 2023
03fb0dc
Merge pull request #57 from CheesecakeLabs/feat_supply_chart
lucasmagnus Sep 28, 2023
18b0cbe
Merge branch 'dev' into add_asset_image
wjuniorbh92 Sep 28, 2023
b0ef274
Fix: Change the migration number
wjuniorbh92 Sep 28, 2023
1c15cc1
Docs: Generate new swag
wjuniorbh92 Sep 28, 2023
590df7b
Mocks: new Mock interface
wjuniorbh92 Sep 28, 2023
0490cab
Merge pull request #58 from CheesecakeLabs/feat_home_page
lucasmagnus Oct 2, 2023
597f39a
Merge remote-tracking branch 'origin/dev' into add_asset_image
lucasmagnus Oct 2, 2023
c6436fe
fix insert image field
lucasmagnus Oct 5, 2023
402856a
Merge pull request #54 from CheesecakeLabs/add_asset_image
lucasmagnus Oct 10, 2023
f4b47c8
update README.md
lucasmagnus Oct 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/frontend-cicd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ jobs:
build-args: |
REACT_APP_API_URL=${{ vars.REACT_APP_API_URL }}
REACT_APP_SENTRY_DSN=${{ secrets.REACT_APP_SENTRY_DSN }}
REACT_APP_PUBLIC_URL=${{ vars.REACT_APP_PUBLIC_URL }}
outputs: type=docker,dest=/tmp/docker_image.tar

- name: Upload artifact
Expand Down
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[submodule "stellar-kms"]
path = stellar-kms
url = https://github.com/CheesecakeLabs/stellar-kms
url = git@github.com:CheesecakeLabs/stellar-kms.git
[submodule "starlabs"]
path = starlabs
url = https://github.com/CheesecakeLabs/starlabs
url = git@github.com:CheesecakeLabs/starlabs.git
227 changes: 226 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,226 @@
# token-factory-v2
<!-- PROJECT LOGO -->
<br />
<p align="center">
<img width="50%" src="https://images.sympla.com.br/5d11137d98ce3.png" alt="Logo">
</p>

# Stellar Asset Sandbox

Brought to you by Cheesecake Labs and proudly supported by the Stellar
Development Foundation, this sandbox is your gateway to
enterprise-grade token management. Dive deep into the core
functionalities of the Stellar network, specifically tailored for
asset issuance.


Stellar Asset Sandbox is composed by:
- [Postgres](https://www.postgresql.org/): relational database
- [Apache Kafka](https://kafka.apache.org/): Distributed event store
- [UI for Apache Kafka](https://github.com/provectus/kafka-ui): open-source web UI to monitor and manage Apache Kafka clusters
- [Frontend](./frontend/): Frontend service - React Web application
- [Backend](./backend/): Backend service - Go
- [Starlabs](./starlabs/): Starlabs service (git submodule) - Go
- [KMS](./stellar-kms/): Stellar KMS service (git sobmodule) - Go

# Topics

- [Getting started](#getting-started)
- [Requirements](#requirements)
- [Docker Desktop Recommendations](#docker-desktop-recommendations)
- [Git Submodules](#git-submodules)
- [Running application locally](#running-application-locally)
- [Features](#features)
- [Role-based Access and Custody](#role-based-access-and-custody)
- [Token Management in the Sandbox](#token-management-in-the-sandbox)
- [Treasury Management in the Sandbox](#treasury-management-in-the-Sandbox)
- [Dashboards: Insights at Your Fingertips](#dashboards-insights-at-your-fingertips)
- [Role-based Access and Custody](#role-based-access-and-custody)
- [Soroban: The Next Evolution (Coming Soon)](#soroban-the-next-evolution-coming-soon)

# Getting started

## Requirements

- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- [Make](https://formulae.brew.sh/formula/make)

## Docker Desktop Recommendations

To run this project, there are some recommendations about the Docker Desktop resources configuration. You can find how to edit the resources settings [here](https://docs.docker.com/desktop/settings/mac/#resources).
* CPUs: 4
* Memory: 8GB

## Git Submodules

This project is using Git Submodules, that allow to keep a Git repository as a subdirectory of another Git repository. Currently, there is one submodule used in this project:
* [Starlabs](./starlabs/)
* [Stellar-KMS](./stellar-kms/)

### Pull

```bash
git submodule init
git submodule update
```

### Upgrade to latest version

```bash
git submodule update --remote
git add .
git commit -m "Upgrade to latest version"
```

### Upgrade to specific version

```bash
cd packages/starlabs
git checkout <version>
git add .
git commit -m "Upgrade to specific version"
```

## Running application locally

To start all the applications locally, follow these steps:

**1.** To change and override pre-defined environment variables, you can create a `.env` file in the `KEY=VALUE` pair format in the `backend` directory, so Docker can pass these environment variables to the running applications. Check the `.env.example` to see available environment variables.

**2.** Build and up the `Starlabs`, `KMS`, and `Postgresql` from the dockerfile in the project root folder:

```bash
$ docker-compose -f dev.docker-compose.yml --profile starlabs build
$ docker-compose -f dev.docker-compose.yml --profile starlabs up
```

**3.** Run the backend from the `backend` folder:
```bash
$ go run .
```

**4.** Run the frontend from the `frontend` folder:

```bash
$ make start_dev
```

**5.** Create the sponsor wallet (This must be the first wallet created in the database, necessarily with ID 1):

```bash
$ POST http://127.0.0.1:8080/v1/wallets
$ Body:
{
"type" : "sponsor"
}
```

**6.** Fund the sponsor wallet:

```bash
$ POST http://127.0.0.1:8080/v1/wallets/fund
$ Body:
{
"id" : 1
}
```

## Features

## Role-based Access and Custody

The Stellar Asset Issuance Sandbox automates the management of all
accounts and wallets involved in the process of asset creation and
treasury management. Users register with their email addresses and are
granted access to specific platform features based on their assigned
roles and permissions.

<b>Admins</b>: Have the authority to customize permissions and create new roles to fit different operational needs.

<b>Default Roles</b>: The platform comes with predefined roles such as Asset Manager and Treasurer, each with its set of permissions.

This role-based system is designed to demonstrate the various operational structures an asset issuance platform can adopt, serving as an educational example for enterprise solutions.

## Token Management in the Sandbox

The Stellar Asset Issuance Sandbox provides a comprehensive suite of
tools for token management, allowing Asset Managers to tailor tokens
to specific needs and operational structures:

<b>Token Creation</b>: Design tokens with distinct profiles and
characteristics, ensuring they align with your business objectives or
experimental goals.

<b>Supply Management</b>: Adjust the supply of your tokens with ease,
whether you need to mint new tokens or burn existing ones.

<b>Distribution</b>: Seamlessly distribute tokens to vaults within the
platform or to external Stellar accounts, facilitating a wide range of
transactional scenarios.

<b>Access Control</b>: Manage who can access and interact with your
tokens. Define and enforce permissions, ensuring that only authorized
entities can perform specific actions.

With these features, the sandbox offers a hands-on experience in
managing tokens on the Stellar network, demonstrating the flexibility
and potential of the platform.

## Treasury Management in the Sandbox
The Stellar Asset Issuance Sandbox introduces a robust treasury
management system, empowering treasurers with the tools they need to
efficiently handle assets:

<b>Vault Creation</b>: Treasurers can establish vaults, which serve as
abstract representations of Stellar accounts within the platform.

<b>Token Allocation</b>: Define which tokens a vault can hold,
ensuring compatibility and alignment with operational needs.

<b>Fund Transfers</b>: Vaults have the capability to send and receive
funds, facilitating transactions both with other vaults on the
platform and with external Stellar accounts.

<b>Transaction History</b>: Every transaction made by a vault is
meticulously recorded. Treasurers can easily track and review the
history of transactions, ensuring transparency and accountability.
Through these features, the sandbox provides a practical understanding
of how treasuries can be managed on the Stellar network, showcasing
the network's adaptability for diverse financial operations.

## Dashboards: Insights at Your Fingertips

The Stellar Asset Issuance Sandbox equips users with comprehensive
dashboards that illuminate both the overarching activity within the
platform and the intricate details of individual tokens.

Gain a bird's-eye view with insights into the overall transactions and
usage of the sandbox. These visual representations capture trends,
peaks, and patterns in asset transactions, offering a snapshot of the
broader dynamics at play. For those seeking a deeper dive, the
platform provides asset-specific charts that shed light on the
performance and utilization of each token created within the sandbox.
Users can explore metrics such as transaction volume, top holders, and
the current supply of each token, tracking any mints or burns to
understand supply dynamics over time.

With the Stellar Asset Issuance Sandbox dashboards, users are
empowered to make informed decisions, monitor the repercussions of
their actions, and delve into the Stellar network's prowess in asset management.

## Soroban: The Next Evolution (Coming Soon)

Prepare to unlock a new dimension of possibilities with the Stellar
network. We're excited to announce that the Stellar Asset Issuance
Sandbox will soon integrate features powered by Soroban, Stellar's
upcoming smart contracts platform.

Soroban promises to revolutionize the Stellar ecosystem by introducing
enhanced programmability, paving the way for more intricate and
diverse use cases to be constructed. With this integration, users will
be able to explore and experiment with the advanced functionalities
that smart contracts bring to the table, further expanding the
horizons of what's achievable on the Stellar network.

Stay tuned for this transformative update, as we continue our
commitment to providing the best educational and experimental platform
for Stellar enthusiasts and professionals alike.
Loading