Başlarken

Hızlı Başlangıç

Birkaç dakikada Ivy zincirinden veri okumaya başla (viem örnekleriyle).


Bu rehber, birkaç dakikada Ivy zincirinden veri okumanı sağlar. Örneklerde viem kullanıyoruz; ethers veya wagmi ile de aynı işlemleri yapabilirsin.

#1. Kurulum

npm install viem

#2. Public client oluştur

Kaia mainnet'e bağlanan bir okuma istemcisi:

import {createPublicClient, http, defineChain} from "viem";

export const kaia = defineChain({
  id: 8217,
  name: "Kaia",
  nativeCurrency: {decimals: 18, name: "Kaia", symbol: "KAIA"},
  rpcUrls: {default: {http: ["https://public-en.node.kaia.io"]}},
  blockExplorers: {default: {name: "Kaiascan", url: "https://kaiascan.io"}},
});

export const client = createPublicClient({chain: kaia, transport: http()});

#3. Bir cüzdanın Ivy kimliğini oku

Her kullanıcının bir ivyId'si vardır (ERC-721 token id). Cüzdandan ivyId'ye:

const IVY_REGISTRY = "0x43522E0aB410246C014359B7F5c55F7a196dddFc";

const ivyId = await client.readContract({
  address: IVY_REGISTRY,
  abi: [{
    type: "function",
    name: "ivyIdOf",
    stateMutability: "view",
    inputs: [{name: "wallet", type: "address"}],
    outputs: [{type: "uint256"}],
  }],
  functionName: "ivyIdOf",
  args: ["0x0000000000000000000000000000000000000000"], // kullanıcı cüzdanı
});

// ivyId === 0n ise bu cüzdanın Ivy hesabı yoktur.
console.log("ivyId:", ivyId);

#4. Profili oku

const profile = await client.readContract({
  address: IVY_REGISTRY,
  abi: [{
    type: "function",
    name: "profileOf",
    stateMutability: "view",
    inputs: [{name: "ivyId", type: "uint256"}],
    outputs: [{
      type: "tuple",
      components: [
        {name: "ivyId", type: "uint256"},
        {name: "wallet", type: "address"},
        {name: "displayName", type: "string"},
        {name: "verified", type: "bool"},
        {name: "referrerIvyId", type: "uint256"},
        {name: "activeUsernameTokenId", type: "uint256"},
        {name: "lastUsernameChange", type: "uint256"},
        {name: "createdAt", type: "uint256"},
      ],
    }],
  }],
  functionName: "profileOf",
  args: [ivyId],
});

console.log(profile.displayName, profile.verified);

#Sırada

Takıldığın bir yer mi var?

Teknik destek, entegrasyon ve ortaklık için ekibe ulaş: info@ivy.live