ప్రధాన కంటెంట్‌కు దాటవేయి
Change page

స్మార్ట్ కాంట్రాక్ట్‌లతో ఇంటరాక్ట్ అవ్వడం

మీరు ఎల్లప్పుడూ మీ స్వంత స్మార్ట్ కాంట్రాక్ట్‌ను వ్రాసి డిప్లాయ్ చేయాల్సిన అవసరం లేదు. డెవలపర్‌గా చాలా సమయాల్లో, ఇతరులు ఇప్పటికే ఎథీరియం నెట్‌వర్క్‌లో డిప్లాయ్ చేసిన స్మార్ట్ కాంట్రాక్ట్‌లతో మీరు ఇంటరాక్ట్ అవ్వాలనుకుంటారు.

ఈ పేజీ స్మార్ట్ కాంట్రాక్ట్‌తో ఇంటరాక్ట్ అవ్వడానికి రెండు ప్రాథమిక మార్గాలను కవర్ చేస్తుంది—డేటాను చదవడం మరియు డేటాను వ్రాయడం—మరియు ఈ రెండింటినీ చేయడానికి మీకు అవసరమైన సాధనాలను వివరిస్తుంది.

ముందస్తు అవసరాలు

మీరు వీటిని అర్థం చేసుకోవాలి:

స్మార్ట్ కాంట్రాక్ట్‌తో ఇంటరాక్ట్ అవ్వడానికి రెండు మార్గాలు

స్మార్ట్ కాంట్రాక్ట్‌తో ఇంటరాక్ట్ అవ్వడం రెండు వర్గాలుగా విభజించబడింది:

కాంట్రాక్ట్ నుండి చదవడం

చదవడం అనేది ఒక ఉచిత ఆపరేషన్, ఇది లావాదేవీని సృష్టించదు మరియు బ్లాక్‌చైన్‌లోని ఏ స్థితిని మార్చదు.

మీరు కాంట్రాక్ట్ నుండి చదివినప్పుడు, మీరు ఇప్పటికే ఉన్న డేటాను కేవలం క్వెరీ చేస్తున్నారు. ఉదాహరణకు:

  • ERC-20 టోకెన్ బ్యాలెన్స్‌ని తనిఖీ చేయడం
  • వికేంద్రీకృత ఎక్స్ఛేంజ్ నుండి ప్రస్తుత ధరను చదవడం
  • NFT యజమానిని పొందడం

చదవడం అనేది స్థితిని సవరించదు కాబట్టి, వాటికి గ్యాస్ ఖర్చు ఉండదు మరియు ETH అవసరం లేకుండా ఎవరైనా చేయవచ్చు.

కాంట్రాక్ట్‌కు వ్రాయడం

వ్రాయడం అనేది స్థితిని మార్చే ఆపరేషన్, దీనికి లావాదేవీ అవసరం మరియు గ్యాస్ ఖర్చు అవుతుంది.

మీరు కాంట్రాక్ట్‌కు వ్రాసినప్పుడు, బ్లాక్‌చైన్ స్థితిని సవరించే ఫంక్షన్‌ను మీరు ట్రిగ్గర్ చేస్తున్నారు. ఉదాహరణకు:

  • టోకెన్‌లను బదిలీ చేయడం
  • వికేంద్రీకృత ఎక్స్ఛేంజ్‌లో టోకెన్‌లను మార్పిడి చేయడం
  • NFTని ముద్రించడం

వ్రాయడానికి ఎల్లప్పుడూ ఇవి అవసరం:

  1. గ్యాస్ కోసం తగినంత ETH ఉన్న బాహ్య యాజమాన్య ఖాతా (EOA)
  2. ఖాతా యొక్క ప్రైవేట్ కీ ద్వారా సంతకం చేయబడిన లావాదేవీ
  3. లావాదేవీ మైన్ చేయబడి, బ్లాక్‌లో చేర్చబడాలి

ఖాతా నైరూప్యతతో, స్మార్ట్ కాంట్రాక్ట్ ఖాతా కూడా వ్రాయడాన్ని ప్రారంభించగలదు మరియు వినియోగదారు తరపున చెల్లింపుదారు గ్యాస్‌ను కవర్ చేయవచ్చు—కాబట్టి ETH ఉన్న EOA ఖచ్చితంగా అవసరం లేదు.

కాంట్రాక్ట్ ABIలను అర్థం చేసుకోవడం

స్మార్ట్ కాంట్రాక్ట్‌తో ఇంటరాక్ట్ అవ్వడానికి, కాంట్రాక్ట్ ఏమి చేయగలదో మీ అప్లికేషన్ తెలుసుకోవాలి. ఇక్కడే అప్లికేషన్ బైనరీ ఇంటర్‌ఫేస్ (ABI) వస్తుంది.

ABI అనేది ఒక JSON డాక్యుమెంట్, ఇది వీటిని వివరిస్తుంది:

  • కాంట్రాక్ట్ బహిర్గతం చేసే ప్రతి ఫంక్షన్ (పేరు, ఇన్‌పుట్‌లు, అవుట్‌పుట్‌లు)
  • కాంట్రాక్ట్ విడుదల చేయగల ప్రతి ఈవెంట్
  • కాంట్రాక్ట్‌తో మాట్లాడుతున్నప్పుడు డేటాను ఎలా ఎన్‌కోడ్ మరియు డీకోడ్ చేయాలి

ABIని కాంట్రాక్ట్ యొక్క సూచనల మాన్యువల్‌గా భావించండి—ఇది లేకుండా, ఏ ఫంక్షన్‌లు ఉన్నాయో లేదా అవి ఏ పారామితులను ఆశిస్తున్నాయో మీ అప్లికేషన్‌కు తెలియదు.

కాంట్రాక్ట్ యొక్క ABIని ఎక్కడ కనుగొనాలి

  • Etherscanలో ధృవీకరించబడిన కాంట్రాక్ట్‌లు - ధృవీకరించబడిన సోర్స్ కోడ్ కోసం Etherscan (కొత్త ట్యాబ్‌లో తెరవబడుతుంది) స్వయంచాలకంగా ABIని బహిర్గతం చేస్తుంది
  • డెవలపర్ నుండి - అనేక ప్రాజెక్ట్‌లు తమ డాక్యుమెంటేషన్ లేదా npm ప్యాకేజీలలో తమ ABIలను ప్రచురిస్తాయి
  • సోర్స్ నుండి రూపొందించండి - మీ వద్ద Solidity సోర్స్ కోడ్ ఉంటే, ABIని ఉత్పత్తి చేయడానికి మీరు దాన్ని కంపైల్ చేయవచ్చు

కాంట్రాక్ట్‌లతో ఇంటరాక్ట్ అవ్వడానికి సాధనాలు మరియు లైబ్రరీలు

వెబ్ యాప్, బ్యాకెండ్ లేదా స్క్రిప్ట్ నుండి కాంట్రాక్ట్‌లతో ఇంటరాక్ట్ అవ్వడానికి డెవలపర్‌లు సాధారణంగా JavaScript/TypeScript లైబ్రరీని ఉపయోగిస్తారు.

క్లయింట్ లైబ్రరీలు (JavaScript/TypeScript)

బ్యాకెండ్ లైబ్రరీలు

ఉదాహరణ: Viemతో టోకెన్ బ్యాలెన్స్‌ని చదవడం

ఉదాహరణ: ethers.jsతో లావాదేవీని పంపడం

ఈవెంట్‌లు మరియు లాగ్‌లు

ఏదైనా జరిగిందని సూచించడానికి స్మార్ట్ కాంట్రాక్ట్‌లు ఈవెంట్‌లను విడుదల చేయగలవు. రియల్ టైమ్‌లో ప్రతిస్పందించడానికి మీ అప్లికేషన్ ఈ ఈవెంట్‌లను వినగలదు.

లావాదేవీలను అనుకరించడం (సిమ్యులేట్ చేయడం)

లావాదేవీని పంపే ముందు, గ్యాస్ ఖర్చు చేయకుండా అది విజయవంతమవుతుందో లేదో తనిఖీ చేయడానికి—మరియు దాని రిటర్న్ విలువను చూడటానికి—మీరు దాన్ని అనుకరించవచ్చు (simulate). లోపాలను ముందుగానే పట్టుకోవడానికి మరియు ఫలితాలను ప్రివ్యూ చేయడానికి ఇది ఉపయోగపడుతుంది.

చాలా క్లయింట్ లైబ్రరీలు eth_call ద్వారా దీనికి మద్దతు ఇస్తాయి:

// Viem తో
const result = await client.simulateContract({
  address: contractAddress,
  abi,
  functionName: 'swap',
  args: [amountIn],
  account: userAddress,
})

వాలెట్‌లు మరియు సంతకం చేయడం

వికేంద్రీకృత అప్లికేషన్ (dapp)లో, వినియోగదారు వాలెట్ (మెటామాస్క్, Rainbow లేదా WalletConnect వంటివి) సంతకం చేయడాన్ని నిర్వహిస్తుంది. మీరు ప్రైవేట్ కీలను నేరుగా నిర్వహించరు.

వాలెట్ లైబ్రరీలు మరియు కనెక్షన్ సాధనాలు దీన్ని నైరూప్యపరుస్తాయి, తద్వారా మీరు మీ అప్లికేషన్ లాజిక్‌ను నిర్మించడంపై దృష్టి పెట్టవచ్చు.

తదుపరి పఠనం