diff --git a/content/cookbook/development/start-local-validator.md b/content/cookbook/development/start-local-validator.md index bbd504a69..fbe780e71 100644 --- a/content/cookbook/development/start-local-validator.md +++ b/content/cookbook/development/start-local-validator.md @@ -8,7 +8,8 @@ Testing your program code locally can be a lot more reliable than testing on devnet, and can help you test before trying it out on devnet. You can setup your local-test-validator by installing the -[solana tool suite](/getting-started/installation.md#install-cli) and running +[Solana CLI tool suite](/docs/intro/installation.md) and running the following +command: ```shell solana-test-validator diff --git a/content/cookbook/tokens/manage-wrapped-sol.md b/content/cookbook/tokens/manage-wrapped-sol.md index acb5fc944..b1dc14fb1 100644 --- a/content/cookbook/tokens/manage-wrapped-sol.md +++ b/content/cookbook/tokens/manage-wrapped-sol.md @@ -11,9 +11,9 @@ and creating token accounts specifically on the `NATIVE_MINT` address. ## Create Token Account -Like -[Create Token Account](#https://solana.com/developers/cookbook/tokens/create-token-accounts) -but replace mint with `NATIVE_MINT` +Like creating +[SPL token accounts](/content/cookbook/tokens/create-token-account.md) but +replace mint with `NATIVE_MINT` ```js import { NATIVE_MINT } from "@solana/spl-token"; diff --git a/content/cookbook/transactions/add-priority-fees.md b/content/cookbook/transactions/add-priority-fees.md index b2cd17646..a10b49b42 100644 --- a/content/cookbook/transactions/add-priority-fees.md +++ b/content/cookbook/transactions/add-priority-fees.md @@ -12,7 +12,7 @@ Units (CU) \* number of instructions, with a max of 1.4M CU. The Base Fee is 5,000 Lamports per signature. A microLamport is 0.000001 Lamports. > You can find a detailed guide here on -> [how to use priority fees](https://solana.com/developers/guides/advanced/how-to-use-priority-fees). +> [how to use priority fees](/content/guides/advanced/how-to-use-priority-fees.md). The total compute budget or Prioritization Fee for a single TX can be changed by adding instructions from the ComputeBudgetProgram. diff --git a/content/cookbook/transactions/calculate-cost.md b/content/cookbook/transactions/calculate-cost.md index d38739147..015a5824e 100644 --- a/content/cookbook/transactions/calculate-cost.md +++ b/content/cookbook/transactions/calculate-cost.md @@ -9,8 +9,7 @@ description: The number of signatures a transaction requires are used to calculate the transaction cost. As long as you are not creating an account, this will be the base transaction cost. To find out more about costs to create an account, check -out -[calculating rent costs](https://solana.com/developers/cookbook/accounts/calculate-rent). +out [calculating rent costs](/content/cookbook/accounts/calculate-rent.md). ```typescript filename="calculate-cost.ts" import { diff --git a/content/cookbook/transactions/optimize-compute.md b/content/cookbook/transactions/optimize-compute.md index 033cab552..969e890db 100644 --- a/content/cookbook/transactions/optimize-compute.md +++ b/content/cookbook/transactions/optimize-compute.md @@ -8,10 +8,10 @@ the transaction is both processed in a timely manner as well as to avoid paying too much in priority fees. For more information about requesting optimal compute, -[check out the full guide](https://solana.com/developers/guides/advanced/how-to-request-optimal-compute). +[check out the full guide](/content/guides/advanced/how-to-request-optimal-compute.md). You can also find more information about -[using priority fees](https://solana.com/developers/guides/advanced/how-to-use-priority-fees) -in this detailed guide. +[using priority fees](/content/guides/advanced/how-to-use-priority-fees.md) in +this detailed guide. ```typescript filename="optimize-compute.ts" // import { ... } from "@solana/web3.js" diff --git a/content/cookbook/wallets/connect-wallet-react.md b/content/cookbook/wallets/connect-wallet-react.md index d1d73e2d4..39714d811 100644 --- a/content/cookbook/wallets/connect-wallet-react.md +++ b/content/cookbook/wallets/connect-wallet-react.md @@ -9,7 +9,7 @@ description: Solana's [wallet-adapter](https://github.com/anza-xyz/wallet-adapter) library make it easy to manage wallet connections client-side. For a full length guide, check out -[how to add wallet-adapter to nextjs](https://solana.com/developers/guides/wallets/add-solana-wallet-adapter-to-nextjs). +[how to add wallet-adapter to nextjs](/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md). ## How to Connect to a Wallet with React diff --git a/content/cookbook/wallets/generate-vanity-address.md b/content/cookbook/wallets/generate-vanity-address.md index e6e56c93e..c8663ec22 100644 --- a/content/cookbook/wallets/generate-vanity-address.md +++ b/content/cookbook/wallets/generate-vanity-address.md @@ -16,7 +16,7 @@ key more easily identifiable. **Note**: The more characters in your vanity address, the longer it will take. You can generate a vanity address using the -[Solana CLI](https://docs.solanalabs.com/cli): +[Solana CLI](/docs/intro/installation.md): ```bash solana-keygen grind --starts-with e1v1s:1 diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index 0f8b33b21..956e139b1 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -473,7 +473,7 @@ and explanations for why we need them: from [@solana/web3.js](https://github.com/solana-labs/solana-web3.js), such as `Transaction` and `Uint8Array` - `@solana/web3.js`: Solana Web Library for interacting with the Solana network - through the [JSON RPC API](https://docs.solana.com/api/http) + through the [JSON RPC API](/docs/rpc/http/index.mdx) - `react-native-get-random-values` Secure random number generator polyfill for `web3.js` underlying Crypto library on React Native - `buffer`: Buffer polyfill; also needed for `web3.js` on React Native diff --git a/content/courses/mobile/solana-mobile-dapps-with-expo.md b/content/courses/mobile/solana-mobile-dapps-with-expo.md index d6707b4b8..bf876a873 100644 --- a/content/courses/mobile/solana-mobile-dapps-with-expo.md +++ b/content/courses/mobile/solana-mobile-dapps-with-expo.md @@ -203,7 +203,7 @@ For a Solana + Expo app, you'll need the following: from [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) – such as `Transaction` and `Uint8Array`. - `@solana/web3.js`: Solana Web Library for interacting with the Solana network - through the [JSON RPC API](https://docs.solana.com/api/http). + through the [JSON RPC API](/docs/rpc/http/index.mdx). - `react-native-get-random-values`: Secure random number generator polyfill for `web3.js` underlying Crypto library on React Native. - `buffer`: Buffer polyfill needed for `web3.js` on React Native. diff --git a/content/courses/offline-transactions/durable-nonces.md b/content/courses/offline-transactions/durable-nonces.md index a17a92b82..d51dcf2fa 100644 --- a/content/courses/offline-transactions/durable-nonces.md +++ b/content/courses/offline-transactions/durable-nonces.md @@ -432,8 +432,7 @@ devnet if you'd like. ( If you have issues airdropping on devnet, check out [Solana's Faucet](https://faucet.solana.com/) ) To run the local validator, you'll need to have it installed, if you don't you -can refer to -[installing the Solana CLI](https://docs.solanalabs.com/cli/install), once you +can refer to [installing the Solana CLI](/docs/intro/installation.md), once you install the CLI you'll have access to the `solana-test-validator`. In a separate terminal run: diff --git a/content/courses/onchain-development/local-setup.md b/content/courses/onchain-development/local-setup.md index 187ee5ac5..0d89fb0af 100644 --- a/content/courses/onchain-development/local-setup.md +++ b/content/courses/onchain-development/local-setup.md @@ -49,7 +49,7 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ### Download the Solana CLI tools Next, -[download the Solana CLI tools](https://docs.solana.com/cli/install-solana-cli-tools): +[download the Solana CLI tools](/docs/intro/installation.md#install-the-solana-cli): ```bash sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)" diff --git a/content/courses/token-extensions/token-extensions-onchain.md b/content/courses/token-extensions/token-extensions-onchain.md index 4d46e33bf..1cbf6c2ce 100644 --- a/content/courses/token-extensions/token-extensions-onchain.md +++ b/content/courses/token-extensions/token-extensions-onchain.md @@ -328,11 +328,10 @@ solana --version If the version printed out after running `solana --version` is less than `1.18.0` then you can update the -[cli version manually](https://docs.solanalabs.com/cli/install). Note, at the -time of writing this, you cannot simply run the `solana-install update` command. -This command will not update the CLI to the correct version for us, so we have -to explicitly download version `1.18.0`. You can do so with the following -command: +[cli version manually](/docs/intro/installation.md). Note, at the time of +writing this, you cannot simply run the `solana-install update` command. This +command will not update the CLI to the correct version for us, so we have to +explicitly download version `1.18.0`. You can do so with the following command: ```bash solana-install init 1.18.0 diff --git a/content/guides/advanced/introduction-to-durable-nonces.md b/content/guides/advanced/introduction-to-durable-nonces.md index b8a604e4d..536e1d440 100644 --- a/content/guides/advanced/introduction-to-durable-nonces.md +++ b/content/guides/advanced/introduction-to-durable-nonces.md @@ -156,8 +156,8 @@ Now that we know what Durable Nonces are, it's time to use them to send durable transactions. > If you do not have the Solana CLI installed, please go through -> [this](https://docs.solana.com/cli/install-solana-cli-tools) tutorial and set -> up the CLI and a keypair with some airdropped SOL on devnet +> [this tutorial](/docs/intro/installation.md) and set up the Solana CLI and +> create a keypair with some airdropped SOL on devnet ### Create Nonce Authority @@ -617,5 +617,5 @@ change will happen on-chain, and the winner can be decided. ## References - [Neodyme Blog: Nonce Upon a Time, or a Total Loss of Funds](https://neodyme.io/blog/nonce-upon-a-time/) -- [Solana Durable Nonces CLI](https://docs.solana.com/offline-signing/durable-nonce) -- [Solana Durable Transaction Nonces Proposal](https://docs.solana.com/implemented-proposals/durable-tx-nonces) +- [Solana Durable Nonces CLI](https://docs.solanalabs.com/cli/examples/durable-nonce) +- [Solana Durable Transaction Nonces Proposal](https://docs.solanalabs.com/implemented-proposals/durable-tx-nonces) diff --git a/content/guides/dapps/journal.md b/content/guides/dapps/journal.md index 63275e353..4ddde0ede 100644 --- a/content/guides/dapps/journal.md +++ b/content/guides/dapps/journal.md @@ -212,10 +212,9 @@ In the above code, we used the following macros: - `#[account(...)]` attribute macro then specifies additional constraints on the accounts -Each journal entry is a Program Derived Address ( -[PDA](https://solanacookbook.com/core-concepts/pdas.html#facts)) that stores the -entries state on-chain. Since we are creating a new journal entry here, it needs -to be initialized using the `init_if_needed` constraint. +Each journal entry is a Program Derived Address ( [PDA](/docs/core/pda.md)) that +stores the entries state on-chain. Since we are creating a new journal entry +here, it needs to be initialized using the `init_if_needed` constraint. With Anchor, a PDA is initialized with the `seeds`, `bumps`, and `init_if_needed` constraints. The `init_if_needed` constraint also requires the diff --git a/content/guides/games/nfts-in-games.md b/content/guides/games/nfts-in-games.md index 5aa0ab570..db657913e 100644 --- a/content/guides/games/nfts-in-games.md +++ b/content/guides/games/nfts-in-games.md @@ -56,10 +56,9 @@ other assets for your game. GameShift offers these features: Using NFTs, you can conditionally gate access to a particular part of a game based on owning the NFT. This can form a more tight-knit community within your -game. In -[JavaScript](https://docs.solana.com/de/developing/clients/javascript-api) using -the [Metaplex SDK](https://github.com/metaplex-foundation/js#readme) this would -look like this: +game. In [JavaScript](/docs/clients/javascript.md) using the +[Metaplex SDK](https://github.com/metaplex-foundation/js#readme) this would look +like this: ```js JSON.parse( diff --git a/content/guides/getstarted/how-to-create-a-token.md b/content/guides/getstarted/how-to-create-a-token.md index f26f7dbe9..5a6b2543d 100644 --- a/content/guides/getstarted/how-to-create-a-token.md +++ b/content/guides/getstarted/how-to-create-a-token.md @@ -49,7 +49,7 @@ instead. ## Installing Solana Tools First we need to download Solana tools to our system. Follow this guide to -[install the Solana CLI](https://docs.solanalabs.com/cli/install). +[install the Solana CLI](/docs/intro/installation.md). ## Create folder diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 7b065d4a9..864c80399 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -57,9 +57,9 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ## Run your localhost validator The Solana CLI comes with the -[test validator](https://docs.solana.com/developing/test-validator) built in. -This command line tool will allow you to run a full blockchain cluster on your -machine. +[test validator](https://docs.solanalabs.com/cli/examples/test-validator) built +in. This command line tool will allow you to run a full blockchain cluster on +your machine. ```shell solana-test-validator @@ -81,8 +81,8 @@ solana config set --url localhost ## Create a new Rust library with Cargo Solana programs written in Rust are _libraries_ which are compiled to -[BPF bytecode](https://docs.solana.com/developing/on-chain-programs/faq#berkeley-packet-filter-bpf) -and saved in the `.so` format. +[BPF bytecode](/docs/programs/faq.md#berkeley-packet-filter-bpf) and saved in +the `.so` format. Initialize a new Rust library named `hello_world` via the Cargo command line: @@ -143,8 +143,8 @@ use solana_program::{ Every Solana program must define an `entrypoint` that tells the Solana runtime where to start executing your onchain code. Your program's -[entrypoint](https://docs.solana.com/developing/on-chain-programs/developing-rust#program-entrypoint) -should provide a public function named `process_instruction`: +[entrypoint](/docs/programs/lang-rust.md#program-entrypoint) should provide a +public function named `process_instruction`: ```rust // declare and export the program's entrypoint @@ -169,9 +169,8 @@ Every onchain program should return the `Ok` tells the Solana runtime that your program executed successfully without errors. This program above will simply -[log a message](https://docs.solana.com/developing/on-chain-programs/debugging#logging) -of "_Hello, world!_" to the blockchain cluster, then gracefully exit with -`Ok(())`. +[log a message](/docs/programs/debugging.md#logging) of "_Hello, world!_" to the +blockchain cluster, then gracefully exit with `Ok(())`. ## Build your Rust program @@ -202,8 +201,8 @@ solana program deploy ./target/deploy/hello_world.so ``` Once your Solana program has been deployed (and the transaction -[finalized](https://docs.solana.com/cluster/commitments)), the above command -will output your program's public address (aka its "program id"). +[finalized](https://docs.solanalabs.com/consensus/commitments)), the above +command will output your program's public address (aka its "program id"). ```shell # example output @@ -363,7 +362,7 @@ transaction on the Solana blockchain. See the links below to learn more about writing Rust based Solana programs: -- [Overview of writing Solana programs](https://docs.solana.com/developing/on-chain-programs/overview) +- [Overview of writing Solana programs](/docs/programs/overview.md) - [Solana Quick Start Guide](https://solana.com/docs/intro/quick-start) -- [Learn more about developing Solana programs with Rust](https://docs.solana.com/developing/on-chain-programs/developing-rust) -- [Debugging onchain programs](https://docs.solana.com/developing/on-chain-programs/debugging) +- [Learn more about developing Solana programs with Rust](/docs/programs/lang-rust.md) +- [Debugging onchain programs](/docs/programs/debugging.md) diff --git a/content/guides/getstarted/solana-token-airdrop-and-faucets.md b/content/guides/getstarted/solana-token-airdrop-and-faucets.md index ee5dbf884..3ae24e1ca 100644 --- a/content/guides/getstarted/solana-token-airdrop-and-faucets.md +++ b/content/guides/getstarted/solana-token-airdrop-and-faucets.md @@ -86,8 +86,7 @@ Currently supported: ### Using the Solana CLI -Specify your [Cluster](https://docs.solana.com/clusters) to be your RPC -provider's URL: +Specify your [Cluster](/docs/core/clusters.md) to be your RPC provider's URL: ```shell solana config set --url diff --git a/content/guides/intro/wallets-explained.md b/content/guides/intro/wallets-explained.md index f837ea241..acd9af700 100644 --- a/content/guides/intro/wallets-explained.md +++ b/content/guides/intro/wallets-explained.md @@ -270,8 +270,8 @@ signature pens! ✍️.** Do you want to start building on Solana? - A gentle introduction to Solana: - [https://solana.com/news/solana-scaffold-part-1-wallet-adapter](https://solana.com/news/solana-scaffold-part-1-wallet-adapter) -- Tutorials: [https://soldev.app/](https://soldev.app/) + [Quick Start guides](/docs/intro/quick-start/index.md) +- [Install the Solana CLI](/docs/intro/installation.md) ### Blockchain and blockchain diff --git a/content/guides/javascript/compressed-nfts.md b/content/guides/javascript/compressed-nfts.md index 18c5eb1de..65f1cc431 100644 --- a/content/guides/javascript/compressed-nfts.md +++ b/content/guides/javascript/compressed-nfts.md @@ -18,7 +18,7 @@ altRoutes: Compressed NFTs on Solana use the [Bubblegum](https://docs.metaplex.com/programs/compression/) program from Metaplex to cheaply and securely store NFT metadata using -[State Compression](https://docs.solana.com/learn/state-compression). +[State Compression](/docs/advanced/state-compression.md). This developer guide will use JavaScript/TypeScript to demonstrate: @@ -30,10 +30,9 @@ This developer guide will use JavaScript/TypeScript to demonstrate: ## Intro to Compressed NFTs -Compressed NFTs use -[State Compression](https://docs.solana.com/learn/state-compression) and -[merkle trees](https://docs.solana.com/learn/state-compression#what-is-a-merkle-tree) -to drastically reduce the storage cost for NFTs. Instead of storing an NFT's +Compressed NFTs use [State Compression](/docs/advanced/state-compression.md) and +[merkle trees](/docs/advanced/state-compression.md#what-is-a-merkle-tree) to +drastically reduce the storage cost for NFTs. Instead of storing an NFT's metadata in a typical Solana account, compressed NFTs store the metadata within the ledger. This allows compressed NFTs to still inherit the security and speed of the Solana blockchain, while at the same time reducing the overall storage @@ -53,10 +52,9 @@ transfer. More on this below. ### Compressed NFTs and indexers Since compressed NFTs store all of their metadata in the -[ledger](https://docs.solana.com/terminology#ledger), instead of in traditional -[accounts](https://docs.solana.com/terminology#account) like uncompressed NFTs, -we will need to help of indexing services to quickly fetch our compressed NFT's -metadata. +[ledger](/docs/terminology.md#ledger), instead of in traditional +[accounts](/docs/terminology.md#account) like uncompressed NFTs, we will need to +help of indexing services to quickly fetch our compressed NFT's metadata. Supporting RPC providers are using the Digital Asset Standard Read API (or "Read API" for short) to add additional RPC methods that developers can call. These @@ -90,7 +88,7 @@ happen in 3 primary steps: - create an NFT collection (or use an existing one) - create a - [concurrent merkle tree](https://docs.solana.com/learn/state-compression#what-is-a-concurrent-merkle-tree) + [concurrent merkle tree](/docs/advanced/state-compression.md#what-is-a-concurrent-merkle-tree) (using the `@solana/spl-account-compression` SDK) - mint compressed NFTs into your tree (to any owner's address you want) @@ -168,7 +166,7 @@ actually create them following the same process of creating an - store the collection's metadata in an Account on-chain Since NFT Collections having nothing special to do with -[State Compression](https://docs.solana.com/learn/state-compression) or +[State Compression](/docs/advanced/state-compression.md) or [compressed NFTs](/content/guides/javascript/compressed-nfts.md), we will not cover creating one in this guide. @@ -186,7 +184,7 @@ various addresses for your Collection, including: ## Create a tree One of the most important decisions to make when creating compressed NFTs is -[how to setup your tree](https://docs.solana.com/learn/state-compression#sizing-a-concurrent-merkle-tree). +[how to setup your tree](/docs/advanced/state-compression.md#sizing-a-concurrent-merkle-tree). Especially since the values used to size your tree will determine the overall cost of creation, and **CANNOT** be changed after creation. @@ -218,9 +216,8 @@ Your tree size is set by 3 values, each serving a very specific purpose: a large of cost and composability of your compressed NFT collection > Read more about the details about -> [State Compression](https://docs.solana.com/learn/state-compression), -> including -> [how to size a tree](https://docs.solana.com/learn/state-compression#sizing-a-concurrent-merkle-tree) +> [State Compression](/docs/advanced/state-compression.md), including +> [how to size a tree](/docs/advanced/state-compression.md#sizing-a-concurrent-merkle-tree) > and potential composability concerns. Let's assume we are going to create a compressed NFT collection with 10k NFTs in @@ -254,8 +251,7 @@ node hashes" on-chain. Thus requiring us to always include `4` proof node values ### Generate addresses for the tree When creating a new tree, we need to generate a new -[Keypair](https://docs.solana.com/terminology#keypair) address for the tree to -have: +[Keypair](/docs/terminology.md#keypair) address for the tree to have: ```ts const treeKeypair = Keypair.generate(); @@ -363,7 +359,7 @@ Allowing us to cryptographically verify that our original metadata has not changed (unless we want it to). > Learn more about how State Compression uses -> [concurrent merkle trees](https://docs.solana.com/learn/state-compression#what-is-a-concurrent-merkle-tree) +> [concurrent merkle trees](/docs/advanced/state-compression.md#what-is-a-concurrent-merkle-tree) > to cryptographically secure offchain data using the Solana ledger. ### Define our NFT's metadata @@ -401,8 +397,8 @@ In this demo, the key pieces of our NFT's metadata to note are: ### Derive the Bubblegum signer When minting new compressed NFTs, the Bubblegum program needs a PDA to perform a -[cross-program invocation](https://docs.solana.com/developing/programming-model/calling-between-programs#cross-program-invocations) -(`cpi`) to the SPL compression program. +[cross-program invocation](/docs/core/cpi.md) (`cpi`) to the SPL compression +program. > This `bubblegumSigner` PDA is derived using a hard coded seed string of > `collection_cpi` and owned by the Bubblegum program. If this hard coded value @@ -626,8 +622,8 @@ together in a deterministic way to compute the "root hash". Therefore, allowing for cryptographic validation of an asset within the merkle tree. > **NOTE:** While each of these hash values resemble a Solana Account's -> [address/public key](https://docs.solana.com/terminology#public-key-pubkey), -> they are not addresses. +> [address/public key](/docs/terminology.md#public-key-pubkey), they are not +> addresses. Transferring ownership of a compressed NFT happens in 5 broad steps: @@ -745,8 +741,7 @@ Since we will use the `createTransferInstruction` helper function from the Bubblegum SDK to actually build our transfer instruction, we need to: - remove the proof values that are already stored on-chain in the - [tree's canopy](https://docs.solana.com/learn/state-compression#canopy-depth), - and + [tree's canopy](/docs/advanced/state-compression.md#canopy-depth), and - convert the remaining proof values into the valid `AccountMeta` structure that the instruction builder function accepts diff --git a/content/guides/javascript/get-program-accounts.md b/content/guides/javascript/get-program-accounts.md index 090e0ff0c..3b750e21d 100644 --- a/content/guides/javascript/get-program-accounts.md +++ b/content/guides/javascript/get-program-accounts.md @@ -31,10 +31,10 @@ The `getProgramAccounts` RPC method has the following syntax: - (optional) `configOrCommitment`: `object` - Configuration parameters containing the following optional fields: - (optional) `commitment`: `string` - - [State commitment](https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment) + [State commitment](/docs/rpc/index.mdx#configuring-state-commitment) - (optional) `encoding`: `string` - Encoding for account data, either: `base58`, `base64`, or `jsonParsed`. Note, web3js users should instead use - [getParsedProgramAccounts](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts) + [`getParsedProgramAccounts`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts) - (optional) `dataSlice`: `object` - Limit the returned account data based on: - `offset`: `number` - Number of bytes into account data to begin returning - `length`: `number` - Number of bytes of account data to return @@ -48,7 +48,7 @@ The `getProgramAccounts` RPC method has the following syntax: - `dataSize`: `number` - Compares the account data length with the provided data size - (optional) `withContext`: `boolean` - Wrap the result in an - [RpcResponse JSON object](https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure) + [RpcResponse JSON object](/docs/rpc/index.mdx#rpcresponse-structure) ### Response diff --git a/content/guides/token-extensions/getting-started.md b/content/guides/token-extensions/getting-started.md index a843fcd9d..67c2ac233 100644 --- a/content/guides/token-extensions/getting-started.md +++ b/content/guides/token-extensions/getting-started.md @@ -41,10 +41,9 @@ You can find a dedicated video tutorial for each Token Extension on this ## How do I create a token with token extensions? To get started creating tokens with token extensions, you can use the -[Solana Tool Suite](https://solana.com/docs/intro/installation) to create tokens -with a CLI. Based on the extension you want to create, your command flags may be -different. Below are the flags to add to create tokens with each type of -extension. +[Solana Tool Suite](/docs/intro/installation.md) to create tokens with a CLI. +Based on the extension you want to create, your command flags may be different. +Below are the flags to add to create tokens with each type of extension. | Extension | CLI Flag | | -------------------------------------------------------------------------------------------------- | ----------------------------------------- | diff --git a/content/resources/info/docs.md b/content/resources/info/docs.md index 14e5fd94f..2f491a254 100644 --- a/content/resources/info/docs.md +++ b/content/resources/info/docs.md @@ -1,12 +1,12 @@ --- category: documentation -title: Core Documentation +title: Solana Documentation description: "The official Solana documentation on developing, validators, SPL tokens, wallets and more." tags: - docs isExternal: true -href: https://docs.solana.com/ -repoUrl: https://github.com/solana-labs/solana/tree/master/docs +href: https://solana.com/docs +repoUrl: https://github.com/solana-foundation/developer-content/tree/main/docs --- diff --git a/docs/advanced/retry.md b/docs/advanced/retry.md index 6949e2ad2..f69bddb8e 100644 --- a/docs/advanced/retry.md +++ b/docs/advanced/retry.md @@ -285,10 +285,10 @@ fork. If an application has access to RPC nodes behind a load balancer, it can also choose to divide its workload amongst specific nodes. RPC nodes that serve data-intensive requests such as -[getProgramAccounts](https://solanacookbook.com/guides/get-program-accounts.html) -may be prone to falling behind and can be ill-suited for also forwarding -transactions. For applications that handle time-sensitive transactions, it may -be prudent to have dedicated nodes that only handle `sendTransaction`. +[getProgramAccounts](/content//guides/javascript/get-program-accounts.md) may be +prone to falling behind and can be ill-suited for also forwarding transactions. +For applications that handle time-sensitive transactions, it may be prudent to +have dedicated nodes that only handle `sendTransaction`. ### The Cost of Skipping Preflight diff --git a/docs/intro/dev.md b/docs/intro/dev.md index ff65650cf..1d9d5caab 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -107,10 +107,9 @@ can do this with the following command: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -You'll then need to have the -[Solana CLI installed](https://docs.solanalabs.com/cli/install) to compile and -deploy your programs. You can install the Solana CLI by running the following -command: +You'll then need to have the [Solana CLI installed](/docs/intro/installation.md) +to compile and deploy your programs. You can install the Solana CLI by running +the following command: ```bash sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)" @@ -126,7 +125,7 @@ solana-test-validator This will start a local validator on your machine that you can use to test your programs. You can -[read more about local development in this guide](https://solana.com/docs/intro/installation). +[read more about local development in this guide](/docs/intro/installation.md). When building onchain programs, you have a choice to either build with native Rust (ie, without a framework) or use the Anchor framework. Anchor is a diff --git a/docs/more/exchange.md b/docs/more/exchange.md index 6db344ca8..a85268db4 100644 --- a/docs/more/exchange.md +++ b/docs/more/exchange.md @@ -24,7 +24,7 @@ and high TPS. For specific requirements, please see To run an api node: -1. [Install the Solana command-line tool suite](https://docs.solanalabs.com/cli/install) +1. [Install the Solana command-line tool suite](/docs/intro/installation.md) 2. Start the validator with at least the following parameters: ```shell diff --git a/docs/programs/lang-c.md b/docs/programs/lang-c.md index b5bad22c9..213cdce4c 100644 --- a/docs/programs/lang-c.md +++ b/docs/programs/lang-c.md @@ -29,8 +29,7 @@ environment per [How to Build](#how-to-build) then it should be. First setup the environment: - Install the latest Rust stable from https://rustup.rs -- Install the latest - [Solana command-line tools](https://docs.solanalabs.com/cli/install) +- Install the latest [Solana command-line tools](/docs/intro/installation.md) Then build using make: diff --git a/docs/programs/lang-rust.md b/docs/programs/lang-rust.md index 22edde649..9a6a8cefa 100644 --- a/docs/programs/lang-rust.md +++ b/docs/programs/lang-rust.md @@ -68,8 +68,7 @@ For example: First setup the environment: - Install the latest Rust stable from https://rustup.rs/ -- Install the latest - [Solana command-line tools](https://docs.solanalabs.com/cli/install) +- Install the latest [Solana command-line tools](/docs/intro/installation.md) The normal cargo build is available for building programs against your host machine which can be used for unit testing: diff --git a/docs/programs/overview.md b/docs/programs/overview.md index 524e6bddc..3e937a2c1 100644 --- a/docs/programs/overview.md +++ b/docs/programs/overview.md @@ -32,9 +32,8 @@ program, take a look at these detailed quick start guides: ### 1. Setup your development environment The most robust way of getting started with Solana development, is -[installing the Solana CLI](https://docs.solanalabs.com/cli/install) tools on -your local computer. This will allow you to have the most powerful development -environment. +[installing the Solana CLI](/docs/intro/installation.md) tools on your local +computer. This will allow you to have the most powerful development environment. Some developers may also opt for using [Solana Playground](https://beta.solpg.io/), a browser based IDE. It will let @@ -57,11 +56,10 @@ byte-code that will then be deployed to the blockchain. ### 4. Generate the program's public address -Using the [Solana CLI](https://docs.solanalabs.com/cli/install), the developer -will generate a new unique [Keypair](/docs/terminology.md#keypair) for the new -program. The public address (aka -[Pubkey](/docs/terminology.md#public-key-pubkey)) from this Keypair will be used -on-chain as the program's public address (aka +Using the [Solana CLI](/docs/intro/installation.md), the developer will generate +a new unique [Keypair](/docs/terminology.md#keypair) for the new program. The +public address (aka [Pubkey](/docs/terminology.md#public-key-pubkey)) from this +Keypair will be used on-chain as the program's public address (aka [`programId`](/docs/terminology.md#program-id)). ### 5. Deploying the program diff --git a/redirects.json b/redirects.json index a480657df..12e411839 100644 --- a/redirects.json +++ b/redirects.json @@ -1,5 +1,17 @@ { "common-docs": [ + { + "source": "/install", + "destination": "/docs/intro/installation" + }, + { + "source": "/cli/install", + "destination": "/docs/intro/installation" + }, + { + "source": "/cli/install-solana-cli-tools", + "destination": "/docs/intro/installation" + }, { "source": "/apps", "destination": "/developers" }, { "source": "/developing/programming-model/overview", @@ -138,7 +150,7 @@ "source": "/getstarted/hello-world" }, { - "destination": "docs/intro/installation", + "destination": "/docs/intro/installation", "source": "/getstarted/local" }, { @@ -207,10 +219,6 @@ "source": "/implemented-proposals", "destination": "/implemented-proposals" }, - { - "source": "/cli/install-solana-cli-tools", - "destination": "/cli/install" - }, { "source": "/cli/conventions", "destination": "/cli/intro" }, { "source": "/cli/choose-a-cluster", diff --git a/src/components/HomeComponent.tsx b/src/components/HomeComponent.tsx index a2178cd80..61e57d7c4 100644 --- a/src/components/HomeComponent.tsx +++ b/src/components/HomeComponent.tsx @@ -116,7 +116,7 @@ export const HomeViewComponent = () => { , which contains all the information specific to that validator client's implementation and inner workings. Including{" "} - + installing the Solana CLI tool-suite , this{" "}