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)
- Host: GitHub
- URL: https://github.com/studiowebux/cardano
- Owner: studiowebux
- License: mit
- Created: 2024-09-13T02:08:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-28T05:20:09.000Z (about 1 year ago)
- Last Synced: 2025-02-23T20:12:02.130Z (12 months ago)
- Topics: cardano, submit-api, tx-builder, wallet
- Language: TypeScript
- Homepage: https://jsr.io/@studiowebux/cardano
- Size: 123 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Cardano Libs
This library is specifically crafted for a particular use case.
---
## 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