From 27cba3ce96d67c42544969e21bd5390077c8a443 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 2 Jun 2026 20:01:25 +0000 Subject: [PATCH 1/2] Make README finance-focused; consolidate finance programs into finance/ Reorder the Financial Software section to lead with Escrow (the recommended first finance program), then Order Book based Exchange, then AMM based Exchange, followed by Token Fundraiser and Vault Strategy. Rewrite descriptions to be approachable to readers learning Solana and finance at the same time. Move all finance programs into a new finance/ directory: - finance/escrow (from tokens/) - finance/order-book (from defi/) - finance/token-swap (from tokens/) - finance/token-fundraiser (from tokens/) - finance/vault-strategy (from defi/) defi/ is removed. Pyth is an oracle-reading single-concept example rather than a finance program, so move oracles/pyth to basics/pyth and list it under the renamed 'Single concept examples' section (formerly 'Basics'); oracles/ is removed. Update workspace members in Cargo.toml, ignored paths in .github/.ghaignore, and order-book internal path references. https://claude.ai/code/session_01CfCCGCXne6eViGamZwy7ot --- .github/.ghaignore | 10 ++--- Cargo.toml | 6 +-- README.md | 40 +++++++++---------- {oracles => basics}/pyth/README.md | 0 {oracles => basics}/pyth/anchor/.gitignore | 0 {oracles => basics}/pyth/anchor/Anchor.toml | 0 {oracles => basics}/pyth/anchor/Cargo.toml | 0 .../anchor/programs/pythexample/Cargo.toml | 0 .../anchor/programs/pythexample}/Xargo.toml | 0 .../anchor/programs/pythexample/src/lib.rs | 0 .../programs/pythexample/tests/test_pyth.rs | 0 {oracles => basics}/pyth/quasar/Cargo.toml | 0 {oracles => basics}/pyth/quasar/Quasar.toml | 0 .../pyth/quasar/src/instructions/mod.rs | 0 .../quasar/src/instructions/read_price.rs | 0 {oracles => basics}/pyth/quasar/src/lib.rs | 0 {oracles => basics}/pyth/quasar/src/tests.rs | 0 .../escrow}/anchor/.gitignore | 0 .../escrow/anchor/.mocharc.json | 0 .../escrow/anchor/.prettierignore | 0 {tokens => finance}/escrow/anchor/Anchor.toml | 0 .../escrow}/anchor/Cargo.toml | 0 {tokens => finance}/escrow/anchor/README.md | 0 .../escrow/anchor/migrations/deploy.ts | 0 .../escrow/anchor/programs/escrow/Cargo.toml | 0 .../escrow/anchor/programs/escrow}/Xargo.toml | 0 .../anchor/programs/escrow/src/error.rs | 0 .../escrow/src/instructions/cancel_offer.rs | 0 .../escrow/src/instructions/make_offer.rs | 0 .../programs/escrow/src/instructions/mod.rs | 0 .../escrow/src/instructions/shared.rs | 0 .../escrow/src/instructions/take_offer.rs | 0 .../escrow/anchor/programs/escrow/src/lib.rs | 0 .../anchor/programs/escrow/src/state/mod.rs | 0 .../anchor/programs/escrow/src/state/offer.rs | 0 .../programs/escrow/tests/test_escrow.rs | 0 {tokens => finance}/escrow/anchor/register.js | 0 {tokens => finance}/escrow/native/Cargo.lock | 0 {tokens => finance}/escrow/native/Cargo.toml | 0 {tokens => finance}/escrow/native/cicd.sh | 0 .../escrow/native/package.json | 0 .../escrow/native/pnpm-lock.yaml | 0 .../escrow/native/program/Cargo.toml | 0 .../escrow/native/program/src/error.rs | 0 .../program/src/instructions/make_offer.rs | 0 .../native/program/src/instructions/mod.rs | 0 .../program/src/instructions/take_offer.rs | 0 .../escrow/native/program/src/lib.rs | 0 .../escrow/native/program/src/state.rs | 0 .../escrow/native/program/src/utils.rs | 0 .../escrow/native/tests/account.ts | 0 .../escrow/native/tests/instruction.ts | 0 .../escrow/native/tests/test.ts | 0 .../escrow/native/tests/utils.ts | 0 .../escrow/native/tsconfig.json | 0 {tokens => finance}/escrow/quasar/Cargo.toml | 0 {tokens => finance}/escrow/quasar/Quasar.toml | 0 .../quasar/src/instructions/cancel_offer.rs | 0 .../quasar/src/instructions/make_offer.rs | 0 .../escrow/quasar/src/instructions/mod.rs | 0 .../quasar/src/instructions/take_offer.rs | 0 {tokens => finance}/escrow/quasar/src/lib.rs | 0 .../escrow/quasar/src/state.rs | 0 .../escrow/quasar/src/tests.rs | 0 .../order-book}/anchor/.gitignore | 0 .../order-book/anchor/Anchor.toml | 0 .../order-book/anchor/Cargo.toml | 0 {defi => finance}/order-book/anchor/README.md | 4 +- .../anchor/programs/order-book/Cargo.toml | 5 +-- .../anchor/programs/order-book/src/errors.rs | 0 .../src/instructions/cancel_order.rs | 0 .../src/instructions/create_market_user.rs | 0 .../src/instructions/initialize_market.rs | 0 .../order-book/src/instructions/mod.rs | 0 .../src/instructions/place_order.rs | 0 .../src/instructions/settle_funds.rs | 0 .../src/instructions/withdraw_fees.rs | 0 .../anchor/programs/order-book/src/lib.rs | 0 .../programs/order-book/src/state/market.rs | 0 .../order-book/src/state/market_user.rs | 0 .../programs/order-book/src/state/matching.rs | 0 .../programs/order-book/src/state/mod.rs | 0 .../programs/order-book/src/state/order.rs | 0 .../order-book/src/state/order_book.rs | 0 .../src/state/slab/LICENSE-OPENBOOK | 0 .../order-book/src/state/slab/iterator.rs | 0 .../programs/order-book/src/state/slab/mod.rs | 0 .../order-book/src/state/slab/nodes.rs | 0 .../order-book/src/state/slab/ordertree.rs | 0 .../order-book/tests/test_order_book.rs | 0 .../token-fundraiser/anchor/Anchor.toml | 0 .../token-fundraiser/anchor/Cargo.toml | 0 .../token-fundraiser/anchor/README.md | 0 .../anchor/programs/fundraiser/Cargo.toml | 0 .../anchor/programs/fundraiser}/Xargo.toml | 0 .../programs/fundraiser/src/constants.rs | 0 .../anchor/programs/fundraiser/src/error.rs | 0 .../fundraiser/src/instructions/checker.rs | 0 .../fundraiser/src/instructions/contribute.rs | 0 .../fundraiser/src/instructions/initialize.rs | 0 .../fundraiser/src/instructions/mod.rs | 0 .../fundraiser/src/instructions/refund.rs | 0 .../anchor/programs/fundraiser/src/lib.rs | 0 .../fundraiser/src/state/contributor.rs | 0 .../fundraiser/src/state/fundraiser.rs | 0 .../programs/fundraiser/src/state/mod.rs | 0 .../fundraiser/tests/test_fundraiser.rs | 0 .../token-fundraiser/quasar/Cargo.toml | 0 .../token-fundraiser/quasar/Quasar.toml | 0 .../src/instructions/check_contributions.rs | 0 .../quasar/src/instructions/contribute.rs | 0 .../quasar/src/instructions/initialize.rs | 0 .../quasar/src/instructions/mod.rs | 0 .../quasar/src/instructions/refund.rs | 0 .../token-fundraiser/quasar/src/lib.rs | 0 .../token-fundraiser/quasar/src/state.rs | 0 .../token-fundraiser/quasar/src/tests.rs | 0 {tokens => finance}/token-swap/README.md | 0 .../token-swap/anchor/Anchor.toml | 0 .../token-swap/anchor/Cargo.toml | 0 .../anchor/programs/token-swap/Cargo.toml | 0 .../anchor/programs/token-swap}/Xargo.toml | 0 .../programs/token-swap/src/constants.rs | 0 .../anchor/programs/token-swap/src/errors.rs | 0 .../instructions/admin/claim_admin_fees.rs | 0 .../token-swap/src/instructions/admin/mod.rs | 0 .../src/instructions/create_config.rs | 0 .../src/instructions/create_pool.rs | 0 .../src/instructions/deposit_liquidity.rs | 0 .../token-swap/src/instructions/mod.rs | 0 .../src/instructions/swap_tokens.rs | 0 .../src/instructions/withdraw_liquidity.rs | 0 .../anchor/programs/token-swap/src/lib.rs | 0 .../programs/token-swap/src/state/config.rs | 0 .../programs/token-swap/src/state/mod.rs | 0 .../token-swap/src/state/pool_config.rs | 0 .../programs/token-swap/tests/test_swap.rs | 0 .../token-swap/quasar/Cargo.toml | 0 .../token-swap/quasar/Quasar.toml | 0 .../src/instructions/claim_admin_fees.rs | 0 .../quasar/src/instructions/create_config.rs | 0 .../quasar/src/instructions/create_pool.rs | 0 .../src/instructions/deposit_liquidity.rs | 0 .../token-swap/quasar/src/instructions/mod.rs | 0 .../quasar/src/instructions/swap_tokens.rs | 0 .../src/instructions/withdraw_liquidity.rs | 0 .../token-swap/quasar/src/lib.rs | 0 .../token-swap/quasar/src/state.rs | 0 .../token-swap/quasar/src/tests.rs | 0 .../vault-strategy/anchor/.gitignore | 0 .../vault-strategy/anchor/Anchor.toml | 0 .../vault-strategy}/anchor/Cargo.toml | 0 .../vault-strategy/anchor/README.md | 0 .../programs/mock-swap-router/Cargo.toml | 0 .../programs/mock-swap-router}/Xargo.toml | 0 .../programs/mock-swap-router/src/error.rs | 0 .../src/instructions/initialize_router.rs | 0 .../mock-swap-router/src/instructions/mod.rs | 0 .../src/instructions/set_rate.rs | 0 .../src/instructions/swap_asset_for_usdc.rs | 0 .../src/instructions/swap_usdc_for_asset.rs | 0 .../programs/mock-swap-router/src/lib.rs | 0 .../mock-swap-router/src/state/asset_rate.rs | 0 .../mock-swap-router/src/state/mod.rs | 0 .../src/state/router_config.rs | 0 .../anchor/programs/vault-strategy/Cargo.toml | 0 .../programs/vault-strategy}/Xargo.toml | 0 .../programs/vault-strategy/src/error.rs | 0 .../src/instructions/collect_fees.rs | 0 .../src/instructions/deposit.rs | 0 .../src/instructions/initialize_strategy.rs | 0 .../vault-strategy/src/instructions/invest.rs | 0 .../vault-strategy/src/instructions/mod.rs | 0 .../src/instructions/rebalance.rs | 0 .../src/instructions/withdraw.rs | 0 .../anchor/programs/vault-strategy/src/lib.rs | 0 .../programs/vault-strategy/src/state/mod.rs | 0 .../vault-strategy/src/state/strategy.rs | 0 .../anchor/tests/vault_strategy.rs | 0 179 files changed, 32 insertions(+), 33 deletions(-) rename {oracles => basics}/pyth/README.md (100%) rename {oracles => basics}/pyth/anchor/.gitignore (100%) rename {oracles => basics}/pyth/anchor/Anchor.toml (100%) rename {oracles => basics}/pyth/anchor/Cargo.toml (100%) rename {oracles => basics}/pyth/anchor/programs/pythexample/Cargo.toml (100%) rename {defi/vault-strategy/anchor/programs/mock-swap-router => basics/pyth/anchor/programs/pythexample}/Xargo.toml (100%) rename {oracles => basics}/pyth/anchor/programs/pythexample/src/lib.rs (100%) rename {oracles => basics}/pyth/anchor/programs/pythexample/tests/test_pyth.rs (100%) rename {oracles => basics}/pyth/quasar/Cargo.toml (100%) rename {oracles => basics}/pyth/quasar/Quasar.toml (100%) rename {oracles => basics}/pyth/quasar/src/instructions/mod.rs (100%) rename {oracles => basics}/pyth/quasar/src/instructions/read_price.rs (100%) rename {oracles => basics}/pyth/quasar/src/lib.rs (100%) rename {oracles => basics}/pyth/quasar/src/tests.rs (100%) rename {defi/order-book => finance/escrow}/anchor/.gitignore (100%) rename {tokens => finance}/escrow/anchor/.mocharc.json (100%) rename {tokens => finance}/escrow/anchor/.prettierignore (100%) rename {tokens => finance}/escrow/anchor/Anchor.toml (100%) rename {defi/vault-strategy => finance/escrow}/anchor/Cargo.toml (100%) rename {tokens => finance}/escrow/anchor/README.md (100%) rename {tokens => finance}/escrow/anchor/migrations/deploy.ts (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/Cargo.toml (100%) rename {defi/vault-strategy/anchor/programs/vault-strategy => finance/escrow/anchor/programs/escrow}/Xargo.toml (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/error.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/instructions/cancel_offer.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/instructions/make_offer.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/instructions/mod.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/instructions/shared.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/instructions/take_offer.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/lib.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/state/mod.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/src/state/offer.rs (100%) rename {tokens => finance}/escrow/anchor/programs/escrow/tests/test_escrow.rs (100%) rename {tokens => finance}/escrow/anchor/register.js (100%) rename {tokens => finance}/escrow/native/Cargo.lock (100%) rename {tokens => finance}/escrow/native/Cargo.toml (100%) rename {tokens => finance}/escrow/native/cicd.sh (100%) rename {tokens => finance}/escrow/native/package.json (100%) rename {tokens => finance}/escrow/native/pnpm-lock.yaml (100%) rename {tokens => finance}/escrow/native/program/Cargo.toml (100%) rename {tokens => finance}/escrow/native/program/src/error.rs (100%) rename {tokens => finance}/escrow/native/program/src/instructions/make_offer.rs (100%) rename {tokens => finance}/escrow/native/program/src/instructions/mod.rs (100%) rename {tokens => finance}/escrow/native/program/src/instructions/take_offer.rs (100%) rename {tokens => finance}/escrow/native/program/src/lib.rs (100%) rename {tokens => finance}/escrow/native/program/src/state.rs (100%) rename {tokens => finance}/escrow/native/program/src/utils.rs (100%) rename {tokens => finance}/escrow/native/tests/account.ts (100%) rename {tokens => finance}/escrow/native/tests/instruction.ts (100%) rename {tokens => finance}/escrow/native/tests/test.ts (100%) rename {tokens => finance}/escrow/native/tests/utils.ts (100%) rename {tokens => finance}/escrow/native/tsconfig.json (100%) rename {tokens => finance}/escrow/quasar/Cargo.toml (100%) rename {tokens => finance}/escrow/quasar/Quasar.toml (100%) rename {tokens => finance}/escrow/quasar/src/instructions/cancel_offer.rs (100%) rename {tokens => finance}/escrow/quasar/src/instructions/make_offer.rs (100%) rename {tokens => finance}/escrow/quasar/src/instructions/mod.rs (100%) rename {tokens => finance}/escrow/quasar/src/instructions/take_offer.rs (100%) rename {tokens => finance}/escrow/quasar/src/lib.rs (100%) rename {tokens => finance}/escrow/quasar/src/state.rs (100%) rename {tokens => finance}/escrow/quasar/src/tests.rs (100%) rename {tokens/escrow => finance/order-book}/anchor/.gitignore (100%) rename {defi => finance}/order-book/anchor/Anchor.toml (100%) rename {defi => finance}/order-book/anchor/Cargo.toml (100%) rename {defi => finance}/order-book/anchor/README.md (99%) rename {defi => finance}/order-book/anchor/programs/order-book/Cargo.toml (85%) rename {defi => finance}/order-book/anchor/programs/order-book/src/errors.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/cancel_order.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/create_market_user.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/initialize_market.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/mod.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/place_order.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/settle_funds.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/instructions/withdraw_fees.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/lib.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/market.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/market_user.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/matching.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/mod.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/order.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/order_book.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/slab/LICENSE-OPENBOOK (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/slab/iterator.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/slab/mod.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/slab/nodes.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/src/state/slab/ordertree.rs (100%) rename {defi => finance}/order-book/anchor/programs/order-book/tests/test_order_book.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/Anchor.toml (100%) rename {tokens => finance}/token-fundraiser/anchor/Cargo.toml (100%) rename {tokens => finance}/token-fundraiser/anchor/README.md (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/Cargo.toml (100%) rename {oracles/pyth/anchor/programs/pythexample => finance/token-fundraiser/anchor/programs/fundraiser}/Xargo.toml (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/constants.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/error.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/instructions/initialize.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/instructions/mod.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/lib.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/state/contributor.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/state/fundraiser.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/src/state/mod.rs (100%) rename {tokens => finance}/token-fundraiser/anchor/programs/fundraiser/tests/test_fundraiser.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/Cargo.toml (100%) rename {tokens => finance}/token-fundraiser/quasar/Quasar.toml (100%) rename {tokens => finance}/token-fundraiser/quasar/src/instructions/check_contributions.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/instructions/contribute.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/instructions/initialize.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/instructions/mod.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/instructions/refund.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/lib.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/state.rs (100%) rename {tokens => finance}/token-fundraiser/quasar/src/tests.rs (100%) rename {tokens => finance}/token-swap/README.md (100%) rename {tokens => finance}/token-swap/anchor/Anchor.toml (100%) rename {tokens => finance}/token-swap/anchor/Cargo.toml (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/Cargo.toml (100%) rename {tokens/escrow/anchor/programs/escrow => finance/token-swap/anchor/programs/token-swap}/Xargo.toml (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/constants.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/errors.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/admin/claim_admin_fees.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/admin/mod.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/create_config.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/create_pool.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/mod.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/swap_tokens.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/lib.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/state/config.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/state/mod.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/src/state/pool_config.rs (100%) rename {tokens => finance}/token-swap/anchor/programs/token-swap/tests/test_swap.rs (100%) rename {tokens => finance}/token-swap/quasar/Cargo.toml (100%) rename {tokens => finance}/token-swap/quasar/Quasar.toml (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/claim_admin_fees.rs (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/create_config.rs (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/create_pool.rs (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/deposit_liquidity.rs (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/mod.rs (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/swap_tokens.rs (100%) rename {tokens => finance}/token-swap/quasar/src/instructions/withdraw_liquidity.rs (100%) rename {tokens => finance}/token-swap/quasar/src/lib.rs (100%) rename {tokens => finance}/token-swap/quasar/src/state.rs (100%) rename {tokens => finance}/token-swap/quasar/src/tests.rs (100%) rename {defi => finance}/vault-strategy/anchor/.gitignore (100%) rename {defi => finance}/vault-strategy/anchor/Anchor.toml (100%) rename {tokens/escrow => finance/vault-strategy}/anchor/Cargo.toml (100%) rename {defi => finance}/vault-strategy/anchor/README.md (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/Cargo.toml (100%) rename {tokens/token-fundraiser/anchor/programs/fundraiser => finance/vault-strategy/anchor/programs/mock-swap-router}/Xargo.toml (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/error.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/instructions/initialize_router.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/instructions/mod.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/instructions/set_rate.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_asset_for_usdc.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_usdc_for_asset.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/lib.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/state/asset_rate.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/state/mod.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/mock-swap-router/src/state/router_config.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/Cargo.toml (100%) rename {tokens/token-swap/anchor/programs/token-swap => finance/vault-strategy/anchor/programs/vault-strategy}/Xargo.toml (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/error.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/collect_fees.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/deposit.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/initialize_strategy.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/invest.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/mod.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/rebalance.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/instructions/withdraw.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/lib.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/state/mod.rs (100%) rename {defi => finance}/vault-strategy/anchor/programs/vault-strategy/src/state/strategy.rs (100%) rename {defi => finance}/vault-strategy/anchor/tests/vault_strategy.rs (100%) diff --git a/.github/.ghaignore b/.github/.ghaignore index 79b188e3..c95646ed 100644 --- a/.github/.ghaignore +++ b/.github/.ghaignore @@ -12,10 +12,10 @@ tokens/transfer-tokens/native tokens/token-minter/native tokens/create-token/native -tokens/token-swap/anchor +finance/token-swap/anchor # not building -oracles/pyth/anchor +basics/pyth/anchor # not building compression/cutils/anchor @@ -25,7 +25,7 @@ compression/cnft-burn/anchor # test failing # https://github.com/solana-developers/helpers/issues/40 -tokens/escrow/anchor +finance/escrow/anchor # not live tokens/token-extensions/group/anchor @@ -65,9 +65,9 @@ basics/realloc/steel basics/rent/steel basics/transfer-sol/steel -tokens/escrow/steel +finance/escrow/steel tokens/pda-mint-authority/steel tokens/token-minter/steel -tokens/token-swap/steel +finance/token-swap/steel tokens/transfer-tokens/steel \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 9bb26535..8c0a4aa3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,9 +48,9 @@ members = [ "basics/transfer-sol/anchor/programs/*", "basics/transfer-sol/asm", - # defi - "defi/vault-strategy/anchor/programs/vault-strategy", - "defi/vault-strategy/anchor/programs/mock-swap-router", + # finance + "finance/vault-strategy/anchor/programs/vault-strategy", + "finance/vault-strategy/anchor/programs/mock-swap-router", # tokens "tokens/token-extensions/mint-close-authority/native/program", diff --git a/README.md b/README.md index f3940731..1321e48d 100644 --- a/README.md +++ b/README.md @@ -17,43 +17,37 @@ Each example is available in one or more of the following frameworks: ## Financial Software -### Automated Market Maker +### Escrow -Constant product AMM (x·y=k) — create liquidity pools, deposit and withdraw liquidity, swap tokens with fees and slippage protection. +**Start here — this is the best first finance program to learn on Solana.** An escrow is a neutral holding account that lets two people who don't trust each other trade safely. One person (the maker) deposits token A and specifies how much token B they want in return. When a second person (the taker) supplies that token B, the program hands each side what it was promised in a single transaction — so either the whole trade happens, or none of it does. This "all-or-nothing" swap is the core idea behind every onchain exchange, which is why it's the right place to begin. -[⚓ Anchor](./tokens/token-swap/anchor) [💫 Quasar](./tokens/token-swap/quasar) +[⚓ Anchor](./finance/escrow/anchor) [💫 Quasar](./finance/escrow/quasar) [🦀 Native](./finance/escrow/native) -### Central Limit Order Book +### Order Book based Exchange -Order-book exchange — users post limit bids and asks at chosen prices, tokens are locked in program vaults, and orders cross against the opposing side using price-time priority. Fees route to a dedicated fee vault, maker/taker proceeds land in unsettled balances, and funds are withdrawn via `settle_funds`. A minimal teaching example of the mechanics behind Openbook and Phoenix. +An order book is the list of buy and sell offers behind most exchanges. Buyers post **bids** (the price they'll pay), sellers post **asks** (the price they'll accept), and a trade happens when a bid and an ask meet. This program implements that idea: traders post limit orders at chosen prices, their tokens are locked in program-controlled vaults, and orders are matched against the opposite side using **price-time priority** (best price first, and for equal prices, whoever was there first). Trading fees collect in a dedicated fee vault, proceeds wait as unsettled balances, and traders withdraw them with `settle_funds`. A minimal teaching example of the mechanics behind exchanges like Openbook and Phoenix. -[⚓ Anchor](./defi/order-book/anchor) +[⚓ Anchor](./finance/order-book/anchor) -### Escrow +### AMM based Exchange -Peer-to-peer OTC trade — one user deposits token A and specifies how much token B they want. A counterparty fulfills the offer and both sides receive their tokens atomically. +An automated market maker (AMM) is an exchange with no order book. Instead of matching buyers with sellers, swaps fill instantly against a shared, onchain liquidity pool that other users fund — those users are **liquidity providers**, and they earn a cut of the trading fees in return. Prices are set algorithmically by the pool's balances and move to reflect demand: buying an asset shrinks its share of the pool and pushes its price up. This program lets anyone create a pool, deposit or withdraw liquidity, and swap one token for another, with fees paid to liquidity providers and slippage protection so a swap can't execute at a worse price than expected. This is how exchanges like Raydium and Orca work. -[⚓ Anchor](./tokens/escrow/anchor) [💫 Quasar](./tokens/escrow/quasar) [🦀 Native](./tokens/escrow/native) +[⚓ Anchor](./finance/token-swap/anchor) [💫 Quasar](./finance/token-swap/quasar) ### Token Fundraiser -Create a fundraiser specifying a target mint and amount. Contributors deposit tokens until the goal is reached. - -[⚓ Anchor](./tokens/token-fundraiser/anchor) [💫 Quasar](./tokens/token-fundraiser/quasar) - -### Pyth Price Feeds - -Read offchain price data [onchain](https://solana.com/docs/terminology#onchain) using the Pyth oracle network. +A crowdfunding campaign onchain. A creator opens a fundraiser by choosing which token they want to raise and a target amount. Contributors deposit that token into the fundraiser's account until the goal is reached — a simple introduction to collecting funds from many people into a single program-controlled account. -[⚓ Anchor](./oracles/pyth/anchor) [💫 Quasar](./oracles/pyth/quasar) +[⚓ Anchor](./finance/token-fundraiser/anchor) [💫 Quasar](./finance/token-fundraiser/quasar) ### Vault Strategy -Manager-run investment vault — deposit USDC, manager allocates across a basket of assets (TSLAx, NVDAx), withdraw proportional in-kind assets. Demonstrates share minting, NAV-based pricing, management fee accrual, and CPI to a swap router. +A managed investment fund onchain. Investors deposit USDC and receive shares representing their slice of the fund. A manager allocates the pooled money across a basket of tokenized assets (here, tokenized stocks like TSLAx and NVDAx), and each share's value tracks the fund's net asset value — its total holdings divided by the number of shares. The manager earns a management fee over time, and investors withdraw a proportional, in-kind slice of the underlying assets. Demonstrates share minting, value-per-share pricing, fee accrual, and calling another program (CPI) to swap assets. -[⚓ Anchor](./defi/vault-strategy/anchor) +[⚓ Anchor](./finance/vault-strategy/anchor) -## Basics +## Single concept examples ### Hello Solana @@ -145,6 +139,12 @@ Send SOL between two accounts. [⚓ Anchor](./basics/transfer-sol/anchor) [💫 Quasar](./basics/transfer-sol/quasar) [🤥 Pinocchio](./basics/transfer-sol/pinocchio) [🦀 Native](./basics/transfer-sol/native) [🧬 ASM](./basics/transfer-sol/asm) +### Pyth Price Feeds + +Finance programs often need real-world prices — what a dollar, a stock, or another token is worth right now. An **oracle** brings that offchain market data [onchain](https://solana.com/docs/terminology#onchain). [Pyth](https://pyth.network/) is an oracle that publishes low-latency prices from institutional sources, with each asset's price living in its own account called a price feed. This minimal example reads a feed and logs its price, confidence interval, and exponent — the building block a program like an AMM, a lending market, or a vault uses to value assets. + +[⚓ Anchor](./basics/pyth/anchor) [💫 Quasar](./basics/pyth/quasar) + ## Tokens ### Create Token diff --git a/oracles/pyth/README.md b/basics/pyth/README.md similarity index 100% rename from oracles/pyth/README.md rename to basics/pyth/README.md diff --git a/oracles/pyth/anchor/.gitignore b/basics/pyth/anchor/.gitignore similarity index 100% rename from oracles/pyth/anchor/.gitignore rename to basics/pyth/anchor/.gitignore diff --git a/oracles/pyth/anchor/Anchor.toml b/basics/pyth/anchor/Anchor.toml similarity index 100% rename from oracles/pyth/anchor/Anchor.toml rename to basics/pyth/anchor/Anchor.toml diff --git a/oracles/pyth/anchor/Cargo.toml b/basics/pyth/anchor/Cargo.toml similarity index 100% rename from oracles/pyth/anchor/Cargo.toml rename to basics/pyth/anchor/Cargo.toml diff --git a/oracles/pyth/anchor/programs/pythexample/Cargo.toml b/basics/pyth/anchor/programs/pythexample/Cargo.toml similarity index 100% rename from oracles/pyth/anchor/programs/pythexample/Cargo.toml rename to basics/pyth/anchor/programs/pythexample/Cargo.toml diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/Xargo.toml b/basics/pyth/anchor/programs/pythexample/Xargo.toml similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/Xargo.toml rename to basics/pyth/anchor/programs/pythexample/Xargo.toml diff --git a/oracles/pyth/anchor/programs/pythexample/src/lib.rs b/basics/pyth/anchor/programs/pythexample/src/lib.rs similarity index 100% rename from oracles/pyth/anchor/programs/pythexample/src/lib.rs rename to basics/pyth/anchor/programs/pythexample/src/lib.rs diff --git a/oracles/pyth/anchor/programs/pythexample/tests/test_pyth.rs b/basics/pyth/anchor/programs/pythexample/tests/test_pyth.rs similarity index 100% rename from oracles/pyth/anchor/programs/pythexample/tests/test_pyth.rs rename to basics/pyth/anchor/programs/pythexample/tests/test_pyth.rs diff --git a/oracles/pyth/quasar/Cargo.toml b/basics/pyth/quasar/Cargo.toml similarity index 100% rename from oracles/pyth/quasar/Cargo.toml rename to basics/pyth/quasar/Cargo.toml diff --git a/oracles/pyth/quasar/Quasar.toml b/basics/pyth/quasar/Quasar.toml similarity index 100% rename from oracles/pyth/quasar/Quasar.toml rename to basics/pyth/quasar/Quasar.toml diff --git a/oracles/pyth/quasar/src/instructions/mod.rs b/basics/pyth/quasar/src/instructions/mod.rs similarity index 100% rename from oracles/pyth/quasar/src/instructions/mod.rs rename to basics/pyth/quasar/src/instructions/mod.rs diff --git a/oracles/pyth/quasar/src/instructions/read_price.rs b/basics/pyth/quasar/src/instructions/read_price.rs similarity index 100% rename from oracles/pyth/quasar/src/instructions/read_price.rs rename to basics/pyth/quasar/src/instructions/read_price.rs diff --git a/oracles/pyth/quasar/src/lib.rs b/basics/pyth/quasar/src/lib.rs similarity index 100% rename from oracles/pyth/quasar/src/lib.rs rename to basics/pyth/quasar/src/lib.rs diff --git a/oracles/pyth/quasar/src/tests.rs b/basics/pyth/quasar/src/tests.rs similarity index 100% rename from oracles/pyth/quasar/src/tests.rs rename to basics/pyth/quasar/src/tests.rs diff --git a/defi/order-book/anchor/.gitignore b/finance/escrow/anchor/.gitignore similarity index 100% rename from defi/order-book/anchor/.gitignore rename to finance/escrow/anchor/.gitignore diff --git a/tokens/escrow/anchor/.mocharc.json b/finance/escrow/anchor/.mocharc.json similarity index 100% rename from tokens/escrow/anchor/.mocharc.json rename to finance/escrow/anchor/.mocharc.json diff --git a/tokens/escrow/anchor/.prettierignore b/finance/escrow/anchor/.prettierignore similarity index 100% rename from tokens/escrow/anchor/.prettierignore rename to finance/escrow/anchor/.prettierignore diff --git a/tokens/escrow/anchor/Anchor.toml b/finance/escrow/anchor/Anchor.toml similarity index 100% rename from tokens/escrow/anchor/Anchor.toml rename to finance/escrow/anchor/Anchor.toml diff --git a/defi/vault-strategy/anchor/Cargo.toml b/finance/escrow/anchor/Cargo.toml similarity index 100% rename from defi/vault-strategy/anchor/Cargo.toml rename to finance/escrow/anchor/Cargo.toml diff --git a/tokens/escrow/anchor/README.md b/finance/escrow/anchor/README.md similarity index 100% rename from tokens/escrow/anchor/README.md rename to finance/escrow/anchor/README.md diff --git a/tokens/escrow/anchor/migrations/deploy.ts b/finance/escrow/anchor/migrations/deploy.ts similarity index 100% rename from tokens/escrow/anchor/migrations/deploy.ts rename to finance/escrow/anchor/migrations/deploy.ts diff --git a/tokens/escrow/anchor/programs/escrow/Cargo.toml b/finance/escrow/anchor/programs/escrow/Cargo.toml similarity index 100% rename from tokens/escrow/anchor/programs/escrow/Cargo.toml rename to finance/escrow/anchor/programs/escrow/Cargo.toml diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/Xargo.toml b/finance/escrow/anchor/programs/escrow/Xargo.toml similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/Xargo.toml rename to finance/escrow/anchor/programs/escrow/Xargo.toml diff --git a/tokens/escrow/anchor/programs/escrow/src/error.rs b/finance/escrow/anchor/programs/escrow/src/error.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/error.rs rename to finance/escrow/anchor/programs/escrow/src/error.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/cancel_offer.rs b/finance/escrow/anchor/programs/escrow/src/instructions/cancel_offer.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/instructions/cancel_offer.rs rename to finance/escrow/anchor/programs/escrow/src/instructions/cancel_offer.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/make_offer.rs b/finance/escrow/anchor/programs/escrow/src/instructions/make_offer.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/instructions/make_offer.rs rename to finance/escrow/anchor/programs/escrow/src/instructions/make_offer.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/mod.rs b/finance/escrow/anchor/programs/escrow/src/instructions/mod.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/instructions/mod.rs rename to finance/escrow/anchor/programs/escrow/src/instructions/mod.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/shared.rs b/finance/escrow/anchor/programs/escrow/src/instructions/shared.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/instructions/shared.rs rename to finance/escrow/anchor/programs/escrow/src/instructions/shared.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/take_offer.rs b/finance/escrow/anchor/programs/escrow/src/instructions/take_offer.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/instructions/take_offer.rs rename to finance/escrow/anchor/programs/escrow/src/instructions/take_offer.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/lib.rs b/finance/escrow/anchor/programs/escrow/src/lib.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/lib.rs rename to finance/escrow/anchor/programs/escrow/src/lib.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/state/mod.rs b/finance/escrow/anchor/programs/escrow/src/state/mod.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/state/mod.rs rename to finance/escrow/anchor/programs/escrow/src/state/mod.rs diff --git a/tokens/escrow/anchor/programs/escrow/src/state/offer.rs b/finance/escrow/anchor/programs/escrow/src/state/offer.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/src/state/offer.rs rename to finance/escrow/anchor/programs/escrow/src/state/offer.rs diff --git a/tokens/escrow/anchor/programs/escrow/tests/test_escrow.rs b/finance/escrow/anchor/programs/escrow/tests/test_escrow.rs similarity index 100% rename from tokens/escrow/anchor/programs/escrow/tests/test_escrow.rs rename to finance/escrow/anchor/programs/escrow/tests/test_escrow.rs diff --git a/tokens/escrow/anchor/register.js b/finance/escrow/anchor/register.js similarity index 100% rename from tokens/escrow/anchor/register.js rename to finance/escrow/anchor/register.js diff --git a/tokens/escrow/native/Cargo.lock b/finance/escrow/native/Cargo.lock similarity index 100% rename from tokens/escrow/native/Cargo.lock rename to finance/escrow/native/Cargo.lock diff --git a/tokens/escrow/native/Cargo.toml b/finance/escrow/native/Cargo.toml similarity index 100% rename from tokens/escrow/native/Cargo.toml rename to finance/escrow/native/Cargo.toml diff --git a/tokens/escrow/native/cicd.sh b/finance/escrow/native/cicd.sh similarity index 100% rename from tokens/escrow/native/cicd.sh rename to finance/escrow/native/cicd.sh diff --git a/tokens/escrow/native/package.json b/finance/escrow/native/package.json similarity index 100% rename from tokens/escrow/native/package.json rename to finance/escrow/native/package.json diff --git a/tokens/escrow/native/pnpm-lock.yaml b/finance/escrow/native/pnpm-lock.yaml similarity index 100% rename from tokens/escrow/native/pnpm-lock.yaml rename to finance/escrow/native/pnpm-lock.yaml diff --git a/tokens/escrow/native/program/Cargo.toml b/finance/escrow/native/program/Cargo.toml similarity index 100% rename from tokens/escrow/native/program/Cargo.toml rename to finance/escrow/native/program/Cargo.toml diff --git a/tokens/escrow/native/program/src/error.rs b/finance/escrow/native/program/src/error.rs similarity index 100% rename from tokens/escrow/native/program/src/error.rs rename to finance/escrow/native/program/src/error.rs diff --git a/tokens/escrow/native/program/src/instructions/make_offer.rs b/finance/escrow/native/program/src/instructions/make_offer.rs similarity index 100% rename from tokens/escrow/native/program/src/instructions/make_offer.rs rename to finance/escrow/native/program/src/instructions/make_offer.rs diff --git a/tokens/escrow/native/program/src/instructions/mod.rs b/finance/escrow/native/program/src/instructions/mod.rs similarity index 100% rename from tokens/escrow/native/program/src/instructions/mod.rs rename to finance/escrow/native/program/src/instructions/mod.rs diff --git a/tokens/escrow/native/program/src/instructions/take_offer.rs b/finance/escrow/native/program/src/instructions/take_offer.rs similarity index 100% rename from tokens/escrow/native/program/src/instructions/take_offer.rs rename to finance/escrow/native/program/src/instructions/take_offer.rs diff --git a/tokens/escrow/native/program/src/lib.rs b/finance/escrow/native/program/src/lib.rs similarity index 100% rename from tokens/escrow/native/program/src/lib.rs rename to finance/escrow/native/program/src/lib.rs diff --git a/tokens/escrow/native/program/src/state.rs b/finance/escrow/native/program/src/state.rs similarity index 100% rename from tokens/escrow/native/program/src/state.rs rename to finance/escrow/native/program/src/state.rs diff --git a/tokens/escrow/native/program/src/utils.rs b/finance/escrow/native/program/src/utils.rs similarity index 100% rename from tokens/escrow/native/program/src/utils.rs rename to finance/escrow/native/program/src/utils.rs diff --git a/tokens/escrow/native/tests/account.ts b/finance/escrow/native/tests/account.ts similarity index 100% rename from tokens/escrow/native/tests/account.ts rename to finance/escrow/native/tests/account.ts diff --git a/tokens/escrow/native/tests/instruction.ts b/finance/escrow/native/tests/instruction.ts similarity index 100% rename from tokens/escrow/native/tests/instruction.ts rename to finance/escrow/native/tests/instruction.ts diff --git a/tokens/escrow/native/tests/test.ts b/finance/escrow/native/tests/test.ts similarity index 100% rename from tokens/escrow/native/tests/test.ts rename to finance/escrow/native/tests/test.ts diff --git a/tokens/escrow/native/tests/utils.ts b/finance/escrow/native/tests/utils.ts similarity index 100% rename from tokens/escrow/native/tests/utils.ts rename to finance/escrow/native/tests/utils.ts diff --git a/tokens/escrow/native/tsconfig.json b/finance/escrow/native/tsconfig.json similarity index 100% rename from tokens/escrow/native/tsconfig.json rename to finance/escrow/native/tsconfig.json diff --git a/tokens/escrow/quasar/Cargo.toml b/finance/escrow/quasar/Cargo.toml similarity index 100% rename from tokens/escrow/quasar/Cargo.toml rename to finance/escrow/quasar/Cargo.toml diff --git a/tokens/escrow/quasar/Quasar.toml b/finance/escrow/quasar/Quasar.toml similarity index 100% rename from tokens/escrow/quasar/Quasar.toml rename to finance/escrow/quasar/Quasar.toml diff --git a/tokens/escrow/quasar/src/instructions/cancel_offer.rs b/finance/escrow/quasar/src/instructions/cancel_offer.rs similarity index 100% rename from tokens/escrow/quasar/src/instructions/cancel_offer.rs rename to finance/escrow/quasar/src/instructions/cancel_offer.rs diff --git a/tokens/escrow/quasar/src/instructions/make_offer.rs b/finance/escrow/quasar/src/instructions/make_offer.rs similarity index 100% rename from tokens/escrow/quasar/src/instructions/make_offer.rs rename to finance/escrow/quasar/src/instructions/make_offer.rs diff --git a/tokens/escrow/quasar/src/instructions/mod.rs b/finance/escrow/quasar/src/instructions/mod.rs similarity index 100% rename from tokens/escrow/quasar/src/instructions/mod.rs rename to finance/escrow/quasar/src/instructions/mod.rs diff --git a/tokens/escrow/quasar/src/instructions/take_offer.rs b/finance/escrow/quasar/src/instructions/take_offer.rs similarity index 100% rename from tokens/escrow/quasar/src/instructions/take_offer.rs rename to finance/escrow/quasar/src/instructions/take_offer.rs diff --git a/tokens/escrow/quasar/src/lib.rs b/finance/escrow/quasar/src/lib.rs similarity index 100% rename from tokens/escrow/quasar/src/lib.rs rename to finance/escrow/quasar/src/lib.rs diff --git a/tokens/escrow/quasar/src/state.rs b/finance/escrow/quasar/src/state.rs similarity index 100% rename from tokens/escrow/quasar/src/state.rs rename to finance/escrow/quasar/src/state.rs diff --git a/tokens/escrow/quasar/src/tests.rs b/finance/escrow/quasar/src/tests.rs similarity index 100% rename from tokens/escrow/quasar/src/tests.rs rename to finance/escrow/quasar/src/tests.rs diff --git a/tokens/escrow/anchor/.gitignore b/finance/order-book/anchor/.gitignore similarity index 100% rename from tokens/escrow/anchor/.gitignore rename to finance/order-book/anchor/.gitignore diff --git a/defi/order-book/anchor/Anchor.toml b/finance/order-book/anchor/Anchor.toml similarity index 100% rename from defi/order-book/anchor/Anchor.toml rename to finance/order-book/anchor/Anchor.toml diff --git a/defi/order-book/anchor/Cargo.toml b/finance/order-book/anchor/Cargo.toml similarity index 100% rename from defi/order-book/anchor/Cargo.toml rename to finance/order-book/anchor/Cargo.toml diff --git a/defi/order-book/anchor/README.md b/finance/order-book/anchor/README.md similarity index 99% rename from defi/order-book/anchor/README.md rename to finance/order-book/anchor/README.md index 2265ae72..d943de9b 100644 --- a/defi/order-book/anchor/README.md +++ b/finance/order-book/anchor/README.md @@ -1423,7 +1423,7 @@ run first. ### Commands -From `defi/order-book/anchor/`: +From `finance/order-book/anchor/`: ```bash # 1. Build the .so — target/deploy/order_book.so @@ -1605,7 +1605,7 @@ Openbook v2 (`src/state/slab/`). ## Code layout ``` -defi/order-book/anchor/ +finance/order-book/anchor/ ├── Anchor.toml ├── Cargo.toml ├── README.md (this file) diff --git a/defi/order-book/anchor/programs/order-book/Cargo.toml b/finance/order-book/anchor/programs/order-book/Cargo.toml similarity index 85% rename from defi/order-book/anchor/programs/order-book/Cargo.toml rename to finance/order-book/anchor/programs/order-book/Cargo.toml index befea625..55bb48d8 100644 --- a/defi/order-book/anchor/programs/order-book/Cargo.toml +++ b/finance/order-book/anchor/programs/order-book/Cargo.toml @@ -30,9 +30,8 @@ bytemuck = { version = "1.18", features = ["derive", "min_const_generics"] } static_assertions = "1.1" [dev-dependencies] -# Match the test stack used by tokens/escrow, defi/asset-leasing, and the -# other LiteSVM-based Anchor examples so contributors can move between them -# without version drift. +# Match the test stack used by finance/escrow and the other LiteSVM-based +# Anchor examples so contributors can move between them without version drift. litesvm = "0.11.0" solana-signer = "3.0.0" solana-keypair = "3.0.1" diff --git a/defi/order-book/anchor/programs/order-book/src/errors.rs b/finance/order-book/anchor/programs/order-book/src/errors.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/errors.rs rename to finance/order-book/anchor/programs/order-book/src/errors.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/cancel_order.rs b/finance/order-book/anchor/programs/order-book/src/instructions/cancel_order.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/cancel_order.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/cancel_order.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/create_market_user.rs b/finance/order-book/anchor/programs/order-book/src/instructions/create_market_user.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/create_market_user.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/create_market_user.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/initialize_market.rs b/finance/order-book/anchor/programs/order-book/src/instructions/initialize_market.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/initialize_market.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/initialize_market.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/mod.rs b/finance/order-book/anchor/programs/order-book/src/instructions/mod.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/mod.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/mod.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/place_order.rs b/finance/order-book/anchor/programs/order-book/src/instructions/place_order.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/place_order.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/place_order.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/settle_funds.rs b/finance/order-book/anchor/programs/order-book/src/instructions/settle_funds.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/settle_funds.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/settle_funds.rs diff --git a/defi/order-book/anchor/programs/order-book/src/instructions/withdraw_fees.rs b/finance/order-book/anchor/programs/order-book/src/instructions/withdraw_fees.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/instructions/withdraw_fees.rs rename to finance/order-book/anchor/programs/order-book/src/instructions/withdraw_fees.rs diff --git a/defi/order-book/anchor/programs/order-book/src/lib.rs b/finance/order-book/anchor/programs/order-book/src/lib.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/lib.rs rename to finance/order-book/anchor/programs/order-book/src/lib.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/market.rs b/finance/order-book/anchor/programs/order-book/src/state/market.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/market.rs rename to finance/order-book/anchor/programs/order-book/src/state/market.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/market_user.rs b/finance/order-book/anchor/programs/order-book/src/state/market_user.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/market_user.rs rename to finance/order-book/anchor/programs/order-book/src/state/market_user.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/matching.rs b/finance/order-book/anchor/programs/order-book/src/state/matching.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/matching.rs rename to finance/order-book/anchor/programs/order-book/src/state/matching.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/mod.rs b/finance/order-book/anchor/programs/order-book/src/state/mod.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/mod.rs rename to finance/order-book/anchor/programs/order-book/src/state/mod.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/order.rs b/finance/order-book/anchor/programs/order-book/src/state/order.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/order.rs rename to finance/order-book/anchor/programs/order-book/src/state/order.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/order_book.rs b/finance/order-book/anchor/programs/order-book/src/state/order_book.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/order_book.rs rename to finance/order-book/anchor/programs/order-book/src/state/order_book.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/slab/LICENSE-OPENBOOK b/finance/order-book/anchor/programs/order-book/src/state/slab/LICENSE-OPENBOOK similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/slab/LICENSE-OPENBOOK rename to finance/order-book/anchor/programs/order-book/src/state/slab/LICENSE-OPENBOOK diff --git a/defi/order-book/anchor/programs/order-book/src/state/slab/iterator.rs b/finance/order-book/anchor/programs/order-book/src/state/slab/iterator.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/slab/iterator.rs rename to finance/order-book/anchor/programs/order-book/src/state/slab/iterator.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/slab/mod.rs b/finance/order-book/anchor/programs/order-book/src/state/slab/mod.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/slab/mod.rs rename to finance/order-book/anchor/programs/order-book/src/state/slab/mod.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/slab/nodes.rs b/finance/order-book/anchor/programs/order-book/src/state/slab/nodes.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/slab/nodes.rs rename to finance/order-book/anchor/programs/order-book/src/state/slab/nodes.rs diff --git a/defi/order-book/anchor/programs/order-book/src/state/slab/ordertree.rs b/finance/order-book/anchor/programs/order-book/src/state/slab/ordertree.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/src/state/slab/ordertree.rs rename to finance/order-book/anchor/programs/order-book/src/state/slab/ordertree.rs diff --git a/defi/order-book/anchor/programs/order-book/tests/test_order_book.rs b/finance/order-book/anchor/programs/order-book/tests/test_order_book.rs similarity index 100% rename from defi/order-book/anchor/programs/order-book/tests/test_order_book.rs rename to finance/order-book/anchor/programs/order-book/tests/test_order_book.rs diff --git a/tokens/token-fundraiser/anchor/Anchor.toml b/finance/token-fundraiser/anchor/Anchor.toml similarity index 100% rename from tokens/token-fundraiser/anchor/Anchor.toml rename to finance/token-fundraiser/anchor/Anchor.toml diff --git a/tokens/token-fundraiser/anchor/Cargo.toml b/finance/token-fundraiser/anchor/Cargo.toml similarity index 100% rename from tokens/token-fundraiser/anchor/Cargo.toml rename to finance/token-fundraiser/anchor/Cargo.toml diff --git a/tokens/token-fundraiser/anchor/README.md b/finance/token-fundraiser/anchor/README.md similarity index 100% rename from tokens/token-fundraiser/anchor/README.md rename to finance/token-fundraiser/anchor/README.md diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/Cargo.toml b/finance/token-fundraiser/anchor/programs/fundraiser/Cargo.toml similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/Cargo.toml rename to finance/token-fundraiser/anchor/programs/fundraiser/Cargo.toml diff --git a/oracles/pyth/anchor/programs/pythexample/Xargo.toml b/finance/token-fundraiser/anchor/programs/fundraiser/Xargo.toml similarity index 100% rename from oracles/pyth/anchor/programs/pythexample/Xargo.toml rename to finance/token-fundraiser/anchor/programs/fundraiser/Xargo.toml diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/constants.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/constants.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/constants.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/constants.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/error.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/error.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/error.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/error.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/initialize.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/initialize.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/initialize.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/initialize.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/mod.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/mod.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/mod.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/mod.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/lib.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/lib.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/lib.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/lib.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/state/contributor.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/state/contributor.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/state/contributor.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/state/contributor.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/state/fundraiser.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/state/fundraiser.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/state/fundraiser.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/state/fundraiser.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/state/mod.rs b/finance/token-fundraiser/anchor/programs/fundraiser/src/state/mod.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/src/state/mod.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/src/state/mod.rs diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/tests/test_fundraiser.rs b/finance/token-fundraiser/anchor/programs/fundraiser/tests/test_fundraiser.rs similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/tests/test_fundraiser.rs rename to finance/token-fundraiser/anchor/programs/fundraiser/tests/test_fundraiser.rs diff --git a/tokens/token-fundraiser/quasar/Cargo.toml b/finance/token-fundraiser/quasar/Cargo.toml similarity index 100% rename from tokens/token-fundraiser/quasar/Cargo.toml rename to finance/token-fundraiser/quasar/Cargo.toml diff --git a/tokens/token-fundraiser/quasar/Quasar.toml b/finance/token-fundraiser/quasar/Quasar.toml similarity index 100% rename from tokens/token-fundraiser/quasar/Quasar.toml rename to finance/token-fundraiser/quasar/Quasar.toml diff --git a/tokens/token-fundraiser/quasar/src/instructions/check_contributions.rs b/finance/token-fundraiser/quasar/src/instructions/check_contributions.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/instructions/check_contributions.rs rename to finance/token-fundraiser/quasar/src/instructions/check_contributions.rs diff --git a/tokens/token-fundraiser/quasar/src/instructions/contribute.rs b/finance/token-fundraiser/quasar/src/instructions/contribute.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/instructions/contribute.rs rename to finance/token-fundraiser/quasar/src/instructions/contribute.rs diff --git a/tokens/token-fundraiser/quasar/src/instructions/initialize.rs b/finance/token-fundraiser/quasar/src/instructions/initialize.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/instructions/initialize.rs rename to finance/token-fundraiser/quasar/src/instructions/initialize.rs diff --git a/tokens/token-fundraiser/quasar/src/instructions/mod.rs b/finance/token-fundraiser/quasar/src/instructions/mod.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/instructions/mod.rs rename to finance/token-fundraiser/quasar/src/instructions/mod.rs diff --git a/tokens/token-fundraiser/quasar/src/instructions/refund.rs b/finance/token-fundraiser/quasar/src/instructions/refund.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/instructions/refund.rs rename to finance/token-fundraiser/quasar/src/instructions/refund.rs diff --git a/tokens/token-fundraiser/quasar/src/lib.rs b/finance/token-fundraiser/quasar/src/lib.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/lib.rs rename to finance/token-fundraiser/quasar/src/lib.rs diff --git a/tokens/token-fundraiser/quasar/src/state.rs b/finance/token-fundraiser/quasar/src/state.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/state.rs rename to finance/token-fundraiser/quasar/src/state.rs diff --git a/tokens/token-fundraiser/quasar/src/tests.rs b/finance/token-fundraiser/quasar/src/tests.rs similarity index 100% rename from tokens/token-fundraiser/quasar/src/tests.rs rename to finance/token-fundraiser/quasar/src/tests.rs diff --git a/tokens/token-swap/README.md b/finance/token-swap/README.md similarity index 100% rename from tokens/token-swap/README.md rename to finance/token-swap/README.md diff --git a/tokens/token-swap/anchor/Anchor.toml b/finance/token-swap/anchor/Anchor.toml similarity index 100% rename from tokens/token-swap/anchor/Anchor.toml rename to finance/token-swap/anchor/Anchor.toml diff --git a/tokens/token-swap/anchor/Cargo.toml b/finance/token-swap/anchor/Cargo.toml similarity index 100% rename from tokens/token-swap/anchor/Cargo.toml rename to finance/token-swap/anchor/Cargo.toml diff --git a/tokens/token-swap/anchor/programs/token-swap/Cargo.toml b/finance/token-swap/anchor/programs/token-swap/Cargo.toml similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/Cargo.toml rename to finance/token-swap/anchor/programs/token-swap/Cargo.toml diff --git a/tokens/escrow/anchor/programs/escrow/Xargo.toml b/finance/token-swap/anchor/programs/token-swap/Xargo.toml similarity index 100% rename from tokens/escrow/anchor/programs/escrow/Xargo.toml rename to finance/token-swap/anchor/programs/token-swap/Xargo.toml diff --git a/tokens/token-swap/anchor/programs/token-swap/src/constants.rs b/finance/token-swap/anchor/programs/token-swap/src/constants.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/constants.rs rename to finance/token-swap/anchor/programs/token-swap/src/constants.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/errors.rs b/finance/token-swap/anchor/programs/token-swap/src/errors.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/errors.rs rename to finance/token-swap/anchor/programs/token-swap/src/errors.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/admin/claim_admin_fees.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/admin/claim_admin_fees.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/admin/claim_admin_fees.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/admin/claim_admin_fees.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/admin/mod.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/admin/mod.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/admin/mod.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/admin/mod.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/create_config.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/create_config.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/create_config.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/create_config.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/create_pool.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/create_pool.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/create_pool.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/create_pool.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/mod.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/mod.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/mod.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/mod.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/swap_tokens.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/swap_tokens.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/swap_tokens.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/swap_tokens.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs b/finance/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs rename to finance/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/lib.rs b/finance/token-swap/anchor/programs/token-swap/src/lib.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/lib.rs rename to finance/token-swap/anchor/programs/token-swap/src/lib.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/state/config.rs b/finance/token-swap/anchor/programs/token-swap/src/state/config.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/state/config.rs rename to finance/token-swap/anchor/programs/token-swap/src/state/config.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/state/mod.rs b/finance/token-swap/anchor/programs/token-swap/src/state/mod.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/state/mod.rs rename to finance/token-swap/anchor/programs/token-swap/src/state/mod.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/src/state/pool_config.rs b/finance/token-swap/anchor/programs/token-swap/src/state/pool_config.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/src/state/pool_config.rs rename to finance/token-swap/anchor/programs/token-swap/src/state/pool_config.rs diff --git a/tokens/token-swap/anchor/programs/token-swap/tests/test_swap.rs b/finance/token-swap/anchor/programs/token-swap/tests/test_swap.rs similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/tests/test_swap.rs rename to finance/token-swap/anchor/programs/token-swap/tests/test_swap.rs diff --git a/tokens/token-swap/quasar/Cargo.toml b/finance/token-swap/quasar/Cargo.toml similarity index 100% rename from tokens/token-swap/quasar/Cargo.toml rename to finance/token-swap/quasar/Cargo.toml diff --git a/tokens/token-swap/quasar/Quasar.toml b/finance/token-swap/quasar/Quasar.toml similarity index 100% rename from tokens/token-swap/quasar/Quasar.toml rename to finance/token-swap/quasar/Quasar.toml diff --git a/tokens/token-swap/quasar/src/instructions/claim_admin_fees.rs b/finance/token-swap/quasar/src/instructions/claim_admin_fees.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/claim_admin_fees.rs rename to finance/token-swap/quasar/src/instructions/claim_admin_fees.rs diff --git a/tokens/token-swap/quasar/src/instructions/create_config.rs b/finance/token-swap/quasar/src/instructions/create_config.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/create_config.rs rename to finance/token-swap/quasar/src/instructions/create_config.rs diff --git a/tokens/token-swap/quasar/src/instructions/create_pool.rs b/finance/token-swap/quasar/src/instructions/create_pool.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/create_pool.rs rename to finance/token-swap/quasar/src/instructions/create_pool.rs diff --git a/tokens/token-swap/quasar/src/instructions/deposit_liquidity.rs b/finance/token-swap/quasar/src/instructions/deposit_liquidity.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/deposit_liquidity.rs rename to finance/token-swap/quasar/src/instructions/deposit_liquidity.rs diff --git a/tokens/token-swap/quasar/src/instructions/mod.rs b/finance/token-swap/quasar/src/instructions/mod.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/mod.rs rename to finance/token-swap/quasar/src/instructions/mod.rs diff --git a/tokens/token-swap/quasar/src/instructions/swap_tokens.rs b/finance/token-swap/quasar/src/instructions/swap_tokens.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/swap_tokens.rs rename to finance/token-swap/quasar/src/instructions/swap_tokens.rs diff --git a/tokens/token-swap/quasar/src/instructions/withdraw_liquidity.rs b/finance/token-swap/quasar/src/instructions/withdraw_liquidity.rs similarity index 100% rename from tokens/token-swap/quasar/src/instructions/withdraw_liquidity.rs rename to finance/token-swap/quasar/src/instructions/withdraw_liquidity.rs diff --git a/tokens/token-swap/quasar/src/lib.rs b/finance/token-swap/quasar/src/lib.rs similarity index 100% rename from tokens/token-swap/quasar/src/lib.rs rename to finance/token-swap/quasar/src/lib.rs diff --git a/tokens/token-swap/quasar/src/state.rs b/finance/token-swap/quasar/src/state.rs similarity index 100% rename from tokens/token-swap/quasar/src/state.rs rename to finance/token-swap/quasar/src/state.rs diff --git a/tokens/token-swap/quasar/src/tests.rs b/finance/token-swap/quasar/src/tests.rs similarity index 100% rename from tokens/token-swap/quasar/src/tests.rs rename to finance/token-swap/quasar/src/tests.rs diff --git a/defi/vault-strategy/anchor/.gitignore b/finance/vault-strategy/anchor/.gitignore similarity index 100% rename from defi/vault-strategy/anchor/.gitignore rename to finance/vault-strategy/anchor/.gitignore diff --git a/defi/vault-strategy/anchor/Anchor.toml b/finance/vault-strategy/anchor/Anchor.toml similarity index 100% rename from defi/vault-strategy/anchor/Anchor.toml rename to finance/vault-strategy/anchor/Anchor.toml diff --git a/tokens/escrow/anchor/Cargo.toml b/finance/vault-strategy/anchor/Cargo.toml similarity index 100% rename from tokens/escrow/anchor/Cargo.toml rename to finance/vault-strategy/anchor/Cargo.toml diff --git a/defi/vault-strategy/anchor/README.md b/finance/vault-strategy/anchor/README.md similarity index 100% rename from defi/vault-strategy/anchor/README.md rename to finance/vault-strategy/anchor/README.md diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/Cargo.toml b/finance/vault-strategy/anchor/programs/mock-swap-router/Cargo.toml similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/Cargo.toml rename to finance/vault-strategy/anchor/programs/mock-swap-router/Cargo.toml diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/Xargo.toml b/finance/vault-strategy/anchor/programs/mock-swap-router/Xargo.toml similarity index 100% rename from tokens/token-fundraiser/anchor/programs/fundraiser/Xargo.toml rename to finance/vault-strategy/anchor/programs/mock-swap-router/Xargo.toml diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/error.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/error.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/error.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/error.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/initialize_router.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/initialize_router.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/initialize_router.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/initialize_router.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/mod.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/mod.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/mod.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/mod.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/set_rate.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/set_rate.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/set_rate.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/set_rate.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_asset_for_usdc.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_asset_for_usdc.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_asset_for_usdc.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_asset_for_usdc.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_usdc_for_asset.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_usdc_for_asset.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_usdc_for_asset.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/instructions/swap_usdc_for_asset.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/lib.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/lib.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/lib.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/lib.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/state/asset_rate.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/state/asset_rate.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/state/asset_rate.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/state/asset_rate.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/state/mod.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/state/mod.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/state/mod.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/state/mod.rs diff --git a/defi/vault-strategy/anchor/programs/mock-swap-router/src/state/router_config.rs b/finance/vault-strategy/anchor/programs/mock-swap-router/src/state/router_config.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/mock-swap-router/src/state/router_config.rs rename to finance/vault-strategy/anchor/programs/mock-swap-router/src/state/router_config.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/Cargo.toml b/finance/vault-strategy/anchor/programs/vault-strategy/Cargo.toml similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/Cargo.toml rename to finance/vault-strategy/anchor/programs/vault-strategy/Cargo.toml diff --git a/tokens/token-swap/anchor/programs/token-swap/Xargo.toml b/finance/vault-strategy/anchor/programs/vault-strategy/Xargo.toml similarity index 100% rename from tokens/token-swap/anchor/programs/token-swap/Xargo.toml rename to finance/vault-strategy/anchor/programs/vault-strategy/Xargo.toml diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/error.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/error.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/error.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/error.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/collect_fees.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/collect_fees.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/collect_fees.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/collect_fees.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/deposit.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/deposit.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/deposit.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/deposit.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/initialize_strategy.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/initialize_strategy.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/initialize_strategy.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/initialize_strategy.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/invest.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/invest.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/invest.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/invest.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/mod.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/mod.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/mod.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/mod.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/rebalance.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/rebalance.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/rebalance.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/rebalance.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/withdraw.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/withdraw.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/instructions/withdraw.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/instructions/withdraw.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/lib.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/lib.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/lib.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/lib.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/state/mod.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/state/mod.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/state/mod.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/state/mod.rs diff --git a/defi/vault-strategy/anchor/programs/vault-strategy/src/state/strategy.rs b/finance/vault-strategy/anchor/programs/vault-strategy/src/state/strategy.rs similarity index 100% rename from defi/vault-strategy/anchor/programs/vault-strategy/src/state/strategy.rs rename to finance/vault-strategy/anchor/programs/vault-strategy/src/state/strategy.rs diff --git a/defi/vault-strategy/anchor/tests/vault_strategy.rs b/finance/vault-strategy/anchor/tests/vault_strategy.rs similarity index 100% rename from defi/vault-strategy/anchor/tests/vault_strategy.rs rename to finance/vault-strategy/anchor/tests/vault_strategy.rs From fd2ad76bd7fa1ba61d6c832610ca3b6f56428852 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 2 Jun 2026 20:13:39 +0000 Subject: [PATCH 2/2] Describe vault assets plainly, not as 'tokenized' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tokenized assets are just assets — drop the redundant 'tokenized' framing from the Vault Strategy description. https://claude.ai/code/session_01CfCCGCXne6eViGamZwy7ot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1321e48d..5a3c0869 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ A crowdfunding campaign onchain. A creator opens a fundraiser by choosing which ### Vault Strategy -A managed investment fund onchain. Investors deposit USDC and receive shares representing their slice of the fund. A manager allocates the pooled money across a basket of tokenized assets (here, tokenized stocks like TSLAx and NVDAx), and each share's value tracks the fund's net asset value — its total holdings divided by the number of shares. The manager earns a management fee over time, and investors withdraw a proportional, in-kind slice of the underlying assets. Demonstrates share minting, value-per-share pricing, fee accrual, and calling another program (CPI) to swap assets. +A managed investment fund onchain. Investors deposit USDC and receive shares representing their slice of the fund. A manager allocates the pooled money across a basket of assets (here, stocks like TSLAx and NVDAx), and each share's value tracks the fund's net asset value — its total holdings divided by the number of shares. The manager earns a management fee over time, and investors withdraw a proportional, in-kind slice of the underlying assets. Demonstrates share minting, value-per-share pricing, fee accrual, and calling another program (CPI) to swap assets. [⚓ Anchor](./finance/vault-strategy/anchor)