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

https://github.com/studiowebux/cardano

Cardano Libs (Tx Builder and Submit API)
https://github.com/studiowebux/cardano

cardano submit-api tx-builder wallet

Last synced: 6 months ago
JSON representation

Cardano Libs (Tx Builder and Submit API)

Awesome Lists containing this project

README

          

Cardano Libs

This library is specifically crafted for a particular use case.


Report Bug
·
Request Feature


---

## About

- **Transaction Builder:** Construct transactions with ease.
- **NFT Creation (CIP-25):** Mint Non-Fungible Tokens using CIP-25 standard.
- **Fungible Token Creation:** Create and manage Fungible Tokens.
- **Royalties Setup (CIP-27):** Implement royalties for tokens using CIP-27.
- **CIP-86 Initialization:** Partial implementation of CIP-86.
- **Add transaction metadata (CIP-20):** Add custom message to the transaction.
- **Quick Wallet Generation:** Create new wallets swiftly.
- **Utilities:** Includes helpful utilities to interact with CSL and Blockfrost API.
- **Examples & Tests:** Provides ample examples and tests for better understanding and debugging.
- **Cross-Environment Compatibility:** Functions smoothly across all Cardano environments, from local testnets to the mainnet.
- **Submit API Usage:** Utilizes Cardano Submit API for transaction submission.
- **Utxo Fetching:** Retrieves UTXOs using Blockfrost API (Might bring back DB Sync query).
- **Policy Creation:** Allows creating new policies.
- **Send ADA:** Send a specified amount of ada to a recipient.
- **CIP-8**. Expose a function and documentation to setup an authentication flow using cardano wallet.

### TODO

- [ ] Finish CIP-86. (https://cips.cardano.org/cip/CIP-86)
- [ ] Receive UTXO from client wallet.
- [ ] Configure cardano network (Currently the example are hardcoded).
- [ ] Simplify the CIP/JSON Metadata format and inputs.
- [ ] Fix if possible the Multi Assets, Lock ADA and group to minimize locked ADA.
- [ ] Document the wallet variables and where to use what
- [ ] Add dummy check for the metadata (64 chars or less and required keys).
- [ ] Read the DB Sync query to get the UTXOs.
- [-] Simplify, rename and JSDoc the whole codebase.
- [x] Normalize the asset_name (hex and standard) also with the blockfrost format,
the user can put a normal string and the code will adjust.
- [x] Rename the receiver_address variable to use something more intuitive.
- [x] Normalize number input and casting all at the same place
- [x] Implement ApiError everywhere

---

## Installation and Usage

1. Install deno: https://deno.com
2. `deno add @studiowebux/cardano`
3. Local Cardano Node: https://github.com/studiowebux/cardano-private-node
4. Cardano Indexer: https://github.com/studiowebux/cardano-indexer

see `__tests__/*.test.ts` and `examples/` for examples.

---

### Releases and Github Actions

```bash
git tag -a X.Y.Z -m "Version X.Y.Z"
git push origin tags/X.Y.Z
```

---

## Contributing

1. Fork the project
2. Create a Feature Branch
3. Commit your changes
4. Push your changes
5. Create a PR

Working with your local branch

**Branch Checkout:**

```bash
git checkout -b /prefix-name
```

> Your branch name must starts with [feature|fix|release|chore|hotfix] and use a / before the name;
> Use hyphens as separator;
> The prefix correspond to your Kanban tool id (e.g. abc-123)

**Keep your branch synced:**

```bash
git fetch origin
git rebase origin/master
```

**Commit your changes:**

```bash
git add .
git commit -m ": commit message"
```

> Follow this convention commitlint for your commit message structure

**Push your changes:**

```bash
git push origin /prefix-name
```

**Examples:**

```bash
git checkout -b release/v1.15.5
git checkout -b feature/abc-123-something-awesome
git checkout -b hotfix/abc-432-something-bad-to-fix
```

```bash
git commit -m "docs: added awesome documentation"
git commit -m "feat: added new feature"
git commit -m "test: added tests"
```

## License

Distributed under the MIT License. See LICENSE for more information.

## Contact

- Tommy Gingras @ tommy@studiowebux.com | Studio Webux


|
Buy Me A Coffee
|
Webux Logo Webux Lab
|