메인 콘텐츠로 건너뛰기

빠른 접근

바로 코드로 들어가고 싶다면:

GitHub

Rust Counter 테스트

GitHub

Pinocchio Counter 테스트

Guide

로컬 개발

단계별 가이드

프로그램의 delegation 및 undelegation instruction을 호출하는 유효한 트랜잭션을 구성하세요。 이 프로젝트의 전체 테스트는 Typescript 테스트 스크립트 에서 확인할 수 있습니다。
1
2

Base Layer에서 PDA Delegate 하기

Base Layer에서 상태 계정을 위임하는 CPI hook 테스트

이 공용 검증자들은 개발용으로 지원됩니다. 위임 명령에 해당 ER 검증자를 반드시 추가하세요.

메인넷
  • 아시아 (as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • EU (eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • 미국 (us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (mainnet-tee.magicblock.app): MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
데브넷
  • 아시아 (devnet-as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • EU (devnet-eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • 미국 (devnet-us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (devnet-tee.magicblock.app): FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA
로컬넷
  • 로컬 ER (localhost:7799): mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
3

ER에서 PDA Commit 하기

ER에서 상태 계정을 커밋하는 CPI hook 테스트
4

ER에서 PDA Undelegate 하기

ER에서 상태 계정을 위임 해제하는 CPI hook 테스트

Counter 예제

다음 소프트웨어 패키지가 필요할 수 있으며, 다른 버전도 호환될 수 있습니다.
소프트웨어버전설치 가이드
Solana2.3.13Solana 설치
Rust1.85.0Rust 설치
Node24.10.0Node 설치

코드 스니펫

SDK 가져오기 및 Connection 생성

@magicblock-labs/ephemeral-rollups-sdk 또는 @magicblock-labs/ephemeral-rollups-kit 를 가져오고, 테스트와 트랜잭션 전송 전에 connection을 초기화합니다。
yarn add @magicblock-labs/ephemeral-rollups-kit@latest
이 공개 RPC 엔드포인트들은 현재 무료이며 개발용으로 지원됩니다:
Magic Router Devnet: https://devnet-router.magicblock.app
Solana Devnet: https://api.devnet.solana.com
ER Devnet: https://devnet.magicblock.app
TEE Devnet: https://devnet-tee.magicblock.app/
자세한 내용은 여기 에서 확인하세요.
import {
  Instruction,
  getAddressEncoder,
  getProgramDerivedAddress,
  AccountRole,
  createKeyPairFromBytes,
  getAddressFromPublicKey,
  address,
  createTransactionMessage,
  appendTransactionMessageInstructions,
  pipe,
  setTransactionMessageFeePayer,
} from "@solana/kit";

import {
  Connection,
  DELEGATION_PROGRAM_ID,
  delegationRecordPdaFromDelegatedAccount,
  delegationMetadataPdaFromDelegatedAccount,
  delegateBufferPdaFromDelegatedAccountAndOwnerProgram,
  MAGIC_CONTEXT_ID,
  MAGIC_PROGRAM_ID,
} from "@magicblock-labs/ephemeral-rollups-kit";

// Set up a base and ephemeral connection (alternatively use router, see Magic Router)
const connection = await Connection.create(
  process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com",
  process.env.WS_ENDPOINT || "wss://api.devnet.solana.com"
);
const ephemeralConnection = await Connection.create(
  process.env.EPHEMERAL_PROVIDER_ENDPOINT || "https://devnet-as.magicblock.app",
  process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app"
);

// Prepare user
const userKeypair = await initializeSolSignerKeypair();
const userPubkey = await getAddressFromPublicKey(userKeypair.publicKey);

// Get PDA
const addressEncoder = getAddressEncoder();
const [counterPda, bump] = await getProgramDerivedAddress({
  programAddress: PROGRAM_ID,
  seeds: [Buffer.from("counter_account"), addressEncoder.encode(userPubkey)],
});
⬆️ Back to Top

Solana 익스플로러

Solana에서의 트랜잭션과 계정 정보를 확인해 보세요.

Solana 익스플로러

공식 Solana 익스플로러

Solscan

Solana 블록체인 살펴보기

Solana RPC 제공업체

기존 RPC 제공업체를 통해 트랜잭션과 요청을 전송하세요.

Solana

Free Public Nodes

Helius

Free Shared Nodes

Triton

Dedicated High-Performance Nodes

Solana 검증자 대시보드

Solana 검증자 인프라의 실시간 업데이트를 확인하세요.

Solana Beach

Get Validator Insights

Validators App

Discover Validator Metrics

서버 상태

Solana와 MagicBlock의 서버 상태를 확인해 보세요.

Solana Status

Subscribe to Solana Server Updates

MagicBlock Status

Subscribe to MagicBlock Server Status