Skip to content

Commit 1ceabeb

Browse files
authored
Merge pull request #18 from niftykit-inc/listeners
adds mint events
2 parents f1404be + 6755614 commit 1ceabeb

File tree

3 files changed

+68
-12
lines changed

3 files changed

+68
-12
lines changed

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,24 @@ const web3ModalProviders = {
9797
const drop = await DropKit.create('sdk-api-key-here', isDev, web3ModalProviders, provider);
9898
```
9999

100+
## Events
101+
102+
```typescript
103+
// Minted to the connected wallet
104+
drop.onMintedToWallet((...args) => {
105+
console.log(
106+
`[onMintedToWallet] TokenId: ${args[2]}, From ${args[0]}, To ${args[1]}`
107+
);
108+
});
109+
110+
// Minted from any wallet
111+
drop.onMinted((...args) => {
112+
console.log(
113+
`[onMinted] TokenId: ${args[2]}, From ${args[0]}, To ${args[1]}`
114+
);
115+
});
116+
```
117+
100118
## API
101119

102120
```typescript
@@ -117,5 +135,10 @@ class DropKit {
117135
auctionStartedAt(): Promise<number>;
118136
generateProof(): Promise<ProofApiResponse & ErrorApiResponse>;
119137
mint(quantity: number): Promise<ContractReceipt | null>;
138+
onMinted(listener: Listener): Contract;
139+
onMintedToWallet(listener: Listener): Contract;
140+
mintedToWalletListeners(): Listener[];
141+
mintedListeners(): Listener[];
142+
removeAllListeners(): Contract;
120143
}
121144
```

src/DropKit.ts

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
1+
import {
2+
JsonRpcProvider,
3+
JsonRpcSigner,
4+
Listener,
5+
Provider,
6+
Web3Provider,
7+
} from '@ethersproject/providers'
18
import axios from 'axios'
29
import { EthereumRpcError } from 'eth-rpc-errors'
310
import {
4-
ethers,
5-
Contract,
611
BigNumber,
7-
ContractTransaction,
12+
Contract,
813
ContractReceipt,
14+
ContractTransaction,
15+
ethers,
916
Signer,
1017
} from 'ethers'
18+
import Web3Modal, { IProviderOptions } from 'web3modal'
1119
import { API_ENDPOINT, API_ENDPOINT_DEV } from './config/endpoint'
20+
import { NETWORKS, ZERO_ADDRESS } from './config/networks'
21+
import { PROVIDER_OPTIONS } from './config/providers'
1222
import DropKitCollectionABI from './contracts/DropKitCollection.json'
1323
import DropKitCollectionV2ABI from './contracts/DropKitCollectionV2.json'
1424
import DropKitCollectionV3ABI from './contracts/DropKitCollectionV3.json'
@@ -18,15 +28,6 @@ import {
1828
ErrorApiResponse,
1929
ProofApiResponse,
2030
} from './types/api-responses'
21-
import Web3Modal, { IProviderOptions } from 'web3modal'
22-
import { PROVIDER_OPTIONS } from './config/providers'
23-
import {
24-
JsonRpcProvider,
25-
JsonRpcSigner,
26-
Provider,
27-
Web3Provider,
28-
} from '@ethersproject/providers'
29-
import { NETWORKS } from './config/networks'
3031

3132
const abis: Record<number, any> = {
3233
2: DropKitCollectionABI.abi,
@@ -325,6 +326,36 @@ export default class DropKit {
325326
}
326327
}
327328

329+
onMinted(listener: Listener): Contract {
330+
const filter = this.contract.filters.Transfer(ZERO_ADDRESS)
331+
return this.contract.on(filter, listener)
332+
}
333+
334+
onMintedToWallet(listener: Listener): Contract {
335+
const filter = this.contract.filters.Transfer(
336+
ZERO_ADDRESS,
337+
this.walletAddress
338+
)
339+
return this.contract.on(filter, listener)
340+
}
341+
342+
mintedToWalletListeners(): Listener[] {
343+
const filter = this.contract.filters.Transfer(
344+
ZERO_ADDRESS,
345+
this.walletAddress
346+
)
347+
return this.contract.listeners(filter)
348+
}
349+
350+
mintedListeners(): Listener[] {
351+
const filter = this.contract.filters.Transfer(ZERO_ADDRESS)
352+
return this.contract.listeners(filter)
353+
}
354+
355+
removeAllListeners(): Contract {
356+
return this.contract.removeAllListeners()
357+
}
358+
328359
private async _mint(
329360
quantity: number,
330361
amount: BigNumber

src/config/networks.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ export const NETWORKS: Record<number, Network> = {
1616
blockExplorerUrls: ['https://mumbai.polygonscan.com/'],
1717
},
1818
}
19+
20+
export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'

0 commit comments

Comments
 (0)