🌌
Wormhole Docs Brasil
  • Bem-vindo!
  • Materiais
    • Build
      • Começer a Buildar
        • Redes Suportadas
        • Testnet Faucets
        • Demos
      • Construindo Aplicações Frontend
        • Wormhole SDK
          • Wormhole TypeScript SDK
          • Data Layouts
          • Construção de Protocolos e Payloads
        • Queries
          • Overview
          • Usando Queries
          • F.A.Q.
        • Conexão
          • Overview
          • Routes
          • Features
          • Configuração
          • v1 Migration
          • F.A.Q.
      • Construindo Integrações de contratos
        • Wormhole Relayer
        • Core Contracts
        • CCTP
        • Transferências de Tokens Nativos
          • Processos de Deployment
        • Comandos NTT CLI
        • Configuração de NTT
          • Limitação de Taxas
          • Controle de Acesso
        • Managers e Transceivers
        • F.A.Q. Wormhole NTT
      • MultiGov
        • Deployment
        • Upgrades Contracts
        • F.A.Q. Tecnicas
      • Ambiente de Desenvolvimento
      • F.A.Q sobre Integrações de Contratos
      • Toolkit
        • Wormholescan
        • Wormhole CLI
        • Wormhole SDK
          • TypeScript SDK
          • Data Layouts
          • Construindo Protocolos e Payloads
        • Solidity SDK
        • Tilt
        • Toolkit F.A.Q.
      • Referências
    • Infraestrutura
      • Run a Relayer
      • Run a Spy
    • Tutoriais
      • Tutorial de Conexão
      • Tutorial de Contratos Cross-Chain
        • Criação de Contratos de Mensagens Cross-Chain
        • Criação de contratos de transferência de tokens Cross-Chain
      • Tutoriais de Transferências de Tokens Nativos (NTT - Native Token Transfers)
        • Crie Tokens Multichain
      • Tutorial MultiGov
        • Proposta Cross-Chain treasury management
      • Tutoriais do Wormhole SDK
        • Transferir USDC via CCTP
        • Transferir Tokens via a Token Bridge
    • Learn
      • Fundamentos
        • Introdução
        • Segurança
        • Overview de Arquitetura
        • Glossário
      • Componentes de Infraestrutura
        • Core Contracts
        • VAAs (Verified Action Approvals)
        • Guardians
        • Spy
        • Relayers
      • Messaging
        • Token Bridge
        • Circle's CCTP Bridge
        • Transferencias de Token Nativos
          • Overview
          • Arquitetura
          • Modelos de Deploy
          • Security
      • Multigov
        • MultiGov: Governança Cross-Chain com Wormhole
        • MultiGov Architecture
        • FAQs
    • Links úteis
Powered by GitBook
On this page
  1. Materiais
  2. Build
  3. Construindo Integrações de contratos

Managers e Transceivers

Gerentes e Transmissores Gerentes Os gerentes supervisionam o processo de transferência de tokens e lidam com limitações de taxa e atestação de mensagens. Eles gerenciam interações com múltiplos transmissores e garantem que os tokens sejam bloqueados ou queimados na cadeia de origem antes de serem cunhados ou desbloqueados na cadeia de destino. Cada gerente NTT corresponde a um único token, mas pode controlar múltiplos transmissores. As funções principais incluem:

  • transfer: inicia o processo de transferência, onde os tokens na cadeia de origem são bloqueados ou queimados. Este processo garante que uma quantidade equivalente de tokens seja cunhada ou desbloqueada na cadeia de destino.

function transfer(
    uint256 amount, // quantidade (em unidades atômicas)
    uint16 recipientChain, // ID da cadeia (formatado Wormhole)
    bytes32 recipient // endereço do destinatário (formatado Wormhole)
) external payable nonReentrant whenNotPaused returns (uint64)
  • quoteDeliveryPrice: calcula o custo de envio de mensagens entre cadeias, consultando os transmissores para estimativas das taxas de entrega de mensagens, permitindo que os usuários conheçam o preço antes de iniciar uma transferência.

function quoteDeliveryPrice(
    uint16 recipientChain, // ID da cadeia (formatado Wormhole)
    bytes memory transceiverInstructions // instruções extras para transmissores (dependente do transmissor se são usadas ou aceitas)
) public view returns (uint256[] memory, uint256)
  • setPeer: para manter a comunicação segura entre cadeias, os gerentes estabelecem relações de confiança entre diferentes instâncias de contratos do gerente NTT entre as cadeias. Ao se reconhecerem como pares, eles garantem que as transferências de tokens ocorram de maneira segura e que os limites de taxa nas transações de entrada sejam respeitados.

function setPeer(
    uint16 peerChainId, // ID da cadeia (formatado Wormhole)
    bytes32 peerContract, // endereço do contrato NTT Manager do par (formatado Wormhole)
    uint8 decimals, // casas decimais do token na cadeia do par
    uint256 inboundLimit // limite de taxa de entrada (em unidades atômicas)
) public onlyOwner

Transmissores Os transmissores são responsáveis por roteirizar as transferências NTT através do gerente na cadeia de origem e garantir que sejam entregues ao gerente correspondente na cadeia de destino. Eles trabalham com os gerentes para garantir que as mensagens sejam processadas corretamente e que os tokens sejam transferidos de maneira adequada, fornecendo um sistema confiável para transferências de tokens entre cadeias. Os transmissores podem ser definidos independentemente do núcleo Wormhole e modificados para suportar qualquer backend de verificação. As funções principais incluem:

  • sendMessage: esta função externa envia mensagens de transferência de tokens para uma cadeia de destino especificada. Ela codifica os detalhes da transferência de tokens em um formato de mensagem reconhecido pelo sistema.

function sendMessage(
    uint16 recipientChain,   // ID da cadeia (formatado Wormhole)
    TransceiverStructs.TransceiverInstruction memory instruction, // instrução extra para o transmissor (opcional, dependendo de instruções extras usadas/aceitas para este transmissor)
    bytes memory nttManagerMessage, // mensagem serializada do NTT Manager, fornecida pelo NTT Manager
    bytes32 recipientNttManagerAddress, // endereço do NTT Manager na cadeia de destino (formatado Wormhole)
    bytes32 refundAddress // endereço para receber reembolsos na cadeia de destino em caso de cotações excessivas (formatado Wormhole)
) external payable nonReentrant onlyNttManager
  • quoteDeliveryPrice: fornece uma estimativa do custo associado à entrega de uma mensagem para uma cadeia de destino e calcula as taxas de transação.

function quoteDeliveryPrice(
    uint16 targetChain,  // ID da cadeia (formatado Wormhole)
    TransceiverStructs.TransceiverInstruction memory instruction // instrução extra para o transmissor (opcional, dependendo de instruções extras usadas/aceitas para este transmissor)
) external view returns (uint256)

Ciclo de Vida de uma Mensagem EVM Transferência O cliente chama a função transfer para iniciar uma transferência NTT. O cliente deve especificar, no mínimo, a quantidade da transferência, a cadeia de destino e o endereço do destinatário na cadeia de destino. A função transfer também suporta uma flag para especificar se o NttManager deve colocar as transferências com limite de taxa em fila ou reverter. Os clientes também podem incluir instruções adicionais a serem encaminhadas ao transmissor na cadeia de origem. Dependendo do modo configurado no contrato NttManager, as transferências são "bloqueadas" ou "queimadas". Após a transferência ser encaminhada para o transmissor, o NttManager emite o evento TransferSent.

Eventos

  • TransferSent: Emitido quando uma mensagem é enviada do NTT Manager.

event TransferSent(
    bytes32 recipient, uint256 amount, uint256 fee, uint16 recipientChain, uint64 msgSequence
);

Limite de Taxa Uma transferência pode ser limitada por taxa tanto na cadeia de origem quanto na cadeia de destino. Se uma transferência for limitada por taxa na cadeia de origem e a flag shouldQueue estiver ativada, ela será adicionada a uma fila de saída. A transferência pode ser liberada após o tempo configurado em _rateLimitDuration expirar através do método completeOutboundQueuedTransfer. Os eventos OutboundTransferQueued e OutboundTransferRateLimited são emitidos.

PreviousControle de AcessoNextF.A.Q. Wormhole NTT

Last updated 5 months ago