@yoroi/claim
Version:
The Claim (proof-of-onboarding) package of Yoroi SDK
83 lines (56 loc) • 3.45 kB
Markdown
# /claim
## Overview
The `/claim` is a utility package designed to handle token claims on the Cardano blockchain, following the CIP-99 (Cardano Improvement Proposal 99) standard for Proof of Ownership (POO) in decentralized token claiming. It provides an API for managing claim requests and responses, including error handling, token synchronization, and status management for claims.
The package works seamlessly with the Yoroi ecosystem and interacts with the Cardano blockchain to allow users to claim various tokens (both native and NFT) and manage their status in real-time.
## Features
Claim Token Handling: Process token claims for native assets, NFTs, and Lovelace based on claim responses.
Status Management: Handles multiple claim statuses such as `accepted`, `queued`, and `claimed`.
Error Handling: Provides detailed error messages and error handling based on claim API responses.
Token Synchronization: Synchronizes tokens with external sources to ensure the correct token information is used while displaying claims.
Support for [CIP-99](https://cips.cardano.org/cip/CIP-0099): Follows the Cardano Improvement Proposal 99 standard for Proof of Ownership (POO), enabling secure and decentralized token claims.
## Installation
To install the package, you can use npm or yarn:
```bash
npm install /claim
```
or
```bash
yarn add /claim
```
## Peer Dependencies
This package works alongside other `` modules, such as `/portfolio` and `@yoroi/types`. Ensure these dependencies are installed in your project:
```bash
npm install /{portfolio,types}
```
## Usage
Creating a Claim Manager
The main utility of this package is the `claimManagerMaker` function. This function sets up a claim manager that can be used to request tokens to be claimed and sent to a specified Cardano address.
The `claimManagerMaker` requires the following inputs:
- `address`: The Cardano address where the claimed tokens should be sent.
- `primaryTokenInfo`: Information about the primary token (e.g., Lovelace) being claimed.
- `tokenManager`: A token manager responsible for handling the synchronization and management of token data, please check on `/portfolio`
- `deps`: Optional dependency injection, providing a request function for interacting with the API.
```typescript
import {claimManagerMaker} from '/claim'
import {tokenMocks} from '/portfolio'
import {Portfolio} from '/types'
import {fetchData} from '/common'
import {tokenManager, primaryTokenInfo} from '../your-code'
const claimManagerOptions = {
address: 'addr1q...xyz', // Address where the tokens should be sent
primaryTokenInfo,
tokenManager,
}
// Create a claim manager
const claimManager = claimManagerMaker(claimManagerOptions)
// Now you can use `claimManager.claimTokens()` to process a claim based on a Scan.ActionClain
const claimAction: Scan.ActionClaim = {
action: 'claim',
code: 'claim_code',
params: {someParam: 'value'},
url: 'https://api.example.com/claim',
}
claimManager.claimTokens(claimAction)
```
## Warning
This package will be interacting with an external API during the token claim process. Specifically, a scan action will trigger it and by providing the URL that will be hit during claim process. Be cautious when using this feature in production environments. Ensure that you are aware of the API's reliability, security, and any associated rate limits or costs.