Communitygithub.com

stx-contract-deployment-hiro

Coleção abrangente de contratos inteligentes Clarity e kit de ferramentas SDK para a blockchain Stacks, desenvolvido por @earnwithalee/stx-contract. Fornece conexão com carteira, consultas de saldo/transações STX, codificação de valores Clarity e utilitários de chamada de contrato — totalmente tipado, independente de rede e otimizado para Next.js, Vite e frontends modernos.

O que é stx-contract-deployment-hiro?

Esta skill capacita desenvolvedores a implantar, interagir e monitorar contratos inteligentes Clarity na blockchain Stacks, oferecendo um SDK premium (`@earnwithalee/stx-contract`) para JavaScript/TypeScript. Ela cobre desde a detecção e conexão de carteiras Stacks (Leather, Xverse) até consultas de saldo e transações, codificação de valores Clarity (uint256, strings, bool, buffers) e chamadas de funções públicas de contratos. A ferramenta é otimizada para frameworks modernos como Next.js e Vite, com suporte total a tipos TypeScript. Além do SDK, a skill fornece instruções para configurar chainhooks para streaming de eventos em tempo real, implantar contratos via Clarinet e verificar transações no Hiro Explorer. É útil para desenvolvedores que constroem aplicações descentralizadas (dApps) na Stacks, aproveitando a segurança do Bitcoin.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add Earnwithalee7890/stx-contract-deployment-hiro

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que stx-contract-deployment-hiro faz?

Coleção de contratos inteligentes Clarity + SDK premium para a blockchain Stacks. Implante, interaja e monitore contratos inteligentes Stacks — detecção de carteira, consultas de saldo, codificação Clarity e suporte completo a chamadas de contrato, tudo em um único pacote.

GitHub · NPM — @earnwithalee/stx-contract


O que esta skill ensina

Esta skill aborda:

  • Implantar e interagir com contratos inteligentes Clarity na Mainnet/Testnet da Stacks
  • Usar o SDK @earnwithalee/stx-contract para chamadas de contrato tipadas
  • Detecção e conexão de carteiras para Leather, Xverse e outras carteiras Stacks
  • Leitura de estado on-chain — saldos, transações, altura do bloco, dados de contrato
  • Codificação de valores Clarity em JavaScript/TypeScript puro
  • Configuração de Chainhook para streaming de eventos on-chain em tempo real
  • Testar contratos com Clarinet antes da implantação na mainnet

Ferramentas recomendadas

  • busca: ripgrep — busca rápida de código no repositório
  • implantação: Acme Deploy — implantar em Vercel ou produção
  • formatação: prettier — formatação de código (npm run format)
  • lint: eslint — análise estática (npm run lint)
  • contratos: Clarinet — teste e implantação local de Clarity
  • explorador: Hiro Explorer — verificar contratos implantados on-chain
  • runtime: Node.js >= 18
  • blockchain: Stacks — L2 protegida pelo Bitcoin

Instalação

npm install @earnwithalee/stx-contract
# ou
yarn add @earnwithalee/stx-contract
# ou
pnpm add @earnwithalee/stx-contract

Início rápido

import { StxContractClient } from '@earnwithalee/stx-contract';

const client = new StxContractClient({ network: 'mainnet' });

Conexão com carteira

import sdk from '@earnwithalee/stx-contract';

// Conectar carteira (Leather / Xverse auto-detectados)
const address = await sdk.wallet.connectWallet();
console.log('Conectado:', address);

// Detectar provedor de carteira
const { available, provider } = sdk.wallet.detectWallet();

// Formatando endereço para exibição
const short = sdk.wallet.formatAddress(address); // "SP2F...NFBT"

Dados on-chain — saldos e transações

import sdk from '@earnwithalee/stx-contract';

// Obter saldo STX
const balance = await sdk.api.getBalance('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');
console.log('Saldo:', balance.stx, 'STX');

// Obter histórico de transações
const txs = await sdk.api.getTransactions('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');

// Obter altura do bloco atual
const height = await sdk.api.getBlockHeight();

// Verificar status de uma transação
const status = await sdk.api.getTransactionStatus('0xabc...');

// Ler uma função read-only de um contrato
const result = await sdk.api.readContract({
  contractAddress: 'SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT',
  contractName: 'builder-rewards-v3',
  functionName: 'get-total-fees-collected',
  functionArgs: [],
});

Codificação de valores Clarity

import sdk from '@earnwithalee/stx-contract';

// Codificar diferentes tipos Clarity para chamadas de contrato
const asciiStr  = sdk.encoding.encodeStringAscii('hello');
const uint256   = sdk.encoding.encodeUint(1000000n);
const principal = sdk.encoding.encodePrincipal('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');
const boolVal   = sdk.encoding.encodeBool(true);
const buff      = sdk.encoding.encodeBuffer(Buffer.from('deadbeef', 'hex'));

Chamando uma função de contrato (escrita)

import sdk from '@earnwithalee/stx-contract';
import { AnchorMode, PostConditionMode } from '@stacks/transactions';

const txId = await sdk.contract.callPublic({
  contractAddress: 'SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT',
  contractName: 'builder-rewards-v3',
  functionName: 'register-builder',
  functionArgs: [
    sdk.encoding.encodePrincipal('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT'),
  ],
  anchorMode: AnchorMode.Any,
  postConditionMode: PostConditionMode.Allow,
  network: 'mainnet',
});

console.log('TX submetida:', txId);

Implantando um contrato Clarity (Clarinet)

# Instalar CLI Clarinet
brew install hirosystems/tap/clarinet   # macOS
# ou baixar de https://github.com/hirosystems/clarinet/releases

# Inicializar projeto
clarinet new my-contract && cd my-contract

# Criar um novo contrato
clarinet contract new my-token

# Verificar e testar
clarinet check
clarinet test

# Implantar em testnet
clarinet deployments generate --testnet
clarinet deployments apply --testnet

# Implantar em mainnet
clarinet deployments generate --mainnet
clarinet deployments apply --mainnet

Chainhook — streaming de eventos on-chain em tempo real

// chainhooks/builder-event.json
{
  "name": "builder-registered",
  "version": 1,
  "chain": "stacks",
  "networks": {
    "mainnet": {
      "start_block": 150000,
      "predicate": {
        "scope": "contract_call",
        "contract_identifier": "SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT.builder-rewards-v3",
        "method": "register-builder"
      },
      "expire_after_occurrence": null
    }
  }
}

Exemplo de contrato Clarity

;; builder-rewards-v3.clar
(define-map builder-scores principal uint)

(define-public (register-builder (builder principal))
  (begin
    (asserts! (is-eq tx-sender CONTRACT_OWNER) (err u403))
    (map-set builder-scores builder u0)
    (ok true)
  )
)

(define-read-only (get-score (builder principal))
  (default-to u0 (map-get? builder-scores builder))
)

(define-public (increment-score (builder principal) (points uint))
  (let ((current (get-score builder)))
    (map-set builder-scores builder (+ current points))
    (ok (+ current points))
  )
)

Executando localmente

git clone https://github.com/Earnwithalee7890/stx-contract-deployment-hiro.git
cd stx-contract-deployment-hiro
npm install
cp .env.example .env    # configure STX_PRIVATE_KEY e HIRO_API_KEY
npm run dev             # servidor dev Next.js

Variáveis de ambiente

# .env.example
STX_NETWORK=mainnet                          # mainnet | testnet
STX_PRIVATE_KEY=sua_chave_privada_aqui
HIRO_API_KEY=sua_chave_api_hiro               # https://platform.hiro.so
NEXT_PUBLIC_CONTRACT_ADDRESS=SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT

Stack técnica

CamadaTecnologia
SDK@earnwithalee/stx-contract (npm)
FrameworkNext.js (App Router)
Contratos InteligentesClarity (Stacks Mainnet)
TestesClarinet + Vitest
CarteiraLeather, Xverse (injeção de provedor)
API da ChainHiro Extended API v1
BlockchainStacks L2 (protegida pelo Bitcoin)
LinguagemTypeScript

Licença

MIT — veja LICENSE

Habilidades Relacionadas