For the complete documentation index, see llms.txt. This page is also available as Markdown.

usdcx-v1

Resumen del contrato USDCx-v1

El usdcx-v1 el contrato implementa el protocolo USDC xReserve para mover USDC entre Stacks y cadenas externas. Sirve como el punto de entrada principal para acuñar y quemar USDCx basado en intenciones de depósito emitidas por Circle.

Este contrato maneja:

  • Analizar y validar cargas útiles de intenciones de depósito

  • Recuperar y verificar firmas de atestadores de Circle

  • Aplicar protección contra reutilización basada en nonce

  • Acuñar USDCx a través del usdcx contrato de token

  • Quemar USDCx para iniciar retiradas

  • Gestionar las claves de los atestadores de Circle

  • Manejar conversiones de destinatarios específicas de Stacks

  • Aplicar lógica de comisiones para acuñaciones patrocinadas

  • Gestionar umbrales mínimos de retirada

Funciona en conjunto con el principal usdcx contrato de token, que aplica los roles del protocolo (mint, governance, etc.). Toda la acuñación/quema ocurre a través de protocol-mint y protocol-burn.

Acuñación de USDCx

El punto de entrada para acuñar USDCx es a través de la mint función. El llamador proporciona una intención de depósito serializada, junto con una firma, ambas recibidas fuera de la cadena como parte del proceso de puente. La intención de depósito se analiza según la especificación xReserve.

Hay algunos elementos específicos de Stacks:

  • El remote-token de la intención de depósito DEBE ser los bytes serializados por consenso del principal .usdcx (donde la dirección del desplegador depende de la red), con 0x rellenado a la izquierda.

  • El remote-domain para Stacks siempre es 10003.

  • Debido a que Stacks solo admite u128 enteros, las funciones de deserialización generan un error si cualquier entero de 64 bytes en la intención de depósito es mayor que u128::max. Esto está permitido según la especificación xReserve.

Verificación de atestaciones

El .usdcx-v1 el contrato mantiene un circle-attestors mapa para llevar un registro de las claves públicas de los atestadores válidos. Cuando se proporciona una intención de depósito, debe estar firmada por una clave pública de este mapa.

Quema de USDCx

Para retirar USDCx a otra cadena, los usuarios llaman a burn. La cantidad especificada de USDCx se quema de su cuenta de Stacks. Se emite un print evento, que se usa para desencadenar una atestación de quema fuera de la cadena.

El .usdcx-v1 contrato almacena una variable de cantidad mínima. Los usuarios deben retirar al menos esta cantidad, o la quema falla. Las cuentas con el rol 0x04 pueden actualizar esta variable.

Última actualización

¿Te fue útil?