Token sBTC

Resumen

El Contrato del token sBTCarrow-up-right (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: principal

  • Devuelve: (response bool uint)

protocol-lock

  • Parámetros: cantidad: uint, propietario: principal

  • Devuelve: (response bool uint)

protocol-unlock

  • Parámetros: cantidad: uint, propietario: principal

  • Devuelve: (response bool uint)

protocol-mint

  • Parámetros: cantidad: uint, destinatario: principal

  • Devuelve: (response bool uint)

protocolo-quema

  • Parámetros: cantidad: uint, propietario: principal

  • Devuelve: (response bool uint)

protocol-burn-locked

  • Parámetros: cantidad: uint, propietario: principal

  • Devuelve: (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: principal

  • Devuelve: (response uint uint)

obtener-saldo-disponible

Devuelve el saldo disponible (desbloqueado) para un principal.

  • Parámetros: quien: principal

  • Devuelve: (response uint uint)

obtener-saldo-bloqueado

Devuelve el saldo bloqueado para un principal.

  • Parámetros: quien: principal

  • Devuelve: (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

1

Control de Acceso

Las funciones del protocolo solo pueden ser llamadas por contratos autorizados, aplicado a través del sbtc-registry contrato.

2

Verificación de propiedad

El transferir La función comprueba que el remitente posee los tokens que se están transfiriendo.

3

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?