usdcx-token
Resumen del Contrato USDCx-Token
Este contrato implementa USDCx, un token fungible SIP-010 en Stacks con un sistema de control de acceso basado en roles y funcionalidad de pausa para la seguridad del protocolo. Expone la interfaz estándar SIP-010 para transferencias, consultas de suministro y metadatos, mientras proporciona funciones sólo para el protocolo para acuñar, quemar, actualizaciones de gobernanza y pausa.
Roles
El contrato define tres roles privilegiados:
Gobernanza (
governance-role) – gestiona la configuración del protocolo, actualiza los metadatos del token y asigna roles.Acuñar (
mint-role) – autorizado para acuñar, quemar y realizar transferencias a nivel de protocolo.Pausa (
pause-role) – autorizado para pausar y reanudar el protocolo.
Una pausa del protocolo detiene las operaciones que cambian el estado por seguridad. El desplegador del contrato recibe automáticamente el gobernance rol. El contrato complementario .usdcx-v1 recibe automáticamente el mint rol.
Desglose Función por Función
Funciones Estándar SIP-010
transfer(amount, sender, recipient, memo)
transfer(amount, sender, recipient, memo)Transfiere USDCx entre principales, siguiendo las reglas SIP-010. La función verifica que el remitente sea ya sea tx-sender o contract-caller (para contratos que gestionan custodia o bóvedas) y luego realiza la transferencia. Se registra en la cadena un memo opcional.
get-name(), get-symbol(), get-decimals()
get-name(), get-symbol(), get-decimals()Getters de metadatos estándar SIP-010 que devuelven el nombre del token, el símbolo y la precisión decimal.
get-balance(who), get-balance-available(who), get-balance-locked(who)
get-balance(who), get-balance-available(who), get-balance-locked(who)Devuelve el saldo de tokens para el principal dado. En esta implementación, las tres funciones de acceso devuelven el mismo valor de saldo SIP-010.
get-total-supply()
get-total-supply()Devuelve la oferta total de USDCx acuñada menos la quemada.
get-token-uri()
get-token-uri()Devuelve el URI de metadatos del token.
Validación de llamantes del protocolo
Estas funciones hacen cumplir los permisos basados en roles del contrato.
is-protocol-caller(role, contract)
is-protocol-caller(role, contract)Comprueba si el principal de contrato especificado posee el rol requerido.
validate-protocol-caller(role, contract)
validate-protocol-caller(role, contract)Asegura que el llamante tenga el rol correcto. Si no, devuelve ERR_UNAUTHORIZED.
is-protocol-paused()
is-protocol-paused()Devuelve si el protocolo está actualmente en pausa.
validate-protocol-active()
validate-protocol-active()Asegura que el protocolo no esté en pausa, de lo contrario devuelve ERR_PAUSED.
Operaciones de Token Exclusivas del Protocolo
Estas funciones habilitan acuñación/quemado/transferencias exclusivamente para contratos de protocolo autorizados.
protocol-transfer(amount, sender, recipient)
protocol-transfer(amount, sender, recipient)Realiza una transferencia a nivel de protocolo en nombre de otro contrato. Sólo los llamantes con el rol mint pueden usarla. Falla si el protocolo está en pausa.
protocol-mint(amount, recipient)
protocol-mint(amount, recipient)Acuña nuevos USDCx a un principal. Restringido al rol mint y deshabilitado cuando está en pausa.
protocol-burn(amount, owner)
protocol-burn(amount, owner)Quema tokens del saldo de un principal. También restringido al rol mint y deshabilitado cuando está en pausa.
protocol-mint-many(recipients)
protocol-mint-many(recipients)Acuña por lotes tokens a múltiples destinatarios en una sola llamada. Cada elemento incluye { amount, recipient }. Sólo invocable por entidades con el rol mint.
Funciones de Gobernanza
Sólo el rol governance puede llamar a estas funciones.
protocol-set-name(new-name)
protocol-set-name(new-name)Actualiza el nombre SIP-010 del token.
protocol-set-symbol(new-symbol)
protocol-set-symbol(new-symbol)Actualiza el símbolo ticker SIP-010 del token.
protocol-set-token-uri(new-uri)
protocol-set-token-uri(new-uri)Actualiza el URI de metadatos SIP-016.
set-active-protocol-caller(caller, role, enabled)
set-active-protocol-caller(caller, role, enabled)Agrega o elimina un principal de un rol específico del protocolo. Se usa para rotar sistemas, actualizar contratos complementarios o delegar nueva responsabilidad.
Controles de Pausa
Estas funciones permiten al protocolo detener operaciones por seguridad o mantenimiento.
pause()
pause()Pausa el contrato, deshabilitando acuñación, quemado y todas las acciones exclusivas del protocolo. Sólo invocable por el rol pause.
unpause()
unpause()Vuelve a habilitar el protocolo después de una pausa. También restringido al rol pause.
Ambas funciones emiten un evento on-chain para transparencia.
Última actualización
¿Te fue útil?