Communitygithub.com

Stx-Contract-Deployment-Hiro

Umfassende Sammlung von Clarity-Smart-Contracts und SDK-Toolkit für die Stacks-Blockchain, unterstützt durch @earnwithalee/stx-contract. Bietet Wallet-Verbindung, STX-Kontostand/Transaktionsabfragen, Clarity-Wertkodierung und Vertragsaufruffunktionen – vollständig typisiert, netzwerkagnostisch und optimiert für Next.js, Vite und moderne Frontends.

Was ist Stx-Contract-Deployment-Hiro?

Dieses Skill stellt eine vollständige Sammlung von Clarity-Smart-Contracts und ein Premium-SDK für die Stacks-Blockchain bereit. Es ermöglicht Entwicklern, Smart Contracts zu deployen, mit ihnen zu interagieren und On-Chain-Daten zu überwachen – inklusive Wallet-Erkennung, Kontostand- und Transaktionsabfragen, Clarity-Wertkodierung sowie vollständiger Contract-Call-Unterstützung. Das Skill ist netzwerkagnostisch (Mainnet/Testnet) und für moderne JavaScript/TypeScript-Frontends wie Next.js und Vite optimiert. Es unterstützt die Einrichtung von Chainhooks für Echtzeit-Event-Streaming, das Testen mit Clarinet und die Integration mit gängigen Wallets wie Leather und Xverse. Es ist ideal für Entwickler, die auf der Stacks-Blockchain bauen und eine typisierte, effiziente und sofort einsatzbereite SDK-Umgebung benötigen.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Stx-Contract-Deployment-Hiro?

Clarity-Smart-Contract-Sammlung + Premium-SDK für die Stacks-Blockchain. Deployen, interagieren und überwachen Sie Stacks-Smart-Contracts — Wallet-Erkennung, Kontostandsabfragen, Clarity-Kodierung und vollständige Contract-Call-Unterstützung, alles in einem Paket.

GitHub · NPM — @earnwithalee/stx-contract


Was dieses Skill vermittelt

Dieses Skill deckt Folgendes ab:

  • Deployen und Interagieren mit Clarity-Smart-Contracts auf Stacks Mainnet/Testnet
  • Verwendung des @earnwithalee/stx-contract-SDK für typisierte Contract-Aufrufe
  • Wallet-Erkennung und -Verbindung für Leather, Xverse und andere Stacks-Wallets
  • Auslesen des On-Chain-Zustands — Kontostände, Transaktionen, Blockhöhe, Vertragsdaten
  • Clarity-Wertkodierung in reinem JavaScript/TypeScript
  • Chainhook-Einrichtung für Echtzeit-On-Chain-Event-Streaming
  • Testen von Verträgen mit Clarinet vor dem Mainnet-Deployment

Empfohlene Tools

  • Suche: ripgrep — schnelle Codesuche im Repository
  • Deployment: Acme Deploy — Deployment auf Vercel oder in Produktion
  • Formatierung: prettier — Code-Formatierung (npm run format)
  • Linting: eslint — statische Analyse (npm run lint)
  • Verträge: Clarinet — lokales Clarity-Testen & Deployment
  • Explorer: Hiro Explorer — Überprüfen deployed Verträge on-chain
  • Laufzeit: Node.js >= 18
  • Blockchain: Stacks — Bitcoin-gesicherte L2

Installation

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

Schnellstart

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

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

Wallet-Verbindung

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

// Wallet verbinden (Leather / Xverse automatisch erkannt)
const address = await sdk.wallet.connectWallet();
console.log('Verbunden:', address);

// Wallet-Anbieter erkennen
const { available, provider } = sdk.wallet.detectWallet();

// Adresse zur Anzeige formatieren
const short = sdk.wallet.formatAddress(address); // "SP2F...NFBT"

On-Chain-Daten — Kontostände & Transaktionen

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

// STX-Kontostand abfragen
const balance = await sdk.api.getBalance('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');
console.log('Kontostand:', balance.stx, 'STX');

// Transaktionshistorie abfragen
const txs = await sdk.api.getTransactions('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');

// Aktuelle Blockhöhe abfragen
const height = await sdk.api.getBlockHeight();

// Transaktionsstatus prüfen
const status = await sdk.api.getTransactionStatus('0xabc...');

// Eine schreibgeschützte Funktion eines Vertrags lesen
const result = await sdk.api.readContract({
  contractAddress: 'SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT',
  contractName: 'builder-rewards-v3',
  functionName: 'get-total-fees-collected',
  functionArgs: [],
});

Clarity-Wertkodierung

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

// Verschiedene Clarity-Typen für Contract-Aufrufe kodieren
const asciiStr  = sdk.encoding.encodeStringAscii('hallo');
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'));

Aufrufen einer Contract-Funktion (Schreiben)

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 gesendet:', txId);

Deployen eines Clarity-Vertrags (Clarinet)

# Clarinet CLI installieren
brew install hirosystems/tap/clarinet   # macOS
# oder herunterladen von https://github.com/hirosystems/clarinet/releases

# Projekt initialisieren
clarinet new my-contract && cd my-contract

# Neuen Vertrag erstellen
clarinet contract new my-token

# Prüfen und testen
clarinet check
clarinet test

# Auf Testnet deployen
clarinet deployments generate --testnet
clarinet deployments apply --testnet

# Auf Mainnet deployen
clarinet deployments generate --mainnet
clarinet deployments apply --mainnet

Chainhook — Echtzeit-On-Chain-Event-Streaming

// 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
    }
  }
}

Beispiel-Clarity-Vertrag

;; 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))
  )
)

Lokales Ausführen

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

Umgebungsvariablen

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

Tech-Stack

EbeneTechnologie
SDK@earnwithalee/stx-contract (npm)
FrameworkNext.js (App Router)
Smart ContractsClarity (Stacks Mainnet)
TestenClarinet + Vitest
WalletLeather, Xverse (Provider-Injektion)
Chain-APIHiro Extended API v1
BlockchainStacks L2 (Bitcoin-gesichert)
SpracheTypeScript

Lizenz

MIT — siehe LICENSE

Verwandte Skills