Communitygithub.com

Earnwithalee7890/stx-contract-deployment-hiro

Collection complète de contrats intelligents Clarity et kit SDK premium pour la blockchain Stacks, propulsé par @earnwithalee/stx-contract. Fournit la connexion de portefeuille, les requêtes de solde/transaction STX, l'encodage des valeurs Clarity et des utilitaires d'appel de contrat — entièrement typé, indépendant du réseau, et optimisé pour Next.js, Vite et les frontends modernes.

Qu'est-ce que stx-contract-deployment-hiro ?

Ce skill vous permet de déployer, interagir et surveiller des contrats intelligents Clarity sur la blockchain Stacks avec une intégration SDK complète. Il couvre la détection et la connexion de portefeuilles (Leather, Xverse), les requêtes de soldes et transactions STX, l'encodage des valeurs Clarity, ainsi que l'appel de fonctions de contrat en lecture/écriture. Le SDK `@earnwithalee/stx-contract` est entièrement typé en TypeScript, fonctionne sur les réseaux mainnet et testnet, et s'intègre parfaitement avec Next.js, Vite et d'autres frameworks modernes. Il inclut également la configuration de Chainhook pour le streaming d'événements en temps réel, et recommande Clarinet pour les tests locaux. Idéal pour les développeurs construisant des applications décentralisées Stacks avec une pile technique cohérente et maintenable.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait stx-contract-deployment-hiro ?

Collection de contrats intelligents Clarity + SDK premium pour la blockchain Stacks. Déployez, interagissez et surveillez des contrats intelligents Stacks — détection de portefeuille, requêtes de solde, encodage Clarity et prise en charge complète des appels de contrat, le tout dans un seul package.

GitHub · NPM — @earnwithalee/stx-contract


Ce que ce skill enseigne

Ce skill couvre :

  • Déploiement et interaction avec des contrats intelligents Clarity sur Stacks Mainnet/Testnet
  • Utilisation du SDK @earnwithalee/stx-contract pour des appels de contrat typés
  • Détection et connexion de portefeuille pour Leather, Xverse et autres portefeuilles Stacks
  • Lecture de l'état on-chain — soldes, transactions, hauteur de bloc, données de contrat
  • Encodage des valeurs Clarity en JavaScript/TypeScript pur
  • Configuration de Chainhook pour le streaming d'événements en temps réel
  • Test des contrats avec Clarinet avant le déploiement sur mainnet

Outils recommandés

  • search : ripgrep — recherche rapide dans le code
  • deploy : Acme Deploy — déploiement sur Vercel ou en production
  • format : prettier — formatage du code (npm run format)
  • lint : eslint — analyse statique (npm run lint)
  • contracts : Clarinet — test et déploiement local de Clarity
  • explorer : Hiro Explorer — vérification des contrats déployés sur la chaîne
  • runtime : Node.js >= 18
  • blockchain : Stacks — L2 sécurisé par Bitcoin

Installation

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

Démarrage rapide

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

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

Connexion du portefeuille

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

// Connexion du portefeuille (Leather / Xverse détecté automatiquement)
const address = await sdk.wallet.connectWallet();
console.log('Connecté :', address);

// Détection du fournisseur de portefeuille
const { available, provider } = sdk.wallet.detectWallet();

// Formatage de l'adresse pour l'affichage
const short = sdk.wallet.formatAddress(address); // "SP2F...NFBT"

Données on-chain — soldes et transactions

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

// Obtenir le solde STX
const balance = await sdk.api.getBalance('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');
console.log('Solde :', balance.stx, 'STX');

// Obtenir l'historique des transactions
const txs = await sdk.api.getTransactions('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');

// Obtenir la hauteur de bloc actuelle
const height = await sdk.api.getBlockHeight();

// Vérifier le statut d'une transaction
const status = await sdk.api.getTransactionStatus('0xabc...');

// Lire une fonction read-only d'un contrat
const result = await sdk.api.readContract({
  contractAddress: 'SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT',
  contractName: 'builder-rewards-v3',
  functionName: 'get-total-fees-collected',
  functionArgs: [],
});

Encodage des valeurs Clarity

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

// Encoder différents types Clarity pour les appels de contrat
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'));

Appel d'une fonction de contrat (écriture)

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

Déploiement d'un contrat Clarity (Clarinet)

# Installer l'interface CLI Clarinet
brew install hirosystems/tap/clarinet   # macOS
# ou télécharger depuis https://github.com/hirosystems/clarinet/releases

# Initialiser le projet
clarinet new my-contract && cd my-contract

# Créer un nouveau contrat
clarinet contract new my-token

# Vérifier et tester
clarinet check
clarinet test

# Déployer sur testnet
clarinet deployments generate --testnet
clarinet deployments apply --testnet

# Déployer sur mainnet
clarinet deployments generate --mainnet
clarinet deployments apply --mainnet

Chainhook — streaming d'événements en temps réel

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

Exemple de contrat 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))
  )
)

Exécution locale

git clone https://github.com/Earnwithalee7890/stx-contract-deployment-hiro.git
cd stx-contract-deployment-hiro
npm install
cp .env.example .env    # définir STX_PRIVATE_KEY et HIRO_API_KEY
npm run dev             # serveur de développement Next.js

Variables d'environnement

# .env.example
STX_NETWORK=mainnet                          # mainnet | testnet
STX_PRIVATE_KEY=votre_clé_privée_ici
HIRO_API_KEY=votre_clé_api_hiro               # https://platform.hiro.so
NEXT_PUBLIC_CONTRACT_ADDRESS=SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT

Stack technique

CoucheTechnologie
SDK@earnwithalee/stx-contract (npm)
FrameworkNext.js (App Router)
Contrats intelligentsClarity (Stacks Mainnet)
TestsClarinet + Vitest
PortefeuilleLeather, Xverse (injection de fournisseur)
API ChaîneHiro Extended API v1
BlockchainStacks L2 (sécurisé par Bitcoin)
LangageTypeScript

Licence

MIT — voir LICENSE

Skills associés