gitextract_on91dfbr/ ├── .devcontainer.json ├── .editorconfig ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── BUG.md │ └── HELP.md ├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── .prettierignore ├── .prettierrc ├── .vscode/ │ └── settings.json ├── Dockerfile ├── LICENSE ├── README.md ├── bash/ │ ├── .bashrc │ └── sourcerer.sh ├── build-a-client-side-app/ │ ├── .gitignore │ ├── mess.json │ └── mess.ts ├── build-a-smart-contract/ │ ├── package.json │ ├── program/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ └── process_instruction.rs │ └── wallet.json ├── build-a-university-certification-nft/ │ ├── client/ │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.css │ │ │ ├── app.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── index.d.ts │ ├── index.js │ ├── metadatas.json │ ├── package.json │ ├── server.js │ └── utils.js ├── build-an-anchor-leaderboard/ │ └── rock-destroyer/ │ ├── .gitignore │ ├── .prettierignore │ ├── Anchor.toml │ ├── Cargo.toml │ ├── migrations/ │ │ └── deploy.ts │ ├── package.json │ ├── programs/ │ │ └── rock-destroyer/ │ │ ├── Cargo.toml │ │ ├── Xargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── tests/ │ │ └── rock-destroyer.ts │ └── tsconfig.json ├── build-and-deploy-your-freeform-app/ │ └── .gitkeep ├── config/ │ ├── projects.json │ └── state.json ├── curriculum/ │ └── locales/ │ └── english/ │ ├── build-a-client-side-app.md │ ├── build-a-smart-contract.md │ ├── build-a-university-certification-nft.md │ ├── build-an-anchor-leaderboard.md │ ├── build-and-deploy-your-freeform-app.md │ ├── learn-anchor-by-building-tic-tac-toe-part-1.md │ ├── learn-anchor-by-building-tic-tac-toe-part-2.md │ ├── learn-how-to-build-a-client-side-app-part-1.md │ ├── learn-how-to-build-a-client-side-app-part-2.md │ ├── learn-how-to-build-for-mainnet.md │ ├── learn-how-to-deploy-to-devnet.md │ ├── learn-how-to-interact-with-on-chain-programs.md │ ├── learn-how-to-set-up-solana-by-building-a-hello-world-smart-contract.md │ ├── learn-solanas-token-program-by-minting-a-fungible-token.md │ └── learn-the-metaplex-sdk-by-minting-an-nft.md ├── freecodecamp.conf.json ├── learn-anchor-by-building-tic-tac-toe-part-1/ │ └── .gitkeep ├── learn-anchor-by-building-tic-tac-toe-part-2/ │ ├── .prettierignore │ └── tic-tac-toe/ │ ├── Anchor.toml │ ├── Cargo.toml │ ├── migrations/ │ │ └── deploy.ts │ ├── package.json │ ├── programs/ │ │ └── tic-tac-toe/ │ │ ├── Cargo.toml │ │ ├── Xargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── tests/ │ │ └── tic-tac-toe.ts │ └── tsconfig.json ├── learn-how-to-build-a-client-side-app-part-1/ │ ├── .gitkeep │ └── tic-tac-toe/ │ ├── .gitignore │ ├── Anchor.toml │ ├── Cargo.toml │ ├── app/ │ │ ├── .gitignore │ │ ├── index.css │ │ ├── index.html │ │ ├── index.js │ │ ├── package.json │ │ ├── utils.js │ │ └── wallet.js │ ├── migrations/ │ │ └── deploy.ts │ ├── package.json │ ├── programs/ │ │ └── tic-tac-toe/ │ │ ├── Cargo.toml │ │ ├── Xargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── tests/ │ │ └── tic-tac-toe.ts │ └── tsconfig.json ├── learn-how-to-build-a-client-side-app-part-2/ │ ├── app/ │ │ ├── .gitignore │ │ ├── index.css │ │ ├── index.html │ │ ├── index.js │ │ ├── package.json │ │ ├── utils.js │ │ ├── wallet.js │ │ └── web3.js │ └── tic_tac_toe.ts ├── learn-how-to-build-for-mainnet/ │ ├── _answer/ │ │ ├── Anchor.toml │ │ ├── Cargo.toml │ │ ├── app/ │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── app.css │ │ │ │ ├── app.tsx │ │ │ │ ├── index.css │ │ │ │ ├── main.tsx │ │ │ │ ├── utils.ts │ │ │ │ └── vite-env.d.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ └── vite.config.ts │ │ ├── migrations/ │ │ │ └── deploy.ts │ │ ├── package.json │ │ ├── programs/ │ │ │ └── todo/ │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── tests/ │ │ │ └── todo.ts │ │ └── tsconfig.json │ └── todo/ │ ├── .gitignore │ ├── .prettierignore │ ├── Anchor.toml │ ├── Cargo.toml │ ├── app/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.css │ │ │ ├── app.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── utils.ts │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── migrations/ │ │ └── deploy.ts │ ├── package.json │ ├── programs/ │ │ └── todo/ │ │ ├── Cargo.toml │ │ ├── Xargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── tests/ │ │ └── todo.ts │ └── tsconfig.json ├── learn-how-to-deploy-to-devnet/ │ └── todo/ │ ├── Anchor.toml │ ├── Cargo.toml │ ├── app/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.css │ │ │ ├── app.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── utils.ts │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── migrations/ │ │ └── deploy.ts │ ├── package.json │ ├── programs/ │ │ └── todo/ │ │ ├── Cargo.toml │ │ ├── Xargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── tests/ │ │ └── todo.ts │ └── tsconfig.json ├── learn-how-to-interact-with-on-chain-programs/ │ ├── cluster-devnet.env │ ├── cluster-mainnet-beta.env │ ├── cluster-testnet.env │ ├── package.json │ └── src/ │ ├── _answer/ │ │ └── client/ │ │ ├── hello-world.js │ │ └── main.js │ └── program-rust/ │ ├── .gitignore │ ├── Cargo.toml │ └── src/ │ └── lib.rs ├── learn-how-to-set-up-solana-by-building-a-hello-world-smart-contract/ │ ├── .gitignore │ ├── package.json │ ├── src/ │ │ ├── client/ │ │ │ ├── hello_world.ts │ │ │ ├── main.ts │ │ │ └── utils.ts │ │ └── program-rust/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ └── tsconfig.json ├── learn-solanas-token-program-by-minting-a-fungible-token/ │ ├── .gitkeep │ ├── package.json │ └── utils.js ├── learn-the-metaplex-sdk-by-minting-an-nft/ │ ├── package.json │ ├── server.js │ ├── spl-program/ │ │ ├── create-mint-account.js │ │ ├── create-token-account.js │ │ ├── get-token-account.js │ │ ├── get-token-info.js │ │ ├── mint.js │ │ ├── package.json │ │ ├── transfer.js │ │ └── utils.js │ └── utils.js ├── package.json ├── renovate.json └── tooling/ ├── camper-info.js ├── helpers.js ├── rejig.js └── seed.js