jpcaulfi 2 gadi atpakaļ
vecāks
revīzija
78013df17c
1 mainītis faili ar 24 papildinājumiem un 24 dzēšanām
  1. 24 24
      README.md

+ 24 - 24
README.md

@@ -1,39 +1,21 @@
 # Program Examples
 
-### :space_invader: Welcome, Solana Developer. :space_invader:   
-   
-Do you ever think to yourself: *"OK, but how do I do this on-chain?"*   
-   
-Or maybe you're in a hackathon right now, the clock's ticking, and you need to get a program off the ground *fast*.   
-   
-We present to you this list of curated examples for a wide range of use cases implemented using **on-chain programs**.   
-   
-### :link: All on-chain. :crab: All Rust. :muscle: All the time. 
+### :crab: Rust. :snake: Python. :link: All on-chain. 
 
-## Some Basic Concepts to Know
-Most system-level operations on Solana involve already-existing Solana programs.   
-   
-For example, to create a **system account** you use the **system program** and to create a **token mint** you use the **token program**.   
-   
-So, you'll notice that these operations are in fact conducting what's called a **cross-program invocation** - which is a fancy way of saying it calls other Solana programs to do business. You can see this in action whenever you see `invoke` or `invoke_signed` in the `native` examples, or `CpiContext` in the `anchor` examples.   
-   
-Deciding when to use cross-program invocation instead of invoking the programs directly from the client is completely up to you as the builder. It depends on how your application is designed.
-- Maybe you want to add some checks - such as minimum balance required, allowed ownership, etc.
-- Maybe you want to assert that an account has a certain data type.
-- Perhaps you want to send only one instruction from your client for a handful of sequential operations.
-- The list goes on.
-Regardless of what you may want to add on top of existing Solana programs, the number one use case for writing your own program is for using accounts with a **Program Derived Address (PDA)**. Crack open the `pdas` folder to see why.
+> **New:** Python examples using Seahorse and Anchor Py!
 
 ## Navigating this Repo
 
 :file_folder: Each example contains two folders:
 - `native` - Written using Solana's native Rust crates and vanilla Rust.
 - `anchor` - Written using Anchor's `anchor_lang` Rust crate and the associated Anchor framework to build & deploy.
+- `seahorse` - Written using the Python framework Seahorse, which converts your Python code to Anchor Rust.
 
 :wrench: How to build & run:
 - Before running anything in any folder make sure you pull in the dependencies with `yarn install`.
 - `native` - Use `cicd.sh` to build & deploy the program. Run `yarn run test` to test it.
 - `anchor` - Use `anchor build && anchor deploy` to build & deploy the program. Run `anchor run test` to test it.
+- `seahorse` - Use `seahorse build && anchor deploy` to build & deploy the program. Run `anchor run test` to test it.
 
 ## Examples We'd Love to See!
 
@@ -41,7 +23,9 @@ Regardless of what you may want to add on top of existing Solana programs, the n
     * Token2022
 * Examples needed for Anchor:
     * Additional Accounts & Resolving Accounts
-* New examples needed for both Anchor & Native:
+* Examples needed for Seahorse
+    * Any existing example missing a `seahorse` folder
+* New examples needed for Anchor, Native & Seahorse:
     * Token lending
     * Token swapping
     * Escrow
@@ -51,4 +35,20 @@ Regardless of what you may want to add on top of existing Solana programs, the n
     * Clockwork
     * VRF
     * Any oracle
-    * Merkle trees (compression)
+    * Merkle trees (compression)
+
+---
+
+## If You're New To Solana Please Read
+Most system-level operations on Solana involve already-existing Solana programs.   
+   
+For example, to create a **system account** you use the **system program** and to create a **token mint** you use the **token program**.   
+   
+So, you'll notice that these operations are in fact conducting what's called a **cross-program invocation** - which is a fancy way of saying it calls other Solana programs to do business. You can see this in action whenever you see `invoke` or `invoke_signed` in the `native` examples, or `CpiContext` in the `anchor` examples.   
+   
+Deciding when to use cross-program invocation instead of invoking the programs directly from the client is completely up to you as the builder. It depends on how your application is designed.
+- Maybe you want to add some checks - such as minimum balance required, allowed ownership, etc.
+- Maybe you want to assert that an account has a certain data type.
+- Perhaps you want to send only one instruction from your client for a handful of sequential operations.
+- The list goes on.
+Regardless of what you may want to add on top of existing Solana programs, the number one use case for writing your own program is for using accounts with a **Program Derived Address (PDA)**. Crack open the `pdas` folder to see why.