For the complete documentation index, see llms.txt. This page is also available as Markdown.

Token sBTC

Resumen

El Contrato del token sBTC (sbtc-token.clar) implementa la funcionalidad de token fungible para sBTC. Administra 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 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 quien llama no es un llamador de protocolo autorizado.

  • token-decimals (u8): El número de decimales del token.

Tokens fungibles

  • sbtc-token: El token fungible principal de sBTC.

  • sbtc-token-locked: Representa tokens sBTC bloqueados.

Variables de datos

  • token-name: El nombre del token (predeterminado: "sBTC").

  • token-symbol: El símbolo del token (predeterminado: "sBTC").

  • token-uri: Un URI opcional para los metadatos del token.

Funciones del protocolo

Estas funciones solo pueden ser llamadas por contratos de protocolo autorizados:

protocol-transfer

  • Parámetros: amount: uint, sender: principal, recipient: principal

  • Devuelve: (response bool uint)

protocol-lock

  • Parámetros: amount: uint, owner: principal

  • Devuelve: (response bool uint)

protocol-unlock

  • Parámetros: amount: uint, owner: principal

  • Devuelve: (response bool uint)

protocol-mint

  • Parámetros: amount: uint, recipient: principal

  • Devuelve: (response bool uint)

protocol-burn

  • Parámetros: amount: uint, owner: principal

  • Devuelve: (response bool uint)

protocol-burn-locked

  • Parámetros: amount: uint, owner: principal

  • Devuelve: (response bool uint)

protocol-set-name

  • Parámetros: new-name: (string-ascii 32)

  • Devuelve: (response bool uint)

protocol-set-symbol

  • Parámetros: new-symbol: (string-ascii 10)

  • Devuelve: (response bool uint)

protocol-set-token-uri

  • Parámetros: new-uri: (optional (string-utf8 256))

  • Devuelve: (response bool uint)

protocol-mint-many

  • Parámetros: recipients: (list 200 {amount: uint, recipient: principal})

  • Devuelve: (response (list 200 (response bool uint)) uint)

Funciones públicas (SIP-010 Trait)

transfer

  • Parámetros: amount: uint, sender: principal, recipient: principal, memo: (optional (buff 34))

  • Devuelve: (response bool uint)

get-name

  • Devuelve: (response (string-ascii 32) uint)

get-symbol

  • Devuelve: (response (string-ascii 10) uint)

get-decimals

  • Devuelve: (response uint uint)

get-balance

Devuelve el saldo total (bloqueado + desbloqueado) de un principal.

  • Parámetros: who: principal

  • Devuelve: (response uint uint)

get-balance-available

Devuelve el saldo disponible (desbloqueado) de un principal.

  • Parámetros: who: principal

  • Devuelve: (response uint uint)

get-balance-locked

Devuelve el saldo bloqueado de un principal.

  • Parámetros: who: principal

  • Devuelve: (response uint uint)

get-total-supply

  • Devuelve: (response uint uint)

get-token-uri

  • Devuelve: (response (optional (string-utf8 256)) uint)

Funciones privadas

protocol-mint-many-iter

  • Función auxiliar para acuñar tokens a varios destinatarios.

  • Parámetros: item: {amount: uint, recipient: principal}

  • Devuelve: (response bool uint)

Consideraciones de seguridad

1

Control de acceso

Las funciones de protocolo solo pueden ser llamadas por contratos autorizados, aplicado mediante el sbtc-registry contrato.

2

Verificación de propiedad

El transfer function verifica 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, garantizando una contabilidad adecuada.

Interacciones con otros contratos

  • .sbtc-registry: Se usa para validar los llamadores del protocolo para operaciones privilegiadas.

¿Te fue útil?