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:

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

  • Recuperar y verificar firmas de atestadores de Circle

  • Hacer cumplir la protección contra repetición basada en nonces

  • Acuñar USDCx a través del usdcx contrato de 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 principal usdcx contrato de token, que hace cumplir los roles del protocolo (mint, gobernanza, etc.). Todas las acuñaciones/quemas ocurren a través de protocol-mint y protocolo-quema.

Acuñación de USDCx

El punto de entrada para acuñar USDCx es mediante 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 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.

  • 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 el 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 de Stacks. Se emite un print evento, que se utiliza 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?