Skip to content

My submissions and projects for the Solana Turbin3-WBA Cohort

Notifications You must be signed in to change notification settings

jenny07007/Q3T_Sol_Jen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WBA-Turbin3-SOLANA Cohort

TypeScript PreReq

  1. Enroll in the WBA program on Devnet using your GitHub handle:

Rust Registration

  1. Enroll in the WBA program on Devnet using your GitHub handle:

Explore the WBA Program.

🕖 Week-0

Prerequisites

Before starting, ensure you have the following:

  • Node.js and Yarn: These are required for running the scripts.
  • Solana Wallet Keypairs: You should have two wallet keypairs stored at the following locations:
    • ./cluster1/wallet/dev-wallet.json
    • ./cluster1/wallet/wba-wallet.json

Customize Configuration

Single entrypoint for wallets and accounts:

import { dev_wallet, wba_wallet } from "../cluster1/wallet";

export const ACCOUNTS = {
  MINT: "",
};

export const RPC_ENDPOINT = "https://api.devnet.solana.com";

export const WALLETS = {
  WBA_WALLET: wba_wallet,
  DEV_WALLET: dev_wallet,
};

How to run

  1. Install Dependencies
yarn
  1. Run the script
yarn spl_init

🕖 Week-1-Typescript

🔑 Key Concepts

  • Accounts: Everything on-chain is an account.
  • Programs: Stateless executable code.
    • SPL Token Program (Native Program): A standard program on Solana for creating fungible/non-fungible tokens.
      • Mint: The source of new tokens, responsible for creating them.
      • Token Accounts: Hold balances of tokens and are associated with specific mints.
        • ATA (Associated Token Account): Simplifies token management, unique to wallet and mint.
          • PDA (Program Derived Address): A derived account address using a bump, seed, and program ID for deterministic addresses.
  • Transactions: Use Proof-of-History to order and verify instructions atomically.
  • IDL (Interface Definition Language): Defines interfaces for Solana programs, enabling client interactions.
  • Blinks and Actions: Use URLs to create and execute Solana transactions from any web platform

🚀 Ship

🕖 Week-2-Anchor

🔑 Key Concepts

  • State: represents the program's persistent data model, maintaining essential information for the program's operation.
  • Account: essential elements required for instructions to execute. Each instruction interacts with one or more accounts to perform its operations.
  • PDA Account:
    • created deterministically using seeds and the program ID.
    • owned by the program, allowing only the program to modify its state.
    • enables cross-program invocation (CPI), allowing the program to sign transactions on behalf of the account without needing a private key.
  • Instruction : operations that define the logic for specific actions, such as initialize(), upvote(), and downvote(). They interact with accounts, manage parameters, and modify state securely.
  • Context<T> parameters: encapsulates all accounts and data needed for each instruction, as defined by the corresponding account structs.

🚀 Ship

🕖 Week-3 NFT Staking

🔑 Key Concepts

  • Delegation: transfers authority over NFTs from the user to the program.
  • FreezeDelegatedAccountCPI: locks NFTs to prevent transfers while staked.
  • ThawDelegatedAccountCPI: unlocks NFTs during unstaking.
  • Timestamp: tracks when the NFT was last staked, used to calculate rewards and enforce freeze periods.

🚀 Ship

🕖 Week-4

🚀 Ship

About

My submissions and projects for the Solana Turbin3-WBA Cohort

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 55.3%
  • Rust 44.6%
  • JavaScript 0.1%