Communitygithub.com

Earnwithalee7890/stx-contract-deployment-hiro

ClarityスマートコントラクトのコレクションとStacksブロックチェーン向けSDKツールキットです。ウォレット接続、STX残高・トランザクション照会、Clarity値のエンコード、コントラクト呼び出しユーティリティを提供し、完全に型付けされ、ネットワークに依存せず、Next.jsやViteなどの最新フロントエンドに最適化されています。

stx-contract-deployment-hiro とは?

このスキルは、Stacksブロックチェーン上でClarityスマートコントラクトをデプロイ、操作、監視するための包括的なツールキットです。`@earnwithalee/stx-contract` SDKを中心に、ウォレット検出(Leather、Xverseなど)、残高照会、トランザクション履歴、ブロック高取得、Clarity値のエンコード、公開関数の呼び出しなどを提供します。Next.jsやViteなどのモダンフロントエンド向けに最適化されており、TypeScriptで完全に型付けされています。また、Clarinetを使ったローカルテストやデプロイ、Chainhookによるリアルタイムオンチェーンイベントストリーミングもサポートしています。開発者はこのスキルを使うことで、Stacks上でのdApp開発を効率的に進めることができます。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

stx-contract-deployment-hiro は何をしますか?

Clarityスマートコントラクトコレクション + Stacksブロックチェーン向けプレミアムSDK Stacksスマートコントラクトのデプロイ、操作、監視 — ウォレット検出、残高照会、Clarityエンコード、完全なコントラクト呼び出しサポートを、すべて1つのパッケージで提供します。

GitHub · NPM — @earnwithalee/stx-contract


このスキルで学べること

このスキルでは以下をカバーします:

  • Stacksメインネット/テストネットでのClarityスマートコントラクトのデプロイと操作
  • 型付きコントラクト呼び出しのための**@earnwithalee/stx-contract** SDKの使用
  • Leather、XverseなどのStacksウォレットのウォレット検出と接続
  • 残高、トランザクション、ブロック高、コントラクトデータなどのオンチェーン状態の読み取り
  • 純粋なJavaScript/TypeScriptでのClarity値のエンコード
  • リアルタイムオンチェーンイベントストリーミングのためのChainhookセットアップ
  • メインネットデプロイ前のClarinetによるコントラクトテスト

推奨ツール

  • 検索: ripgrep — リポジトリ内の高速コード検索
  • デプロイ: Acme Deploy — Vercelへのデプロイ
  • フォーマット: prettier — コードフォーマット (npm run format)
  • リンター: eslint — 静的解析 (npm run lint)
  • コントラクト: Clarinet — ローカルのClarityテストとデプロイ
  • エクスプローラー: Hiro Explorer — デプロイされたコントラクトのオンチェーン確認
  • ランタイム: Node.js >= 18
  • ブロックチェーン: Stacks — Bitcoinで保護されたL2

インストール

npm install @earnwithalee/stx-contract
# または
yarn add @earnwithalee/stx-contract
# または
pnpm add @earnwithalee/stx-contract

クイックスタート

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

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

ウォレット接続

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

// ウォレット接続(Leather / Xverse自動検出)
const address = await sdk.wallet.connectWallet();
console.log('接続:', address);

// ウォレットプロバイダーの検出
const { available, provider } = sdk.wallet.detectWallet();

// アドレスを表示用にフォーマット
const short = sdk.wallet.formatAddress(address); // "SP2F...NFBT"

オンチェーンデータ — 残高とトランザクション

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

// STX残高の取得
const balance = await sdk.api.getBalance('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');
console.log('残高:', balance.stx, 'STX');

// トランザクション履歴の取得
const txs = await sdk.api.getTransactions('SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT');

// 現在のブロック高の取得
const height = await sdk.api.getBlockHeight();

// トランザクションステータスの確認
const status = await sdk.api.getTransactionStatus('0xabc...');

// コントラクトの読み取り専用関数を実行
const result = await sdk.api.readContract({
  contractAddress: 'SP2F500B8DTRK1EANJQ054BRAB8DDKN6QCMXGNFBT',
  contractName: 'builder-rewards-v3',
  functionName: 'get-total-fees-collected',
  functionArgs: [],
});

Clarity値のエンコード

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

// コントラクト呼び出し用に様々なClarity型をエンコード
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'));

コントラクト関数の呼び出し(書き込み)

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

Clarityコントラクトのデプロイ(Clarinet)

# Clarinet CLIのインストール
brew install hirosystems/tap/clarinet   # macOS
# または https://github.com/hirosystems/clarinet/releases からダウンロード

# プロジェクトの初期化
clarinet new my-contract && cd my-contract

# 新しいコントラクトの作成
clarinet contract new my-token

# チェックとテスト
clarinet check
clarinet test

# テストネットにデプロイ
clarinet deployments generate --testnet
clarinet deployments apply --testnet

# メインネットにデプロイ
clarinet deployments generate --mainnet
clarinet deployments apply --mainnet

Chainhook — リアルタイムオンチェーンイベントストリーミング

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

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

ローカル実行

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 と HIRO_API_KEY を設定
npm run dev             # Next.js開発サーバー起動

環境変数

# .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

技術スタック

レイヤー技術
SDK@earnwithalee/stx-contract (npm)
フレームワークNext.js(App Router)
スマートコントラクトClarity(Stacksメインネット)
テストClarinet + Vitest
ウォレットLeather、Xverse(プロバイダーインジェクション)
チェーンAPIHiro Extended API v1
ブロックチェーンStacks L2(Bitcoinで保護)
言語TypeScript

ライセンス

MIT — LICENSE を参照

関連スキル