Token sBTC
Resumen
El Contrato del token sBTC (sbtc-token.clar) implementa la funcionalidad de token fungible para sBTC. Gestiona tanto los tokens sBTC desbloqueados como los bloqueados y proporciona funciones para acuñar, quemar, transferir y consultar información del token. sBTC es un token fungible conforme al estándar SIP-010.
Constantes
ERR_NOT_OWNER(u4): Error cuando el remitente intenta mover un token que no posee.ERR_NOT_AUTH(u5): Error cuando el llamador no es un llamador de protocolo autorizado.decimales-del-token(u8): El número de lugares decimales del token.
Tokens fungibles
sbtc-token: El token fungible sBTC principal.sbtc-token-bloqueado: Representa tokens sBTC bloqueados.
Variables de datos
nombre-del-token: El nombre del token (por defecto: "sBTC").simbolo-del-token: El símbolo del token (por defecto: "sBTC").uri-del-token: Una URI opcional para los metadatos del token.
Funciones del protocolo
Estas funciones solo pueden ser llamadas por contratos de protocolo autorizados:
protocolo-transferencia
Parámetros:
cantidad: uint,remitente: principal,destinatario: principalDevuelve:
(response bool uint)
protocol-lock
Parámetros:
cantidad: uint,propietario: principalDevuelve:
(response bool uint)
protocol-unlock
Parámetros:
cantidad: uint,propietario: principalDevuelve:
(response bool uint)
protocol-mint
Parámetros:
cantidad: uint,destinatario: principalDevuelve:
(response bool uint)
protocolo-quema
Parámetros:
cantidad: uint,propietario: principalDevuelve:
(response bool uint)
protocol-burn-locked
Parámetros:
cantidad: uint,propietario: principalDevuelve:
(response bool uint)
protocolo-establecer-nombre
Parámetros:
nuevo-nombre: (string-ascii 32)Devuelve:
(response bool uint)
protocolo-establecer-simbolo
Parámetros:
nuevo-simbolo: (string-ascii 10)Devuelve:
(response bool uint)
protocolo-establecer-token-uri
Parámetros:
nueva-uri: (optional (string-utf8 256))Devuelve:
(response bool uint)
protocolo-acuñar-muchos
Parámetros:
destinatarios: (list 200 {amount: uint, recipient: principal})Devuelve:
(response (list 200 (response bool uint)) uint)
Funciones públicas (Rasgo SIP-010)
transferir
Parámetros:
cantidad: uint,remitente: principal,destinatario: principal,memo: (optional (buff 34))Devuelve:
(response bool uint)
obtener-nombre
Devuelve:
(response (string-ascii 32) uint)
obtener-simbolo
Devuelve:
(response (string-ascii 10) uint)
obtener-decimales
Devuelve:
(response uint uint)
obtener-saldo
Devuelve el saldo total (bloqueado + desbloqueado) para un principal.
Parámetros:
quien: principalDevuelve:
(response uint uint)
obtener-saldo-disponible
Devuelve el saldo disponible (desbloqueado) para un principal.
Parámetros:
quien: principalDevuelve:
(response uint uint)
obtener-saldo-bloqueado
Devuelve el saldo bloqueado para un principal.
Parámetros:
quien: principalDevuelve:
(response uint uint)
obtener-suministro-total
Devuelve:
(response uint uint)
obtener-token-uri
Devuelve:
(response (optional (string-utf8 256)) uint)
Funciones Privadas
protocolo-acuñar-muchos-iter
Función auxiliar para acuñar tokens a múltiples destinatarios.
Parámetros:
elemento: {amount: uint, recipient: principal}Devuelve:
(response bool uint)
Consideraciones de Seguridad
Control de Acceso
Las funciones del protocolo solo pueden ser llamadas por contratos autorizados, aplicado a través del sbtc-registry contrato.
Verificación de propiedad
El transferir La función comprueba que el remitente posee los tokens que se están transfiriendo.
Seguimiento separado de tokens
El contrato mantiene un seguimiento separado de los tokens bloqueados y desbloqueados, asegurando una contabilidad adecuada.
Interacciones con Otros Contratos
.sbtc-registry: Usado para validar llamadores del protocolo para operaciones privilegiadas.
¿Te fue útil?