Precisão e convenções matemáticas
As convenções de token consistentes, native18, external6, bps e fixado-ponto distinguem modelos contínuos da execução inteira do contrato.
Distinguir primeiro «montantes» de «inteiros brutos»
Os contratos não armazenam USDC nem Token em vírgula flutuante. Os exemplos em unidades humanas deste documento usam expressões como 1,000 USDC; as fórmulas assinaladas como implementação inteira utilizam inteiros brutos da cadeia.
| Notação | Unidade nas fórmulas inteiras | Exemplo |
|---|---|---|
T, a, b | Token18 | 1 Token = 10¹⁸ |
Q, N, C, A | native18 USDC | 1 USDC = 10¹⁸ |
E, R | external6 USDC | 1 USDC = 10⁶ |
σ | Fator de conversão de precisão 10¹² | Não é uma taxa de câmbio monetária |
BPS | Denominador de proporções 10,000 | 100 bps = 1% |
PPM | Denominador de proporções 1,000,000 | 10 ppm = 0.001% |
No código, ether é o sufixo de quantidade 10¹⁸ de Solidity; não significa que este protocolo utilize ETH como ativo de cotação. A adaptação atual trata o USDC nativo de Arc e a interface ERC-20 de USDC com 18/6 casas decimais; esta característica não pode ser generalizada diretamente a qualquer rede EVM.
Conversão entre as duas precisões de USDC
De external6 para native18:
Conversão por defeito a partir de native18:
ε é dust em native18. A conversão exata exige:
Por exemplo, converter 1.234567890123456789 USDC por defeito produz 1.234567 USDC e um resto de 0.000000890123456789 USDC. Se for invocada a via de conversão exata, esta entrada é rejeitada em vez de ser arredondada silenciosamente.
Símbolos de arredondamento
| Símbolo | Significado | Utilizações habituais |
|---|---|---|
floor(x) / ⌊x⌋ | Arredondamento por defeito | Progresso proporcional, distribuições parciais, acumulação de índices |
sqrtFloor(x) | Raiz quadrada inteira arredondada por defeito | Reservas teóricas do modelo de risco |
sqrtCeil(x) | Raiz quadrada inteira arredondada por excesso | Reservas restantes conservadoras na capacidade de risco |
A entrada para uma saída exata V2 padrão utiliza floor(ratio) + 1. Quando ratio é exatamente um inteiro, continua a somar 1, pelo que não pode ser substituído incondicionalmente por ceil(ratio). Por este motivo, a capacidade máxima executável do Quoter também conserva um limite estrito.
Ordem das operações que não pode ser trocada
Em geral:
Índices de ponto fixo
O preço acumulado TWAP usa uma escala de 2¹¹² ; Funding e Legacy usam 2¹²⁸ . Por exemplo, para Funding:
O índice separa a taxa acumulada global da quota de cada posição, evitando ter de escrever a posição no armazenamento a cada segundo. Os dois arredondamentos por defeito podem produzir diferenças mínimas relativamente a uma aproximação em vírgula flutuante; Legacy conserva ainda um resto de alta precisão em separado.
Oferta fixa utilizada para a capitalização
A capitalização interna do protocolo baseia-se na Oferta da curva S = 1,000,000,000 Token:
Não é o FDV calculado com a oferta total de 1,199,861,071 Token , nem uma medida baseada na oferta em circulação. Nas interfaces externas deve distinguir-se a capitalização spot bruta da capitalização de risco limitada, evitando trocar indicadores diferentes.