Стандарт токенов ZRC-20

Что такое ZRC-20?

ZRC-20 — это стандарт токенов (аналогичный ERC-20 в сети Ethereum, но с некоторыми отличиями), интегрированный в блокчейн 1 уровня ZetaChain. Благодаря стандарту ZRC-20 разработчики могут создавать омникальные (Omnichain) приложения (odApps), которые управляют собственными активами в любом другом подключенном блокчейне. Это позволяет создавать децентрализованные приложения (dApps), такие как Omnichain DEX, Omnichain Lending, Omnichain Portfolio Management и другие, использующие взаимозаменяемые токены в нескольких блокчейнах, но управляемые из одного места, таким образом — как если бы все они были в одном блокчейне.

Как работает стандарт ZRC-20?

ZRC-20 — это расширенный стандарт токенов, применяемый в блокчейне Ethereum (ERC-20). Благодаря добавленным функциям, токены ZRC-20 имеют дополнительную возможность управления активами во всех блокчейнах, которые подключены к платформе ZetaChain.

Токен стандарта ZRC-20 может быть эквивалентен любому ERC-20 токену, а также криптовалютам, не поддерживающим смарт-контракты, таким как Bitcoin или Dogecoin. Каждый из таких токенов может быть представлен в сети ZetaChain в виде токена стандарта ZRC-20.

Чем отличается ZRC-20 от ERC-20?

ZRC-20 основан на стандарте ERC-20 и унаследует все его функции, но имеет 3 дополнительные функции и 2 дополнительных события, которые позволяют интегрировать межсетевые транзакции в ZetaChain.

interface IZRC20 {
   function totalSupply() external view returns (uint256);
   function balanceOf(address account) external view returns (uint256);
   function transfer(address recipient, uint256 amount) external returns (bool);
   function allowance(address owner, address spender) external view returns (uint256);
   function approve(address spender, uint256 amount) external returns (bool);
   function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  >function deposit(address to, uint256 amount) external returns (bool);
  >function withdraw(bytes memory to, uint256 amount) external returns (bool);
  >function withdrawGasFee() external view returns (address, uint256);
   event Transfer(address indexed from, address indexed to, uint256 value);
   event Approval(address indexed owner, address indexed spender, uint256 value);
  >event Deposit(bytes from, address indexed to, uint256 value);
  >event Withdrawal(address indexed from, bytes to, uint256 value);
}

В дополнение к существующим функциям стандарта ERC-20, в стандарте ZRC-20 есть дополнительные внешние функции для ввода и вывода средств, а также дополнительные события для данных функций. Благодаря этому изменению токены ZRC-20 полностью совместимым с любыми приложениями, созданными для ERC-20, но также могут работать режиме Omnichain.

ZRC-20 позволяет разработчикам создавать цельные приложения odApps, а также использовать всю современную экосистему на базе виртуальной машины Ethereum (EVM). Более подробно ознакомиться с работой дополнительных функций стандарта ZRC-20 можно в официальных документах здесь.