Migração e AMM externo
Migração atômica na compra de curva final, conversão de precisão USDC, bloqueio LP, limites de doação e preços externos de constante de produto.
Quando se esgotam os Token vendáveis da curva, BigShortProtocol-EVM cria liquidez externa com Token reservados + reservas líquidas reais de USDC da curva e inicia o Short Engine independente desse Token. A migração não utiliza USDC virtual, fundos de curvas de outros Token nem a reserva de empréstimos como liquidez externa inicial.
1. Condição de ativação e ordem de execução
| Ordem | Ação | Resultado funcional |
|---|---|---|
| 1 | Resolva a compra final | O saldo vendável de Token chega a zero; estado Complete |
| 2 | Entregar os Token e devolver o pagamento excedente | O reembolso vai para o remetente da transação |
| 3 | Emitir eventos de operação e conclusão da curva | Registar o estado final das reservas da curva |
| 4 | Revalidar o registo de configuração do Token e o endereço previsto do Engine | Não usar outro Profile predefinido selecionado depois |
| 5 | Definir Migrating e validar o Pair principal | Verificar identidade, código em execução, reservas e saldos do Pair |
| 6 | Transferir 206,900,000 Token e o USDC real representável | Criar liquidez externa real |
| 7 | Emitir os LP da migração para o endereço zero e verificar | Verificar que o endereço zero possui todos os LP iniciais |
| 8 | Implementar e inicializar o Short Engine | Associar reservas reais do Pair e inventário de empréstimos existente |
| 9 | Validar a associação e abrir a negociação do Pair principal | externalTradingEnabled passa a verdadeiro |
| 10 | Colocar a zero o saldo real de USDC da curva e registar a migração | Estado final Migrated |
2. De native18 para USDC ERC-20 de seis casas decimais
O saldo de USDC nativo de Arc e a interface externa ERC-20 de USDC representam o mesmo ativo de cotação, mas com precisões diferentes. O código atual utiliza:
| Cenário | Precisão | Uma unidade de USDC |
|---|---|---|
| Pagamentos da curva, contabilidade de Factory e interna do Engine | native18 | 10¹⁸ |
| Interface ERC-20 de USDC do Pair externo | external6 | 10⁶ |
| Relação de conversão | — | 10¹² |
Sejam
Aqui está,
Titularidade do resto da migração
A migração retira o
3. Exemplo de esgotamento à escala completa e três avaliações
Exemplo D: comprar tudo a partir do estado inicial numa operação, sem taxas nem doações
fornece à curva um líquido de:
| Elemento | Resultado exato |
|---|---|
| USDC líquido que entra na curva | 12,161.433369060378706681 |
| Token fornecidos ao Pair | 206,900,000 Token |
| USDC fornecido ao Pair | 12,161.433369 USDC |
| Inteiro USDC external6 | 12,161,433,369 |
| Resto da migração | 0.000000060378706681 USDC |
Este é um exemplo de uma única operação com uma base inicial explícita; não garante que todas as trajetórias de múltiplas compras e vendas acumulem exatamente as mesmas unidades mínimas. O arredondamento inteiro por operação e a entrada de orçamento exato produzem diferenças.
Não confundir o extremo da curva, o valor externo real e a âncora ideal
| Indicador | Valor neste exemplo | Utilização |
|---|---|---|
| USDC virtual da curva após a última operação | 16,453.433369060378706681 | Registo de reservas virtuais ao terminar a curva |
| Token virtuais no final da curva | 279,900,000 | Registo de reservas virtuais ao terminar a curva |
| Capitalização do protocolo no final da curva | 58,783.256052377201524405 USDC | Calculada com reservas virtuais da curva |
| USDC inicial real do mercado externo | 12,161.433369 | Fundos reais do Pair |
| Token iniciais reais do mercado externo | 206,900,000 | Fundos reais do Pair |
| Capitalização inicial real externa do protocolo | 58,779.281628806186563557 USDC | actualStartMarketCap |
| Parâmetro fixo de USDC de migração ideal | 12,161.433370 | Parâmetro do modelo de risco; não um montante de transferência obrigatório |
| Capitalização fixa de migração ideal | 58,779.281633639439342677 USDC | startMarketCap, âncora das curvas de risco/margem |
O preço inicial externo real é aproximadamente 0.000058779281628806186564 USDC/Token. Os parâmetros atuais não exigem «continuidade exata do preço marginal em cada unidade mínima antes e depois de migrar»; as reservas virtuais da curva e as reservas reais da migração são conjuntos de valores diferentes.
A âncora ideal fixa fornece uma base reproduzível do modelo de risco; as reservas reais do Pair determinam o preço spot, o custo de recompra de dívida e cada troca real. O parâmetro do modelo de 12,161.433370 USDC não deve ser descrito como fundos necessariamente recebidos em cada migração.
4. Criação prévia do Pair, doações e proteção contra contaminação
Que estados prévios são aceites?
Ao iniciar a migração exige-se:
- Reservas de Token do Pair iguais a 0.
- Saldo real de Token do Pair igual a 0.
- Oferta total de LP do Pair igual a 0; não podem existir LP anteriores de outros titulares.
- Reservas de USDC do Pair não superiores ao seu saldo real de USDC.
- Validação por Profile do endereço do Pair, composição dos ativos, local de negociação associado e identidade do código.
Após as transferências da migração verifica-se também o USDC efetivamente acrescentado; após emitir os LP valida-se que as reservas de Token igualem a quantidade da migração e que as de USDC sejam saldo real de USDC anterior à migração + USDC fornecido agora. Uma discrepância provoca PairContaminated ou outro erro de validação e reverte a transação.
O registo de configuração não se limita a verificar um número de versão. A migração revalida os hashes de código e as relações do implementador e da implementação do Engine e do Factory/Router do local de negociação; verifica o hash dos parâmetros do Engine e a configuração do Oracle; deriva o endereço previsto com o hash do código de inicialização do Pair e valida o Pair real com o hash do código em execução. Se o código em execução do implementador ou da implementação diferir do registado, a compra final é revertida atomicamente em vez de utilizar silenciosamente a implementação alterada.
Estas regras não garantem aceitar doações de qualquer dimensão: continuam em vigor os limites inteiros das reservas do Pair, a emissão de LP e as restantes restrições de execução. As operações normais do Pair também podem retirar antes de migrar as doações não incorporadas nas reservas; deve utilizar-se o saldo no momento da execução.
Para onde vão as doações?
Seja
Os Token fornecidos por esta curva continuam a ser os 206,900,000 fixos. As doações de USDC conservadas ao migrar entram na pool real, sem serem devolvidas ao doador nem ao último comprador. Elevam o preço inicial real e actualStartMarketCap, não reescrevem a âncora ideal fixa da migração. A libertação de capacidade ponderada pelo tempo também não se completa imediatamente devido a uma doação que eleve o preço no instante da migração.
Exemplo E: conservar mais 170 USDC no Pair principal do exemplo D
| Elemento | Sem doação | Com doação adicional de 170 USDC |
|---|---|---|
| Reservas externas de Token | 206,900,000 | 206,900,000 |
| Reservas externas de USDC | 12,161.433369 | 12,331.433369 |
| Capitalização inicial real do protocolo | 58,779.281628806186563557 | 59,600.934601256645722571 |
| Capitalização fixa de migração ideal | 58,779.281633639439342677 | 58,779.281633639439342677 |
Transferir USDC diretamente para Factory é diferente: não aumenta automaticamente realNativeReserves de um Token e, por isso, não se transforma automaticamente nos seus fundos de migração. Devem distinguir-se o saldo contabilístico da curva, o saldo total de Factory e o saldo real do Pair.
5. Destino final dos LP e do inventário de empréstimos
Nenhum LP inicial pode ser resgatado por titulares normais
Também exige que os LP emitidos nesta operação sejam superiores a 0 e que o total de LP ultrapasse a liquidez devolvida por ela, cobrindo a estrutura de liquidez mínima inicial V2. Nem o criador, as operações, a carteira do protocolo nem o último comprador recebem estes LP da migração.
Aqui, «queimar LP» significa que os LP pertencem ao endereço zero e as contas normais não os podem retirar para resgatar, não que Oferta total ERC-20 passe a 0; os Token do Pair também não são queimados. A verificação da migração refere-se ao momento inicial e não permite afirmar que o AMM externo nunca acrescentará liquidez nem emitirá outros LP no futuro.
A reserva de empréstimos permanece independente
Os 199,861,071 Token já estavam no endereço pré-calculado do Engine. A migração apenas implementa e inicializa o Engine, sem emitir novamente nem transferir esse capital para o Pair. A inicialização lê as reservas reais do Pair e mantém uma contabilidade independente do capital emprestável disponível.