Limitação de Taxas

Limitação de Taxa Introdução O framework de Transferência de Token Nativo (NTT) fornece limites configuráveis de taxa por cadeia para o envio e recebimento de transferências de tokens. Os integradores podem gerenciar esses limites por meio de seus próprios processos de governança para se adaptar rapidamente à atividade na cadeia.

Se uma transferência estiver limitada pela taxa na cadeia de origem e o enfileiramento estiver habilitado por meio de shouldQueue = true, a transferência será colocada em uma fila de saída e poderá ser liberada após a expiração do limite de taxa.

Você pode configurar os seguintes limites em cada cadeia onde o NTT está implantado diretamente usando o gerenciador:

  • Limite de envio - um único limite de saída para enviar tokens da cadeia

  • Limites de recebimento por cadeia - o limite máximo de recebimento, que pode ser configurado por cadeia. Por exemplo, permitindo que 100 tokens sejam recebidos da Ethereum, mas apenas 50 tokens sejam recebidos da Arbitrum

  • Os limites de taxa são reabastecidos a cada segundo ao longo de uma duração fixa. Embora a duração padrão seja de 24 horas, o valor é configurável na criação do contrato. As transferências limitadas por taxa na cadeia de destino são adicionadas a uma fila de entrada com um atraso similar para liberação.

Atualização dos Limites de Taxa Para configurar ou atualizar os limites de envio e recebimento, siga os seguintes passos:

  1. Localize o arquivo de implantação - abra o arquivo deployment.json no diretório do seu projeto NTT. Este arquivo contém a configuração dos contratos implantados.

  2. Modifique a seção de limites - para cada cadeia, localize o campo limits e atualize os valores de saída e entrada conforme necessário.

"limits": {
    "outbound": "1000.000000000000000000",
    "inbound": {
        "Ethereum": "100.000000000000000000",
        "Arbitrum": "50.000000000000000000"
    }
}
  • outbound - define o número máximo de tokens permitidos a deixar a cadeia

  • inbound - configura limites de recebimento por cadeia para tokens que chegam de cadeias específicas

  1. Envie a configuração - use o NTT CLI para sincronizar a configuração atualizada com a blockchain

ntt push
  1. Verifique as alterações - após enviar, confirme os novos limites de taxa verificando o status da implantação

ntt status

Exemplo de deployment.json

{
    "network": "Testnet",
    "chains": {
        "Sepolia": {
            "version": "1.1.0",
            "mode": "burning",
            "paused": false,
            "owner": "0x0088DFAC40029f266e0FF62B82E47A07467A0345",
            "manager": "0x5592809cf5352a882Ad5E9d435C6B7355B716357",
            "token": "0x5CF5D6f366eEa7123BeECec1B7c44B2493569995",
            "transceivers": {
                "threshold": 1,
                "wormhole": {
                    "address": "0x91D4E9629545129D427Fd416860696a9659AD6a1",
                    "pauser": "0x0088DFAC40029f266e0FF62B82E47A07467A0345"
                }
            },
            "limits": {
                "outbound": "184467440737.095516150000000000",
                "inbound": {
                    "ArbitrumSepolia": "500.000000000000000000"
                }
            },
            "pauser": "0x0088DFAC40029f266e0FF62B82E47A07467A0345"
        }
    }
}

Mecanismo de Enfileiramento Quando uma transferência excede o limite de taxa, ela é mantida em uma fila e pode ser liberada após a expiração da duração definida do limite de taxa. O comportamento de enfileiramento de envio e recebimento é o seguinte:

  • Envio - se uma transferência de saída violar os limites de taxa, os usuários podem reverter e tentar novamente mais tarde ou enfileirar sua transferência. Os usuários devem retornar após a duração da fila expirar para completar o envio da transferência.

  • Recebimento - se uma transferência de entrada violar os limites de taxa, ela ficará na fila. Os usuários ou retransmissores devem retornar após a duração da fila expirar para completar o recebimento da transferência na cadeia de destino.

O enfileiramento é configurado dinamicamente durante cada transferência passando o parâmetro shouldQueue para a função de transferência no contrato NttManager.

Fluxos de Cancelamento Se os usuários realizam frequentemente bridges entre uma cadeia de origem e uma cadeia de destino, a capacidade pode se esgotar rapidamente. A perda de capacidade pode deixar outros usuários com limite de taxa, potencialmente atrasando suas transferências. A transferência de saída cancela o limite de taxa de entrada na cadeia de origem para evitar atrasos não intencionais. Isso permite o reabastecimento do limite de taxa de entrada por um valor igual ao valor da transferência de saída e vice-versa, com a transferência de entrada cancelando o limite de taxa de saída na cadeia de destino e reabastecendo o limite de taxa de saída com um valor equivalente.

Last updated