Как читать смарт контракты
Перейти к содержимому

Как читать смарт контракты

  • автор:

Как разобраться в смарт-контракте, если ты не технарь

Смарт-контракт — это самоисполняющееся цифровое соглашение, которое позволяет взаимодействовать с пользователями и платформами без посредников. Он представляет из себя договор, записанный в виде программы.

Смарт-контракт может выполнять самые различные функции: от хранения информации до взаимодействия с другими смарт-контрактами. Например, смарт-контракт Tether (USDT) хранит в себе информацию о держателях токена, записывая пары «адрес-число».

Давайте разберемся в устройстве смарт-контрактов на примере Tether. Для начала нужно найти адрес контракта токена в определенной сети. Для примера возьмем Ethereum и скопируем адрес на Coinmarketcap.

How to Read Smart Contracts

The first part in a series of articles on how to read smart contracts. This tutorial is made primarily for enthusiasts who want to learn how to understand the crypto world, but do not have a deep knowledge of protocols, the inner mechanisms of blockchains, etc.

Swap.Net - NFT Aggregator & Exchange

Coinmonks

This material was created by Alex Kruegger (Telegram: @kruegger), author of the AK74-Lab Telegram Channel. Translated by the swap.net project team.

DeFi basics

Smart Contracts

A smart contract is a code that is executed on blockchain nodes, and the result of the execution (if spelled out in the program) is stored in the blockchain in a special repository — persistence data. The smart contract code, once uploaded to the blockchain, is additionally locked to prevent any accidental or intentional changes to the code.

The smart contract functions can be called from the outside (from the user’s wallet or from another contract) and divide into two large groups:
— Not changing the persistence data (only read from the blockchain)
— Changing the persistence data

Calling the first group of functions does not cost any gas or money and does not go further than the nearest node (Balance of, TotalSupply, Allowance). In BSC scan these functions are under the “READ” tab.

Calling the second group of functions turns into a full-fledged transaction, which is mined, included in the block and the result of which is written to the blockchain (Approve, Transfer, TransferFrom). In BSC scan these functions are under the “WRITE” tab.

State blockchains

Ethereum and Ethereum-based blockchains (Polygon, BSC, etc.) are state blockchains. Each address stores in the blockchain the value of its balance in the native coin of the blockchain (ETH, BNB, MATIC, etc.). Each smart contract stores in the blockchain the values of its persistent variables. The current state of the blockchain is described by the balance of all existing addresses in the network and the current values of persistence variables of all smart contracts in the blockchain.

Accounts

The Seed-Phrase (12 words) that you wrote down when you first created your wallet is turned into a private key using the BIP 39 protocol, which is turned into a public key using the ECDSA (Elliptic Curve Digital Signature Algorithm), which is turned into your address in the blockchain using hashing and trimming.

Seed-Phrase →Private Key →Public Key →Address

You will always get the same address with your balance from the same seed phrase. To transfer your account to another wallet (MetaMask, Trust Wallet, SafePal, Coin98, etc.) you just need to restore your account on the new wallet using the saved seed phrase. Keep this phrase carefully, because it gives full access to your account.

Where are the tokens?

For each account (address), the blockchain stores only the balance of that address in native blockchain coin and that’s it. The balance of your address in each purchased token is stored in the smart contract of that token in the balances table — the address/balance in tokens.

In BSC scan this table is displayed on the “HOLDERS” tab.

Token must be added to your wallet in order for the balance to appear. After adding, the wallet queries the token’s smart contract for the current balance of your account and displays it in the interface.

One address — many chains

Ethereum was the first blockchain built around the ideology of smart contracts. It has spawned many clones that differ from each other only by consensus algorithm and transaction gas. That’s why you can use the same address for BSC, Ethereum, Polygon blockchains.

Imagine standing on the train station holding the 0x…bc19 ticket. There are a lot of platforms around you named Ethereum, BSC, Polygon, etc. Near them are different railroads and trains: on coal, a nuclear reactor, some still pulled by horses. But each stands on rails, there are locomotives and wagons everywhere. And your ticket always sticked to a seat in any wagon on any platform.

To summarize the above

  • The key to account is a Seed Phrase / Secret Key that identifies online address and gives full access to account
  • Token balance is in the Smart Contract of that token
  • You can use one address for all Ethernet-based blockchains
  • A Smart Contract is an inchangable program + variable data stored in a blockchain
  • A Smart Contract has two groups of functions that can be called from the outside — those that do not change the state of the blockchain (READ) and those that change (WRITE)

ERC 20/BEP 20 interface as the basis of a token contract, a breakdown of contract functions.

What is an Interface

Interface — a description of external influences (controls) on some object and object’s reactions to this control.

For example, car driving. The interface is a set of controls (steering wheel, pedals, gear box) and car’s responses to the use of these controls.

ERC-20 Interface

At the moment, many tokens have already been created and are being created every day. We can interact with any token in the same way — send, swap, approve, etc. So how does this unification come?

Token has to “implement” the ERC 20/BEP 20 interface. Implementing means that a smart token contract must contain a define set of functions and parameters with an unambiguous reaction (what a smart contract should do) to each of these functions.

Interface of the ERC20 standard as defined in the EIP.

FUNCTIONS

EVENTS

Each function call has two more parameters:
msg.sender
— address from which the transaction came (who called the function)
msg.value —the amount of tokens (ETH/BNB) sent with the transaction

EVENT — a way to pass information from a smart contract outward, to the web3 program that called the contract. As a checkbox to say that such operation has been made.

Description of ERC-20 functions

Let’s divide 6 functions into two groups:

READ functions (only reading on blockchain):

    — shows the total issuance of the token — shows the balance of the address account — shows the total amount of tokens owner allowed spender to debit (check approve)

WRITE functions (changing the blockchain):

    — transfer token amount from msg.sender to recipient — transfer token amount from sender to recipient — allow spender to debit token amount from msg.sender balance. (check allowance)

To summarize the above

  • There is an ERC-20 standard describing the interface (functions, their parameters and return values) that must implement a smart contract in order to be called a token.
  • If a smart contract implements the ERC-20 interface, then we can use it wherever we can use the token — swap it to DEX, forward it to each other, burn it, etc. And it doesn’t matter at all what the contract actually is.
  • If something looks like a duck, walks like a duck and quacks like a duck, we can use it as a duck, no matter what it actually is

What happens when working with a contract / Example

Example:

  • Ben decides to create his own token. He takes the most standard implementation of ERC20, changes the name, number (1,000), prescribes that all 1,000 tokens must be intended (transferred) to him when creating the contract, and deploys the smart contract into the blockchain.

A Smart Contract performs a builder function (a special function that is executed once when a contract is deployed) that initializes internal variables, creates two empty tables — balances and allowances, then calls the mint function, which creates the first line in the balances:
BEN — 1000

And he is finishes the work. The contract is ready.

  • Ben decides to give his friends Ivan and Jake 100 tokens each.

Ben’s wallet initiates two transactions to the smart token contract: transfer(Ivan, 100) and transfer(Jake, 100). In this case, who should be debited with the coins is determined by who sent the transaction — Ben’s balance (msg.sender).

The smart contract simply changes the table by adding two new lines and changing the amount at Ben:
— BEN— 800
— IVAN— 100
— JAKE— 100

  • Ben decides to put the token on the DEXchange, so he goes to the pancake (for example) and creates a Token-BNB liquidity pair (800 tokens — 2 BNB).

Pancake router creates a liquidity pair, Ben transfers 800 tokens and 2 BNB into it, as a result somewhere in the other universe a line CAKE-LP-Token — 2 appears in the BNB contract, and the token contract table now looks like this:
— BEN — 0
— IVAN — 100
— JAKE— 100
— CAKE-LP-Token/Pancake Router — 800
(In BSC scan we can see the liquidity in the holders)

  • Ivan decides to buy another 100 tokens, he goes to Pancake, says “I want to buy 100 tokens for BNB”

The pancake router asks the liquidity pair for the current exchange rate of the token to BNB (using the AMM algorithm) and tells Ivan“It will cost you 0.25 BNB + fee.”

  • Ivan sends 0.25 BNB to Pancake and waits for his tokens.

The panckake router sees that the money has arrived and creates a transaction on the smart token contract: transfer(Kolya, 100) on behalf of the LP pair.

The smart contract fulfils the request by debiting the pair’s account and crediting Ivan’s account. The result:
BEN— 0
— IVAN— 200
— JAKE— 100
— CAKE-LP-Token — 700

The panckake router sends 0.25 BNB to the other end of the universe and on the other part of the LP pair in the BNB contract the value of the CAKE-LP-Token pair balance increases from 2 to 2.25

  • At this time Jake decides to sell all the tokens and buy Binamon. He goes to the pancake and says: “I want to sell 100 tokens”.

The pancake router asks the LP for the current exchange rate of the token to BNB (using the AMM algorithm) and tells JakeThis will cost you 0.37 BNB + fee.

Then the Pancake asks the smart token contract whether Jake has allowed him (the Pancake) to debit tokens from his account, to do this it asks the smart token contract for the result of the: allowance(JAKE, Pancake-router) function

*Pancake router logically trusts no one, so all debit transactions take place in his name, which is why Jake has to say that he trusts Pancake to debit his token balance*

Jake has not sold anything before, the result = 0. Pancake sees this and draws an “APPROVE” button for Jake in the swap interface.

  • Jake pushes “APPROVE”

Jake’s wallet initiates a transaction to the smart token contract: approve(pancake router, 999999999999999999999), allowing the router to debit his account with as many tokens as he (the router) needs.

*Actually it would be more correct to give permission for each transaction only for the amount of that transaction, but people are lazy creatures and so usually no one bothers and puts the maximum possible number as the number of tokens allowed to be debited. In our example, for simplicity, that’s a lot of 9s.*

The smart token contract performs the operation by adding a line to the allowance table:
JAKE— (Pancake router, 999999999) and generates an Approval event

The Pancake router sees this event and requeries again the smart contract for the result of the function: allowance(JAKE, punk router).

If the smart contract returns 9999999999 and this value is greater than or equal to the amount of the current transaction, then the router will remove the “APPROVE” button from the interface and enable the “SWAP” button. If 0 is returned, the “APPROVE” button does not disappear, the “SWAP” button is still inactive.

  • Jake pushes “SWAP”

The Panckake router commands the LP pair’s BNB part to send 0.37 BNB to Jake and creates a transaction on the smart token contract by calling the transferFrom(JAKE, punk ruther, 100) function.

The Smart Contract checks for an allowance line table allowing Pancake to debit coins from Jakes’ address, finds it and executes the operation.

The table now looks like this:
BEN— 0
— IVAN— 200
— JAKE— 0
— CAKE-LP-Token — 800

  • Everything worked out, everyone is happy, all the operations have been carried out
  • The tokens are transferred from the balance of the sender of the transaction (usually the user’s wallet) to any other address using the transfer function.
  • The tokens can be sent from any address to any address, only if there is permission through the approve function to debit the address of the debtor.
  • The function approve is called by the owner of the address, who gives permission for another address to debit tokens from his balance.
  • Permission can be viewed via the allowance function.
  • With any transfers, the tokens simply move from one line of the balancesheet to another, never leaving the confines of their smart contract.
  • If you want to pre-approve token sell, then go into the TOKEN smart contract, WRITE tab, look for the APPROVE function there and insert the address of the smart ROUTER contract of the place where you want to swap. In our case this is the address of the Pancake Router: 0x10ED43C718714eb63d5aA57B78B54704E256024E

In this tutorial we have looked at the fundamental things about your accounts, contracts, and seen the main points of interaction between them.
Strongly advise you to take a basic programming course in order to be able to read contract code at a minimum level and understand at least approximately what a particular piece of code does.

Как проверить смарт-контракт на скам

Как проверить смарт-контракт на скам

Смарт-контракт в блокчейне – запись из кода, которая отвечает за хранение активов, их продажу, банальное отображение и общее управление. То есть у каждого токена или криптовалютного проекта есть свой смарт-контракт, который может прочитать любой пользователь и решить, насколько он безопасен.

Сама безопасность зависит от того, может ли создатель смарт-контракта вносить в него изменения, как были распределены токены и хранится ли в коде вредоносная программа, способная после подписания контракта, например, списать с вашего кошелька весь баланс других токенов. Для проверки контрактов обычно нужен полноценный аудит с участием специализированных групп программистов и экспертов. Они делают вывод по безопасности смарт-контракта и публикуют соответствующую документацию. Однако поверхностную проверку можно произвести и самостоятельно, используя функциональности разных сайтов, веб-сервисов или даже своего кошелька.

В этой статье за пример будут взяты несколько подозрительных токенов и их смарт-контракты для проверки. Проверка смарт-контрактов проектов по типу сайтов для стейкинга или высокодоходных рисковых пирамид – все это проверяется только через аудит и уже нужно отдельно знакомиться с документацией, которая должна предоставляться создателями таких контрактов.

Проверка токена через сканер и поиск смарт-контракта

В одну операцию можно объединить как поиск смарт-контракта подозрительного токена, который поступил вам на баланс, так и сразу проверку его на подозрительность через сканер выбранной сети. Это актуально как раз в том случае, когда криптовалюта уже поступила на ваш баланс и вы ищете информацию о ее происхождении.

Откройте сканер соответствующей сети, в которой находится монета. Введите адрес своего кошелька и выполните поиск.Ввод адреса своего кошелька для проверки смарт-контракта на скам

Разверните список «‎Token» и в нем выберите ту самую подозрительную монету.Поиск токена для проверки смарт-контракта на скам

Если она была разослана на множество кошельков за короткий срок, то рядом будет надпись «‎Spam». Это уже свидетельствует о том, что смарт-контракт этого токена может быть ненадежным и потенциально опасным. Для «‎Unsafe» тоже характерны подобные подозрения, поскольку сканер считает монету небезопасной по ряду причин.Метки токена на сайте сканера для проверки смарт-контракта на скам

После перехода на страницу одной из подозрительных монет вы тоже получите соответствующее уведомление о том, что нужно быть осторожнее.Плашка с информацией о токене на сайте сканера для проверки смарт-контракта на скам

Если нужно проверить ее смарт-контракт самостоятельно, скопируйте его для этого из поля справа.‎‎‎Копирование адреса токена для проверки смарт-контракта на скам

Если же вы только узнали о монете, где-то прочитали новости о ее выходе и скором росте, перешли на свап-обменник и выбрали для покупки, но получили уведомление о подозрении, можете прямо там скопировать адрес смарт-контракта. Большинство таких обменников по типу UniSwap, Pancake и других всегда выводят смарт-контракты монет и предлагают их скопировать для дальнейшего изучения.

Сканирование через Token Sniffer

Самым информативным и удобным в использовании сайтом для автоматического аудита смарт-контрактов можно считать Token Sniffer. Он предоставляет наибольшее количество полезной информации и даже может определять некоторый встроенный вредоносный код. Единственным его минусом можно считать то, что анализатор поддерживает исключительно Ethereum и BSC-сеть. Пока что с другими сетями взаимодействие невозможно, но, вполне вероятно, что расширение функциональности в будущем все же произойдет.

Начать взаимодействие с Token Sniffer, конечно, стоит со ввода адреса контракта в соответствующее поле. После этого подтвердите начало анализа.Ввод адреса для проверки смарт-контракта на скам через Token Sniffer

Процесс займет где-то около минуты, после чего можно приступить к ознакомлению с результатами. В первую очередь вы видите связанные со смарт-контрактом ссылки, графики, где можно отследить его цену, время создания и ссылку на сам адрес создателя.Получение общей информации для проверки смарт-контракта на скам через Token Sniffer

Далее обратите внимание на оценку. Если она высокая, то с большой долей вероятности смарт-контракт имеет вшитый вредоносный код, при помощи которого и можно своровать деньги.Полученная оценка для проверки смарт-контракта на скам через Token Sniffer

Ниже показана аналитика по тому, где торгуется токен. Если его нигде нельзя продать, анализатор посчитает эту часть аудита непройденной и уже вызывающей подозрения.Проверка доступности продажи для проверки смарт-контракта на скам через Token Sniffer

Далее идет блок «‎Contract Analysis»‎. Здесь вы видите, прошел ли источник контакта верификацию, может ли создатель вносить изменения в этот контракт и имеет ли какие-либо другие специальные преимущества.Анализ контракта для проверки смарт-контракта на скам через Token Sniffer

Ниже можно получить информацию о владельцах токена. Вы будете уведомлены, какой его текущий саплай, сколько было сожжено монет, какое их количество находится на кошельке у создателя и у других владельцев данной криптовалюты.Анализ держателей для проверки смарт-контракта на скам через Token Sniffer

Завершающий анализ связан с ликвидностью. Оценивается несколько обменников и доступная на них ликвидность. Чем она ниже, тем меньше оборота монеты происходит в целом, значит, не всегда получится продать ее по нормальной цене, а также есть риски резких скачков этой цены.Анализ ликвидности для проверки смарт-контракта на скам через Token Sniffer

В самом конце страницы будет информация о том, есть ли похожие с этим контракты. По большей части это актуально для самых дешевых копий известных монет, которые точно нацелены на скам. Сейчас таких уже не очень много, поскольку создание смарт-контракта уже не является чем-то трудным и затратным по ресурсам.Отображение похожих контрактов для проверки смарт-контракта на скам через Token Sniffer

Как видно, при помощи Token Sniffer можно получить комплексные сведения о монете и решить, насколько безопасно ею пользоваться. Инструмент отлично вычисляет скам-проекты, а также позволяет в один клик оценить экономику монеты без необходимости вручную проверять каждый показатель и через сканер отслеживать холдеров.

Сканирование через Bscheck

Еще один довольно популярный сайт для автоматического аудита токенов называется Bscheck. Он поддерживает большее количество сетей, но предоставляет немного меньше информации о токене, поэтому подойдет не всем пользователям. Давайте более детально остановимся на том, как работать с данным анализатором.

На главной странице введите адрес контракта и нажмите кнопку для проверки.Ввод адреса для проверки смарт-контракта на скам через Bscheck

Если сеть токена отличается от BSC, то предварительно выберите нужную в списке сверху.Выбор сети для проверки смарт-контракта на скам через Bscheck

Через несколько секунд после начала обработки уже появится информация о рейтинге токена и оценке от аудита. Есть несколько разных состояний монеты, начиная от полностью безопасной и заканчивая стопроцентным скамом. Рейтинг зависит от того, насколько хорошо токен пройдет аудит от Bscheck.Получение общей оценки для проверки смарт-контракта на скам через Bscheck

В первой плитке ниже вы видите общее количество токенов, сколько их было сожжено и текущее количество владельцев.Общее количество монет для проверки смарт-контракта на скам через Bscheck

В списке «‎Top Holders Info»‎ можно получить информацию о том, какие кошельки имеют больше всего токенов на балансе. Иногда это позволяет вычислить владельца и понять, что именно он владеет почти всеми активами.Информация о держателях для проверки смарт-контракта на скам через Bscheck

Ниже идет общая информация о ликвидности, о том, где и когда происходило сжигание, торгуется ли монета и в каких парах. Ликвидность у скам-монет обычно полностью отсутствует.Информация о ликвидности для проверки смарт-контракта на скам через Bscheck

Получилось совсем немного информации по монете, но этого уже достаточно, чтобы примерно понимать, насколько можно доверять проекту. Вместе с этим отмечу, что иногда у Bscheck наблюдаются проблемы с откликом по некоторым сетям, в частности, сайт не может получить сведения со сканеров, из-за чего не удается завершить аудит. Если у вас тоже возникла такая ситуация, подождите 1-2 часа, после чего снова попробуйте запустить проверку.

Дополнительные идентификаторы скам-токенов

Вы всегда можете использовать и другие методы обнаружения потенциально опасных монет. Во-первых, обращайте внимание на их названия и количество поступлений на кошелек. Скорее всего, если вы получили 50 000 неизвестных монет, у которых даже не отображается цена, – это стандартный скам, который приходит на большинство криптовалютных кошельков. Если вы применяете социальные сети по криптовалюте или дашборды для отслеживания активности своего кошелька, можете использовать информацию из них, чтобы тоже быть в курсе транзакций с подозрительными монетами.

Так, помощь в обнаружении скам-транзакций осуществляет нашумевшая социальная сеть в сфере криптовалют под названием DeBank. Если вы пользуетесь ею или хотите зарегистрироваться, нажмите по номеру своего кошелька после авторизации для перехода на страницу профиля.Переход к своему кошельку для проверки смарт-контракта на скам через DeBank

Перейдите на вкладку «‎Transactions»‎.Открытие транзакций для проверки смарт-контракта на скам через DeBank

Все подозрительные переводы на ваш кошелек будут скрыты серым цветом, а также иметь рядом подпись «‎Scam Tx»‎. В большинстве случаев это как раз значит, что не нужно ничего делать с этими монетами, никуда их переводить или пытаться обменять.Проверка транзакций для проверки смарт-контракта на скам через DeBank

Точно так же можно получить немного сведений в разных криптовалютных кошельках. На следующем скриншоте вы как раз видите то, что есть неизвестные токены со странными названиями, без цены и ссылками на разные сайты, якобы для получения награды. Не переходите по таким ссылкам и не подключайте свои кошельки. Это банальные уловки на то, чтобы заполучить все ваши средства.Информация о монетах на кошельке для проверки смарт-контракта на скам

Надеюсь, предоставленная информация помогла вам разобраться в том, как обнаруживать подозрительные монеты и не попадаться на уловки мошенников. Всегда внимательно следите за тем, что вы хотите обменять и за что вам поступили на баланс какие-то токены.

Как читать смарт-контракты

Код смарт-контракта после заливки в блокчейн дополнительно заливается сверху слоем эпоксидки, чтобы предотвратить любое случайное или намеренное изменение кода.

Функции смарт-контракта могут быть вызваны извне (с кошелька пользователя или из другого контракта) и делятся на две большие группы:

    Не меняющие состояние персистент данных (только чтение из блокчейна) Меняющие состояние персистент данных

Персистент данных — это данные, сохраняемые в блокчейне

Интерфейс ERC-20

Интерфейс – это описание внешних воздействий каким-либо объектом и однозначных реакций объекта на это управление. Если смарт-контракт реализует интерфейс ERC-20, то мы можем его использовать везде, где возможно использование токена.

На текущий момент уже создано и каждый день создается множество токенов. Но с любым токеном мы можем взаимодействовать единообразно – пересылать, свапать, апрувить и т.д. Токен должен соотвествовать интерфейсу ERC 20/BEP 20. Реализовывать означает, что смарт контракт токена должен содержать вполне определенный набор функций и параметров с однозначно прописанной реакцией на вызов каждой из этих функций.

Основные функции, которые должны быть прописаны в смарт-контракте:

    totalSupply() — возвращает эмиссию токена balanceOf(account) — возвращает баланс адреса transfer(recipient, amount) — передает amount токенов от msg.sender к recipient transferFrom(sender, recipient, amount) — передает amount токенов от sender к recipient allowance(owner, spender) — возвращает количество токенов, которые разрешены списать approve(spender, amount) — выдает разрешение spender списать amount токенов с баланса msg.sender transfer(from, to, value) Approval(owner, spender, value)

Также при вызове каждой функции присутствуют еще несколько параметров. Основные из них:

    msg.sender – адрес с которого вызвана транзакция msg.value – количество токенов пересланных с транзакцией

Виды скама

    Контракт, в коде которого прописана невозможность продажи токенов. Купить вам позволяют, а вот продать – нет.

Либо вам не дают возможности подтвердить своп (код помещается в функцию approve), либо не дают возможности передать ваши токены (код помещается в функцию transferFrom).

Выглядит код так:

Т.е. подтвердить транзакцию может только владелец контракта.

    Дополнительный функционал контракта, который мешает нам совершить транзакцию

Смотрим на конструктор (функция, которая вызывается один раз при создании контракта ) – там обычно идет инициализация всех переменных, по названию которых можно понять что включено в контракт. Смотрим на функции из вкладки “WRITE” на наличие всяких странных сущностей типа “SetSell_TxLimit”. В функциях transfer/transferFrom также будет присутствовать код проверки на всякие дополнительные условия, при нарушении которых нам не дадут совершить продажу.

Использование BSCscan для чтения контрактов

Для начала вам нужно найти адрес токена. Как это сделать:

    Переходите на сайт СМС и через поиск находите нужный вам токен. Копируете адрес токена (где найти показано на скриншоте):

Переходим к анализу токена:

    Переходите на сайты по типу BSCSCan, EtherScan (в зависимости от сети, на которой развернут токен) и вставляете в поиск адрес токена. Листаете чуть вниз:
    Таблица балансов всех адресов держателей монеты отображается во вкладке “HOLDERS”
    Во вкладке “CONTRACT” три панели:
    READ – перечислены все функции и переменные, которые мы можем читать из контракта не тратя газ и не совершая транзакций. WRITE – перечислены все функции, которые инициируются транзакциями. Именно тут будет минт, изменение тарифов, включение и выключение возможности продажи и т.д. CODE – исходный код контракта

Здесь вы можете просмотреть весь код смарт-контракта.

Ищите функции, в которых упоминаются слова «transfer», «burn», «mint» или «create». Функции с такими названиями, в основном, описывают процесс оборота токенов. В них же злоумышленники могут спрятать операции по бесконечному выпуску токенов. Если создатели проекта утверждают, что всего будет выпущено лишь 21 млн монет, а в коде есть функция с названием «mint», «create» или «issue» и большим объемом строк внутри функции — есть смысл задуматься.

Найдите комментарии к функциям. Хорошо, если они есть, хуже, если нет. Как правило, добросовестные разработчики комментируют чуть ли не каждую строчку кода и описывают действия прямо в смарт-контракте через символ слэш

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *