0.2.5 • Published 11 days ago

@rmrk-team/rmrk-hooks v0.2.5

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

@rmrk-team/rmrk-hooks

npm version

React hooks for working with RMRK EVM NFTs.


Installation

pnpm install @rmrk-team/rmrk-hooks

Usage

import React from "react";
import type {Address} from "viem";
import {
  NETWORK_CONTRACTS_PROPS,
  RMRKUtilityContracts,
} from "@rmrk-team/rmrk-evm-utils";
import {RMRKContextProvider} from "@rmrk-team/rmrk-hooks";
import {QueryClient, QueryClientProvider} from "@tanstack/react-query";
import {WagmiProvider} from "wagmi";
import {hardhat} from "wagmi/chains";

const queryClient = new QueryClient();

// You can pass custom utility contracts to the RMRKContextProvider
const customUtilityContracts = {
  [hardhat.id]: {
    [NETWORK_CONTRACTS_PROPS.RMRKEquipRenderUtils]: "0x00",
    [NETWORK_CONTRACTS_PROPS.RMRKBulkWriter]: "0x00",
    [NETWORK_CONTRACTS_PROPS.RMRKCollectionUtils]: "0x00",
    [NETWORK_CONTRACTS_PROPS.RMRKCatalogUtils]: "0x00",
  },
} satisfies RMRKUtilityContracts;

const rmrkConfig = {
  utilityContracts: customUtilityContracts,
};

export const Container = ({
   contractAddress,
   tokenId,
 }: {
  chainId: number;
  contractAddress: Address;
  tokenId: bigint;
  children: React.ReactNode;
}) => {
  return (
    <WagmiProvider config={wagmiConfig}>
      <QueryClientProvider client={queryClient}>
        <RMRKContextProvider config={rmrkConfig}>
            {children}
        </RMRKContextProvider>
      </QueryClientProvider>
    </WagmiProvider>
  );
};
import {
    useFetchIpfsMetadata,
    useGetAssetData,
    useGetComposedState,
    useGetInterfaceSupport,
} from '@rmrk-team/rmrk-hooks';

type Props = {
    contractAddress: Address;
    tokenId: bigint;
    chainId: number;
}

export const Example = ({contractAddress, tokenId, chainId}: Props) => {
    const {
        isLoading: isLoadingComposableState,
        isError: isErrorComposableState,
        error: errorComposableState,
        data: composableState,
    } = useGetComposedState(
        {
            tokenId,
            chainId,
            contractAddress,
        }
    );

    const {
        fixedPartsWithMetadatas,
        slotPartsWithMetadatas,
        equippableGroupId,
        assetMetadataUri,
        catalogAddress,
    } = composableState;
    
    console.log(composableState)
    return null;
}
export const App = () => {
    return (
        <Container>
            <Example />
        </Container>
    )   
}

Building

Publishing

License

0.2.5

11 days ago

0.2.3

11 days ago

0.2.4

11 days ago

0.2.2

14 days ago

0.2.1

20 days ago

0.2.0

2 months ago

0.1.2

2 months ago

0.1.1

2 months ago

0.1.0

2 months ago

0.0.11

2 months ago

0.0.10

3 months ago

0.0.9

3 months ago

0.0.8

3 months ago

0.0.7

3 months ago

0.0.6

3 months ago

0.0.5

4 months ago

0.0.3

4 months ago

0.0.4

4 months ago

0.0.1

4 months ago