---
title: "టోకెన్ ఇంటిగ్రేషన్ చెక్‌లిస్ట్"
description: "టోకెన్‌లతో ఇంటరాక్ట్ అవుతున్నప్పుడు పరిగణించవలసిన విషయాల చెక్‌లిస్ట్"
author: Trailofbits
lang: te
tags:
  - solidity
  - స్మార్ట్ కాంట్రాక్ట్‌లు
  - భద్రత
  - టోకెన్‌లు
skill: intermediate
breadcrumb: "టోకెన్ ఇంటిగ్రేషన్"
published: 2020-08-13
source: Building secure contracts
sourceUrl: https://github.com/crytic/building-secure-contracts/blob/master/development-guidelines/token_integration.md
---

ఏదైనా టోకెన్‌లతో ఇంటరాక్ట్ అవుతున్నప్పుడు ఈ చెక్‌లిస్ట్‌ను అనుసరించండి. ప్రతి అంశంతో ముడిపడి ఉన్న నష్టాలను మీరు అర్థం చేసుకున్నారని నిర్ధారించుకోండి మరియు ఈ నియమాలకు ఏవైనా మినహాయింపులు ఉంటే వాటిని సమర్థించండి.

సౌలభ్యం కోసం, అన్ని స్లిదర్ (Slither) [యుటిలిటీలను](https://github.com/crytic/slither#tools) నేరుగా టోకెన్ చిరునామాపై రన్ చేయవచ్చు, ఉదాహరణకు:

[స్లిదర్ ట్యుటోరియల్‌ని ఉపయోగించడం](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/)

```bash
slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken
```

ఈ చెక్‌లిస్ట్‌ను అనుసరించడానికి, టోకెన్ కోసం స్లిదర్ నుండి ఈ అవుట్‌పుట్‌ను మీరు కలిగి ఉండాలి:

```bash
- slither-check-erc [target] [contractName] [optional: --erc ERC_NUMBER]
- slither [target] --print human-summary
- slither [target] --print contract-summary
- slither-prop . --contract ContractName # కాన్ఫిగరేషన్, మరియు ఎకిడ్నా మరియు మాంటికోర్ ఉపయోగించడం అవసరం
```

## సాధారణ పరిగణనలు {#general-considerations}

- **కాంట్రాక్ట్‌కు భద్రతా సమీక్ష ఉంది.** భద్రతా సమీక్ష లేని కాంట్రాక్ట్‌లతో ఇంటరాక్ట్ అవ్వడాన్ని నివారించండి. అంచనా వ్యవధి (అంటే “కృషి స్థాయి”), భద్రతా సంస్థ యొక్క కీర్తి మరియు కనుగొన్న లోపాల సంఖ్య మరియు తీవ్రతను తనిఖీ చేయండి.
- **మీరు డెవలపర్‌లను సంప్రదించారు.** ఏదైనా సంఘటన గురించి మీరు వారి బృందాన్ని అప్రమత్తం చేయాల్సి రావచ్చు. [blockchain-security-contacts](https://github.com/crytic/blockchain-security-contacts) లో తగిన పరిచయాల కోసం వెతకండి.
- **క్లిష్టమైన ప్రకటనల కోసం వారికి భద్రతా మెయిలింగ్ జాబితా ఉంది.** క్లిష్టమైన సమస్యలు కనుగొనబడినప్పుడు లేదా అప్‌గ్రేడ్‌లు జరిగినప్పుడు వారి బృందం వినియోగదారులకు (మీలాంటి వారికి!) సలహా ఇవ్వాలి.

## ERC అనుగుణ్యత {#erc-conformity}

స్లిదర్ [slither-check-erc](https://github.com/crytic/slither/wiki/ERC-Conformance) అనే యుటిలిటీని కలిగి ఉంది, ఇది అనేక సంబంధిత ERC ప్రమాణాలకు టోకెన్ అనుగుణ్యతను సమీక్షిస్తుంది. వీటిని సమీక్షించడానికి slither-check-erc ని ఉపయోగించండి:

- **transfer మరియు transferFrom బూలియన్‌ను అందిస్తాయి.** అనేక టోకెన్‌లు ఈ ఫంక్షన్‌లపై బూలియన్‌ను అందించవు. ఫలితంగా, కాంట్రాక్ట్‌లో వాటి కాల్‌లు విఫలం కావచ్చు.
- **ఉపయోగిస్తే name, decimals మరియు symbol ఫంక్షన్‌లు ఉంటాయి.** ఈ ఫంక్షన్‌లు ERC-20 ప్రమాణంలో ఐచ్ఛికం మరియు ఉండకపోవచ్చు.
- **decimals uint8 ని అందిస్తుంది.** అనేక టోకెన్‌లు తప్పుగా uint256 ని అందిస్తాయి. ఇలా జరిగితే, అందించబడిన విలువ 255 కంటే తక్కువగా ఉందని నిర్ధారించుకోండి.
- **టోకెన్ తెలిసిన [ERC-20 రేస్ కండిషన్‌ను](https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729) తగ్గిస్తుంది.** దాడి చేసేవారు టోకెన్‌లను దొంగిలించకుండా నిరోధించడానికి ERC-20 ప్రమాణంలో తెలిసిన ERC-20 రేస్ కండిషన్ ఉంది, దానిని తప్పనిసరిగా తగ్గించాలి.
- **టోకెన్ ERC-777 టోకెన్ కాదు మరియు transfer మరియు transferFrom లలో ఎక్స్‌టర్నల్ ఫంక్షన్ కాల్ లేదు.** transfer ఫంక్షన్‌లలోని ఎక్స్‌టర్నల్ కాల్‌లు రీఎంట్రన్సీలకు దారితీయవచ్చు.

స్లిదర్ [slither-prop](https://github.com/crytic/slither/wiki/Property-generation) అనే యుటిలిటీని కలిగి ఉంది, ఇది అనేక సాధారణ ERC లోపాలను కనుగొనగల యూనిట్ పరీక్షలు మరియు భద్రతా లక్షణాలను రూపొందిస్తుంది. వీటిని సమీక్షించడానికి slither-prop ని ఉపయోగించండి:

- **కాంట్రాక్ట్ slither-prop నుండి అన్ని యూనిట్ పరీక్షలు మరియు భద్రతా లక్షణాలను పాస్ చేస్తుంది.** రూపొందించబడిన యూనిట్ పరీక్షలను రన్ చేయండి, ఆపై [ఎకిడ్నా](https://github.com/crytic/echidna) మరియు [మాంటికోర్](https://manticore.readthedocs.io/en/latest/verifier.html) తో లక్షణాలను తనిఖీ చేయండి.

చివరగా, స్వయంచాలకంగా గుర్తించడం కష్టంగా ఉండే కొన్ని లక్షణాలు ఉన్నాయి. ఈ పరిస్థితుల కోసం మాన్యువల్‌గా సమీక్షించండి:

- **transfer మరియు transferFrom రుసుము తీసుకోకూడదు.** ప్రతి ద్రవ్యోల్బణ (Deflationary) టోకెన్‌లు ఊహించని ప్రవర్తనకు దారితీయవచ్చు.
- **టోకెన్ నుండి సంపాదించగల సంభావ్య వడ్డీ పరిగణనలోకి తీసుకోబడుతుంది.** కొన్ని టోకెన్‌లు టోకెన్ హోల్డర్‌లకు వడ్డీని పంపిణీ చేస్తాయి. దీనిని పరిగణనలోకి తీసుకోకపోతే ఈ వడ్డీ కాంట్రాక్ట్‌లో చిక్కుకుపోవచ్చు.

## కాంట్రాక్ట్ కూర్పు {#contract-composition}

- **కాంట్రాక్ట్ అనవసరమైన సంక్లిష్టతను నివారిస్తుంది.** టోకెన్ ఒక సాధారణ కాంట్రాక్ట్ అయి ఉండాలి; సంక్లిష్టమైన కోడ్ ఉన్న టోకెన్‌కు ఉన్నత ప్రమాణాల సమీక్ష అవసరం. సంక్లిష్టమైన కోడ్‌ను గుర్తించడానికి స్లిదర్ యొక్క [human-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#human-summary) ని ఉపయోగించండి.
- **కాంట్రాక్ట్ SafeMath ని ఉపయోగిస్తుంది.** SafeMath ని ఉపయోగించని కాంట్రాక్ట్‌లకు ఉన్నత ప్రమాణాల సమీక్ష అవసరం. SafeMath వినియోగం కోసం కాంట్రాక్ట్‌ను మాన్యువల్‌గా తనిఖీ చేయండి.
- **కాంట్రాక్ట్‌లో టోకెన్‌కు సంబంధించని కొన్ని ఫంక్షన్‌లు మాత్రమే ఉన్నాయి.** టోకెన్‌కు సంబంధించని ఫంక్షన్‌లు కాంట్రాక్ట్‌లో సమస్య వచ్చే అవకాశాన్ని పెంచుతాయి. కాంట్రాక్ట్‌లో ఉపయోగించిన కోడ్‌ను విస్తృతంగా సమీక్షించడానికి స్లిదర్ యొక్క [contract-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#contract-summary) ని ఉపయోగించండి.
- **టోకెన్‌కు ఒకే చిరునామా ఉంటుంది.** బ్యాలెన్స్ అప్‌డేట్‌ల కోసం బహుళ ఎంట్రీ పాయింట్‌లను కలిగి ఉన్న టోకెన్‌లు చిరునామా ఆధారంగా అంతర్గత బుక్‌కీపింగ్‌ను విచ్ఛిన్నం చేయగలవు (ఉదా., `balances[token_address][msg.sender]` వాస్తవ బ్యాలెన్స్‌ను ప్రతిబింబించకపోవచ్చు).

## యజమాని అధికారాలు {#owner-privileges}

- **టోకెన్ అప్‌గ్రేడ్ చేయదగినది కాదు.** అప్‌గ్రేడ్ చేయగల కాంట్రాక్ట్‌లు కాలక్రమేణా వాటి నియమాలను మార్చవచ్చు. కాంట్రాక్ట్ అప్‌గ్రేడ్ చేయదగినదో కాదో తెలుసుకోవడానికి స్లిదర్ యొక్క [human-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#contract-summary) ని ఉపయోగించండి.
- **యజమానికి పరిమిత ముద్రించడం (minting) సామర్థ్యాలు ఉన్నాయి.** హానికరమైన లేదా రాజీపడిన యజమానులు ముద్రించడం సామర్థ్యాలను దుర్వినియోగం చేయవచ్చు. ముద్రించడం సామర్థ్యాలను సమీక్షించడానికి స్లిదర్ యొక్క [human-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#contract-summary) ని ఉపయోగించండి మరియు కోడ్‌ను మాన్యువల్‌గా సమీక్షించడాన్ని పరిగణించండి.
- **టోకెన్ పాజ్ చేయదగినది కాదు.** హానికరమైన లేదా రాజీపడిన యజమానులు పాజ్ చేయగల టోకెన్‌లపై ఆధారపడే కాంట్రాక్ట్‌లను ట్రాప్ చేయవచ్చు. పాజ్ చేయగల కోడ్‌ను మాన్యువల్‌గా గుర్తించండి.
- **యజమాని కాంట్రాక్ట్‌ను బ్లాక్‌లిస్ట్ చేయలేరు.** హానికరమైన లేదా రాజీపడిన యజమానులు బ్లాక్‌లిస్ట్ ఉన్న టోకెన్‌లపై ఆధారపడే కాంట్రాక్ట్‌లను ట్రాప్ చేయవచ్చు. బ్లాక్‌లిస్టింగ్ ఫీచర్‌లను మాన్యువల్‌గా గుర్తించండి.
- **టోకెన్ వెనుక ఉన్న బృందం అందరికీ తెలిసినది మరియు దుర్వినియోగానికి వారిని బాధ్యులను చేయవచ్చు.** అనామక డెవలప్‌మెంట్ బృందాలు ఉన్న లేదా చట్టపరమైన ఆశ్రయాలలో ఉన్న కాంట్రాక్ట్‌లకు ఉన్నత ప్రమాణాల సమీక్ష అవసరం.

## టోకెన్ కొరత {#token-scarcity}

టోకెన్ కొరత సమస్యల సమీక్షలకు మాన్యువల్ సమీక్ష అవసరం. ఈ పరిస్థితుల కోసం తనిఖీ చేయండి:

- **ఏ వినియోగదారుడు ఎక్కువ సరఫరాను కలిగి ఉండరు.** కొద్దిమంది వినియోగదారులు ఎక్కువ టోకెన్‌లను కలిగి ఉంటే, వారు టోకెన్ విభజన ఆధారంగా కార్యకలాపాలను ప్రభావితం చేయవచ్చు.
- **మొత్తం సరఫరా సరిపోతుంది.** తక్కువ మొత్తం సరఫరా ఉన్న టోకెన్‌లను సులభంగా తారుమారు చేయవచ్చు.
- **టోకెన్‌లు కొన్ని ఎక్స్ఛేంజీల కంటే ఎక్కువ వాటిలో ఉన్నాయి.** అన్ని టోకెన్‌లు ఒకే ఎక్స్ఛేంజ్‌లో ఉంటే, ఎక్స్ఛేంజ్ రాజీపడటం వల్ల టోకెన్‌పై ఆధారపడే కాంట్రాక్ట్ కూడా రాజీపడవచ్చు.
- **పెద్ద నిధులు లేదా ఫ్లాష్ లోన్‌లతో ముడిపడి ఉన్న నష్టాలను వినియోగదారులు అర్థం చేసుకుంటారు.** టోకెన్ బ్యాలెన్స్‌పై ఆధారపడే కాంట్రాక్ట్‌లు పెద్ద నిధులు ఉన్న దాడి చేసేవారిని లేదా ఫ్లాష్ లోన్‌ల ద్వారా జరిగే దాడులను జాగ్రత్తగా పరిగణనలోకి తీసుకోవాలి.
- **టోకెన్ ఫ్లాష్ ముద్రించడం (flash minting) ని అనుమతించదు**. ఫ్లాష్ ముద్రించడం బ్యాలెన్స్ మరియు మొత్తం సరఫరాలో గణనీయమైన హెచ్చుతగ్గులకు దారితీస్తుంది, దీనికి టోకెన్ ఆపరేషన్‌లో కఠినమైన మరియు సమగ్రమైన ఓవర్‌ఫ్లో తనిఖీలు అవసరం.