@niftykit/redeemable 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,3 +19,66 @@ yarn add @niftykit/redeemable
|
|
|
19
19
|
```html
|
|
20
20
|
<script async src='https://unpkg.com/@niftykit/redeemable/dist/umd/index.js'></script>
|
|
21
21
|
```
|
|
22
|
+
|
|
23
|
+
## How to use
|
|
24
|
+
|
|
25
|
+
Ensure you have your redeemable `tokenId` and your `signature`. Once you generate your redeemable link from NiiftyKit, you can get these values from your URL.
|
|
26
|
+
|
|
27
|
+
Example URL:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
https://app.niftykit.com/collections/your-collection/redeemables/1/0x5f635ae4051272d477a6ebbcdfd32d2d55a300004512c01873315194d853f15b29087799de88530240a0a0f17f5e9f8d6881b4b248ebc83c06ce7c33b9ef01971b
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
In this case the `tokenId` is `1` and the signature is `0x5f635ae4051272d477a6ebbcdfd32d2d55a300004512c01873315194d853f15b29087799de88530240a0a0f17f5e9f8d6881b4b248ebc83c06ce7c33b9ef01971b`.
|
|
34
|
+
|
|
35
|
+
> Note: if you re-generate your redeemable link, you will get a new `signature` and need to update your code.
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// using ethers.js
|
|
39
|
+
import { ethers } from 'ethers';
|
|
40
|
+
|
|
41
|
+
const provider = new ethers.providers.Web3Provider(window.ethereum, 'any');
|
|
42
|
+
await provider.send('eth_requestAccounts', []);
|
|
43
|
+
const signer = provider.getSigner();
|
|
44
|
+
|
|
45
|
+
const tokenId = 1;
|
|
46
|
+
const signature = '0x5f635ae4051272d477a6ebbcdfd32d2d55a300004512c01873315194d853f15b29087799de88530240a0a0f17f5e9f8d6881b4b248ebc83c06ce7c33b9ef01971b';
|
|
47
|
+
|
|
48
|
+
const drop = await Redeemable.create(signer, contractAddress);
|
|
49
|
+
|
|
50
|
+
// get NFT
|
|
51
|
+
const nft = await drop.getRedeemable(tokenId);
|
|
52
|
+
|
|
53
|
+
// redeem 1 NFT
|
|
54
|
+
const trx = await drop.redeem(tokenId, 1, signature);
|
|
55
|
+
await trx.wait();
|
|
56
|
+
|
|
57
|
+
// burn NFT
|
|
58
|
+
await drop.burn(tokenId);
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## API
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
class Redeemable {
|
|
66
|
+
static create(signerOrProvider: Signer | Provider, contractAddress: string): Promise<Redeemable | null>;
|
|
67
|
+
getRedeemable(tokenId: number): Promise<RedeemableData>;
|
|
68
|
+
redeem(tokenId: number, quantity: number, signature: string): Promise<ContractTransaction>;
|
|
69
|
+
burn(tokenId: number): Promise<ContractTransaction>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface RedeemableData {
|
|
73
|
+
index: number;
|
|
74
|
+
tokenURI: string;
|
|
75
|
+
price: ethers.BigNumber;
|
|
76
|
+
maxAmount: number;
|
|
77
|
+
maxPerWallet: number;
|
|
78
|
+
maxPerMint: number;
|
|
79
|
+
redeemedCount: number;
|
|
80
|
+
merkleRoot: string;
|
|
81
|
+
active: boolean;
|
|
82
|
+
nonce: ethers.BigNumber;
|
|
83
|
+
}
|
|
84
|
+
```
|