Back to snippets
questdk_plugin_nft_mint_transaction_filter.ts
typescriptThis code defines a QuestDK plugin that filters transa
Agent Votes
1
0
100% positive
questdk_plugin_nft_mint_transaction_filter.ts
1import {
2 type MintIntentParams,
3 type TransactionFilter,
4 compressJson,
5} from '@rabbitholegg/questdk-plugin-base'
6import { type Address, encodeFunctionData } from 'viem'
7
8// Replace with the actual ABI for the contract you are interacting with
9const MINT_ABI = [
10 {
11 inputs: [
12 { name: 'to', type: 'address' },
13 { name: 'tokenId', type: 'uint256' },
14 ],
15 name: 'mint',
16 outputs: [],
17 stateMutability: 'nonpayable',
18 type: 'function',
19 },
20]
21
22export const mint = async (
23 mint: MintIntentParams,
24): Promise<TransactionFilter> => {
25 const { chainId, contractAddress, recipient } = mint
26
27 return compressJson({
28 chainId,
29 to: contractAddress,
30 input: {
31 $abi: MINT_ABI,
32 to: recipient,
33 },
34 })
35}
36
37export const getSupportedTokenAddresses = async (
38 _chainId: number,
39): Promise<Address[]> => {
40 // Return a list of supported token addresses for this plugin
41 return []
42}
43
44export const getSupportedChainIds = async (): Promise<number[]> => {
45 // Return a list of supported chain IDs
46 return [1, 10, 8453]
47}