Pular para o conteúdo principal
Change page

Padrão de cofre tokenizado ERC-4626

Última edição: @MCreimer(opens in a new tab), 30 de janeiro de 2024

Introdução

O ERC-4626 é um padrão para otimizar e unificar os parâmetros técnicos dos cofres de rendimento. Ele fornece uma API padrão para cofres com rendimentos tokenizados que representam partes de um único token ERC-20 subjacente. O ERC-4626 também delineia uma extensão opcional para cofres tokenizados que utilizam ERC-20, oferecendo funcionalidade básica para depósito, retirada de tokens e leitura de saldos.

O papel do ERC-4626 nos cofres de rendimento

Mercados de empréstimo, agregadores e tokens intrinsecamente de rendimento ajudam os usuários a encontrar o melhor rendimento em seus tokens de cripto executando diferentes estratégias. Estas estratégias são realizadas com ligeiras variações, que podem ser propensas a erros ou desperdiçar recursos de desenvolvimento.

O ERC-4626 nos cofres de rendimento reduzirá o esforço de integração e desbloqueará o acesso a rendimentos em várias aplicações, com pouco esforço especializado dos desenvolvedores, criando padrões de implementação mais consistentes e robustos.

O token ERC-4626 é descrito em mais detalhes em EIP-4626(opens in a new tab).

Pré-requisitos

Para entender melhor esta página, recomendamos que você leia primeiro sobre padrões de tokens e ERC-20.

Funções e características do ERC-4626:

Métodos

asset

1function asset() public view returns (address)
Copiar

Esta função retorna o endereço do token subjacente usado para o cofre para contabilidade, depósito, retirada.

totalAssets

1function totalAssets() public view returns (uint256)
Copiar

Esta função retorna a quantidade total de ativos subjacentes mantidos pelo cofre.

convertToShares

1function convertToShares(uint256 assets) public view returns (uint256 shares)
Copiar

Esta função retorna a quantidade de shares que seriam intercambiadas pelo cofre pela quantidade de assets fornecidos.

convertToAssets

1function convertToAssets(uint256 shares) public view returns (uint256 assets)
Copiar

Esta função retorna a quantidade de assets que seriam intercambiadas pelo cofre pela quantidade de shares fornecidos.

maxDeposit

1function maxDeposit(address receiver) public view returns (uint256)
Copiar

Esta função retorna a quantidade máxima de ativos subjacentes que podem ser depositados em um único deposit chamado pelo receiver.

previewDeposit

1function previewDeposit(uint256 assets) public view returns (uint256)
Copiar

Esta função permite aos usuários simular os efeitos de seu depósito no bloco atual.

depositar

1function deposit(uint256 assets, address receiver) public returns (uint256 shares)
Copiar

Esta função deposita assets de tokens subjacentes no cofre e concede a propriedade de shares para o receiver.

maxMint

1function maxMint(address receiver) public view returns (uint256)
Copiar

Esta função retorna a quantidade máxima de ativos subjacentes que podem ser mintados em um único mint chamado pelo receiver.

previewMint

1function previewMint(uint256 shares) public view returns (uint256)
Copiar

Esta função permite aos usuários simular os efeitos de seu mint no bloco atual.

cunhar

1function mint(uint256 shares, address receiver) public returns (uint256 assets)
Copiar

Esta função minta exatamente shares no cofre para o receiver depositando assets dos tokens subjacentes.

maxWithdraw

1function maxWithdraw(address owner) public view returns (uint256)
Copiar

Esta função retorna a quantidade máxima de ativos subjacentes que podem ser retirados do saldo do owner com uma única chamada withdraw.

previewWithdraw

1function previewWithdraw(uint256 assets) public view returns (uint256)
Copiar

Esta função permite aos usuários simular os efeitos da sua retirada no bloco atual.

sacar

1function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)
Copiar

Esta função queima shares do owner e envia exatamente tokens assets do cofre para o receiver.

maxRedeem

1function maxRedeem(address owner) public view returns (uint256)
Copiar

Essa função retorna a quantidade máxima de ações que podem ser resgatadas do saldo do owner com uma chamada de redeem.

previewRedeem

1function previewRedeem(uint256 shares) public view returns (uint256)
Copiar

Essa função permite aos usuários simular os efeitos de seu resgate no bloco atual.

redeem

1function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)
Copiar

Essa função resgata um número específico de shares do owner e envia assets do token subjacente do cofre para o receiver.

totalSupply

1function totalSupply() public view returns (uint256)
Copiar

Retorna o número total de shares não resgatadas do cofre em circulação.

balanceOf

1function balanceOf(address owner) public view returns (uint256)
Copiar

Retorna a quantidade total de shares do cofre que o owner tem atualmente.

Eventos

Evento de depósito

PRECISA ser emitido quando os tokens são depositados no cofre por meio dos métodos mint e deposit

1event Deposit(
2 address indexed sender,
3 address indexed owner,
4 uint256 assets,
5 uint256 shares
6)
Copiar

Em que sender é o usuário que trocou assets por shares e transferiu aquelas shares para o owner.

Evento de retirada

PRECISA ser emitido quando as shares são retiradas do cofre por um depositante nos métodos de redeem ou withdraw.

1event Withdraw(
2 address indexed sender,
3 address indexed receiver,
4 address indexed owner,
5 uint256 assets,
6 uint256 share
7)
Copiar

Em que sender é o usuário que acionou a retirada e trocou shares, de propriedade do owner, por assets. receiver é o usuário que recebeu os assets retirados.

Leitura adicional

Este artigo foi útil?