usdcx-v1

Resumen del contrato USDCx-v1

El usdcx-v1 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:

  • Parsear y validar las cargas de intención de depósito

  • Recuperar y verificar firmas de atestadores de Circle

  • Aplicar protección contra replays basada en nonces

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

  • Quemar USDCx para iniciar retiros

  • Gestionar claves de atestadores de Circle

  • Manejar conversiones de destinatarios específicas de Stacks

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

  • Gestionar umbrales mínimos de retiro

Funciona en conjunto con el usdcx contrato token principal, que hace cumplir los roles del protocolo (mint, gobernanza, etc.). Todas las acuñaciones/quemas se realizan 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, ambos recibidos fuera de cadena como parte del proceso de puente. La intención de depósito se parsea 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 es siempre 10003.

  • Porque Stacks solo soporta u128 enteros, las funciones de deserialización lanzan 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 registro de las claves públicas de atestadores válidos. Cuando se proporciona una intención de depósito, debe estar firmada por una clave pública en este mapa.

Quemado de USDCx

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

El .usdcx-v1 el 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?