From a1be3cf5b88ed335721ea4f96c142560020a710f Mon Sep 17 00:00:00 2001 From: Ilboudo S Charles Magloire Date: Fri, 1 Mar 2024 06:18:14 -0500 Subject: [PATCH] replaced serum with openbook --- code/account-maps/deriving-pda/client.ts | 2 +- code/account-maps/trivial/client.ts | 2 +- .../client/testing-with-anchor.js | 2 +- .../compute-budget/computeBudget.en.tsx | 2 +- code/jupiter/installationapi/main.en.ts | 2 +- code/jupiter/providerSetup/main.en.ts | 2 +- .../dump-programs.en.sh | 2 +- .../dump-programs.preview.en.sh | 2 +- .../load-programs.en.sh | 2 +- .../load-programs.preview.en.sh | 2 +- code/mango/load-asks/load-asks.en.ts | 4 +- code/mango/load-bids/load-bids.en.ts | 4 +- .../place-spot-order/place-spot-order.en.ts | 4 +- code/serum/get-books/get-books.en.ts | 2 +- code/serum/get-orders/get-orders.en.ts | 2 +- code/serum/load-market/load-market.en.ts | 2 +- code/strata/fully-managed/buy-token.en.ts | 2 +- code/strata/fully-managed/create-token.en.ts | 2 +- code/strata/fully-managed/sell-token.en.ts | 2 +- code/strata/lbc/create.en.ts | 2 +- code/switchboard/client/create.client.en.ts | 2 +- .../client/create.oracle.client.en.ts | 2 +- .../client/create.vrf.client.en.ts | 2 +- code/switchboard/client/read.vrf.client.en.ts | 2 +- .../client/request.vrf.client.en.ts | 2 +- docs/.vuepress/config.ts | 18 ++++----- .../dist/assets/account-maps.html.0d767eca.js | 4 +- .../dist/assets/account-maps.html.113fa1ac.js | 4 +- .../dist/assets/account-maps.html.2b2e7767.js | 4 +- .../dist/assets/account-maps.html.442511c7.js | 4 +- .../dist/assets/account-maps.html.77d8532d.js | 4 +- .../dist/assets/account-maps.html.96de5b13.js | 4 +- .../dist/assets/account-maps.html.9c1915f5.js | 4 +- .../dist/assets/account-maps.html.e1996f93.js | 4 +- .../dist/assets/account-maps.html.ecd8e579.js | 4 +- docs/.vuepress/dist/assets/app.55b1b60c.js | 6 +-- .../basic-transactions.html.159d2d39.js | 2 +- .../basic-transactions.html.26b4a82e.js | 2 +- .../basic-transactions.html.4a2578a5.js | 2 +- .../basic-transactions.html.9343afcb.js | 2 +- .../basic-transactions.html.9c6d8c48.js | 2 +- .../basic-transactions.html.a3ec3168.js | 2 +- .../basic-transactions.html.a9786217.js | 2 +- .../basic-transactions.html.ca48a30a.js | 2 +- .../basic-transactions.html.fc1a8867.js | 2 +- .../get-program-accounts.html.05fd251c.js | 2 +- .../get-program-accounts.html.086000e2.js | 2 +- .../get-program-accounts.html.13e583fe.js | 2 +- .../get-program-accounts.html.2027870e.js | 2 +- .../get-program-accounts.html.ab253dc0.js | 2 +- .../get-program-accounts.html.ab992419.js | 2 +- .../get-program-accounts.html.b4e0f4f3.js | 2 +- .../get-program-accounts.html.dfdd1137.js | 2 +- .../get-program-accounts.html.f435a31f.js | 2 +- .../get-program-accounts.html.fb8839ac.js | 2 +- .../dist/assets/jupiter.html.2c7ec669.js | 6 +-- .../dist/assets/jupiter.html.4ca25825.js | 6 +-- .../dist/assets/jupiter.html.53710d58.js | 6 +-- .../dist/assets/jupiter.html.74a079c6.js | 6 +-- .../dist/assets/jupiter.html.971e1dde.js | 6 +-- .../dist/assets/jupiter.html.a2626a25.js | 6 +-- .../dist/assets/jupiter.html.e61c13e7.js | 6 +-- .../assets/local-development.html.4f85d321.js | 10 ++--- .../assets/local-development.html.7ea617a4.js | 10 ++--- .../assets/local-development.html.915be9fa.js | 10 ++--- .../assets/local-development.html.a1aa3ed0.js | 10 ++--- .../assets/local-development.html.a393140f.js | 10 ++--- .../assets/local-development.html.a4b2de83.js | 10 ++--- .../assets/local-development.html.a4ff47a7.js | 4 +- .../assets/local-development.html.aaa13661.js | 10 ++--- .../assets/local-development.html.bc2058e1.js | 10 ++--- .../assets/local-development.html.f9c91566.js | 10 ++--- .../dist/assets/mango.html.16fd6de6.js | 20 +++++----- .../dist/assets/mango.html.22eca321.js | 20 +++++----- .../dist/assets/mango.html.235ca792.js | 20 +++++----- .../dist/assets/mango.html.4038697b.js | 20 +++++----- .../dist/assets/mango.html.c9da188d.js | 20 +++++----- .../dist/assets/mango.html.d738a7f1.js | 20 +++++----- .../dist/assets/mango.html.dfb33f17.js | 20 +++++----- .../dist/assets/programs.html.7ee31ce3.js | 4 +- .../dist/assets/programs.html.f8f8f4bb.js | 4 +- .../dist/assets/pyth.html.31cc5468.js | 2 +- .../dist/assets/pyth.html.4f0841c0.js | 2 +- .../dist/assets/pyth.html.509b01aa.js | 2 +- .../dist/assets/pyth.html.5f59a477.js | 2 +- .../dist/assets/pyth.html.a56d75c5.js | 2 +- .../dist/assets/pyth.html.c0775995.js | 2 +- .../dist/assets/pyth.html.d4d12cb2.js | 2 +- .../dist/assets/serum.html.117a0127.js | 12 +++--- .../dist/assets/serum.html.247b2421.js | 2 +- .../dist/assets/serum.html.4533f845.js | 2 +- .../dist/assets/serum.html.58b69860.js | 12 +++--- .../dist/assets/serum.html.5b7d1540.js | 12 +++--- .../dist/assets/serum.html.80bfdb16.js | 12 +++--- .../dist/assets/serum.html.80ffe6cc.js | 2 +- .../dist/assets/serum.html.94e5f7c6.js | 2 +- .../dist/assets/serum.html.9e977ae7.js | 2 +- .../dist/assets/serum.html.a80dd7c1.js | 12 +++--- .../dist/assets/serum.html.b6233283.js | 12 +++--- .../dist/assets/serum.html.d513a959.js | 2 +- .../dist/assets/serum.html.e7981cfb.js | 2 +- .../dist/assets/serum.html.fa2c5d2c.js | 12 +++--- .../dist/assets/strata.html.12bbf620.js | 8 ++-- .../dist/assets/strata.html.28c4c18a.js | 8 ++-- .../dist/assets/strata.html.4608aeed.js | 8 ++-- .../dist/assets/strata.html.6ce60e71.js | 8 ++-- .../dist/assets/strata.html.97a02aa1.js | 8 ++-- .../dist/assets/strata.html.c693a7c8.js | 8 ++-- .../dist/assets/strata.html.d1c97a7c.js | 8 ++-- .../dist/assets/switchboard.html.012baeb5.js | 10 ++--- .../dist/assets/switchboard.html.4ee40e9f.js | 10 ++--- .../dist/assets/switchboard.html.8803939a.js | 10 ++--- .../dist/assets/switchboard.html.9ffe2598.js | 10 ++--- .../dist/assets/switchboard.html.ced137c3.js | 10 ++--- .../dist/assets/switchboard.html.e9fb6fa3.js | 10 ++--- .../dist/assets/switchboard.html.ff653a7d.js | 10 ++--- .../dist/de/guides/account-maps.html | 4 +- .../dist/de/guides/get-program-accounts.html | 2 +- .../.vuepress/dist/de/integrations/index.html | 2 +- .../dist/de/integrations/jupiter.html | 8 ++-- .../.vuepress/dist/de/integrations/mango.html | 22 +++++----- docs/.vuepress/dist/de/integrations/pyth.html | 4 +- .../dist/de/integrations/react-native.html | 2 +- .../.vuepress/dist/de/integrations/serum.html | 16 ++++---- .../dist/de/integrations/strata.html | 10 ++--- .../dist/de/integrations/switchboard.html | 12 +++--- .../dist/de/integrations/web3auth.html | 2 +- .../de/references/basic-transactions.html | 2 +- .../dist/de/references/local-development.html | 10 ++--- .../dist/es/core-concepts/programs.html | 4 +- .../dist/es/guides/account-maps.html | 4 +- .../dist/es/guides/get-program-accounts.html | 2 +- .../es/references/basic-transactions.html | 2 +- .../dist/es/references/local-development.html | 10 ++--- .../dist/fr/guides/account-maps.html | 4 +- .../dist/fr/guides/get-program-accounts.html | 2 +- .../.vuepress/dist/fr/integrations/index.html | 2 +- .../dist/fr/integrations/jupiter.html | 8 ++-- .../.vuepress/dist/fr/integrations/mango.html | 22 +++++----- docs/.vuepress/dist/fr/integrations/pyth.html | 4 +- .../dist/fr/integrations/react-native.html | 2 +- .../.vuepress/dist/fr/integrations/serum.html | 16 ++++---- .../dist/fr/integrations/strata.html | 10 ++--- .../dist/fr/integrations/switchboard.html | 12 +++--- .../dist/fr/integrations/web3auth.html | 2 +- .../fr/references/basic-transactions.html | 2 +- .../dist/fr/references/local-development.html | 10 ++--- docs/.vuepress/dist/guides/account-maps.html | 4 +- .../dist/guides/get-program-accounts.html | 2 +- .../dist/id/guides/account-maps.html | 4 +- .../dist/id/guides/get-program-accounts.html | 2 +- .../.vuepress/dist/id/integrations/index.html | 2 +- .../dist/id/integrations/jupiter.html | 8 ++-- .../.vuepress/dist/id/integrations/mango.html | 22 +++++----- docs/.vuepress/dist/id/integrations/pyth.html | 4 +- .../dist/id/integrations/react-native.html | 2 +- .../.vuepress/dist/id/integrations/serum.html | 16 ++++---- .../dist/id/integrations/strata.html | 10 ++--- .../dist/id/integrations/switchboard.html | 12 +++--- .../dist/id/integrations/web3auth.html | 2 +- .../id/references/basic-transactions.html | 2 +- .../dist/id/references/local-development.html | 10 ++--- docs/.vuepress/dist/integrations/index.html | 2 +- docs/.vuepress/dist/integrations/jupiter.html | 8 ++-- docs/.vuepress/dist/integrations/mango.html | 22 +++++----- docs/.vuepress/dist/integrations/pyth.html | 4 +- .../dist/integrations/react-native.html | 2 +- docs/.vuepress/dist/integrations/serum.html | 16 ++++---- docs/.vuepress/dist/integrations/strata.html | 10 ++--- .../dist/integrations/switchboard.html | 12 +++--- .../.vuepress/dist/integrations/web3auth.html | 2 +- .../dist/ja/guides/account-maps.html | 4 +- .../dist/ja/guides/get-program-accounts.html | 2 +- .../.vuepress/dist/ja/integrations/index.html | 2 +- .../dist/ja/integrations/jupiter.html | 8 ++-- .../.vuepress/dist/ja/integrations/mango.html | 22 +++++----- .../dist/ja/integrations/orao-vrf.html | 2 +- docs/.vuepress/dist/ja/integrations/pyth.html | 4 +- .../dist/ja/integrations/react-native.html | 2 +- .../.vuepress/dist/ja/integrations/serum.html | 16 ++++---- .../dist/ja/integrations/strata.html | 10 ++--- .../dist/ja/integrations/switchboard.html | 12 +++--- .../dist/ja/integrations/web3auth.html | 2 +- .../ja/references/basic-transactions.html | 2 +- .../dist/ja/references/local-development.html | 10 ++--- .../dist/kr/guides/account-maps.html | 4 +- .../dist/kr/guides/get-program-accounts.html | 2 +- .../kr/references/basic-transactions.html | 2 +- .../dist/kr/references/local-development.html | 10 ++--- .../dist/references/basic-transactions.html | 2 +- .../dist/references/local-development.html | 10 ++--- .../dist/th/guides/account-maps.html | 4 +- .../dist/th/guides/get-program-accounts.html | 2 +- .../.vuepress/dist/th/integrations/index.html | 2 +- .../dist/th/integrations/jupiter.html | 8 ++-- .../.vuepress/dist/th/integrations/mango.html | 22 +++++----- docs/.vuepress/dist/th/integrations/pyth.html | 4 +- .../dist/th/integrations/react-native.html | 2 +- .../.vuepress/dist/th/integrations/serum.html | 16 ++++---- .../dist/th/integrations/strata.html | 10 ++--- .../dist/th/integrations/switchboard.html | 12 +++--- .../dist/th/integrations/web3auth.html | 2 +- .../th/references/basic-transactions.html | 2 +- .../dist/th/references/local-development.html | 10 ++--- .../dist/tr/guides/get-program-accounts.html | 2 +- .../dist/tr/references/local-development.html | 4 +- .../dist/vi/guides/account-maps.html | 4 +- .../dist/vi/guides/get-program-accounts.html | 2 +- .../.vuepress/dist/vi/integrations/index.html | 2 +- .../dist/vi/integrations/jupiter.html | 8 ++-- .../.vuepress/dist/vi/integrations/mango.html | 22 +++++----- docs/.vuepress/dist/vi/integrations/pyth.html | 4 +- .../.vuepress/dist/vi/integrations/serum.html | 16 ++++---- .../dist/vi/integrations/strata.html | 10 ++--- .../dist/vi/integrations/switchboard.html | 12 +++--- .../dist/vi/integrations/web3auth.html | 2 +- .../vi/references/basic-transactions.html | 2 +- .../dist/vi/references/local-development.html | 10 ++--- .../dist/zh/core-concepts/programs.html | 4 +- docs/de/guides/get-program-accounts.md | 2 +- docs/de/integrations/jupiter.md | 4 +- docs/de/integrations/mango.md | 12 +++--- docs/de/integrations/pyth.md | 2 +- docs/de/integrations/serum.md | 40 +++++++++---------- docs/de/references/local-development.md | 2 +- docs/es/core-concepts/programs.md | 4 +- docs/es/guides/get-program-accounts.md | 2 +- docs/es/references/local-development.md | 2 +- docs/fil/guides/get-program-accounts.md | 2 +- docs/fil/integrations/jupiter.md | 4 +- docs/fil/integrations/mango.md | 16 ++++---- docs/fil/integrations/pyth.md | 2 +- docs/fil/integrations/serum.md | 40 +++++++++---------- docs/fil/references/local-development.md | 2 +- docs/fr/guides/get-program-accounts.md | 2 +- docs/fr/integrations/jupiter.md | 4 +- docs/fr/integrations/mango.md | 8 ++-- docs/fr/integrations/pyth.md | 2 +- docs/fr/integrations/serum.md | 36 ++++++++--------- docs/fr/references/local-development.md | 2 +- docs/guides/get-program-accounts.md | 2 +- docs/id/guides/get-program-accounts.md | 2 +- docs/id/integrations/jupiter.md | 4 +- docs/id/integrations/mango.md | 10 ++--- docs/id/integrations/pyth.md | 2 +- docs/id/integrations/serum.md | 40 +++++++++---------- docs/id/references/local-development.md | 2 +- docs/integrations/jupiter.md | 4 +- docs/integrations/mango.md | 16 ++++---- docs/integrations/pyth.md | 2 +- docs/integrations/serum.md | 40 +++++++++---------- docs/ja/guides/get-program-accounts.md | 2 +- docs/ja/integrations/jupiter.md | 4 +- docs/ja/integrations/mango.md | 12 +++--- docs/ja/integrations/pyth.md | 2 +- docs/ja/integrations/serum.md | 36 ++++++++--------- docs/ja/references/local-development.md | 2 +- docs/kr/guides/get-program-accounts.md | 2 +- docs/kr/references/local-development.md | 2 +- docs/pt/guides/get-program-accounts.md | 2 +- docs/pt/integrations/jupiter.md | 4 +- docs/pt/integrations/mango.md | 8 ++-- docs/pt/integrations/pyth.md | 2 +- docs/pt/integrations/serum.md | 36 ++++++++--------- docs/pt/references/local-development.md | 2 +- docs/references/local-development.md | 2 +- docs/th/guides/get-program-accounts.md | 2 +- docs/th/integrations/jupiter.md | 4 +- docs/th/integrations/mango.md | 14 +++---- docs/th/integrations/pyth.md | 2 +- docs/th/integrations/serum.md | 36 ++++++++--------- docs/th/references/local-development.md | 2 +- docs/tr/guides/get-program-accounts.md | 2 +- docs/tr/references/local-development.md | 6 +-- docs/vi/guides/get-program-accounts.md | 2 +- docs/vi/integrations/jupiter.md | 4 +- docs/vi/integrations/mango.md | 16 ++++---- docs/vi/integrations/pyth.md | 2 +- docs/vi/integrations/serum.md | 40 +++++++++---------- docs/vi/references/local-development.md | 2 +- docs/zh/core-concepts/programs.md | 4 +- docs/zh/guides/get-program-accounts.md | 2 +- docs/zh/references/local-development.md | 2 +- docs/zh_t/core-concepts/programs.md | 4 +- docs/zh_t/guides/get-program-accounts.md | 2 +- docs/zh_t/references/local-development.md | 2 +- 286 files changed, 990 insertions(+), 990 deletions(-) diff --git a/code/account-maps/deriving-pda/client.ts b/code/account-maps/deriving-pda/client.ts index 17c9cbb42..e45b81207 100644 --- a/code/account-maps/deriving-pda/client.ts +++ b/code/account-maps/deriving-pda/client.ts @@ -1,4 +1,4 @@ -import * as borsh from "@project-serum/borsh"; +import * as borsh from "@project-OpenBook/borsh"; import { PublicKey } from "@solana/web3.js"; export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([ diff --git a/code/account-maps/trivial/client.ts b/code/account-maps/trivial/client.ts index 25d5912a0..9209fde5e 100644 --- a/code/account-maps/trivial/client.ts +++ b/code/account-maps/trivial/client.ts @@ -8,7 +8,7 @@ import { TransactionInstruction, } from "@solana/web3.js"; -import * as borsh from "@project-serum/borsh"; +import * as borsh from "@project-OpenBook/borsh"; const MY_PROGRAM_ID = new PublicKey( "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa" diff --git a/code/anchor/testing-with-anchor/client/testing-with-anchor.js b/code/anchor/testing-with-anchor/client/testing-with-anchor.js index e26d31edc..1ccc686bb 100644 --- a/code/anchor/testing-with-anchor/client/testing-with-anchor.js +++ b/code/anchor/testing-with-anchor/client/testing-with-anchor.js @@ -1,4 +1,4 @@ -const anchor = require("@project-serum/anchor"); +const anchor = require("@project-OpenBook/anchor"); const { SystemProgram } = anchor.web3; diff --git a/code/basic-transactions/compute-budget/computeBudget.en.tsx b/code/basic-transactions/compute-budget/computeBudget.en.tsx index dbf497162..c6c2e8d08 100644 --- a/code/basic-transactions/compute-budget/computeBudget.en.tsx +++ b/code/basic-transactions/compute-budget/computeBudget.en.tsx @@ -1,4 +1,4 @@ -import { BN } from "@project-serum/anchor"; +import { BN } from "@project-OpenBook/anchor"; import { Keypair, Connection, diff --git a/code/jupiter/installationapi/main.en.ts b/code/jupiter/installationapi/main.en.ts index f910a27f7..1dafede84 100644 --- a/code/jupiter/installationapi/main.en.ts +++ b/code/jupiter/installationapi/main.en.ts @@ -1,6 +1,6 @@ import { Connection, Keypair, Transaction } from "@solana/web3.js"; import fetch from "cross-fetch"; -import { Wallet } from "@project-serum/anchor"; +import { Wallet } from "@project-OpenBook/anchor"; import bs58 from "bs58"; const connection = new Connection("https://ssc-dao.genesysgo.net"); diff --git a/code/jupiter/providerSetup/main.en.ts b/code/jupiter/providerSetup/main.en.ts index 0094a0615..46294fb6f 100644 --- a/code/jupiter/providerSetup/main.en.ts +++ b/code/jupiter/providerSetup/main.en.ts @@ -43,7 +43,7 @@ const App = ({ children }) => { ], [network] ); - const endpoint = "https://solana-api.projectserum.com"; + const endpoint = "https://solana-api.projectOpenBook.com"; return ( diff --git a/code/local-development/using-mainnet-accounts/dump-programs.en.sh b/code/local-development/using-mainnet-accounts/dump-programs.en.sh index a3fe2c4a2..548b2f03d 100644 --- a/code/local-development/using-mainnet-accounts/dump-programs.en.sh +++ b/code/local-development/using-mainnet-accounts/dump-programs.en.sh @@ -1,2 +1,2 @@ # solana program dump -u
-solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so \ No newline at end of file +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so \ No newline at end of file diff --git a/code/local-development/using-mainnet-accounts/dump-programs.preview.en.sh b/code/local-development/using-mainnet-accounts/dump-programs.preview.en.sh index 75405b1b0..2e2eee333 100644 --- a/code/local-development/using-mainnet-accounts/dump-programs.preview.en.sh +++ b/code/local-development/using-mainnet-accounts/dump-programs.preview.en.sh @@ -1 +1 @@ -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so \ No newline at end of file +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so \ No newline at end of file diff --git a/code/local-development/using-mainnet-accounts/load-programs.en.sh b/code/local-development/using-mainnet-accounts/load-programs.en.sh index 8c5fa0cfd..6dd6ae2b3 100644 --- a/code/local-development/using-mainnet-accounts/load-programs.en.sh +++ b/code/local-development/using-mainnet-accounts/load-programs.en.sh @@ -1,2 +1,2 @@ # solana-test-validator --bpf-program
--reset -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset \ No newline at end of file +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset \ No newline at end of file diff --git a/code/local-development/using-mainnet-accounts/load-programs.preview.en.sh b/code/local-development/using-mainnet-accounts/load-programs.preview.en.sh index c243a5f56..d2a009e3b 100644 --- a/code/local-development/using-mainnet-accounts/load-programs.preview.en.sh +++ b/code/local-development/using-mainnet-accounts/load-programs.preview.en.sh @@ -1 +1 @@ -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset \ No newline at end of file +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset \ No newline at end of file diff --git a/code/mango/load-asks/load-asks.en.ts b/code/mango/load-asks/load-asks.en.ts index 1468e6751..c23cb06b7 100644 --- a/code/mango/load-asks/load-asks.en.ts +++ b/code/mango/load-asks/load-asks.en.ts @@ -1,5 +1,5 @@ import { Connection, PublicKey } from "@solana/web3.js"; -import { Market } from "@project-serum/serum"; +import { Market } from "@project-OpenBook/OpenBook"; import { IDS, MangoClient, @@ -24,7 +24,7 @@ import { connection, marketConfig.publicKey, {}, - groupConfig.serumProgramId + groupConfig.OpenBookProgramId ); const asks = await market.loadBids(connection); })(); diff --git a/code/mango/load-bids/load-bids.en.ts b/code/mango/load-bids/load-bids.en.ts index f9e162270..06659c733 100644 --- a/code/mango/load-bids/load-bids.en.ts +++ b/code/mango/load-bids/load-bids.en.ts @@ -1,5 +1,5 @@ import { Connection, PublicKey } from "@solana/web3.js"; -import { Market } from "@project-serum/serum"; +import { Market } from "@project-OpenBook/OpenBook"; import { IDS, Config, @@ -23,7 +23,7 @@ import { connection, marketConfig.publicKey, {}, - groupConfig.serumProgramId + groupConfig.OpenBookProgramId ); const bids = market.loadBids(connection); })(); diff --git a/code/mango/place-spot-order/place-spot-order.en.ts b/code/mango/place-spot-order/place-spot-order.en.ts index 87537f9f5..4070654ca 100644 --- a/code/mango/place-spot-order/place-spot-order.en.ts +++ b/code/mango/place-spot-order/place-spot-order.en.ts @@ -1,6 +1,6 @@ import { useWallet } from "@solana/wallet-adapter-react"; import { Connection, PublicKey } from "@solana/web3.js"; -import { Market } from "@project-serum/serum"; +import { Market } from "@project-OpenBook/OpenBook"; import { IDS, MangoClient, @@ -40,7 +40,7 @@ import { connection, marketConfig.publicKey, {}, - groupConfig.serumProgramId + groupConfig.OpenBookProgramId ); await client.placeSpotOrder( mangoGroup, diff --git a/code/serum/get-books/get-books.en.ts b/code/serum/get-books/get-books.en.ts index 95b5bd278..831757ed9 100644 --- a/code/serum/get-books/get-books.en.ts +++ b/code/serum/get-books/get-books.en.ts @@ -1,5 +1,5 @@ import { Connection, PublicKey } from "@solana/web3.js"; -import { Market } from "@project-serum/serum"; +import { Market } from "@project-OpenBook/OpenBook"; (async () => { let marketAddress = new PublicKey( diff --git a/code/serum/get-orders/get-orders.en.ts b/code/serum/get-orders/get-orders.en.ts index 1011b31e6..8c54b87c7 100644 --- a/code/serum/get-orders/get-orders.en.ts +++ b/code/serum/get-orders/get-orders.en.ts @@ -1,5 +1,5 @@ import { Connection, PublicKey } from "@solana/web3.js"; -import { Market } from "@project-serum/serum"; +import { Market } from "@project-OpenBook/OpenBook"; (async () => { let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"); diff --git a/code/serum/load-market/load-market.en.ts b/code/serum/load-market/load-market.en.ts index 1f9241e86..f5add4672 100644 --- a/code/serum/load-market/load-market.en.ts +++ b/code/serum/load-market/load-market.en.ts @@ -1,5 +1,5 @@ import { Connection, PublicKey } from "@solana/web3.js"; -import { Market } from "@project-serum/serum"; +import { Market } from "@project-OpenBook/OpenBook"; (async () => { const marketAddress = new PublicKey( diff --git a/code/strata/fully-managed/buy-token.en.ts b/code/strata/fully-managed/buy-token.en.ts index b07c8df00..9397cfee7 100644 --- a/code/strata/fully-managed/buy-token.en.ts +++ b/code/strata/fully-managed/buy-token.en.ts @@ -1,5 +1,5 @@ import { SplTokenBonding } from "@strata-foundation/spl-token-bonding"; -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; (async () => { const provider = anchor.getProvider(); diff --git a/code/strata/fully-managed/create-token.en.ts b/code/strata/fully-managed/create-token.en.ts index db8a31f06..83663895e 100644 --- a/code/strata/fully-managed/create-token.en.ts +++ b/code/strata/fully-managed/create-token.en.ts @@ -2,7 +2,7 @@ import { SplTokenBonding, ExponentialCurveConfig, } from "@strata-foundation/spl-token-bonding"; -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; import { NATIVE_MINT } from "@solana/spl-token"; (async () => { diff --git a/code/strata/fully-managed/sell-token.en.ts b/code/strata/fully-managed/sell-token.en.ts index c2d7db715..bbd02593b 100644 --- a/code/strata/fully-managed/sell-token.en.ts +++ b/code/strata/fully-managed/sell-token.en.ts @@ -1,5 +1,5 @@ import { SplTokenBonding } from "@strata-foundation/spl-token-bonding"; -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; (async () => { const provider = anchor.getProvider(); diff --git a/code/strata/lbc/create.en.ts b/code/strata/lbc/create.en.ts index 6394101d3..dd5c40336 100644 --- a/code/strata/lbc/create.en.ts +++ b/code/strata/lbc/create.en.ts @@ -1,5 +1,5 @@ import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk"; -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; (async () => { const provider = anchor.getProvider(); diff --git a/code/switchboard/client/create.client.en.ts b/code/switchboard/client/create.client.en.ts index 994ef4042..2f1f6234e 100644 --- a/code/switchboard/client/create.client.en.ts +++ b/code/switchboard/client/create.client.en.ts @@ -1,4 +1,4 @@ -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; import { Keypair } from "@solana/web3.js"; import { AggregatorAccount, diff --git a/code/switchboard/client/create.oracle.client.en.ts b/code/switchboard/client/create.oracle.client.en.ts index 8f12ee077..104563efb 100644 --- a/code/switchboard/client/create.oracle.client.en.ts +++ b/code/switchboard/client/create.oracle.client.en.ts @@ -1,4 +1,4 @@ -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; import { Keypair } from "@solana/web3.js"; import { loadSwitchboardProgram, diff --git a/code/switchboard/client/create.vrf.client.en.ts b/code/switchboard/client/create.vrf.client.en.ts index eecf2cc47..9e6d469d5 100644 --- a/code/switchboard/client/create.vrf.client.en.ts +++ b/code/switchboard/client/create.vrf.client.en.ts @@ -1,4 +1,4 @@ -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; import { Keypair } from "@solana/web3.js"; import { loadSwitchboardProgram, diff --git a/code/switchboard/client/read.vrf.client.en.ts b/code/switchboard/client/read.vrf.client.en.ts index b36b5fc4a..7de5167d4 100644 --- a/code/switchboard/client/read.vrf.client.en.ts +++ b/code/switchboard/client/read.vrf.client.en.ts @@ -1,4 +1,4 @@ -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; import { Keypair } from "@solana/web3.js"; import { loadSwitchboardProgram, diff --git a/code/switchboard/client/request.vrf.client.en.ts b/code/switchboard/client/request.vrf.client.en.ts index ef7503297..db691108b 100644 --- a/code/switchboard/client/request.vrf.client.en.ts +++ b/code/switchboard/client/request.vrf.client.en.ts @@ -1,4 +1,4 @@ -import * as anchor from "@project-serum/anchor"; +import * as anchor from "@project-OpenBook/anchor"; import { Keypair } from "@solana/web3.js"; import { loadSwitchboardProgram, diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index ee2172ce4..184c6b7a5 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -109,7 +109,7 @@ export default defineUserConfig({ text: "Integrations", children: [ "/integrations", - "/integrations/serum.md", + "/integrations/OpenBook.md", "/integrations/pyth.md", "/integrations/switchboard.md", "/integrations/mango.md", @@ -340,7 +340,7 @@ export default defineUserConfig({ text: "Integrationen", children: [ "/de/integrations", - "/de/integrations/serum.md", + "/de/integrations/OpenBook.md", "/de/integrations/pyth.md", "/de/integrations/switchboard.md", "/de/integrations/mango.md", @@ -414,7 +414,7 @@ export default defineUserConfig({ text: "Tích hợp", children: [ "/vi/integrations", - "/vi/integrations/serum.md", + "/vi/integrations/OpenBook.md", "/vi/integrations/pyth.md", "/vi/integrations/switchboard.md", "/vi/integrations/mango.md", @@ -488,7 +488,7 @@ export default defineUserConfig({ text: "การใช้งาน", children: [ "/th/integrations", - "/th/integrations/serum.md", + "/th/integrations/OpenBook.md", "/th/integrations/pyth.md", "/th/integrations/switchboard.md", "/th/integrations/mango.md", @@ -580,7 +580,7 @@ export default defineUserConfig({ text: "Intégrations", children: [ "/fr/integrations", - "/fr/integrations/serum.md", + "/fr/integrations/OpenBook.md", "/fr/integrations/pyth.md", "/fr/integrations/switchboard.md", "/fr/integrations/mango.md", @@ -655,7 +655,7 @@ export default defineUserConfig({ text: "Integrasi", children: [ "/id/integrations", - "/id/integrations/serum.md", + "/id/integrations/OpenBook.md", "/id/integrations/pyth.md", "/id/integrations/switchboard.md", "/id/integrations/mango.md", @@ -834,7 +834,7 @@ export default defineUserConfig({ text: "Integrations", children: [ "/integrations", - "/integrations/serum.md", + "/integrations/OpenBook.md", "/integrations/pyth.md", "/integrations/switchboard.md", "/integrations/mango.md", @@ -908,7 +908,7 @@ export default defineUserConfig({ text: "インテグレーション", children: [ "/ja/integrations", - "/ja/integrations/serum.md", + "/ja/integrations/OpenBook.md", "/ja/integrations/pyth.md", "/ja/integrations/switchboard.md", "/ja/integrations/mango.md", @@ -983,7 +983,7 @@ export default defineUserConfig({ text: "Mga Integrasyon", children: [ "/fil/integrations/", - "/fil/integrations/serum.md", + "/fil/integrations/OpenBook.md", "/fil/integrations/pyth.md", "/fil/integrations/switchboard.md", "/fil/integrations/mango.md", diff --git a/docs/.vuepress/dist/assets/account-maps.html.0d767eca.js b/docs/.vuepress/dist/assets/account-maps.html.0d767eca.js index 54c238801..045060311 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.0d767eca.js +++ b/docs/.vuepress/dist/assets/account-maps.html.0d767eca.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as i,c as r,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),Y=n("p",null,[s("Di sisi klien, Anda dapat menggunakan "),n("code",null,"PublicKey.findProgramAddress()"),s(" untuk memperoleh alamat akun "),n("code",null,"Blog"),s(" dan "),n("code",null,"Artikel"),s(" yang diperlukan, yang dapat Anda teruskan ke "),n("code",null,"connection.getAccountInfo()"),s(" untuk mengambil data akun. Contoh ditunjukkan di bawah ini,")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),Y=n("p",null,[s("Di sisi klien, Anda dapat menggunakan "),n("code",null,"PublicKey.findProgramAddress()"),s(" untuk memperoleh alamat akun "),n("code",null,"Blog"),s(" dan "),n("code",null,"Artikel"),s(" yang diperlukan, yang dapat Anda teruskan ke "),n("code",null,"connection.getAccountInfo()"),s(" untuk mengambil data akun. Contoh ditunjukkan di bawah ini,")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as i,c as r,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.113fa1ac.js b/docs/.vuepress/dist/assets/account-maps.html.113fa1ac.js index a2f78b6ce..f91dcd8db 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.113fa1ac.js +++ b/docs/.vuepress/dist/assets/account-maps.html.113fa1ac.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),Y=n("p",null,[s("C\xF4t\xE9 client, vous pouvez utiliser "),n("code",null,"PublicKey.findProgramAddress()"),s(" pour obtenir les adresses de compte "),n("code",null,"Blog"),s(" et "),n("code",null,"Post"),s(" n\xE9cessaires, que vous pouvez ensuite passer dans "),n("code",null,"connection.getAccountInfo()"),s(" pour r\xE9cup\xE9rer les donn\xE9es du compte. Un exemple est pr\xE9sent\xE9 ci-dessous :")],-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),Y=n("p",null,[s("C\xF4t\xE9 client, vous pouvez utiliser "),n("code",null,"PublicKey.findProgramAddress()"),s(" pour obtenir les adresses de compte "),n("code",null,"Blog"),s(" et "),n("code",null,"Post"),s(" n\xE9cessaires, que vous pouvez ensuite passer dans "),n("code",null,"connection.getAccountInfo()"),s(" pour r\xE9cup\xE9rer les donn\xE9es du compte. Un exemple est pr\xE9sent\xE9 ci-dessous :")],-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.2b2e7767.js b/docs/.vuepress/dist/assets/account-maps.html.2b2e7767.js index 0be18ea1f..def3f9b0c 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.2b2e7767.js +++ b/docs/.vuepress/dist/assets/account-maps.html.2b2e7767.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),q=n("p",null,[s("\u0E43\u0E19\u0E1D\u0E31\u0E48\u0E07 client \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49 "),n("code",null,"PublicKey.findProgramAddress()"),s(" \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2B\u0E32 "),n("code",null,"Blog"),s(" \u0E41\u0E25\u0E30 "),n("code",null,"Post"),s(" account address \u0E40\u0E2D\u0E32\u0E44\u0E1B\u0E40\u0E23\u0E35\u0E22\u0E01 "),n("code",null,"connection.getAccountInfo()"),s(" \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 account data \u0E15\u0E32\u0E21\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07")],-1),F=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),q=n("p",null,[s("\u0E43\u0E19\u0E1D\u0E31\u0E48\u0E07 client \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49 "),n("code",null,"PublicKey.findProgramAddress()"),s(" \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2B\u0E32 "),n("code",null,"Blog"),s(" \u0E41\u0E25\u0E30 "),n("code",null,"Post"),s(" account address \u0E40\u0E2D\u0E32\u0E44\u0E1B\u0E40\u0E23\u0E35\u0E22\u0E01 "),n("code",null,"connection.getAccountInfo()"),s(" \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 account data \u0E15\u0E32\u0E21\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07")],-1),F=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.442511c7.js b/docs/.vuepress/dist/assets/account-maps.html.442511c7.js index 3864e2ac5..02ec2fd73 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.442511c7.js +++ b/docs/.vuepress/dist/assets/account-maps.html.442511c7.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),G=n("p",null,[s("On the client-side, you can use "),n("code",null,"PublicKey.findProgramAddress()"),s(" to obtain the required "),n("code",null,"Blog"),s(" and "),n("code",null,"Post"),s(" account address, which you can pass into "),n("code",null,"connection.getAccountInfo()"),s(" to fetch the account data. An example is shown below,")],-1),F=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),G=n("p",null,[s("On the client-side, you can use "),n("code",null,"PublicKey.findProgramAddress()"),s(" to obtain the required "),n("code",null,"Blog"),s(" and "),n("code",null,"Post"),s(" account address, which you can pass into "),n("code",null,"connection.getAccountInfo()"),s(" to fetch the account data. An example is shown below,")],-1),F=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.77d8532d.js b/docs/.vuepress/dist/assets/account-maps.html.77d8532d.js index af872b6fb..9ed2a90e7 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.77d8532d.js +++ b/docs/.vuepress/dist/assets/account-maps.html.77d8532d.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),H=n("p",null,[s("\u1EDE ph\xEDa ng\u01B0\u1EDDi d\xF9ng, h\u1ECD c\xF3 th\u1EC3 s\u1EED d\u1EE5ng "),n("code",null,"PublicKey.findProgramAddress()"),s(" \u0111\u1EC3 t\xECm ra \u0111\u1ECBa ch\u1EC9 c\u1EE7a "),n("code",null,"Blog"),s(" v\xE0 "),n("code",null,"Post"),s(" mong mu\u1ED1n th\xF4ng qua \u0111\u1ECBa ch\u1EC9 v\xED \u0111\u1EA7u v\xE0o. C\xE1c \u0111\u1ECBa ch\u1EC9 v\u1EEBa t\xECm th\u1EA5y c\xF3 th\u1EC3 \u0111\u01B0\u1EE3c truy\u1EC1n v\xE0o "),n("code",null,"connection.getAccountInfo()"),s(" \u0111\u1EC3 truy v\u1EA5n d\u1EEF li\u1EC7u trong Account t\u01B0\u01A1ng \u1EE9ng. V\xED d\u1EE5 b\xEAn d\u01B0\u1EDBi s\u1EBD minh ho\u1EA1 \u0111i\u1EC1u \u0111\xF3:")],-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),H=n("p",null,[s("\u1EDE ph\xEDa ng\u01B0\u1EDDi d\xF9ng, h\u1ECD c\xF3 th\u1EC3 s\u1EED d\u1EE5ng "),n("code",null,"PublicKey.findProgramAddress()"),s(" \u0111\u1EC3 t\xECm ra \u0111\u1ECBa ch\u1EC9 c\u1EE7a "),n("code",null,"Blog"),s(" v\xE0 "),n("code",null,"Post"),s(" mong mu\u1ED1n th\xF4ng qua \u0111\u1ECBa ch\u1EC9 v\xED \u0111\u1EA7u v\xE0o. C\xE1c \u0111\u1ECBa ch\u1EC9 v\u1EEBa t\xECm th\u1EA5y c\xF3 th\u1EC3 \u0111\u01B0\u1EE3c truy\u1EC1n v\xE0o "),n("code",null,"connection.getAccountInfo()"),s(" \u0111\u1EC3 truy v\u1EA5n d\u1EEF li\u1EC7u trong Account t\u01B0\u01A1ng \u1EE9ng. V\xED d\u1EE5 b\xEAn d\u01B0\u1EDBi s\u1EBD minh ho\u1EA1 \u0111i\u1EC1u \u0111\xF3:")],-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.96de5b13.js b/docs/.vuepress/dist/assets/account-maps.html.96de5b13.js index 1753c90ba..33d1c9182 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.96de5b13.js +++ b/docs/.vuepress/dist/assets/account-maps.html.96de5b13.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),Y=n("p",null,[s("En el lado del cliente, puede usar "),n("code",null,"PublicKey.findProgramAddress()"),s(" para obtener la direcci\xF3n de cuenta requerida "),n("code",null,"Blog"),s(" y "),n("code",null,"Post"),s(", que puede pasar a "),n("code",null,"connection.getAccountInfo()"),s(" para obtener los datos de la cuenta. A continuaci\xF3n se muestra un ejemplo,")],-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),Y=n("p",null,[s("En el lado del cliente, puede usar "),n("code",null,"PublicKey.findProgramAddress()"),s(" para obtener la direcci\xF3n de cuenta requerida "),n("code",null,"Blog"),s(" y "),n("code",null,"Post"),s(", que puede pasar a "),n("code",null,"connection.getAccountInfo()"),s(" para obtener los datos de la cuenta. A continuaci\xF3n se muestra un ejemplo,")],-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.9c1915f5.js b/docs/.vuepress/dist/assets/account-maps.html.9c1915f5.js index 8842cd96e..f698d044c 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.9c1915f5.js +++ b/docs/.vuepress/dist/assets/account-maps.html.9c1915f5.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),K=n("p",null,[s("\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u5074\u3067\u306F\u3001 "),n("code",null,"PublicKey.findProgramAddress()"),s(" \u3092\u4F7F\u7528\u3057\u3066\u5FC5\u8981\u306A"),n("code",null,"blog"),s("\u3068"),n("code",null,"post"),s("\u306E\u30A2\u30AB\u30A6\u30F3\u30C8 \u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\u3053\u308C\u3092 "),n("code",null,"connection.getAccountInfo()"),s(" \u306B\u6E21\u3057\u3066\u30A2\u30AB\u30A6\u30F3\u30C8 \u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\u4EE5\u4E0B\u306B\u4F8B\u3092\u793A\u3057\u307E\u3059\u3002")],-1),z=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),K=n("p",null,[s("\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u5074\u3067\u306F\u3001 "),n("code",null,"PublicKey.findProgramAddress()"),s(" \u3092\u4F7F\u7528\u3057\u3066\u5FC5\u8981\u306A"),n("code",null,"blog"),s("\u3068"),n("code",null,"post"),s("\u306E\u30A2\u30AB\u30A6\u30F3\u30C8 \u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\u3053\u308C\u3092 "),n("code",null,"connection.getAccountInfo()"),s(" \u306B\u6E21\u3057\u3066\u30A2\u30AB\u30A6\u30F3\u30C8 \u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\u4EE5\u4E0B\u306B\u4F8B\u3092\u793A\u3057\u307E\u3059\u3002")],-1),z=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.e1996f93.js b/docs/.vuepress/dist/assets/account-maps.html.e1996f93.js index c2cae6695..cebf742da 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.e1996f93.js +++ b/docs/.vuepress/dist/assets/account-maps.html.e1996f93.js @@ -564,7 +564,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),U=n("p",null,[s("Client \uC601\uC5ED\uC5D0\uC11C, \uB2F9\uC2E0\uC740 "),n("code",null,"Blog"),s("\uC640 "),n("code",null,"Post"),s(" Account address\uB97C \uC5BB\uAE30 \uC704\uD574 "),n("code",null,"PublicKey.findProgramAddress()"),s("\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB2F9\uC2E0\uC740 Account Data\uB97C \uAC00\uC838\uC624\uAE30 \uC704\uD574 \uC774 Address\uB97C "),n("code",null,"connection.getAccountInfo()"),s("\uB85C \uB118\uAE38 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC544\uB798\uB294 \uADF8 \uC608\uC81C\uC785\uB2C8\uB2E4.")],-1),W=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),U=n("p",null,[s("Client \uC601\uC5ED\uC5D0\uC11C, \uB2F9\uC2E0\uC740 "),n("code",null,"Blog"),s("\uC640 "),n("code",null,"Post"),s(" Account address\uB97C \uC5BB\uAE30 \uC704\uD574 "),n("code",null,"PublicKey.findProgramAddress()"),s("\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB2F9\uC2E0\uC740 Account Data\uB97C \uAC00\uC838\uC624\uAE30 \uC704\uD574 \uC774 Address\uB97C "),n("code",null,"connection.getAccountInfo()"),s("\uB85C \uB118\uAE38 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC544\uB798\uB294 \uADF8 \uC608\uC81C\uC785\uB2C8\uB2E4.")],-1),W=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as t,w as a,F as k,d as s,e as l}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/account-maps.html.ecd8e579.js b/docs/.vuepress/dist/assets/account-maps.html.ecd8e579.js index f6f5890ba..5100573fa 100644 --- a/docs/.vuepress/dist/assets/account-maps.html.ecd8e579.js +++ b/docs/.vuepress/dist/assets/account-maps.html.ecd8e579.js @@ -564,7 +564,7 @@ import{_ as u,r as c,o as r,c as i,a as n,b as t,w as a,F as k,e as p,d as s}fro `),n("span",{class:"token class-name"},"Ok"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),L=n("p",null,"Auf der Client-Seite k\xF6nnen Sie \u201EPublicKey.findProgramAddress()\u201C verwenden, um die erforderliche \u201EBlog\u201C- und \u201EPost\u201C-Kontoadresse zu erhalten, die Sie an \u201Econnection.getAccountInfo()\u201C \xFCbergeben k\xF6nnen, um die Kontodaten abzurufen. Ein Beispiel ist unten gezeigt,",-1),W=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br"),n("span",{class:"line-number"},"31"),n("br"),n("span",{class:"line-number"},"32"),n("br"),n("span",{class:"line-number"},"33"),n("br"),n("span",{class:"line-number"},"34"),n("br"),n("span",{class:"line-number"},"35"),n("br"),n("span",{class:"line-number"},"36"),n("br"),n("span",{class:"line-number"},"37"),n("br"),n("span",{class:"line-number"},"38"),n("br"),n("span",{class:"line-number"},"39"),n("br"),n("span",{class:"line-number"},"40"),n("br"),n("span",{class:"line-number"},"41"),n("br"),n("span",{class:"line-number"},"42"),n("br"),n("span",{class:"line-number"},"43"),n("br"),n("span",{class:"line-number"},"44"),n("br"),n("span",{class:"line-number"},"45"),n("br"),n("span",{class:"line-number"},"46"),n("br"),n("span",{class:"line-number"},"47"),n("br"),n("span",{class:"line-number"},"48"),n("br"),n("span",{class:"line-number"},"49"),n("br"),n("span",{class:"line-number"},"50"),n("br"),n("span",{class:"line-number"},"51"),n("br"),n("span",{class:"line-number"},"52"),n("br"),n("span",{class:"line-number"},"53"),n("br"),n("span",{class:"line-number"},"54"),n("br"),n("span",{class:"line-number"},"55"),n("br"),n("span",{class:"line-number"},"56"),n("br"),n("span",{class:"line-number"},"57"),n("br"),n("span",{class:"line-number"},"58"),n("br"),n("span",{class:"line-number"},"59"),n("br"),n("span",{class:"line-number"},"60"),n("br"),n("span",{class:"line-number"},"61"),n("br"),n("span",{class:"line-number"},"62"),n("br"),n("span",{class:"line-number"},"63"),n("br"),n("span",{class:"line-number"},"64"),n("br"),n("span",{class:"line-number"},"65"),n("br"),n("span",{class:"line-number"},"66"),n("br"),n("span",{class:"line-number"},"67"),n("br"),n("span",{class:"line-number"},"68"),n("br"),n("span",{class:"line-number"},"69"),n("br"),n("span",{class:"line-number"},"70"),n("br"),n("span",{class:"line-number"},"71"),n("br"),n("span",{class:"line-number"},"72"),n("br"),n("span",{class:"line-number"},"73"),n("br"),n("span",{class:"line-number"},"74"),n("br"),n("span",{class:"line-number"},"75"),n("br"),n("span",{class:"line-number"},"76"),n("br"),n("span",{class:"line-number"},"77"),n("br"),n("span",{class:"line-number"},"78"),n("br"),n("span",{class:"line-number"},"79"),n("br"),n("span",{class:"line-number"},"80"),n("br"),n("span",{class:"line-number"},"81"),n("br"),n("span",{class:"line-number"},"82"),n("br"),n("span",{class:"line-number"},"83"),n("br"),n("span",{class:"line-number"},"84"),n("br"),n("span",{class:"line-number"},"85"),n("br"),n("span",{class:"line-number"},"86"),n("br"),n("span",{class:"line-number"},"87"),n("br"),n("span",{class:"line-number"},"88"),n("br"),n("span",{class:"line-number"},"89"),n("br"),n("span",{class:"line-number"},"90"),n("br"),n("span",{class:"line-number"},"91"),n("br"),n("span",{class:"line-number"},"92"),n("br"),n("span",{class:"line-number"},"93"),n("br"),n("span",{class:"line-number"},"94"),n("br"),n("span",{class:"line-number"},"95"),n("br"),n("span",{class:"line-number"},"96"),n("br"),n("span",{class:"line-number"},"97"),n("br"),n("span",{class:"line-number"},"98"),n("br"),n("span",{class:"line-number"},"99"),n("br"),n("span",{class:"line-number"},"100"),n("br"),n("span",{class:"line-number"},"101"),n("br"),n("span",{class:"line-number"},"102"),n("br"),n("span",{class:"line-number"},"103"),n("br"),n("span",{class:"line-number"},"104"),n("br"),n("span",{class:"line-number"},"105"),n("br"),n("span",{class:"line-number"},"106"),n("br"),n("span",{class:"line-number"},"107"),n("br"),n("span",{class:"line-number"},"108"),n("br"),n("span",{class:"line-number"},"109"),n("br"),n("span",{class:"line-number"},"110"),n("br"),n("span",{class:"line-number"},"111"),n("br"),n("span",{class:"line-number"},"112"),n("br"),n("span",{class:"line-number"},"113"),n("br"),n("span",{class:"line-number"},"114"),n("br"),n("span",{class:"line-number"},"115"),n("br"),n("span",{class:"line-number"},"116"),n("br"),n("span",{class:"line-number"},"117"),n("br"),n("span",{class:"line-number"},"118"),n("br"),n("span",{class:"line-number"},"119"),n("br"),n("span",{class:"line-number"},"120"),n("br"),n("span",{class:"line-number"},"121"),n("br"),n("span",{class:"line-number"},"122"),n("br"),n("span",{class:"line-number"},"123"),n("br"),n("span",{class:"line-number"},"124"),n("br"),n("span",{class:"line-number"},"125"),n("br"),n("span",{class:"line-number"},"126"),n("br"),n("span",{class:"line-number"},"127"),n("br"),n("span",{class:"line-number"},"128"),n("br"),n("span",{class:"line-number"},"129"),n("br"),n("span",{class:"line-number"},"130"),n("br"),n("span",{class:"line-number"},"131"),n("br"),n("span",{class:"line-number"},"132"),n("br"),n("span",{class:"line-number"},"133"),n("br"),n("span",{class:"line-number"},"134"),n("br"),n("span",{class:"line-number"},"135"),n("br"),n("span",{class:"line-number"},"136"),n("br"),n("span",{class:"line-number"},"137"),n("br"),n("span",{class:"line-number"},"138"),n("br"),n("span",{class:"line-number"},"139"),n("br"),n("span",{class:"line-number"},"140"),n("br"),n("span",{class:"line-number"},"141"),n("br"),n("span",{class:"line-number"},"142"),n("br"),n("span",{class:"line-number"},"143"),n("br")])],-1),L=n("p",null,"Auf der Client-Seite k\xF6nnen Sie \u201EPublicKey.findProgramAddress()\u201C verwenden, um die erforderliche \u201EBlog\u201C- und \u201EPost\u201C-Kontoadresse zu erhalten, die Sie an \u201Econnection.getAccountInfo()\u201C \xFCbergeben k\xF6nnen, um die Kontodaten abzurufen. Ein Beispiel ist unten gezeigt,",-1),W=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"export"),s(),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"BLOG_ACCOUNT_DATA_LAYOUT"),s(),n("span",{class:"token operator"},"="),s(" borsh"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"struct"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"["),s(` @@ -890,7 +890,7 @@ import{_ as u,r as c,o as r,c as i,a as n,b as t,w as a,F as k,e as p,d as s}fro TransactionInstruction`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/borsh"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" borsh "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/borsh"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(),n("span",{class:"token constant"},"MY_PROGRAM_ID"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token string"},'"FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"'),s(` diff --git a/docs/.vuepress/dist/assets/app.55b1b60c.js b/docs/.vuepress/dist/assets/app.55b1b60c.js index d678836af..6007090a1 100644 --- a/docs/.vuepress/dist/assets/app.55b1b60c.js +++ b/docs/.vuepress/dist/assets/app.55b1b60c.js @@ -2,9 +2,9 @@ var Pu=Object.defineProperty,Tu=Object.defineProperties;var Au=Object.getOwnProp * vue-router v4.0.12 * (c) 2021 Eduardo San Martin Morote * @license MIT - */const sc=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",bn=e=>sc?Symbol(e):"_vr_"+e,ig=bn("rvlm"),Oa=bn("rvd"),rr=bn("r"),Ci=bn("rl"),Ur=bn("rvl"),tn=typeof window!="undefined";function ag(e){return e.__esModule||sc&&e[Symbol.toStringTag]==="Module"}const pe=Object.assign;function _r(e,t){const n={};for(const l in t){const r=t[l];n[l]=Array.isArray(r)?r.map(e):e(r)}return n}const Fn=()=>{},og=/\/$/,sg=e=>e.replace(og,"");function br(e,t,n="/"){let l,r={},i="",a="";const s=t.indexOf("?"),c=t.indexOf("#",s>-1?s:0);return s>-1&&(l=t.slice(0,s),i=t.slice(s+1,c>-1?c:t.length),r=e(i)),c>-1&&(l=l||t.slice(0,c),a=t.slice(c,t.length)),l=hg(l!=null?l:t,n),{fullPath:l+(i&&"?")+i+a,path:l,query:r,hash:a}}function cg(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function La(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ug(e,t,n){const l=t.matched.length-1,r=n.matched.length-1;return l>-1&&l===r&&gn(t.matched[l],n.matched[r])&&cc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function gn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!dg(e[n],t[n]))return!1;return!0}function dg(e,t){return Array.isArray(e)?Sa(e,t):Array.isArray(t)?Sa(t,e):e===t}function Sa(e,t){return Array.isArray(t)?e.length===t.length&&e.every((n,l)=>n===t[l]):e.length===1&&e[0]===t}function hg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),l=e.split("/");let r=n.length-1,i,a;for(i=0;i({left:window.pageXOffset,top:window.pageYOffset});function fg(e){let t;if("el"in e){const n=e.el,l=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?l?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=pg(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Da(e,t){return(history.state?history.state.position-t:-1)+e}const Kr=new Map;function _g(e,t){Kr.set(e,t)}function bg(e){const t=Kr.get(e);return Kr.delete(e),t}let yg=()=>location.protocol+"//"+location.host;function uc(e,t){const{pathname:n,search:l,hash:r}=t,i=e.indexOf("#");if(i>-1){let s=r.includes(e.slice(i))?e.slice(i).length:1,c=r.slice(s);return c[0]!=="/"&&(c="/"+c),La(c,"")}return La(n,e)+l+r}function kg(e,t,n,l){let r=[],i=[],a=null;const s=({state:g})=>{const b=uc(e,location),m=n.value,_=t.value;let f=0;if(g){if(n.value=b,t.value=g,a&&a===m){a=null;return}f=_?g.position-_.position:0}else l(b);r.forEach(y=>{y(n.value,m,{delta:f,type:$n.pop,direction:f?f>0?Nn.forward:Nn.back:Nn.unknown})})};function c(){a=n.value}function u(g){r.push(g);const b=()=>{const m=r.indexOf(g);m>-1&&r.splice(m,1)};return i.push(b),b}function d(){const{history:g}=window;!g.state||g.replaceState(pe({},g.state,{scroll:ir()}),"")}function v(){for(const g of i)g();i=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",d)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",d),{pauseListeners:c,listen:u,destroy:v}}function Ra(e,t,n,l=!1,r=!1){return{back:e,current:t,forward:n,replaced:l,position:window.history.length,scroll:r?ir():null}}function Eg(e){const{history:t,location:n}=window,l={value:uc(e,n)},r={value:t.state};r.value||i(l.value,{back:null,current:l.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,u,d){const v=e.indexOf("#"),g=v>-1?(n.host&&document.querySelector("base")?e:e.slice(v))+c:yg()+e+c;try{t[d?"replaceState":"pushState"](u,"",g),r.value=u}catch(b){console.error(b),n[d?"replace":"assign"](g)}}function a(c,u){const d=pe({},t.state,Ra(r.value.back,c,r.value.forward,!0),u,{position:r.value.position});i(c,d,!0),l.value=c}function s(c,u){const d=pe({},r.value,t.state,{forward:c,scroll:ir()});i(d.current,d,!0);const v=pe({},Ra(l.value,c,null),{position:d.position+1},u);i(c,v,!1),l.value=c}return{location:l,state:r,push:s,replace:a}}function wg(e){e=gg(e);const t=Eg(e),n=kg(e,t.state,t.location,t.replace);function l(i,a=!0){a||n.pauseListeners(),history.go(i)}const r=pe({location:"",base:e,go:l,createHref:vg.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function Pg(e){return typeof e=="string"||e&&typeof e=="object"}function dc(e){return typeof e=="string"||typeof e=="symbol"}const st={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},hc=bn("nf");var Ia;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Ia||(Ia={}));function mn(e,t){return pe(new Error,{type:e,[hc]:!0},t)}function It(e,t){return e instanceof Error&&hc in e&&(t==null||!!(e.type&t))}const Ca="[^/]+?",Tg={sensitive:!1,strict:!1,start:!0,end:!0},Ag=/[.+*?^${}()[\]/\\]/g;function Og(e,t){const n=pe({},Tg,t),l=[];let r=n.start?"^":"";const i=[];for(const u of e){const d=u.length?[]:[90];n.strict&&!u.length&&(r+="/");for(let v=0;vt.length?t.length===1&&t[0]===40+40?1:-1:0}function Sg(e,t){let n=0;const l=e.score,r=t.score;for(;n1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:d,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function g(){u+=c}for(;s{a(w)}:Fn}function a(d){if(dc(d)){const v=l.get(d);v&&(l.delete(d),n.splice(n.indexOf(v),1),v.children.forEach(a),v.alias.forEach(a))}else{const v=n.indexOf(d);v>-1&&(n.splice(v,1),d.record.name&&l.delete(d.record.name),d.children.forEach(a),d.alias.forEach(a))}}function s(){return n}function c(d){let v=0;for(;v=0;)v++;n.splice(v,0,d),d.record.name&&!xa(d)&&l.set(d.record.name,d)}function u(d,v){let g,b={},m,_;if("name"in d&&d.name){if(g=l.get(d.name),!g)throw mn(1,{location:d});_=g.record.name,b=pe(jg(v.params,g.keys.filter(w=>!w.optional).map(w=>w.name)),d.params),m=g.stringify(b)}else if("path"in d)m=d.path,g=n.find(w=>w.re.test(m)),g&&(b=g.parse(m),_=g.record.name);else{if(g=v.name?l.get(v.name):n.find(w=>w.re.test(v.path)),!g)throw mn(1,{location:d,currentLocation:v});_=g.record.name,b=pe({},v.params,d.params),m=g.stringify(b)}const f=[];let y=g;for(;y;)f.unshift(y.record),y=y.parent;return{name:_,path:m,params:b,matched:f,meta:Ng(f)}}return e.forEach(d=>i(d)),{addRoute:i,resolve:u,removeRoute:a,getRoutes:s,getRecordMatcher:r}}function jg(e,t){const n={};for(const l of t)l in e&&(n[l]=e[l]);return n}function Vg(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Fg(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||{}:{default:e.component}}}function Fg(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const l in e.components)t[l]=typeof n=="boolean"?n:n[l];return t}function xa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ng(e){return e.reduce((t,n)=>pe(t,n.meta),{})}function ja(e,t){const n={};for(const l in e)n[l]=l in t?t[l]:e[l];return n}const gc=/#/g,Mg=/&/g,zg=/\//g,Hg=/=/g,Bg=/\?/g,mc=/\+/g,Ug=/%5B/g,Kg=/%5D/g,vc=/%5E/g,qg=/%60/g,pc=/%7B/g,Wg=/%7C/g,fc=/%7D/g,$g=/%20/g;function xi(e){return encodeURI(""+e).replace(Wg,"|").replace(Ug,"[").replace(Kg,"]")}function Gg(e){return xi(e).replace(pc,"{").replace(fc,"}").replace(vc,"^")}function qr(e){return xi(e).replace(mc,"%2B").replace($g,"+").replace(gc,"%23").replace(Mg,"%26").replace(qg,"`").replace(pc,"{").replace(fc,"}").replace(vc,"^")}function Jg(e){return qr(e).replace(Hg,"%3D")}function Yg(e){return xi(e).replace(gc,"%23").replace(Bg,"%3F")}function Qg(e){return e==null?"":Yg(e).replace(zg,"%2F")}function zl(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function Zg(e){const t={};if(e===""||e==="?")return t;const l=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ri&&qr(i)):[l&&qr(l)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Xg(e){const t={};for(const n in e){const l=e[n];l!==void 0&&(t[n]=Array.isArray(l)?l.map(r=>r==null?null:""+r):l==null?l:""+l)}return t}function wn(){let e=[];function t(l){return e.push(l),()=>{const r=e.indexOf(l);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function kt(e,t,n,l,r){const i=l&&(l.enterCallbacks[r]=l.enterCallbacks[r]||[]);return()=>new Promise((a,s)=>{const c=v=>{v===!1?s(mn(4,{from:n,to:t})):v instanceof Error?s(v):Pg(v)?s(mn(2,{from:t,to:v})):(i&&l.enterCallbacks[r]===i&&typeof v=="function"&&i.push(v),a())},u=e.call(l&&l.instances[r],t,n,c);let d=Promise.resolve(u);e.length<3&&(d=d.then(c)),d.catch(v=>s(v))})}function yr(e,t,n,l){const r=[];for(const i of e)for(const a in i.components){let s=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(em(s)){const u=(s.__vccOpts||s)[t];u&&r.push(kt(u,n,l,i,a))}else{let c=s();r.push(()=>c.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${i.path}"`));const d=ag(u)?u.default:u;i.components[a]=d;const g=(d.__vccOpts||d)[t];return g&&kt(g,n,l,i,a)()}))}}return r}function em(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Fa(e){const t=Re(rr),n=Re(Ci),l=_e(()=>t.resolve(Bt(e.to))),r=_e(()=>{const{matched:c}=l.value,{length:u}=c,d=c[u-1],v=n.matched;if(!d||!v.length)return-1;const g=v.findIndex(gn.bind(null,d));if(g>-1)return g;const b=Na(c[u-2]);return u>1&&Na(d)===b&&v[v.length-1].path!==b?v.findIndex(gn.bind(null,c[u-2])):g}),i=_e(()=>r.value>-1&&rm(n.params,l.value.params)),a=_e(()=>r.value>-1&&r.value===n.matched.length-1&&cc(n.params,l.value.params));function s(c={}){return lm(c)?t[Bt(e.replace)?"replace":"push"](Bt(e.to)).catch(Fn):Promise.resolve()}return{route:l,href:_e(()=>l.value.href),isActive:i,isExactActive:a,navigate:s}}const tm=ze({name:"RouterLink",props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Fa,setup(e,{slots:t}){const n=_n(Fa(e)),{options:l}=Re(rr),r=_e(()=>({[Ma(e.activeClass,l.linkActiveClass,"router-link-active")]:n.isActive,[Ma(e.exactActiveClass,l.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&t.default(n);return e.custom?i:ee("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),nm=tm;function lm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function rm(e,t){for(const n in t){const l=t[n],r=e[n];if(typeof l=="string"){if(l!==r)return!1}else if(!Array.isArray(r)||r.length!==l.length||l.some((i,a)=>i!==r[a]))return!1}return!0}function Na(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ma=(e,t,n)=>e!=null?e:t!=null?t:n,im=ze({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},setup(e,{attrs:t,slots:n}){const l=Re(Ur),r=_e(()=>e.route||l.value),i=Re(Oa,0),a=_e(()=>r.value.matched[i]);Ut(Oa,i+1),Ut(ig,a),Ut(Ur,r);const s=Ee();return et(()=>[s.value,a.value,e.name],([c,u,d],[v,g,b])=>{u&&(u.instances[d]=c,g&&g!==u&&c&&c===v&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!gn(u,g)||!v)&&(u.enterCallbacks[d]||[]).forEach(m=>m(c))},{flush:"post"}),()=>{const c=r.value,u=a.value,d=u&&u.components[e.name],v=e.name;if(!d)return za(n.default,{Component:d,route:c});const g=u.props[e.name],b=g?g===!0?c.params:typeof g=="function"?g(c):g:null,_=ee(d,pe({},b,t,{onVnodeUnmounted:f=>{f.component.isUnmounted&&(u.instances[v]=null)},ref:s}));return za(n.default,{Component:_,route:c})||_}}});function za(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const _c=im;function am(e){const t=xg(e.routes,e),n=e.parseQuery||Zg,l=e.stringifyQuery||Va,r=e.history,i=wn(),a=wn(),s=wn(),c=Os(st);let u=st;tn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=_r.bind(null,I=>""+I),v=_r.bind(null,Qg),g=_r.bind(null,zl);function b(I,U){let N,q;return dc(I)?(N=t.getRecordMatcher(I),q=U):q=I,t.addRoute(q,N)}function m(I){const U=t.getRecordMatcher(I);U&&t.removeRoute(U)}function _(){return t.getRoutes().map(I=>I.record)}function f(I){return!!t.getRecordMatcher(I)}function y(I,U){if(U=pe({},U||c.value),typeof I=="string"){const ne=br(n,I,U.path),p=t.resolve({path:ne.path},U),k=r.createHref(ne.fullPath);return pe(ne,p,{params:g(p.params),hash:zl(ne.hash),redirectedFrom:void 0,href:k})}let N;if("path"in I)N=pe({},I,{path:br(n,I.path,U.path).path});else{const ne=pe({},I.params);for(const p in ne)ne[p]==null&&delete ne[p];N=pe({},I,{params:v(I.params)}),U.params=v(U.params)}const q=t.resolve(N,U),ue=I.hash||"";q.params=d(g(q.params));const me=cg(l,pe({},I,{hash:Gg(ue),path:q.path})),ie=r.createHref(me);return pe({fullPath:me,hash:ue,query:l===Va?Xg(I.query):I.query||{}},q,{redirectedFrom:void 0,href:ie})}function w(I){return typeof I=="string"?br(n,I,c.value.path):pe({},I)}function P(I,U){if(u!==I)return mn(8,{from:U,to:I})}function A(I){return S(I)}function D(I){return A(pe(w(I),{replace:!0}))}function F(I){const U=I.matched[I.matched.length-1];if(U&&U.redirect){const{redirect:N}=U;let q=typeof N=="function"?N(I):N;return typeof q=="string"&&(q=q.includes("?")||q.includes("#")?q=w(q):{path:q},q.params={}),pe({query:I.query,hash:I.hash,params:I.params},q)}}function S(I,U){const N=u=y(I),q=c.value,ue=I.state,me=I.force,ie=I.replace===!0,ne=F(N);if(ne)return S(pe(w(ne),{state:ue,force:me,replace:ie}),U||N);const p=N;p.redirectedFrom=U;let k;return!me&&ug(l,q,N)&&(k=mn(16,{to:p,from:q}),Ae(q,q,!0,!1)),(k?Promise.resolve(k):K(p,q)).catch(T=>It(T)?T:le(T,p,q)).then(T=>{if(T){if(It(T,2))return S(pe(w(T.to),{state:ue,force:me,replace:ie}),U||p)}else T=W(p,q,!0,ie,ue);return B(p,q,T),T})}function O(I,U){const N=P(I,U);return N?Promise.reject(N):Promise.resolve()}function K(I,U){let N;const[q,ue,me]=om(I,U);N=yr(q.reverse(),"beforeRouteLeave",I,U);for(const ne of q)ne.leaveGuards.forEach(p=>{N.push(kt(p,I,U))});const ie=O.bind(null,I,U);return N.push(ie),Jt(N).then(()=>{N=[];for(const ne of i.list())N.push(kt(ne,I,U));return N.push(ie),Jt(N)}).then(()=>{N=yr(ue,"beforeRouteUpdate",I,U);for(const ne of ue)ne.updateGuards.forEach(p=>{N.push(kt(p,I,U))});return N.push(ie),Jt(N)}).then(()=>{N=[];for(const ne of I.matched)if(ne.beforeEnter&&!U.matched.includes(ne))if(Array.isArray(ne.beforeEnter))for(const p of ne.beforeEnter)N.push(kt(p,I,U));else N.push(kt(ne.beforeEnter,I,U));return N.push(ie),Jt(N)}).then(()=>(I.matched.forEach(ne=>ne.enterCallbacks={}),N=yr(me,"beforeRouteEnter",I,U),N.push(ie),Jt(N))).then(()=>{N=[];for(const ne of a.list())N.push(kt(ne,I,U));return N.push(ie),Jt(N)}).catch(ne=>It(ne,8)?ne:Promise.reject(ne))}function B(I,U,N){for(const q of s.list())q(I,U,N)}function W(I,U,N,q,ue){const me=P(I,U);if(me)return me;const ie=U===st,ne=tn?history.state:{};N&&(q||ie?r.replace(I.fullPath,pe({scroll:ie&&ne&&ne.scroll},ue)):r.push(I.fullPath,ue)),c.value=I,Ae(I,U,N,ie),we()}let L;function H(){L=r.listen((I,U,N)=>{const q=y(I),ue=F(q);if(ue){S(pe(ue,{replace:!0}),q).catch(Fn);return}u=q;const me=c.value;tn&&_g(Da(me.fullPath,N.delta),ir()),K(q,me).catch(ie=>It(ie,12)?ie:It(ie,2)?(S(ie.to,q).then(ne=>{It(ne,20)&&!N.delta&&N.type===$n.pop&&r.go(-1,!1)}).catch(Fn),Promise.reject()):(N.delta&&r.go(-N.delta,!1),le(ie,q,me))).then(ie=>{ie=ie||W(q,me,!1),ie&&(N.delta?r.go(-N.delta,!1):N.type===$n.pop&&It(ie,20)&&r.go(-1,!1)),B(q,me,ie)}).catch(Fn)})}let Q=wn(),se=wn(),J;function le(I,U,N){we(I);const q=se.list();return q.length?q.forEach(ue=>ue(I,U,N)):console.error(I),Promise.reject(I)}function re(){return J&&c.value!==st?Promise.resolve():new Promise((I,U)=>{Q.add([I,U])})}function we(I){J||(J=!0,H(),Q.list().forEach(([U,N])=>I?N(I):U()),Q.reset())}function Ae(I,U,N,q){const{scrollBehavior:ue}=e;if(!tn||!ue)return Promise.resolve();const me=!N&&bg(Da(I.fullPath,0))||(q||!N)&&history.state&&history.state.scroll||null;return Ei().then(()=>ue(I,U,me)).then(ie=>ie&&fg(ie)).catch(ie=>le(ie,I,U))}const Le=I=>r.go(I);let Pe;const Ie=new Set;return{currentRoute:c,addRoute:b,removeRoute:m,hasRoute:f,getRoutes:_,resolve:y,options:e,push:A,replace:D,go:Le,back:()=>Le(-1),forward:()=>Le(1),beforeEach:i.add,beforeResolve:a.add,afterEach:s.add,onError:se.add,isReady:re,install(I){const U=this;I.component("RouterLink",nm),I.component("RouterView",_c),I.config.globalProperties.$router=U,Object.defineProperty(I.config.globalProperties,"$route",{enumerable:!0,get:()=>Bt(c)}),tn&&!Pe&&c.value===st&&(Pe=!0,A(r.location).catch(ue=>{}));const N={};for(const ue in st)N[ue]=_e(()=>c.value[ue]);I.provide(rr,U),I.provide(Ci,_n(N)),I.provide(Ur,c);const q=I.unmount;Ie.add(I),I.unmount=function(){Ie.delete(I),Ie.size<1&&(u=st,L&&L(),c.value=st,Pe=!1,J=!1),q()}}}}function Jt(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function om(e,t){const n=[],l=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;agn(u,s))?l.push(s):n.push(s));const c=e.matched[a];c&&(t.matched.find(u=>gn(u,c))||r.push(c))}return[n,l,r]}function ll(){return Re(rr)}function ji(){return Re(Ci)}const sm=ze({setup(e,t){const n=Ee(!1);return tt(()=>{n.value=!0}),()=>{var l,r;return n.value?(r=(l=t.slots).default)===null||r===void 0?void 0:r.call(l):null}}}),cm="modulepreload",Ha={},um="/",o=function(t,n){return!n||n.length===0?t():Promise.all(n.map(l=>{if(l=`${um}${l}`,l in Ha)return;Ha[l]=!0;const r=l.endsWith(".css"),i=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${i}`))return;const a=document.createElement("link");if(a.rel=r?"stylesheet":cm,r||(a.as="script",a.crossOrigin=""),a.href=l,document.head.appendChild(a),r)return new Promise((s,c)=>{a.addEventListener("load",s),a.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${l}`)))})})).then(()=>t())},bc={"v-8daa1a0e":h(()=>o(()=>import("./index.html.0a287f1f.js"),[])),"v-6bf54404":h(()=>o(()=>import("./accounts.html.725bda9f.js"),[])),"v-5f0a12cc":h(()=>o(()=>import("./cpi.html.a8399e2f.js"),[])),"v-130ca978":h(()=>o(()=>import("./pdas.html.3c423991.js"),[])),"v-882009ca":h(()=>o(()=>import("./programs.html.31091198.js"),[])),"v-63197375":h(()=>o(()=>import("./transactions.html.3d03b22d.js"),[])),"v-2d0a8235":h(()=>o(()=>import("./index.html.d66dda56.js"),[])),"v-2d0a87a8":h(()=>o(()=>import("./index.html.3ef4c766.js"),[])),"v-2d0a8b4a":h(()=>o(()=>import("./index.html.6c78ed74.js"),[])),"v-345c0323":h(()=>o(()=>import("./auto-approve.html.715cb859.js"),[])),"v-2119e6ee":h(()=>o(()=>import("./distribution.html.77b10b09.js"),[])),"v-33bd6568":h(()=>o(()=>import("./energy-system.html.6f60f4b8.js"),[])),"v-687f189c":h(()=>o(()=>import("./game-examples.html.e4c5158d.js"),[])),"v-00547d6c":h(()=>o(()=>import("./game-sdks.html.e8469124.js"),[])),"v-3edbe329":h(()=>o(()=>import("./hello-world.html.a280c00a.js"),[])),"v-3d8530c8":h(()=>o(()=>import("./interact-with-tokens.html.0707f8d5.js"),[])),"v-c08c9418":h(()=>o(()=>import("./intro.html.074604d0.js"),[])),"v-c4d04f5e":h(()=>o(()=>import("./nfts-in-games.html.ab1ab0dd.js"),[])),"v-4ea6aa5e":h(()=>o(()=>import("./porting-anchor-to-unity.html.294e5690.js"),[])),"v-1e0c6857":h(()=>o(()=>import("./saving-game-state.html.a35dc60f.js"),[])),"v-61d730b8":h(()=>o(()=>import("./store-sol-in-pda.html.72256b44.js"),[])),"v-4e8563af":h(()=>o(()=>import("./installation.html.41ef3724.js"),[])),"v-76b1e9e3":h(()=>o(()=>import("./account-maps.html.442511c7.js"),[])),"v-6da58eef":h(()=>o(()=>import("./data-migration.html.7a0642c3.js"),[])),"v-4684263f":h(()=>o(()=>import("./debugging-solana-programs.html.fdb9ba99.js"),[])),"v-4740871a":h(()=>o(()=>import("./feature-parity-testing.html.ec167da4.js"),[])),"v-2b9a5458":h(()=>o(()=>import("./get-program-accounts.html.2027870e.js"),[])),"v-5a9d5a10":h(()=>o(()=>import("./retrying-transactions.html.372b2f34.js"),[])),"v-2e379628":h(()=>o(()=>import("./serialization.html.c5ff52e0.js"),[])),"v-7e81f36f":h(()=>o(()=>import("./versioned-transactions.html.aea85ad7.js"),[])),"v-2d0a94db":h(()=>o(()=>import("./index.html.2732a4d4.js"),[])),"v-100dc897":h(()=>o(()=>import("./index.html.0b6cc05d.js"),[])),"v-13513bf3":h(()=>o(()=>import("./jupiter.html.971e1dde.js"),[])),"v-7f12be2e":h(()=>o(()=>import("./mango.html.235ca792.js"),[])),"v-0bf487b4":h(()=>o(()=>import("./orao-vrf.html.694a85e2.js"),[])),"v-6bb05bf6":h(()=>o(()=>import("./pyth.html.31cc5468.js"),[])),"v-78a2a41d":h(()=>o(()=>import("./react-native.html.2fa23deb.js"),[])),"v-0a8f60b8":h(()=>o(()=>import("./serum.html.fa2c5d2c.js"),[])),"v-402eef45":h(()=>o(()=>import("./strata.html.12bbf620.js"),[])),"v-4d26b27e":h(()=>o(()=>import("./switchboard.html.9ffe2598.js"),[])),"v-da1de70a":h(()=>o(()=>import("./web3auth.html.9f2f8604.js"),[])),"v-2d0a983f":h(()=>o(()=>import("./index.html.d33706d4.js"),[])),"v-2d0a9e0f":h(()=>o(()=>import("./index.html.c4c8a4bb.js"),[])),"v-6c467d65":h(()=>o(()=>import("./accounts.html.db80db89.js"),[])),"v-70f9aa12":h(()=>o(()=>import("./basic-transactions.html.a9786217.js"),[])),"v-4dc29afa":h(()=>o(()=>import("./keypairs-and-wallets.html.08628220.js"),[])),"v-10b56a2e":h(()=>o(()=>import("./local-development.html.4f85d321.js"),[])),"v-9eccd210":h(()=>o(()=>import("./name-service.html.7e144c40.js"),[])),"v-d2aec298":h(()=>o(()=>import("./nfts.html.3ae0e6f1.js"),[])),"v-f8950628":h(()=>o(()=>import("./offline-transactions.html.1ab6fc76.js"),[])),"v-877d9708":h(()=>o(()=>import("./programs.html.f7c57f9e.js"),[])),"v-26f90ae0":h(()=>o(()=>import("./staking.html.1b735633.js"),[])),"v-0d096f0e":h(()=>o(()=>import("./token.html.abefca78.js"),[])),"v-2d0abea2":h(()=>o(()=>import("./index.html.d3397d61.js"),[])),"v-2d0abfd8":h(()=>o(()=>import("./index.html.6b3980a4.js"),[])),"v-2d0ac643":h(()=>o(()=>import("./index.html.fd6996c3.js"),[])),"v-2d0ad528":h(()=>o(()=>import("./index.html.0d598c1c.js"),[])),"v-8e5be170":h(()=>o(()=>import("./accounts.html.21174e84.js"),[])),"v-f2328ef0":h(()=>o(()=>import("./pdas.html.692947fe.js"),[])),"v-08ccc65f":h(()=>o(()=>import("./programs.html.8e3a21c0.js"),[])),"v-1256fcb9":h(()=>o(()=>import("./transactions.html.ddd99c44.js"),[])),"v-2485abf3":h(()=>o(()=>import("./installation.html.0d987601.js"),[])),"v-1832f5c2":h(()=>o(()=>import("./account-maps.html.ecd8e579.js"),[])),"v-70204b2b":h(()=>o(()=>import("./data-migration.html.f8e1038b.js"),[])),"v-16deac83":h(()=>o(()=>import("./debugging-solana-programs.html.db6fb5c5.js"),[])),"v-732f06a2":h(()=>o(()=>import("./feature-parity-testing.html.a400879b.js"),[])),"v-22a67510":h(()=>o(()=>import("./get-program-accounts.html.ab992419.js"),[])),"v-309da254":h(()=>o(()=>import("./retrying-transactions.html.46835128.js"),[])),"v-5796626c":h(()=>o(()=>import("./serialization.html.887d09b8.js"),[])),"v-1bac4a4a":h(()=>o(()=>import("./index.html.1a552ccd.js"),[])),"v-3cb00837":h(()=>o(()=>import("./jupiter.html.74a079c6.js"),[])),"v-0f7fcb72":h(()=>o(()=>import("./mango.html.dfb33f17.js"),[])),"v-0e6f43f0":h(()=>o(()=>import("./orao-vrf.html.66c03592.js"),[])),"v-d5fbe77e":h(()=>o(()=>import("./pyth.html.c0775995.js"),[])),"v-0aace259":h(()=>o(()=>import("./react-native.html.10c2e2a8.js"),[])),"v-ca072408":h(()=>o(()=>import("./serum.html.117a0127.js"),[])),"v-8538eafe":h(()=>o(()=>import("./strata.html.97a02aa1.js"),[])),"v-5404867c":h(()=>o(()=>import("./switchboard.html.ff653a7d.js"),[])),"v-d5286e92":h(()=>o(()=>import("./web3auth.html.d1af114e.js"),[])),"v-2d09cebe":h(()=>o(()=>import("./accounts.html.8a4d2452.js"),[])),"v-9ce8299a":h(()=>o(()=>import("./basic-transactions.html.a3ec3168.js"),[])),"v-4ec78794":h(()=>o(()=>import("./keypairs-and-wallets.html.0333d1aa.js"),[])),"v-32949b1c":h(()=>o(()=>import("./local-development.html.915be9fa.js"),[])),"v-01539798":h(()=>o(()=>import("./name-service.html.dfe82d62.js"),[])),"v-6bf79020":h(()=>o(()=>import("./nfts.html.118ac318.js"),[])),"v-0e8f1e28":h(()=>o(()=>import("./offline-transactions.html.a579ee52.js"),[])),"v-3975cfb8":h(()=>o(()=>import("./programs.html.51117b5f.js"),[])),"v-7cf087d4":h(()=>o(()=>import("./staking.html.1a7dfc19.js"),[])),"v-4520fd52":h(()=>o(()=>import("./token.html.987d3230.js"),[])),"v-08458c16":h(()=>o(()=>import("./accounts.html.6d5c8163.js"),[])),"v-79377c96":h(()=>o(()=>import("./pdas.html.f5bf4632.js"),[])),"v-4bd7f10c":h(()=>o(()=>import("./programs.html.f8f8f4bb.js"),[])),"v-314308e6":h(()=>o(()=>import("./transactions.html.05b1003b.js"),[])),"v-389f60e0":h(()=>o(()=>import("./installation.html.2b406690.js"),[])),"v-471a2192":h(()=>o(()=>import("./account-maps.html.96de5b13.js"),[])),"v-7642d244":h(()=>o(()=>import("./data-migration.html.8bd9c97a.js"),[])),"v-6c0a22f0":h(()=>o(()=>import("./debugging-solana-programs.html.ebd0ba9d.js"),[])),"v-35856562":h(()=>o(()=>import("./feature-parity-testing.html.4ebe5657.js"),[])),"v-3d8822fa":h(()=>o(()=>import("./get-program-accounts.html.05fd251c.js"),[])),"v-44b75741":h(()=>o(()=>import("./retrying-transactions.html.448ddcf9.js"),[])),"v-6ad65459":h(()=>o(()=>import("./serialization.html.0506d8ef.js"),[])),"v-3caeb514":h(()=>o(()=>import("./accounts.html.ab4b7652.js"),[])),"v-20a8d3e6":h(()=>o(()=>import("./basic-transactions.html.26b4a82e.js"),[])),"v-17bc77ae":h(()=>o(()=>import("./keypairs-and-wallets.html.a02f70ba.js"),[])),"v-0a613142":h(()=>o(()=>import("./local-development.html.a1aa3ed0.js"),[])),"v-1db05f27":h(()=>o(()=>import("./name-service.html.7f4fac65.js"),[])),"v-6f8605e3":h(()=>o(()=>import("./nfts.html.7ada7be4.js"),[])),"v-2a14a61b":h(()=>o(()=>import("./offline-transactions.html.026dd1d3.js"),[])),"v-e6ad27aa":h(()=>o(()=>import("./programs.html.da872eb1.js"),[])),"v-8d23ddfe":h(()=>o(()=>import("./staking.html.008b0ce1.js"),[])),"v-4fd8edbf":h(()=>o(()=>import("./token.html.afdfc912.js"),[])),"v-598bfdda":h(()=>o(()=>import("./accounts.html.f7bc55df.js"),[])),"v-410d47d3":h(()=>o(()=>import("./pdas.html.30910713.js"),[])),"v-2334b82a":h(()=>o(()=>import("./programs.html.f56b5c31.js"),[])),"v-1ee9ddf8":h(()=>o(()=>import("./transactions.html.1da4e29f.js"),[])),"v-4605d97e":h(()=>o(()=>import("./installation.html.60f39b0a.js"),[])),"v-7e91df34":h(()=>o(()=>import("./account-maps.html.113fa1ac.js"),[])),"v-05451800":h(()=>o(()=>import("./data-migration.html.2e6237a4.js"),[])),"v-0bb1c6e4":h(()=>o(()=>import("./debugging-solana-programs.html.5e8dccc0.js"),[])),"v-5623fef8":h(()=>o(()=>import("./feature-parity-testing.html.de652e4a.js"),[])),"v-0af4ea25":h(()=>o(()=>import("./get-program-accounts.html.13e583fe.js"),[])),"v-521dcfdf":h(()=>o(()=>import("./retrying-transactions.html.3091e9dc.js"),[])),"v-22564af7":h(()=>o(()=>import("./serialization.html.578379af.js"),[])),"v-77103780":h(()=>o(()=>import("./versioned-transactions.html.31734a38.js"),[])),"v-4571fbe6":h(()=>o(()=>import("./index.html.77b03d55.js"),[])),"v-076ff0c2":h(()=>o(()=>import("./jupiter.html.e61c13e7.js"),[])),"v-6cb34a86":h(()=>o(()=>import("./mango.html.22eca321.js"),[])),"v-c8a72676":h(()=>o(()=>import("./orao-vrf.html.f9defff7.js"),[])),"v-6976e796":h(()=>o(()=>import("./pyth.html.5f59a477.js"),[])),"v-1e60cea4":h(()=>o(()=>import("./react-native.html.a9b24fee.js"),[])),"v-5522fd47":h(()=>o(()=>import("./serum.html.b6233283.js"),[])),"v-480ee496":h(()=>o(()=>import("./strata.html.d1c97a7c.js"),[])),"v-139f3066":h(()=>o(()=>import("./switchboard.html.e9fb6fa3.js"),[])),"v-22a8f18c":h(()=>o(()=>import("./web3auth.html.a4e4ba64.js"),[])),"v-742672b6":h(()=>o(()=>import("./accounts.html.902b2abb.js"),[])),"v-7fdd21f0":h(()=>o(()=>import("./basic-transactions.html.159d2d39.js"),[])),"v-5bd01ecb":h(()=>o(()=>import("./keypairs-and-wallets.html.6b6054b2.js"),[])),"v-0835dffd":h(()=>o(()=>import("./local-development.html.a393140f.js"),[])),"v-31ec7bc9":h(()=>o(()=>import("./name-service.html.ef4287e4.js"),[])),"v-3331e485":h(()=>o(()=>import("./nfts.html.555e38b4.js"),[])),"v-dc79fe86":h(()=>o(()=>import("./offline-transactions.html.9f1f8fb0.js"),[])),"v-77bdac66":h(()=>o(()=>import("./programs.html.386334d2.js"),[])),"v-3717171f":h(()=>o(()=>import("./staking.html.107bd7b0.js"),[])),"v-01a8e35d":h(()=>o(()=>import("./token.html.044366a0.js"),[])),"v-da3cf63c":h(()=>o(()=>import("./accounts.html.6da8e555.js"),[])),"v-0bf50b22":h(()=>o(()=>import("./pdas.html.940f79a3.js"),[])),"v-3a47880e":h(()=>o(()=>import("./programs.html.a564c8f1.js"),[])),"v-73c3d55a":h(()=>o(()=>import("./transactions.html.40346000.js"),[])),"v-02e9060d":h(()=>o(()=>import("./installation.html.9e04272d.js"),[])),"v-10a285c5":h(()=>o(()=>import("./account-maps.html.0d767eca.js"),[])),"v-4ddeba51":h(()=>o(()=>import("./data-migration.html.9b198297.js"),[])),"v-0173699d":h(()=>o(()=>import("./debugging-solana-programs.html.07fbb213.js"),[])),"v-971f3456":h(()=>o(()=>import("./feature-parity-testing.html.b35a9a66.js"),[])),"v-307b2094":h(()=>o(()=>import("./get-program-accounts.html.b4e0f4f3.js"),[])),"v-0f00fc6e":h(()=>o(()=>import("./retrying-transactions.html.7f7432e7.js"),[])),"v-5b4b12f4":h(()=>o(()=>import("./serialization.html.47a6e0ee.js"),[])),"v-0027c5f5":h(()=>o(()=>import("./index.html.727a6b9f.js"),[])),"v-9117c75e":h(()=>o(()=>import("./jupiter.html.4ca25825.js"),[])),"v-d6e3c3e8":h(()=>o(()=>import("./mango.html.4038697b.js"),[])),"v-2df1fe67":h(()=>o(()=>import("./pyth.html.509b01aa.js"),[])),"v-10996302":h(()=>o(()=>import("./react-native.html.7dcd3284.js"),[])),"v-200ac096":h(()=>o(()=>import("./serum.html.80bfdb16.js"),[])),"v-4bc0e9b2":h(()=>o(()=>import("./strata.html.28c4c18a.js"),[])),"v-6a0633dc":h(()=>o(()=>import("./switchboard.html.ced137c3.js"),[])),"v-732a37dd":h(()=>o(()=>import("./web3auth.html.66571a86.js"),[])),"v-06371947":h(()=>o(()=>import("./accounts.html.6c5bc2dd.js"),[])),"v-c0d8574e":h(()=>o(()=>import("./basic-transactions.html.4a2578a5.js"),[])),"v-644e73dc":h(()=>o(()=>import("./keypairs-and-wallets.html.23ad3697.js"),[])),"v-75cde6e8":h(()=>o(()=>import("./local-development.html.f9c91566.js"),[])),"v-673571da":h(()=>o(()=>import("./name-service.html.6e679b04.js"),[])),"v-931308d4":h(()=>o(()=>import("./nfts.html.f67d0f89.js"),[])),"v-cb7d5464":h(()=>o(()=>import("./offline-transactions.html.b5ff0f0f.js"),[])),"v-5631d05e":h(()=>o(()=>import("./programs.html.bbbb3304.js"),[])),"v-01feda6e":h(()=>o(()=>import("./staking.html.d721defb.js"),[])),"v-3211a328":h(()=>o(()=>import("./token.html.27dc8adf.js"),[])),"v-179e82fe":h(()=>o(()=>import("./accounts.html.1cd81784.js"),[])),"v-52ffdf92":h(()=>o(()=>import("./cpi.html.87e49511.js"),[])),"v-fd851184":h(()=>o(()=>import("./pdas.html.d7092bfa.js"),[])),"v-67993a15":h(()=>o(()=>import("./programs.html.c526f02f.js"),[])),"v-ec92b522":h(()=>o(()=>import("./transactions.html.fdd8d503.js"),[])),"v-429dff29":h(()=>o(()=>import("./installation.html.66ba803e.js"),[])),"v-44679d29":h(()=>o(()=>import("./account-maps.html.9c1915f5.js"),[])),"v-b688ee96":h(()=>o(()=>import("./data-migration.html.45037e1c.js"),[])),"v-04e3168e":h(()=>o(()=>import("./debugging-solana-programs.html.90f36bae.js"),[])),"v-6b5a9039":h(()=>o(()=>import("./feature-parity-testing.html.bf0c4f60.js"),[])),"v-d18839cc":h(()=>o(()=>import("./get-program-accounts.html.f435a31f.js"),[])),"v-4eb5f58a":h(()=>o(()=>import("./retrying-transactions.html.75d18ee4.js"),[])),"v-17384ba2":h(()=>o(()=>import("./serialization.html.91b66de2.js"),[])),"v-0d7cc735":h(()=>o(()=>import("./versioned-transactions.html.1cd42e05.js"),[])),"v-57b135de":h(()=>o(()=>import("./index.html.a5c25e74.js"),[])),"v-075c1d26":h(()=>o(()=>import("./jupiter.html.a2626a25.js"),[])),"v-09d68a28":h(()=>o(()=>import("./mango.html.d738a7f1.js"),[])),"v-430a817a":h(()=>o(()=>import("./orao-vrf.html.c74fd8e9.js"),[])),"v-83c4c26a":h(()=>o(()=>import("./pyth.html.d4d12cb2.js"),[])),"v-460b6a3a":h(()=>o(()=>import("./react-native.html.edc735bd.js"),[])),"v-d559a69c":h(()=>o(()=>import("./serum.html.58b69860.js"),[])),"v-0de4a28b":h(()=>o(()=>import("./strata.html.4608aeed.js"),[])),"v-9907ca10":h(()=>o(()=>import("./switchboard.html.8803939a.js"),[])),"v-6bf1f37e":h(()=>o(()=>import("./web3auth.html.9b63dc83.js"),[])),"v-39fc30ab":h(()=>o(()=>import("./accounts.html.c5d0922b.js"),[])),"v-567dfebd":h(()=>o(()=>import("./basic-transactions.html.ca48a30a.js"),[])),"v-09579540":h(()=>o(()=>import("./keypairs-and-wallets.html.80324fea.js"),[])),"v-04ce05a8":h(()=>o(()=>import("./local-development.html.bc2058e1.js"),[])),"v-7a18373e":h(()=>o(()=>import("./name-service.html.d4393256.js"),[])),"v-6d16e4fa":h(()=>o(()=>import("./nfts.html.5754e50d.js"),[])),"v-3f4a7732":h(()=>o(()=>import("./offline-transactions.html.fe204508.js"),[])),"v-ec12307c":h(()=>o(()=>import("./programs.html.9a3e0d15.js"),[])),"v-7747468a":h(()=>o(()=>import("./staking.html.86ab1418.js"),[])),"v-0463f188":h(()=>o(()=>import("./token.html.c5567240.js"),[])),"v-52cd49a4":h(()=>o(()=>import("./accounts.html.344b7d0f.js"),[])),"v-4a4be76e":h(()=>o(()=>import("./pdas.html.f2372b94.js"),[])),"v-26941245":h(()=>o(()=>import("./programs.html.d57cde6e.js"),[])),"v-2229e59f":h(()=>o(()=>import("./transactions.html.4ea8112b.js"),[])),"v-e97c194e":h(()=>o(()=>import("./installation.html.3465c733.js"),[])),"v-c5b19a0e":h(()=>o(()=>import("./account-maps.html.e1996f93.js"),[])),"v-68262af6":h(()=>o(()=>import("./data-migration.html.9eafa9ba.js"),[])),"v-a4865e2e":h(()=>o(()=>import("./debugging-solana-programs.html.e52e9e07.js"),[])),"v-37352209":h(()=>o(()=>import("./feature-parity-testing.html.ae95ef54.js"),[])),"v-0d30a8ea":h(()=>o(()=>import("./get-program-accounts.html.fb8839ac.js"),[])),"v-d14c2c8c":h(()=>o(()=>import("./retrying-transactions.html.22a3ee84.js"),[])),"v-5329205c":h(()=>o(()=>import("./serialization.html.7bab0738.js"),[])),"v-da88730a":h(()=>o(()=>import("./accounts.html.80b7d9ed.js"),[])),"v-2258908d":h(()=>o(()=>import("./basic-transactions.html.9c6d8c48.js"),[])),"v-48d4f310":h(()=>o(()=>import("./keypairs-and-wallets.html.1a1849a7.js"),[])),"v-4d71f9d8":h(()=>o(()=>import("./local-development.html.aaa13661.js"),[])),"v-cb0f35e4":h(()=>o(()=>import("./name-service.html.c45f38da.js"),[])),"v-b3ac3a6c":h(()=>o(()=>import("./nfts.html.b784f387.js"),[])),"v-7ec7d502":h(()=>o(()=>import("./offline-transactions.html.2837549a.js"),[])),"v-3a9304dc":h(()=>o(()=>import("./programs.html.5f58f77f.js"),[])),"v-4055b6ba":h(()=>o(()=>import("./staking.html.48b1d753.js"),[])),"v-249ea490":h(()=>o(()=>import("./token.html.60a7138b.js"),[])),"v-3f8c76bb":h(()=>o(()=>import("./accounts.html.7d17a835.js"),[])),"v-310cd17b":h(()=>o(()=>import("./pdas.html.ec9f90e5.js"),[])),"v-e0f1a45c":h(()=>o(()=>import("./programs.html.48587903.js"),[])),"v-5dda72ac":h(()=>o(()=>import("./transactions.html.e8e47d58.js"),[])),"v-c5f91db4":h(()=>o(()=>import("./installation.html.56e39fed.js"),[])),"v-e2f8eae8":h(()=>o(()=>import("./account-maps.html.2b2e7767.js"),[])),"v-50dcad50":h(()=>o(()=>import("./data-migration.html.7be61c15.js"),[])),"v-387ebf94":h(()=>o(()=>import("./debugging-solana-programs.html.d2d36f3d.js"),[])),"v-5da35ddc":h(()=>o(()=>import("./feature-parity-testing.html.e23e2696.js"),[])),"v-4791bd7d":h(()=>o(()=>import("./get-program-accounts.html.086000e2.js"),[])),"v-adc930f2":h(()=>o(()=>import("./retrying-transactions.html.1fa2726a.js"),[])),"v-109a0a9f":h(()=>o(()=>import("./serialization.html.8d38c1dc.js"),[])),"v-0074d650":h(()=>o(()=>import("./versioned-transactions.html.1a1ff2dc.js"),[])),"v-18d9f78e":h(()=>o(()=>import("./index.html.a4c2cf87.js"),[])),"v-14989f2c":h(()=>o(()=>import("./jupiter.html.53710d58.js"),[])),"v-8cb43736":h(()=>o(()=>import("./mango.html.c9da188d.js"),[])),"v-67e8ee24":h(()=>o(()=>import("./pyth.html.4f0841c0.js"),[])),"v-fe8d3bf4":h(()=>o(()=>import("./react-native.html.60c59bb7.js"),[])),"v-452286ef":h(()=>o(()=>import("./serum.html.5b7d1540.js"),[])),"v-58008fee":h(()=>o(()=>import("./strata.html.6ce60e71.js"),[])),"v-d087d916":h(()=>o(()=>import("./switchboard.html.4ee40e9f.js"),[])),"v-0645b238":h(()=>o(()=>import("./web3auth.html.b901cf4b.js"),[])),"v-f7cfc3e4":h(()=>o(()=>import("./accounts.html.f12554c0.js"),[])),"v-48c6cc60":h(()=>o(()=>import("./basic-transactions.html.fc1a8867.js"),[])),"v-e6b8f3ba":h(()=>o(()=>import("./keypairs-and-wallets.html.46610474.js"),[])),"v-5f3377a5":h(()=>o(()=>import("./local-development.html.a4b2de83.js"),[])),"v-4fe8bb21":h(()=>o(()=>import("./name-service.html.9cd733b8.js"),[])),"v-00aefbdd":h(()=>o(()=>import("./nfts.html.8e857d5a.js"),[])),"v-7ad32fd6":h(()=>o(()=>import("./offline-transactions.html.61edef66.js"),[])),"v-57da55b6":h(()=>o(()=>import("./programs.html.c3000df4.js"),[])),"v-2716a0c7":h(()=>o(()=>import("./staking.html.588fc16d.js"),[])),"v-386291f6":h(()=>o(()=>import("./token.html.e074962e.js"),[])),"v-46a93876":h(()=>o(()=>import("./accounts.html.ffb32db6.js"),[])),"v-5aefd385":h(()=>o(()=>import("./pdas.html.bb2f635c.js"),[])),"v-2ca61adc":h(()=>o(()=>import("./programs.html.0ad5c886.js"),[])),"v-4847cab6":h(()=>o(()=>import("./transactions.html.86713374.js"),[])),"v-bd0a22a0":h(()=>o(()=>import("./installation.html.5e34f94a.js"),[])),"v-bdfe6c7c":h(()=>o(()=>import("./account-maps.html.ace4ce72.js"),[])),"v-3fbbf30e":h(()=>o(()=>import("./data-migration.html.6a6ffbf1.js"),[])),"v-846b6e80":h(()=>o(()=>import("./debugging-solana-programs.html.e4ec81c8.js"),[])),"v-2fc8dcdc":h(()=>o(()=>import("./feature-parity-testing.html.1a9f34ce.js"),[])),"v-aa61329a":h(()=>o(()=>import("./get-program-accounts.html.dfdd1137.js"),[])),"v-a4da35de":h(()=>o(()=>import("./retrying-transactions.html.abc7f479.js"),[])),"v-4dc4b229":h(()=>o(()=>import("./serialization.html.5749075d.js"),[])),"v-d2d54578":h(()=>o(()=>import("./accounts.html.5d7b8651.js"),[])),"v-5981ffd4":h(()=>o(()=>import("./basic-transactions.html.6957b1fc.js"),[])),"v-59dda459":h(()=>o(()=>import("./keypairs-and-wallets.html.84875c5a.js"),[])),"v-63aaf52f":h(()=>o(()=>import("./local-development.html.a4ff47a7.js"),[])),"v-56a76f57":h(()=>o(()=>import("./name-service.html.1e6ac221.js"),[])),"v-41e84613":h(()=>o(()=>import("./nfts.html.db4f2b0c.js"),[])),"v-e05ef36a":h(()=>o(()=>import("./offline-transactions.html.469445a8.js"),[])),"v-32dfd74a":h(()=>o(()=>import("./programs.html.cf59bda9.js"),[])),"v-50f9a2d1":h(()=>o(()=>import("./staking.html.242822b6.js"),[])),"v-6c8298e2":h(()=>o(()=>import("./token.html.c44822ac.js"),[])),"v-6a35b27a":h(()=>o(()=>import("./accounts.html.ce9cbe5f.js"),[])),"v-8e20768c":h(()=>o(()=>import("./pdas.html.f0f8e354.js"),[])),"v-8b9f2cde":h(()=>o(()=>import("./programs.html.a1ba66c7.js"),[])),"v-55f1b6eb":h(()=>o(()=>import("./transactions.html.ac113912.js"),[])),"v-274abcb6":h(()=>o(()=>import("./installation.html.91e76917.js"),[])),"v-02feff2d":h(()=>o(()=>import("./account-maps.html.77d8532d.js"),[])),"v-1b0279b9":h(()=>o(()=>import("./data-migration.html.37c022db.js"),[])),"v-5afd7935":h(()=>o(()=>import("./debugging-solana-programs.html.11302c79.js"),[])),"v-0d9b8586":h(()=>o(()=>import("./feature-parity-testing.html.db0d8ec6.js"),[])),"v-5263011e":h(()=>o(()=>import("./get-program-accounts.html.ab253dc0.js"),[])),"v-0f1acff4":h(()=>o(()=>import("./retrying-transactions.html.d8b91c2e.js"),[])),"v-2b8d2a1e":h(()=>o(()=>import("./serialization.html.8e5f153b.js"),[])),"v-35d91d8d":h(()=>o(()=>import("./index.html.1a263f21.js"),[])),"v-10a6cfe9":h(()=>o(()=>import("./jupiter.html.2c7ec669.js"),[])),"v-4188d7a4":h(()=>o(()=>import("./mango.html.16fd6de6.js"),[])),"v-5f249c62":h(()=>o(()=>import("./pyth.html.a56d75c5.js"),[])),"v-049919e7":h(()=>o(()=>import("./react-native.html.50eb15fe.js"),[])),"v-65f50ba4":h(()=>o(()=>import("./serum.html.a80dd7c1.js"),[])),"v-6707f6e2":h(()=>o(()=>import("./strata.html.c693a7c8.js"),[])),"v-85f54918":h(()=>o(()=>import("./switchboard.html.012baeb5.js"),[])),"v-404df745":h(()=>o(()=>import("./web3auth.html.3c243a02.js"),[])),"v-0ed8daa2":h(()=>o(()=>import("./accounts.html.62ae8089.js"),[])),"v-3754a87e":h(()=>o(()=>import("./basic-transactions.html.9343afcb.js"),[])),"v-7ff81144":h(()=>o(()=>import("./keypairs-and-wallets.html.e574768f.js"),[])),"v-a2eaafb8":h(()=>o(()=>import("./local-development.html.7ea617a4.js"),[])),"v-7a66f742":h(()=>o(()=>import("./name-service.html.e85f0b0e.js"),[])),"v-1b97e8fe":h(()=>o(()=>import("./nfts.html.902520b7.js"),[])),"v-942a1994":h(()=>o(()=>import("./offline-transactions.html.260a1aae.js"),[])),"v-488e49c6":h(()=>o(()=>import("./programs.html.cf6ca04e.js"),[])),"v-a20cd7f4":h(()=>o(()=>import("./staking.html.a1e24249.js"),[])),"v-26036e04":h(()=>o(()=>import("./token.html.5b332101.js"),[])),"v-43987c75":h(()=>o(()=>import("./accounts.html.2f8f935f.js"),[])),"v-3c24c435":h(()=>o(()=>import("./pdas.html.52203689.js"),[])),"v-d8d998e8":h(()=>o(()=>import("./programs.html.7ee31ce3.js"),[])),"v-66cde934":h(()=>o(()=>import("./transactions.html.284bc161.js"),[])),"v-567ec360":h(()=>o(()=>import("./installation.html.97992b16.js"),[])),"v-3706649a":h(()=>o(()=>import("./404.html.84cd4a6b.js"),[]))},dm={"v-8daa1a0e":()=>o(()=>import("./index.html.4eb1f1ba.js"),[]).then(({data:e})=>e),"v-6bf54404":()=>o(()=>import("./accounts.html.8879a9c1.js"),[]).then(({data:e})=>e),"v-5f0a12cc":()=>o(()=>import("./cpi.html.7575fce3.js"),[]).then(({data:e})=>e),"v-130ca978":()=>o(()=>import("./pdas.html.a117908d.js"),[]).then(({data:e})=>e),"v-882009ca":()=>o(()=>import("./programs.html.4d7d8768.js"),[]).then(({data:e})=>e),"v-63197375":()=>o(()=>import("./transactions.html.188c913a.js"),[]).then(({data:e})=>e),"v-2d0a8235":()=>o(()=>import("./index.html.abf8251d.js"),[]).then(({data:e})=>e),"v-2d0a87a8":()=>o(()=>import("./index.html.ed59c6f5.js"),[]).then(({data:e})=>e),"v-2d0a8b4a":()=>o(()=>import("./index.html.c8f43f44.js"),[]).then(({data:e})=>e),"v-345c0323":()=>o(()=>import("./auto-approve.html.f8eb4c51.js"),[]).then(({data:e})=>e),"v-2119e6ee":()=>o(()=>import("./distribution.html.1e4a8b99.js"),[]).then(({data:e})=>e),"v-33bd6568":()=>o(()=>import("./energy-system.html.1af785c7.js"),[]).then(({data:e})=>e),"v-687f189c":()=>o(()=>import("./game-examples.html.2dcfe766.js"),[]).then(({data:e})=>e),"v-00547d6c":()=>o(()=>import("./game-sdks.html.e2f72c8a.js"),[]).then(({data:e})=>e),"v-3edbe329":()=>o(()=>import("./hello-world.html.dbee0508.js"),[]).then(({data:e})=>e),"v-3d8530c8":()=>o(()=>import("./interact-with-tokens.html.f2419630.js"),[]).then(({data:e})=>e),"v-c08c9418":()=>o(()=>import("./intro.html.e782eb8d.js"),[]).then(({data:e})=>e),"v-c4d04f5e":()=>o(()=>import("./nfts-in-games.html.cbea4492.js"),[]).then(({data:e})=>e),"v-4ea6aa5e":()=>o(()=>import("./porting-anchor-to-unity.html.29a097d5.js"),[]).then(({data:e})=>e),"v-1e0c6857":()=>o(()=>import("./saving-game-state.html.0656b997.js"),[]).then(({data:e})=>e),"v-61d730b8":()=>o(()=>import("./store-sol-in-pda.html.9ee3497a.js"),[]).then(({data:e})=>e),"v-4e8563af":()=>o(()=>import("./installation.html.11f5f36c.js"),[]).then(({data:e})=>e),"v-76b1e9e3":()=>o(()=>import("./account-maps.html.f32682b9.js"),[]).then(({data:e})=>e),"v-6da58eef":()=>o(()=>import("./data-migration.html.084ac250.js"),[]).then(({data:e})=>e),"v-4684263f":()=>o(()=>import("./debugging-solana-programs.html.24149e6d.js"),[]).then(({data:e})=>e),"v-4740871a":()=>o(()=>import("./feature-parity-testing.html.61786585.js"),[]).then(({data:e})=>e),"v-2b9a5458":()=>o(()=>import("./get-program-accounts.html.4f4498ed.js"),[]).then(({data:e})=>e),"v-5a9d5a10":()=>o(()=>import("./retrying-transactions.html.9ea8d8a2.js"),[]).then(({data:e})=>e),"v-2e379628":()=>o(()=>import("./serialization.html.32c33a1b.js"),[]).then(({data:e})=>e),"v-7e81f36f":()=>o(()=>import("./versioned-transactions.html.acaac8aa.js"),[]).then(({data:e})=>e),"v-2d0a94db":()=>o(()=>import("./index.html.ca0d0ddc.js"),[]).then(({data:e})=>e),"v-100dc897":()=>o(()=>import("./index.html.08f9010f.js"),[]).then(({data:e})=>e),"v-13513bf3":()=>o(()=>import("./jupiter.html.2ab24295.js"),[]).then(({data:e})=>e),"v-7f12be2e":()=>o(()=>import("./mango.html.e3130b77.js"),[]).then(({data:e})=>e),"v-0bf487b4":()=>o(()=>import("./orao-vrf.html.470f677f.js"),[]).then(({data:e})=>e),"v-6bb05bf6":()=>o(()=>import("./pyth.html.cc2d9cf5.js"),[]).then(({data:e})=>e),"v-78a2a41d":()=>o(()=>import("./react-native.html.c7c48324.js"),[]).then(({data:e})=>e),"v-0a8f60b8":()=>o(()=>import("./serum.html.d513a959.js"),[]).then(({data:e})=>e),"v-402eef45":()=>o(()=>import("./strata.html.0c674b4e.js"),[]).then(({data:e})=>e),"v-4d26b27e":()=>o(()=>import("./switchboard.html.4ab174a3.js"),[]).then(({data:e})=>e),"v-da1de70a":()=>o(()=>import("./web3auth.html.00b06a17.js"),[]).then(({data:e})=>e),"v-2d0a983f":()=>o(()=>import("./index.html.60dd15bd.js"),[]).then(({data:e})=>e),"v-2d0a9e0f":()=>o(()=>import("./index.html.618f6255.js"),[]).then(({data:e})=>e),"v-6c467d65":()=>o(()=>import("./accounts.html.1a461037.js"),[]).then(({data:e})=>e),"v-70f9aa12":()=>o(()=>import("./basic-transactions.html.dfe4490b.js"),[]).then(({data:e})=>e),"v-4dc29afa":()=>o(()=>import("./keypairs-and-wallets.html.a8f71be8.js"),[]).then(({data:e})=>e),"v-10b56a2e":()=>o(()=>import("./local-development.html.c5836b09.js"),[]).then(({data:e})=>e),"v-9eccd210":()=>o(()=>import("./name-service.html.5051d1dd.js"),[]).then(({data:e})=>e),"v-d2aec298":()=>o(()=>import("./nfts.html.39ed8786.js"),[]).then(({data:e})=>e),"v-f8950628":()=>o(()=>import("./offline-transactions.html.8d1d2de8.js"),[]).then(({data:e})=>e),"v-877d9708":()=>o(()=>import("./programs.html.31ba3784.js"),[]).then(({data:e})=>e),"v-26f90ae0":()=>o(()=>import("./staking.html.70e37cc5.js"),[]).then(({data:e})=>e),"v-0d096f0e":()=>o(()=>import("./token.html.43db4402.js"),[]).then(({data:e})=>e),"v-2d0abea2":()=>o(()=>import("./index.html.7d9ea062.js"),[]).then(({data:e})=>e),"v-2d0abfd8":()=>o(()=>import("./index.html.7ae71288.js"),[]).then(({data:e})=>e),"v-2d0ac643":()=>o(()=>import("./index.html.5b3f2ada.js"),[]).then(({data:e})=>e),"v-2d0ad528":()=>o(()=>import("./index.html.10c6341f.js"),[]).then(({data:e})=>e),"v-8e5be170":()=>o(()=>import("./accounts.html.05949c32.js"),[]).then(({data:e})=>e),"v-f2328ef0":()=>o(()=>import("./pdas.html.77efba8f.js"),[]).then(({data:e})=>e),"v-08ccc65f":()=>o(()=>import("./programs.html.340e959e.js"),[]).then(({data:e})=>e),"v-1256fcb9":()=>o(()=>import("./transactions.html.50802ba1.js"),[]).then(({data:e})=>e),"v-2485abf3":()=>o(()=>import("./installation.html.98badae7.js"),[]).then(({data:e})=>e),"v-1832f5c2":()=>o(()=>import("./account-maps.html.17bd8d7d.js"),[]).then(({data:e})=>e),"v-70204b2b":()=>o(()=>import("./data-migration.html.50964a4b.js"),[]).then(({data:e})=>e),"v-16deac83":()=>o(()=>import("./debugging-solana-programs.html.3eeeb833.js"),[]).then(({data:e})=>e),"v-732f06a2":()=>o(()=>import("./feature-parity-testing.html.94cf4ee3.js"),[]).then(({data:e})=>e),"v-22a67510":()=>o(()=>import("./get-program-accounts.html.7e74d8ff.js"),[]).then(({data:e})=>e),"v-309da254":()=>o(()=>import("./retrying-transactions.html.8880b234.js"),[]).then(({data:e})=>e),"v-5796626c":()=>o(()=>import("./serialization.html.f6d36f31.js"),[]).then(({data:e})=>e),"v-1bac4a4a":()=>o(()=>import("./index.html.c5a5ca81.js"),[]).then(({data:e})=>e),"v-3cb00837":()=>o(()=>import("./jupiter.html.ae15b0be.js"),[]).then(({data:e})=>e),"v-0f7fcb72":()=>o(()=>import("./mango.html.eb053000.js"),[]).then(({data:e})=>e),"v-0e6f43f0":()=>o(()=>import("./orao-vrf.html.5a7f506f.js"),[]).then(({data:e})=>e),"v-d5fbe77e":()=>o(()=>import("./pyth.html.942db8fe.js"),[]).then(({data:e})=>e),"v-0aace259":()=>o(()=>import("./react-native.html.b008ee51.js"),[]).then(({data:e})=>e),"v-ca072408":()=>o(()=>import("./serum.html.4533f845.js"),[]).then(({data:e})=>e),"v-8538eafe":()=>o(()=>import("./strata.html.214ef0ec.js"),[]).then(({data:e})=>e),"v-5404867c":()=>o(()=>import("./switchboard.html.989260ce.js"),[]).then(({data:e})=>e),"v-d5286e92":()=>o(()=>import("./web3auth.html.42e90246.js"),[]).then(({data:e})=>e),"v-2d09cebe":()=>o(()=>import("./accounts.html.1c2ce3f3.js"),[]).then(({data:e})=>e),"v-9ce8299a":()=>o(()=>import("./basic-transactions.html.3e9e6a63.js"),[]).then(({data:e})=>e),"v-4ec78794":()=>o(()=>import("./keypairs-and-wallets.html.7c422ff4.js"),[]).then(({data:e})=>e),"v-32949b1c":()=>o(()=>import("./local-development.html.f5643536.js"),[]).then(({data:e})=>e),"v-01539798":()=>o(()=>import("./name-service.html.326a6c13.js"),[]).then(({data:e})=>e),"v-6bf79020":()=>o(()=>import("./nfts.html.d679a608.js"),[]).then(({data:e})=>e),"v-0e8f1e28":()=>o(()=>import("./offline-transactions.html.d4e0be3d.js"),[]).then(({data:e})=>e),"v-3975cfb8":()=>o(()=>import("./programs.html.11032af6.js"),[]).then(({data:e})=>e),"v-7cf087d4":()=>o(()=>import("./staking.html.9da955fb.js"),[]).then(({data:e})=>e),"v-4520fd52":()=>o(()=>import("./token.html.7f6e6e11.js"),[]).then(({data:e})=>e),"v-08458c16":()=>o(()=>import("./accounts.html.fab56f07.js"),[]).then(({data:e})=>e),"v-79377c96":()=>o(()=>import("./pdas.html.4a946dac.js"),[]).then(({data:e})=>e),"v-4bd7f10c":()=>o(()=>import("./programs.html.d01e378b.js"),[]).then(({data:e})=>e),"v-314308e6":()=>o(()=>import("./transactions.html.cfd147cc.js"),[]).then(({data:e})=>e),"v-389f60e0":()=>o(()=>import("./installation.html.5338573c.js"),[]).then(({data:e})=>e),"v-471a2192":()=>o(()=>import("./account-maps.html.5696ae7f.js"),[]).then(({data:e})=>e),"v-7642d244":()=>o(()=>import("./data-migration.html.86082ff9.js"),[]).then(({data:e})=>e),"v-6c0a22f0":()=>o(()=>import("./debugging-solana-programs.html.ede954b0.js"),[]).then(({data:e})=>e),"v-35856562":()=>o(()=>import("./feature-parity-testing.html.b2696a90.js"),[]).then(({data:e})=>e),"v-3d8822fa":()=>o(()=>import("./get-program-accounts.html.94ffca18.js"),[]).then(({data:e})=>e),"v-44b75741":()=>o(()=>import("./retrying-transactions.html.51d3083a.js"),[]).then(({data:e})=>e),"v-6ad65459":()=>o(()=>import("./serialization.html.6a6635c1.js"),[]).then(({data:e})=>e),"v-3caeb514":()=>o(()=>import("./accounts.html.b91c3a6f.js"),[]).then(({data:e})=>e),"v-20a8d3e6":()=>o(()=>import("./basic-transactions.html.f7122c53.js"),[]).then(({data:e})=>e),"v-17bc77ae":()=>o(()=>import("./keypairs-and-wallets.html.87a50ba3.js"),[]).then(({data:e})=>e),"v-0a613142":()=>o(()=>import("./local-development.html.b97186da.js"),[]).then(({data:e})=>e),"v-1db05f27":()=>o(()=>import("./name-service.html.e0d6e448.js"),[]).then(({data:e})=>e),"v-6f8605e3":()=>o(()=>import("./nfts.html.f28f6d5c.js"),[]).then(({data:e})=>e),"v-2a14a61b":()=>o(()=>import("./offline-transactions.html.269432a1.js"),[]).then(({data:e})=>e),"v-e6ad27aa":()=>o(()=>import("./programs.html.96b262ce.js"),[]).then(({data:e})=>e),"v-8d23ddfe":()=>o(()=>import("./staking.html.76101920.js"),[]).then(({data:e})=>e),"v-4fd8edbf":()=>o(()=>import("./token.html.3affc20f.js"),[]).then(({data:e})=>e),"v-598bfdda":()=>o(()=>import("./accounts.html.c9e84ab5.js"),[]).then(({data:e})=>e),"v-410d47d3":()=>o(()=>import("./pdas.html.b3879735.js"),[]).then(({data:e})=>e),"v-2334b82a":()=>o(()=>import("./programs.html.23a73b36.js"),[]).then(({data:e})=>e),"v-1ee9ddf8":()=>o(()=>import("./transactions.html.ba8c17fa.js"),[]).then(({data:e})=>e),"v-4605d97e":()=>o(()=>import("./installation.html.3b279ba8.js"),[]).then(({data:e})=>e),"v-7e91df34":()=>o(()=>import("./account-maps.html.2bcb32db.js"),[]).then(({data:e})=>e),"v-05451800":()=>o(()=>import("./data-migration.html.9963dda2.js"),[]).then(({data:e})=>e),"v-0bb1c6e4":()=>o(()=>import("./debugging-solana-programs.html.43aa08db.js"),[]).then(({data:e})=>e),"v-5623fef8":()=>o(()=>import("./feature-parity-testing.html.d784a27d.js"),[]).then(({data:e})=>e),"v-0af4ea25":()=>o(()=>import("./get-program-accounts.html.1208b27a.js"),[]).then(({data:e})=>e),"v-521dcfdf":()=>o(()=>import("./retrying-transactions.html.31aa18c1.js"),[]).then(({data:e})=>e),"v-22564af7":()=>o(()=>import("./serialization.html.99337bc6.js"),[]).then(({data:e})=>e),"v-77103780":()=>o(()=>import("./versioned-transactions.html.f7668ac4.js"),[]).then(({data:e})=>e),"v-4571fbe6":()=>o(()=>import("./index.html.b1569f77.js"),[]).then(({data:e})=>e),"v-076ff0c2":()=>o(()=>import("./jupiter.html.078016c9.js"),[]).then(({data:e})=>e),"v-6cb34a86":()=>o(()=>import("./mango.html.5b4b5d2a.js"),[]).then(({data:e})=>e),"v-c8a72676":()=>o(()=>import("./orao-vrf.html.5de73c75.js"),[]).then(({data:e})=>e),"v-6976e796":()=>o(()=>import("./pyth.html.803ad906.js"),[]).then(({data:e})=>e),"v-1e60cea4":()=>o(()=>import("./react-native.html.ee4bb358.js"),[]).then(({data:e})=>e),"v-5522fd47":()=>o(()=>import("./serum.html.247b2421.js"),[]).then(({data:e})=>e),"v-480ee496":()=>o(()=>import("./strata.html.8182409d.js"),[]).then(({data:e})=>e),"v-139f3066":()=>o(()=>import("./switchboard.html.7c5ce918.js"),[]).then(({data:e})=>e),"v-22a8f18c":()=>o(()=>import("./web3auth.html.4e98a109.js"),[]).then(({data:e})=>e),"v-742672b6":()=>o(()=>import("./accounts.html.d07565e6.js"),[]).then(({data:e})=>e),"v-7fdd21f0":()=>o(()=>import("./basic-transactions.html.b8e697ee.js"),[]).then(({data:e})=>e),"v-5bd01ecb":()=>o(()=>import("./keypairs-and-wallets.html.8d42bf89.js"),[]).then(({data:e})=>e),"v-0835dffd":()=>o(()=>import("./local-development.html.c3972821.js"),[]).then(({data:e})=>e),"v-31ec7bc9":()=>o(()=>import("./name-service.html.b1fdc398.js"),[]).then(({data:e})=>e),"v-3331e485":()=>o(()=>import("./nfts.html.965a9b0c.js"),[]).then(({data:e})=>e),"v-dc79fe86":()=>o(()=>import("./offline-transactions.html.0ba69adc.js"),[]).then(({data:e})=>e),"v-77bdac66":()=>o(()=>import("./programs.html.f54b94ed.js"),[]).then(({data:e})=>e),"v-3717171f":()=>o(()=>import("./staking.html.8fb2ba56.js"),[]).then(({data:e})=>e),"v-01a8e35d":()=>o(()=>import("./token.html.a4239a10.js"),[]).then(({data:e})=>e),"v-da3cf63c":()=>o(()=>import("./accounts.html.79c0ca0e.js"),[]).then(({data:e})=>e),"v-0bf50b22":()=>o(()=>import("./pdas.html.27a51730.js"),[]).then(({data:e})=>e),"v-3a47880e":()=>o(()=>import("./programs.html.740744ad.js"),[]).then(({data:e})=>e),"v-73c3d55a":()=>o(()=>import("./transactions.html.263aeafa.js"),[]).then(({data:e})=>e),"v-02e9060d":()=>o(()=>import("./installation.html.447c9172.js"),[]).then(({data:e})=>e),"v-10a285c5":()=>o(()=>import("./account-maps.html.f4daf1b2.js"),[]).then(({data:e})=>e),"v-4ddeba51":()=>o(()=>import("./data-migration.html.db91eb39.js"),[]).then(({data:e})=>e),"v-0173699d":()=>o(()=>import("./debugging-solana-programs.html.02363b40.js"),[]).then(({data:e})=>e),"v-971f3456":()=>o(()=>import("./feature-parity-testing.html.abd7566e.js"),[]).then(({data:e})=>e),"v-307b2094":()=>o(()=>import("./get-program-accounts.html.d8ef5734.js"),[]).then(({data:e})=>e),"v-0f00fc6e":()=>o(()=>import("./retrying-transactions.html.426f62c5.js"),[]).then(({data:e})=>e),"v-5b4b12f4":()=>o(()=>import("./serialization.html.baac0ece.js"),[]).then(({data:e})=>e),"v-0027c5f5":()=>o(()=>import("./index.html.f8103350.js"),[]).then(({data:e})=>e),"v-9117c75e":()=>o(()=>import("./jupiter.html.f110667b.js"),[]).then(({data:e})=>e),"v-d6e3c3e8":()=>o(()=>import("./mango.html.fb76dda7.js"),[]).then(({data:e})=>e),"v-2df1fe67":()=>o(()=>import("./pyth.html.b9e89a1a.js"),[]).then(({data:e})=>e),"v-10996302":()=>o(()=>import("./react-native.html.acc2f71a.js"),[]).then(({data:e})=>e),"v-200ac096":()=>o(()=>import("./serum.html.94e5f7c6.js"),[]).then(({data:e})=>e),"v-4bc0e9b2":()=>o(()=>import("./strata.html.d26ab919.js"),[]).then(({data:e})=>e),"v-6a0633dc":()=>o(()=>import("./switchboard.html.0b6a3741.js"),[]).then(({data:e})=>e),"v-732a37dd":()=>o(()=>import("./web3auth.html.3d6a8bb5.js"),[]).then(({data:e})=>e),"v-06371947":()=>o(()=>import("./accounts.html.cf985a2a.js"),[]).then(({data:e})=>e),"v-c0d8574e":()=>o(()=>import("./basic-transactions.html.710d7d5d.js"),[]).then(({data:e})=>e),"v-644e73dc":()=>o(()=>import("./keypairs-and-wallets.html.caac507d.js"),[]).then(({data:e})=>e),"v-75cde6e8":()=>o(()=>import("./local-development.html.7e1bd7bf.js"),[]).then(({data:e})=>e),"v-673571da":()=>o(()=>import("./name-service.html.e670bb57.js"),[]).then(({data:e})=>e),"v-931308d4":()=>o(()=>import("./nfts.html.61f329ef.js"),[]).then(({data:e})=>e),"v-cb7d5464":()=>o(()=>import("./offline-transactions.html.805d36b8.js"),[]).then(({data:e})=>e),"v-5631d05e":()=>o(()=>import("./programs.html.db98f647.js"),[]).then(({data:e})=>e),"v-01feda6e":()=>o(()=>import("./staking.html.e8c26eca.js"),[]).then(({data:e})=>e),"v-3211a328":()=>o(()=>import("./token.html.59c78a7f.js"),[]).then(({data:e})=>e),"v-179e82fe":()=>o(()=>import("./accounts.html.70ea6ada.js"),[]).then(({data:e})=>e),"v-52ffdf92":()=>o(()=>import("./cpi.html.a071110c.js"),[]).then(({data:e})=>e),"v-fd851184":()=>o(()=>import("./pdas.html.1bf322c2.js"),[]).then(({data:e})=>e),"v-67993a15":()=>o(()=>import("./programs.html.98e92214.js"),[]).then(({data:e})=>e),"v-ec92b522":()=>o(()=>import("./transactions.html.aceea138.js"),[]).then(({data:e})=>e),"v-429dff29":()=>o(()=>import("./installation.html.2e4550cf.js"),[]).then(({data:e})=>e),"v-44679d29":()=>o(()=>import("./account-maps.html.bdfb893c.js"),[]).then(({data:e})=>e),"v-b688ee96":()=>o(()=>import("./data-migration.html.6e4730c8.js"),[]).then(({data:e})=>e),"v-04e3168e":()=>o(()=>import("./debugging-solana-programs.html.73a43e11.js"),[]).then(({data:e})=>e),"v-6b5a9039":()=>o(()=>import("./feature-parity-testing.html.e7b6289c.js"),[]).then(({data:e})=>e),"v-d18839cc":()=>o(()=>import("./get-program-accounts.html.bc5b3f33.js"),[]).then(({data:e})=>e),"v-4eb5f58a":()=>o(()=>import("./retrying-transactions.html.1c6a3f05.js"),[]).then(({data:e})=>e),"v-17384ba2":()=>o(()=>import("./serialization.html.0fd086ee.js"),[]).then(({data:e})=>e),"v-0d7cc735":()=>o(()=>import("./versioned-transactions.html.cb88ab6b.js"),[]).then(({data:e})=>e),"v-57b135de":()=>o(()=>import("./index.html.598b0205.js"),[]).then(({data:e})=>e),"v-075c1d26":()=>o(()=>import("./jupiter.html.48042b94.js"),[]).then(({data:e})=>e),"v-09d68a28":()=>o(()=>import("./mango.html.eed1fdf5.js"),[]).then(({data:e})=>e),"v-430a817a":()=>o(()=>import("./orao-vrf.html.3832a801.js"),[]).then(({data:e})=>e),"v-83c4c26a":()=>o(()=>import("./pyth.html.88e1b3e3.js"),[]).then(({data:e})=>e),"v-460b6a3a":()=>o(()=>import("./react-native.html.d0423031.js"),[]).then(({data:e})=>e),"v-d559a69c":()=>o(()=>import("./serum.html.80ffe6cc.js"),[]).then(({data:e})=>e),"v-0de4a28b":()=>o(()=>import("./strata.html.05d5fe56.js"),[]).then(({data:e})=>e),"v-9907ca10":()=>o(()=>import("./switchboard.html.9949baf8.js"),[]).then(({data:e})=>e),"v-6bf1f37e":()=>o(()=>import("./web3auth.html.b5da3c2e.js"),[]).then(({data:e})=>e),"v-39fc30ab":()=>o(()=>import("./accounts.html.705daa54.js"),[]).then(({data:e})=>e),"v-567dfebd":()=>o(()=>import("./basic-transactions.html.e4233694.js"),[]).then(({data:e})=>e),"v-09579540":()=>o(()=>import("./keypairs-and-wallets.html.4fa11b3e.js"),[]).then(({data:e})=>e),"v-04ce05a8":()=>o(()=>import("./local-development.html.2a116d81.js"),[]).then(({data:e})=>e),"v-7a18373e":()=>o(()=>import("./name-service.html.65503a5f.js"),[]).then(({data:e})=>e),"v-6d16e4fa":()=>o(()=>import("./nfts.html.8f57b7b1.js"),[]).then(({data:e})=>e),"v-3f4a7732":()=>o(()=>import("./offline-transactions.html.1d7f75c0.js"),[]).then(({data:e})=>e),"v-ec12307c":()=>o(()=>import("./programs.html.6e6eaba0.js"),[]).then(({data:e})=>e),"v-7747468a":()=>o(()=>import("./staking.html.0e9ae4bd.js"),[]).then(({data:e})=>e),"v-0463f188":()=>o(()=>import("./token.html.abb20884.js"),[]).then(({data:e})=>e),"v-52cd49a4":()=>o(()=>import("./accounts.html.8e89eb52.js"),[]).then(({data:e})=>e),"v-4a4be76e":()=>o(()=>import("./pdas.html.360db77f.js"),[]).then(({data:e})=>e),"v-26941245":()=>o(()=>import("./programs.html.12722776.js"),[]).then(({data:e})=>e),"v-2229e59f":()=>o(()=>import("./transactions.html.4904b5fe.js"),[]).then(({data:e})=>e),"v-e97c194e":()=>o(()=>import("./installation.html.9dc89678.js"),[]).then(({data:e})=>e),"v-c5b19a0e":()=>o(()=>import("./account-maps.html.d79562dd.js"),[]).then(({data:e})=>e),"v-68262af6":()=>o(()=>import("./data-migration.html.cd8a5967.js"),[]).then(({data:e})=>e),"v-a4865e2e":()=>o(()=>import("./debugging-solana-programs.html.6d280979.js"),[]).then(({data:e})=>e),"v-37352209":()=>o(()=>import("./feature-parity-testing.html.ec539d69.js"),[]).then(({data:e})=>e),"v-0d30a8ea":()=>o(()=>import("./get-program-accounts.html.dfc1f9ed.js"),[]).then(({data:e})=>e),"v-d14c2c8c":()=>o(()=>import("./retrying-transactions.html.9ed62c6f.js"),[]).then(({data:e})=>e),"v-5329205c":()=>o(()=>import("./serialization.html.4b397ef0.js"),[]).then(({data:e})=>e),"v-da88730a":()=>o(()=>import("./accounts.html.ff5e6a4d.js"),[]).then(({data:e})=>e),"v-2258908d":()=>o(()=>import("./basic-transactions.html.22d5c3fa.js"),[]).then(({data:e})=>e),"v-48d4f310":()=>o(()=>import("./keypairs-and-wallets.html.96505086.js"),[]).then(({data:e})=>e),"v-4d71f9d8":()=>o(()=>import("./local-development.html.0eff045a.js"),[]).then(({data:e})=>e),"v-cb0f35e4":()=>o(()=>import("./name-service.html.d6069fdf.js"),[]).then(({data:e})=>e),"v-b3ac3a6c":()=>o(()=>import("./nfts.html.cf97bb6d.js"),[]).then(({data:e})=>e),"v-7ec7d502":()=>o(()=>import("./offline-transactions.html.cff454eb.js"),[]).then(({data:e})=>e),"v-3a9304dc":()=>o(()=>import("./programs.html.6895a158.js"),[]).then(({data:e})=>e),"v-4055b6ba":()=>o(()=>import("./staking.html.ad2f2638.js"),[]).then(({data:e})=>e),"v-249ea490":()=>o(()=>import("./token.html.edd7bd6b.js"),[]).then(({data:e})=>e),"v-3f8c76bb":()=>o(()=>import("./accounts.html.9a24f48b.js"),[]).then(({data:e})=>e),"v-310cd17b":()=>o(()=>import("./pdas.html.8ac3fb57.js"),[]).then(({data:e})=>e),"v-e0f1a45c":()=>o(()=>import("./programs.html.ee69815a.js"),[]).then(({data:e})=>e),"v-5dda72ac":()=>o(()=>import("./transactions.html.a94c32b0.js"),[]).then(({data:e})=>e),"v-c5f91db4":()=>o(()=>import("./installation.html.04bddf91.js"),[]).then(({data:e})=>e),"v-e2f8eae8":()=>o(()=>import("./account-maps.html.54fde3f5.js"),[]).then(({data:e})=>e),"v-50dcad50":()=>o(()=>import("./data-migration.html.c9b6d0c5.js"),[]).then(({data:e})=>e),"v-387ebf94":()=>o(()=>import("./debugging-solana-programs.html.125832d7.js"),[]).then(({data:e})=>e),"v-5da35ddc":()=>o(()=>import("./feature-parity-testing.html.c3ce27d5.js"),[]).then(({data:e})=>e),"v-4791bd7d":()=>o(()=>import("./get-program-accounts.html.d60be8fc.js"),[]).then(({data:e})=>e),"v-adc930f2":()=>o(()=>import("./retrying-transactions.html.19b7816d.js"),[]).then(({data:e})=>e),"v-109a0a9f":()=>o(()=>import("./serialization.html.d3083af5.js"),[]).then(({data:e})=>e),"v-0074d650":()=>o(()=>import("./versioned-transactions.html.dc527468.js"),[]).then(({data:e})=>e),"v-18d9f78e":()=>o(()=>import("./index.html.39970545.js"),[]).then(({data:e})=>e),"v-14989f2c":()=>o(()=>import("./jupiter.html.193f6929.js"),[]).then(({data:e})=>e),"v-8cb43736":()=>o(()=>import("./mango.html.3a0b1927.js"),[]).then(({data:e})=>e),"v-67e8ee24":()=>o(()=>import("./pyth.html.c3ff410a.js"),[]).then(({data:e})=>e),"v-fe8d3bf4":()=>o(()=>import("./react-native.html.91ec52b0.js"),[]).then(({data:e})=>e),"v-452286ef":()=>o(()=>import("./serum.html.9e977ae7.js"),[]).then(({data:e})=>e),"v-58008fee":()=>o(()=>import("./strata.html.707b0e85.js"),[]).then(({data:e})=>e),"v-d087d916":()=>o(()=>import("./switchboard.html.0d636392.js"),[]).then(({data:e})=>e),"v-0645b238":()=>o(()=>import("./web3auth.html.1b987809.js"),[]).then(({data:e})=>e),"v-f7cfc3e4":()=>o(()=>import("./accounts.html.6a7a3655.js"),[]).then(({data:e})=>e),"v-48c6cc60":()=>o(()=>import("./basic-transactions.html.145d9f79.js"),[]).then(({data:e})=>e),"v-e6b8f3ba":()=>o(()=>import("./keypairs-and-wallets.html.06b48140.js"),[]).then(({data:e})=>e),"v-5f3377a5":()=>o(()=>import("./local-development.html.8d6577e9.js"),[]).then(({data:e})=>e),"v-4fe8bb21":()=>o(()=>import("./name-service.html.2caf8c15.js"),[]).then(({data:e})=>e),"v-00aefbdd":()=>o(()=>import("./nfts.html.d0725425.js"),[]).then(({data:e})=>e),"v-7ad32fd6":()=>o(()=>import("./offline-transactions.html.694e5a9c.js"),[]).then(({data:e})=>e),"v-57da55b6":()=>o(()=>import("./programs.html.39ac6b79.js"),[]).then(({data:e})=>e),"v-2716a0c7":()=>o(()=>import("./staking.html.6dbe22bd.js"),[]).then(({data:e})=>e),"v-386291f6":()=>o(()=>import("./token.html.997564bc.js"),[]).then(({data:e})=>e),"v-46a93876":()=>o(()=>import("./accounts.html.5a5d0844.js"),[]).then(({data:e})=>e),"v-5aefd385":()=>o(()=>import("./pdas.html.2b207b9f.js"),[]).then(({data:e})=>e),"v-2ca61adc":()=>o(()=>import("./programs.html.3d46bb1d.js"),[]).then(({data:e})=>e),"v-4847cab6":()=>o(()=>import("./transactions.html.ee5db7dc.js"),[]).then(({data:e})=>e),"v-bd0a22a0":()=>o(()=>import("./installation.html.f389c1e2.js"),[]).then(({data:e})=>e),"v-bdfe6c7c":()=>o(()=>import("./account-maps.html.c1ccf667.js"),[]).then(({data:e})=>e),"v-3fbbf30e":()=>o(()=>import("./data-migration.html.81a46ce7.js"),[]).then(({data:e})=>e),"v-846b6e80":()=>o(()=>import("./debugging-solana-programs.html.be9db9a6.js"),[]).then(({data:e})=>e),"v-2fc8dcdc":()=>o(()=>import("./feature-parity-testing.html.1da58904.js"),[]).then(({data:e})=>e),"v-aa61329a":()=>o(()=>import("./get-program-accounts.html.34a6b3c3.js"),[]).then(({data:e})=>e),"v-a4da35de":()=>o(()=>import("./retrying-transactions.html.ffc8835b.js"),[]).then(({data:e})=>e),"v-4dc4b229":()=>o(()=>import("./serialization.html.7c84274e.js"),[]).then(({data:e})=>e),"v-d2d54578":()=>o(()=>import("./accounts.html.dde6cff9.js"),[]).then(({data:e})=>e),"v-5981ffd4":()=>o(()=>import("./basic-transactions.html.598e40ad.js"),[]).then(({data:e})=>e),"v-59dda459":()=>o(()=>import("./keypairs-and-wallets.html.cc9959ad.js"),[]).then(({data:e})=>e),"v-63aaf52f":()=>o(()=>import("./local-development.html.61336a2a.js"),[]).then(({data:e})=>e),"v-56a76f57":()=>o(()=>import("./name-service.html.1a8fc34e.js"),[]).then(({data:e})=>e),"v-41e84613":()=>o(()=>import("./nfts.html.fdb7230c.js"),[]).then(({data:e})=>e),"v-e05ef36a":()=>o(()=>import("./offline-transactions.html.1b42c3a2.js"),[]).then(({data:e})=>e),"v-32dfd74a":()=>o(()=>import("./programs.html.23836cb0.js"),[]).then(({data:e})=>e),"v-50f9a2d1":()=>o(()=>import("./staking.html.cffbd136.js"),[]).then(({data:e})=>e),"v-6c8298e2":()=>o(()=>import("./token.html.1829a651.js"),[]).then(({data:e})=>e),"v-6a35b27a":()=>o(()=>import("./accounts.html.149df989.js"),[]).then(({data:e})=>e),"v-8e20768c":()=>o(()=>import("./pdas.html.eca9a894.js"),[]).then(({data:e})=>e),"v-8b9f2cde":()=>o(()=>import("./programs.html.fcfb4c07.js"),[]).then(({data:e})=>e),"v-55f1b6eb":()=>o(()=>import("./transactions.html.f33ee4e9.js"),[]).then(({data:e})=>e),"v-274abcb6":()=>o(()=>import("./installation.html.fd583852.js"),[]).then(({data:e})=>e),"v-02feff2d":()=>o(()=>import("./account-maps.html.2bc51567.js"),[]).then(({data:e})=>e),"v-1b0279b9":()=>o(()=>import("./data-migration.html.159d137d.js"),[]).then(({data:e})=>e),"v-5afd7935":()=>o(()=>import("./debugging-solana-programs.html.afe6a517.js"),[]).then(({data:e})=>e),"v-0d9b8586":()=>o(()=>import("./feature-parity-testing.html.270f9679.js"),[]).then(({data:e})=>e),"v-5263011e":()=>o(()=>import("./get-program-accounts.html.43b20beb.js"),[]).then(({data:e})=>e),"v-0f1acff4":()=>o(()=>import("./retrying-transactions.html.fdf6b1f8.js"),[]).then(({data:e})=>e),"v-2b8d2a1e":()=>o(()=>import("./serialization.html.b936ab13.js"),[]).then(({data:e})=>e),"v-35d91d8d":()=>o(()=>import("./index.html.aff3e832.js"),[]).then(({data:e})=>e),"v-10a6cfe9":()=>o(()=>import("./jupiter.html.bf3c7738.js"),[]).then(({data:e})=>e),"v-4188d7a4":()=>o(()=>import("./mango.html.6e60417f.js"),[]).then(({data:e})=>e),"v-5f249c62":()=>o(()=>import("./pyth.html.e78c490b.js"),[]).then(({data:e})=>e),"v-049919e7":()=>o(()=>import("./react-native.html.e5857799.js"),[]).then(({data:e})=>e),"v-65f50ba4":()=>o(()=>import("./serum.html.e7981cfb.js"),[]).then(({data:e})=>e),"v-6707f6e2":()=>o(()=>import("./strata.html.616b3643.js"),[]).then(({data:e})=>e),"v-85f54918":()=>o(()=>import("./switchboard.html.661b737d.js"),[]).then(({data:e})=>e),"v-404df745":()=>o(()=>import("./web3auth.html.daa80ae3.js"),[]).then(({data:e})=>e),"v-0ed8daa2":()=>o(()=>import("./accounts.html.928ccf41.js"),[]).then(({data:e})=>e),"v-3754a87e":()=>o(()=>import("./basic-transactions.html.81d4c6bc.js"),[]).then(({data:e})=>e),"v-7ff81144":()=>o(()=>import("./keypairs-and-wallets.html.f62ce6aa.js"),[]).then(({data:e})=>e),"v-a2eaafb8":()=>o(()=>import("./local-development.html.2abc6315.js"),[]).then(({data:e})=>e),"v-7a66f742":()=>o(()=>import("./name-service.html.625e197d.js"),[]).then(({data:e})=>e),"v-1b97e8fe":()=>o(()=>import("./nfts.html.595f8f64.js"),[]).then(({data:e})=>e),"v-942a1994":()=>o(()=>import("./offline-transactions.html.81a50c51.js"),[]).then(({data:e})=>e),"v-488e49c6":()=>o(()=>import("./programs.html.d21ae222.js"),[]).then(({data:e})=>e),"v-a20cd7f4":()=>o(()=>import("./staking.html.65c2cb9f.js"),[]).then(({data:e})=>e),"v-26036e04":()=>o(()=>import("./token.html.e135cbcd.js"),[]).then(({data:e})=>e),"v-43987c75":()=>o(()=>import("./accounts.html.34134782.js"),[]).then(({data:e})=>e),"v-3c24c435":()=>o(()=>import("./pdas.html.ea02eb75.js"),[]).then(({data:e})=>e),"v-d8d998e8":()=>o(()=>import("./programs.html.34dde9fb.js"),[]).then(({data:e})=>e),"v-66cde934":()=>o(()=>import("./transactions.html.63c9ce66.js"),[]).then(({data:e})=>e),"v-567ec360":()=>o(()=>import("./installation.html.91886c17.js"),[]).then(({data:e})=>e),"v-3706649a":()=>o(()=>import("./404.html.f166316b.js"),[]).then(({data:e})=>e)},yc=Ee(dm),kc=_i({key:"",path:"",title:"",lang:"",frontmatter:{},excerpt:"",headers:[]}),ut=Ee(kc),rl=()=>ut;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updatePageData=e=>{yc.value[e.key]=()=>Promise.resolve(e),e.key===ut.value.key&&(ut.value=e)});const Ec=Symbol(""),hm=()=>{const e=Re(Ec);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},wc=Symbol(""),gm=()=>{const e=Re(wc);if(!e)throw new Error("usePageHead() is called without provider.");return e},mm=Symbol(""),Pc=Symbol(""),Tc=()=>{const e=Re(Pc);if(!e)throw new Error("usePageLang() is called without provider.");return e},Vi=Symbol(""),Fi=()=>{const e=Re(Vi);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},vm={base:"/",lang:"en-US",title:"Solana Cookbook",description:"",head:[["link",{rel:"icon",href:"/solana_cookbook_lightmode.svg"}],["script",{"data-domain":"solanacookbook.com",src:"https://plausible.io/js/plausible.js"}]],locales:{"/":{lang:"en-US",title:"Solana Cookbook"},"/zh/":{lang:"zh-CN",title:"Solana\u79D8\u7C4D"},"/es/":{lang:"es",title:"Solana Cookbook"},"/de/":{lang:"de-DE",title:"Solana Cookbook"},"/vi/":{lang:"vi-VN",title:"To\xE0n t\u1EADp Solana"},"/th/":{lang:"th-TH",title:"\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D Solana"},"/fr/":{lang:"fr-FR",title:"Solana Cookbook"},"/id/":{lang:"id-ID",title:"Buku Panduan Solana"},"/kr/":{lang:"kr-KR",title:"Solana Cookbook"},"/tr/":{lang:"tr-TR",title:"Solana Cookbook"},"/ja/":{lang:"ja-JP",title:"Solana Cookbook"}}},Et=Ee(vm),Ac=()=>Et;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updateSiteData=e=>{Et.value=e});const Oc=Symbol(""),W_=()=>{const e=Re(Oc);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},pm=Symbol(""),Ni=e=>{let t;e.pageKey?t=e.pageKey:t=rl().value.key;const n=bc[t];return n?ee(n):ee("div","404 Not Found")};Ni.displayName="Content";Ni.props={pageKey:{type:String,required:!1}};const fm={"404":h(()=>o(()=>import("./404.d06afe94.js"),[])),Layout:h(()=>o(()=>import("./Layout.5fd86386.js"),[]))},_m=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),bm=e=>{const t=new Set,n=[];return e.forEach(l=>{const r=_m(l);t.has(r)||(t.add(r),n.push(l))}),n},ym=e=>/^(https?:)?\/\//.test(e),$_=e=>/^mailto:/.test(e),G_=e=>/^tel:/.test(e),Lc=e=>Object.prototype.toString.call(e)==="[object Object]",km=e=>e.replace(/\/$/,""),Em=e=>e.replace(/^\//,""),Sc=(e,t)=>{const n=Object.keys(e).sort((l,r)=>{const i=r.split("/").length-l.split("/").length;return i!==0?i:r.length-l.length});for(const l of n)if(t.startsWith(l))return l;return"/"},wm=(e,t="/")=>e.replace(/^(https?:)?\/\/[^/]*/,"").replace(new RegExp(`^${t}`),"/"),Ba=ze({name:"Vuepress",setup(){const e=rl(),t=_e(()=>{let n;if(e.value.path){const l=e.value.frontmatter.layout;be(l)?n=l:n="Layout"}else n="404";return fm[n]||gh(n,!1)});return()=>ee(t.value)}}),Lt=e=>e,Mi=e=>e,Pm=e=>ym(e)?e:`${Ac().value.base}${Em(e)}`,Vt=_n({resolvePageData:async e=>{const t=yc.value[e],n=await(t==null?void 0:t());return n!=null?n:kc},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const l=be(t.description)?t.description:n.description,r=[...te(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:l}]];return bm(r)},resolvePageHeadTitle:(e,t)=>`${e.title?`${e.title} | `:""}${t.title}`,resolvePageLang:e=>e.lang||"en",resolveRouteLocale:(e,t)=>Sc(e,t),resolveSiteLocaleData:(e,t)=>xe(xe({},e),e.locales[t])});const Tm=ee("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[ee("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),ee("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),Am=ze({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=Fi(),n=_e(()=>{var l;return(l=e.locales[t.value])!==null&&l!==void 0?l:{openInNewWindow:"open in new window"}});return()=>ee("span",[Tm,ee("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}}),Om={"/":{openInNewWindow:"open in new window"},"/zh/":{openInNewWindow:"open in new window"},"/es/":{openInNewWindow:"open in new window"},"/de/":{openInNewWindow:"open in new window"},"/vi/":{openInNewWindow:"open in new window"},"/th/":{openInNewWindow:"open in new window"},"/fr/":{openInNewWindow:"open in new window"},"/id/":{openInNewWindow:"open in new window"},"/tr/":{openInNewWindow:"open in new window"},"/kr/":{openInNewWindow:"open in new window"},"/ja/":{openInNewWindow:"open in new window"}};var Lm=Lt(({app:e})=>{e.component("ExternalLinkIcon",ee(Am,{locales:Om}))});/*! medium-zoom 1.0.6 | MIT License | https://github.com/francoischalifour/medium-zoom */var Ft=Object.assign||function(e){for(var t=1;tsc?Symbol(e):"_vr_"+e,ig=bn("rvlm"),Oa=bn("rvd"),rr=bn("r"),Ci=bn("rl"),Ur=bn("rvl"),tn=typeof window!="undefined";function ag(e){return e.__esModule||sc&&e[Symbol.toStringTag]==="Module"}const pe=Object.assign;function _r(e,t){const n={};for(const l in t){const r=t[l];n[l]=Array.isArray(r)?r.map(e):e(r)}return n}const Fn=()=>{},og=/\/$/,sg=e=>e.replace(og,"");function br(e,t,n="/"){let l,r={},i="",a="";const s=t.indexOf("?"),c=t.indexOf("#",s>-1?s:0);return s>-1&&(l=t.slice(0,s),i=t.slice(s+1,c>-1?c:t.length),r=e(i)),c>-1&&(l=l||t.slice(0,c),a=t.slice(c,t.length)),l=hg(l!=null?l:t,n),{fullPath:l+(i&&"?")+i+a,path:l,query:r,hash:a}}function cg(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function La(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ug(e,t,n){const l=t.matched.length-1,r=n.matched.length-1;return l>-1&&l===r&&gn(t.matched[l],n.matched[r])&&cc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function gn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!dg(e[n],t[n]))return!1;return!0}function dg(e,t){return Array.isArray(e)?Sa(e,t):Array.isArray(t)?Sa(t,e):e===t}function Sa(e,t){return Array.isArray(t)?e.length===t.length&&e.every((n,l)=>n===t[l]):e.length===1&&e[0]===t}function hg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),l=e.split("/");let r=n.length-1,i,a;for(i=0;i({left:window.pageXOffset,top:window.pageYOffset});function fg(e){let t;if("el"in e){const n=e.el,l=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?l?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=pg(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Da(e,t){return(history.state?history.state.position-t:-1)+e}const Kr=new Map;function _g(e,t){Kr.set(e,t)}function bg(e){const t=Kr.get(e);return Kr.delete(e),t}let yg=()=>location.protocol+"//"+location.host;function uc(e,t){const{pathname:n,search:l,hash:r}=t,i=e.indexOf("#");if(i>-1){let s=r.includes(e.slice(i))?e.slice(i).length:1,c=r.slice(s);return c[0]!=="/"&&(c="/"+c),La(c,"")}return La(n,e)+l+r}function kg(e,t,n,l){let r=[],i=[],a=null;const s=({state:g})=>{const b=uc(e,location),m=n.value,_=t.value;let f=0;if(g){if(n.value=b,t.value=g,a&&a===m){a=null;return}f=_?g.position-_.position:0}else l(b);r.forEach(y=>{y(n.value,m,{delta:f,type:$n.pop,direction:f?f>0?Nn.forward:Nn.back:Nn.unknown})})};function c(){a=n.value}function u(g){r.push(g);const b=()=>{const m=r.indexOf(g);m>-1&&r.splice(m,1)};return i.push(b),b}function d(){const{history:g}=window;!g.state||g.replaceState(pe({},g.state,{scroll:ir()}),"")}function v(){for(const g of i)g();i=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",d)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",d),{pauseListeners:c,listen:u,destroy:v}}function Ra(e,t,n,l=!1,r=!1){return{back:e,current:t,forward:n,replaced:l,position:window.history.length,scroll:r?ir():null}}function Eg(e){const{history:t,location:n}=window,l={value:uc(e,n)},r={value:t.state};r.value||i(l.value,{back:null,current:l.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,u,d){const v=e.indexOf("#"),g=v>-1?(n.host&&document.querySelector("base")?e:e.slice(v))+c:yg()+e+c;try{t[d?"replaceState":"pushState"](u,"",g),r.value=u}catch(b){console.error(b),n[d?"replace":"assign"](g)}}function a(c,u){const d=pe({},t.state,Ra(r.value.back,c,r.value.forward,!0),u,{position:r.value.position});i(c,d,!0),l.value=c}function s(c,u){const d=pe({},r.value,t.state,{forward:c,scroll:ir()});i(d.current,d,!0);const v=pe({},Ra(l.value,c,null),{position:d.position+1},u);i(c,v,!1),l.value=c}return{location:l,state:r,push:s,replace:a}}function wg(e){e=gg(e);const t=Eg(e),n=kg(e,t.state,t.location,t.replace);function l(i,a=!0){a||n.pauseListeners(),history.go(i)}const r=pe({location:"",base:e,go:l,createHref:vg.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function Pg(e){return typeof e=="string"||e&&typeof e=="object"}function dc(e){return typeof e=="string"||typeof e=="symbol"}const st={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},hc=bn("nf");var Ia;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Ia||(Ia={}));function mn(e,t){return pe(new Error,{type:e,[hc]:!0},t)}function It(e,t){return e instanceof Error&&hc in e&&(t==null||!!(e.type&t))}const Ca="[^/]+?",Tg={sensitive:!1,strict:!1,start:!0,end:!0},Ag=/[.+*?^${}()[\]/\\]/g;function Og(e,t){const n=pe({},Tg,t),l=[];let r=n.start?"^":"";const i=[];for(const u of e){const d=u.length?[]:[90];n.strict&&!u.length&&(r+="/");for(let v=0;vt.length?t.length===1&&t[0]===40+40?1:-1:0}function Sg(e,t){let n=0;const l=e.score,r=t.score;for(;n1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:d,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function g(){u+=c}for(;s{a(w)}:Fn}function a(d){if(dc(d)){const v=l.get(d);v&&(l.delete(d),n.splice(n.indexOf(v),1),v.children.forEach(a),v.alias.forEach(a))}else{const v=n.indexOf(d);v>-1&&(n.splice(v,1),d.record.name&&l.delete(d.record.name),d.children.forEach(a),d.alias.forEach(a))}}function s(){return n}function c(d){let v=0;for(;v=0;)v++;n.splice(v,0,d),d.record.name&&!xa(d)&&l.set(d.record.name,d)}function u(d,v){let g,b={},m,_;if("name"in d&&d.name){if(g=l.get(d.name),!g)throw mn(1,{location:d});_=g.record.name,b=pe(jg(v.params,g.keys.filter(w=>!w.optional).map(w=>w.name)),d.params),m=g.stringify(b)}else if("path"in d)m=d.path,g=n.find(w=>w.re.test(m)),g&&(b=g.parse(m),_=g.record.name);else{if(g=v.name?l.get(v.name):n.find(w=>w.re.test(v.path)),!g)throw mn(1,{location:d,currentLocation:v});_=g.record.name,b=pe({},v.params,d.params),m=g.stringify(b)}const f=[];let y=g;for(;y;)f.unshift(y.record),y=y.parent;return{name:_,path:m,params:b,matched:f,meta:Ng(f)}}return e.forEach(d=>i(d)),{addRoute:i,resolve:u,removeRoute:a,getRoutes:s,getRecordMatcher:r}}function jg(e,t){const n={};for(const l of t)l in e&&(n[l]=e[l]);return n}function Vg(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Fg(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||{}:{default:e.component}}}function Fg(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const l in e.components)t[l]=typeof n=="boolean"?n:n[l];return t}function xa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ng(e){return e.reduce((t,n)=>pe(t,n.meta),{})}function ja(e,t){const n={};for(const l in e)n[l]=l in t?t[l]:e[l];return n}const gc=/#/g,Mg=/&/g,zg=/\//g,Hg=/=/g,Bg=/\?/g,mc=/\+/g,Ug=/%5B/g,Kg=/%5D/g,vc=/%5E/g,qg=/%60/g,pc=/%7B/g,Wg=/%7C/g,fc=/%7D/g,$g=/%20/g;function xi(e){return encodeURI(""+e).replace(Wg,"|").replace(Ug,"[").replace(Kg,"]")}function Gg(e){return xi(e).replace(pc,"{").replace(fc,"}").replace(vc,"^")}function qr(e){return xi(e).replace(mc,"%2B").replace($g,"+").replace(gc,"%23").replace(Mg,"%26").replace(qg,"`").replace(pc,"{").replace(fc,"}").replace(vc,"^")}function Jg(e){return qr(e).replace(Hg,"%3D")}function Yg(e){return xi(e).replace(gc,"%23").replace(Bg,"%3F")}function Qg(e){return e==null?"":Yg(e).replace(zg,"%2F")}function zl(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function Zg(e){const t={};if(e===""||e==="?")return t;const l=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ri&&qr(i)):[l&&qr(l)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Xg(e){const t={};for(const n in e){const l=e[n];l!==void 0&&(t[n]=Array.isArray(l)?l.map(r=>r==null?null:""+r):l==null?l:""+l)}return t}function wn(){let e=[];function t(l){return e.push(l),()=>{const r=e.indexOf(l);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function kt(e,t,n,l,r){const i=l&&(l.enterCallbacks[r]=l.enterCallbacks[r]||[]);return()=>new Promise((a,s)=>{const c=v=>{v===!1?s(mn(4,{from:n,to:t})):v instanceof Error?s(v):Pg(v)?s(mn(2,{from:t,to:v})):(i&&l.enterCallbacks[r]===i&&typeof v=="function"&&i.push(v),a())},u=e.call(l&&l.instances[r],t,n,c);let d=Promise.resolve(u);e.length<3&&(d=d.then(c)),d.catch(v=>s(v))})}function yr(e,t,n,l){const r=[];for(const i of e)for(const a in i.components){let s=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(em(s)){const u=(s.__vccOpts||s)[t];u&&r.push(kt(u,n,l,i,a))}else{let c=s();r.push(()=>c.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${i.path}"`));const d=ag(u)?u.default:u;i.components[a]=d;const g=(d.__vccOpts||d)[t];return g&&kt(g,n,l,i,a)()}))}}return r}function em(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Fa(e){const t=Re(rr),n=Re(Ci),l=_e(()=>t.resolve(Bt(e.to))),r=_e(()=>{const{matched:c}=l.value,{length:u}=c,d=c[u-1],v=n.matched;if(!d||!v.length)return-1;const g=v.findIndex(gn.bind(null,d));if(g>-1)return g;const b=Na(c[u-2]);return u>1&&Na(d)===b&&v[v.length-1].path!==b?v.findIndex(gn.bind(null,c[u-2])):g}),i=_e(()=>r.value>-1&&rm(n.params,l.value.params)),a=_e(()=>r.value>-1&&r.value===n.matched.length-1&&cc(n.params,l.value.params));function s(c={}){return lm(c)?t[Bt(e.replace)?"replace":"push"](Bt(e.to)).catch(Fn):Promise.resolve()}return{route:l,href:_e(()=>l.value.href),isActive:i,isExactActive:a,navigate:s}}const tm=ze({name:"RouterLink",props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Fa,setup(e,{slots:t}){const n=_n(Fa(e)),{options:l}=Re(rr),r=_e(()=>({[Ma(e.activeClass,l.linkActiveClass,"router-link-active")]:n.isActive,[Ma(e.exactActiveClass,l.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&t.default(n);return e.custom?i:ee("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),nm=tm;function lm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function rm(e,t){for(const n in t){const l=t[n],r=e[n];if(typeof l=="string"){if(l!==r)return!1}else if(!Array.isArray(r)||r.length!==l.length||l.some((i,a)=>i!==r[a]))return!1}return!0}function Na(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ma=(e,t,n)=>e!=null?e:t!=null?t:n,im=ze({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},setup(e,{attrs:t,slots:n}){const l=Re(Ur),r=_e(()=>e.route||l.value),i=Re(Oa,0),a=_e(()=>r.value.matched[i]);Ut(Oa,i+1),Ut(ig,a),Ut(Ur,r);const s=Ee();return et(()=>[s.value,a.value,e.name],([c,u,d],[v,g,b])=>{u&&(u.instances[d]=c,g&&g!==u&&c&&c===v&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!gn(u,g)||!v)&&(u.enterCallbacks[d]||[]).forEach(m=>m(c))},{flush:"post"}),()=>{const c=r.value,u=a.value,d=u&&u.components[e.name],v=e.name;if(!d)return za(n.default,{Component:d,route:c});const g=u.props[e.name],b=g?g===!0?c.params:typeof g=="function"?g(c):g:null,_=ee(d,pe({},b,t,{onVnodeUnmounted:f=>{f.component.isUnmounted&&(u.instances[v]=null)},ref:s}));return za(n.default,{Component:_,route:c})||_}}});function za(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const _c=im;function am(e){const t=xg(e.routes,e),n=e.parseQuery||Zg,l=e.stringifyQuery||Va,r=e.history,i=wn(),a=wn(),s=wn(),c=Os(st);let u=st;tn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=_r.bind(null,I=>""+I),v=_r.bind(null,Qg),g=_r.bind(null,zl);function b(I,U){let N,q;return dc(I)?(N=t.getRecordMatcher(I),q=U):q=I,t.addRoute(q,N)}function m(I){const U=t.getRecordMatcher(I);U&&t.removeRoute(U)}function _(){return t.getRoutes().map(I=>I.record)}function f(I){return!!t.getRecordMatcher(I)}function y(I,U){if(U=pe({},U||c.value),typeof I=="string"){const ne=br(n,I,U.path),p=t.resolve({path:ne.path},U),k=r.createHref(ne.fullPath);return pe(ne,p,{params:g(p.params),hash:zl(ne.hash),redirectedFrom:void 0,href:k})}let N;if("path"in I)N=pe({},I,{path:br(n,I.path,U.path).path});else{const ne=pe({},I.params);for(const p in ne)ne[p]==null&&delete ne[p];N=pe({},I,{params:v(I.params)}),U.params=v(U.params)}const q=t.resolve(N,U),ue=I.hash||"";q.params=d(g(q.params));const me=cg(l,pe({},I,{hash:Gg(ue),path:q.path})),ie=r.createHref(me);return pe({fullPath:me,hash:ue,query:l===Va?Xg(I.query):I.query||{}},q,{redirectedFrom:void 0,href:ie})}function w(I){return typeof I=="string"?br(n,I,c.value.path):pe({},I)}function P(I,U){if(u!==I)return mn(8,{from:U,to:I})}function A(I){return S(I)}function D(I){return A(pe(w(I),{replace:!0}))}function F(I){const U=I.matched[I.matched.length-1];if(U&&U.redirect){const{redirect:N}=U;let q=typeof N=="function"?N(I):N;return typeof q=="string"&&(q=q.includes("?")||q.includes("#")?q=w(q):{path:q},q.params={}),pe({query:I.query,hash:I.hash,params:I.params},q)}}function S(I,U){const N=u=y(I),q=c.value,ue=I.state,me=I.force,ie=I.replace===!0,ne=F(N);if(ne)return S(pe(w(ne),{state:ue,force:me,replace:ie}),U||N);const p=N;p.redirectedFrom=U;let k;return!me&&ug(l,q,N)&&(k=mn(16,{to:p,from:q}),Ae(q,q,!0,!1)),(k?Promise.resolve(k):K(p,q)).catch(T=>It(T)?T:le(T,p,q)).then(T=>{if(T){if(It(T,2))return S(pe(w(T.to),{state:ue,force:me,replace:ie}),U||p)}else T=W(p,q,!0,ie,ue);return B(p,q,T),T})}function O(I,U){const N=P(I,U);return N?Promise.reject(N):Promise.resolve()}function K(I,U){let N;const[q,ue,me]=om(I,U);N=yr(q.reverse(),"beforeRouteLeave",I,U);for(const ne of q)ne.leaveGuards.forEach(p=>{N.push(kt(p,I,U))});const ie=O.bind(null,I,U);return N.push(ie),Jt(N).then(()=>{N=[];for(const ne of i.list())N.push(kt(ne,I,U));return N.push(ie),Jt(N)}).then(()=>{N=yr(ue,"beforeRouteUpdate",I,U);for(const ne of ue)ne.updateGuards.forEach(p=>{N.push(kt(p,I,U))});return N.push(ie),Jt(N)}).then(()=>{N=[];for(const ne of I.matched)if(ne.beforeEnter&&!U.matched.includes(ne))if(Array.isArray(ne.beforeEnter))for(const p of ne.beforeEnter)N.push(kt(p,I,U));else N.push(kt(ne.beforeEnter,I,U));return N.push(ie),Jt(N)}).then(()=>(I.matched.forEach(ne=>ne.enterCallbacks={}),N=yr(me,"beforeRouteEnter",I,U),N.push(ie),Jt(N))).then(()=>{N=[];for(const ne of a.list())N.push(kt(ne,I,U));return N.push(ie),Jt(N)}).catch(ne=>It(ne,8)?ne:Promise.reject(ne))}function B(I,U,N){for(const q of s.list())q(I,U,N)}function W(I,U,N,q,ue){const me=P(I,U);if(me)return me;const ie=U===st,ne=tn?history.state:{};N&&(q||ie?r.replace(I.fullPath,pe({scroll:ie&&ne&&ne.scroll},ue)):r.push(I.fullPath,ue)),c.value=I,Ae(I,U,N,ie),we()}let L;function H(){L=r.listen((I,U,N)=>{const q=y(I),ue=F(q);if(ue){S(pe(ue,{replace:!0}),q).catch(Fn);return}u=q;const me=c.value;tn&&_g(Da(me.fullPath,N.delta),ir()),K(q,me).catch(ie=>It(ie,12)?ie:It(ie,2)?(S(ie.to,q).then(ne=>{It(ne,20)&&!N.delta&&N.type===$n.pop&&r.go(-1,!1)}).catch(Fn),Promise.reject()):(N.delta&&r.go(-N.delta,!1),le(ie,q,me))).then(ie=>{ie=ie||W(q,me,!1),ie&&(N.delta?r.go(-N.delta,!1):N.type===$n.pop&&It(ie,20)&&r.go(-1,!1)),B(q,me,ie)}).catch(Fn)})}let Q=wn(),se=wn(),J;function le(I,U,N){we(I);const q=se.list();return q.length?q.forEach(ue=>ue(I,U,N)):console.error(I),Promise.reject(I)}function re(){return J&&c.value!==st?Promise.resolve():new Promise((I,U)=>{Q.add([I,U])})}function we(I){J||(J=!0,H(),Q.list().forEach(([U,N])=>I?N(I):U()),Q.reset())}function Ae(I,U,N,q){const{scrollBehavior:ue}=e;if(!tn||!ue)return Promise.resolve();const me=!N&&bg(Da(I.fullPath,0))||(q||!N)&&history.state&&history.state.scroll||null;return Ei().then(()=>ue(I,U,me)).then(ie=>ie&&fg(ie)).catch(ie=>le(ie,I,U))}const Le=I=>r.go(I);let Pe;const Ie=new Set;return{currentRoute:c,addRoute:b,removeRoute:m,hasRoute:f,getRoutes:_,resolve:y,options:e,push:A,replace:D,go:Le,back:()=>Le(-1),forward:()=>Le(1),beforeEach:i.add,beforeResolve:a.add,afterEach:s.add,onError:se.add,isReady:re,install(I){const U=this;I.component("RouterLink",nm),I.component("RouterView",_c),I.config.globalProperties.$router=U,Object.defineProperty(I.config.globalProperties,"$route",{enumerable:!0,get:()=>Bt(c)}),tn&&!Pe&&c.value===st&&(Pe=!0,A(r.location).catch(ue=>{}));const N={};for(const ue in st)N[ue]=_e(()=>c.value[ue]);I.provide(rr,U),I.provide(Ci,_n(N)),I.provide(Ur,c);const q=I.unmount;Ie.add(I),I.unmount=function(){Ie.delete(I),Ie.size<1&&(u=st,L&&L(),c.value=st,Pe=!1,J=!1),q()}}}}function Jt(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function om(e,t){const n=[],l=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;agn(u,s))?l.push(s):n.push(s));const c=e.matched[a];c&&(t.matched.find(u=>gn(u,c))||r.push(c))}return[n,l,r]}function ll(){return Re(rr)}function ji(){return Re(Ci)}const sm=ze({setup(e,t){const n=Ee(!1);return tt(()=>{n.value=!0}),()=>{var l,r;return n.value?(r=(l=t.slots).default)===null||r===void 0?void 0:r.call(l):null}}}),cm="modulepreload",Ha={},um="/",o=function(t,n){return!n||n.length===0?t():Promise.all(n.map(l=>{if(l=`${um}${l}`,l in Ha)return;Ha[l]=!0;const r=l.endsWith(".css"),i=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${i}`))return;const a=document.createElement("link");if(a.rel=r?"stylesheet":cm,r||(a.as="script",a.crossOrigin=""),a.href=l,document.head.appendChild(a),r)return new Promise((s,c)=>{a.addEventListener("load",s),a.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${l}`)))})})).then(()=>t())},bc={"v-8daa1a0e":h(()=>o(()=>import("./index.html.0a287f1f.js"),[])),"v-6bf54404":h(()=>o(()=>import("./accounts.html.725bda9f.js"),[])),"v-5f0a12cc":h(()=>o(()=>import("./cpi.html.a8399e2f.js"),[])),"v-130ca978":h(()=>o(()=>import("./pdas.html.3c423991.js"),[])),"v-882009ca":h(()=>o(()=>import("./programs.html.31091198.js"),[])),"v-63197375":h(()=>o(()=>import("./transactions.html.3d03b22d.js"),[])),"v-2d0a8235":h(()=>o(()=>import("./index.html.d66dda56.js"),[])),"v-2d0a87a8":h(()=>o(()=>import("./index.html.3ef4c766.js"),[])),"v-2d0a8b4a":h(()=>o(()=>import("./index.html.6c78ed74.js"),[])),"v-345c0323":h(()=>o(()=>import("./auto-approve.html.715cb859.js"),[])),"v-2119e6ee":h(()=>o(()=>import("./distribution.html.77b10b09.js"),[])),"v-33bd6568":h(()=>o(()=>import("./energy-system.html.6f60f4b8.js"),[])),"v-687f189c":h(()=>o(()=>import("./game-examples.html.e4c5158d.js"),[])),"v-00547d6c":h(()=>o(()=>import("./game-sdks.html.e8469124.js"),[])),"v-3edbe329":h(()=>o(()=>import("./hello-world.html.a280c00a.js"),[])),"v-3d8530c8":h(()=>o(()=>import("./interact-with-tokens.html.0707f8d5.js"),[])),"v-c08c9418":h(()=>o(()=>import("./intro.html.074604d0.js"),[])),"v-c4d04f5e":h(()=>o(()=>import("./nfts-in-games.html.ab1ab0dd.js"),[])),"v-4ea6aa5e":h(()=>o(()=>import("./porting-anchor-to-unity.html.294e5690.js"),[])),"v-1e0c6857":h(()=>o(()=>import("./saving-game-state.html.a35dc60f.js"),[])),"v-61d730b8":h(()=>o(()=>import("./store-sol-in-pda.html.72256b44.js"),[])),"v-4e8563af":h(()=>o(()=>import("./installation.html.41ef3724.js"),[])),"v-76b1e9e3":h(()=>o(()=>import("./account-maps.html.442511c7.js"),[])),"v-6da58eef":h(()=>o(()=>import("./data-migration.html.7a0642c3.js"),[])),"v-4684263f":h(()=>o(()=>import("./debugging-solana-programs.html.fdb9ba99.js"),[])),"v-4740871a":h(()=>o(()=>import("./feature-parity-testing.html.ec167da4.js"),[])),"v-2b9a5458":h(()=>o(()=>import("./get-program-accounts.html.2027870e.js"),[])),"v-5a9d5a10":h(()=>o(()=>import("./retrying-transactions.html.372b2f34.js"),[])),"v-2e379628":h(()=>o(()=>import("./serialization.html.c5ff52e0.js"),[])),"v-7e81f36f":h(()=>o(()=>import("./versioned-transactions.html.aea85ad7.js"),[])),"v-2d0a94db":h(()=>o(()=>import("./index.html.2732a4d4.js"),[])),"v-100dc897":h(()=>o(()=>import("./index.html.0b6cc05d.js"),[])),"v-13513bf3":h(()=>o(()=>import("./jupiter.html.971e1dde.js"),[])),"v-7f12be2e":h(()=>o(()=>import("./mango.html.235ca792.js"),[])),"v-0bf487b4":h(()=>o(()=>import("./orao-vrf.html.694a85e2.js"),[])),"v-6bb05bf6":h(()=>o(()=>import("./pyth.html.31cc5468.js"),[])),"v-78a2a41d":h(()=>o(()=>import("./react-native.html.2fa23deb.js"),[])),"v-0a8f60b8":h(()=>o(()=>import("./OpenBook.html.fa2c5d2c.js"),[])),"v-402eef45":h(()=>o(()=>import("./strata.html.12bbf620.js"),[])),"v-4d26b27e":h(()=>o(()=>import("./switchboard.html.9ffe2598.js"),[])),"v-da1de70a":h(()=>o(()=>import("./web3auth.html.9f2f8604.js"),[])),"v-2d0a983f":h(()=>o(()=>import("./index.html.d33706d4.js"),[])),"v-2d0a9e0f":h(()=>o(()=>import("./index.html.c4c8a4bb.js"),[])),"v-6c467d65":h(()=>o(()=>import("./accounts.html.db80db89.js"),[])),"v-70f9aa12":h(()=>o(()=>import("./basic-transactions.html.a9786217.js"),[])),"v-4dc29afa":h(()=>o(()=>import("./keypairs-and-wallets.html.08628220.js"),[])),"v-10b56a2e":h(()=>o(()=>import("./local-development.html.4f85d321.js"),[])),"v-9eccd210":h(()=>o(()=>import("./name-service.html.7e144c40.js"),[])),"v-d2aec298":h(()=>o(()=>import("./nfts.html.3ae0e6f1.js"),[])),"v-f8950628":h(()=>o(()=>import("./offline-transactions.html.1ab6fc76.js"),[])),"v-877d9708":h(()=>o(()=>import("./programs.html.f7c57f9e.js"),[])),"v-26f90ae0":h(()=>o(()=>import("./staking.html.1b735633.js"),[])),"v-0d096f0e":h(()=>o(()=>import("./token.html.abefca78.js"),[])),"v-2d0abea2":h(()=>o(()=>import("./index.html.d3397d61.js"),[])),"v-2d0abfd8":h(()=>o(()=>import("./index.html.6b3980a4.js"),[])),"v-2d0ac643":h(()=>o(()=>import("./index.html.fd6996c3.js"),[])),"v-2d0ad528":h(()=>o(()=>import("./index.html.0d598c1c.js"),[])),"v-8e5be170":h(()=>o(()=>import("./accounts.html.21174e84.js"),[])),"v-f2328ef0":h(()=>o(()=>import("./pdas.html.692947fe.js"),[])),"v-08ccc65f":h(()=>o(()=>import("./programs.html.8e3a21c0.js"),[])),"v-1256fcb9":h(()=>o(()=>import("./transactions.html.ddd99c44.js"),[])),"v-2485abf3":h(()=>o(()=>import("./installation.html.0d987601.js"),[])),"v-1832f5c2":h(()=>o(()=>import("./account-maps.html.ecd8e579.js"),[])),"v-70204b2b":h(()=>o(()=>import("./data-migration.html.f8e1038b.js"),[])),"v-16deac83":h(()=>o(()=>import("./debugging-solana-programs.html.db6fb5c5.js"),[])),"v-732f06a2":h(()=>o(()=>import("./feature-parity-testing.html.a400879b.js"),[])),"v-22a67510":h(()=>o(()=>import("./get-program-accounts.html.ab992419.js"),[])),"v-309da254":h(()=>o(()=>import("./retrying-transactions.html.46835128.js"),[])),"v-5796626c":h(()=>o(()=>import("./serialization.html.887d09b8.js"),[])),"v-1bac4a4a":h(()=>o(()=>import("./index.html.1a552ccd.js"),[])),"v-3cb00837":h(()=>o(()=>import("./jupiter.html.74a079c6.js"),[])),"v-0f7fcb72":h(()=>o(()=>import("./mango.html.dfb33f17.js"),[])),"v-0e6f43f0":h(()=>o(()=>import("./orao-vrf.html.66c03592.js"),[])),"v-d5fbe77e":h(()=>o(()=>import("./pyth.html.c0775995.js"),[])),"v-0aace259":h(()=>o(()=>import("./react-native.html.10c2e2a8.js"),[])),"v-ca072408":h(()=>o(()=>import("./OpenBook.html.117a0127.js"),[])),"v-8538eafe":h(()=>o(()=>import("./strata.html.97a02aa1.js"),[])),"v-5404867c":h(()=>o(()=>import("./switchboard.html.ff653a7d.js"),[])),"v-d5286e92":h(()=>o(()=>import("./web3auth.html.d1af114e.js"),[])),"v-2d09cebe":h(()=>o(()=>import("./accounts.html.8a4d2452.js"),[])),"v-9ce8299a":h(()=>o(()=>import("./basic-transactions.html.a3ec3168.js"),[])),"v-4ec78794":h(()=>o(()=>import("./keypairs-and-wallets.html.0333d1aa.js"),[])),"v-32949b1c":h(()=>o(()=>import("./local-development.html.915be9fa.js"),[])),"v-01539798":h(()=>o(()=>import("./name-service.html.dfe82d62.js"),[])),"v-6bf79020":h(()=>o(()=>import("./nfts.html.118ac318.js"),[])),"v-0e8f1e28":h(()=>o(()=>import("./offline-transactions.html.a579ee52.js"),[])),"v-3975cfb8":h(()=>o(()=>import("./programs.html.51117b5f.js"),[])),"v-7cf087d4":h(()=>o(()=>import("./staking.html.1a7dfc19.js"),[])),"v-4520fd52":h(()=>o(()=>import("./token.html.987d3230.js"),[])),"v-08458c16":h(()=>o(()=>import("./accounts.html.6d5c8163.js"),[])),"v-79377c96":h(()=>o(()=>import("./pdas.html.f5bf4632.js"),[])),"v-4bd7f10c":h(()=>o(()=>import("./programs.html.f8f8f4bb.js"),[])),"v-314308e6":h(()=>o(()=>import("./transactions.html.05b1003b.js"),[])),"v-389f60e0":h(()=>o(()=>import("./installation.html.2b406690.js"),[])),"v-471a2192":h(()=>o(()=>import("./account-maps.html.96de5b13.js"),[])),"v-7642d244":h(()=>o(()=>import("./data-migration.html.8bd9c97a.js"),[])),"v-6c0a22f0":h(()=>o(()=>import("./debugging-solana-programs.html.ebd0ba9d.js"),[])),"v-35856562":h(()=>o(()=>import("./feature-parity-testing.html.4ebe5657.js"),[])),"v-3d8822fa":h(()=>o(()=>import("./get-program-accounts.html.05fd251c.js"),[])),"v-44b75741":h(()=>o(()=>import("./retrying-transactions.html.448ddcf9.js"),[])),"v-6ad65459":h(()=>o(()=>import("./serialization.html.0506d8ef.js"),[])),"v-3caeb514":h(()=>o(()=>import("./accounts.html.ab4b7652.js"),[])),"v-20a8d3e6":h(()=>o(()=>import("./basic-transactions.html.26b4a82e.js"),[])),"v-17bc77ae":h(()=>o(()=>import("./keypairs-and-wallets.html.a02f70ba.js"),[])),"v-0a613142":h(()=>o(()=>import("./local-development.html.a1aa3ed0.js"),[])),"v-1db05f27":h(()=>o(()=>import("./name-service.html.7f4fac65.js"),[])),"v-6f8605e3":h(()=>o(()=>import("./nfts.html.7ada7be4.js"),[])),"v-2a14a61b":h(()=>o(()=>import("./offline-transactions.html.026dd1d3.js"),[])),"v-e6ad27aa":h(()=>o(()=>import("./programs.html.da872eb1.js"),[])),"v-8d23ddfe":h(()=>o(()=>import("./staking.html.008b0ce1.js"),[])),"v-4fd8edbf":h(()=>o(()=>import("./token.html.afdfc912.js"),[])),"v-598bfdda":h(()=>o(()=>import("./accounts.html.f7bc55df.js"),[])),"v-410d47d3":h(()=>o(()=>import("./pdas.html.30910713.js"),[])),"v-2334b82a":h(()=>o(()=>import("./programs.html.f56b5c31.js"),[])),"v-1ee9ddf8":h(()=>o(()=>import("./transactions.html.1da4e29f.js"),[])),"v-4605d97e":h(()=>o(()=>import("./installation.html.60f39b0a.js"),[])),"v-7e91df34":h(()=>o(()=>import("./account-maps.html.113fa1ac.js"),[])),"v-05451800":h(()=>o(()=>import("./data-migration.html.2e6237a4.js"),[])),"v-0bb1c6e4":h(()=>o(()=>import("./debugging-solana-programs.html.5e8dccc0.js"),[])),"v-5623fef8":h(()=>o(()=>import("./feature-parity-testing.html.de652e4a.js"),[])),"v-0af4ea25":h(()=>o(()=>import("./get-program-accounts.html.13e583fe.js"),[])),"v-521dcfdf":h(()=>o(()=>import("./retrying-transactions.html.3091e9dc.js"),[])),"v-22564af7":h(()=>o(()=>import("./serialization.html.578379af.js"),[])),"v-77103780":h(()=>o(()=>import("./versioned-transactions.html.31734a38.js"),[])),"v-4571fbe6":h(()=>o(()=>import("./index.html.77b03d55.js"),[])),"v-076ff0c2":h(()=>o(()=>import("./jupiter.html.e61c13e7.js"),[])),"v-6cb34a86":h(()=>o(()=>import("./mango.html.22eca321.js"),[])),"v-c8a72676":h(()=>o(()=>import("./orao-vrf.html.f9defff7.js"),[])),"v-6976e796":h(()=>o(()=>import("./pyth.html.5f59a477.js"),[])),"v-1e60cea4":h(()=>o(()=>import("./react-native.html.a9b24fee.js"),[])),"v-5522fd47":h(()=>o(()=>import("./OpenBook.html.b6233283.js"),[])),"v-480ee496":h(()=>o(()=>import("./strata.html.d1c97a7c.js"),[])),"v-139f3066":h(()=>o(()=>import("./switchboard.html.e9fb6fa3.js"),[])),"v-22a8f18c":h(()=>o(()=>import("./web3auth.html.a4e4ba64.js"),[])),"v-742672b6":h(()=>o(()=>import("./accounts.html.902b2abb.js"),[])),"v-7fdd21f0":h(()=>o(()=>import("./basic-transactions.html.159d2d39.js"),[])),"v-5bd01ecb":h(()=>o(()=>import("./keypairs-and-wallets.html.6b6054b2.js"),[])),"v-0835dffd":h(()=>o(()=>import("./local-development.html.a393140f.js"),[])),"v-31ec7bc9":h(()=>o(()=>import("./name-service.html.ef4287e4.js"),[])),"v-3331e485":h(()=>o(()=>import("./nfts.html.555e38b4.js"),[])),"v-dc79fe86":h(()=>o(()=>import("./offline-transactions.html.9f1f8fb0.js"),[])),"v-77bdac66":h(()=>o(()=>import("./programs.html.386334d2.js"),[])),"v-3717171f":h(()=>o(()=>import("./staking.html.107bd7b0.js"),[])),"v-01a8e35d":h(()=>o(()=>import("./token.html.044366a0.js"),[])),"v-da3cf63c":h(()=>o(()=>import("./accounts.html.6da8e555.js"),[])),"v-0bf50b22":h(()=>o(()=>import("./pdas.html.940f79a3.js"),[])),"v-3a47880e":h(()=>o(()=>import("./programs.html.a564c8f1.js"),[])),"v-73c3d55a":h(()=>o(()=>import("./transactions.html.40346000.js"),[])),"v-02e9060d":h(()=>o(()=>import("./installation.html.9e04272d.js"),[])),"v-10a285c5":h(()=>o(()=>import("./account-maps.html.0d767eca.js"),[])),"v-4ddeba51":h(()=>o(()=>import("./data-migration.html.9b198297.js"),[])),"v-0173699d":h(()=>o(()=>import("./debugging-solana-programs.html.07fbb213.js"),[])),"v-971f3456":h(()=>o(()=>import("./feature-parity-testing.html.b35a9a66.js"),[])),"v-307b2094":h(()=>o(()=>import("./get-program-accounts.html.b4e0f4f3.js"),[])),"v-0f00fc6e":h(()=>o(()=>import("./retrying-transactions.html.7f7432e7.js"),[])),"v-5b4b12f4":h(()=>o(()=>import("./serialization.html.47a6e0ee.js"),[])),"v-0027c5f5":h(()=>o(()=>import("./index.html.727a6b9f.js"),[])),"v-9117c75e":h(()=>o(()=>import("./jupiter.html.4ca25825.js"),[])),"v-d6e3c3e8":h(()=>o(()=>import("./mango.html.4038697b.js"),[])),"v-2df1fe67":h(()=>o(()=>import("./pyth.html.509b01aa.js"),[])),"v-10996302":h(()=>o(()=>import("./react-native.html.7dcd3284.js"),[])),"v-200ac096":h(()=>o(()=>import("./OpenBook.html.80bfdb16.js"),[])),"v-4bc0e9b2":h(()=>o(()=>import("./strata.html.28c4c18a.js"),[])),"v-6a0633dc":h(()=>o(()=>import("./switchboard.html.ced137c3.js"),[])),"v-732a37dd":h(()=>o(()=>import("./web3auth.html.66571a86.js"),[])),"v-06371947":h(()=>o(()=>import("./accounts.html.6c5bc2dd.js"),[])),"v-c0d8574e":h(()=>o(()=>import("./basic-transactions.html.4a2578a5.js"),[])),"v-644e73dc":h(()=>o(()=>import("./keypairs-and-wallets.html.23ad3697.js"),[])),"v-75cde6e8":h(()=>o(()=>import("./local-development.html.f9c91566.js"),[])),"v-673571da":h(()=>o(()=>import("./name-service.html.6e679b04.js"),[])),"v-931308d4":h(()=>o(()=>import("./nfts.html.f67d0f89.js"),[])),"v-cb7d5464":h(()=>o(()=>import("./offline-transactions.html.b5ff0f0f.js"),[])),"v-5631d05e":h(()=>o(()=>import("./programs.html.bbbb3304.js"),[])),"v-01feda6e":h(()=>o(()=>import("./staking.html.d721defb.js"),[])),"v-3211a328":h(()=>o(()=>import("./token.html.27dc8adf.js"),[])),"v-179e82fe":h(()=>o(()=>import("./accounts.html.1cd81784.js"),[])),"v-52ffdf92":h(()=>o(()=>import("./cpi.html.87e49511.js"),[])),"v-fd851184":h(()=>o(()=>import("./pdas.html.d7092bfa.js"),[])),"v-67993a15":h(()=>o(()=>import("./programs.html.c526f02f.js"),[])),"v-ec92b522":h(()=>o(()=>import("./transactions.html.fdd8d503.js"),[])),"v-429dff29":h(()=>o(()=>import("./installation.html.66ba803e.js"),[])),"v-44679d29":h(()=>o(()=>import("./account-maps.html.9c1915f5.js"),[])),"v-b688ee96":h(()=>o(()=>import("./data-migration.html.45037e1c.js"),[])),"v-04e3168e":h(()=>o(()=>import("./debugging-solana-programs.html.90f36bae.js"),[])),"v-6b5a9039":h(()=>o(()=>import("./feature-parity-testing.html.bf0c4f60.js"),[])),"v-d18839cc":h(()=>o(()=>import("./get-program-accounts.html.f435a31f.js"),[])),"v-4eb5f58a":h(()=>o(()=>import("./retrying-transactions.html.75d18ee4.js"),[])),"v-17384ba2":h(()=>o(()=>import("./serialization.html.91b66de2.js"),[])),"v-0d7cc735":h(()=>o(()=>import("./versioned-transactions.html.1cd42e05.js"),[])),"v-57b135de":h(()=>o(()=>import("./index.html.a5c25e74.js"),[])),"v-075c1d26":h(()=>o(()=>import("./jupiter.html.a2626a25.js"),[])),"v-09d68a28":h(()=>o(()=>import("./mango.html.d738a7f1.js"),[])),"v-430a817a":h(()=>o(()=>import("./orao-vrf.html.c74fd8e9.js"),[])),"v-83c4c26a":h(()=>o(()=>import("./pyth.html.d4d12cb2.js"),[])),"v-460b6a3a":h(()=>o(()=>import("./react-native.html.edc735bd.js"),[])),"v-d559a69c":h(()=>o(()=>import("./OpenBook.html.58b69860.js"),[])),"v-0de4a28b":h(()=>o(()=>import("./strata.html.4608aeed.js"),[])),"v-9907ca10":h(()=>o(()=>import("./switchboard.html.8803939a.js"),[])),"v-6bf1f37e":h(()=>o(()=>import("./web3auth.html.9b63dc83.js"),[])),"v-39fc30ab":h(()=>o(()=>import("./accounts.html.c5d0922b.js"),[])),"v-567dfebd":h(()=>o(()=>import("./basic-transactions.html.ca48a30a.js"),[])),"v-09579540":h(()=>o(()=>import("./keypairs-and-wallets.html.80324fea.js"),[])),"v-04ce05a8":h(()=>o(()=>import("./local-development.html.bc2058e1.js"),[])),"v-7a18373e":h(()=>o(()=>import("./name-service.html.d4393256.js"),[])),"v-6d16e4fa":h(()=>o(()=>import("./nfts.html.5754e50d.js"),[])),"v-3f4a7732":h(()=>o(()=>import("./offline-transactions.html.fe204508.js"),[])),"v-ec12307c":h(()=>o(()=>import("./programs.html.9a3e0d15.js"),[])),"v-7747468a":h(()=>o(()=>import("./staking.html.86ab1418.js"),[])),"v-0463f188":h(()=>o(()=>import("./token.html.c5567240.js"),[])),"v-52cd49a4":h(()=>o(()=>import("./accounts.html.344b7d0f.js"),[])),"v-4a4be76e":h(()=>o(()=>import("./pdas.html.f2372b94.js"),[])),"v-26941245":h(()=>o(()=>import("./programs.html.d57cde6e.js"),[])),"v-2229e59f":h(()=>o(()=>import("./transactions.html.4ea8112b.js"),[])),"v-e97c194e":h(()=>o(()=>import("./installation.html.3465c733.js"),[])),"v-c5b19a0e":h(()=>o(()=>import("./account-maps.html.e1996f93.js"),[])),"v-68262af6":h(()=>o(()=>import("./data-migration.html.9eafa9ba.js"),[])),"v-a4865e2e":h(()=>o(()=>import("./debugging-solana-programs.html.e52e9e07.js"),[])),"v-37352209":h(()=>o(()=>import("./feature-parity-testing.html.ae95ef54.js"),[])),"v-0d30a8ea":h(()=>o(()=>import("./get-program-accounts.html.fb8839ac.js"),[])),"v-d14c2c8c":h(()=>o(()=>import("./retrying-transactions.html.22a3ee84.js"),[])),"v-5329205c":h(()=>o(()=>import("./serialization.html.7bab0738.js"),[])),"v-da88730a":h(()=>o(()=>import("./accounts.html.80b7d9ed.js"),[])),"v-2258908d":h(()=>o(()=>import("./basic-transactions.html.9c6d8c48.js"),[])),"v-48d4f310":h(()=>o(()=>import("./keypairs-and-wallets.html.1a1849a7.js"),[])),"v-4d71f9d8":h(()=>o(()=>import("./local-development.html.aaa13661.js"),[])),"v-cb0f35e4":h(()=>o(()=>import("./name-service.html.c45f38da.js"),[])),"v-b3ac3a6c":h(()=>o(()=>import("./nfts.html.b784f387.js"),[])),"v-7ec7d502":h(()=>o(()=>import("./offline-transactions.html.2837549a.js"),[])),"v-3a9304dc":h(()=>o(()=>import("./programs.html.5f58f77f.js"),[])),"v-4055b6ba":h(()=>o(()=>import("./staking.html.48b1d753.js"),[])),"v-249ea490":h(()=>o(()=>import("./token.html.60a7138b.js"),[])),"v-3f8c76bb":h(()=>o(()=>import("./accounts.html.7d17a835.js"),[])),"v-310cd17b":h(()=>o(()=>import("./pdas.html.ec9f90e5.js"),[])),"v-e0f1a45c":h(()=>o(()=>import("./programs.html.48587903.js"),[])),"v-5dda72ac":h(()=>o(()=>import("./transactions.html.e8e47d58.js"),[])),"v-c5f91db4":h(()=>o(()=>import("./installation.html.56e39fed.js"),[])),"v-e2f8eae8":h(()=>o(()=>import("./account-maps.html.2b2e7767.js"),[])),"v-50dcad50":h(()=>o(()=>import("./data-migration.html.7be61c15.js"),[])),"v-387ebf94":h(()=>o(()=>import("./debugging-solana-programs.html.d2d36f3d.js"),[])),"v-5da35ddc":h(()=>o(()=>import("./feature-parity-testing.html.e23e2696.js"),[])),"v-4791bd7d":h(()=>o(()=>import("./get-program-accounts.html.086000e2.js"),[])),"v-adc930f2":h(()=>o(()=>import("./retrying-transactions.html.1fa2726a.js"),[])),"v-109a0a9f":h(()=>o(()=>import("./serialization.html.8d38c1dc.js"),[])),"v-0074d650":h(()=>o(()=>import("./versioned-transactions.html.1a1ff2dc.js"),[])),"v-18d9f78e":h(()=>o(()=>import("./index.html.a4c2cf87.js"),[])),"v-14989f2c":h(()=>o(()=>import("./jupiter.html.53710d58.js"),[])),"v-8cb43736":h(()=>o(()=>import("./mango.html.c9da188d.js"),[])),"v-67e8ee24":h(()=>o(()=>import("./pyth.html.4f0841c0.js"),[])),"v-fe8d3bf4":h(()=>o(()=>import("./react-native.html.60c59bb7.js"),[])),"v-452286ef":h(()=>o(()=>import("./OpenBook.html.5b7d1540.js"),[])),"v-58008fee":h(()=>o(()=>import("./strata.html.6ce60e71.js"),[])),"v-d087d916":h(()=>o(()=>import("./switchboard.html.4ee40e9f.js"),[])),"v-0645b238":h(()=>o(()=>import("./web3auth.html.b901cf4b.js"),[])),"v-f7cfc3e4":h(()=>o(()=>import("./accounts.html.f12554c0.js"),[])),"v-48c6cc60":h(()=>o(()=>import("./basic-transactions.html.fc1a8867.js"),[])),"v-e6b8f3ba":h(()=>o(()=>import("./keypairs-and-wallets.html.46610474.js"),[])),"v-5f3377a5":h(()=>o(()=>import("./local-development.html.a4b2de83.js"),[])),"v-4fe8bb21":h(()=>o(()=>import("./name-service.html.9cd733b8.js"),[])),"v-00aefbdd":h(()=>o(()=>import("./nfts.html.8e857d5a.js"),[])),"v-7ad32fd6":h(()=>o(()=>import("./offline-transactions.html.61edef66.js"),[])),"v-57da55b6":h(()=>o(()=>import("./programs.html.c3000df4.js"),[])),"v-2716a0c7":h(()=>o(()=>import("./staking.html.588fc16d.js"),[])),"v-386291f6":h(()=>o(()=>import("./token.html.e074962e.js"),[])),"v-46a93876":h(()=>o(()=>import("./accounts.html.ffb32db6.js"),[])),"v-5aefd385":h(()=>o(()=>import("./pdas.html.bb2f635c.js"),[])),"v-2ca61adc":h(()=>o(()=>import("./programs.html.0ad5c886.js"),[])),"v-4847cab6":h(()=>o(()=>import("./transactions.html.86713374.js"),[])),"v-bd0a22a0":h(()=>o(()=>import("./installation.html.5e34f94a.js"),[])),"v-bdfe6c7c":h(()=>o(()=>import("./account-maps.html.ace4ce72.js"),[])),"v-3fbbf30e":h(()=>o(()=>import("./data-migration.html.6a6ffbf1.js"),[])),"v-846b6e80":h(()=>o(()=>import("./debugging-solana-programs.html.e4ec81c8.js"),[])),"v-2fc8dcdc":h(()=>o(()=>import("./feature-parity-testing.html.1a9f34ce.js"),[])),"v-aa61329a":h(()=>o(()=>import("./get-program-accounts.html.dfdd1137.js"),[])),"v-a4da35de":h(()=>o(()=>import("./retrying-transactions.html.abc7f479.js"),[])),"v-4dc4b229":h(()=>o(()=>import("./serialization.html.5749075d.js"),[])),"v-d2d54578":h(()=>o(()=>import("./accounts.html.5d7b8651.js"),[])),"v-5981ffd4":h(()=>o(()=>import("./basic-transactions.html.6957b1fc.js"),[])),"v-59dda459":h(()=>o(()=>import("./keypairs-and-wallets.html.84875c5a.js"),[])),"v-63aaf52f":h(()=>o(()=>import("./local-development.html.a4ff47a7.js"),[])),"v-56a76f57":h(()=>o(()=>import("./name-service.html.1e6ac221.js"),[])),"v-41e84613":h(()=>o(()=>import("./nfts.html.db4f2b0c.js"),[])),"v-e05ef36a":h(()=>o(()=>import("./offline-transactions.html.469445a8.js"),[])),"v-32dfd74a":h(()=>o(()=>import("./programs.html.cf59bda9.js"),[])),"v-50f9a2d1":h(()=>o(()=>import("./staking.html.242822b6.js"),[])),"v-6c8298e2":h(()=>o(()=>import("./token.html.c44822ac.js"),[])),"v-6a35b27a":h(()=>o(()=>import("./accounts.html.ce9cbe5f.js"),[])),"v-8e20768c":h(()=>o(()=>import("./pdas.html.f0f8e354.js"),[])),"v-8b9f2cde":h(()=>o(()=>import("./programs.html.a1ba66c7.js"),[])),"v-55f1b6eb":h(()=>o(()=>import("./transactions.html.ac113912.js"),[])),"v-274abcb6":h(()=>o(()=>import("./installation.html.91e76917.js"),[])),"v-02feff2d":h(()=>o(()=>import("./account-maps.html.77d8532d.js"),[])),"v-1b0279b9":h(()=>o(()=>import("./data-migration.html.37c022db.js"),[])),"v-5afd7935":h(()=>o(()=>import("./debugging-solana-programs.html.11302c79.js"),[])),"v-0d9b8586":h(()=>o(()=>import("./feature-parity-testing.html.db0d8ec6.js"),[])),"v-5263011e":h(()=>o(()=>import("./get-program-accounts.html.ab253dc0.js"),[])),"v-0f1acff4":h(()=>o(()=>import("./retrying-transactions.html.d8b91c2e.js"),[])),"v-2b8d2a1e":h(()=>o(()=>import("./serialization.html.8e5f153b.js"),[])),"v-35d91d8d":h(()=>o(()=>import("./index.html.1a263f21.js"),[])),"v-10a6cfe9":h(()=>o(()=>import("./jupiter.html.2c7ec669.js"),[])),"v-4188d7a4":h(()=>o(()=>import("./mango.html.16fd6de6.js"),[])),"v-5f249c62":h(()=>o(()=>import("./pyth.html.a56d75c5.js"),[])),"v-049919e7":h(()=>o(()=>import("./react-native.html.50eb15fe.js"),[])),"v-65f50ba4":h(()=>o(()=>import("./OpenBook.html.a80dd7c1.js"),[])),"v-6707f6e2":h(()=>o(()=>import("./strata.html.c693a7c8.js"),[])),"v-85f54918":h(()=>o(()=>import("./switchboard.html.012baeb5.js"),[])),"v-404df745":h(()=>o(()=>import("./web3auth.html.3c243a02.js"),[])),"v-0ed8daa2":h(()=>o(()=>import("./accounts.html.62ae8089.js"),[])),"v-3754a87e":h(()=>o(()=>import("./basic-transactions.html.9343afcb.js"),[])),"v-7ff81144":h(()=>o(()=>import("./keypairs-and-wallets.html.e574768f.js"),[])),"v-a2eaafb8":h(()=>o(()=>import("./local-development.html.7ea617a4.js"),[])),"v-7a66f742":h(()=>o(()=>import("./name-service.html.e85f0b0e.js"),[])),"v-1b97e8fe":h(()=>o(()=>import("./nfts.html.902520b7.js"),[])),"v-942a1994":h(()=>o(()=>import("./offline-transactions.html.260a1aae.js"),[])),"v-488e49c6":h(()=>o(()=>import("./programs.html.cf6ca04e.js"),[])),"v-a20cd7f4":h(()=>o(()=>import("./staking.html.a1e24249.js"),[])),"v-26036e04":h(()=>o(()=>import("./token.html.5b332101.js"),[])),"v-43987c75":h(()=>o(()=>import("./accounts.html.2f8f935f.js"),[])),"v-3c24c435":h(()=>o(()=>import("./pdas.html.52203689.js"),[])),"v-d8d998e8":h(()=>o(()=>import("./programs.html.7ee31ce3.js"),[])),"v-66cde934":h(()=>o(()=>import("./transactions.html.284bc161.js"),[])),"v-567ec360":h(()=>o(()=>import("./installation.html.97992b16.js"),[])),"v-3706649a":h(()=>o(()=>import("./404.html.84cd4a6b.js"),[]))},dm={"v-8daa1a0e":()=>o(()=>import("./index.html.4eb1f1ba.js"),[]).then(({data:e})=>e),"v-6bf54404":()=>o(()=>import("./accounts.html.8879a9c1.js"),[]).then(({data:e})=>e),"v-5f0a12cc":()=>o(()=>import("./cpi.html.7575fce3.js"),[]).then(({data:e})=>e),"v-130ca978":()=>o(()=>import("./pdas.html.a117908d.js"),[]).then(({data:e})=>e),"v-882009ca":()=>o(()=>import("./programs.html.4d7d8768.js"),[]).then(({data:e})=>e),"v-63197375":()=>o(()=>import("./transactions.html.188c913a.js"),[]).then(({data:e})=>e),"v-2d0a8235":()=>o(()=>import("./index.html.abf8251d.js"),[]).then(({data:e})=>e),"v-2d0a87a8":()=>o(()=>import("./index.html.ed59c6f5.js"),[]).then(({data:e})=>e),"v-2d0a8b4a":()=>o(()=>import("./index.html.c8f43f44.js"),[]).then(({data:e})=>e),"v-345c0323":()=>o(()=>import("./auto-approve.html.f8eb4c51.js"),[]).then(({data:e})=>e),"v-2119e6ee":()=>o(()=>import("./distribution.html.1e4a8b99.js"),[]).then(({data:e})=>e),"v-33bd6568":()=>o(()=>import("./energy-system.html.1af785c7.js"),[]).then(({data:e})=>e),"v-687f189c":()=>o(()=>import("./game-examples.html.2dcfe766.js"),[]).then(({data:e})=>e),"v-00547d6c":()=>o(()=>import("./game-sdks.html.e2f72c8a.js"),[]).then(({data:e})=>e),"v-3edbe329":()=>o(()=>import("./hello-world.html.dbee0508.js"),[]).then(({data:e})=>e),"v-3d8530c8":()=>o(()=>import("./interact-with-tokens.html.f2419630.js"),[]).then(({data:e})=>e),"v-c08c9418":()=>o(()=>import("./intro.html.e782eb8d.js"),[]).then(({data:e})=>e),"v-c4d04f5e":()=>o(()=>import("./nfts-in-games.html.cbea4492.js"),[]).then(({data:e})=>e),"v-4ea6aa5e":()=>o(()=>import("./porting-anchor-to-unity.html.29a097d5.js"),[]).then(({data:e})=>e),"v-1e0c6857":()=>o(()=>import("./saving-game-state.html.0656b997.js"),[]).then(({data:e})=>e),"v-61d730b8":()=>o(()=>import("./store-sol-in-pda.html.9ee3497a.js"),[]).then(({data:e})=>e),"v-4e8563af":()=>o(()=>import("./installation.html.11f5f36c.js"),[]).then(({data:e})=>e),"v-76b1e9e3":()=>o(()=>import("./account-maps.html.f32682b9.js"),[]).then(({data:e})=>e),"v-6da58eef":()=>o(()=>import("./data-migration.html.084ac250.js"),[]).then(({data:e})=>e),"v-4684263f":()=>o(()=>import("./debugging-solana-programs.html.24149e6d.js"),[]).then(({data:e})=>e),"v-4740871a":()=>o(()=>import("./feature-parity-testing.html.61786585.js"),[]).then(({data:e})=>e),"v-2b9a5458":()=>o(()=>import("./get-program-accounts.html.4f4498ed.js"),[]).then(({data:e})=>e),"v-5a9d5a10":()=>o(()=>import("./retrying-transactions.html.9ea8d8a2.js"),[]).then(({data:e})=>e),"v-2e379628":()=>o(()=>import("./serialization.html.32c33a1b.js"),[]).then(({data:e})=>e),"v-7e81f36f":()=>o(()=>import("./versioned-transactions.html.acaac8aa.js"),[]).then(({data:e})=>e),"v-2d0a94db":()=>o(()=>import("./index.html.ca0d0ddc.js"),[]).then(({data:e})=>e),"v-100dc897":()=>o(()=>import("./index.html.08f9010f.js"),[]).then(({data:e})=>e),"v-13513bf3":()=>o(()=>import("./jupiter.html.2ab24295.js"),[]).then(({data:e})=>e),"v-7f12be2e":()=>o(()=>import("./mango.html.e3130b77.js"),[]).then(({data:e})=>e),"v-0bf487b4":()=>o(()=>import("./orao-vrf.html.470f677f.js"),[]).then(({data:e})=>e),"v-6bb05bf6":()=>o(()=>import("./pyth.html.cc2d9cf5.js"),[]).then(({data:e})=>e),"v-78a2a41d":()=>o(()=>import("./react-native.html.c7c48324.js"),[]).then(({data:e})=>e),"v-0a8f60b8":()=>o(()=>import("./OpenBook.html.d513a959.js"),[]).then(({data:e})=>e),"v-402eef45":()=>o(()=>import("./strata.html.0c674b4e.js"),[]).then(({data:e})=>e),"v-4d26b27e":()=>o(()=>import("./switchboard.html.4ab174a3.js"),[]).then(({data:e})=>e),"v-da1de70a":()=>o(()=>import("./web3auth.html.00b06a17.js"),[]).then(({data:e})=>e),"v-2d0a983f":()=>o(()=>import("./index.html.60dd15bd.js"),[]).then(({data:e})=>e),"v-2d0a9e0f":()=>o(()=>import("./index.html.618f6255.js"),[]).then(({data:e})=>e),"v-6c467d65":()=>o(()=>import("./accounts.html.1a461037.js"),[]).then(({data:e})=>e),"v-70f9aa12":()=>o(()=>import("./basic-transactions.html.dfe4490b.js"),[]).then(({data:e})=>e),"v-4dc29afa":()=>o(()=>import("./keypairs-and-wallets.html.a8f71be8.js"),[]).then(({data:e})=>e),"v-10b56a2e":()=>o(()=>import("./local-development.html.c5836b09.js"),[]).then(({data:e})=>e),"v-9eccd210":()=>o(()=>import("./name-service.html.5051d1dd.js"),[]).then(({data:e})=>e),"v-d2aec298":()=>o(()=>import("./nfts.html.39ed8786.js"),[]).then(({data:e})=>e),"v-f8950628":()=>o(()=>import("./offline-transactions.html.8d1d2de8.js"),[]).then(({data:e})=>e),"v-877d9708":()=>o(()=>import("./programs.html.31ba3784.js"),[]).then(({data:e})=>e),"v-26f90ae0":()=>o(()=>import("./staking.html.70e37cc5.js"),[]).then(({data:e})=>e),"v-0d096f0e":()=>o(()=>import("./token.html.43db4402.js"),[]).then(({data:e})=>e),"v-2d0abea2":()=>o(()=>import("./index.html.7d9ea062.js"),[]).then(({data:e})=>e),"v-2d0abfd8":()=>o(()=>import("./index.html.7ae71288.js"),[]).then(({data:e})=>e),"v-2d0ac643":()=>o(()=>import("./index.html.5b3f2ada.js"),[]).then(({data:e})=>e),"v-2d0ad528":()=>o(()=>import("./index.html.10c6341f.js"),[]).then(({data:e})=>e),"v-8e5be170":()=>o(()=>import("./accounts.html.05949c32.js"),[]).then(({data:e})=>e),"v-f2328ef0":()=>o(()=>import("./pdas.html.77efba8f.js"),[]).then(({data:e})=>e),"v-08ccc65f":()=>o(()=>import("./programs.html.340e959e.js"),[]).then(({data:e})=>e),"v-1256fcb9":()=>o(()=>import("./transactions.html.50802ba1.js"),[]).then(({data:e})=>e),"v-2485abf3":()=>o(()=>import("./installation.html.98badae7.js"),[]).then(({data:e})=>e),"v-1832f5c2":()=>o(()=>import("./account-maps.html.17bd8d7d.js"),[]).then(({data:e})=>e),"v-70204b2b":()=>o(()=>import("./data-migration.html.50964a4b.js"),[]).then(({data:e})=>e),"v-16deac83":()=>o(()=>import("./debugging-solana-programs.html.3eeeb833.js"),[]).then(({data:e})=>e),"v-732f06a2":()=>o(()=>import("./feature-parity-testing.html.94cf4ee3.js"),[]).then(({data:e})=>e),"v-22a67510":()=>o(()=>import("./get-program-accounts.html.7e74d8ff.js"),[]).then(({data:e})=>e),"v-309da254":()=>o(()=>import("./retrying-transactions.html.8880b234.js"),[]).then(({data:e})=>e),"v-5796626c":()=>o(()=>import("./serialization.html.f6d36f31.js"),[]).then(({data:e})=>e),"v-1bac4a4a":()=>o(()=>import("./index.html.c5a5ca81.js"),[]).then(({data:e})=>e),"v-3cb00837":()=>o(()=>import("./jupiter.html.ae15b0be.js"),[]).then(({data:e})=>e),"v-0f7fcb72":()=>o(()=>import("./mango.html.eb053000.js"),[]).then(({data:e})=>e),"v-0e6f43f0":()=>o(()=>import("./orao-vrf.html.5a7f506f.js"),[]).then(({data:e})=>e),"v-d5fbe77e":()=>o(()=>import("./pyth.html.942db8fe.js"),[]).then(({data:e})=>e),"v-0aace259":()=>o(()=>import("./react-native.html.b008ee51.js"),[]).then(({data:e})=>e),"v-ca072408":()=>o(()=>import("./OpenBook.html.4533f845.js"),[]).then(({data:e})=>e),"v-8538eafe":()=>o(()=>import("./strata.html.214ef0ec.js"),[]).then(({data:e})=>e),"v-5404867c":()=>o(()=>import("./switchboard.html.989260ce.js"),[]).then(({data:e})=>e),"v-d5286e92":()=>o(()=>import("./web3auth.html.42e90246.js"),[]).then(({data:e})=>e),"v-2d09cebe":()=>o(()=>import("./accounts.html.1c2ce3f3.js"),[]).then(({data:e})=>e),"v-9ce8299a":()=>o(()=>import("./basic-transactions.html.3e9e6a63.js"),[]).then(({data:e})=>e),"v-4ec78794":()=>o(()=>import("./keypairs-and-wallets.html.7c422ff4.js"),[]).then(({data:e})=>e),"v-32949b1c":()=>o(()=>import("./local-development.html.f5643536.js"),[]).then(({data:e})=>e),"v-01539798":()=>o(()=>import("./name-service.html.326a6c13.js"),[]).then(({data:e})=>e),"v-6bf79020":()=>o(()=>import("./nfts.html.d679a608.js"),[]).then(({data:e})=>e),"v-0e8f1e28":()=>o(()=>import("./offline-transactions.html.d4e0be3d.js"),[]).then(({data:e})=>e),"v-3975cfb8":()=>o(()=>import("./programs.html.11032af6.js"),[]).then(({data:e})=>e),"v-7cf087d4":()=>o(()=>import("./staking.html.9da955fb.js"),[]).then(({data:e})=>e),"v-4520fd52":()=>o(()=>import("./token.html.7f6e6e11.js"),[]).then(({data:e})=>e),"v-08458c16":()=>o(()=>import("./accounts.html.fab56f07.js"),[]).then(({data:e})=>e),"v-79377c96":()=>o(()=>import("./pdas.html.4a946dac.js"),[]).then(({data:e})=>e),"v-4bd7f10c":()=>o(()=>import("./programs.html.d01e378b.js"),[]).then(({data:e})=>e),"v-314308e6":()=>o(()=>import("./transactions.html.cfd147cc.js"),[]).then(({data:e})=>e),"v-389f60e0":()=>o(()=>import("./installation.html.5338573c.js"),[]).then(({data:e})=>e),"v-471a2192":()=>o(()=>import("./account-maps.html.5696ae7f.js"),[]).then(({data:e})=>e),"v-7642d244":()=>o(()=>import("./data-migration.html.86082ff9.js"),[]).then(({data:e})=>e),"v-6c0a22f0":()=>o(()=>import("./debugging-solana-programs.html.ede954b0.js"),[]).then(({data:e})=>e),"v-35856562":()=>o(()=>import("./feature-parity-testing.html.b2696a90.js"),[]).then(({data:e})=>e),"v-3d8822fa":()=>o(()=>import("./get-program-accounts.html.94ffca18.js"),[]).then(({data:e})=>e),"v-44b75741":()=>o(()=>import("./retrying-transactions.html.51d3083a.js"),[]).then(({data:e})=>e),"v-6ad65459":()=>o(()=>import("./serialization.html.6a6635c1.js"),[]).then(({data:e})=>e),"v-3caeb514":()=>o(()=>import("./accounts.html.b91c3a6f.js"),[]).then(({data:e})=>e),"v-20a8d3e6":()=>o(()=>import("./basic-transactions.html.f7122c53.js"),[]).then(({data:e})=>e),"v-17bc77ae":()=>o(()=>import("./keypairs-and-wallets.html.87a50ba3.js"),[]).then(({data:e})=>e),"v-0a613142":()=>o(()=>import("./local-development.html.b97186da.js"),[]).then(({data:e})=>e),"v-1db05f27":()=>o(()=>import("./name-service.html.e0d6e448.js"),[]).then(({data:e})=>e),"v-6f8605e3":()=>o(()=>import("./nfts.html.f28f6d5c.js"),[]).then(({data:e})=>e),"v-2a14a61b":()=>o(()=>import("./offline-transactions.html.269432a1.js"),[]).then(({data:e})=>e),"v-e6ad27aa":()=>o(()=>import("./programs.html.96b262ce.js"),[]).then(({data:e})=>e),"v-8d23ddfe":()=>o(()=>import("./staking.html.76101920.js"),[]).then(({data:e})=>e),"v-4fd8edbf":()=>o(()=>import("./token.html.3affc20f.js"),[]).then(({data:e})=>e),"v-598bfdda":()=>o(()=>import("./accounts.html.c9e84ab5.js"),[]).then(({data:e})=>e),"v-410d47d3":()=>o(()=>import("./pdas.html.b3879735.js"),[]).then(({data:e})=>e),"v-2334b82a":()=>o(()=>import("./programs.html.23a73b36.js"),[]).then(({data:e})=>e),"v-1ee9ddf8":()=>o(()=>import("./transactions.html.ba8c17fa.js"),[]).then(({data:e})=>e),"v-4605d97e":()=>o(()=>import("./installation.html.3b279ba8.js"),[]).then(({data:e})=>e),"v-7e91df34":()=>o(()=>import("./account-maps.html.2bcb32db.js"),[]).then(({data:e})=>e),"v-05451800":()=>o(()=>import("./data-migration.html.9963dda2.js"),[]).then(({data:e})=>e),"v-0bb1c6e4":()=>o(()=>import("./debugging-solana-programs.html.43aa08db.js"),[]).then(({data:e})=>e),"v-5623fef8":()=>o(()=>import("./feature-parity-testing.html.d784a27d.js"),[]).then(({data:e})=>e),"v-0af4ea25":()=>o(()=>import("./get-program-accounts.html.1208b27a.js"),[]).then(({data:e})=>e),"v-521dcfdf":()=>o(()=>import("./retrying-transactions.html.31aa18c1.js"),[]).then(({data:e})=>e),"v-22564af7":()=>o(()=>import("./serialization.html.99337bc6.js"),[]).then(({data:e})=>e),"v-77103780":()=>o(()=>import("./versioned-transactions.html.f7668ac4.js"),[]).then(({data:e})=>e),"v-4571fbe6":()=>o(()=>import("./index.html.b1569f77.js"),[]).then(({data:e})=>e),"v-076ff0c2":()=>o(()=>import("./jupiter.html.078016c9.js"),[]).then(({data:e})=>e),"v-6cb34a86":()=>o(()=>import("./mango.html.5b4b5d2a.js"),[]).then(({data:e})=>e),"v-c8a72676":()=>o(()=>import("./orao-vrf.html.5de73c75.js"),[]).then(({data:e})=>e),"v-6976e796":()=>o(()=>import("./pyth.html.803ad906.js"),[]).then(({data:e})=>e),"v-1e60cea4":()=>o(()=>import("./react-native.html.ee4bb358.js"),[]).then(({data:e})=>e),"v-5522fd47":()=>o(()=>import("./OpenBook.html.247b2421.js"),[]).then(({data:e})=>e),"v-480ee496":()=>o(()=>import("./strata.html.8182409d.js"),[]).then(({data:e})=>e),"v-139f3066":()=>o(()=>import("./switchboard.html.7c5ce918.js"),[]).then(({data:e})=>e),"v-22a8f18c":()=>o(()=>import("./web3auth.html.4e98a109.js"),[]).then(({data:e})=>e),"v-742672b6":()=>o(()=>import("./accounts.html.d07565e6.js"),[]).then(({data:e})=>e),"v-7fdd21f0":()=>o(()=>import("./basic-transactions.html.b8e697ee.js"),[]).then(({data:e})=>e),"v-5bd01ecb":()=>o(()=>import("./keypairs-and-wallets.html.8d42bf89.js"),[]).then(({data:e})=>e),"v-0835dffd":()=>o(()=>import("./local-development.html.c3972821.js"),[]).then(({data:e})=>e),"v-31ec7bc9":()=>o(()=>import("./name-service.html.b1fdc398.js"),[]).then(({data:e})=>e),"v-3331e485":()=>o(()=>import("./nfts.html.965a9b0c.js"),[]).then(({data:e})=>e),"v-dc79fe86":()=>o(()=>import("./offline-transactions.html.0ba69adc.js"),[]).then(({data:e})=>e),"v-77bdac66":()=>o(()=>import("./programs.html.f54b94ed.js"),[]).then(({data:e})=>e),"v-3717171f":()=>o(()=>import("./staking.html.8fb2ba56.js"),[]).then(({data:e})=>e),"v-01a8e35d":()=>o(()=>import("./token.html.a4239a10.js"),[]).then(({data:e})=>e),"v-da3cf63c":()=>o(()=>import("./accounts.html.79c0ca0e.js"),[]).then(({data:e})=>e),"v-0bf50b22":()=>o(()=>import("./pdas.html.27a51730.js"),[]).then(({data:e})=>e),"v-3a47880e":()=>o(()=>import("./programs.html.740744ad.js"),[]).then(({data:e})=>e),"v-73c3d55a":()=>o(()=>import("./transactions.html.263aeafa.js"),[]).then(({data:e})=>e),"v-02e9060d":()=>o(()=>import("./installation.html.447c9172.js"),[]).then(({data:e})=>e),"v-10a285c5":()=>o(()=>import("./account-maps.html.f4daf1b2.js"),[]).then(({data:e})=>e),"v-4ddeba51":()=>o(()=>import("./data-migration.html.db91eb39.js"),[]).then(({data:e})=>e),"v-0173699d":()=>o(()=>import("./debugging-solana-programs.html.02363b40.js"),[]).then(({data:e})=>e),"v-971f3456":()=>o(()=>import("./feature-parity-testing.html.abd7566e.js"),[]).then(({data:e})=>e),"v-307b2094":()=>o(()=>import("./get-program-accounts.html.d8ef5734.js"),[]).then(({data:e})=>e),"v-0f00fc6e":()=>o(()=>import("./retrying-transactions.html.426f62c5.js"),[]).then(({data:e})=>e),"v-5b4b12f4":()=>o(()=>import("./serialization.html.baac0ece.js"),[]).then(({data:e})=>e),"v-0027c5f5":()=>o(()=>import("./index.html.f8103350.js"),[]).then(({data:e})=>e),"v-9117c75e":()=>o(()=>import("./jupiter.html.f110667b.js"),[]).then(({data:e})=>e),"v-d6e3c3e8":()=>o(()=>import("./mango.html.fb76dda7.js"),[]).then(({data:e})=>e),"v-2df1fe67":()=>o(()=>import("./pyth.html.b9e89a1a.js"),[]).then(({data:e})=>e),"v-10996302":()=>o(()=>import("./react-native.html.acc2f71a.js"),[]).then(({data:e})=>e),"v-200ac096":()=>o(()=>import("./OpenBook.html.94e5f7c6.js"),[]).then(({data:e})=>e),"v-4bc0e9b2":()=>o(()=>import("./strata.html.d26ab919.js"),[]).then(({data:e})=>e),"v-6a0633dc":()=>o(()=>import("./switchboard.html.0b6a3741.js"),[]).then(({data:e})=>e),"v-732a37dd":()=>o(()=>import("./web3auth.html.3d6a8bb5.js"),[]).then(({data:e})=>e),"v-06371947":()=>o(()=>import("./accounts.html.cf985a2a.js"),[]).then(({data:e})=>e),"v-c0d8574e":()=>o(()=>import("./basic-transactions.html.710d7d5d.js"),[]).then(({data:e})=>e),"v-644e73dc":()=>o(()=>import("./keypairs-and-wallets.html.caac507d.js"),[]).then(({data:e})=>e),"v-75cde6e8":()=>o(()=>import("./local-development.html.7e1bd7bf.js"),[]).then(({data:e})=>e),"v-673571da":()=>o(()=>import("./name-service.html.e670bb57.js"),[]).then(({data:e})=>e),"v-931308d4":()=>o(()=>import("./nfts.html.61f329ef.js"),[]).then(({data:e})=>e),"v-cb7d5464":()=>o(()=>import("./offline-transactions.html.805d36b8.js"),[]).then(({data:e})=>e),"v-5631d05e":()=>o(()=>import("./programs.html.db98f647.js"),[]).then(({data:e})=>e),"v-01feda6e":()=>o(()=>import("./staking.html.e8c26eca.js"),[]).then(({data:e})=>e),"v-3211a328":()=>o(()=>import("./token.html.59c78a7f.js"),[]).then(({data:e})=>e),"v-179e82fe":()=>o(()=>import("./accounts.html.70ea6ada.js"),[]).then(({data:e})=>e),"v-52ffdf92":()=>o(()=>import("./cpi.html.a071110c.js"),[]).then(({data:e})=>e),"v-fd851184":()=>o(()=>import("./pdas.html.1bf322c2.js"),[]).then(({data:e})=>e),"v-67993a15":()=>o(()=>import("./programs.html.98e92214.js"),[]).then(({data:e})=>e),"v-ec92b522":()=>o(()=>import("./transactions.html.aceea138.js"),[]).then(({data:e})=>e),"v-429dff29":()=>o(()=>import("./installation.html.2e4550cf.js"),[]).then(({data:e})=>e),"v-44679d29":()=>o(()=>import("./account-maps.html.bdfb893c.js"),[]).then(({data:e})=>e),"v-b688ee96":()=>o(()=>import("./data-migration.html.6e4730c8.js"),[]).then(({data:e})=>e),"v-04e3168e":()=>o(()=>import("./debugging-solana-programs.html.73a43e11.js"),[]).then(({data:e})=>e),"v-6b5a9039":()=>o(()=>import("./feature-parity-testing.html.e7b6289c.js"),[]).then(({data:e})=>e),"v-d18839cc":()=>o(()=>import("./get-program-accounts.html.bc5b3f33.js"),[]).then(({data:e})=>e),"v-4eb5f58a":()=>o(()=>import("./retrying-transactions.html.1c6a3f05.js"),[]).then(({data:e})=>e),"v-17384ba2":()=>o(()=>import("./serialization.html.0fd086ee.js"),[]).then(({data:e})=>e),"v-0d7cc735":()=>o(()=>import("./versioned-transactions.html.cb88ab6b.js"),[]).then(({data:e})=>e),"v-57b135de":()=>o(()=>import("./index.html.598b0205.js"),[]).then(({data:e})=>e),"v-075c1d26":()=>o(()=>import("./jupiter.html.48042b94.js"),[]).then(({data:e})=>e),"v-09d68a28":()=>o(()=>import("./mango.html.eed1fdf5.js"),[]).then(({data:e})=>e),"v-430a817a":()=>o(()=>import("./orao-vrf.html.3832a801.js"),[]).then(({data:e})=>e),"v-83c4c26a":()=>o(()=>import("./pyth.html.88e1b3e3.js"),[]).then(({data:e})=>e),"v-460b6a3a":()=>o(()=>import("./react-native.html.d0423031.js"),[]).then(({data:e})=>e),"v-d559a69c":()=>o(()=>import("./OpenBook.html.80ffe6cc.js"),[]).then(({data:e})=>e),"v-0de4a28b":()=>o(()=>import("./strata.html.05d5fe56.js"),[]).then(({data:e})=>e),"v-9907ca10":()=>o(()=>import("./switchboard.html.9949baf8.js"),[]).then(({data:e})=>e),"v-6bf1f37e":()=>o(()=>import("./web3auth.html.b5da3c2e.js"),[]).then(({data:e})=>e),"v-39fc30ab":()=>o(()=>import("./accounts.html.705daa54.js"),[]).then(({data:e})=>e),"v-567dfebd":()=>o(()=>import("./basic-transactions.html.e4233694.js"),[]).then(({data:e})=>e),"v-09579540":()=>o(()=>import("./keypairs-and-wallets.html.4fa11b3e.js"),[]).then(({data:e})=>e),"v-04ce05a8":()=>o(()=>import("./local-development.html.2a116d81.js"),[]).then(({data:e})=>e),"v-7a18373e":()=>o(()=>import("./name-service.html.65503a5f.js"),[]).then(({data:e})=>e),"v-6d16e4fa":()=>o(()=>import("./nfts.html.8f57b7b1.js"),[]).then(({data:e})=>e),"v-3f4a7732":()=>o(()=>import("./offline-transactions.html.1d7f75c0.js"),[]).then(({data:e})=>e),"v-ec12307c":()=>o(()=>import("./programs.html.6e6eaba0.js"),[]).then(({data:e})=>e),"v-7747468a":()=>o(()=>import("./staking.html.0e9ae4bd.js"),[]).then(({data:e})=>e),"v-0463f188":()=>o(()=>import("./token.html.abb20884.js"),[]).then(({data:e})=>e),"v-52cd49a4":()=>o(()=>import("./accounts.html.8e89eb52.js"),[]).then(({data:e})=>e),"v-4a4be76e":()=>o(()=>import("./pdas.html.360db77f.js"),[]).then(({data:e})=>e),"v-26941245":()=>o(()=>import("./programs.html.12722776.js"),[]).then(({data:e})=>e),"v-2229e59f":()=>o(()=>import("./transactions.html.4904b5fe.js"),[]).then(({data:e})=>e),"v-e97c194e":()=>o(()=>import("./installation.html.9dc89678.js"),[]).then(({data:e})=>e),"v-c5b19a0e":()=>o(()=>import("./account-maps.html.d79562dd.js"),[]).then(({data:e})=>e),"v-68262af6":()=>o(()=>import("./data-migration.html.cd8a5967.js"),[]).then(({data:e})=>e),"v-a4865e2e":()=>o(()=>import("./debugging-solana-programs.html.6d280979.js"),[]).then(({data:e})=>e),"v-37352209":()=>o(()=>import("./feature-parity-testing.html.ec539d69.js"),[]).then(({data:e})=>e),"v-0d30a8ea":()=>o(()=>import("./get-program-accounts.html.dfc1f9ed.js"),[]).then(({data:e})=>e),"v-d14c2c8c":()=>o(()=>import("./retrying-transactions.html.9ed62c6f.js"),[]).then(({data:e})=>e),"v-5329205c":()=>o(()=>import("./serialization.html.4b397ef0.js"),[]).then(({data:e})=>e),"v-da88730a":()=>o(()=>import("./accounts.html.ff5e6a4d.js"),[]).then(({data:e})=>e),"v-2258908d":()=>o(()=>import("./basic-transactions.html.22d5c3fa.js"),[]).then(({data:e})=>e),"v-48d4f310":()=>o(()=>import("./keypairs-and-wallets.html.96505086.js"),[]).then(({data:e})=>e),"v-4d71f9d8":()=>o(()=>import("./local-development.html.0eff045a.js"),[]).then(({data:e})=>e),"v-cb0f35e4":()=>o(()=>import("./name-service.html.d6069fdf.js"),[]).then(({data:e})=>e),"v-b3ac3a6c":()=>o(()=>import("./nfts.html.cf97bb6d.js"),[]).then(({data:e})=>e),"v-7ec7d502":()=>o(()=>import("./offline-transactions.html.cff454eb.js"),[]).then(({data:e})=>e),"v-3a9304dc":()=>o(()=>import("./programs.html.6895a158.js"),[]).then(({data:e})=>e),"v-4055b6ba":()=>o(()=>import("./staking.html.ad2f2638.js"),[]).then(({data:e})=>e),"v-249ea490":()=>o(()=>import("./token.html.edd7bd6b.js"),[]).then(({data:e})=>e),"v-3f8c76bb":()=>o(()=>import("./accounts.html.9a24f48b.js"),[]).then(({data:e})=>e),"v-310cd17b":()=>o(()=>import("./pdas.html.8ac3fb57.js"),[]).then(({data:e})=>e),"v-e0f1a45c":()=>o(()=>import("./programs.html.ee69815a.js"),[]).then(({data:e})=>e),"v-5dda72ac":()=>o(()=>import("./transactions.html.a94c32b0.js"),[]).then(({data:e})=>e),"v-c5f91db4":()=>o(()=>import("./installation.html.04bddf91.js"),[]).then(({data:e})=>e),"v-e2f8eae8":()=>o(()=>import("./account-maps.html.54fde3f5.js"),[]).then(({data:e})=>e),"v-50dcad50":()=>o(()=>import("./data-migration.html.c9b6d0c5.js"),[]).then(({data:e})=>e),"v-387ebf94":()=>o(()=>import("./debugging-solana-programs.html.125832d7.js"),[]).then(({data:e})=>e),"v-5da35ddc":()=>o(()=>import("./feature-parity-testing.html.c3ce27d5.js"),[]).then(({data:e})=>e),"v-4791bd7d":()=>o(()=>import("./get-program-accounts.html.d60be8fc.js"),[]).then(({data:e})=>e),"v-adc930f2":()=>o(()=>import("./retrying-transactions.html.19b7816d.js"),[]).then(({data:e})=>e),"v-109a0a9f":()=>o(()=>import("./serialization.html.d3083af5.js"),[]).then(({data:e})=>e),"v-0074d650":()=>o(()=>import("./versioned-transactions.html.dc527468.js"),[]).then(({data:e})=>e),"v-18d9f78e":()=>o(()=>import("./index.html.39970545.js"),[]).then(({data:e})=>e),"v-14989f2c":()=>o(()=>import("./jupiter.html.193f6929.js"),[]).then(({data:e})=>e),"v-8cb43736":()=>o(()=>import("./mango.html.3a0b1927.js"),[]).then(({data:e})=>e),"v-67e8ee24":()=>o(()=>import("./pyth.html.c3ff410a.js"),[]).then(({data:e})=>e),"v-fe8d3bf4":()=>o(()=>import("./react-native.html.91ec52b0.js"),[]).then(({data:e})=>e),"v-452286ef":()=>o(()=>import("./OpenBook.html.9e977ae7.js"),[]).then(({data:e})=>e),"v-58008fee":()=>o(()=>import("./strata.html.707b0e85.js"),[]).then(({data:e})=>e),"v-d087d916":()=>o(()=>import("./switchboard.html.0d636392.js"),[]).then(({data:e})=>e),"v-0645b238":()=>o(()=>import("./web3auth.html.1b987809.js"),[]).then(({data:e})=>e),"v-f7cfc3e4":()=>o(()=>import("./accounts.html.6a7a3655.js"),[]).then(({data:e})=>e),"v-48c6cc60":()=>o(()=>import("./basic-transactions.html.145d9f79.js"),[]).then(({data:e})=>e),"v-e6b8f3ba":()=>o(()=>import("./keypairs-and-wallets.html.06b48140.js"),[]).then(({data:e})=>e),"v-5f3377a5":()=>o(()=>import("./local-development.html.8d6577e9.js"),[]).then(({data:e})=>e),"v-4fe8bb21":()=>o(()=>import("./name-service.html.2caf8c15.js"),[]).then(({data:e})=>e),"v-00aefbdd":()=>o(()=>import("./nfts.html.d0725425.js"),[]).then(({data:e})=>e),"v-7ad32fd6":()=>o(()=>import("./offline-transactions.html.694e5a9c.js"),[]).then(({data:e})=>e),"v-57da55b6":()=>o(()=>import("./programs.html.39ac6b79.js"),[]).then(({data:e})=>e),"v-2716a0c7":()=>o(()=>import("./staking.html.6dbe22bd.js"),[]).then(({data:e})=>e),"v-386291f6":()=>o(()=>import("./token.html.997564bc.js"),[]).then(({data:e})=>e),"v-46a93876":()=>o(()=>import("./accounts.html.5a5d0844.js"),[]).then(({data:e})=>e),"v-5aefd385":()=>o(()=>import("./pdas.html.2b207b9f.js"),[]).then(({data:e})=>e),"v-2ca61adc":()=>o(()=>import("./programs.html.3d46bb1d.js"),[]).then(({data:e})=>e),"v-4847cab6":()=>o(()=>import("./transactions.html.ee5db7dc.js"),[]).then(({data:e})=>e),"v-bd0a22a0":()=>o(()=>import("./installation.html.f389c1e2.js"),[]).then(({data:e})=>e),"v-bdfe6c7c":()=>o(()=>import("./account-maps.html.c1ccf667.js"),[]).then(({data:e})=>e),"v-3fbbf30e":()=>o(()=>import("./data-migration.html.81a46ce7.js"),[]).then(({data:e})=>e),"v-846b6e80":()=>o(()=>import("./debugging-solana-programs.html.be9db9a6.js"),[]).then(({data:e})=>e),"v-2fc8dcdc":()=>o(()=>import("./feature-parity-testing.html.1da58904.js"),[]).then(({data:e})=>e),"v-aa61329a":()=>o(()=>import("./get-program-accounts.html.34a6b3c3.js"),[]).then(({data:e})=>e),"v-a4da35de":()=>o(()=>import("./retrying-transactions.html.ffc8835b.js"),[]).then(({data:e})=>e),"v-4dc4b229":()=>o(()=>import("./serialization.html.7c84274e.js"),[]).then(({data:e})=>e),"v-d2d54578":()=>o(()=>import("./accounts.html.dde6cff9.js"),[]).then(({data:e})=>e),"v-5981ffd4":()=>o(()=>import("./basic-transactions.html.598e40ad.js"),[]).then(({data:e})=>e),"v-59dda459":()=>o(()=>import("./keypairs-and-wallets.html.cc9959ad.js"),[]).then(({data:e})=>e),"v-63aaf52f":()=>o(()=>import("./local-development.html.61336a2a.js"),[]).then(({data:e})=>e),"v-56a76f57":()=>o(()=>import("./name-service.html.1a8fc34e.js"),[]).then(({data:e})=>e),"v-41e84613":()=>o(()=>import("./nfts.html.fdb7230c.js"),[]).then(({data:e})=>e),"v-e05ef36a":()=>o(()=>import("./offline-transactions.html.1b42c3a2.js"),[]).then(({data:e})=>e),"v-32dfd74a":()=>o(()=>import("./programs.html.23836cb0.js"),[]).then(({data:e})=>e),"v-50f9a2d1":()=>o(()=>import("./staking.html.cffbd136.js"),[]).then(({data:e})=>e),"v-6c8298e2":()=>o(()=>import("./token.html.1829a651.js"),[]).then(({data:e})=>e),"v-6a35b27a":()=>o(()=>import("./accounts.html.149df989.js"),[]).then(({data:e})=>e),"v-8e20768c":()=>o(()=>import("./pdas.html.eca9a894.js"),[]).then(({data:e})=>e),"v-8b9f2cde":()=>o(()=>import("./programs.html.fcfb4c07.js"),[]).then(({data:e})=>e),"v-55f1b6eb":()=>o(()=>import("./transactions.html.f33ee4e9.js"),[]).then(({data:e})=>e),"v-274abcb6":()=>o(()=>import("./installation.html.fd583852.js"),[]).then(({data:e})=>e),"v-02feff2d":()=>o(()=>import("./account-maps.html.2bc51567.js"),[]).then(({data:e})=>e),"v-1b0279b9":()=>o(()=>import("./data-migration.html.159d137d.js"),[]).then(({data:e})=>e),"v-5afd7935":()=>o(()=>import("./debugging-solana-programs.html.afe6a517.js"),[]).then(({data:e})=>e),"v-0d9b8586":()=>o(()=>import("./feature-parity-testing.html.270f9679.js"),[]).then(({data:e})=>e),"v-5263011e":()=>o(()=>import("./get-program-accounts.html.43b20beb.js"),[]).then(({data:e})=>e),"v-0f1acff4":()=>o(()=>import("./retrying-transactions.html.fdf6b1f8.js"),[]).then(({data:e})=>e),"v-2b8d2a1e":()=>o(()=>import("./serialization.html.b936ab13.js"),[]).then(({data:e})=>e),"v-35d91d8d":()=>o(()=>import("./index.html.aff3e832.js"),[]).then(({data:e})=>e),"v-10a6cfe9":()=>o(()=>import("./jupiter.html.bf3c7738.js"),[]).then(({data:e})=>e),"v-4188d7a4":()=>o(()=>import("./mango.html.6e60417f.js"),[]).then(({data:e})=>e),"v-5f249c62":()=>o(()=>import("./pyth.html.e78c490b.js"),[]).then(({data:e})=>e),"v-049919e7":()=>o(()=>import("./react-native.html.e5857799.js"),[]).then(({data:e})=>e),"v-65f50ba4":()=>o(()=>import("./OpenBook.html.e7981cfb.js"),[]).then(({data:e})=>e),"v-6707f6e2":()=>o(()=>import("./strata.html.616b3643.js"),[]).then(({data:e})=>e),"v-85f54918":()=>o(()=>import("./switchboard.html.661b737d.js"),[]).then(({data:e})=>e),"v-404df745":()=>o(()=>import("./web3auth.html.daa80ae3.js"),[]).then(({data:e})=>e),"v-0ed8daa2":()=>o(()=>import("./accounts.html.928ccf41.js"),[]).then(({data:e})=>e),"v-3754a87e":()=>o(()=>import("./basic-transactions.html.81d4c6bc.js"),[]).then(({data:e})=>e),"v-7ff81144":()=>o(()=>import("./keypairs-and-wallets.html.f62ce6aa.js"),[]).then(({data:e})=>e),"v-a2eaafb8":()=>o(()=>import("./local-development.html.2abc6315.js"),[]).then(({data:e})=>e),"v-7a66f742":()=>o(()=>import("./name-service.html.625e197d.js"),[]).then(({data:e})=>e),"v-1b97e8fe":()=>o(()=>import("./nfts.html.595f8f64.js"),[]).then(({data:e})=>e),"v-942a1994":()=>o(()=>import("./offline-transactions.html.81a50c51.js"),[]).then(({data:e})=>e),"v-488e49c6":()=>o(()=>import("./programs.html.d21ae222.js"),[]).then(({data:e})=>e),"v-a20cd7f4":()=>o(()=>import("./staking.html.65c2cb9f.js"),[]).then(({data:e})=>e),"v-26036e04":()=>o(()=>import("./token.html.e135cbcd.js"),[]).then(({data:e})=>e),"v-43987c75":()=>o(()=>import("./accounts.html.34134782.js"),[]).then(({data:e})=>e),"v-3c24c435":()=>o(()=>import("./pdas.html.ea02eb75.js"),[]).then(({data:e})=>e),"v-d8d998e8":()=>o(()=>import("./programs.html.34dde9fb.js"),[]).then(({data:e})=>e),"v-66cde934":()=>o(()=>import("./transactions.html.63c9ce66.js"),[]).then(({data:e})=>e),"v-567ec360":()=>o(()=>import("./installation.html.91886c17.js"),[]).then(({data:e})=>e),"v-3706649a":()=>o(()=>import("./404.html.f166316b.js"),[]).then(({data:e})=>e)},yc=Ee(dm),kc=_i({key:"",path:"",title:"",lang:"",frontmatter:{},excerpt:"",headers:[]}),ut=Ee(kc),rl=()=>ut;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updatePageData=e=>{yc.value[e.key]=()=>Promise.resolve(e),e.key===ut.value.key&&(ut.value=e)});const Ec=Symbol(""),hm=()=>{const e=Re(Ec);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},wc=Symbol(""),gm=()=>{const e=Re(wc);if(!e)throw new Error("usePageHead() is called without provider.");return e},mm=Symbol(""),Pc=Symbol(""),Tc=()=>{const e=Re(Pc);if(!e)throw new Error("usePageLang() is called without provider.");return e},Vi=Symbol(""),Fi=()=>{const e=Re(Vi);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},vm={base:"/",lang:"en-US",title:"Solana Cookbook",description:"",head:[["link",{rel:"icon",href:"/solana_cookbook_lightmode.svg"}],["script",{"data-domain":"solanacookbook.com",src:"https://plausible.io/js/plausible.js"}]],locales:{"/":{lang:"en-US",title:"Solana Cookbook"},"/zh/":{lang:"zh-CN",title:"Solana\u79D8\u7C4D"},"/es/":{lang:"es",title:"Solana Cookbook"},"/de/":{lang:"de-DE",title:"Solana Cookbook"},"/vi/":{lang:"vi-VN",title:"To\xE0n t\u1EADp Solana"},"/th/":{lang:"th-TH",title:"\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D Solana"},"/fr/":{lang:"fr-FR",title:"Solana Cookbook"},"/id/":{lang:"id-ID",title:"Buku Panduan Solana"},"/kr/":{lang:"kr-KR",title:"Solana Cookbook"},"/tr/":{lang:"tr-TR",title:"Solana Cookbook"},"/ja/":{lang:"ja-JP",title:"Solana Cookbook"}}},Et=Ee(vm),Ac=()=>Et;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updateSiteData=e=>{Et.value=e});const Oc=Symbol(""),W_=()=>{const e=Re(Oc);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},pm=Symbol(""),Ni=e=>{let t;e.pageKey?t=e.pageKey:t=rl().value.key;const n=bc[t];return n?ee(n):ee("div","404 Not Found")};Ni.displayName="Content";Ni.props={pageKey:{type:String,required:!1}};const fm={"404":h(()=>o(()=>import("./404.d06afe94.js"),[])),Layout:h(()=>o(()=>import("./Layout.5fd86386.js"),[]))},_m=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),bm=e=>{const t=new Set,n=[];return e.forEach(l=>{const r=_m(l);t.has(r)||(t.add(r),n.push(l))}),n},ym=e=>/^(https?:)?\/\//.test(e),$_=e=>/^mailto:/.test(e),G_=e=>/^tel:/.test(e),Lc=e=>Object.prototype.toString.call(e)==="[object Object]",km=e=>e.replace(/\/$/,""),Em=e=>e.replace(/^\//,""),Sc=(e,t)=>{const n=Object.keys(e).sort((l,r)=>{const i=r.split("/").length-l.split("/").length;return i!==0?i:r.length-l.length});for(const l of n)if(t.startsWith(l))return l;return"/"},wm=(e,t="/")=>e.replace(/^(https?:)?\/\/[^/]*/,"").replace(new RegExp(`^${t}`),"/"),Ba=ze({name:"Vuepress",setup(){const e=rl(),t=_e(()=>{let n;if(e.value.path){const l=e.value.frontmatter.layout;be(l)?n=l:n="Layout"}else n="404";return fm[n]||gh(n,!1)});return()=>ee(t.value)}}),Lt=e=>e,Mi=e=>e,Pm=e=>ym(e)?e:`${Ac().value.base}${Em(e)}`,Vt=_n({resolvePageData:async e=>{const t=yc.value[e],n=await(t==null?void 0:t());return n!=null?n:kc},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const l=be(t.description)?t.description:n.description,r=[...te(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:l}]];return bm(r)},resolvePageHeadTitle:(e,t)=>`${e.title?`${e.title} | `:""}${t.title}`,resolvePageLang:e=>e.lang||"en",resolveRouteLocale:(e,t)=>Sc(e,t),resolveSiteLocaleData:(e,t)=>xe(xe({},e),e.locales[t])});const Tm=ee("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[ee("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),ee("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),Am=ze({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=Fi(),n=_e(()=>{var l;return(l=e.locales[t.value])!==null&&l!==void 0?l:{openInNewWindow:"open in new window"}});return()=>ee("span",[Tm,ee("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}}),Om={"/":{openInNewWindow:"open in new window"},"/zh/":{openInNewWindow:"open in new window"},"/es/":{openInNewWindow:"open in new window"},"/de/":{openInNewWindow:"open in new window"},"/vi/":{openInNewWindow:"open in new window"},"/th/":{openInNewWindow:"open in new window"},"/fr/":{openInNewWindow:"open in new window"},"/id/":{openInNewWindow:"open in new window"},"/tr/":{openInNewWindow:"open in new window"},"/kr/":{openInNewWindow:"open in new window"},"/ja/":{openInNewWindow:"open in new window"}};var Lm=Lt(({app:e})=>{e.component("ExternalLinkIcon",ee(Am,{locales:Om}))});/*! medium-zoom 1.0.6 | MIT License | https://github.com/francoischalifour/medium-zoom */var Ft=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},l=window.Promise||function(L){function H(){}L(H,H)},r=function(L){var H=L.target;if(H===K){m();return}P.indexOf(H)!==-1&&_({target:H})},i=function(){if(!(D||!O.original)){var L=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(F-L)>S.scrollOffset&&setTimeout(m,150)}},a=function(L){var H=L.key||L.keyCode;(H==="Escape"||H==="Esc"||H===27)&&m()},s=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=L;if(L.background&&(K.style.background=L.background),L.container&&L.container instanceof Object&&(H.container=Ft({},S.container,L.container)),L.template){var Q=kl(L.template)?L.template:document.querySelector(L.template);H.template=Q}return S=Ft({},S,H),P.forEach(function(se){se.dispatchEvent(Yt("medium-zoom:update",{detail:{zoom:B}}))}),B},c=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Ft({},S,L))},u=function(){for(var L=arguments.length,H=Array(L),Q=0;Q0?H.reduce(function(J,le){return[].concat(J,Ka(le))},[]):P;return se.forEach(function(J){J.classList.remove("medium-zoom-image"),J.dispatchEvent(Yt("medium-zoom:detach",{detail:{zoom:B}}))}),P=P.filter(function(J){return se.indexOf(J)===-1}),B},v=function(L,H){var Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return P.forEach(function(se){se.addEventListener("medium-zoom:"+L,H,Q)}),A.push({type:"medium-zoom:"+L,listener:H,options:Q}),B},g=function(L,H){var Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return P.forEach(function(se){se.removeEventListener("medium-zoom:"+L,H,Q)}),A=A.filter(function(se){return!(se.type==="medium-zoom:"+L&&se.listener.toString()===H.toString())}),B},b=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=L.target,Q=function(){var J={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},le=void 0,re=void 0;if(S.container)if(S.container instanceof Object)J=Ft({},J,S.container),le=J.width-J.left-J.right-S.margin*2,re=J.height-J.top-J.bottom-S.margin*2;else{var we=kl(S.container)?S.container:document.querySelector(S.container),Ae=we.getBoundingClientRect(),Le=Ae.width,Pe=Ae.height,Ie=Ae.left,He=Ae.top;J=Ft({},J,{width:Le,height:Pe,left:Ie,top:He})}le=le||J.width-S.margin*2,re=re||J.height-S.margin*2;var I=O.zoomedHd||O.original,U=Ua(I)?le:I.naturalWidth||le,N=Ua(I)?re:I.naturalHeight||re,q=I.getBoundingClientRect(),ue=q.top,me=q.left,ie=q.width,ne=q.height,p=Math.min(U,le)/ie,k=Math.min(N,re)/ne,T=Math.min(p,k),R=(-me+(le-ie)/2+S.margin+J.left)/T,C=(-ue+(re-ne)/2+S.margin+J.top)/T,x="scale("+T+") translate3d("+R+"px, "+C+"px, 0)";O.zoomed.style.transform=x,O.zoomedHd&&(O.zoomedHd.style.transform=x)};return new l(function(se){if(H&&P.indexOf(H)===-1){se(B);return}var J=function Le(){D=!1,O.zoomed.removeEventListener("transitionend",Le),O.original.dispatchEvent(Yt("medium-zoom:opened",{detail:{zoom:B}})),se(B)};if(O.zoomed){se(B);return}if(H)O.original=H;else if(P.length>0){var le=P;O.original=le[0]}else{se(B);return}if(O.original.dispatchEvent(Yt("medium-zoom:open",{detail:{zoom:B}})),F=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,D=!0,O.zoomed=Rm(O.original),document.body.appendChild(K),S.template){var re=kl(S.template)?S.template:document.querySelector(S.template);O.template=document.createElement("div"),O.template.appendChild(re.content.cloneNode(!0)),document.body.appendChild(O.template)}if(document.body.appendChild(O.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),O.original.classList.add("medium-zoom-image--hidden"),O.zoomed.classList.add("medium-zoom-image--opened"),O.zoomed.addEventListener("click",m),O.zoomed.addEventListener("transitionend",J),O.original.getAttribute("data-zoom-src")){O.zoomedHd=O.zoomed.cloneNode(),O.zoomedHd.removeAttribute("srcset"),O.zoomedHd.removeAttribute("sizes"),O.zoomedHd.src=O.zoomed.getAttribute("data-zoom-src"),O.zoomedHd.onerror=function(){clearInterval(we),console.warn("Unable to reach the zoom image target "+O.zoomedHd.src),O.zoomedHd=null,Q()};var we=setInterval(function(){O.zoomedHd.complete&&(clearInterval(we),O.zoomedHd.classList.add("medium-zoom-image--opened"),O.zoomedHd.addEventListener("click",m),document.body.appendChild(O.zoomedHd),Q())},10)}else if(O.original.hasAttribute("srcset")){O.zoomedHd=O.zoomed.cloneNode(),O.zoomedHd.removeAttribute("sizes"),O.zoomedHd.removeAttribute("loading");var Ae=O.zoomedHd.addEventListener("load",function(){O.zoomedHd.removeEventListener("load",Ae),O.zoomedHd.classList.add("medium-zoom-image--opened"),O.zoomedHd.addEventListener("click",m),document.body.appendChild(O.zoomedHd),Q()})}else Q()})},m=function(){return new l(function(L){if(D||!O.original){L(B);return}var H=function Q(){O.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(O.zoomed),O.zoomedHd&&document.body.removeChild(O.zoomedHd),document.body.removeChild(K),O.zoomed.classList.remove("medium-zoom-image--opened"),O.template&&document.body.removeChild(O.template),D=!1,O.zoomed.removeEventListener("transitionend",Q),O.original.dispatchEvent(Yt("medium-zoom:closed",{detail:{zoom:B}})),O.original=null,O.zoomed=null,O.zoomedHd=null,O.template=null,L(B)};D=!0,document.body.classList.remove("medium-zoom--opened"),O.zoomed.style.transform="",O.zoomedHd&&(O.zoomedHd.style.transform=""),O.template&&(O.template.style.transition="opacity 150ms",O.template.style.opacity=0),O.original.dispatchEvent(Yt("medium-zoom:close",{detail:{zoom:B}})),O.zoomed.addEventListener("transitionend",H)})},_=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=L.target;return O.original?m():b({target:H})},f=function(){return S},y=function(){return P},w=function(){return O.original},P=[],A=[],D=!1,F=0,S=n,O={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?S=t:(t||typeof t=="string")&&u(t),S=Ft({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},S);var K=Dm(S.background);document.addEventListener("click",r),document.addEventListener("keyup",a),document.addEventListener("scroll",i),window.addEventListener("resize",m);var B={open:b,close:m,toggle:_,update:s,clone:c,attach:u,detach:d,on:v,off:g,getOptions:f,getImages:y,getZoomedImage:w};return B};function Cm(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document=="undefined")){var l=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",n==="top"&&l.firstChild?l.insertBefore(r,l.firstChild):l.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var xm=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Cm(xm);var jm=Im;const Vm=Symbol("mediumZoom");const Fm=".theme-default-content > img, .theme-default-content :not(a) > img",Nm={},Mm=300;var zm=Lt(({app:e,router:t})=>{const n=jm(Nm);n.refresh=(l=Fm)=>{n.detach(),n.attach(l)},e.provide(Vm,n),t.afterEach(()=>{setTimeout(()=>n.refresh(),Mm)})});const Hm={logo:"/solana_cookbook_lightmode.svg",logoDark:"/solana_cookbook_darkmode.svg",contributors:!0,algolia:{apiKey:"1831a64a81ffef4f85d5c0aa28cb801f",indexName:"solanacookbook",appId:"QMKSKREFKN",algoliaOptions:{hitsPerPage:10}},locales:{"/":{navbar:[{text:"Contribute",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrations",link:"/integrations"}],sidebar:{"/":[{text:"Getting Started",children:["/","/getting-started/installation.md"]},{text:"Core Concepts",children:["/core-concepts/accounts.md","/core-concepts/programs.md","/core-concepts/transactions.md","/core-concepts/pdas.md","/core-concepts/cpi.md"]},{text:"Guides",children:["/guides/get-program-accounts.md","/guides/serialization.md","/guides/data-migration.md","/guides/account-maps.md","/guides/retrying-transactions.md","/guides/debugging-solana-programs.md","/guides/feature-parity-testing.md","/guides/versioned-transactions.md"]},{text:"References",children:["/references/local-development.md","/references/keypairs-and-wallets.md","/references/basic-transactions.md","/references/accounts.md","/references/programs.md","/references/token.md","/references/staking.md","/references/nfts.md","/references/offline-transactions.md","/references/name-service.md",{text:"Gaming",collapsible:!0,children:["/gaming/intro.md","/gaming/game-sdks.md","/gaming/nfts-in-games.md","/gaming/hello-world.md","/gaming/store-sol-in-pda.md","/gaming/saving-game-state.md","/gaming/energy-system.md","/gaming/interact-with-tokens.md","/gaming/porting-anchor-to-unity.md","/gaming/distribution.md","/gaming/game-examples.md"]}]}],"/integrations":[{text:"Integrations",children:["/integrations","/integrations/serum.md","/integrations/pyth.md","/integrations/switchboard.md","/integrations/mango.md","/integrations/strata.md","/integrations/web3auth.md","/integrations/react-native.md","/integrations/jupiter.md","/integrations/orao-vrf.md"]}]},selectLanguageName:"English"},"/zh/":{selectLanguageName:"\u4E2D\u6587",navbar:[{text:"\u8D21\u732E\u4EE3\u7801",link:"https://github.com/solana-developers/solana-cookbook"}],sidebar:[{text:"\u5F00\u59CB\u4F7F\u7528",children:["/zh/","/zh/getting-started/installation.md"]},{text:"\u6838\u5FC3\u6982\u5FF5",children:["/zh/core-concepts/accounts.md","/zh/core-concepts/programs.md","/zh/core-concepts/transactions.md","/zh/core-concepts/pdas.md"]},{text:"\u6307\u5357",children:[]},{text:"\u53C2\u8003",children:[]}]},"/es/":{selectLanguageName:"Spanish",navbar:[{text:"Contribuir",link:"https://github.com/solana-developers/solana-cookbook"}],sidebar:{"/":[{text:"Primeros pasos",children:["/es/","/es/getting-started/installation.md"]},{text:"Conceptos clave",children:["/es/core-concepts/accounts.md","/es/core-concepts/programs.md","/es/core-concepts/transactions.md","/es/core-concepts/pdas.md"]},{text:"Gu\xEDas",children:["/es/guides/get-program-accounts.md","/es/guides/serialization.md","/es/guides/data-migration.md","/es/guides/account-maps.md","/es/guides/retrying-transactions.md","/es/guides/debugging-solana-programs.md","/es/guides/feature-parity-testing.md"]},{text:"Referencias",children:["/es/references/local-development.md","/es/references/keypairs-and-wallets.md","/es/references/basic-transactions.md","/es/references/accounts.md","/es/references/programs.md","/es/references/token.md","/es/references/staking.md","/es/references/nfts.md","/es/references/offline-transactions.md","/es/references/name-service.md"]}]}},"/de/":{selectLanguageName:"Deutsch",navbar:[{text:"Kontributor",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrationen",link:"/de/integrations"}],sidebar:{"/":[{text:"F\xFCr Beginner",children:["/de/","/de/getting-started/installation.md"]},{text:"Fundamentale Konzepte",children:["/de/core-concepts/accounts.md","/de/core-concepts/programs.md","/de/core-concepts/transactions.md","/de/core-concepts/pdas.md"]},{text:"Guides",children:["/de/guides/get-program-accounts.md","/de/guides/serialization.md","/de/guides/data-migration.md","/de/guides/account-maps.md","/de/guides/retrying-transactions.md","/de/guides/debugging-solana-programs.md","/de/guides/feature-parity-testing.md"]},{text:"Referenzen",children:["/de/references/local-development.md","/de/references/keypairs-and-wallets.md","/de/references/basic-transactions.md","/de/references/accounts.md","/de/references/programs.md","/de/references/token.md","/de/references/staking.md","/de/references/nfts.md","/de/references/offline-transactions.md","/de/references/name-service.md"]}],"/de/integrations":[{text:"Integrationen",children:["/de/integrations","/de/integrations/serum.md","/de/integrations/pyth.md","/de/integrations/switchboard.md","/de/integrations/mango.md","/de/integrations/strata.md","/de/integrations/web3auth.md","/de/integrations/react-native.md","/de/integrations/jupiter.md"]}]}},"/vi/":{selectLanguageName:"Ti\u1EBFng Vi\u1EC7t",navbar:[{text:"\u0110\xF3ng g\xF3p",link:"https://github.com/solana-developers/solana-cookbook"},{text:"T\xEDch h\u1EE3p",link:"/vi/integrations"}],sidebar:{"/vi/":[{text:"M\u1EDF \u0111\u1EA7u",children:["/vi/","/vi/getting-started/installation.md"]},{text:"Kh\xE1i ni\u1EC7m c\u0103n b\u1EA3n",children:["/vi/core-concepts/accounts.md","/vi/core-concepts/programs.md","/vi/core-concepts/transactions.md","/vi/core-concepts/pdas.md"]},{text:"H\u01B0\u1EDBng d\u1EABn",children:["/vi/guides/get-program-accounts.md","/vi/guides/serialization.md","/vi/guides/data-migration.md","/vi/guides/account-maps.md","/vi/guides/retrying-transactions.md","/vi/guides/debugging-solana-programs.md","/vi/guides/feature-parity-testing.md"]},{text:"Tham kh\u1EA3o",children:["/vi/references/local-development.md","/vi/references/keypairs-and-wallets.md","/vi/references/basic-transactions.md","/vi/references/accounts.md","/vi/references/programs.md","/vi/references/token.md","/vi/references/staking.md","/vi/references/nfts.md","/vi/references/offline-transactions.md","/vi/references/name-service.md"]}],"/vi/integrations":[{text:"T\xEDch h\u1EE3p",children:["/vi/integrations","/vi/integrations/serum.md","/vi/integrations/pyth.md","/vi/integrations/switchboard.md","/vi/integrations/mango.md","/vi/integrations/strata.md","/vi/integrations/web3auth.md","/vi/integrations/react-native.md","/vi/integrations/jupiter.md"]}]}},"/th/":{selectLanguageName:"\u0E44\u0E17\u0E22",navbar:[{text:"\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E19\u0E40\u0E02\u0E35\u0E22\u0E19",link:"https://github.com/solana-developers/solana-cookbook"},{text:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",link:"/th/integrations"}],sidebar:{"/th/":[{text:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19",children:["/th/","/th/getting-started/installation.md"]},{text:"\u0E41\u0E19\u0E27\u0E04\u0E27\u0E32\u0E21\u0E04\u0E34\u0E14\u0E2B\u0E25\u0E31\u0E01",children:["/th/core-concepts/accounts.md","/th/core-concepts/programs.md","/th/core-concepts/transactions.md","/th/core-concepts/pdas.md"]},{text:"\u0E41\u0E19\u0E27\u0E17\u0E32\u0E07",children:["/th/guides/get-program-accounts.md","/th/guides/serialization.md","/th/guides/data-migration.md","/th/guides/account-maps.md","/th/guides/retrying-transactions.md","/th/guides/debugging-solana-programs.md","/th/guides/feature-parity-testing.md","/th/guides/versioned-transactions.md"]},{text:"\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07",children:["/th/references/local-development.md","/th/references/keypairs-and-wallets.md","/th/references/basic-transactions.md","/th/references/accounts.md","/th/references/programs.md","/th/references/token.md","/th/references/staking.md","/th/references/nfts.md","/th/references/offline-transactions.md","/th/references/name-service.md"]}],"/th/integrations":[{text:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",children:["/th/integrations","/th/integrations/serum.md","/th/integrations/pyth.md","/th/integrations/switchboard.md","/th/integrations/mango.md","/th/integrations/strata.md","/th/integrations/web3auth.md","/th/integrations/react-native.md","/th/integrations/jupiter.md"]}]}},"/fr/":{selectLanguageName:"Fran\xE7ais",navbar:[{text:"Contribuer",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Int\xE9grations",link:"/fr/integrations"}],sidebar:{"/fr/":[{text:"Pour Commencer",children:["/fr/","/fr/getting-started/installation.md"]},{text:"Concepts Fondamentaux",children:["/fr/core-concepts/accounts.md","/fr/core-concepts/programs.md","/fr/core-concepts/transactions.md","/fr/core-concepts/pdas.md"]},{text:"Guides",children:["/fr/guides/get-program-accounts.md","/fr/guides/serialization.md","/fr/guides/data-migration.md","/fr/guides/account-maps.md","/fr/guides/retrying-transactions.md","/fr/guides/debugging-solana-programs.md","/fr/guides/feature-parity-testing.md"]},{text:"R\xE9f\xE9rences",children:["/fr/references/local-development.md","/fr/references/keypairs-and-wallets.md","/fr/references/basic-transactions.md","/fr/references/accounts.md","/fr/references/programs.md","/fr/references/token.md","/fr/references/staking.md","/fr/references/nfts.md","/fr/references/offline-transactions.md","/fr/references/name-service.md"]}],"/fr/integrations":[{text:"Int\xE9grations",children:["/fr/integrations","/fr/integrations/serum.md","/fr/integrations/pyth.md","/fr/integrations/switchboard.md","/fr/integrations/mango.md","/fr/integrations/strata.md","/fr/integrations/web3auth.md","/fr/integrations/react-native.md","/fr/integrations/jupiter.md"]}]}},"/id/":{selectLanguageName:"Bahasa Indonesia",navbar:[{text:"Kontribusi",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrasi",link:"/id/integrations"}],sidebar:{"/":[{text:"Memulai",children:["/id/","/id/getting-started/installation.md"]},{text:"Konsep Utama",children:["/id/core-concepts/accounts.md","/id/core-concepts/programs.md","/id/core-concepts/transactions.md","/id/core-concepts/pdas.md"]},{text:"Panduan",children:["/id/guides/get-program-accounts.md","/id/guides/serialization.md","/id/guides/data-migration.md","/id/guides/account-maps.md","/id/guides/retrying-transactions.md","/id/guides/debugging-solana-programs.md","/id/guides/feature-parity-testing.md"]},{text:"Referensi",children:["/id/references/local-development.md","/id/references/keypairs-and-wallets.md","/id/references/basic-transactions.md","/id/references/accounts.md","/id/references/programs.md","/id/references/token.md","/id/references/staking.md","/id/references/nfts.md","/id/references/offline-transactions.md","/id/references/name-service.md"]}],"/id/integrations":[{text:"Integrasi",children:["/id/integrations","/id/integrations/serum.md","/id/integrations/pyth.md","/id/integrations/switchboard.md","/id/integrations/mango.md","/id/integrations/strata.md","/id/integrations/web3auth.md","/id/integrations/react-native.md","/id/integrations/jupiter.md"]}]}},"/tr/":{selectLanguageName:"T\xFCrk\xE7e",navbar:[{text:"Katk\u0131 yapmak",link:"https://github.com/solana-developers/solana-cookbook"}],sidebar:{"/tr/":[{text:"Ba\u015Flarken",children:["/tr/","/tr/getting-started/installation.md"]},{text:"Temel Kavramlar",children:["/tr/core-concepts/accounts.md","/tr/core-concepts/programs.md","/tr/core-concepts/transactions.md","/tr/core-concepts/pdas.md"]},{text:"K\u0131lavuzlar",children:["/tr/guides/get-program-accounts.md","/tr/guides/serialization.md","/tr/guides/data-migration.md","/tr/guides/account-maps.md","/tr/guides/retrying-transactions.md","/tr/guides/debugging-solana-programs.md","/tr/guides/feature-parity-testing.md"]},{text:"Referanslar",children:["/tr/references/local-development.md","/tr/references/keypairs-and-wallets.md","/tr/references/basic-transactions.md","/tr/references/accounts.md","/tr/references/programs.md","/tr/references/token.md","/tr/references/staking.md","/tr/references/nfts.md","/tr/references/offline-transactions.md","/tr/references/name-service.md"]}]}},"/kr/":{selectLanguageName:"\uD55C\uAD6D\uC5B4",navbar:[{text:"Contribute",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrations",link:"/integrations"}],sidebar:{"/":[{text:"Getting Started",children:["/kr/","/kr/getting-started/installation.md"]},{text:"Core Concepts",children:["/kr/core-concepts/accounts.md","/kr/core-concepts/programs.md","/kr/core-concepts/transactions.md","/kr/core-concepts/pdas.md"]},{text:"Guides",children:["/kr/guides/get-program-accounts.md","/kr/guides/serialization.md","/kr/guides/data-migration.md","/kr/guides/account-maps.md","/kr/guides/retrying-transactions.md","/kr/guides/debugging-solana-programs.md","/kr/guides/feature-parity-testing.md"]},{text:"References",children:["/kr/references/local-development.md","/kr/references/keypairs-and-wallets.md","/kr/references/basic-transactions.md","/kr/references/accounts.md","/kr/references/programs.md","/kr/references/token.md","/kr/references/staking.md","/kr/references/nfts.md","/kr/references/offline-transactions.md","/kr/references/name-service.md"]}],"/integrations":[{text:"Integrations",children:["/integrations","/integrations/serum.md","/integrations/pyth.md","/integrations/switchboard.md","/integrations/mango.md","/integrations/strata.md","/integrations/web3auth.md","/integrations/react-native.md","/integrations/jupiter.md"]}]}},"/ja/":{selectLanguageName:"\u65E5\u672C\u8A9E",navbar:[{text:"\u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30C8",link:"https://github.com/solana-developers/solana-cookbook"},{text:"\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3",link:"/ja/integrations"}],sidebar:{"/":[{text:"\u306F\u3058\u3081\u306B",children:["/ja/","/ja/getting-started/installation.md"]},{text:"\u30B3\u30A2\u30B3\u30F3\u30BB\u30D7\u30C8",children:["/ja/core-concepts/accounts.md","/ja/core-concepts/programs.md","/ja/core-concepts/transactions.md","/ja/core-concepts/pdas.md","/ja/core-concepts/cpi.md"]},{text:"\u30AC\u30A4\u30C9",children:["/ja/guides/get-program-accounts.md","/ja/guides/serialization.md","/ja/guides/data-migration.md","/ja/guides/account-maps.md","/ja/guides/retrying-transactions.md","/ja/guides/debugging-solana-programs.md","/ja/guides/feature-parity-testing.md"]},{text:"\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9",children:["/ja/references/local-development.md","/ja/references/keypairs-and-wallets.md","/ja/references/basic-transactions.md","/ja/references/accounts.md","/ja/references/programs.md","/ja/references/token.md","/ja/references/staking.md","/ja/references/nfts.md","/ja/references/offline-transactions.md","/ja/references/name-service.md"]}],"/ja/integrations":[{text:"\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3",children:["/ja/integrations","/ja/integrations/serum.md","/ja/integrations/pyth.md","/ja/integrations/switchboard.md","/ja/integrations/mango.md","/ja/integrations/strata.md","/ja/integrations/web3auth.md","/ja/integrations/react-native.md","/ja/integrations/jupiter.md","/ja/integrations/orao-vrf.md"]}]}}},navbar:[],darkMode:!0,repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebar:"auto",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,lastUpdatedText:"Last Updated",contributorsText:"Contributors",notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"},Dc=Ee(Hm),Bm=()=>Dc;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updateThemeData=e=>{Dc.value=e});const Rc=Symbol(""),Um=()=>{const e=Re(Rc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},Km=(e,t)=>{var n;return xe(xe({},e),(n=e.locales)===null||n===void 0?void 0:n[t])};var qm=Lt(({app:e})=>{const t=Bm(),n=e._context.provides[Vi],l=_e(()=>Km(t.value,n.value));e.provide(Rc,l),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return l.value}}})});const Wm=ze({props:{type:{type:String,required:!1,default:"tip"},text:{type:String,required:!1,default:""},vertical:{type:String,required:!1,default:void 0}},setup(e){return(t,n)=>(nl(),Li("span",{class:wt(["badge",e.type]),style:Yl({verticalAlign:e.vertical})},[Fl(t.$slots,"default",{},()=>[Si(xu(e.text),1)])],6))}});var $m=ze({name:"CodeGroup",setup(e,{slots:t}){const n=Ee(-1),l=Ee([]),r=(s=n.value)=>{s{s>0?n.value=s-1:n.value=l.value.length-1,l.value[n.value].focus()},a=(s,c)=>{s.key===" "||s.key==="Enter"?(s.preventDefault(),n.value=c):s.key==="ArrowRight"?(s.preventDefault(),r(c)):s.key==="ArrowLeft"&&(s.preventDefault(),i(c))};return()=>{var s;const c=(((s=t.default)===null||s===void 0?void 0:s.call(t))||[]).filter(u=>u.type.name==="CodeGroupItem").map(u=>(u.props===null&&(u.props={}),u));return c.length===0?null:(n.value<0||n.value>c.length-1?(n.value=c.findIndex(u=>u.props.active===""||u.props.active===!0),n.value===-1&&(n.value=0)):c.forEach((u,d)=>{u.props.active=d===n.value}),ee("div",{class:"code-group"},[ee("div",{class:"code-group__nav"},ee("ul",{class:"code-group__ul"},c.map((u,d)=>{const v=d===n.value;return ee("li",{class:"code-group__li"},ee("button",{ref:g=>{g&&(l.value[d]=g)},class:{"code-group__nav-tab":!0,"code-group__nav-tab-active":v},ariaPressed:v,ariaExpanded:v,onClick:()=>n.value=d,onKeydown:g=>a(g,d)},u.props.title))}))),c]))}}});const Gm=["aria-selected"],Jm=ze({name:"CodeGroupItem"}),Ym=ze(St(xe({},Jm),{props:{title:{type:String,required:!0},active:{type:Boolean,required:!1,default:!1}},setup(e){return(t,n)=>(nl(),Li("div",{class:wt(["code-group-item",{"code-group-item__active":e.active}]),"aria-selected":e.active},[Fl(t.$slots,"default")],10,Gm))}}));function Ic(e){return Ku()?(qu(e),!0):!1}const il=typeof window!="undefined",Qm=e=>typeof e=="string",kr=()=>{};function Zm(e,t){function n(...l){e(()=>t.apply(this,l),{fn:t,thisArg:this,args:l})}return n}const Xm=e=>e();var qa=Object.getOwnPropertySymbols,ev=Object.prototype.hasOwnProperty,tv=Object.prototype.propertyIsEnumerable,nv=(e,t)=>{var n={};for(var l in e)ev.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(e!=null&&qa)for(var l of qa(e))t.indexOf(l)<0&&tv.call(e,l)&&(n[l]=e[l]);return n};function lv(e,t,n={}){const l=n,{eventFilter:r=Xm}=l,i=nv(l,["eventFilter"]);return et(e,Zm(r,t),i)}function rv(e,t=!0){lc()?tt(e):t?e():Ei(e)}const Hl=il?window:void 0;il&&window.document;il&&window.navigator;il&&window.location;function iv(...e){let t,n,l,r;if(Qm(e[0])?([n,l,r]=e,t=Hl):[t,n,l,r]=e,!t)return kr;let i=kr;const a=et(()=>Bt(t),c=>{i(),c&&(c.addEventListener(n,l,r),i=()=>{c.removeEventListener(n,l,r),i=kr})},{immediate:!0,flush:"post"}),s=()=>{a(),i()};return Ic(s),s}function av(e,t={}){const{window:n=Hl}=t;let l;const r=Ee(!1),i=()=>{!n||(l||(l=n.matchMedia(e)),r.value=l.matches)};return rv(()=>{i(),l&&("addEventListener"in l?l.addEventListener("change",i):l.addListener(i),Ic(()=>{"removeEventListener"in i?l.removeEventListener("change",i):l.removeListener(i)}))}),r}const Wr=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},$r="__vueuse_ssr_handlers__";Wr[$r]=Wr[$r]||{};const ov=Wr[$r];function sv(e,t){return ov[e]||t}function cv(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"||Array.isArray(e)?"object":Number.isNaN(e)?"any":"number"}const uv={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))}};function dv(e,t,n,l={}){var r;const{flush:i="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:c=!0,shallow:u,window:d=Hl,eventFilter:v,onError:g=w=>{console.error(w)}}=l,b=Bt(t),m=cv(b),_=(u?Os:Ee)(t),f=(r=l.serializer)!=null?r:uv[m];if(!n)try{n=sv("getDefaultStorage",()=>{var w;return(w=Hl)==null?void 0:w.localStorage})()}catch(w){g(w)}function y(w){if(!(!n||w&&w.key!==e))try{const P=w?w.newValue:n.getItem(e);P==null?(_.value=b,c&&b!==null&&n.setItem(e,f.write(b))):typeof P!="string"?_.value=P:_.value=f.read(P)}catch(P){g(P)}}return y(),d&&s&&iv(d,"storage",w=>setTimeout(()=>y(w),0)),n&&lv(_,()=>{try{_.value==null?n.removeItem(e):n.setItem(e,f.write(_.value))}catch(w){g(w)}},{flush:i,deep:a,eventFilter:v}),_}function hv(e){return av("(prefers-color-scheme: dark)",e)}var Wa,$a;il&&(window==null?void 0:window.navigator)&&((Wa=window==null?void 0:window.navigator)==null?void 0:Wa.platform)&&/iP(ad|hone|od)/.test(($a=window==null?void 0:window.navigator)==null?void 0:$a.platform);var gv=Object.defineProperty,Ga=Object.getOwnPropertySymbols,mv=Object.prototype.hasOwnProperty,vv=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?gv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pv=(e,t)=>{for(var n in t||(t={}))mv.call(t,n)&&Ja(e,n,t[n]);if(Ga)for(var n of Ga(t))vv.call(t,n)&&Ja(e,n,t[n]);return e};const fv={top:0,left:0,bottom:0,right:0,height:0,width:0};pv({text:""},fv);const Cc=Symbol(""),J_=()=>{const e=Re(Cc);if(!e)throw new Error("useDarkMode() is called without provider.");return e},_v=()=>{const e=Fc(),t=hv(),n=dv("vuepress-color-scheme","auto"),l=_e({get(){return e.value.darkMode?n.value==="auto"?t.value:n.value==="dark":!1},set(r){r===t.value?n.value="auto":n.value=r?"dark":"light"}});Ut(Cc,l),bv(l)},bv=e=>{const t=(n=e.value)=>{const l=window==null?void 0:window.document.querySelector("html");l==null||l.classList.toggle("dark",n)};tt(()=>{et(e,t,{immediate:!0})}),Ai(()=>t())},xc=(...e)=>{const n=ll().resolve(...e),l=n.matched[n.matched.length-1];if(!(l!=null&&l.redirect))return n;const{redirect:r}=l,i=ae(r)?r(n):r,a=be(i)?{path:i}:i;return xc(xe({hash:n.hash,query:n.query,params:n.params},a))},yv=e=>{const t=xc(e);return{text:t.meta.title||e,link:t.name==="404"?e:t.fullPath}};let Er=null,Pn=null;const kv={wait:()=>Er,pending:()=>{Er=new Promise(e=>Pn=e)},resolve:()=>{Pn==null||Pn(),Er=null,Pn=null}},Ev=()=>kv,jc=Symbol("sidebarItems"),Y_=()=>{const e=Re(jc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},wv=()=>{const e=Fc(),t=hm(),n=_e(()=>Pv(t.value,e.value));Ut(jc,n)},Pv=(e,t)=>{var n,l,r,i;const a=(l=(n=e.sidebar)!==null&&n!==void 0?n:t.sidebar)!==null&&l!==void 0?l:"auto",s=(i=(r=e.sidebarDepth)!==null&&r!==void 0?r:t.sidebarDepth)!==null&&i!==void 0?i:2;return e.home||a===!1?[]:a==="auto"?Av(s):te(a)?Vc(a,s):Lc(a)?Ov(a,s):[]},Tv=(e,t)=>({text:e.title,link:`#${e.slug}`,children:zi(e.children,t)}),zi=(e,t)=>t>0?e.map(n=>Tv(n,t-1)):[],Av=e=>{const t=rl();return[{text:t.value.title,children:zi(t.value.headers,e)}]},Vc=(e,t)=>{const n=ji(),l=rl(),r=i=>{var a;let s;if(be(i)?s=yv(i):s=i,s.children)return St(xe({},s),{children:s.children.map(c=>r(c))});if(s.link===n.path){const c=((a=l.value.headers[0])===null||a===void 0?void 0:a.level)===1?l.value.headers[0].children:l.value.headers;return St(xe({},s),{children:zi(c,t)})}return s};return e.map(i=>r(i))},Ov=(e,t)=>{var n;const l=ji(),r=Sc(e,l.path),i=(n=e[r])!==null&&n!==void 0?n:[];return Vc(i,t)},Fc=()=>Um();var Lv=Lt(({app:e,router:t})=>{e.component("Badge",Wm),e.component("CodeGroup",$m),e.component("CodeGroupItem",Ym),e.component("NavbarSearch",()=>{const l=e.component("Docsearch")||e.component("SearchBox");return l?ee(l):null});const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...l)=>(await Ev().wait(),n(...l))});const Sv=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},gtag("js",new Date),gtag("config",e)},Dv="UA-213843360-1";var Rv=Lt(()=>{Sv(Dv)});const Iv=({input:e,hotKeys:t})=>{const n=l=>{!e.value||t.value.length===0||l.target===document.body&&t.value.includes(l.key)&&(e.value.focus(),l.preventDefault())};tt(()=>{document.addEventListener("keydown",n)}),nr(()=>{document.removeEventListener("keydown",n)})},Cv=[{title:"Cooking with Solana",headers:[{level:2,title:"Contributing",slug:"contributing",children:[]},{level:2,title:"How to Read the Cookbook",slug:"how-to-read-the-cookbook",children:[]}],path:"/",pathLocale:"/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Account Model",slug:"account-model",children:[]},{level:3,title:"Rent",slug:"rent",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/core-concepts/accounts.html",pathLocale:"/",extraFields:[]},{title:"Cross Program Invocations (CPIs)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"CPI with\xA0invoke",slug:"cpi-with-invoke",children:[]},{level:3,title:"CPI with\xA0invoke_signed",slug:"cpi-with-invoke-signed",children:[]},{level:3,title:"CPI Instruction",slug:"cpi-instruction",children:[]},{level:3,title:"CPI AccountInfo",slug:"cpi-accountinfo",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/cpi.html",pathLocale:"/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Generating PDAs",slug:"generating-pdas",children:[]},{level:3,title:"Interacting with PDAs",slug:"interacting-with-pdas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/pdas.html",pathLocale:"/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Native Programs & The Solana Program Library (SPL)",slug:"native-programs-the-solana-program-library-spl",children:[]},{level:3,title:"Writing Programs",slug:"writing-programs",children:[]},{level:3,title:"Deploying Programs",slug:"deploying-programs",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/programs.html",pathLocale:"/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Fees",slug:"fees",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/transactions.html",pathLocale:"/",extraFields:[]},{title:"Kochen mit Solana",headers:[{level:2,title:"Beitragen",slug:"beitragen",children:[]},{level:2,title:"Wie man das Kochbuch liest",slug:"wie-man-das-kochbuch-liest",children:[]}],path:"/de/",pathLocale:"/de/",extraFields:[]},{title:"Libro de recetas de Solana",headers:[{level:2,title:"Contribuyendo",slug:"contribuyendo",children:[]},{level:2,title:"Como Leer el Cookbook",slug:"como-leer-el-cookbook",children:[]}],path:"/es/",pathLocale:"/es/",extraFields:[]},{title:"Solana Cookbook",headers:[{level:2,title:"Contribution",slug:"contribution",children:[]},{level:2,title:"Comment lire le Cookbook",slug:"comment-lire-le-cookbook",children:[]}],path:"/fr/",pathLocale:"/fr/",extraFields:[]},{title:"How to auto approve transactions",headers:[],path:"/gaming/auto-approve.html",pathLocale:"/",extraFields:[]},{title:"Distribution",headers:[{level:2,title:"Publishing Platforms",slug:"publishing-platforms",children:[]}],path:"/gaming/distribution.html",pathLocale:"/",extraFields:[]},{title:"Energy System",headers:[{level:2,title:"Anchor program",slug:"anchor-program",children:[{level:3,title:"Creating the player account",slug:"creating-the-player-account",children:[]},{level:3,title:"Choping trees",slug:"choping-trees",children:[]},{level:3,title:"Calculating the energy",slug:"calculating-the-energy",children:[]}]},{level:2,title:"Js client",slug:"js-client",children:[{level:3,title:"Create connection",slug:"create-connection",children:[]},{level:3,title:"Initialize player data",slug:"initialize-player-data",children:[]},{level:3,title:"Subscribe to account updates",slug:"subscribe-to-account-updates",children:[]},{level:3,title:"Calculate energy and show count down",slug:"calculate-energy-and-show-count-down",children:[]}]}],path:"/gaming/energy-system.html",pathLocale:"/",extraFields:[]},{title:"Learn By Example",headers:[{level:2,title:"Interact with Anchor Program from Unity",slug:"interact-with-anchor-program-from-unity",children:[]},{level:2,title:"Saving Sol in a PDA",slug:"saving-sol-in-a-pda",children:[]},{level:2,title:"On chain matchmaking",slug:"on-chain-matchmaking",children:[]},{level:2,title:"Use Solana Pay Qr codes to control a game",slug:"use-solana-pay-qr-codes-to-control-a-game",children:[]},{level:2,title:"Hide game state from other players",slug:"hide-game-state-from-other-players",children:[]},{level:2,title:"How to build a round based multiplayer game",slug:"how-to-build-a-round-based-multiplayer-game",children:[]},{level:2,title:"On Chain Chess",slug:"on-chain-chess",children:[]},{level:2,title:"Multiplayer Game using voting system",slug:"multiplayer-game-using-voting-system",children:[]},{level:2,title:"Entity component system example",slug:"entity-component-system-example",children:[]},{level:2,title:"Adventure killing monsters and gaining xp",slug:"adventure-killing-monsters-and-gaining-xp",children:[]},{level:2,title:"Real-time pvp on chain game",slug:"real-time-pvp-on-chain-game",children:[]}],path:"/gaming/game-examples.html",pathLocale:"/",extraFields:[]},{title:"Solana Gaming SDKs",headers:[{level:3,title:"Unity SDK",slug:"unity-sdk",children:[]},{level:3,title:"Unreal SDK",slug:"unreal-sdk",children:[]},{level:3,title:"Flutter",slug:"flutter",children:[]},{level:3,title:"Next.js/React + Anchor",slug:"next-js-react-anchor",children:[]},{level:3,title:"Python",slug:"python",children:[]},{level:3,title:"Native C#",slug:"native-c",children:[]}],path:"/gaming/game-sdks.html",pathLocale:"/",extraFields:[]},{title:"Hello World example",headers:[{level:2,title:"Getting started with your first Solana game",slug:"getting-started-with-your-first-solana-game",children:[]},{level:2,title:"Tiny Adventure",slug:"tiny-adventure",children:[{level:3,title:"Getting Started",slug:"getting-started",children:[]},{level:3,title:"Defining the Game Data Account",slug:"defining-the-game-data-account",children:[]},{level:3,title:"Initialize Instruction",slug:"initialize-instruction",children:[]},{level:3,title:"Move Left Instruction",slug:"move-left-instruction",children:[]},{level:3,title:"Move Right Instruction",slug:"move-right-instruction",children:[]},{level:3,title:"Build and Deploy",slug:"build-and-deploy",children:[]},{level:3,title:"Get Started with the Client",slug:"get-started-with-the-client",children:[]},{level:3,title:"Where to Go from Here",slug:"where-to-go-from-here",children:[]}]}],path:"/gaming/hello-world.html",pathLocale:"/",extraFields:[]},{title:"How interact with tokens in programs",headers:[{level:2,title:"Create, Mint, and Burn Tokens with Anchor",slug:"create-mint-and-burn-tokens-with-anchor",children:[{level:3,title:"Getting Started",slug:"getting-started",children:[]},{level:3,title:"Create Mint instruction",slug:"create-mint-instruction",children:[]},{level:3,title:"Init Player Instruction",slug:"init-player-instruction",children:[]},{level:3,title:"Kill Enemy Instruction",slug:"kill-enemy-instruction",children:[]},{level:3,title:"Heal Instruction",slug:"heal-instruction",children:[]},{level:3,title:"Build and Deploy",slug:"build-and-deploy",children:[]},{level:3,title:"Get Started with the Client",slug:"get-started-with-the-client",children:[]}]}],path:"/gaming/interact-with-tokens.html",pathLocale:"/",extraFields:[]},{title:"Introduction to Gaming on Solana",headers:[],path:"/gaming/intro.html",pathLocale:"/",extraFields:[]},{title:"Gaming with NFTs",headers:[{level:2,title:"Token gating with NFTs",slug:"token-gating-with-nfts",children:[]},{level:2,title:"Bonus Effects with NFTs",slug:"bonus-effects-with-nfts",children:[]},{level:2,title:"Using NFT Metadata for Player Stats",slug:"using-nft-metadata-for-player-stats",children:[]},{level:2,title:"Fusing NFTs Together",slug:"fusing-nfts-together",children:[]},{level:2,title:"Use 3D Nfts in a game",slug:"use-3d-nfts-in-a-game",children:[]},{level:2,title:"Customize NFTs with items and traits (Raindrops boots)",slug:"customize-nfts-with-items-and-traits-raindrops-boots",children:[]},{level:2,title:"How to create an NFT collection",slug:"how-to-create-an-nft-collection",children:[]}],path:"/gaming/nfts-in-games.html",pathLocale:"/",extraFields:[]},{title:"Port Anchor to Unity",headers:[{level:2,title:"Generating the Client",slug:"generating-the-client",children:[]},{level:2,title:"Building the Transaction in Unity C#",slug:"building-the-transaction-in-unity-c",children:[]}],path:"/gaming/porting-anchor-to-unity.html",pathLocale:"/",extraFields:[]},{title:"Saving game state",headers:[],path:"/gaming/saving-game-state.html",pathLocale:"/",extraFields:[]},{title:"Storing SOL in a PDA",headers:[{level:2,title:"Tiny Adventure Anchor Program - Part Two",slug:"tiny-adventure-anchor-program-part-two",children:[{level:3,title:"Getting Started",slug:"getting-started",children:[]},{level:3,title:"Defining the Chest Vault Account",slug:"defining-the-chest-vault-account",children:[]},{level:3,title:"Defining the Game Data Account",slug:"defining-the-game-data-account",children:[]},{level:3,title:"Initialize Level One Instruction",slug:"initialize-level-one-instruction",children:[]},{level:3,title:"Reset Level and Spawn Chest Instruction",slug:"reset-level-and-spawn-chest-instruction",children:[]},{level:3,title:"Move Right Instruction",slug:"move-right-instruction",children:[]},{level:3,title:"Build and Deploy",slug:"build-and-deploy",children:[]},{level:3,title:"Get Started with the Client",slug:"get-started-with-the-client",children:[]}]}],path:"/gaming/store-sol-in-pda.html",pathLocale:"/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Install Web3.js",slug:"install-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/getting-started/installation.html",pathLocale:"/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/guides/account-maps.html",pathLocale:"/",extraFields:[]},{title:"Migrating Program Data Accounts",headers:[{level:2,title:"How can you migrate a program's data accounts?",slug:"how-can-you-migrate-a-program-s-data-accounts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Upgrading the Account",slug:"upgrading-the-account",children:[{level:3,title:"1. Add account conversion logic",slug:"_1-add-account-conversion-logic",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/data-migration.html",pathLocale:"/",extraFields:[]},{title:"Debugging Solana Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Runtime Testing and Debugging in editor",slug:"runtime-testing-and-debugging-in-editor",children:[]},{level:2,title:"Local Validator Node Testing in editor",slug:"local-validator-node-testing-in-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/debugging-solana-programs.html",pathLocale:"/",extraFields:[]},{title:"Feature Parity Testing",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parity Testing",slug:"parity-testing",children:[]},{level:2,title:"Simple Demonstration",slug:"simple-demonstration",children:[{level:3,title:"All features activated",slug:"all-features-activated",children:[]},{level:3,title:"Selective features deactivated",slug:"selective-features-deactivated",children:[]}]},{level:2,title:"Full Parity Testing",slug:"full-parity-testing",children:[]},{level:2,title:"Full Parity Testing Programmatically",slug:"full-parity-testing-programmatically",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/feature-parity-testing.html",pathLocale:"/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/guides/get-program-accounts.html",pathLocale:"/",extraFields:[]},{title:"Retrying Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"The Journey of a Transaction",slug:"the-journey-of-a-transaction",children:[{level:3,title:"How Clients Submit Transactions",slug:"how-clients-submit-transactions",children:[]},{level:3,title:"How RPC Nodes Broadcast Transactions",slug:"how-rpc-nodes-broadcast-transactions",children:[]}]},{level:2,title:"How Transactions Get Dropped",slug:"how-transactions-get-dropped",children:[{level:3,title:"Before a transaction is processed",slug:"before-a-transaction-is-processed",children:[]},{level:3,title:"After a transaction is processed and before it is finalized",slug:"after-a-transaction-is-processed-and-before-it-is-finalized",children:[]}]},{level:2,title:"Handling Dropped Transactions",slug:"handling-dropped-transactions",children:[{level:3,title:"An In-Depth Look at sendTransaction",slug:"an-in-depth-look-at-sendtransaction",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic",slug:"customizing-rebroadcast-logic",children:[{level:3,title:"The Cost of Skipping Preflight",slug:"the-cost-of-skipping-preflight",children:[]},{level:3,title:"When to Re-Sign Transactions",slug:"when-to-re-sign-transactions",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/guides/retrying-transactions.html",pathLocale:"/",extraFields:[]},{title:"Serializing Data",headers:[{level:2,title:"Setting up for Borsh Serialization",slug:"setting-up-for-borsh-serialization",children:[]},{level:2,title:"How to serialize instruction data on the client",slug:"how-to-serialize-instruction-data-on-the-client",children:[]},{level:2,title:"How to deserialize instruction data on the program",slug:"how-to-deserialize-instruction-data-on-the-program",children:[]},{level:2,title:"How to serialize account data on the program",slug:"how-to-serialize-account-data-on-the-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"How to deserialize account data on the client",slug:"how-to-deserialize-account-data-on-the-client",children:[]},{level:2,title:"Common Solana TS/JS Mappings",slug:"common-solana-ts-js-mappings",children:[]},{level:2,title:"Advanced Constructs",slug:"advanced-constructs",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/serialization.html",pathLocale:"/",extraFields:[]},{title:"Versioned Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Legacy Transaction",slug:"legacy-transaction",children:[]},{level:2,title:"Legacy Message",slug:"legacy-message",children:[{level:3,title:"Header",slug:"header",children:[]},{level:3,title:"Compact-array of account addresses",slug:"compact-array-of-account-addresses",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions",children:[]}]},{level:2,title:"Issues with Legacy Transactions",slug:"issues-with-legacy-transactions",children:[]},{level:2,title:"Address Lookup Tables (LUT)",slug:"address-lookup-tables-lut",children:[]},{level:2,title:"Versioned Transactions: TransactionV0",slug:"versioned-transactions-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Compact array of address table lookups",slug:"compact-array-of-address-table-lookups",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions-1",children:[]}]},{level:2,title:"RPC Changes",slug:"rpc-changes",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]},{level:2,title:"References",slug:"references",children:[]}],path:"/guides/versioned-transactions.html",pathLocale:"/",extraFields:[]},{title:"Buku Panduan Solana",headers:[{level:2,title:"Cara untuk berkontribusi",slug:"cara-untuk-berkontribusi",children:[]},{level:2,title:"Cara untuk membaca Buku Panduan",slug:"cara-untuk-membaca-buku-panduan",children:[]}],path:"/id/",pathLocale:"/id/",extraFields:[]},{title:"Getting Started",headers:[{level:2,title:"Composability is Key",slug:"composability-is-key",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/integrations/",pathLocale:"/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Fetching Token list from Jupiter",slug:"fetching-token-list-from-jupiter",children:[]},{level:3,title:"Loading the Jupiter instance",slug:"loading-the-jupiter-instance",children:[]},{level:3,title:"Getting the RouteMap",slug:"getting-the-routemap",children:[]},{level:3,title:"Getting the routes for given Input and Output token",slug:"getting-the-routes-for-given-input-and-output-token",children:[]},{level:3,title:"Execute the Token Swap",slug:"execute-the-token-swap",children:[]},{level:2,title:"How to use Jupiter in a React Application",slug:"how-to-use-jupiter-in-a-react-application",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Adding the Provider",slug:"adding-the-provider",children:[]},{level:3,title:"Fetching the List of Tokens",slug:"fetching-the-list-of-tokens",children:[]},{level:3,title:"Setting up the State",slug:"setting-up-the-state",children:[]},{level:3,title:"Using the useJupiter react hook",slug:"using-the-usejupiter-react-hook",children:[]},{level:3,title:"Performing the Swap",slug:"performing-the-swap",children:[]}]},{level:2,title:"How to use Jupiter API",slug:"how-to-use-jupiter-api",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Getting the Route Map",slug:"getting-the-route-map",children:[]},{level:3,title:"Getting the Serialized Transaction to perform Swap",slug:"getting-the-serialized-transaction-to-perform-swap",children:[]},{level:3,title:"Executing the Swap Transaction",slug:"executing-the-swap-transaction",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/jupiter.html",pathLocale:"/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"How to get a Mango Group",slug:"how-to-get-a-mango-group",children:[]},{level:2,title:"How to create a Mango Account",slug:"how-to-create-a-mango-account",children:[]},{level:2,title:"How to deposit USDC into a Mango Account",slug:"how-to-deposit-usdc-into-a-mango-account",children:[]},{level:2,title:"How to place a spot order",slug:"how-to-place-a-spot-order",children:[]},{level:2,title:"How to load bids",slug:"how-to-load-bids",children:[]},{level:2,title:"How to load asks",slug:"how-to-load-asks",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/mango.html",pathLocale:"/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Basic usage scenario",slug:"basic-usage-scenario",children:[]},{level:2,title:"SDKs",slug:"sdks",children:[]},{level:2,title:"Anatomy of a randomness request",slug:"anatomy-of-a-randomness-request",children:[]},{level:2,title:"Anatomy of a VRF configuration",slug:"anatomy-of-a-vrf-configuration",children:[]},{level:2,title:"Rust-native example",slug:"rust-native-example",children:[{level:3,title:"1. Setup the connection",slug:"_1-setup-the-connection",children:[]},{level:3,title:"2. Create a request",slug:"_2-create-a-request",children:[]},{level:3,title:"3. Wait for fulfillment",slug:"_3-wait-for-fulfillment",children:[]}]},{level:2,title:"CPI Example",slug:"cpi-example",children:[{level:3,title:"1. Create the contract",slug:"_1-create-the-contract",children:[]},{level:3,title:"2. Collect the necessary accounts",slug:"_2-collect-the-necessary-accounts",children:[]},{level:3,title:"3. Perform a CPI call",slug:"_3-perform-a-cpi-call",children:[]},{level:3,title:"4. Use the fulfilled randomness",slug:"_4-use-the-fulfilled-randomness",children:[]}]}],path:"/integrations/orao-vrf.html",pathLocale:"/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"How to use Pyth in Client",slug:"how-to-use-pyth-in-client",children:[]},{level:2,title:"How to use Pyth in Anchor",slug:"how-to-use-pyth-in-anchor",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/pyth.html",pathLocale:"/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"How to use @solana/web3.js in a React Native app",slug:"how-to-use-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Create a new app",slug:"create-a-new-app",children:[]},{level:3,title:"Install dependencies",slug:"install-dependencies",children:[]},{level:3,title:"Patch Babel to use the Hermes transforms",slug:"patch-babel-to-use-the-hermes-transforms",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"[iOS only] Install cocoapods",slug:"ios-only-install-cocoapods",children:[]},{level:3,title:"Start application",slug:"start-application",children:[]}]},{level:2,title:"Solana DApp Scaffold for React Native",slug:"solana-dapp-scaffold-for-react-native",children:[]},{level:2,title:"Common issues when using crypto libraries in a React Native app",slug:"common-issues-when-using-crypto-libraries-in-a-react-native-app",children:[{level:3,title:"Error: Watchman crawl failed",slug:"error-watchman-crawl-failed",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/integrations/react-native.html",pathLocale:"/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"How to get a Serum market",slug:"how-to-get-a-serum-market",children:[]},{level:2,title:"How to get Serum order books",slug:"how-to-get-serum-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],path:"/integrations/serum.html",pathLocale:"/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"How to create a fully managed token",slug:"how-to-create-a-fully-managed-token",children:[]},{level:2,title:"How to buy and sell a token",slug:"how-to-buy-and-sell-a-token",children:[]},{level:2,title:"How to bootstrap liquidity",slug:"how-to-bootstrap-liquidity",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/strata.html",pathLocale:"/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"Read data from an aggregator feed",slug:"read-data-from-an-aggregator-feed",children:[]},{level:3,title:"Create a new aggregator feed",slug:"create-a-new-aggregator-feed",children:[]},{level:3,title:"Read data from an aggregator feed in program",slug:"read-data-from-an-aggregator-feed-in-program",children:[]},{level:3,title:"How to Create a Feed from the Publisher",slug:"how-to-create-a-feed-from-the-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Create an oracle",slug:"create-an-oracle",children:[]},{level:3,title:"Run an oracle locally",slug:"run-an-oracle-locally",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifiable Random Function(VRF)",slug:"verifiable-random-function-vrf",children:[{level:3,title:"Reading a VRF account",slug:"reading-a-vrf-account",children:[]},{level:3,title:"Creating a VRF account",slug:"creating-a-vrf-account",children:[]},{level:3,title:"Request Randomness from vrf account",slug:"request-randomness-from-vrf-account",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/integrations/switchboard.html",pathLocale:"/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"What is a wallet?",slug:"what-is-a-wallet",children:[]},{level:2,title:"Social Logins on Solana",slug:"social-logins-on-solana",children:[]},{level:2,title:"Integration Guide",slug:"integration-guide",children:[{level:3,title:"Installing Dependencies",slug:"installing-dependencies",children:[]},{level:3,title:"Import the SDK and initialize",slug:"import-the-sdk-and-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"Using torus instance to fetch user account detail\u200B",slug:"using-torus-instance-to-fetch-user-account-detail\u200B",children:[]},{level:3,title:"Using Torus Solana API to sign a message.",slug:"using-torus-solana-api-to-sign-a-message",children:[]},{level:3,title:"Using torus Solana API to send a transaction.\u200B",slug:"using-torus-solana-api-to-send-a-transaction-\u200B",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/integrations/web3auth.html",pathLocale:"/",extraFields:[]},{title:"Cooking with Solana",headers:[{level:2,title:"\u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30B7\u30E7\u30F3",slug:"\u30B3\u30F3\u30C8\u30EA\u30D2\u3099\u30E5\u30FC\u30B7\u30E7\u30F3",children:[]},{level:2,title:"Cookbook\u306E\u8AAD\u307F\u65B9",slug:"cookbook\u306E\u8AAD\u307F\u65B9",children:[]}],path:"/ja/",pathLocale:"/ja/",extraFields:[]},{title:"Cooking with Solana",headers:[{level:2,title:"Contributing",slug:"contributing",children:[]},{level:2,title:"How to Read the Cookbook",slug:"how-to-read-the-cookbook",children:[]}],path:"/kr/",pathLocale:"/kr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"How to create a system account",slug:"how-to-create-a-system-account",children:[]},{level:2,title:"How to calculate account cost",slug:"how-to-calculate-account-cost",children:[]},{level:2,title:"How to create accounts with seeds",slug:"how-to-create-accounts-with-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"How to create PDAs",slug:"how-to-create-pdas",children:[{level:3,title:"Generate a PDA",slug:"generate-a-pda",children:[]},{level:3,title:"Create a PDA",slug:"create-a-pda",children:[]}]},{level:2,title:"How to sign with a PDA",slug:"how-to-sign-with-a-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"How to get program accounts",slug:"how-to-get-program-accounts",children:[]},{level:2,title:"How to close accounts",slug:"how-to-close-accounts",children:[]},{level:2,title:"How to get account balance",slug:"how-to-get-account-balance",children:[]}],path:"/references/accounts.html",pathLocale:"/",extraFields:[]},{title:"Sending Transactions",headers:[{level:2,title:"How to send SOL",slug:"how-to-send-sol",children:[]},{level:2,title:"How to send SPL-Tokens",slug:"how-to-send-spl-tokens",children:[]},{level:2,title:"How to calculate transaction cost",slug:"how-to-calculate-transaction-cost",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"How to add a memo to a transaction",slug:"how-to-add-a-memo-to-a-transaction",children:[]},{level:2,title:"How to change compute budget, fee, & priority for a transaction",slug:"how-to-change-compute-budget-fee-priority-for-a-transaction",children:[]}],path:"/references/basic-transactions.html",pathLocale:"/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"How to generate a new Keypair",slug:"how-to-generate-a-new-keypair",children:[]},{level:2,title:"How to restore a Keypair from a secret",slug:"how-to-restore-a-keypair-from-a-secret",children:[]},{level:2,title:"How to verify a Keypair",slug:"how-to-verify-a-keypair",children:[]},{level:2,title:"How to check if a public key has an associated private key",slug:"how-to-check-if-a-public-key-has-an-associated-private-key",children:[]},{level:2,title:"How to generate a mnemonic phrase",slug:"how-to-generate-a-mnemonic-phrase",children:[]},{level:2,title:"How to restore a Keypair from a mnemonic phrase",slug:"how-to-restore-a-keypair-from-a-mnemonic-phrase",children:[]},{level:2,title:"How to generate a vanity address",slug:"how-to-generate-a-vanity-address",children:[]},{level:2,title:"How to sign and verify messages with wallets",slug:"how-to-sign-and-verify-messages-with-wallets",children:[]},{level:2,title:"How to connect to a wallet",slug:"how-to-connect-to-a-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/references/keypairs-and-wallets.html",pathLocale:"/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"Starting a Local Validator",slug:"starting-a-local-validator",children:[]},{level:2,title:"Connecting to Environments",slug:"connecting-to-environments",children:[]},{level:2,title:"Subscribing to Events",slug:"subscribing-to-events",children:[]},{level:2,title:"Getting Test SOL",slug:"getting-test-sol",children:[]},{level:2,title:"Using Mainnet Accounts and Programs",slug:"using-mainnet-accounts-and-programs",children:[{level:3,title:"How to load accounts from mainnet",slug:"how-to-load-accounts-from-mainnet",children:[]},{level:3,title:"How to load programs from mainnet",slug:"how-to-load-programs-from-mainnet",children:[]}]}],path:"/references/local-development.html",pathLocale:"/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"Find all the domain names owned by a public key",slug:"find-all-the-domain-names-owned-by-a-public-key",children:[]},{level:2,title:"Resolve a Twitter handle",slug:"resolve-a-twitter-handle",children:[]},{level:2,title:"Reverse look up of a Twitter handle",slug:"reverse-look-up-of-a-twitter-handle",children:[]}],path:"/references/name-service.html",pathLocale:"/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"How to create an NFT",slug:"how-to-create-an-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint the NFT",slug:"mint-the-nft",children:[]}]},{level:2,title:"How to get NFT Metadata",slug:"how-to-get-nft-metadata",children:[]},{level:2,title:"How to get the owner of an NFT",slug:"how-to-get-the-owner-of-an-nft",children:[]},{level:2,title:"How to get NFT Mint Addresses",slug:"how-to-get-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"How to get all NFTs from a wallet?",slug:"how-to-get-all-nfts-from-a-wallet",children:[]},{level:2,title:"Candy Machine v2",slug:"candy-machine-v2-1",children:[{level:3,title:"How to create a Candy Machine",slug:"how-to-create-a-candy-machine",children:[]},{level:3,title:"How to delete a Candy Machine",slug:"how-to-delete-a-candy-machine",children:[]},{level:3,title:"How to find Candy Machine via authority",slug:"how-to-find-candy-machine-via-authority",children:[]},{level:3,title:"How to find Candy Machine using wallet address",slug:"how-to-find-candy-machine-using-wallet-address",children:[]},{level:3,title:"How to find Candy Machine using its address",slug:"how-to-find-candy-machine-using-its-address",children:[]},{level:3,title:"How to find minted NFTs from a Candy Machine",slug:"how-to-find-minted-nfts-from-a-candy-machine",children:[]},{level:3,title:"How to insert items into a Candy Machine",slug:"how-to-insert-items-into-a-candy-machine",children:[]},{level:3,title:"How to mint an NFT from a Candy Machine",slug:"how-to-mint-an-nft-from-a-candy-machine",children:[]}]}],path:"/references/nfts.html",pathLocale:"/",extraFields:[]},{title:"Sending Offline Transactions",headers:[{level:2,title:"Sign Transaction",slug:"sign-transaction",children:[]},{level:2,title:"Partial Sign Transaction",slug:"partial-sign-transaction",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Create Nonce Account",slug:"create-nonce-account",children:[]},{level:3,title:"Get Nonce Account",slug:"get-nonce-account",children:[]},{level:3,title:"Use Nonce Account",slug:"use-nonce-account",children:[]}]}],path:"/references/offline-transactions.html",pathLocale:"/",extraFields:[]},{title:"Writing Programs",headers:[{level:2,title:"How to transfer SOL in a program",slug:"how-to-transfer-sol-in-a-program",children:[]},{level:2,title:"How to get clock in a program",slug:"how-to-get-clock-in-a-program",children:[{level:3,title:"Passing Clock as an account inside an instruction",slug:"passing-clock-as-an-account-inside-an-instruction",children:[]},{level:3,title:"Accessing Clock directly inside an instruction",slug:"accessing-clock-directly-inside-an-instruction",children:[]}]},{level:2,title:"How to change account size",slug:"how-to-change-account-size",children:[]},{level:2,title:"How to do Cross Program Invocation",slug:"how-to-do-cross-program-invocation",children:[]},{level:2,title:"How to create a PDA",slug:"how-to-create-a-pda",children:[]},{level:2,title:"How to read accounts",slug:"how-to-read-accounts",children:[]},{level:2,title:"How to verify accounts",slug:"how-to-verify-accounts",children:[]},{level:2,title:"How to read multiple instructions from a transaction",slug:"how-to-read-multiple-instructions-from-a-transaction",children:[]}],path:"/references/programs.html",pathLocale:"/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Get Current Validators",slug:"get-current-validators",children:[]},{level:2,title:"Create Stake Account",slug:"create-stake-account",children:[]},{level:2,title:"Delegate Stake",slug:"delegate-stake",children:[]},{level:2,title:"Get Delegator by Validators",slug:"get-delegator-by-validators",children:[]},{level:2,title:"Deactivate Stake",slug:"deactivate-stake",children:[]},{level:2,title:"Withdraw Stake",slug:"withdraw-stake",children:[]}],path:"/references/staking.html",pathLocale:"/",extraFields:[]},{title:"Interacting with Tokens",headers:[{level:2,title:"What do I need to get started with SPL-Tokens?",slug:"what-do-i-need-to-get-started-with-spl-tokens",children:[]},{level:2,title:"How to create a new Token",slug:"how-to-create-a-new-token",children:[]},{level:2,title:"How to get a token mint",slug:"how-to-get-a-token-mint",children:[]},{level:2,title:"How to create a token account",slug:"how-to-create-a-token-account",children:[]},{level:2,title:"How to get a Token Account",slug:"how-to-get-a-token-account",children:[]},{level:2,title:"How to get a token account's balance",slug:"how-to-get-a-token-account-s-balance",children:[]},{level:2,title:"How to mint tokens",slug:"how-to-mint-tokens",children:[]},{level:2,title:"How to transfer tokens",slug:"how-to-transfer-tokens",children:[]},{level:2,title:"How to burn tokens",slug:"how-to-burn-tokens",children:[]},{level:2,title:"How to close token accounts",slug:"how-to-close-token-accounts",children:[]},{level:2,title:"How to set authority on token accounts or mints",slug:"how-to-set-authority-on-token-accounts-or-mints",children:[]},{level:2,title:"How to approve a token delegate",slug:"how-to-approve-a-token-delegate",children:[]},{level:2,title:"How to revoke a token delegate",slug:"how-to-revoke-a-token-delegate",children:[]},{level:2,title:"How to manage wrapped SOL",slug:"how-to-manage-wrapped-sol",children:[{level:3,title:"Create Token Account",slug:"create-token-account",children:[]},{level:3,title:"Add Balance",slug:"add-balance",children:[]}]},{level:2,title:"How to get all token accounts by owner",slug:"how-to-get-all-token-accounts-by-owner",children:[]}],path:"/references/token.html",pathLocale:"/",extraFields:[]},{title:"Cooking \u0E01\u0E31\u0E1A Solana",headers:[{level:2,title:"\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E19\u0E40\u0E02\u0E35\u0E22\u0E19",slug:"\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E19\u0E40\u0E02\u0E35\u0E22\u0E19",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D",children:[]}],path:"/th/",pathLocale:"/th/",extraFields:[]},{title:"Solana Cookbook",headers:[{level:2,title:"Contributing (Nas\u0131l Katk\u0131 Verebilirsiniz?)",slug:"contributing-nas\u0131l-katk\u0131-verebilirsiniz",children:[]},{level:2,title:"How to Read the Cookbook (Cookbook Nas\u0131l Okunur?)",slug:"how-to-read-the-cookbook-cookbook-nas\u0131l-okunur",children:[]}],path:"/tr/",pathLocale:"/tr/",extraFields:[]},{title:"Nh\u1EADp m\xF4n Solana",headers:[{level:2,title:"\u0110\xF3ng g\xF3p",slug:"\u0111ong-gop",children:[]},{level:2,title:"C\u1EA5u tr\xFAc c\u1EE7a To\xE0n t\u1EADp Solana",slug:"cau-truc-cua-toan-tap-solana",children:[]},{level:2,title:"L\u1EDDi c\u1EE7a d\u1ECBch gi\u1EA3",slug:"loi-cua-dich-gia",children:[]}],path:"/vi/",pathLocale:"/vi/",extraFields:[]},{title:"Solana\u79D8\u7C4D",headers:[{level:2,title:"\u8D21\u732E\u4EE3\u7801",slug:"\u8D21\u732E\u4EE3\u7801",children:[]},{level:2,title:"\u5982\u4F55\u9605\u8BFBSolana\u79D8\u7C4D",slug:"\u5982\u4F55\u9605\u8BFBsolana\u79D8\u7C4D",children:[]}],path:"/zh/",pathLocale:"/zh/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Accounts Model",slug:"accounts-model",children:[]},{level:3,title:"Miete",slug:"miete",children:[]}]},{level:2,title:"Andere Ressourcen",slug:"andere-ressourcen",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/de/core-concepts/accounts.html",pathLocale:"/de/",extraFields:[]},{title:"Programmabgeleitete Adressen (PDAs)",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Generating PDAs",slug:"generating-pdas",children:[]},{level:3,title:"Interaktion mit PDAs",slug:"interaktion-mit-pdas",children:[]}]},{level:2,title:"Andere Quellen",slug:"andere-quellen",children:[]}],path:"/de/core-concepts/pdas.html",pathLocale:"/de/",extraFields:[]},{title:"Programme",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Native Programme & Die Solana Programm Bibliothek (SPL - Solana Program Library)",slug:"native-programme-die-solana-programm-bibliothek-spl-solana-program-library",children:[]},{level:3,title:"Writing Programs",slug:"writing-programs",children:[]},{level:3,title:"Bereitstellen von Programmen",slug:"bereitstellen-von-programmen",children:[]}]},{level:2,title:"Weitere Quellen",slug:"weitere-quellen",children:[]}],path:"/de/core-concepts/programs.html",pathLocale:"/de/",extraFields:[]},{title:"Transaktionen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Geb\xFChren",slug:"gebuhren",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/core-concepts/transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Installieren von Web3.js",slug:"installieren-von-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Aus Quelle erstellen",slug:"aus-quelle-erstellen",children:[]}]}],path:"/de/getting-started/installation.html",pathLocale:"/de/",extraFields:[]},{title:"Kontozuordnungen",headers:[{level:2,title:"Ableitende PDAs",slug:"ableitende-pdas",children:[]},{level:2,title:"Einzelnes Kartenkonto",slug:"einzelnes-kartenkonto",children:[]}],path:"/de/guides/account-maps.html",pathLocale:"/de/",extraFields:[]},{title:"Migrieren von Programmdatenkonten",headers:[{level:2,title:"Wie k\xF6nnen Sie die Datenkonten eines Programms migrieren?",slug:"wie-konnen-sie-die-datenkonten-eines-programms-migrieren",children:[]},{level:2,title:"Szenario",slug:"szenario",children:[]},{level:2,title:"Upgrade des Kontos",slug:"upgrade-des-kontos",children:[{level:3,title:"1. Kontoumwandlungslogik hinzuf\xFCgen",slug:"_1-kontoumwandlungslogik-hinzufugen",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/de/guides/data-migration.html",pathLocale:"/de/",extraFields:[]},{title:"Debuggen von Solana-Programmen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Laufzeittests und Debugging im Editor",slug:"laufzeittests-und-debugging-im-editor",children:[]},{level:2,title:"Testen des lokalen Validator-Knotens im Editor",slug:"testen-des-lokalen-validator-knotens-im-editor",children:[]},{level:2,title:"Testen lokaler Validator-Knoten von Client-Apps",slug:"testen-lokaler-validator-knoten-von-client-apps",children:[]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/guides/debugging-solana-programs.html",pathLocale:"/de/",extraFields:[]},{title:"Funktionsparit\xE4tstest",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Szenario",slug:"szenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parit\xE4tstest",slug:"paritatstest",children:[]},{level:2,title:"Einfache Vorf\xFChrung",slug:"einfache-vorfuhrung",children:[{level:3,title:"Alle Funktionen aktiviert",slug:"alle-funktionen-aktiviert",children:[]},{level:3,title:"Selektive Funktionen deaktiviert",slug:"selektive-funktionen-deaktiviert",children:[]}]},{level:2,title:"Vollst\xE4ndiger Parit\xE4tstest",slug:"vollstandiger-paritatstest",children:[]},{level:2,title:"Vollst\xE4ndiger Parit\xE4tstest programmgesteuert",slug:"vollstandiger-paritatstest-programmgesteuert",children:[]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/guides/feature-parity-testing.html",pathLocale:"/de/",extraFields:[]},{title:"Programmkonten Abfragen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/guides/get-program-accounts.html",pathLocale:"/de/",extraFields:[]},{title:"Transaktionen Wiederholen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Die Reise einer Transaktion",slug:"die-reise-einer-transaktion-1",children:[{level:3,title:"Wie Anwender Transaktionen \xFCbermitteln",slug:"wie-anwender-transaktionen-ubermitteln",children:[]},{level:3,title:"Wie RPC-Knoten Transaktionen senden",slug:"wie-rpc-knoten-transaktionen-senden",children:[]}]},{level:2,title:"Wie Transaktionen verworfen werden",slug:"wie-transaktionen-verworfen-werden",children:[{level:3,title:"Bevor eine Transaktion verarbeitet wird",slug:"bevor-eine-transaktion-verarbeitet-wird",children:[]},{level:3,title:"Nachdem eine Transaktion verarbeitet wurde und bevor sie abgeschlossen wird",slug:"nachdem-eine-transaktion-verarbeitet-wurde-und-bevor-sie-abgeschlossen-wird",children:[]}]},{level:2,title:"Umgang mit abgebrochenen Transaktionen",slug:"umgang-mit-abgebrochenen-transaktionen",children:[{level:3,title:"Ein eingehender Blick in sendTransaction",slug:"ein-eingehender-blick-in-sendtransaction",children:[]}]},{level:2,title:"Anpassen der Reroadcast-Logik",slug:"anpassen-der-reroadcast-logik",children:[{level:3,title:"Die Kosten f\xFCr das \xDCberspringen des Preflights",slug:"die-kosten-fur-das-uberspringen-des-preflights",children:[]},{level:3,title:"Wann Transaktionen neu signiert werden m\xFCssen",slug:"wann-transaktionen-neu-signiert-werden-mussen",children:[]}]},{level:2,title:"Danksagungen",slug:"danksagungen",children:[]}],path:"/de/guides/retrying-transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Serialisieren von Daten",headers:[{level:2,title:"Einrichten der Borsh-Serialisierung",slug:"einrichten-der-borsh-serialisierung",children:[]},{level:2,title:"So serialisieren Sie Anweisungsdaten auf dem Client",slug:"so-serialisieren-sie-anweisungsdaten-auf-dem-client",children:[]},{level:2,title:"So deserialisieren Sie Befehlsdaten im Programm",slug:"so-deserialisieren-sie-befehlsdaten-im-programm",children:[]},{level:2,title:"So serialisieren Sie Kontodaten im Programm",slug:"so-serialisieren-sie-kontodaten-im-programm",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialisierung/Deserialisierung",slug:"serialisierung-deserialisierung",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"So deserialisieren Sie Kontodaten auf dem Client",slug:"so-deserialisieren-sie-kontodaten-auf-dem-client",children:[]},{level:2,title:"Common Solana TS/JS Mappings",slug:"common-solana-ts-js-mappings",children:[]},{level:2,title:"Fortgeschrittene Konstrukte",slug:"fortgeschrittene-konstrukte",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/guides/serialization.html",pathLocale:"/de/",extraFields:[]},{title:"Getting Started",headers:[{level:2,title:"Composability is Key",slug:"composability-is-key",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/de/integrations/",pathLocale:"/de/",extraFields:[]},{title:"Jupiter",headers:[{level:2,title:"Installation",slug:"installation",children:[{level:3,title:"Abrufen der Token-Liste von Jupiter",slug:"abrufen-der-token-liste-von-jupiter",children:[]},{level:3,title:"Laden der Jupiter-Instanz",slug:"laden-der-jupiter-instanz",children:[]},{level:3,title:"Abrufen der RouteMap",slug:"abrufen-der-routemap",children:[]},{level:3,title:"Abrufen der Routen f\xFCr gegebene Input- und Output-Token",slug:"abrufen-der-routen-fur-gegebene-input-und-output-token",children:[]},{level:3,title:"F\xFChren Sie den Token-Tausch durch",slug:"fuhren-sie-den-token-tausch-durch",children:[]}]},{level:2,title:"So verwenden Sie Jupiter in einer React-Anwendung",slug:"so-verwenden-sie-jupiter-in-einer-react-anwendung",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Anbieter hinzuf\xFCgen",slug:"anbieter-hinzufugen",children:[]},{level:3,title:"Abrufen der Token-Liste",slug:"abrufen-der-token-liste",children:[]},{level:3,title:"Aufbau des Staates",slug:"aufbau-des-staates",children:[]},{level:3,title:"Verwenden des useJupiter-Reaktionshooks",slug:"verwenden-des-usejupiter-reaktionshooks",children:[]},{level:3,title:"Durchf\xFChrung des Swaps",slug:"durchfuhrung-des-swaps",children:[]}]},{level:2,title:"So verwenden Sie die Jupiter-API",slug:"so-verwenden-sie-die-jupiter-api",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Abrufen der Routenkarte",slug:"abrufen-der-routenkarte",children:[]},{level:3,title:"Abrufen der serialisierten Transaktion zum Ausf\xFChren von Swap",slug:"abrufen-der-serialisierten-transaktion-zum-ausfuhren-von-swap",children:[]},{level:3,title:"Ausf\xFChrung der Swap-Transaktion",slug:"ausfuhrung-der-swap-transaktion",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/integrations/jupiter.html",pathLocale:"/de/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"So erhalten Sie eine Mango-Gruppe",slug:"so-erhalten-sie-eine-mango-gruppe",children:[]},{level:2,title:"So erstellen Sie ein Mango-Konto",slug:"so-erstellen-sie-ein-mango-konto",children:[]},{level:2,title:"So zahlen Sie USDC auf ein Mango-Konto ein",slug:"so-zahlen-sie-usdc-auf-ein-mango-konto-ein",children:[]},{level:2,title:"So platzieren Sie eine Spot-Order",slug:"so-platzieren-sie-eine-spot-order",children:[]},{level:2,title:"So laden Sie Gebote",slug:"so-laden-sie-gebote",children:[]},{level:2,title:"How to load asks",slug:"how-to-load-asks",children:[]},{level:2,title:"Andere Ressourcen",slug:"andere-ressourcen",children:[]}],path:"/de/integrations/mango.html",pathLocale:"/de/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Grundlegendes Nutzungsszenario",slug:"grundlegendes-nutzungsszenario",children:[]},{level:2,title:"SDKs (Software Developer Kits - Software-entwicklungs-packet)",slug:"sdks-software-developer-kits-software-entwicklungs-packet",children:[]},{level:2,title:"Anatomie einer Zuf\xE4lligkeitsanforderung",slug:"anatomie-einer-zufalligkeitsanforderung",children:[]},{level:2,title:"Anatomie einer VRF-Konfiguration",slug:"anatomie-einer-vrf-konfiguration",children:[]},{level:2,title:"Rust-natives Beispiel",slug:"rust-natives-beispiel",children:[{level:3,title:"1. Stellen Sie die Verbindung her",slug:"_1-stellen-sie-die-verbindung-her",children:[]},{level:3,title:"2. Erstellen Sie eine Anfrage",slug:"_2-erstellen-sie-eine-anfrage",children:[]},{level:3,title:"3. Warte auf die Erf\xFCllung",slug:"_3-warte-auf-die-erfullung",children:[]}]},{level:2,title:"CPI-Beispiel",slug:"cpi-beispiel",children:[{level:3,title:"1. Erstellen Sie den Vertrag",slug:"_1-erstellen-sie-den-vertrag",children:[]},{level:3,title:"2. Sammeln Sie die erforderlichen Konten",slug:"_2-sammeln-sie-die-erforderlichen-konten",children:[]},{level:3,title:"3. F\xFChren Sie einen CPI-Aufruf durch",slug:"_3-fuhren-sie-einen-cpi-aufruf-durch",children:[]},{level:3,title:"4. Nutzen Sie die erf\xFCllte Zuf\xE4lligkeit",slug:"_4-nutzen-sie-die-erfullte-zufalligkeit",children:[]}]}],path:"/de/integrations/orao-vrf.html",pathLocale:"/de/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"Verwendung von Pyth im Client",slug:"verwendung-von-pyth-im-client",children:[]},{level:2,title:"Verwendung von Pyth in Anchor",slug:"verwendung-von-pyth-in-anchor",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/integrations/pyth.html",pathLocale:"/de/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"How to use @solana/web3.js in a React Native app",slug:"how-to-use-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Erstellen Sie eine neue Anwendung",slug:"erstellen-sie-eine-neue-anwendung",children:[]},{level:3,title:"Abh\xE4ngigkeiten installieren",slug:"abhangigkeiten-installieren",children:[]},{level:3,title:"Patchen Sie Babel, um die Hermes-Transformationen zu verwenden",slug:"patchen-sie-babel-um-die-hermes-transformationen-zu-verwenden",children:[]},{level:3,title:"Aktualisieren Sie \u201Eindex.js\u201C",slug:"aktualisieren-sie-\u201Eindex-js",children:[]},{level:3,title:"Aktualisieren Sie \u201EApp.tsx\u201C",slug:"aktualisieren-sie-\u201Eapp-tsx",children:[]},{level:3,title:"[iOS only] Install cocoapods",slug:"ios-only-install-cocoapods",children:[]},{level:3,title:"Anwendung starten",slug:"anwendung-starten",children:[]}]},{level:2,title:"Solana DApp Scaffold f\xFCr React Native",slug:"solana-dapp-scaffold-fur-react-native",children:[]},{level:2,title:"H\xE4ufige Probleme bei der Verwendung von Kryptobibliotheken in einer React Native-App",slug:"haufige-probleme-bei-der-verwendung-von-kryptobibliotheken-in-einer-react-native-app",children:[{level:3,title:"Fehler: \u201EWatchman-Crawling fehlgeschlagen\u201C.",slug:"fehler-\u201Ewatchman-crawling-fehlgeschlagen",children:[]},{level:3,title:"Fehler: URL.protocol ist nicht implementiert",slug:"fehler-url-protocol-ist-nicht-implementiert",children:[]},{level:3,title:"Fehler: crypto.getRandomValues() wird nicht unterst\xFCtzt",slug:"fehler-crypto-getrandomvalues-wird-nicht-unterstutzt",children:[]}]}],path:"/de/integrations/react-native.html",pathLocale:"/de/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"So erhalten Sie einen Serummarkt",slug:"so-erhalten-sie-einen-serummarkt",children:[]},{level:2,title:"So erhalten Sie Serum-Bestellb\xFCcher",slug:"so-erhalten-sie-serum-bestellbucher",children:[]},{level:2,title:"So erhalten Sie aktuelle offene Bestellungen",slug:"so-erhalten-sie-aktuelle-offene-bestellungen",children:[]}],path:"/de/integrations/serum.html",pathLocale:"/de/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"So erstellen Sie ein vollst\xE4ndig verwaltetes Token",slug:"so-erstellen-sie-ein-vollstandig-verwaltetes-token",children:[]},{level:2,title:"Wie man einen Token kauft und verkauft",slug:"wie-man-einen-token-kauft-und-verkauft",children:[]},{level:2,title:"Wie man Liquidit\xE4t aufbaut",slug:"wie-man-liquiditat-aufbaut",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/integrations/strata.html",pathLocale:"/de/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Daten Feeds",slug:"daten-feeds",children:[{level:3,title:"Daten aus einem Aggregator-Feed lesen",slug:"daten-aus-einem-aggregator-feed-lesen",children:[]},{level:3,title:"Erstellen eines neuen Aggregator-Feed",slug:"erstellen-eines-neuen-aggregator-feed",children:[]},{level:3,title:"Lesen Sie Daten aus einem Aggregator-Feed-in-Programm",slug:"lesen-sie-daten-aus-einem-aggregator-feed-in-programm",children:[]},{level:3,title:"So erstellen Sie einen Feed vom Publisher",slug:"so-erstellen-sie-einen-feed-vom-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Erstelen eines Oracle",slug:"erstelen-eines-oracle",children:[]},{level:3,title:"Ausf\xFChren eines lokalen Oracle",slug:"ausfuhren-eines-lokalen-oracle",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifizierbare Zufallsfunktion (VRF)",slug:"verifizierbare-zufallsfunktion-vrf",children:[{level:3,title:"Lesen eines VRF-Kontos",slug:"lesen-eines-vrf-kontos",children:[]},{level:3,title:"Erstellen eines VRF-Kontos",slug:"erstellen-eines-vrf-kontos",children:[]},{level:3,title:"Fordern von Zuf\xE4lligkeit vom vrf-Konto",slug:"fordern-von-zufalligkeit-vom-vrf-konto",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/de/integrations/switchboard.html",pathLocale:"/de/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"Was ist eine Brieftasche?",slug:"was-ist-eine-brieftasche",children:[]},{level:2,title:"Soziale Logins auf Solana",slug:"soziale-logins-auf-solana",children:[]},{level:2,title:"Integrationsleitfaden",slug:"integrationsleitfaden",children:[{level:3,title:"Abh\xE4ngigkeiten installieren",slug:"abhangigkeiten-installieren",children:[]},{level:3,title:"Importieren Sie das SDK und initialisieren Sie es",slug:"importieren-sie-das-sdk-und-initialisieren-sie-es",children:[]},{level:3,title:"Benutzeranmeldung ausl\xF6sen",slug:"benutzeranmeldung-auslosen",children:[]},{level:3,title:"Verwenden der Torus-Instanz zum Abrufen von Benutzerkontodetails",slug:"verwenden-der-torus-instanz-zum-abrufen-von-benutzerkontodetails",children:[]},{level:3,title:"Verwenden der Torus Solana-API zum Signieren einer Nachricht.",slug:"verwenden-der-torus-solana-api-zum-signieren-einer-nachricht",children:[]},{level:3,title:"Verwenden der Torus Solana-API zum Senden einer Transaktion",slug:"verwenden-der-torus-solana-api-zum-senden-einer-transaktion",children:[]},{level:3,title:"Aufladungen",slug:"aufladungen",children:[]},{level:3,title:"Ausloggen",slug:"ausloggen",children:[]}]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/integrations/web3auth.html",pathLocale:"/de/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"So erstellen Sie ein Systemkonto",slug:"so-erstellen-sie-ein-systemkonto",children:[]},{level:2,title:"So berechnen Sie die Kontokosten",slug:"so-berechnen-sie-die-kontokosten",children:[]},{level:2,title:"So erstellen Sie Konten mit Seeds",slug:"so-erstellen-sie-konten-mit-seeds",children:[{level:3,title:"Generieren",slug:"generieren",children:[]},{level:3,title:"Erstellen",slug:"erstellen",children:[]},{level:3,title:"Transferieren",slug:"transferieren",children:[]}]},{level:2,title:"So erstellen Sie PDAs",slug:"so-erstellen-sie-pdas",children:[{level:3,title:"Generieren Sie einen PDA",slug:"generieren-sie-einen-pda",children:[]},{level:3,title:"Erstellen Sie einen PDA",slug:"erstellen-sie-einen-pda",children:[]}]},{level:2,title:"So signieren Sie mit einem PDA",slug:"so-signieren-sie-mit-einem-pda",children:[{level:3,title:"Programm",slug:"programm",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"So erhalten Sie Programmkonten",slug:"so-erhalten-sie-programmkonten",children:[]},{level:2,title:"So schlie\xDFen Sie Konten",slug:"so-schlie\xDFen-sie-konten",children:[]},{level:2,title:"So erhalten Sie den Kontostand",slug:"so-erhalten-sie-den-kontostand",children:[]}],path:"/de/references/accounts.html",pathLocale:"/de/",extraFields:[]},{title:"Transaktionen versenden",headers:[{level:2,title:"So senden Sie SPL-Tokens",slug:"so-senden-sie-spl-tokens",children:[]},{level:2,title:"So berechnen Sie die Transaktionskosten",slug:"so-berechnen-sie-die-transaktionskosten",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"So f\xFCgen Sie einer Transaktion eine Notiz hinzu",slug:"so-fugen-sie-einer-transaktion-eine-notiz-hinzu",children:[]},{level:2,title:"So \xE4ndern Sie das Computing-Budget, die Geb\xFChr & Priorit\xE4t f\xFCr eine Transaktion",slug:"so-andern-sie-das-computing-budget-die-gebuhr-prioritat-fur-eine-transaktion",children:[]}],path:"/de/references/basic-transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"So generieren Sie ein neues Schl\xFCsselpaar",slug:"so-generieren-sie-ein-neues-schlusselpaar",children:[]},{level:2,title:"So stellen Sie ein Schl\xFCsselpaar aus einem Geheimnis wieder her",slug:"so-stellen-sie-ein-schlusselpaar-aus-einem-geheimnis-wieder-her",children:[]},{level:2,title:"So verifizieren Sie ein Schl\xFCsselpaar",slug:"so-verifizieren-sie-ein-schlusselpaar",children:[]},{level:2,title:"So \xFCberpr\xFCfen Sie, ob ein \xF6ffentlicher Schl\xFCssel einen zugeh\xF6rigen privaten Schl\xFCssel hat",slug:"so-uberprufen-sie-ob-ein-offentlicher-schlussel-einen-zugehorigen-privaten-schlussel-hat",children:[]},{level:2,title:"Wie man eine mnemonische Phrase generiert",slug:"wie-man-eine-mnemonische-phrase-generiert",children:[]},{level:2,title:"So stellen Sie ein Schl\xFCsselpaar aus einer mnemonischen Phrase wieder her",slug:"so-stellen-sie-ein-schlusselpaar-aus-einer-mnemonischen-phrase-wieder-her",children:[]},{level:2,title:"So generieren Sie eine Vanity-Adresse",slug:"so-generieren-sie-eine-vanity-adresse",children:[]},{level:2,title:"So signieren und verifizieren Sie Nachrichten mit Wallets",slug:"so-signieren-und-verifizieren-sie-nachrichten-mit-wallets",children:[]},{level:2,title:"So verbinden Sie sich mit einer Brieftasche",slug:"so-verbinden-sie-sich-mit-einer-brieftasche",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/de/references/keypairs-and-wallets.html",pathLocale:"/de/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"Starten eines lokalen Validators",slug:"starten-eines-lokalen-validators",children:[]},{level:2,title:"Verbindung zu Umgebungen",slug:"verbindung-zu-umgebungen",children:[]},{level:2,title:"Abonnieren von Veranstaltungen",slug:"abonnieren-von-veranstaltungen",children:[]},{level:2,title:"Test SOL erhalten",slug:"test-sol-erhalten",children:[]},{level:2,title:"Verwenden von Mainnet-Konten und -Programmen",slug:"verwenden-von-mainnet-konten-und-programmen",children:[{level:3,title:"So laden Sie Konten aus dem Mainnet",slug:"so-laden-sie-konten-aus-dem-mainnet",children:[]},{level:3,title:"So laden Sie Programme aus dem Mainnet",slug:"so-laden-sie-programme-aus-dem-mainnet",children:[]}]}],path:"/de/references/local-development.html",pathLocale:"/de/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Namensregister",slug:"namensregister",children:[]},{level:2,title:"SOL-Dom\xE4nen aufl\xF6sen",slug:"sol-domanen-auflosen",children:[]},{level:2,title:"R\xFCckw\xE4rtssuche",slug:"ruckwartssuche",children:[]},{level:2,title:"Subdomain nachschlagen",slug:"subdomain-nachschlagen",children:[]},{level:2,title:"Finden Sie alle Domainnamen, die einem \xF6ffentlichen Schl\xFCssel geh\xF6ren",slug:"finden-sie-alle-domainnamen-die-einem-offentlichen-schlussel-gehoren",children:[]},{level:2,title:"Ein Twitter-Handle aufl\xF6sen",slug:"ein-twitter-handle-auflosen",children:[]},{level:2,title:"Umgekehrte Suche nach einem Twitter-Handle",slug:"umgekehrte-suche-nach-einem-twitter-handle",children:[]}],path:"/de/references/name-service.html",pathLocale:"/de/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"So erstellen Sie eine NFT",slug:"so-erstellen-sie-eine-nft",children:[{level:3,title:"Upload zu Arweave",slug:"upload-zu-arweave",children:[]},{level:3,title:"Minte das NFT",slug:"minte-das-nft",children:[]}]},{level:2,title:"So erhalten Sie NFT-Metadaten",slug:"so-erhalten-sie-nft-metadaten",children:[]},{level:2,title:"So erhalten Sie den Besitzer eines NFT",slug:"so-erhalten-sie-den-besitzer-eines-nft",children:[]},{level:2,title:"So erhalten Sie NFT Mint-Adressen",slug:"so-erhalten-sie-nft-mint-adressen",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"Wie bekomme ich alle NFTs aus einem Wallet?",slug:"wie-bekomme-ich-alle-nfts-aus-einem-wallet",children:[]},{level:2,title:"Candy Machine v2",slug:"candy-machine-v2-1",children:[{level:3,title:"Wie erstelle ich eine Candy Machine?",slug:"wie-erstelle-ich-eine-candy-machine",children:[]},{level:3,title:"Wie Sie eine Candy Machine l\xF6schen",slug:"wie-sie-eine-candy-machine-loschen",children:[]},{level:3,title:"So finden Sie die Candy Machine Autorit\xE4t",slug:"so-finden-sie-die-candy-machine-autoritat",children:[]},{level:3,title:"So finden Sie Candy Machine mit der Wallet-Adresse",slug:"so-finden-sie-candy-machine-mit-der-wallet-adresse",children:[]},{level:3,title:"So finden Sie Candy Machine anhand seiner Adresse",slug:"so-finden-sie-candy-machine-anhand-seiner-adresse",children:[]},{level:3,title:"So finden Sie gepr\xE4gte NFTs von einer Candy Machine",slug:"so-finden-sie-gepragte-nfts-von-einer-candy-machine",children:[]},{level:3,title:"So f\xFCgen Sie Artikel in einer Candy Machine bei",slug:"so-fugen-sie-artikel-in-einer-candy-machine-bei",children:[]},{level:3,title:"Wie man einen NFT von einer Candy Machine pr\xE4gt",slug:"wie-man-einen-nft-von-einer-candy-machine-pragt",children:[]}]}],path:"/de/references/nfts.html",pathLocale:"/de/",extraFields:[]},{title:"Senden von Offline-Transaktionen",headers:[{level:2,title:"Transaktion unterzeichnen",slug:"transaktion-unterzeichnen",children:[]},{level:2,title:"Transaktion teilweise signieren",slug:"transaktion-teilweise-signieren",children:[]},{level:2,title:"Langlebige Nonce",slug:"langlebige-nonce",children:[{level:3,title:"Erstellen Sie ein Nonce-Konto",slug:"erstellen-sie-ein-nonce-konto",children:[]},{level:3,title:"Holen Sie sich ein Nonce-Konto",slug:"holen-sie-sich-ein-nonce-konto",children:[]},{level:3,title:"Verwenden Sie das Nonce-Konto",slug:"verwenden-sie-das-nonce-konto",children:[]}]}],path:"/de/references/offline-transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Programme schreiben",headers:[{level:2,title:"So \xFCbertragen Sie SOL in einem Programm",slug:"so-ubertragen-sie-sol-in-einem-programm",children:[]},{level:2,title:"Wie bekomme ich die Uhr in ein Programm?",slug:"wie-bekomme-ich-die-uhr-in-ein-programm",children:[{level:3,title:"Passing Clock als Konto innerhalb einer Anweisung",slug:"passing-clock-als-konto-innerhalb-einer-anweisung",children:[]},{level:3,title:"Direkter Zugriff auf die Uhr innerhalb einer Anweisung",slug:"direkter-zugriff-auf-die-uhr-innerhalb-einer-anweisung",children:[]}]},{level:2,title:"So \xE4ndern Sie die Kontogr\xF6\xDFe",slug:"so-andern-sie-die-kontogro\xDFe",children:[]},{level:2,title:"Wie man einen programm\xFCbergreifenden Aufruf durchf\xFChrt",slug:"wie-man-einen-programmubergreifenden-aufruf-durchfuhrt",children:[]},{level:2,title:"So erstellen Sie einen PDA",slug:"so-erstellen-sie-einen-pda",children:[]},{level:2,title:"Wie man Konten liest",slug:"wie-man-konten-liest",children:[]},{level:2,title:"So verifizieren Sie Konten",slug:"so-verifizieren-sie-konten",children:[]},{level:2,title:"So lesen Sie mehrere Anweisungen aus einer Transaktion",slug:"so-lesen-sie-mehrere-anweisungen-aus-einer-transaktion",children:[]}],path:"/de/references/programs.html",pathLocale:"/de/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Holen Sie sich aktuelle Validatoren",slug:"holen-sie-sich-aktuelle-validatoren",children:[]},{level:2,title:"Einsatzkonto erstellen",slug:"einsatzkonto-erstellen",children:[]},{level:2,title:"Stake delegieren",slug:"stake-delegieren",children:[]},{level:2,title:"Delegator durch Validatoren abrufen",slug:"delegator-durch-validatoren-abrufen",children:[]},{level:2,title:"Stake deaktivieren",slug:"stake-deaktivieren",children:[]},{level:2,title:"Stake Auszahlen",slug:"stake-auszahlen",children:[]}],path:"/de/references/staking.html",pathLocale:"/de/",extraFields:[]},{title:"Interaktion mit Tokens",headers:[{level:2,title:"Was ben\xF6tige ich, um mit SPL-Tokens zu beginnen?",slug:"was-benotige-ich-um-mit-spl-tokens-zu-beginnen",children:[]},{level:2,title:"So erstellen Sie ein neues Token",slug:"so-erstellen-sie-ein-neues-token",children:[]},{level:2,title:"So erhalten Sie eine Token-Minze",slug:"so-erhalten-sie-eine-token-minze",children:[]},{level:2,title:"So erstellen Sie ein Token-Konto",slug:"so-erstellen-sie-ein-token-konto",children:[]},{level:2,title:"So erhalten Sie ein Token-Konto",slug:"so-erhalten-sie-ein-token-konto",children:[]},{level:2,title:"So erhalten Sie das Guthaben eines Token-Kontos",slug:"so-erhalten-sie-das-guthaben-eines-token-kontos",children:[]},{level:2,title:"Wie man Token pr\xE4gt",slug:"wie-man-token-pragt",children:[]},{level:2,title:"So \xFCbertragen Sie Token",slug:"so-ubertragen-sie-token",children:[]},{level:2,title:"Wie man Token verbrennt",slug:"wie-man-token-verbrennt",children:[]},{level:2,title:"So schlie\xDFen Sie Token-Konten",slug:"so-schlie\xDFen-sie-token-konten",children:[]},{level:2,title:"So legen Sie die Autorit\xE4t f\xFCr Token-Konten oder Mints fest",slug:"so-legen-sie-die-autoritat-fur-token-konten-oder-mints-fest",children:[]},{level:2,title:"So genehmigen Sie einen Token-Delegierten",slug:"so-genehmigen-sie-einen-token-delegierten",children:[]},{level:2,title:"So widerrufen Sie einen Token-Delegierten",slug:"so-widerrufen-sie-einen-token-delegierten",children:[]},{level:2,title:"So verwalten Sie verpackte SOL",slug:"so-verwalten-sie-verpackte-sol",children:[{level:3,title:"Token-Konto erstellen",slug:"token-konto-erstellen",children:[]},{level:3,title:"Guthaben hinzuf\xFCgen",slug:"guthaben-hinzufugen",children:[]}]},{level:2,title:"So erhalten Sie alle Token-Konten nach Eigent\xFCmer",slug:"so-erhalten-sie-alle-token-konten-nach-eigentumer",children:[]}],path:"/de/references/token.html",pathLocale:"/de/",extraFields:[]},{title:"Cuentas",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"El modelo de una cuenta",slug:"el-modelo-de-una-cuenta",children:[]},{level:3,title:"Renta",slug:"renta",children:[]}]},{level:2,title:"Otros recursos",slug:"otros-recursos",children:[{level:3,title:"Creditos",slug:"creditos",children:[]}]}],path:"/es/core-concepts/accounts.html",pathLocale:"/es/",extraFields:[]},{title:"Direcciones derivadas de programa (PDAs)",headers:[{level:2,title:"Hechos",slug:"hechos",children:[{level:3,title:"Generando PDAs",slug:"generando-pdas",children:[]},{level:3,title:"Interactuando con PDAs",slug:"interactuando-con-pdas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/es/core-concepts/pdas.html",pathLocale:"/es/",extraFields:[]},{title:"Programas",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"Programas nativos & La librer\xEDa de Programas de Solana (SPL)",slug:"programas-nativos-la-libreria-de-programas-de-solana-spl",children:[]},{level:3,title:"Escribiendo programas",slug:"escribiendo-programas",children:[]},{level:3,title:"Desplegando Programas",slug:"desplegando-programas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/es/core-concepts/programs.html",pathLocale:"/es/",extraFields:[]},{title:"Transacciones",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"Cargos (fees)",slug:"cargos-fees",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/es/core-concepts/transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Instalaci\xF3n",headers:[{level:2,title:"Instalaci\xF3n de Web3.js",slug:"instalacion-de-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Instalaci\xF3n de Rust",slug:"instalacion-de-rust",children:[]},{level:2,title:"Instalaci\xF3n de CLI",slug:"instalacion-de-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Compilaci\xF3n desde el C\xF3digo Fuente",slug:"compilacion-desde-el-codigo-fuente",children:[]}]}],path:"/es/getting-started/installation.html",pathLocale:"/es/",extraFields:[]},{title:"C\xF3mo usar Map en cuentas",headers:[{level:2,title:"Derivando PDAs",slug:"derivando-pdas",children:[]},{level:2,title:"Map simple",slug:"map-simple",children:[]}],path:"/es/guides/account-maps.html",pathLocale:"/es/",extraFields:[]},{title:"Migrando cuentas de datos de programas",headers:[{level:2,title:"\xBFC\xF3mo se pueden migrar las cuentas de datos de un programa?",slug:"\xBFcomo-se-pueden-migrar-las-cuentas-de-datos-de-un-programa",children:[]},{level:2,title:"Escenario",slug:"escenario",children:[]},{level:2,title:"Actualizando la cuenta",slug:"actualizando-la-cuenta",children:[{level:3,title:"1. Agregar la l\xF3gica de conversi\xF3n de cuenta",slug:"_1-agregar-la-logica-de-conversion-de-cuenta",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/es/guides/data-migration.html",pathLocale:"/es/",extraFields:[]},{title:"Depurando Programas en Solana",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Pruebas de tiempo de ejecuci\xF3n y depuraci\xF3n en el editor",slug:"pruebas-de-tiempo-de-ejecucion-y-depuracion-en-el-editor",children:[]},{level:2,title:"Pruebas de nodo de validaci\xF3n local en el editor (Local Validator)",slug:"pruebas-de-nodo-de-validacion-local-en-el-editor-local-validator",children:[]},{level:2,title:"Pruebas de nodos de validadores locales desde aplicaciones cliente",slug:"pruebas-de-nodos-de-validadores-locales-desde-aplicaciones-cliente",children:[]},{level:2,title:"Recursos",slug:"recursos",children:[]}],path:"/es/guides/debugging-solana-programs.html",pathLocale:"/es/",extraFields:[]},{title:"Prueba de paridad de caracter\xEDsticas",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Escenario",slug:"escenario",children:[]},{level:2,title:"Estado de la funci\xF3n",slug:"estado-de-la-funcion",children:[]},{level:2,title:"Pruebas de paridad",slug:"pruebas-de-paridad",children:[]},{level:2,title:"Demostraci\xF3n sencilla",slug:"demostracion-sencilla",children:[{level:3,title:"Todas las funciones activadas",slug:"todas-las-funciones-activadas",children:[]},{level:3,title:"Funciones selectivas desactivadas",slug:"funciones-selectivas-desactivadas",children:[]}]},{level:2,title:"Pruebas de paridad completa",slug:"pruebas-de-paridad-completa",children:[]},{level:2,title:"Pruebas de paridad completa program\xE1ticamente",slug:"pruebas-de-paridad-completa-programaticamente",children:[]},{level:2,title:"Recursos",slug:"recursos",children:[]}],path:"/es/guides/feature-parity-testing.html",pathLocale:"/es/",extraFields:[]},{title:"Obtener cuentas de programa",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Otros recursos",slug:"otros-recursos",children:[]}],path:"/es/guides/get-program-accounts.html",pathLocale:"/es/",extraFields:[]},{title:"Reintentando Transacciones",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"El viaje de una transacci\xF3n",slug:"el-viaje-de-una-transaccion",children:[{level:3,title:"C\xF3mo los clientes env\xEDan transacciones",slug:"como-los-clientes-envian-transacciones",children:[]},{level:3,title:"C\xF3mo transmiten las transacciones los nodos RPC",slug:"como-transmiten-las-transacciones-los-nodos-rpc",children:[]}]},{level:2,title:"C\xF3mo se caen las transacciones",slug:"como-se-caen-las-transacciones",children:[{level:3,title:"Antes de que se procese una transacci\xF3n",slug:"antes-de-que-se-procese-una-transaccion",children:[]},{level:3,title:"Despu\xE9s de que se procese una transacci\xF3n y antes de que finalice",slug:"despues-de-que-se-procese-una-transaccion-y-antes-de-que-finalice",children:[]}]},{level:2,title:"Manejo de transacciones descartadas",slug:"manejo-de-transacciones-descartadas",children:[{level:3,title:"Una mirada en profundidad a sendTransaction",slug:"una-mirada-en-profundidad-a-sendtransaction",children:[]}]},{level:2,title:"Personalizaci\xF3n de la l\xF3gica de retransmisi\xF3n",slug:"personalizacion-de-la-logica-de-retransmision",children:[{level:3,title:"El costo de omitir la verificaci\xF3n previa",slug:"el-costo-de-omitir-la-verificacion-previa",children:[]},{level:3,title:"Cu\xE1ndo volver a firmar transacciones",slug:"cuando-volver-a-firmar-transacciones",children:[]}]},{level:2,title:"Agradecimientos",slug:"agradecimientos",children:[]}],path:"/es/guides/retrying-transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Serializando datos",headers:[{level:2,title:"Configuraci\xF3n para la serializaci\xF3n con Borsh",slug:"configuracion-para-la-serializacion-con-borsh",children:[]},{level:2,title:"C\xF3mo serializar datos de instrucciones en el cliente",slug:"como-serializar-datos-de-instrucciones-en-el-cliente",children:[]},{level:2,title:"How to deserialize instruction data on the program",slug:"how-to-deserialize-instruction-data-on-the-program",children:[]},{level:2,title:"C\xF3mo serializar los datos de la cuenta en el programa",slug:"como-serializar-los-datos-de-la-cuenta-en-el-programa",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serializaci\xF3n/Deserealizaci\xF3n",slug:"serializacion-deserealizacion",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"C\xF3mo deserializar los datos de la cuenta en el cliente",slug:"como-deserializar-los-datos-de-la-cuenta-en-el-cliente",children:[]},{level:2,title:"Mappins comunes de Solana TS/JS",slug:"mappins-comunes-de-solana-ts-js",children:[]},{level:2,title:"Construcciones avanzadas",slug:"construcciones-avanzadas",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Recursos",slug:"recursos",children:[]}],path:"/es/guides/serialization.html",pathLocale:"/es/",extraFields:[]},{title:"Cuentas",headers:[{level:2,title:"C\xF3mo crear una cuenta del sistema",slug:"como-crear-una-cuenta-del-sistema",children:[]},{level:2,title:"C\xF3mo calcular el costo de una cuenta",slug:"como-calcular-el-costo-de-una-cuenta",children:[]},{level:2,title:"C\xF3mo crear cuentas con semillas",slug:"como-crear-cuentas-con-semillas",children:[{level:3,title:"Generar",slug:"generar",children:[]},{level:3,title:"Crear",slug:"crear",children:[]},{level:3,title:"Transferir",slug:"transferir",children:[]}]},{level:2,title:"C\xF3mo crear PDAs",slug:"como-crear-pdas",children:[{level:3,title:"Generar una cuenta derivada de programa (PDA)",slug:"generar-una-cuenta-derivada-de-programa-pda",children:[]},{level:3,title:"Crear una cuenta derivada de programa (PDA)",slug:"crear-una-cuenta-derivada-de-programa-pda",children:[]}]},{level:2,title:"C\xF3mo firmar con una cuenta derivada de programa (PDA)",slug:"como-firmar-con-una-cuenta-derivada-de-programa-pda",children:[{level:3,title:"Programa",slug:"programa-1",children:[]},{level:3,title:"Cliente",slug:"cliente-1",children:[]}]},{level:2,title:"C\xF3mo obtener cuentas de programas",slug:"como-obtener-cuentas-de-programas",children:[]},{level:2,title:"C\xF3mo cerrar cuentas",slug:"como-cerrar-cuentas",children:[]},{level:2,title:"C\xF3mo obtener el balance de una cuenta",slug:"como-obtener-el-balance-de-una-cuenta",children:[]}],path:"/es/references/accounts.html",pathLocale:"/es/",extraFields:[]},{title:"Enviando transacciones",headers:[{level:2,title:"C\xF3mo enviar SOL",slug:"como-enviar-sol",children:[]},{level:2,title:"How to send SPL-Tokens",slug:"how-to-send-spl-tokens",children:[]},{level:2,title:"C\xF3mo calcular el costo de una transacci\xF3n",slug:"como-calcular-el-costo-de-una-transaccion",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"C\xF3mo agregar un memo en una transacci\xF3n",slug:"como-agregar-un-memo-en-una-transaccion",children:[]},{level:2,title:"C\xF3mo cambiar el presupuesto de c\xF3mputo para una transacci\xF3n",slug:"como-cambiar-el-presupuesto-de-computo-para-una-transaccion",children:[]}],path:"/es/references/basic-transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Pares de llaves y billeteras",headers:[{level:2,title:"C\xF3mo generar un nuevo Keypair (par de llaves)",slug:"como-generar-un-nuevo-keypair-par-de-llaves",children:[]},{level:2,title:"C\xF3mo restaurar un par de llaves a partir de una llave privada",slug:"como-restaurar-un-par-de-llaves-a-partir-de-una-llave-privada",children:[]},{level:2,title:"C\xF3mo verificar un par de llaves",slug:"como-verificar-un-par-de-llaves",children:[]},{level:2,title:"C\xF3mo comprobar si una llave p\xFAblica tiene una llave privada asociada",slug:"como-comprobar-si-una-llave-publica-tiene-una-llave-privada-asociada",children:[]},{level:2,title:"C\xF3mo generar una frase semilla (mnemonic)",slug:"como-generar-una-frase-semilla-mnemonic",children:[]},{level:2,title:"C\xF3mo restaurar un par de llaves desde una frase semilla",slug:"como-restaurar-un-par-de-llaves-desde-una-frase-semilla",children:[]},{level:2,title:"C\xF3mo generar una direcci\xF3n personalizada",slug:"como-generar-una-direccion-personalizada",children:[]},{level:2,title:"C\xF3mo firmar y verificar mensajes con wallets",slug:"como-firmar-y-verificar-mensajes-con-wallets",children:[]},{level:2,title:"C\xF3mo conectar una wallet",slug:"como-conectar-una-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/es/references/keypairs-and-wallets.html",pathLocale:"/es/",extraFields:[]},{title:"Desarrollo en entorno local",headers:[{level:2,title:"Iniciando un validador",slug:"iniciando-un-validador",children:[]},{level:2,title:"Conect\xE1ndote con los diferentes entornos",slug:"conectandote-con-los-diferentes-entornos",children:[]},{level:2,title:"Suscripci\xF3n a eventos",slug:"suscripcion-a-eventos",children:[]},{level:2,title:"Obteniendo SOL para pruebas",slug:"obteniendo-sol-para-pruebas",children:[]},{level:2,title:"Usando cuentas de mainnet y programas",slug:"usando-cuentas-de-mainnet-y-programas",children:[{level:3,title:"C\xF3mo cargar cuentas de mainnet",slug:"como-cargar-cuentas-de-mainnet",children:[]},{level:3,title:"C\xF3mo cargar programas de mainnet",slug:"como-cargar-programas-de-mainnet",children:[]}]}],path:"/es/references/local-development.html",pathLocale:"/es/",extraFields:[]},{title:"Servicio de nombres",headers:[{level:2,title:"Registro de nombres",slug:"registro-de-nombres",children:[]},{level:2,title:"Resolviendo dominios SOL",slug:"resolviendo-dominios-sol",children:[]},{level:2,title:"B\xFAsqueda inversa",slug:"busqueda-inversa",children:[]},{level:2,title:"B\xFAsqueda de subdominios",slug:"busqueda-de-subdominios",children:[]},{level:2,title:"Encuentre todos los nombres de dominio que pertenecen a una clave p\xFAblica",slug:"encuentre-todos-los-nombres-de-dominio-que-pertenecen-a-una-clave-publica",children:[]},{level:2,title:"Resolver un identificador de Twitter",slug:"resolver-un-identificador-de-twitter",children:[]},{level:2,title:"B\xFAsqueda inversa de un identificador de Twitter",slug:"busqueda-inversa-de-un-identificador-de-twitter",children:[]}],path:"/es/references/name-service.html",pathLocale:"/es/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"\xBFC\xF3mo crear un NFT?",slug:"\xBFcomo-crear-un-nft",children:[{level:3,title:"Subir a Arweave",slug:"subir-a-arweave",children:[]},{level:3,title:"Crear (mint) el NFT",slug:"crear-mint-el-nft",children:[]}]},{level:2,title:"\xBFC\xF3mo obtener metadatos de un NFT?",slug:"\xBFcomo-obtener-metadatos-de-un-nft",children:[]},{level:2,title:"\xBFC\xF3mo obtener el due\xF1o de un NFT?",slug:"\xBFcomo-obtener-el-dueno-de-un-nft",children:[]},{level:2,title:"\xBFC\xF3mo obtener direcciones de mint de NFT?",slug:"\xBFcomo-obtener-direcciones-de-mint-de-nft",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"\xBFC\xF3mo obtener todos los NFT de una billetera?",slug:"\xBFcomo-obtener-todos-los-nft-de-una-billetera",children:[]}],path:"/es/references/nfts.html",pathLocale:"/es/",extraFields:[]},{title:"Enviando transacciones offline",headers:[{level:2,title:"Firmar una transacci\xF3n",slug:"firmar-una-transaccion",children:[]},{level:2,title:"Firma parcial de una transacci\xF3n",slug:"firma-parcial-de-una-transaccion",children:[]},{level:2,title:"Nonce de larga duraci\xF3n (Durable Nonce)",slug:"nonce-de-larga-duracion-durable-nonce",children:[{level:3,title:"Crear una cuenta nonce",slug:"crear-una-cuenta-nonce",children:[]},{level:3,title:"Obtener una cuenta nonce",slug:"obtener-una-cuenta-nonce",children:[]},{level:3,title:"Usar una cuenta nonce",slug:"usar-una-cuenta-nonce",children:[]}]}],path:"/es/references/offline-transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Escribiendo Programas",headers:[{level:2,title:"C\xF3mo transferir SOL a un programa",slug:"como-transferir-sol-a-un-programa",children:[]},{level:2,title:"C\xF3mo obtener una referencia al reloj en un programa",slug:"como-obtener-una-referencia-al-reloj-en-un-programa",children:[{level:3,title:"Enviando Clock c\xF3mo una cuenta dentro de una instrucci\xF3n",slug:"enviando-clock-como-una-cuenta-dentro-de-una-instruccion",children:[]},{level:3,title:"Accediendo al reloj directamente dentro de una instrucci\xF3n",slug:"accediendo-al-reloj-directamente-dentro-de-una-instruccion",children:[]}]},{level:2,title:"C\xF3mo cambiar el tama\xF1o de una cuenta",slug:"como-cambiar-el-tamano-de-una-cuenta",children:[]},{level:2,title:"C\xF3mo hacer una invocaci\xF3n entre programas (Cross Program Invocation)",slug:"como-hacer-una-invocacion-entre-programas-cross-program-invocation",children:[]},{level:2,title:"C\xF3mo crear una cuenta derivada de programa (PDA)",slug:"como-crear-una-cuenta-derivada-de-programa-pda",children:[]},{level:2,title:"C\xF3mo leer cuentas",slug:"como-leer-cuentas",children:[]},{level:2,title:"C\xF3mo verificar cuentas",slug:"como-verificar-cuentas",children:[]},{level:2,title:"C\xF3mo leer m\xFAltiples instrucciones de una transacci\xF3n",slug:"como-leer-multiples-instrucciones-de-una-transaccion",children:[]}],path:"/es/references/programs.html",pathLocale:"/es/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Obtener los validadores actuales",slug:"obtener-los-validadores-actuales",children:[]},{level:2,title:"\xBFCrear una cuenta de stake?",slug:"\xBFcrear-una-cuenta-de-stake",children:[]},{level:2,title:"Delegar Stake",slug:"delegar-stake",children:[]},{level:2,title:"Obtener el delegador por los validadores",slug:"obtener-el-delegador-por-los-validadores",children:[]},{level:2,title:"Desactivar Stake",slug:"desactivar-stake",children:[]},{level:2,title:"Retirar Stake",slug:"retirar-stake",children:[]}],path:"/es/references/staking.html",pathLocale:"/es/",extraFields:[]},{title:"Interactuando con tokens",headers:[{level:2,title:"\xBFQu\xE9 necesito para comenzar a trabajar con SPL-Tokens?",slug:"\xBFque-necesito-para-comenzar-a-trabajar-con-spl-tokens",children:[]},{level:2,title:"\xBFC\xF3mo crear un nuevo token?",slug:"\xBFcomo-crear-un-nuevo-token",children:[]},{level:2,title:'\xBFC\xF3mo obtener un token "mint"?',slug:"\xBFcomo-obtener-un-token-mint",children:[]},{level:2,title:"\xBFC\xF3mo crear una cuenta de token?",slug:"\xBFcomo-crear-una-cuenta-de-token",children:[]},{level:2,title:"\xBFC\xF3mo obtener un cuenta de token?",slug:"\xBFcomo-obtener-un-cuenta-de-token",children:[]},{level:2,title:"\xBFC\xF3mo obtener el saldo de una cuenta token?",slug:"\xBFcomo-obtener-el-saldo-de-una-cuenta-token",children:[]},{level:2,title:"\xBFC\xF3mo crear (mint) nuevos tokens?",slug:"\xBFcomo-crear-mint-nuevos-tokens",children:[]},{level:2,title:"\xBFC\xF3mo transferir tokens?",slug:"\xBFcomo-transferir-tokens",children:[]},{level:2,title:"\xBFC\xF3mo quemar tokens?",slug:"\xBFcomo-quemar-tokens",children:[]},{level:2,title:"\xBFC\xF3mo cerrar cuentas de token?",slug:"\xBFcomo-cerrar-cuentas-de-token",children:[]},{level:2,title:"\xBFC\xF3mo establecer la autoridad en cuentas de tokens o mints?",slug:"\xBFcomo-establecer-la-autoridad-en-cuentas-de-tokens-o-mints",children:[]},{level:2,title:"\xBFC\xF3mo aprobar una delegaci\xF3n de token?",slug:"\xBFcomo-aprobar-una-delegacion-de-token",children:[]},{level:2,title:"\xBFC\xF3mo revocar una delegaci\xF3n de token?",slug:"\xBFcomo-revocar-una-delegacion-de-token",children:[]},{level:2,title:"\xBFC\xF3mo manejar Wrapped SOL?",slug:"\xBFcomo-manejar-wrapped-sol",children:[{level:3,title:"Crear una cuenta de token",slug:"crear-una-cuenta-de-token",children:[]},{level:3,title:"Agregar saldo",slug:"agregar-saldo",children:[]}]},{level:2,title:"\xBFC\xF3mo obtener todas las cuentas de token por propietario?",slug:"\xBFcomo-obtener-todas-las-cuentas-de-token-por-propietario",children:[]}],path:"/es/references/token.html",pathLocale:"/es/",extraFields:[]},{title:"Comptes",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"Le mod\xE8le d'un compte",slug:"le-modele-d-un-compte",children:[]},{level:3,title:"Rente",slug:"rente",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[{level:3,title:"Cr\xE9dit",slug:"credit",children:[]}]}],path:"/fr/core-concepts/accounts.html",pathLocale:"/fr/",extraFields:[]},{title:"Adresses d\xE9riv\xE9es de programmes (PDAs)",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"G\xE9n\xE9ration des PDAs",slug:"generation-des-pdas",children:[]},{level:3,title:"Interaction avec les PDAs",slug:"interaction-avec-les-pdas",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/core-concepts/pdas.html",pathLocale:"/fr/",extraFields:[]},{title:"Programmes",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"Programmes Natifs & La Biblioth\xE8que des Programmes de Solana (SPL)",slug:"programmes-natifs-la-bibliotheque-des-programmes-de-solana-spl",children:[]},{level:3,title:"Ecrire des programmes",slug:"ecrire-des-programmes",children:[]},{level:3,title:"D\xE9ployer des programmes",slug:"deployer-des-programmes",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/core-concepts/programs.html",pathLocale:"/fr/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"Frais",slug:"frais",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/core-concepts/transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Installer Web3.js",slug:"installer-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Installer Rust",slug:"installer-rust",children:[]},{level:2,title:"Installer CLI",slug:"installer-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Compiler \xE0 partir du code source",slug:"compiler-a-partir-du-code-source",children:[]}]}],path:"/fr/getting-started/installation.html",pathLocale:"/fr/",extraFields:[]},{title:"Maps de Comptes",headers:[{level:2,title:"D\xE9rivation des PDAs",slug:"derivation-des-pdas",children:[]},{level:2,title:"Compte de Map Unique",slug:"compte-de-map-unique",children:[]}],path:"/fr/guides/account-maps.html",pathLocale:"/fr/",extraFields:[]},{title:"Migration des Comptes de Donn\xE9es de Programmes",headers:[{level:2,title:"Comment migrer les comptes de donn\xE9es d'un programme ?",slug:"comment-migrer-les-comptes-de-donnees-d-un-programme",children:[]},{level:2,title:"Sc\xE9nario",slug:"scenario",children:[]},{level:2,title:"Mise \xE0 jour du Compte",slug:"mise-a-jour-du-compte",children:[{level:3,title:"1. Ajouter une logique de conversion de compte",slug:"_1-ajouter-une-logique-de-conversion-de-compte",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/data-migration.html",pathLocale:"/fr/",extraFields:[]},{title:"D\xE9bogage des Programmes Solana",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Tests d'Ex\xE9cution et D\xE9bogage dans l'\xE9diteur",slug:"tests-d-execution-et-debogage-dans-l-editeur",children:[]},{level:2,title:"Test avec un N\u0153ud de Validation Local dans l'\xE9diteur",slug:"test-avec-un-n\u0153ud-de-validation-local-dans-l-editeur",children:[]},{level:2,title:"Test avec un N\u0153ud de Validation Local \xE0 partir des Applications Clients",slug:"test-avec-un-n\u0153ud-de-validation-local-a-partir-des-applications-clients",children:[]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/debugging-solana-programs.html",pathLocale:"/fr/",extraFields:[]},{title:"Test de Conformit\xE9 des Fonctionnalit\xE9s",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Sc\xE9nario",slug:"scenario",children:[]},{level:2,title:"Statut de la Fonctionnalit\xE9",slug:"statut-de-la-fonctionnalite",children:[]},{level:2,title:"Test de Conformit\xE9",slug:"test-de-conformite",children:[]},{level:2,title:"D\xE9monstration Simple",slug:"demonstration-simple",children:[{level:3,title:"Toutes les fonctionnalit\xE9s activ\xE9es",slug:"toutes-les-fonctionnalites-activees",children:[]},{level:3,title:"Fonctionnalit\xE9s s\xE9lectives d\xE9sactiv\xE9es",slug:"fonctionnalites-selectives-desactivees",children:[]}]},{level:2,title:"Tests de Conformit\xE9 Compl\xE8te",slug:"tests-de-conformite-complete",children:[]},{level:2,title:"Test de Conformit\xE9 Compl\xE8te programm\xE9",slug:"test-de-conformite-complete-programme",children:[]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/feature-parity-testing.html",pathLocale:"/fr/",extraFields:[]},{title:"Obtenir les comptes d'un programme",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/guides/get-program-accounts.html",pathLocale:"/fr/",extraFields:[]},{title:"R\xE9essayer des Transactions",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Le Voyage d'une Transaction",slug:"le-voyage-d-une-transaction",children:[{level:3,title:"Comment Les Clients Soumettent Les Transactions",slug:"comment-les-clients-soumettent-les-transactions",children:[]},{level:3,title:"Comment Les N\u0153uds RPC Transmettent Les Transactions",slug:"comment-les-n\u0153uds-rpc-transmettent-les-transactions",children:[]}]},{level:2,title:"Comment Les Transactions Sont Rejet\xE9es",slug:"comment-les-transactions-sont-rejetees",children:[{level:3,title:"Avant le traitement d'une transaction",slug:"avant-le-traitement-d-une-transaction",children:[]},{level:3,title:"Apr\xE8s le traitement d'une transaction et avant sa finalisation",slug:"apres-le-traitement-d-une-transaction-et-avant-sa-finalisation",children:[]}]},{level:2,title:"Traitement Des Transactions Rejet\xE9es",slug:"traitement-des-transactions-rejetees",children:[{level:3,title:"Un Examen Approfondi De sendTransaction",slug:"un-examen-approfondi-de-sendtransaction",children:[]}]},{level:2,title:"Personnalisation De La logique De Retransmission",slug:"personnalisation-de-la-logique-de-retransmission",children:[{level:3,title:"Le Co\xFBt de l'Omission Du Contr\xF4le Pr\xE9alable",slug:"le-cout-de-l-omission-du-controle-prealable",children:[]},{level:3,title:"Quand Re-Signer Des Transactions",slug:"quand-re-signer-des-transactions",children:[]}]},{level:2,title:"Remerciements",slug:"remerciements",children:[]}],path:"/fr/guides/retrying-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"S\xE9rialisation des donn\xE9es",headers:[{level:2,title:"Configuration pour la s\xE9rialisation avec Borsh",slug:"configuration-pour-la-serialisation-avec-borsh",children:[]},{level:2,title:"Comment s\xE9rialiser les donn\xE9es d'instruction c\xF4t\xE9 client",slug:"comment-serialiser-les-donnees-d-instruction-cote-client",children:[]},{level:2,title:"Comment d\xE9s\xE9rialiser les donn\xE9es d'instruction dans le programme",slug:"comment-deserialiser-les-donnees-d-instruction-dans-le-programme",children:[]},{level:2,title:"Comment s\xE9rialiser des donn\xE9es du compte dans le programme",slug:"comment-serialiser-des-donnees-du-compte-dans-le-programme",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"S\xE9rialisation/D\xE9s\xE9rialisation",slug:"serialisation-deserialisation",children:[]},{level:3,title:"Utilisation",slug:"utilisation",children:[]}]},{level:2,title:"Comment d\xE9s\xE9rialisation des donn\xE9es du compte c\xF4t\xE9 client",slug:"comment-deserialisation-des-donnees-du-compte-cote-client",children:[]},{level:2,title:"Mappages courants de Solana TS/JS",slug:"mappages-courants-de-solana-ts-js",children:[]},{level:2,title:"Constructions Avanc\xE9es",slug:"constructions-avancees",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/serialization.html",pathLocale:"/fr/",extraFields:[]},{title:"Transactions Versionn\xE9es",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Transaction H\xE9rit\xE9e",slug:"transaction-heritee",children:[]},{level:2,title:"Message H\xE9rit\xE9",slug:"message-herite",children:[{level:3,title:"En-t\xEAte",slug:"en-tete",children:[]},{level:3,title:"Tableau compact d'adresses de comptes",slug:"tableau-compact-d-adresses-de-comptes",children:[]},{level:3,title:"Tableau compact d'instructions",slug:"tableau-compact-d-instructions",children:[]}]},{level:2,title:"Probl\xE8mes li\xE9s aux Transactions H\xE9rit\xE9es",slug:"problemes-lies-aux-transactions-heritees",children:[]},{level:2,title:"Tables de Consultation d'Adresses (LUT)",slug:"tables-de-consultation-d-adresses-lut",children:[]},{level:2,title:"Transactions Versionn\xE9es : TransactionV0",slug:"transactions-versionnees-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Tableau compact de consultations de tables d'adresses",slug:"tableau-compact-de-consultations-de-tables-d-adresses",children:[]},{level:3,title:"Tableau compact d'instructions",slug:"tableau-compact-d-instructions-1",children:[]}]},{level:2,title:"Modifications du RPC",slug:"modifications-du-rpc",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]},{level:2,title:"R\xE9f\xE9rences",slug:"references",children:[]}],path:"/fr/guides/versioned-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"Pour Commencer",headers:[{level:2,title:"La composabilit\xE9 est Essentielle",slug:"la-composabilite-est-essentielle",children:[]},{level:2,title:"Contribution",slug:"contribution",children:[]}],path:"/fr/integrations/",pathLocale:"/fr/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"R\xE9cup\xE9ration de la liste des jetons depuis Jupiter",slug:"recuperation-de-la-liste-des-jetons-depuis-jupiter",children:[]},{level:3,title:"Chargement de l'instance Jupiter",slug:"chargement-de-l-instance-jupiter",children:[]},{level:3,title:"Obtenir le Chemin d'Acc\xE8s (RouteMap)",slug:"obtenir-le-chemin-d-acces-routemap",children:[]},{level:3,title:"Obtention des chemins pour un jeton d'Entr\xE9e et de Sortie donn\xE9",slug:"obtention-des-chemins-pour-un-jeton-d-entree-et-de-sortie-donne",children:[]},{level:3,title:"Ex\xE9cuter l'Echange de Jetons",slug:"executer-l-echange-de-jetons",children:[]},{level:2,title:"Comment utiliser Jupiter dans une application React",slug:"comment-utiliser-jupiter-dans-une-application-react",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Ajout du Provider",slug:"ajout-du-provider",children:[]},{level:3,title:"R\xE9cup\xE9ration de la Liste de Jetons",slug:"recuperation-de-la-liste-de-jetons",children:[]},{level:3,title:"Cr\xE9ation de l'\xC9tat",slug:"creation-de-l-etat",children:[]},{level:3,title:"Utilisation du hook react useJupiter",slug:"utilisation-du-hook-react-usejupiter",children:[]},{level:3,title:"Ex\xE9cution de l'Echange",slug:"execution-de-l-echange",children:[]}]},{level:2,title:"Comment utiliser l'API de Jupiter",slug:"comment-utiliser-l-api-de-jupiter",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Obtention du Chemin d'Acc\xE8s",slug:"obtention-du-chemin-d-acces",children:[]},{level:3,title:"Obtention de la Transaction S\xE9rialis\xE9e pour effectuer le Swap",slug:"obtention-de-la-transaction-serialisee-pour-effectuer-le-swap",children:[]},{level:3,title:"Ex\xE9cution de l'Op\xE9ration d'Echange",slug:"execution-de-l-operation-d-echange",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/jupiter.html",pathLocale:"/fr/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"Comment r\xE9cup\xE9rer un Groupe Mango",slug:"comment-recuperer-un-groupe-mango",children:[]},{level:2,title:"Comment cr\xE9er un Compte Mango",slug:"comment-creer-un-compte-mango",children:[]},{level:2,title:"Comment d\xE9poser des USDC sur un Compte Mango",slug:"comment-deposer-des-usdc-sur-un-compte-mango",children:[]},{level:2,title:"Comment placer un ordre spot",slug:"comment-placer-un-ordre-spot",children:[]},{level:2,title:"Comment charger les offres",slug:"comment-charger-les-offres",children:[]},{level:2,title:"Comment charger les demandes",slug:"comment-charger-les-demandes",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/mango.html",pathLocale:"/fr/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Sc\xE9nario d'utilisation de base",slug:"scenario-d-utilisation-de-base",children:[]},{level:2,title:"SDKs",slug:"sdks",children:[]},{level:2,title:"Anatomie d'une requ\xEAte d'al\xE9atoire",slug:"anatomie-d-une-requete-d-aleatoire",children:[]},{level:2,title:"Anatomie d'une configuration VRF",slug:"anatomie-d-une-configuration-vrf",children:[]},{level:2,title:"Exemple Rust-natif",slug:"exemple-rust-natif",children:[{level:3,title:"1. Configurer la connexion",slug:"_1-configurer-la-connexion",children:[]},{level:3,title:"2. Cr\xE9er une requ\xEAte",slug:"_2-creer-une-requete",children:[]},{level:3,title:"3. Attendre le traitement",slug:"_3-attendre-le-traitement",children:[]}]},{level:2,title:"Exemple CPI",slug:"exemple-cpi",children:[{level:3,title:"1. Cr\xE9er le contrat",slug:"_1-creer-le-contrat",children:[]},{level:3,title:"2. Collecter les comptes n\xE9cessaires",slug:"_2-collecter-les-comptes-necessaires",children:[]},{level:3,title:"3. Effectuer un appel CPI",slug:"_3-effectuer-un-appel-cpi",children:[]},{level:3,title:"4. Utiliser le caract\xE8re al\xE9atoire obtenu",slug:"_4-utiliser-le-caractere-aleatoire-obtenu",children:[]}]}],path:"/fr/integrations/orao-vrf.html",pathLocale:"/fr/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"Comment utiliser Pyth dans le Client",slug:"comment-utiliser-pyth-dans-le-client",children:[]},{level:2,title:"Comment utiliser Pyth dans Anchor",slug:"comment-utiliser-pyth-dans-anchor",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/pyth.html",pathLocale:"/fr/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"Comment utiliser @solana/web3.js dans une application React Native",slug:"comment-utiliser-solana-web3-js-dans-une-application-react-native",children:[{level:3,title:"Cr\xE9er une nouvelle application",slug:"creer-une-nouvelle-application",children:[]},{level:3,title:"Installer les d\xE9pendances",slug:"installer-les-dependances",children:[]},{level:3,title:"Corriger Babel pour utiliser les transformations Hermes",slug:"corriger-babel-pour-utiliser-les-transformations-hermes",children:[]},{level:3,title:"Mettre \xE0 jour index.js",slug:"mettre-a-jour-index-js",children:[]},{level:3,title:"Mettre \xE0 jour App.tsx",slug:"mettre-a-jour-app-tsx",children:[]},{level:3,title:"[iOS uniquement] Installer cocoapods",slug:"ios-uniquement-installer-cocoapods",children:[]},{level:3,title:"D\xE9marrer l'application",slug:"demarrer-l-application",children:[]}]},{level:2,title:"Solana DApp Scaffold for React Native",slug:"solana-dapp-scaffold-for-react-native",children:[]},{level:2,title:"Probl\xE8mes courants lors de l'utilisation de biblioth\xE8ques crypto dans une application React Native",slug:"problemes-courants-lors-de-l-utilisation-de-bibliotheques-crypto-dans-une-application-react-native",children:[{level:3,title:"Erreur: Watchman crawl failed",slug:"erreur-watchman-crawl-failed",children:[]},{level:3,title:"Erreur: URL.protocol is not implemented",slug:"erreur-url-protocol-is-not-implemented",children:[]},{level:3,title:"Erreur: crypto.getRandomValues() not supported",slug:"erreur-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/fr/integrations/react-native.html",pathLocale:"/fr/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"Comment obtenir un march\xE9 de Serum",slug:"comment-obtenir-un-marche-de-serum",children:[]},{level:2,title:"Comment obtenir les carnets d'ordres de Serum",slug:"comment-obtenir-les-carnets-d-ordres-de-serum",children:[]},{level:2,title:"Comment obtenir les ordres ouverts actuels",slug:"comment-obtenir-les-ordres-ouverts-actuels",children:[]}],path:"/fr/integrations/serum.html",pathLocale:"/fr/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"Comment cr\xE9er un jeton enti\xE8rement g\xE9r\xE9",slug:"comment-creer-un-jeton-entierement-gere",children:[]},{level:2,title:"Comment acheter et vendre un jeton",slug:"comment-acheter-et-vendre-un-jeton",children:[]},{level:2,title:"Comment initier la liquidit\xE9",slug:"comment-initier-la-liquidite",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/strata.html",pathLocale:"/fr/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Flux de Donn\xE9es",slug:"flux-de-donnees",children:[{level:3,title:"Lire les donn\xE9es d'un flux d'agr\xE9gation",slug:"lire-les-donnees-d-un-flux-d-agregation",children:[]},{level:3,title:"Cr\xE9er un nouveau flux d'agr\xE9gation",slug:"creer-un-nouveau-flux-d-agregation",children:[]},{level:3,title:"Lire les donn\xE9es d'un flux d'agr\xE9gation dans un programme",slug:"lire-les-donnees-d-un-flux-d-agregation-dans-un-programme",children:[]},{level:3,title:"Comment Cr\xE9er un Flux \xE0 partir du Publisher",slug:"comment-creer-un-flux-a-partir-du-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Cr\xE9er un oracle",slug:"creer-un-oracle",children:[]},{level:3,title:"Ex\xE9cuter un oracle localement",slug:"executer-un-oracle-localement",children:[]},{level:3,title:"Configuration de l'Oracle",slug:"configuration-de-l-oracle",children:[]}]},{level:2,title:"Fonction Al\xE9atoire V\xE9rifiable(VRF)",slug:"fonction-aleatoire-verifiable-vrf",children:[{level:3,title:"Lire un compte VRF",slug:"lire-un-compte-vrf",children:[]},{level:3,title:"Cr\xE9er un compte VRF",slug:"creer-un-compte-vrf",children:[]},{level:3,title:"Demande de Hasard \xE0 partir d'un compte VRF",slug:"demande-de-hasard-a-partir-d-un-compte-vrf",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[{level:3,title:"API et Biblioth\xE8ques",slug:"api-et-bibliotheques",children:[]},{level:3,title:"Exemples",slug:"exemples",children:[]},{level:3,title:"Plus d'Informations",slug:"plus-d-informations",children:[]}]}],path:"/fr/integrations/switchboard.html",pathLocale:"/fr/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"Qu'est-ce qu'un portefeuille ?",slug:"qu-est-ce-qu-un-portefeuille",children:[]},{level:2,title:"Connexions Sociales sur Solana",slug:"connexions-sociales-sur-solana",children:[]},{level:2,title:"Guide d'Int\xE9gration",slug:"guide-d-integration",children:[{level:3,title:"Installation des D\xE9pendances",slug:"installation-des-dependances",children:[]},{level:3,title:"Importer le SDK et l'initialiser",slug:"importer-le-sdk-et-l-initialiser",children:[]},{level:3,title:"D\xE9clencher la connexion de l'utilisateur",slug:"declencher-la-connexion-de-l-utilisateur",children:[]},{level:3,title:"Utilisation de l'instance torus pour r\xE9cup\xE9rer les d\xE9tails du compte utilisateur",slug:"utilisation-de-l-instance-torus-pour-recuperer-les-details-du-compte-utilisateur",children:[]},{level:3,title:"Utilisation de l'API Solana de Torus pour signer un message.",slug:"utilisation-de-l-api-solana-de-torus-pour-signer-un-message",children:[]},{level:3,title:"Utilisation de l'API Solana de Torus pour envoyer une transaction.",slug:"utilisation-de-l-api-solana-de-torus-pour-envoyer-une-transaction",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"D\xE9connexion",slug:"deconnexion",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/integrations/web3auth.html",pathLocale:"/fr/",extraFields:[]},{title:"Comptes",headers:[{level:2,title:"Comment cr\xE9er un compte de syst\xE8me",slug:"comment-creer-un-compte-de-systeme",children:[]},{level:2,title:"Comment calculer les frais de compte",slug:"comment-calculer-les-frais-de-compte",children:[]},{level:2,title:"Comment cr\xE9er des comptes avec des seeds",slug:"comment-creer-des-comptes-avec-des-seeds",children:[{level:3,title:"G\xE9n\xE9rer",slug:"generer",children:[]},{level:3,title:"Cr\xE9er",slug:"creer",children:[]},{level:3,title:"Transf\xE9rer",slug:"transferer",children:[]}]},{level:2,title:"Comment cr\xE9er des PDAs",slug:"comment-creer-des-pdas",children:[{level:3,title:"G\xE9n\xE9rer un PDA",slug:"generer-un-pda",children:[]},{level:3,title:"Cr\xE9er un PDA",slug:"creer-un-pda",children:[]}]},{level:2,title:"Comment signer avec un PDA",slug:"comment-signer-avec-un-pda",children:[{level:3,title:"Programme",slug:"programme-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"Comment obtenir les comptes du programme",slug:"comment-obtenir-les-comptes-du-programme",children:[]},{level:2,title:"Comment fermer des comptes",slug:"comment-fermer-des-comptes",children:[]},{level:2,title:"Comment obtenir le solde d'un compte",slug:"comment-obtenir-le-solde-d-un-compte",children:[]}],path:"/fr/references/accounts.html",pathLocale:"/fr/",extraFields:[]},{title:"Envoyer des Transactions",headers:[{level:2,title:"Comment envoyer des SOL",slug:"comment-envoyer-des-sol",children:[]},{level:2,title:"Comment envoyer des jetons SPL",slug:"comment-envoyer-des-jetons-spl",children:[]},{level:2,title:"Comment calculer les co\xFBts de transaction",slug:"comment-calculer-les-couts-de-transaction",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"Comment ajouter un m\xE9mo \xE0 une transaction",slug:"comment-ajouter-un-memo-a-une-transaction",children:[]},{level:2,title:"Comment changer le budget de calcul, les frais, & la priorisation d'une transaction",slug:"comment-changer-le-budget-de-calcul-les-frais-la-priorisation-d-une-transaction",children:[]}],path:"/fr/references/basic-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"Paires de Cl\xE9s et Portefeuilles",headers:[{level:2,title:"Comment g\xE9n\xE9rer une nouvelle Paire de Cl\xE9s",slug:"comment-generer-une-nouvelle-paire-de-cles",children:[]},{level:2,title:"Comment restaurer une Paire de cl\xE9s \xE0 partir d'une cl\xE9 priv\xE9e",slug:"comment-restaurer-une-paire-de-cles-a-partir-d-une-cle-privee",children:[]},{level:2,title:"Comment v\xE9rifier une Paire de Cl\xE9s",slug:"comment-verifier-une-paire-de-cles",children:[]},{level:2,title:"Comment v\xE9rifier si une cl\xE9 publique a une cl\xE9 priv\xE9e associ\xE9e",slug:"comment-verifier-si-une-cle-publique-a-une-cle-privee-associee",children:[]},{level:2,title:"Comment g\xE9n\xE9rer une phrase mn\xE9monique",slug:"comment-generer-une-phrase-mnemonique",children:[]},{level:2,title:"Comment restaurer une paire de cl\xE9s \xE0 partir d'une phrase mn\xE9monique",slug:"comment-restaurer-une-paire-de-cles-a-partir-d-une-phrase-mnemonique",children:[]},{level:2,title:"Comment g\xE9n\xE9rer une adresse personnalis\xE9e",slug:"comment-generer-une-adresse-personnalisee",children:[]},{level:2,title:"Comment signer et v\xE9rifier des messages avec les portefeuilles",slug:"comment-signer-et-verifier-des-messages-avec-les-portefeuilles",children:[]},{level:2,title:"Comment se connecter \xE0 un portefeuille",slug:"comment-se-connecter-a-un-portefeuille",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/fr/references/keypairs-and-wallets.html",pathLocale:"/fr/",extraFields:[]},{title:"D\xE9veloppement Local",headers:[{level:2,title:"D\xE9marrer un Validateur Local",slug:"demarrer-un-validateur-local",children:[]},{level:2,title:"Connexion aux Environnements",slug:"connexion-aux-environnements",children:[]},{level:2,title:"Inscription \xE0 des Ev\xE9nements",slug:"inscription-a-des-evenements",children:[]},{level:2,title:"Obtention de SOL pour les Tests",slug:"obtention-de-sol-pour-les-tests",children:[]},{level:2,title:"Utilisation des Comptes et des Programmes du Mainnet",slug:"utilisation-des-comptes-et-des-programmes-du-mainnet",children:[{level:3,title:"Comment charger des comptes depuis le mainnet",slug:"comment-charger-des-comptes-depuis-le-mainnet",children:[]},{level:3,title:"Comment charger des programmes depuis le mainnet",slug:"comment-charger-des-programmes-depuis-le-mainnet",children:[]}]}],path:"/fr/references/local-development.html",pathLocale:"/fr/",extraFields:[]},{title:"Service de Noms",headers:[{level:2,title:"Registre de noms",slug:"registre-de-noms",children:[]},{level:2,title:"R\xE9solution des domaines SOL",slug:"resolution-des-domaines-sol",children:[]},{level:2,title:"Recherche invers\xE9e",slug:"recherche-inversee",children:[]},{level:2,title:"Recherche des sous-domaines",slug:"recherche-des-sous-domaines",children:[]},{level:2,title:"Trouver tous les noms de domaine appartenant \xE0 une cl\xE9 publique",slug:"trouver-tous-les-noms-de-domaine-appartenant-a-une-cle-publique",children:[]},{level:2,title:"R\xE9soudre un pseudo Twitter",slug:"resoudre-un-pseudo-twitter",children:[]},{level:2,title:"Recherche invers\xE9e d'un pseudo Twitter",slug:"recherche-inversee-d-un-pseudo-twitter",children:[]}],path:"/fr/references/name-service.html",pathLocale:"/fr/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"Comment cr\xE9er un NFT",slug:"comment-creer-un-nft",children:[{level:3,title:"T\xE9l\xE9charger sur Arweave",slug:"telecharger-sur-arweave",children:[]},{level:3,title:"Cr\xE9er le NFT",slug:"creer-le-nft",children:[]}]},{level:2,title:"Comment obtenir les m\xE9tadonn\xE9es des NFTs",slug:"comment-obtenir-les-metadonnees-des-nfts",children:[]},{level:2,title:"Comment obtenir le propri\xE9taire d'un NFT",slug:"comment-obtenir-le-proprietaire-d-un-nft",children:[]},{level:2,title:"Comment obtenir les adresses de cr\xE9ation des NFTs",slug:"comment-obtenir-les-adresses-de-creation-des-nfts",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"Comment r\xE9cup\xE9rer tous les NFTs d'un portefeuille ?",slug:"comment-recuperer-tous-les-nfts-d-un-portefeuille",children:[]}],path:"/fr/references/nfts.html",pathLocale:"/fr/",extraFields:[]},{title:"Envoi de transactions hors connexion",headers:[{level:2,title:"Signer la Transaction",slug:"signer-la-transaction",children:[]},{level:2,title:"Transaction avec Signature Partielle",slug:"transaction-avec-signature-partielle",children:[]},{level:2,title:"Nonce Durable",slug:"nonce-durable",children:[{level:3,title:"Cr\xE9er un Compte de Nonce",slug:"creer-un-compte-de-nonce",children:[]},{level:3,title:"Obtenir le Compte de Nonce",slug:"obtenir-le-compte-de-nonce",children:[]},{level:3,title:"Utiliser le Compte de Nonce",slug:"utiliser-le-compte-de-nonce",children:[]}]}],path:"/fr/references/offline-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"\xC9crire des Programmes",headers:[{level:2,title:"Comment transf\xE9rer SOL dans un programme",slug:"comment-transferer-sol-dans-un-programme",children:[]},{level:2,title:"Comment obtenir une r\xE9f\xE9rence \xE0 l'horloge dans un programme",slug:"comment-obtenir-une-reference-a-l-horloge-dans-un-programme",children:[{level:3,title:"Passer l'Horloge comme un compte dans une instruction",slug:"passer-l-horloge-comme-un-compte-dans-une-instruction",children:[]},{level:3,title:"Acc\xE9der \xE0 l'horloge directement dans une instruction",slug:"acceder-a-l-horloge-directement-dans-une-instruction",children:[]}]},{level:2,title:"Comment modifier la taille d'un compte",slug:"comment-modifier-la-taille-d-un-compte",children:[]},{level:2,title:"Comment faire l'Invocation de Programme Crois\xE9",slug:"comment-faire-l-invocation-de-programme-croise",children:[]},{level:2,title:"Comment cr\xE9er un PDA",slug:"comment-creer-un-pda",children:[]},{level:2,title:"Comment lire des comptes",slug:"comment-lire-des-comptes",children:[]},{level:2,title:"Comment v\xE9rifier des comptes",slug:"comment-verifier-des-comptes",children:[]},{level:2,title:"Comment lire plusieurs instructions \xE0 partir d'une transaction",slug:"comment-lire-plusieurs-instructions-a-partir-d-une-transaction",children:[]}],path:"/fr/references/programs.html",pathLocale:"/fr/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Obtenir les Validateurs Actuels",slug:"obtenir-les-validateurs-actuels",children:[]},{level:2,title:"Cr\xE9er un Compte de Stake",slug:"creer-un-compte-de-stake",children:[]},{level:2,title:"D\xE9l\xE9guer un Stake",slug:"deleguer-un-stake",children:[]},{level:2,title:"Obtenir les D\xE9l\xE9gu\xE9s par Validateurs",slug:"obtenir-les-delegues-par-validateurs",children:[]},{level:2,title:"D\xE9sactiver le Stake",slug:"desactiver-le-stake",children:[]},{level:2,title:"Retirer le Stake",slug:"retirer-le-stake",children:[]}],path:"/fr/references/staking.html",pathLocale:"/fr/",extraFields:[]},{title:"Interaction avec les Jetons",headers:[{level:2,title:"De quoi ai-je besoin pour commencer avec SPL-Tokens ?",slug:"de-quoi-ai-je-besoin-pour-commencer-avec-spl-tokens",children:[]},{level:2,title:"Comment cr\xE9er un nouveau Jeton",slug:"comment-creer-un-nouveau-jeton",children:[]},{level:2,title:'Comment obtenir un "mint" de jeton',slug:"comment-obtenir-un-mint-de-jeton",children:[]},{level:2,title:"Comment cr\xE9er un compte de jeton",slug:"comment-creer-un-compte-de-jeton",children:[]},{level:2,title:"Comment obtenir un compte de jetons",slug:"comment-obtenir-un-compte-de-jetons",children:[]},{level:2,title:"Comment obtenir le solde d'un compte de jetons",slug:"comment-obtenir-le-solde-d-un-compte-de-jetons",children:[]},{level:2,title:"Comment cr\xE9er (mint) de nouveaux jetons",slug:"comment-creer-mint-de-nouveaux-jetons",children:[]},{level:2,title:"Comment transf\xE9rer des jetons",slug:"comment-transferer-des-jetons",children:[]},{level:2,title:"Comment br\xFBler des jetons",slug:"comment-bruler-des-jetons",children:[]},{level:2,title:"Comment fermer des comptes de jetons",slug:"comment-fermer-des-comptes-de-jetons",children:[]},{level:2,title:"Comment d\xE9finir l'autorit\xE9 sur les comptes de jetons ou de mints ?",slug:"comment-definir-l-autorite-sur-les-comptes-de-jetons-ou-de-mints",children:[]},{level:2,title:"Comment approuver une d\xE9l\xE9gation de jetons",slug:"comment-approuver-une-delegation-de-jetons",children:[]},{level:2,title:"Comment r\xE9voquer une d\xE9l\xE9gation de jetons",slug:"comment-revoquer-une-delegation-de-jetons",children:[]},{level:2,title:"Comment g\xE9rer les wrapped SOL",slug:"comment-gerer-les-wrapped-sol",children:[{level:3,title:"Cr\xE9er un Compte de Jetons",slug:"creer-un-compte-de-jetons",children:[]},{level:3,title:"Ajouter un solde",slug:"ajouter-un-solde",children:[]}]},{level:2,title:"Comment obtenir tous les comptes de jetons par propri\xE9taire",slug:"comment-obtenir-tous-les-comptes-de-jetons-par-proprietaire",children:[]}],path:"/fr/references/token.html",pathLocale:"/fr/",extraFields:[]},{title:"Akun",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[]},{level:2,title:"Lebih Dalam",slug:"lebih-dalam",children:[{level:3,title:"Model Akun",slug:"model-akun",children:[]},{level:3,title:"Menyewa",slug:"menyewa",children:[]}]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/id/core-concepts/accounts.html",pathLocale:"/id/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[{level:3,title:"Membuat PDA",slug:"membuat-pda",children:[]},{level:3,title:"Berinteraksi dengan PDAs",slug:"berinteraksi-dengan-pdas",children:[]}]},{level:2,title:"Sumber lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/core-concepts/pdas.html",pathLocale:"/id/",extraFields:[]},{title:"Program",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[]},{level:2,title:"Lebih Dalam",slug:"lebih-dalam",children:[{level:3,title:"Native Program & Solana Program Library (SPL)",slug:"native-program-solana-program-library-spl",children:[]},{level:3,title:"Menulis Program",slug:"menulis-program",children:[]},{level:3,title:"Deploy Program",slug:"deploy-program",children:[]}]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/core-concepts/programs.html",pathLocale:"/id/",extraFields:[]},{title:"Transaksi",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[]},{level:2,title:"Lebih Dalam",slug:"lebih-dalam",children:[{level:3,title:"Biaya",slug:"biaya",children:[]}]},{level:2,title:"Sumber lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/core-concepts/transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Instalasi",headers:[{level:2,title:"Unduh Web3.js",slug:"unduh-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Membangun dari Source",slug:"membangun-dari-source",children:[]}]}],path:"/id/getting-started/installation.html",pathLocale:"/id/",extraFields:[]},{title:"Peta Akun",headers:[{level:2,title:"Menghasilkan PDA",slug:"menghasilkan-pda",children:[]},{level:2,title:"Akun Peta Tunggal",slug:"akun-peta-tunggal",children:[]}],path:"/id/guides/account-maps.html",pathLocale:"/id/",extraFields:[]},{title:"Migrasi Akun Data Program",headers:[{level:2,title:"Bagaimana cara melakukan migrasi akun data sebuah program?",slug:"bagaimana-cara-melakukan-migrasi-akun-data-sebuah-program",children:[]},{level:2,title:"Skenario",slug:"skenario",children:[]},{level:2,title:"Melakukan upgrade Akun",slug:"melakukan-upgrade-akun",children:[{level:3,title:"1. Tambahkan logika konversi akun",slug:"_1-tambahkan-logika-konversi-akun",children:[]}]},{level:2,title:"Resource",slug:"resource",children:[]}],path:"/id/guides/data-migration.html",pathLocale:"/id/",extraFields:[]},{title:"Debug Program Solana",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Uji Runtime dan Debugging di editor",slug:"uji-runtime-dan-debugging-di-editor",children:[]},{level:2,title:"Uji Node Validator Lokal di editor",slug:"uji-node-validator-lokal-di-editor",children:[]},{level:2,title:"Uji Node Validator Lokal dari Aplikasi Klien",slug:"uji-node-validator-lokal-dari-aplikasi-klien",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/id/guides/debugging-solana-programs.html",pathLocale:"/id/",extraFields:[]},{title:"Pengujian Paritas Fitur",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Skenario",slug:"skenario",children:[]},{level:2,title:"Status Fitur",slug:"status-fitur",children:[]},{level:2,title:"Uji Paritas",slug:"uji-paritas",children:[]},{level:2,title:"Demonstrasi Sederhana",slug:"demonstrasi-sederhana",children:[{level:3,title:"Semua fitur diaktifkan",slug:"semua-fitur-diaktifkan",children:[]},{level:3,title:"Fitur selektif dinonaktifkan",slug:"fitur-selektif-dinonaktifkan",children:[]}]},{level:2,title:"Uji Paritas Penuh",slug:"uji-paritas-penuh",children:[]},{level:2,title:"Uji Paritas Penuh Secara Terprogram",slug:"uji-paritas-penuh-secara-terprogram",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/id/guides/feature-parity-testing.html",pathLocale:"/id/",extraFields:[]},{title:"Mendapatkan Akun Program",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Memahami lebih dalam",slug:"memahami-lebih-dalam",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Resource lainnya",slug:"resource-lainnya",children:[]}],path:"/id/guides/get-program-accounts.html",pathLocale:"/id/",extraFields:[]},{title:"Mengulang Kembali transaksi",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Perjalanan dari sebuah Transaksi",slug:"perjalanan-dari-sebuah-transaksi",children:[{level:3,title:"Bagaimana Klien Mengirimkan Transaksi",slug:"bagaimana-klien-mengirimkan-transaksi",children:[]},{level:3,title:"Bagaimana Node RPC melakukan broadcast Transaksi",slug:"bagaimana-node-rpc-melakukan-broadcast-transaksi",children:[]}]},{level:2,title:"Bagaimana Transaksi dapat dibatalkan",slug:"bagaimana-transaksi-dapat-dibatalkan",children:[{level:3,title:"Sebelum transaksi diproses",slug:"sebelum-transaksi-diproses",children:[]},{level:3,title:"Setelah transaksi diproses dan sebelum diselesaikan",slug:"setelah-transaksi-diproses-dan-sebelum-diselesaikan",children:[]}]},{level:2,title:"Menangani Transaksi yang dibatalkan",slug:"menangani-transaksi-yang-dibatalkan",children:[{level:3,title:"Menelusuri lebih dalam mengenai sendTransaction",slug:"menelusuri-lebih-dalam-mengenai-sendtransaction",children:[]}]},{level:2,title:"Menyesuaikan Logika Rebroadcast",slug:"menyesuaikan-logika-rebroadcast",children:[{level:3,title:"Dampak apabila Melewatkan Preflight",slug:"dampak-apabila-melewatkan-preflight",children:[]},{level:3,title:"Kapan Menandatangani Ulang (Re-Sign) Transaksi",slug:"kapan-menandatangani-ulang-re-sign-transaksi",children:[]}]},{level:2,title:"Ucapan Terima Kasih",slug:"ucapan-terima-kasih",children:[]}],path:"/id/guides/retrying-transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Serialisasi Data",headers:[{level:2,title:"Persiapan untuk Borsh Serialization",slug:"persiapan-untuk-borsh-serialization",children:[]},{level:2,title:"Cara serialize data instruksi pada klien",slug:"cara-serialize-data-instruksi-pada-klien",children:[]},{level:2,title:"Cara deserialisasi data instruksi pada program",slug:"cara-deserialisasi-data-instruksi-pada-program",children:[]},{level:2,title:"Cara serialisasi data akun pada program",slug:"cara-serialisasi-data-akun-pada-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialisasi/Deserialisasi",slug:"serialisasi-deserialisasi",children:[]},{level:3,title:"Penggunaan",slug:"penggunaan",children:[]}]},{level:2,title:"Cara deserialisasi data akun pada klien",slug:"cara-deserialisasi-data-akun-pada-klien",children:[]},{level:2,title:"Pemetaan Solana TS/JS Umum",slug:"pemetaan-solana-ts-js-umum",children:[]},{level:2,title:"Metode Lanjutan",slug:"metode-lanjutan",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resource",slug:"resource",children:[]}],path:"/id/guides/serialization.html",pathLocale:"/id/",extraFields:[]},{title:"Memulai",headers:[{level:2,title:"Composability Adalah Kunci",slug:"composability-adalah-kunci",children:[]},{level:2,title:"Kontribusi",slug:"kontribusi",children:[]}],path:"/id/integrations/",pathLocale:"/id/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Instalasi",slug:"instalasi",children:[]},{level:3,title:"Mengambil List Token dari Jupiter",slug:"mengambil-list-token-dari-jupiter",children:[]},{level:3,title:"Loading instance dari Jupiter",slug:"loading-instance-dari-jupiter",children:[]},{level:3,title:"Mendapatkan RouteMap",slug:"mendapatkan-routemap",children:[]},{level:3,title:"Mendapatkan route dari Input dengan Output token",slug:"mendapatkan-route-dari-input-dengan-output-token",children:[]},{level:3,title:"Ekskusi Token Swap",slug:"ekskusi-token-swap",children:[]},{level:2,title:"How to use Jupiter in a React Application",slug:"how-to-use-jupiter-in-a-react-application",children:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Menambahkan Provider",slug:"menambahkan-provider",children:[]},{level:3,title:"Mendapatkan List dari Token",slug:"mendapatkan-list-dari-token",children:[]},{level:3,title:"Seting State",slug:"seting-state",children:[]},{level:3,title:"Menggunakan useJupiter react hook",slug:"menggunakan-usejupiter-react-hook",children:[]},{level:3,title:"Perform Swap",slug:"perform-swap",children:[]}]},{level:2,title:"Cara Menggunakan Jupiter API",slug:"cara-menggunakan-jupiter-api",children:[{level:3,title:"Instalasi",slug:"instalasi-1",children:[]},{level:3,title:"Mendapatkan Route Map",slug:"mendapatkan-route-map",children:[]},{level:3,title:"Mendapatkan Serialisasi Transaksi untuk perform Swap",slug:"mendapatkan-serialisasi-transaksi-untuk-perform-swap",children:[]},{level:3,title:"Eksekusi Transaksi Swap",slug:"eksekusi-transaksi-swap",children:[]}]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/jupiter.html",pathLocale:"/id/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"Cara Mendapatkan Mango Group",slug:"cara-mendapatkan-mango-group",children:[]},{level:2,title:"Membuat Akun Mango",slug:"membuat-akun-mango",children:[]},{level:2,title:"Cara Deposit USDC ke Akun Manggo",slug:"cara-deposit-usdc-ke-akun-manggo",children:[]},{level:2,title:"Cara Menempatkan Spot Order",slug:"cara-menempatkan-spot-order",children:[]},{level:2,title:"Cara Load Bids",slug:"cara-load-bids",children:[]},{level:2,title:"Cara Load Asks",slug:"cara-load-asks",children:[]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/mango.html",pathLocale:"/id/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"Cara Menggunakan Pyth di Client",slug:"cara-menggunakan-pyth-di-client",children:[]},{level:2,title:"Cara Memakai Pyth di Anchor",slug:"cara-memakai-pyth-di-anchor",children:[]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/pyth.html",pathLocale:"/id/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"Cara Pakai @solana/web3.js di React Native app",slug:"cara-pakai-solana-web3-js-di-react-native-app",children:[{level:3,title:"Buat aplikasi baru",slug:"buat-aplikasi-baru",children:[]},{level:3,title:"Install dependensi",slug:"install-dependensi",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update metro.config.js",slug:"update-metro-config-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"Install cocoapods",slug:"install-cocoapods",children:[]},{level:3,title:"Start aplikasi",slug:"start-aplikasi",children:[]}]},{level:2,title:"Solana DApp Scaffold untuk React Native",slug:"solana-dapp-scaffold-untuk-react-native",children:[]},{level:2,title:"Isu Umum ketika menggunakan @solana/web3.js di aplikasi React Native",slug:"isu-umum-ketika-menggunakan-solana-web3-js-di-aplikasi-react-native",children:[{level:3,title:"Error: While trying to resolve module superstruct from file",slug:"error-while-trying-to-resolve-module-superstruct-from-file",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/id/integrations/react-native.html",pathLocale:"/id/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"Cara Mendapatkan Serum Market",slug:"cara-mendapatkan-serum-market",children:[]},{level:2,title:"Mendapatkan Serum Order Books",slug:"mendapatkan-serum-order-books",children:[]},{level:2,title:"Cara Mendapatkan Open Orders",slug:"cara-mendapatkan-open-orders",children:[]}],path:"/id/integrations/serum.html",pathLocale:"/id/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"Cara Membuat Token Yang Dikendalikan Penuh",slug:"cara-membuat-token-yang-dikendalikan-penuh",children:[]},{level:2,title:"Cara beli dan jual token",slug:"cara-beli-dan-jual-token",children:[]},{level:2,title:"Cara bootstrap liquidity",slug:"cara-bootstrap-liquidity",children:[]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/strata.html",pathLocale:"/id/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"Cara Baca Data Dari Aggregator Feeds",slug:"cara-baca-data-dari-aggregator-feeds",children:[]},{level:3,title:"Membuat Aggregator Feed Baru",slug:"membuat-aggregator-feed-baru",children:[]},{level:3,title:"Baca data dari aggregator feeds dalam sebuah program",slug:"baca-data-dari-aggregator-feeds-dalam-sebuah-program",children:[]},{level:3,title:"Cara Membuat a Feeds Dari Publisher",slug:"cara-membuat-a-feeds-dari-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Create an oracle",slug:"create-an-oracle",children:[]},{level:3,title:"Menjalan Oracle di lokal",slug:"menjalan-oracle-di-lokal",children:[]},{level:3,title:"Konfigurasi Oracle",slug:"konfigurasi-oracle",children:[]}]},{level:2,title:"Fungsi Random yang Terverifikasi - Verifiable Random Function(VRF)",slug:"fungsi-random-yang-terverifikasi-verifiable-random-function-vrf",children:[{level:3,title:"Membaca akun VRF",slug:"membaca-akun-vrf",children:[]},{level:3,title:"Membuat Sebuah Akun VRF",slug:"membuat-sebuah-akun-vrf",children:[]},{level:3,title:"Request Randomness dari akun vrf",slug:"request-randomness-dari-akun-vrf",children:[]}]},{level:2,title:"Sumber",slug:"sumber",children:[{level:3,title:"API dan Librari",slug:"api-dan-librari",children:[]},{level:3,title:"Contoh",slug:"contoh",children:[]},{level:3,title:"Informasi Lebih Lanjut",slug:"informasi-lebih-lanjut",children:[]}]}],path:"/id/integrations/switchboard.html",pathLocale:"/id/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"Apakah itu wallet?",slug:"apakah-itu-wallet",children:[]},{level:2,title:"Social Login di Solana",slug:"social-login-di-solana",children:[]},{level:2,title:"Panduan Integrasi",slug:"panduan-integrasi",children:[{level:3,title:"Instal Dependensi",slug:"instal-dependensi",children:[]},{level:3,title:"Import SDK dan initialize",slug:"import-sdk-dan-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"Menggunakan torus instance untuk mengambil detil akun user",slug:"menggunakan-torus-instance-untuk-mengambil-detil-akun-user",children:[]},{level:3,title:"Menggunakan Torus Solana API untuk sign sebuah pesan.",slug:"menggunakan-torus-solana-api-untuk-sign-sebuah-pesan",children:[]},{level:3,title:"Menggunakan torus Solana API untuk mengirim transaksi.\u200B",slug:"menggunakan-torus-solana-api-untuk-mengirim-transaksi-\u200B",children:[]},{level:3,title:"Topup",slug:"topup",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Sumber",slug:"sumber",children:[]}],path:"/id/integrations/web3auth.html",pathLocale:"/id/",extraFields:[]},{title:"Akun",headers:[{level:2,title:"Bagaimana cara membuat sebuah sistem akun",slug:"bagaimana-cara-membuat-sebuah-sistem-akun",children:[]},{level:2,title:"Bagaimana cara mengkalkulasi biaya akun",slug:"bagaimana-cara-mengkalkulasi-biaya-akun",children:[]},{level:2,title:"Bagaimana cara membuat akun dengan seeds",slug:"bagaimana-cara-membuat-akun-dengan-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"Bagaimana cara membuat PDAs",slug:"bagaimana-cara-membuat-pdas",children:[{level:3,title:"Menghasilkan sebuah PDA",slug:"menghasilkan-sebuah-pda",children:[]},{level:3,title:"Membuat sebuah PDA",slug:"membuat-sebuah-pda",children:[]}]},{level:2,title:"Bagaimana cara untuk sign sebuah PDA",slug:"bagaimana-cara-untuk-sign-sebuah-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"Bagaimana Cara Mendapatkan Program Akun",slug:"bagaimana-cara-mendapatkan-program-akun",children:[]},{level:2,title:"Bagaimana Cara Menutup Akun",slug:"bagaimana-cara-menutup-akun",children:[]},{level:2,title:"Bagaimana Cara Mendapatkan Balance Akun",slug:"bagaimana-cara-mendapatkan-balance-akun",children:[]}],path:"/id/references/accounts.html",pathLocale:"/id/",extraFields:[]},{title:"Mengirim Transaksi",headers:[{level:2,title:"Bagaimana cara mengirim SOL",slug:"bagaimana-cara-mengirim-sol",children:[]},{level:2,title:"Bagimana cara mengirim SPL-Tokens",slug:"bagimana-cara-mengirim-spl-tokens",children:[]},{level:2,title:"Bagaimana cara mengkalkulasi biaya transaksi",slug:"bagaimana-cara-mengkalkulasi-biaya-transaksi",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"Bagaimana menambah catatan ke dalam sebuah transaksi",slug:"bagaimana-menambah-catatan-ke-dalam-sebuah-transaksi",children:[]},{level:2,title:"Bagaimana cara merubah perhitungan budget untuk sebuah transaksi",slug:"bagaimana-cara-merubah-perhitungan-budget-untuk-sebuah-transaksi",children:[]}],path:"/id/references/basic-transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Keypairs & Wallets",headers:[{level:2,title:"Bagaimana cara membuat sebuah Keypair baru",slug:"bagaimana-cara-membuat-sebuah-keypair-baru",children:[]},{level:2,title:"Bagaimana cara me-restore sebuah Keypair dari sebuah secret",slug:"bagaimana-cara-me-restore-sebuah-keypair-dari-sebuah-secret",children:[]},{level:2,title:"Bagaimana cara menverifikasi sebuah Keypair",slug:"bagaimana-cara-menverifikasi-sebuah-keypair",children:[]},{level:2,title:"Bagaimana cara untuk check jika sebuah public key telah terhubung dengan sebuah private key",slug:"bagaimana-cara-untuk-check-jika-sebuah-public-key-telah-terhubung-dengan-sebuah-private-key",children:[]},{level:2,title:"Bagaimana cara membuat mnemonic phrase",slug:"bagaimana-cara-membuat-mnemonic-phrase",children:[]},{level:2,title:"Bagaimana cara restore sebuah Keypair dari sebuah mnemonic phrase",slug:"bagaimana-cara-restore-sebuah-keypair-dari-sebuah-mnemonic-phrase",children:[]},{level:2,title:"Bagaimana cara membuat sebuah vanity address",slug:"bagaimana-cara-membuat-sebuah-vanity-address",children:[]},{level:2,title:"Bagaimana cara untuk sign dan menverifikasi messages dalam wallet",slug:"bagaimana-cara-untuk-sign-dan-menverifikasi-messages-dalam-wallet",children:[]},{level:2,title:"Bagaimana cara mengkoneksi ke sebuah wallet",slug:"bagaimana-cara-mengkoneksi-ke-sebuah-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/id/references/keypairs-and-wallets.html",pathLocale:"/id/",extraFields:[]},{title:"Development Lokal",headers:[{level:2,title:"Memulai Validator Lokal",slug:"memulai-validator-lokal",children:[]},{level:2,title:"Menghubungkan Ke Environment",slug:"menghubungkan-ke-environment",children:[]},{level:2,title:"Subskripsi Event",slug:"subskripsi-event",children:[]},{level:2,title:"Mendapatkan Tes SOL",slug:"mendapatkan-tes-sol",children:[]},{level:2,title:"Menggunakan Akun dan Program Mainnet",slug:"menggunakan-akun-dan-program-mainnet",children:[{level:3,title:"Cara memuat akun dari mainnet",slug:"cara-memuat-akun-dari-mainnet",children:[]},{level:3,title:"Cara memuat program dari mainnet",slug:"cara-memuat-program-dari-mainnet",children:[]}]}],path:"/id/references/local-development.html",pathLocale:"/id/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"Menemukan semua domain name yang dimiliki oleh suatu public key",slug:"menemukan-semua-domain-name-yang-dimiliki-oleh-suatu-public-key",children:[]},{level:2,title:"Resolve Twitter handle",slug:"resolve-twitter-handle",children:[]},{level:2,title:"Reverse look up suatu Twitter handle",slug:"reverse-look-up-suatu-twitter-handle",children:[]}],path:"/id/references/name-service.html",pathLocale:"/id/",extraFields:[]},{title:"NFT",headers:[{level:2,title:"Cara membuat NFT",slug:"cara-membuat-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint NFT-nya",slug:"mint-nft-nya",children:[]}]},{level:2,title:"Cara Mendapatkan Metadata NFT",slug:"cara-mendapatkan-metadata-nft",children:[]},{level:2,title:"Cara Mengetahui Pemilik Sebuah NFT",slug:"cara-mengetahui-pemilik-sebuah-nft",children:[]},{level:2,title:"Cara untuk mengambil NFT Mint Addresses",slug:"cara-untuk-mengambil-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"Cara Mendapatkan Semua NFT dari Suatu Wallet",slug:"cara-mendapatkan-semua-nft-dari-suatu-wallet",children:[]}],path:"/id/references/nfts.html",pathLocale:"/id/",extraFields:[]},{title:"Mengirim Transaksi Offline",headers:[{level:2,title:"Sign Transaksi",slug:"sign-transaksi",children:[]},{level:2,title:"Sign Transaksi Sebagian",slug:"sign-transaksi-sebagian",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Membuat Akun Nonce",slug:"membuat-akun-nonce",children:[]},{level:3,title:"Mendapatkan Akun Nonce",slug:"mendapatkan-akun-nonce",children:[]},{level:3,title:"Menggunakan Akun Nonce",slug:"menggunakan-akun-nonce",children:[]}]}],path:"/id/references/offline-transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Menulis Program",headers:[{level:2,title:"Bagaimana cara mentransfer SOL di dalam sebuah program",slug:"bagaimana-cara-mentransfer-sol-di-dalam-sebuah-program",children:[]},{level:2,title:"Bagaimana cara mendapatkan waktu dalam sebuah program",slug:"bagaimana-cara-mendapatkan-waktu-dalam-sebuah-program",children:[{level:3,title:"Passing Waktu sebagai sebuah account di dalam sebuah instruksi",slug:"passing-waktu-sebagai-sebuah-account-di-dalam-sebuah-instruksi",children:[]},{level:3,title:"Mengakses Waktu secara langsung di dalam sebuah instruksi",slug:"mengakses-waktu-secara-langsung-di-dalam-sebuah-instruksi",children:[]}]},{level:2,title:"Bagaimana cara merubah size akun",slug:"bagaimana-cara-merubah-size-akun",children:[]},{level:2,title:"Bagaimana cara untuk membuat program Cross Invocation",slug:"bagaimana-cara-untuk-membuat-program-cross-invocation",children:[]},{level:2,title:"Bagaimana cara membuat sebuah PDA",slug:"bagaimana-cara-membuat-sebuah-pda",children:[]},{level:2,title:"Bagaimana cara membaca akun",slug:"bagaimana-cara-membaca-akun",children:[]},{level:2,title:"Bagaimana cara men-verifikasi akun",slug:"bagaimana-cara-men-verifikasi-akun",children:[]},{level:2,title:"Bagaimana cara membaca beberapa instruksi dalam sebuah transaksi",slug:"bagaimana-cara-membaca-beberapa-instruksi-dalam-sebuah-transaksi",children:[]}],path:"/id/references/programs.html",pathLocale:"/id/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Mendapatkan Validators",slug:"mendapatkan-validators",children:[]},{level:2,title:"Membuat Stake Account",slug:"membuat-stake-account",children:[]},{level:2,title:"Mendelegasi Stake",slug:"mendelegasi-stake",children:[]},{level:2,title:"Mendapatkan Delegator dengan Validator",slug:"mendapatkan-delegator-dengan-validator",children:[]},{level:2,title:"Deactivate Stake",slug:"deactivate-stake",children:[]},{level:2,title:"Withdraw Stake",slug:"withdraw-stake",children:[]}],path:"/id/references/staking.html",pathLocale:"/id/",extraFields:[]},{title:"Interaksi dengan Token",headers:[{level:2,title:"Apa yang saya perlukan untuk memulai dengan SPL-Tokens?",slug:"apa-yang-saya-perlukan-untuk-memulai-dengan-spl-tokens",children:[]},{level:2,title:"Bagaimana cara untuk membuat sebuah Token baru",slug:"bagaimana-cara-untuk-membuat-sebuah-token-baru",children:[]},{level:2,title:"Bagaimana cara mendapatkan sebuah token mint",slug:"bagaimana-cara-mendapatkan-sebuah-token-mint",children:[]},{level:2,title:"Bagaimana cara membuat sebuah akun token",slug:"bagaimana-cara-membuat-sebuah-akun-token",children:[]},{level:2,title:"Bagaimana cara mendapatkan sebuah Akun Token",slug:"bagaimana-cara-mendapatkan-sebuah-akun-token",children:[]},{level:2,title:"Bagaimana cara mendapatkan saldo dari akun token",slug:"bagaimana-cara-mendapatkan-saldo-dari-akun-token",children:[]},{level:2,title:"Bagaimana cara untuk me-mint token-token",slug:"bagaimana-cara-untuk-me-mint-token-token",children:[]},{level:2,title:"Bagaimana cara mentransfer token-token",slug:"bagaimana-cara-mentransfer-token-token",children:[]},{level:2,title:"Bagaimana cara membakar token-token",slug:"bagaimana-cara-membakar-token-token",children:[]},{level:2,title:"Bagaimana cara menutup akun-akun token",slug:"bagaimana-cara-menutup-akun-akun-token",children:[]},{level:2,title:"Bagaimana cara untuk men-set authority pada akun-akun token atau mints",slug:"bagaimana-cara-untuk-men-set-authority-pada-akun-akun-token-atau-mints",children:[]},{level:2,title:"Bagaimana cara untuk men-approve delegasi sebuah token",slug:"bagaimana-cara-untuk-men-approve-delegasi-sebuah-token",children:[]},{level:2,title:"Bagaimana cara menarik kembali delegasi token",slug:"bagaimana-cara-menarik-kembali-delegasi-token",children:[]},{level:2,title:"Bagaimana cara mengature wrapped SOL",slug:"bagaimana-cara-mengature-wrapped-sol",children:[{level:3,title:"Membuat Akun Token",slug:"membuat-akun-token",children:[]},{level:3,title:"Menambah Saldo",slug:"menambah-saldo",children:[]}]},{level:2,title:"Bagaimana cara mendapatkan semua akun-akun token sebagai pemilik",slug:"bagaimana-cara-mendapatkan-semua-akun-akun-token-sebagai-pemilik",children:[]}],path:"/id/references/token.html",pathLocale:"/id/",extraFields:[]},{title:"\u30A2\u30AB\u30A6\u30F3\u30C8",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30E2\u30C7\u30EB",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30E2\u30C6\u3099\u30EB",children:[]},{level:3,title:"rent(\u5BB6\u8CC3)",slug:"rent-\u5BB6\u8CC3",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/ja/core-concepts/accounts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u9593\u547C\u3073\u51FA\u3057(CPI)",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"invoke\u3092\u7528\u3044\u305FCPI",slug:"invoke\u3092\u7528\u3044\u305Fcpi",children:[]},{level:3,title:"invoke_signed\u3092\u7528\u3044\u305FCPI",slug:"invoke-signed\u3092\u7528\u3044\u305Fcpi",children:[]},{level:3,title:"CPI Instruction",slug:"cpi-instruction",children:[]},{level:3,title:"CPI AccountInfo",slug:"cpi-accountinfo",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/cpi.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u6D3E\u751F\u30A2\u30C9\u30EC\u30B9(PDA)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"PDA \u306E\u751F\u6210",slug:"pda-\u306E\u751F\u6210",children:[]},{level:3,title:"PDA\u3068\u5BFE\u8A71\u3059\u308B",slug:"pda\u3068\u5BFE\u8A71\u3059\u308B",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/pdas.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"Native Programs & The Solana Program Library (SPL)",slug:"native-programs-the-solana-program-library-spl",children:[]},{level:3,title:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30DF\u30F3\u30AF\u3099",children:[]},{level:3,title:"\u30C7\u30D7\u30ED\u30A4",slug:"\u30C6\u3099\u30D5\u309A\u30ED\u30A4",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/programs.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"\u624B\u6570\u6599",slug:"\u624B\u6570\u6599",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",headers:[{level:2,title:"Install Web3.js",slug:"install-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/ja/getting-started/installation.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30DE\u30C3\u30D7",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"\u5358\u4E00\u306E\u30DE\u30C3\u30D7 \u30A2\u30AB\u30A6\u30F3\u30C8",slug:"\u5358\u4E00\u306E\u30DE\u30C3\u30D5\u309A-\u30A2\u30AB\u30A6\u30F3\u30C8",children:[]}],path:"/ja/guides/account-maps.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0 \u30C7\u30FC\u30BF \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u79FB\u884C",headers:[{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30C7\u30FC\u30BF \u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u79FB\u884C\u3059\u308B\u306B\u306F\u3069\u3046\u3059\u308C\u3070\u3088\u3044\u3067\u3059\u304B\uFF1F",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u30C6\u3099\u30FC\u30BF-\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u79FB\u884C\u3059\u308B\u306B\u306F\u3068\u3099\u3046\u3059\u308C\u306F\u3099\u3088\u3044\u3066\u3099\u3059\u304B",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30A2\u30C3\u30D5\u309A\u30AF\u3099\u30EC\u30FC\u30C8\u3099",children:[{level:3,title:"1. \u30A2\u30AB\u30A6\u30F3\u30C8\u5909\u63DB\u30ED\u30B8\u30C3\u30AF\u3092\u8FFD\u52A0\u3059\u308B",slug:"_1-\u30A2\u30AB\u30A6\u30F3\u30C8\u5909\u63DB\u30ED\u30B7\u3099\u30C3\u30AF\u3092\u8FFD\u52A0\u3059\u308B",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/data-migration.html",pathLocale:"/ja/",extraFields:[]},{title:"Solana\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30C7\u30D0\u30C3\u30B0",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Runtime Testing and Debugging in editor",slug:"runtime-testing-and-debugging-in-editor",children:[]},{level:2,title:"Local Validator Node Testing in editor",slug:"local-validator-node-testing-in-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/debugging-solana-programs.html",pathLocale:"/ja/",extraFields:[]},{title:"\u6A5F\u80FD\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u30B7\u30CA\u30EA\u30AA",slug:"\u30B7\u30CA\u30EA\u30AA",children:[]},{level:2,title:"\u6A5F\u80FD\u30B9\u30C6\u30FC\u30BF\u30B9",slug:"\u6A5F\u80FD\u30B9\u30C6\u30FC\u30BF\u30B9",children:[]},{level:2,title:"\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",slug:"\u30CF\u309A\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",children:[]},{level:2,title:"\u7C21\u5358\u306A\u30C7\u30E2\u30F3\u30B9\u30C8\u30EC\u30FC\u30B7\u30E7\u30F3",slug:"\u7C21\u5358\u306A\u30C6\u3099\u30E2\u30F3\u30B9\u30C8\u30EC\u30FC\u30B7\u30E7\u30F3",children:[{level:3,title:"\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u3059\u3079\u3066\u306E\u6A5F\u80FD",slug:"\u30A2\u30AF\u30C6\u30A3\u30D5\u3099\u306A\u3059\u3078\u3099\u3066\u306E\u6A5F\u80FD",children:[]},{level:3,title:"\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u9078\u629E\u6A5F\u80FD",slug:"\u975E\u30A2\u30AF\u30C6\u30A3\u30D5\u3099\u306A\u9078\u629E\u6A5F\u80FD",children:[]}]},{level:2,title:"\u5B8C\u5168\u306A\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",slug:"\u5B8C\u5168\u306A\u30CF\u309A\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u306E\u5B8C\u5168\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099\u306E\u5B8C\u5168\u30CF\u309A\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/feature-parity-testing.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/get-program-accounts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u518D\u8A66\u884C",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"The Journey of a Transaction",slug:"the-journey-of-a-transaction",children:[{level:3,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304B\u3099\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1\u3059\u308B\u65B9\u6CD5",children:[]},{level:3,title:"RPC \u30CE\u30FC\u30C9\u304C\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u30D6\u30ED\u30FC\u30C9\u30AD\u30E3\u30B9\u30C8\u3059\u308B\u65B9\u6CD5",slug:"rpc-\u30CE\u30FC\u30C8\u3099\u304B\u3099\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u30D5\u3099\u30ED\u30FC\u30C8\u3099\u30AD\u30E3\u30B9\u30C8\u3059\u308B\u65B9\u6CD5",children:[]}]},{level:2,title:"How Transactions Get Dropped",slug:"how-transactions-get-dropped",children:[{level:3,title:"Before a transaction is processed",slug:"before-a-transaction-is-processed",children:[]},{level:3,title:"After a transaction is processed and before it is finalized",slug:"after-a-transaction-is-processed-and-before-it-is-finalized",children:[]}]},{level:2,title:"Handling Dropped Transactions",slug:"handling-dropped-transactions",children:[{level:3,title:"An In-Depth Look at sendTransaction",slug:"an-in-depth-look-at-sendtransaction",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic",slug:"customizing-rebroadcast-logic",children:[{level:3,title:"The Cost of Skipping Preflight",slug:"the-cost-of-skipping-preflight",children:[]},{level:3,title:"When to Re-Sign Transactions",slug:"when-to-re-sign-transactions",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/ja/guides/retrying-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C7\u30FC\u30BF\u306E\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3",headers:[{level:2,title:"Setting up for Borsh Serialization",slug:"setting-up-for-borsh-serialization",children:[]},{level:2,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067\u547D\u4EE4\u30C7\u30FC\u30BF\u3092\u30B7\u30EA\u30A2\u30EB\u5316\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3066\u3099\u547D\u4EE4\u30C6\u3099\u30FC\u30BF\u3092\u30B7\u30EA\u30A2\u30EB\u5316\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u547D\u4EE4\u30C7\u30FC\u30BF\u3092\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BA\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u547D\u4EE4\u30C6\u3099\u30FC\u30BF\u3092\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30B9\u3099\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u547D\u4EE4\u30C7\u30FC\u30BF\u3092\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BA\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u547D\u4EE4\u30C6\u3099\u30FC\u30BF\u3092\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30B9\u3099\u3059\u308B\u65B9\u6CD5-1",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3/\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3",slug:"\u30B7\u30EA\u30A2\u30E9\u30A4\u30BB\u3099\u30FC\u30B7\u30E7\u30F3-\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30BB\u3099\u30FC\u30B7\u30E7\u30F3",children:[]},{level:3,title:"\u4F7F\u7528\u65B9\u6CD5",slug:"\u4F7F\u7528\u65B9\u6CD5",children:[]}]},{level:2,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067\u30A2\u30AB\u30A6\u30F3\u30C8 \u30C7\u30FC\u30BF\u3092\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BA\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3066\u3099\u30A2\u30AB\u30A6\u30F3\u30C8-\u30C6\u3099\u30FC\u30BF\u3092\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30B9\u3099\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u4E00\u822C\u7684\u306A Solana TS/JS \u30DE\u30C3\u30D4\u30F3\u30B0",slug:"\u4E00\u822C\u7684\u306A-solana-ts-js-\u30DE\u30C3\u30D2\u309A\u30F3\u30AF\u3099",children:[]},{level:2,title:"\u3088\u308A\u9AD8\u5EA6\u306A\u69CB\u9020",slug:"\u3088\u308A\u9AD8\u5EA6\u306A\u69CB\u9020",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/serialization.html",pathLocale:"/ja/",extraFields:[]},{title:"Versioned Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Legacy Transaction",slug:"legacy-transaction",children:[]},{level:2,title:"Legacy Message",slug:"legacy-message",children:[{level:3,title:"Header",slug:"header",children:[]},{level:3,title:"Compact-array of account addresses",slug:"compact-array-of-account-addresses",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions",children:[]}]},{level:2,title:"Issues with Legacy Transactions",slug:"issues-with-legacy-transactions",children:[]},{level:2,title:"Address Lookup Tables (LUT)",slug:"address-lookup-tables-lut",children:[]},{level:2,title:"Versioned Transactions: TransactionV0",slug:"versioned-transactions-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Compact array of address table lookups",slug:"compact-array-of-address-table-lookups",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions-1",children:[]}]},{level:2,title:"RPC Changes",slug:"rpc-changes",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]},{level:2,title:"References",slug:"references",children:[]}],path:"/ja/guides/versioned-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u958B\u59CB",headers:[{level:2,title:"\u69CB\u6210\u53EF\u80FD\u6027\u304C\u9375",slug:"\u69CB\u6210\u53EF\u80FD\u6027\u304B\u3099\u9375",children:[]},{level:2,title:"\u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30B7\u30E7\u30F3",slug:"\u30B3\u30F3\u30C8\u30EA\u30D2\u3099\u30E5\u30FC\u30B7\u30E7\u30F3",children:[]}],path:"/ja/integrations/",pathLocale:"/ja/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Jupiter\u304B\u3089\u306E\u30C8\u30FC\u30AF\u30F3\u30EA\u30B9\u30C8\u306E\u53D6\u5F97",slug:"jupiter\u304B\u3089\u306E\u30C8\u30FC\u30AF\u30F3\u30EA\u30B9\u30C8\u306E\u53D6\u5F97",children:[]},{level:3,title:"Jupiter\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u8AAD\u8FBC",slug:"jupiter\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u8AAD\u8FBC",children:[]},{level:3,title:"RouteMap\u306E\u53D6\u5F97",slug:"routemap\u306E\u53D6\u5F97",children:[]},{level:3,title:"\u6307\u5B9A\u3055\u308C\u305F\u5165\u529B\u304A\u3088\u3073\u51FA\u529B\u30C8\u30FC\u30AF\u30F3\u306E\u30EB\u30FC\u30C8\u3092\u53D6\u5F97\u3059\u308B",slug:"\u6307\u5B9A\u3055\u308C\u305F\u5165\u529B\u304A\u3088\u3072\u3099\u51FA\u529B\u30C8\u30FC\u30AF\u30F3\u306E\u30EB\u30FC\u30C8\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"\u30C8\u30FC\u30AF\u30F3\u30B9\u30EF\u30C3\u30D7\u3092\u5B9F\u884C\u3059\u308B",slug:"\u30C8\u30FC\u30AF\u30F3\u30B9\u30EF\u30C3\u30D5\u309A\u3092\u5B9F\u884C\u3059\u308B",children:[]},{level:2,title:"React \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067 Jupiter \u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"react-\u30A2\u30D5\u309A\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3066\u3099-jupiter-\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",slug:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",children:[]},{level:3,title:"\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u306E\u8FFD\u52A0",slug:"\u30D5\u309A\u30ED\u30CF\u3099\u30A4\u30BF\u3099\u30FC\u306E\u8FFD\u52A0",children:[]},{level:3,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u30EA\u30B9\u30C8\u3092\u53D6\u5F97\u3059\u308B",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u30EA\u30B9\u30C8\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"State\u306E\u8A2D\u5B9A",slug:"state\u306E\u8A2D\u5B9A",children:[]},{level:3,title:"useJupiter react hook\u306E\u4ED5\u69D8",slug:"usejupiter-react-hook\u306E\u4ED5\u69D8",children:[]},{level:3,title:"\u30B9\u30EF\u30C3\u30D7\u306E\u5B9F\u884C",slug:"\u30B9\u30EF\u30C3\u30D5\u309A\u306E\u5B9F\u884C",children:[]}]},{level:2,title:"Jupiter API\u306E\u4F7F\u7528\u65B9\u6CD5",slug:"jupiter-api\u306E\u4F7F\u7528\u65B9\u6CD5",children:[{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",slug:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB-1",children:[]},{level:3,title:"\u30EB\u30FC\u30C8\u30DE\u30C3\u30D7\u306E\u53D6\u5F97",slug:"\u30EB\u30FC\u30C8\u30DE\u30C3\u30D5\u309A\u306E\u53D6\u5F97",children:[]},{level:3,title:"\u30B7\u30EA\u30A2\u30EB\u5316\u3055\u308C\u305F\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u53D6\u5F97\u3057\u3066\u30B9\u30EF\u30C3\u30D7\u3092\u5B9F\u884C\u3059\u308B",slug:"\u30B7\u30EA\u30A2\u30EB\u5316\u3055\u308C\u305F\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u53D6\u5F97\u3057\u3066\u30B9\u30EF\u30C3\u30D5\u309A\u3092\u5B9F\u884C\u3059\u308B",children:[]},{level:3,title:"\u30B9\u30EF\u30C3\u30D7\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u5B9F\u884C",slug:"\u30B9\u30EF\u30C3\u30D5\u309A\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u5B9F\u884C",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/jupiter.html",pathLocale:"/ja/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"Mango Group\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"mango-group\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"Mango Account\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"mango-account\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"USDC\u3092Mango Account\u306B\u5165\u91D1\u3059\u308B\u65B9\u6CD5",slug:"usdc\u3092mango-account\u306B\u5165\u91D1\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5",slug:"\u30B9\u30DB\u309A\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5",children:[]},{level:2,title:"\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",slug:"\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",children:[]},{level:2,title:"\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",slug:"\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/mango.html",pathLocale:"/ja/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Basic usage scenario",slug:"basic-usage-scenario",children:[]},{level:2,title:"SDKs",slug:"sdks",children:[]},{level:2,title:"Anatomy of a randomness request",slug:"anatomy-of-a-randomness-request",children:[]},{level:2,title:"Anatomy of a VRF configuration",slug:"anatomy-of-a-vrf-configuration",children:[]},{level:2,title:"Rust-native example",slug:"rust-native-example",children:[{level:3,title:"1. Setup the connection",slug:"_1-setup-the-connection",children:[]},{level:3,title:"2. Create a request",slug:"_2-create-a-request",children:[]},{level:3,title:"3. Wait for fulfillment",slug:"_3-wait-for-fulfillment",children:[]}]},{level:2,title:"CPI Example",slug:"cpi-example",children:[{level:3,title:"1. Create the contract",slug:"_1-create-the-contract",children:[]},{level:3,title:"2. Collect the necessary accounts",slug:"_2-collect-the-necessary-accounts",children:[]},{level:3,title:"3. Perform a CPI call",slug:"_3-perform-a-cpi-call",children:[]},{level:3,title:"4. Use the fulfilled randomness",slug:"_4-use-the-fulfilled-randomness",children:[]}]}],path:"/ja/integrations/orao-vrf.html",pathLocale:"/ja/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067Pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3066\u3099pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"Anchor\u3067Pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"anchor\u3066\u3099pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/pyth.html",pathLocale:"/ja/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"React Native\u30A2\u30D7\u30EA\u3067@solana/web3.js\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"react-native\u30A2\u30D5\u309A\u30EA\u3066\u3099-solana-web3-js\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u65B0\u3057\u3044\u30A2\u30D7\u30EA\u3092\u4F5C\u6210\u3059\u308B",slug:"\u65B0\u3057\u3044\u30A2\u30D5\u309A\u30EA\u3092\u4F5C\u6210\u3059\u308B",children:[]},{level:3,title:"\u4F9D\u5B58\u95A2\u4FC2\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",slug:"\u4F9D\u5B58\u95A2\u4FC2\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",children:[]},{level:3,title:"Hermes\u5909\u63DB\u3092\u4F7F\u7528\u3059\u308B\u3088\u3046\u306BBabel\u306B\u30D1\u30C3\u30C1\u3092\u9069\u7528\u3059\u308B",slug:"hermes\u5909\u63DB\u3092\u4F7F\u7528\u3059\u308B\u3088\u3046\u306Bbabel\u306B\u30CF\u309A\u30C3\u30C1\u3092\u9069\u7528\u3059\u308B",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"[iOS \u306E\u307F]cocoapods\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",slug:"ios-\u306E\u307F-cocoapods\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",children:[]},{level:3,title:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u958B\u59CB",slug:"\u30A2\u30D5\u309A\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u958B\u59CB",children:[]}]},{level:2,title:"React Native\u7528Solana DApp\u30B9\u30AD\u30E3\u30D5\u30A9\u30FC\u30EB\u30C9",slug:"react-native\u7528solana-dapp\u30B9\u30AD\u30E3\u30D5\u30A9\u30FC\u30EB\u30C8\u3099",children:[]},{level:2,title:"React Native\u30A2\u30D7\u30EA\u3067\u6697\u53F7\u5316\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u4F7F\u7528\u3059\u308B\u969B\u306E\u4E00\u822C\u7684\u306A\u554F\u984C",slug:"react-native\u30A2\u30D5\u309A\u30EA\u3066\u3099\u6697\u53F7\u5316\u30E9\u30A4\u30D5\u3099\u30E9\u30EA\u3092\u4F7F\u7528\u3059\u308B\u969B\u306E\u4E00\u822C\u7684\u306A\u554F\u984C",children:[{level:3,title:"Error: Watchman crawl failed",slug:"error-watchman-crawl-failed",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/ja/integrations/react-native.html",pathLocale:"/ja/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"Serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"Serum\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",slug:"serum\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",children:[]},{level:2,title:"\u73FE\u5728\u306E\u30AA\u30FC\u30D7\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/integrations/serum.html",pathLocale:"/ja/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"\u30D5\u30EB\u30DE\u30CD\u30FC\u30B8\u30C9\u30C8\u30FC\u30AF\u30F3\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"\u30D5\u30EB\u30DE\u30CD\u30FC\u30B7\u3099\u30C8\u3099\u30C8\u30FC\u30AF\u30F3\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5",children:[]},{level:2,title:"\u6D41\u52D5\u6027\u306E\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u65B9\u6CD5",slug:"\u6D41\u52D5\u6027\u306E\u30D5\u3099\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D5\u309A\u65B9\u6CD5",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/strata.html",pathLocale:"/ja/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"\u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u304B\u3089\u30C7\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",slug:"\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u304B\u3089\u30C6\u3099\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",children:[]},{level:3,title:"\u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B",slug:"\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B",children:[]},{level:3,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u304B\u3089\u30C7\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u304B\u3089\u30C6\u3099\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",children:[]},{level:3,title:"\u30D1\u30D6\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C9\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",slug:"\u30CF\u309A\u30D5\u3099\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",children:[]}]},{level:2,title:"Oracle",slug:"oracle",children:[{level:3,title:"Oracle\u3092\u4F5C\u6210",slug:"oracle\u3092\u4F5C\u6210",children:[]},{level:3,title:"Oracle\u3092\u30ED\u30FC\u30AB\u30EB\u3067\u5B9F\u884C",slug:"oracle\u3092\u30ED\u30FC\u30AB\u30EB\u3066\u3099\u5B9F\u884C",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"\u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570(VRF)",slug:"\u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570-vrf",children:[{level:3,title:"VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u53D6\u308A",slug:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u53D6\u308A",children:[]},{level:3,title:"VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",slug:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",children:[]},{level:3,title:"VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089Randomness\u3092\u8981\u6C42\u3059\u308B",slug:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089randomness\u3092\u8981\u6C42\u3059\u308B",children:[]}]},{level:2,title:"\u53C2\u8003\u6587\u732E",slug:"\u53C2\u8003\u6587\u732E",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/ja/integrations/switchboard.html",pathLocale:"/ja/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3068\u306F\uFF1F",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3068\u306F",children:[]},{level:2,title:"Solana\u306E\u30BD\u30FC\u30B7\u30E3\u30EB\u30ED\u30B0\u30A4\u30F3",slug:"solana\u306E\u30BD\u30FC\u30B7\u30E3\u30EB\u30ED\u30AF\u3099\u30A4\u30F3",children:[]},{level:2,title:"\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3\u30AC\u30A4\u30C9",slug:"\u30A4\u30F3\u30C6\u30AF\u3099\u30EC\u30FC\u30B7\u30E7\u30F3\u30AB\u3099\u30A4\u30C8\u3099",children:[{level:3,title:"\u4F9D\u5B58\u95A2\u4FC2\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",slug:"\u4F9D\u5B58\u95A2\u4FC2\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",children:[]},{level:3,title:"SDK\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u3066\u521D\u671F\u5316\u3059\u308B",slug:"sdk\u3092\u30A4\u30F3\u30DB\u309A\u30FC\u30C8\u3057\u3066\u521D\u671F\u5316\u3059\u308B",children:[]},{level:3,title:"\u30E6\u30FC\u30B6\u30FC\u30ED\u30B0\u30A4\u30F3\u306E\u30C8\u30EA\u30AC\u30FC",slug:"\u30E6\u30FC\u30B5\u3099\u30FC\u30ED\u30AF\u3099\u30A4\u30F3\u306E\u30C8\u30EA\u30AB\u3099\u30FC",children:[]},{level:3,title:"Torus\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F7F\u7528\u3057\u3066\u30E6\u30FC\u30B6\u30FC\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8A73\u7D30\u3092\u53D6\u5F97\u3059\u308B",slug:"torus\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F7F\u7528\u3057\u3066\u30E6\u30FC\u30B5\u3099\u30FC\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8A73\u7D30\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"Torus Solana API\u3092\u4F7F\u7528\u3057\u3066\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u7F72\u540D\u3057\u307E\u3059\u3002",slug:"torus-solana-api\u3092\u4F7F\u7528\u3057\u3066\u30E1\u30C3\u30BB\u30FC\u30B7\u3099\u306B\u7F72\u540D\u3057\u307E\u3059\u3002",children:[]},{level:3,title:"torus Solana API\u3092\u4F7F\u7528\u3057\u3066\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1",slug:"torus-solana-api\u3092\u4F7F\u7528\u3057\u3066\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"\u30ED\u30B0\u30A2\u30A6\u30C8",slug:"\u30ED\u30AF\u3099\u30A2\u30A6\u30C8",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/web3auth.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30A2\u30AB\u30A6\u30F3\u30C8",headers:[{level:2,title:"\u30B7\u30B9\u30C6\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u308A\u65B9",slug:"\u30B7\u30B9\u30C6\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u308A\u65B9",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u8CBB\u7528\u306E\u8A08\u7B97\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u8CBB\u7528\u306E\u8A08\u7B97\u65B9\u6CD5",children:[]},{level:2,title:"\u30B7\u30FC\u30C9\u4ED8\u304D\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",slug:"\u30B7\u30FC\u30C8\u3099\u4ED8\u304D\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u751F\u6210",slug:"\u751F\u6210",children:[]},{level:3,title:"\u4F5C\u6210",slug:"\u4F5C\u6210",children:[]},{level:3,title:"\u9001\u4FE1",slug:"\u9001\u4FE1",children:[]}]},{level:2,title:"PDA \u306E\u4F5C\u6210\u65B9\u6CD5",slug:"pda-\u306E\u4F5C\u6210\u65B9\u6CD5",children:[{level:3,title:"PDA\u306E\u751F\u6210",slug:"pda\u306E\u751F\u6210",children:[]},{level:3,title:"Create a PDA",slug:"create-a-pda",children:[]}]},{level:2,title:"PDA\u3067\u7F72\u540D\u3059\u308B\u65B9\u6CD5",slug:"pda\u3066\u3099\u7F72\u540D\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"program account\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"program-account\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"account\u306E\u9589\u9396",slug:"account\u306E\u9589\u9396",children:[]},{level:2,title:"account\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"account\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/accounts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1",headers:[{level:2,title:"SOL\u306E\u9001\u91D1\u65B9\u6CD5",slug:"sol\u306E\u9001\u91D1\u65B9\u6CD5",children:[]},{level:2,title:"SPL-Token\u306E\u9001\u4FE1\u65B9\u6CD5",slug:"spl-token\u306E\u9001\u4FE1\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u30B3\u30B9\u30C8\u306E\u8A08\u7B97\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u30B3\u30B9\u30C8\u306E\u8A08\u7B97\u65B9\u6CD5",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3078\u306E\u30E1\u30E2\u306E\u8FFD\u52A0\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3078\u306E\u30E1\u30E2\u306E\u8FFD\u52A0\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3073\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3072\u3099\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/basic-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30AD\u30FC\u30DA\u30A2\u3068\u30A6\u30A9\u30EC\u30C3\u30C8",headers:[{level:2,title:"\u65B0\u3057\u3044\u30AD\u30FC\u30DA\u30A2\u306E\u751F\u6210\u65B9\u6CD5",slug:"\u65B0\u3057\u3044\u30AD\u30FC\u30D8\u309A\u30A2\u306E\u751F\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304B\u3089\u30AD\u30FC\u30DA\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",slug:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304B\u3089\u30AD\u30FC\u30D8\u309A\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30AD\u30FC\u30DA\u30A2\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",slug:"\u30AD\u30FC\u30D8\u309A\u30A2\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u516C\u958B\u9375\u306B\u79D8\u5BC6\u9375\u304C\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",slug:"\u516C\u958B\u9375\u306B\u79D8\u5BC6\u9375\u304B\u3099\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u304B\u3068\u3099\u3046\u304B\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30BA\u306E\u751F\u6210\u65B9\u6CD5",slug:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30B9\u3099\u306E\u751F\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30BA\u304B\u3089\u30AD\u30FC\u30DA\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",slug:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30B9\u3099\u304B\u3089\u30AD\u30FC\u30D8\u309A\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D0\u30CB\u30C6\u30A3\u30A2\u30C9\u30EC\u30B9\u306E\u751F\u6210\u65B9\u6CD5",slug:"\u30CF\u3099\u30CB\u30C6\u30A3\u30A2\u30C8\u3099\u30EC\u30B9\u306E\u751F\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3067\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u7F72\u540D\u3057\u3066\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3066\u3099\u30E1\u30C3\u30BB\u30FC\u30B7\u3099\u306B\u7F72\u540D\u3057\u3066\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3078\u306E\u63A5\u7D9A\u65B9\u6CD5",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3078\u306E\u63A5\u7D9A\u65B9\u6CD5",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/ja/references/keypairs-and-wallets.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30ED\u30FC\u30AB\u30EB\u958B\u767A",headers:[{level:2,title:"\u30ED\u30FC\u30AB\u30EB\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306E\u958B\u59CB",slug:"\u30ED\u30FC\u30AB\u30EB\u30CF\u3099\u30EA\u30C6\u3099\u30FC\u30BF\u30FC\u306E\u958B\u59CB",children:[]},{level:2,title:"\u74B0\u5883\u3078\u306E\u63A5\u7D9A",slug:"\u74B0\u5883\u3078\u306E\u63A5\u7D9A",children:[]},{level:2,title:"\u30A4\u30D9\u30F3\u30C8\u306E\u30B5\u30D6\u30B9\u30AF\u30E9\u30A4\u30D6",slug:"\u30A4\u30D8\u3099\u30F3\u30C8\u306E\u30B5\u30D5\u3099\u30B9\u30AF\u30E9\u30A4\u30D5\u3099",children:[]},{level:2,title:"\u30C6\u30B9\u30C8SOL\u306E\u53D6\u5F97",slug:"\u30C6\u30B9\u30C8sol\u306E\u53D6\u5F97",children:[]},{level:2,title:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F7F\u7528",slug:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u4F7F\u7528",children:[{level:3,title:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u65B9\u6CD5",slug:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5",children:[]},{level:3,title:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u30ED\u30FC\u30C9\u3059\u308B\u65B9\u6CD5",slug:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5",children:[]}]}],path:"/ja/references/local-development.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30CD\u30FC\u30E0\u30B5\u30FC\u30D3\u30B9",headers:[{level:2,title:"\u30CD\u30FC\u30E0\u30EC\u30B8\u30B9\u30C8\u30EA",slug:"\u30CD\u30FC\u30E0\u30EC\u30B7\u3099\u30B9\u30C8\u30EA",children:[]},{level:2,title:"SOL\u30C9\u30E1\u30A4\u30F3\u306E\u89E3\u6C7A",slug:"sol\u30C8\u3099\u30E1\u30A4\u30F3\u306E\u89E3\u6C7A",children:[]},{level:2,title:"\u9006\u5F15\u304D",slug:"\u9006\u5F15\u304D",children:[]},{level:2,title:"\u30B5\u30D6\u30C9\u30E1\u30A4\u30F3\u306E\u691C\u7D22",slug:"\u30B5\u30D5\u3099\u30C8\u3099\u30E1\u30A4\u30F3\u306E\u691C\u7D22",children:[]},{level:2,title:"\u516C\u958B\u9375\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30C9\u30E1\u30A4\u30F3\u540D\u3092\u898B\u3064\u3051\u308B",slug:"\u516C\u958B\u9375\u304B\u3099\u6240\u6709\u3059\u308B\u3059\u3078\u3099\u3066\u306E\u30C8\u3099\u30E1\u30A4\u30F3\u540D\u3092\u898B\u3064\u3051\u308B",children:[]},{level:2,title:"Twitter handle\u3092\u89E3\u6C7A\u3059\u308B",slug:"twitter-handle\u3092\u89E3\u6C7A\u3059\u308B",children:[]},{level:2,title:"Twitter handle\u306E\u9006\u5F15\u304D",slug:"twitter-handle\u306E\u9006\u5F15\u304D",children:[]}],path:"/ja/references/name-service.html",pathLocale:"/ja/",extraFields:[]},{title:"NFT",headers:[{level:2,title:"NFT \u306E\u4F5C\u6210\u65B9\u6CD5",slug:"nft-\u306E\u4F5C\u6210\u65B9\u6CD5",children:[{level:3,title:"Arweave\u306B\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",slug:"arweave\u306B\u30A2\u30C3\u30D5\u309A\u30ED\u30FC\u30C8\u3099",children:[]},{level:3,title:"NFT\u3092\u30DF\u30F3\u30C8",slug:"nft\u3092\u30DF\u30F3\u30C8",children:[]}]},{level:2,title:"NFT\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"nft\u30E1\u30BF\u30C6\u3099\u30FC\u30BF\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"NFT\u306E\u6240\u6709\u8005\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"nft\u306E\u6240\u6709\u8005\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"NFT\u30DF\u30F3\u30C8\u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"nft\u30DF\u30F3\u30C8\u30A2\u30C8\u3099\u30EC\u30B9\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u304B\u3089\u3059\u3079\u3066\u306E NFT \u3092\u53D6\u5F97\u3059\u308B\u306B\u306F\uFF1F",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u304B\u3089\u3059\u3078\u3099\u3066\u306E-nft-\u3092\u53D6\u5F97\u3059\u308B\u306B\u306F",children:[]},{level:2,title:"Candy Machine v2",slug:"candy-machine-v2-1",children:[{level:3,title:"Candy Machine\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"candy-machine\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u306E\u524A\u9664\u65B9\u6CD5",slug:"candy-machine\u306E\u524A\u9664\u65B9\u6CD5",children:[]},{level:3,title:"authority\u3092\u4ECB\u3057\u3066Candy Machine\u3092\u63A2\u3059\u65B9\u6CD5",slug:"authority\u3092\u4ECB\u3057\u3066candy-machine\u3092\u63A2\u3059\u65B9\u6CD5",children:[]},{level:3,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C9\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066Candy Machine\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C8\u3099\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066candy-machine\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",children:[]},{level:3,title:"\u30A2\u30C9\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066Candy Machine\u3092\u63A2\u3059\u65B9\u6CD5",slug:"\u30A2\u30C8\u3099\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066candy-machine\u3092\u63A2\u3059\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u304B\u3089\u30DF\u30F3\u30C8\u3055\u308C\u305FNFT\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",slug:"candy-machine\u304B\u3089\u30DF\u30F3\u30C8\u3055\u308C\u305Fnft\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u306B\u30A2\u30A4\u30C6\u30E0\u3092\u633F\u5165\u3059\u308B\u65B9\u6CD5",slug:"candy-machine\u306B\u30A2\u30A4\u30C6\u30E0\u3092\u633F\u5165\u3059\u308B\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u304B\u3089NFT\u3092\u30DF\u30F3\u30C8\u3059\u308B\u65B9\u6CD5",slug:"candy-machine\u304B\u3089nft\u3092\u30DF\u30F3\u30C8\u3059\u308B\u65B9\u6CD5",children:[]}]}],path:"/ja/references/nfts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30AA\u30D5\u30E9\u30A4\u30F3\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1",headers:[{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u7F72\u540D",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u7F72\u540D",children:[]},{level:2,title:"\u90E8\u5206\u7F72\u540D\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3",slug:"\u90E8\u5206\u7F72\u540D\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3",children:[]},{level:2,title:"\u8010\u4E45\u6027\u306E\u3042\u308B\u30CA\u30F3\u30B9",slug:"\u8010\u4E45\u6027\u306E\u3042\u308B\u30CA\u30F3\u30B9",children:[{level:3,title:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97",slug:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97",children:[]},{level:3,title:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97",slug:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97-1",children:[]},{level:3,title:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F7F\u7528",slug:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F7F\u7528",children:[]}]}],path:"/ja/references/offline-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F5C\u6210",headers:[{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067SOL\u3092\u8EE2\u9001\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099sol\u3092\u8EE2\u9001\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067clock\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099clock\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u3057\u3066Clock\u3092\u6E21\u3059",slug:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u3057\u3066clock\u3092\u6E21\u3059",children:[]},{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u3067Clock\u306B\u76F4\u63A5\u30A2\u30AF\u30BB\u30B9\u3059\u308B",slug:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u3066\u3099clock\u306B\u76F4\u63A5\u30A2\u30AF\u30BB\u30B9\u3059\u308B",children:[]}]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30B5\u30A4\u30BA\u306E\u5909\u66F4\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30B5\u30A4\u30B9\u3099\u306E\u5909\u66F4\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u540C\u58EB\u306E\u547C\u3073\u51FA\u3057\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u540C\u58EB\u306E\u547C\u3072\u3099\u51FA\u3057\u65B9\u6CD5",children:[]},{level:2,title:"PDA\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"pda\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u65B9\u6CD5",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u304B\u3089\u8907\u6570\u306E\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u304B\u3089\u8907\u6570\u306E\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/programs.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30B9\u30C6\u30FC\u30AD\u30F3\u30B0",headers:[{level:2,title:"\u73FE\u5728\u306E\u30D0\u30EA\u30C7\u30FC\u30BF\u3092\u53D6\u5F97",slug:"\u73FE\u5728\u306E\u30CF\u3099\u30EA\u30C6\u3099\u30FC\u30BF\u3092\u53D6\u5F97",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",slug:"\u30B9\u30C6\u30FC\u30AF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u306E\u59D4\u4EFB",slug:"\u30B9\u30C6\u30FC\u30AF\u306E\u59D4\u4EFB",children:[]},{level:2,title:"\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306B\u3088\u308B\u30C7\u30EA\u30B2\u30FC\u30BF\u30FC\u306E\u53D6\u5F97",slug:"\u30CF\u3099\u30EA\u30C6\u3099\u30FC\u30BF\u30FC\u306B\u3088\u308B\u30C6\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u306E\u53D6\u5F97",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u3092\u7121\u52B9\u306B\u3059\u308B",slug:"\u30B9\u30C6\u30FC\u30AF\u3092\u7121\u52B9\u306B\u3059\u308B",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u3092\u5F15\u304D\u51FA\u3059",slug:"\u30B9\u30C6\u30FC\u30AF\u3092\u5F15\u304D\u51FA\u3059",children:[]}],path:"/ja/references/staking.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u306E\u5BFE\u8A71",headers:[{level:2,title:"SPL-Tokens \u3092\u59CB\u3081\u308B\u306B\u306F\u4F55\u304C\u5FC5\u8981\u3067\u3059\u304B\uFF1F",slug:"spl-tokens-\u3092\u59CB\u3081\u308B\u306B\u306F\u4F55\u304B\u3099\u5FC5\u8981\u3066\u3099\u3059\u304B",children:[]},{level:2,title:"\u65B0\u3057\u3044\u30C8\u30FC\u30AF\u30F3\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",slug:"\u65B0\u3057\u3044\u30C8\u30FC\u30AF\u30F3\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30DF\u30F3\u30C8\u306E\u5165\u624B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30DF\u30F3\u30C8\u306E\u5165\u624B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u767A\u884C\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u767A\u884C\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u8EE2\u9001\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u8EE2\u9001\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u30D0\u30FC\u30F3\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u30CF\u3099\u30FC\u30F3\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u9589\u3058\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u9589\u3057\u3099\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u307E\u305F\u306Fmint\u306B\u6A29\u9650\u3092\u8A2D\u5B9A\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u307E\u305F\u306Fmint\u306B\u6A29\u9650\u3092\u8A2D\u5B9A\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30C7\u30EA\u30B2\u30FC\u30C8\u3092\u627F\u8A8D\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30C6\u3099\u30EA\u30B1\u3099\u30FC\u30C8\u3092\u627F\u8A8D\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30C7\u30EA\u30B2\u30FC\u30C8\u3092\u53D6\u308A\u6D88\u3059\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30C6\u3099\u30EA\u30B1\u3099\u30FC\u30C8\u3092\u53D6\u308A\u6D88\u3059\u65B9\u6CD5",children:[]},{level:2,title:"wrapped SOL\u306E\u7BA1\u7406\u65B9\u6CD5",slug:"wrapped-sol\u306E\u7BA1\u7406\u65B9\u6CD5",children:[{level:3,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"\u6B8B\u9AD8\u306E\u8FFD\u52A0",slug:"\u6B8B\u9AD8\u306E\u8FFD\u52A0",children:[]}]},{level:2,title:"\u6240\u6709\u8005\u3054\u3068\u306E\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u6240\u6709\u8005\u3053\u3099\u3068\u306E\u3059\u3078\u3099\u3066\u306E\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/token.html",pathLocale:"/ja/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Account Model",slug:"account-model",children:[]},{level:3,title:"Rent",slug:"rent",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/kr/core-concepts/accounts.html",pathLocale:"/kr/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Generating PDAs",slug:"generating-pdas",children:[]},{level:3,title:"Interacting with PDAs",slug:"interacting-with-pdas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/core-concepts/pdas.html",pathLocale:"/kr/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Native Programs & The Solana Program Library (SPL)",slug:"native-programs-the-solana-program-library-spl",children:[]},{level:3,title:"Writing Programs",slug:"writing-programs",children:[]},{level:3,title:"Deploying Programs",slug:"deploying-programs",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/core-concepts/programs.html",pathLocale:"/kr/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Fees",slug:"fees",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/core-concepts/transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Install Web3.js",slug:"install-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/kr/getting-started/installation.html",pathLocale:"/kr/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/kr/guides/account-maps.html",pathLocale:"/kr/",extraFields:[]},{title:"Migrating Program Data Accounts",headers:[{level:2,title:"How can you migrate a program's data accounts?",slug:"how-can-you-migrate-a-program-s-data-accounts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Upgrading the Account",slug:"upgrading-the-account",children:[{level:3,title:"1. Add account conversion logic",slug:"_1-add-account-conversion-logic",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/data-migration.html",pathLocale:"/kr/",extraFields:[]},{title:"Debugging Solana Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Runtime Testing and Debugging in editor",slug:"runtime-testing-and-debugging-in-editor",children:[]},{level:2,title:"Local Validator Node Testing in editor",slug:"local-validator-node-testing-in-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/debugging-solana-programs.html",pathLocale:"/kr/",extraFields:[]},{title:"Feature Parity Testing",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parity Testing",slug:"parity-testing",children:[]},{level:2,title:"Simple Demonstration",slug:"simple-demonstration",children:[{level:3,title:"All features activated",slug:"all-features-activated",children:[]},{level:3,title:"Selective features deactivated",slug:"selective-features-deactivated",children:[]}]},{level:2,title:"Full Parity Testing",slug:"full-parity-testing",children:[]},{level:2,title:"Full Parity Testing Programmatically",slug:"full-parity-testing-programmatically",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/feature-parity-testing.html",pathLocale:"/kr/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/guides/get-program-accounts.html",pathLocale:"/kr/",extraFields:[]},{title:"Retrying Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"The Journey of a Transaction",slug:"the-journey-of-a-transaction",children:[{level:3,title:"How Clients Submit Transactions",slug:"how-clients-submit-transactions",children:[]},{level:3,title:"How RPC Nodes Broadcast Transactions",slug:"how-rpc-nodes-broadcast-transactions",children:[]}]},{level:2,title:"How Transactions Get Dropped",slug:"how-transactions-get-dropped",children:[{level:3,title:"Before a transaction is processed",slug:"before-a-transaction-is-processed",children:[]},{level:3,title:"After a transaction is processed and before it is finalized",slug:"after-a-transaction-is-processed-and-before-it-is-finalized",children:[]}]},{level:2,title:"Handling Dropped Transactions",slug:"handling-dropped-transactions",children:[{level:3,title:"An In-Depth Look at sendTransaction",slug:"an-in-depth-look-at-sendtransaction",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic",slug:"customizing-rebroadcast-logic",children:[{level:3,title:"The Cost of Skipping Preflight",slug:"the-cost-of-skipping-preflight",children:[]},{level:3,title:"When to Re-Sign Transactions",slug:"when-to-re-sign-transactions",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/kr/guides/retrying-transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Serializing Data",headers:[{level:2,title:"Setting up for Borsh Serialization",slug:"setting-up-for-borsh-serialization",children:[]},{level:2,title:"How to serialize instruction data on the client",slug:"how-to-serialize-instruction-data-on-the-client",children:[]},{level:2,title:"How to deserialize instruction data on the program",slug:"how-to-deserialize-instruction-data-on-the-program",children:[]},{level:2,title:"How to serialize account data on the program",slug:"how-to-serialize-account-data-on-the-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"How to deserialize account data on the client",slug:"how-to-deserialize-account-data-on-the-client",children:[]},{level:2,title:"Common Solana TS/JS Mappings",slug:"common-solana-ts-js-mappings",children:[]},{level:2,title:"Advanced Constructs",slug:"advanced-constructs",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/serialization.html",pathLocale:"/kr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"How to create a system account",slug:"how-to-create-a-system-account",children:[]},{level:2,title:"How to calculate account cost",slug:"how-to-calculate-account-cost",children:[]},{level:2,title:"How to create accounts with seeds",slug:"how-to-create-accounts-with-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"How to create PDAs",slug:"how-to-create-pdas",children:[{level:3,title:"Generate a PDA",slug:"generate-a-pda",children:[]},{level:3,title:"Create a PDA",slug:"create-a-pda",children:[]}]},{level:2,title:"How to sign with a PDA",slug:"how-to-sign-with-a-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"How to get program accounts",slug:"how-to-get-program-accounts",children:[]},{level:2,title:"How to close accounts",slug:"how-to-close-accounts",children:[]},{level:2,title:"How to get account balance",slug:"how-to-get-account-balance",children:[]}],path:"/kr/references/accounts.html",pathLocale:"/kr/",extraFields:[]},{title:"Sending Transactions",headers:[{level:2,title:"How to send SOL",slug:"how-to-send-sol",children:[]},{level:2,title:"How to send SPL-Tokens",slug:"how-to-send-spl-tokens",children:[]},{level:2,title:"How to calculate transaction cost",slug:"how-to-calculate-transaction-cost",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"How to add a memo to a transaction",slug:"how-to-add-a-memo-to-a-transaction",children:[]},{level:2,title:"How to change compute budget, fee, & priority for a transaction",slug:"how-to-change-compute-budget-fee-priority-for-a-transaction",children:[]}],path:"/kr/references/basic-transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"How to generate a new Keypair",slug:"how-to-generate-a-new-keypair",children:[]},{level:2,title:"How to restore a Keypair from a secret",slug:"how-to-restore-a-keypair-from-a-secret",children:[]},{level:2,title:"How to verify a Keypair",slug:"how-to-verify-a-keypair",children:[]},{level:2,title:"How to check if a public key has an associated private key",slug:"how-to-check-if-a-public-key-has-an-associated-private-key",children:[]},{level:2,title:"How to generate a mnemonic phrase",slug:"how-to-generate-a-mnemonic-phrase",children:[]},{level:2,title:"How to restore a Keypair from a mnemonic phrase",slug:"how-to-restore-a-keypair-from-a-mnemonic-phrase",children:[]},{level:2,title:"How to generate a vanity address",slug:"how-to-generate-a-vanity-address",children:[]},{level:2,title:"How to sign and verify messages with wallets",slug:"how-to-sign-and-verify-messages-with-wallets",children:[]},{level:2,title:"How to connect to a wallet",slug:"how-to-connect-to-a-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/kr/references/keypairs-and-wallets.html",pathLocale:"/kr/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"Starting a Local Validator",slug:"starting-a-local-validator",children:[]},{level:2,title:"Connecting to Environments",slug:"connecting-to-environments",children:[]},{level:2,title:"Subscribing to Events",slug:"subscribing-to-events",children:[]},{level:2,title:"Getting Test SOL",slug:"getting-test-sol",children:[]},{level:2,title:"Using Mainnet Accounts and Programs",slug:"using-mainnet-accounts-and-programs",children:[{level:3,title:"How to load accounts from mainnet",slug:"how-to-load-accounts-from-mainnet",children:[]},{level:3,title:"How to load programs from mainnet",slug:"how-to-load-programs-from-mainnet",children:[]}]}],path:"/kr/references/local-development.html",pathLocale:"/kr/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"Find all the domain names owned by a public key",slug:"find-all-the-domain-names-owned-by-a-public-key",children:[]},{level:2,title:"Resolve a Twitter handle",slug:"resolve-a-twitter-handle",children:[]},{level:2,title:"Reverse look up of a Twitter handle",slug:"reverse-look-up-of-a-twitter-handle",children:[]}],path:"/kr/references/name-service.html",pathLocale:"/kr/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"How to create an NFT",slug:"how-to-create-an-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint the NFT",slug:"mint-the-nft",children:[]}]},{level:2,title:"How to get NFT Metadata",slug:"how-to-get-nft-metadata",children:[]},{level:2,title:"How to get the owner of an NFT",slug:"how-to-get-the-owner-of-an-nft",children:[]},{level:2,title:"How to get NFT Mint Addresses",slug:"how-to-get-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"How to get all NFTs from a wallet?",slug:"how-to-get-all-nfts-from-a-wallet",children:[]}],path:"/kr/references/nfts.html",pathLocale:"/kr/",extraFields:[]},{title:"Sending Offline Transactions",headers:[{level:2,title:"Sign Transaction",slug:"sign-transaction",children:[]},{level:2,title:"Partial Sign Transaction",slug:"partial-sign-transaction",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Create Nonce Account",slug:"create-nonce-account",children:[]},{level:3,title:"Get Nonce Account",slug:"get-nonce-account",children:[]},{level:3,title:"Use Nonce Account",slug:"use-nonce-account",children:[]}]}],path:"/kr/references/offline-transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Writing Programs",headers:[{level:2,title:"How to transfer SOL in a program",slug:"how-to-transfer-sol-in-a-program",children:[]},{level:2,title:"How to get clock in a program",slug:"how-to-get-clock-in-a-program",children:[{level:3,title:"Passing Clock as an account inside an instruction",slug:"passing-clock-as-an-account-inside-an-instruction",children:[]},{level:3,title:"Accessing Clock directly inside an instruction",slug:"accessing-clock-directly-inside-an-instruction",children:[]}]},{level:2,title:"How to change account size",slug:"how-to-change-account-size",children:[]},{level:2,title:"How to do Cross Program Invocation",slug:"how-to-do-cross-program-invocation",children:[]},{level:2,title:"How to create a PDA",slug:"how-to-create-a-pda",children:[]},{level:2,title:"How to read accounts",slug:"how-to-read-accounts",children:[]},{level:2,title:"How to verify accounts",slug:"how-to-verify-accounts",children:[]},{level:2,title:"How to read multiple instructions from a transaction",slug:"how-to-read-multiple-instructions-from-a-transaction",children:[]}],path:"/kr/references/programs.html",pathLocale:"/kr/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Get Current Validators",slug:"get-current-validators",children:[]},{level:2,title:"Create Stake Account",slug:"create-stake-account",children:[]},{level:2,title:"Delegate Stake",slug:"delegate-stake",children:[]},{level:2,title:"Get Delegator by Validators",slug:"get-delegator-by-validators",children:[]},{level:2,title:"Deactivate Stake",slug:"deactivate-stake",children:[]},{level:2,title:"Withdraw Stake",slug:"withdraw-stake",children:[]}],path:"/kr/references/staking.html",pathLocale:"/kr/",extraFields:[]},{title:"Interacting with Tokens",headers:[{level:2,title:"What do I need to get started with SPL-Tokens?",slug:"what-do-i-need-to-get-started-with-spl-tokens",children:[]},{level:2,title:"How to create a new Token",slug:"how-to-create-a-new-token",children:[]},{level:2,title:"How to get a token mint",slug:"how-to-get-a-token-mint",children:[]},{level:2,title:"How to create a token account",slug:"how-to-create-a-token-account",children:[]},{level:2,title:"How to get a Token Account",slug:"how-to-get-a-token-account",children:[]},{level:2,title:"How to get a token account's balance",slug:"how-to-get-a-token-account-s-balance",children:[]},{level:2,title:"How to mint tokens",slug:"how-to-mint-tokens",children:[]},{level:2,title:"How to transfer tokens",slug:"how-to-transfer-tokens",children:[]},{level:2,title:"How to burn tokens",slug:"how-to-burn-tokens",children:[]},{level:2,title:"How to close token accounts",slug:"how-to-close-token-accounts",children:[]},{level:2,title:"How to set authority on token accounts or mints",slug:"how-to-set-authority-on-token-accounts-or-mints",children:[]},{level:2,title:"How to approve a token delegate",slug:"how-to-approve-a-token-delegate",children:[]},{level:2,title:"How to revoke a token delegate",slug:"how-to-revoke-a-token-delegate",children:[]},{level:2,title:"How to manage wrapped SOL",slug:"how-to-manage-wrapped-sol",children:[{level:3,title:"Create Token Account",slug:"create-token-account",children:[]},{level:3,title:"Add Balance",slug:"add-balance",children:[]}]},{level:2,title:"How to get all token accounts by owner",slug:"how-to-get-all-token-accounts-by-owner",children:[]}],path:"/kr/references/token.html",pathLocale:"/kr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"Account Model",slug:"account-model",children:[]},{level:3,title:"Rent (\u0E04\u0E48\u0E32\u0E40\u0E0A\u0E48\u0E32)",slug:"rent-\u0E04\u0E48\u0E32\u0E40\u0E0A\u0E48\u0E32",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/th/core-concepts/accounts.html",pathLocale:"/th/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 PDAs",slug:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07-pdas",children:[]},{level:3,title:"\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 PDAs",slug:"\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19-pdas",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/core-concepts/pdas.html",pathLocale:"/th/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"Native Programs \u0E41\u0E25\u0E30 The Solana Program Library (SPL)",slug:"native-programs-\u0E41\u0E25\u0E30-the-solana-program-library-spl",children:[]},{level:3,title:"\u0E40\u0E02\u0E35\u0E22\u0E19 Programs",slug:"\u0E40\u0E02\u0E35\u0E22\u0E19-programs",children:[]},{level:3,title:"Deploying Programs",slug:"deploying-programs",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/core-concepts/programs.html",pathLocale:"/th/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"\u0E04\u0E48\u0E32\u0E18\u0E23\u0E23\u0E21\u0E40\u0E19\u0E35\u0E22\u0E21 (Fees)",slug:"\u0E04\u0E48\u0E32\u0E18\u0E23\u0E23\u0E21\u0E40\u0E19\u0E35\u0E22\u0E21-fees",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/core-concepts/transactions.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",headers:[{level:2,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 Web3.js",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 Rust",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-rust",children:[]},{level:2,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 CLI",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/th/getting-started/installation.html",pathLocale:"/th/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/th/guides/account-maps.html",pathLocale:"/th/",extraFields:[]},{title:"Migrating Program Data Accounts",headers:[{level:2,title:"\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 migrate program's data accounts \u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07?",slug:"\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16-migrate-program-s-data-accounts-\u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07",children:[]},{level:2,title:"\u0E2A\u0E16\u0E32\u0E19\u0E01\u0E32\u0E23\u0E13\u0E4C (Scenario)",slug:"\u0E2A\u0E16\u0E32\u0E19\u0E01\u0E32\u0E23\u0E13\u0E4C-scenario",children:[]},{level:2,title:"Upgrading the Account",slug:"upgrading-the-account",children:[{level:3,title:"1. Add account conversion logic",slug:"_1-add-account-conversion-logic",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/data-migration.html",pathLocale:"/th/",extraFields:[]},{title:"Debugging Solana Programs",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"Runtime Testing \u0E41\u0E25\u0E30 Debugging \u0E43\u0E19 editor",slug:"runtime-testing-\u0E41\u0E25\u0E30-debugging-\u0E43\u0E19-editor",children:[]},{level:2,title:"\u0E17\u0E14\u0E2A\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22 Local Validator Node \u0E43\u0E19 editor",slug:"\u0E17\u0E14\u0E2A\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22-local-validator-node-\u0E43\u0E19-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/debugging-solana-programs.html",pathLocale:"/th/",extraFields:[]},{title:"Feature Parity Testing",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parity Testing",slug:"parity-testing",children:[]},{level:2,title:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22\u0E46",slug:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22\u0E46",children:[{level:3,title:"\u0E40\u0E1B\u0E34\u0E14\u0E17\u0E38\u0E01 features",slug:"\u0E40\u0E1B\u0E34\u0E14\u0E17\u0E38\u0E01-features",children:[]},{level:3,title:"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E34\u0E14 features",slug:"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E34\u0E14-features",children:[]}]},{level:2,title:"Feature Parity Testing",slug:"feature-parity-testing",children:[]},{level:2,title:"Full Parity Testing Programmatically",slug:"full-parity-testing-programmatically",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/feature-parity-testing.html",pathLocale:"/th/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/guides/get-program-accounts.html",pathLocale:"/th/",extraFields:[]},{title:"Retrying Transactions",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E01\u0E32\u0E23\u0E40\u0E14\u0E34\u0E19\u0E17\u0E32\u0E07\u0E02\u0E2D\u0E07 Transaction",slug:"\u0E01\u0E32\u0E23\u0E40\u0E14\u0E34\u0E19\u0E17\u0E32\u0E07\u0E02\u0E2D\u0E07-transaction",children:[{level:3,title:"Clients Submit Transactions \u0E22\u0E31\u0E07\u0E44\u0E07",slug:"clients-submit-transactions-\u0E22\u0E31\u0E07\u0E44\u0E07",children:[]},{level:3,title:"RPC Nodes Broadcast Transactions \u0E22\u0E31\u0E07\u0E44\u0E07",slug:"rpc-nodes-broadcast-transactions-\u0E22\u0E31\u0E07\u0E44\u0E07",children:[]}]},{level:2,title:"Transactions \u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07",slug:"transactions-\u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07",children:[{level:3,title:"\u0E01\u0E48\u0E2D\u0E19 transaction \u0E08\u0E30\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08",slug:"\u0E01\u0E48\u0E2D\u0E19-transaction-\u0E08\u0E30\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08",children:[]},{level:3,title:"\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01 transaction \u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08 \u0E41\u0E25\u0E30\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30 finalized",slug:"\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01-transaction-\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08-\u0E41\u0E25\u0E30\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30-finalized",children:[]}]},{level:2,title:"\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 Transactions \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07",slug:"\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23-transactions-\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07",children:[{level:3,title:"sendTransaction \u0E40\u0E0A\u0E34\u0E07\u0E25\u0E36\u0E01",slug:"sendtransaction-\u0E40\u0E0A\u0E34\u0E07\u0E25\u0E36\u0E01",children:[]}]},{level:2,title:"\u0E17\u0E33 Rebroadcast Logic \u0E40\u0E2D\u0E07",slug:"\u0E17\u0E4D\u0E32-rebroadcast-logic-\u0E40\u0E2D\u0E07",children:[{level:3,title:"\u0E08\u0E30\u0E40\u0E01\u0E34\u0E14\u0E2D\u0E30\u0E44\u0E23\u0E02\u0E36\u0E49\u0E19\u0E16\u0E49\u0E32 Skip Preflight",slug:"\u0E08\u0E30\u0E40\u0E01\u0E34\u0E14\u0E2D\u0E30\u0E44\u0E23\u0E02\u0E36\u0E49\u0E19\u0E16\u0E49\u0E32-skip-preflight",children:[]},{level:3,title:"Re-Sign Transactions \u0E40\u0E21\u0E37\u0E48\u0E2D\u0E44\u0E2B\u0E23\u0E48\u0E14\u0E35",slug:"re-sign-transactions-\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E44\u0E2B\u0E23\u0E48\u0E14\u0E35",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/th/guides/retrying-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"Serializing Data",headers:[{level:2,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A Borsh Serialization",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-borsh-serialization",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 serialize instruction data \u0E17\u0E35\u0E48 client",slug:"\u0E27\u0E34\u0E18\u0E35-serialize-instruction-data-\u0E17\u0E35\u0E48-client",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 deserialize instruction data \u0E43\u0E19 program",slug:"\u0E27\u0E34\u0E18\u0E35-deserialize-instruction-data-\u0E43\u0E19-program",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 serialize account data \u0E43\u0E19 program",slug:"\u0E27\u0E34\u0E18\u0E35-serialize-account-data-\u0E43\u0E19-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 deserialize account data \u0E17\u0E35\u0E48 client",slug:"\u0E27\u0E34\u0E18\u0E35-deserialize-account-data-\u0E17\u0E35\u0E48-client",children:[]},{level:2,title:"Solana TS/JS Mappings \u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B",slug:"solana-ts-js-mappings-\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B",children:[]},{level:2,title:"Advanced Constructs",slug:"advanced-constructs",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/serialization.html",pathLocale:"/th/",extraFields:[]},{title:"Versioned Transactions",headers:[{level:2,title:"Facts (\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49)",slug:"facts-\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"Legacy Transaction",slug:"legacy-transaction",children:[]},{level:2,title:"Legacy Message",slug:"legacy-message",children:[{level:3,title:"Header",slug:"header",children:[]},{level:3,title:"Compact-array \u0E02\u0E2D\u0E07 account addresses",slug:"compact-array-\u0E02\u0E2D\u0E07-account-addresses",children:[]},{level:3,title:"Compact array \u0E02\u0E2D\u0E07 instructions",slug:"compact-array-\u0E02\u0E2D\u0E07-instructions",children:[]}]},{level:2,title:"\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E02\u0E2D\u0E07 Legacy Transactions",slug:"\u0E02\u0E49\u0E2D\u0E08\u0E4D\u0E32\u0E01\u0E31\u0E14\u0E02\u0E2D\u0E07-legacy-transactions",children:[]},{level:2,title:"Address Lookup Tables (LUT)",slug:"address-lookup-tables-lut",children:[]},{level:2,title:"Versioned Transactions: TransactionV0",slug:"versioned-transactions-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Compact array \u0E02\u0E2D\u0E07 address table lookups",slug:"compact-array-\u0E02\u0E2D\u0E07-address-table-lookups",children:[]},{level:3,title:"Compact array \u0E02\u0E2D\u0E07 instructions",slug:"compact-array-\u0E02\u0E2D\u0E07-instructions-1",children:[]}]},{level:2,title:"RPC Changes",slug:"rpc-changes",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",children:[]},{level:2,title:"\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07",slug:"\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07",children:[]}],path:"/th/guides/versioned-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19",headers:[{level:2,title:"Composability \u0E04\u0E37\u0E2D\u0E2B\u0E31\u0E27\u0E43\u0E08",slug:"composability-\u0E04\u0E37\u0E2D\u0E2B\u0E31\u0E27\u0E43\u0E08",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/th/integrations/",pathLocale:"/th/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",children:[]},{level:3,title:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 Token \u0E08\u0E32\u0E01 Jupiter",slug:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23-token-\u0E08\u0E32\u0E01-jupiter",children:[]},{level:3,title:"Loading the Jupiter instance",slug:"loading-the-jupiter-instance",children:[]},{level:3,title:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07 RouteMap",slug:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07-routemap",children:[]},{level:3,title:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A Input \u0E41\u0E25\u0E30 Output token \u0E17\u0E35\u0E48\u0E43\u0E2B\u0E49\u0E21\u0E32",slug:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-input-\u0E41\u0E25\u0E30-output-token-\u0E17\u0E35\u0E48\u0E43\u0E2B\u0E49\u0E21\u0E32",children:[]},{level:3,title:"Execute the Token Swap",slug:"execute-the-token-swap",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Jupiter \u0E01\u0E31\u0E1A React Application",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-jupiter-\u0E01\u0E31\u0E1A-react-application",children:[{level:3,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",children:[]},{level:3,title:"\u0E40\u0E1E\u0E34\u0E48\u0E21 Provider",slug:"\u0E40\u0E1E\u0E34\u0E48\u0E21-provider",children:[]},{level:3,title:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 Tokens",slug:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23-tokens",children:[]},{level:3,title:"\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 State",slug:"\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32-state",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 react hook useJupiter",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-react-hook-usejupiter",children:[]},{level:3,title:"\u0E17\u0E33\u0E01\u0E32\u0E23 Swap",slug:"\u0E17\u0E4D\u0E32\u0E01\u0E32\u0E23-swap",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 use Jupiter API",slug:"\u0E27\u0E34\u0E18\u0E35-use-jupiter-api",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-1",children:[]},{level:3,title:"\u0E2B\u0E32 Route Map",slug:"\u0E2B\u0E32-route-map",children:[]},{level:3,title:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E33 Serialized Transaction \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E2D\u0E32\u0E44\u0E1B Swap",slug:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E4D\u0E32-serialized-transaction-\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E2D\u0E32\u0E44\u0E1B-swap",children:[]},{level:3,title:"\u0E17\u0E33\u0E01\u0E32\u0E23 Swap Transaction",slug:"\u0E17\u0E4D\u0E32\u0E01\u0E32\u0E23-swap-transaction",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/jupiter.html",pathLocale:"/th/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Mango Group",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-mango-group",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Mango Account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-mango-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E1D\u0E32\u0E01 (deposit) USDC \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19 Mango Account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E1D\u0E32\u0E01-deposit-usdc-\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19-mango-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07 spot order",slug:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-spot-order",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 load bids",slug:"\u0E27\u0E34\u0E18\u0E35-load-bids",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22 (asks)",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22-asks",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/mango.html",pathLocale:"/th/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Pyth \u0E08\u0E32\u0E01 Client",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-pyth-\u0E08\u0E32\u0E01-client",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Pyth \u0E14\u0E49\u0E27\u0E22 Anchor",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-pyth-\u0E14\u0E49\u0E27\u0E22-anchor",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/pyth.html",pathLocale:"/th/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 @solana/web3.js \u0E43\u0E19 React Native app",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-solana-web3-js-\u0E43\u0E19-react-native-app",children:[{level:3,title:"\u0E2A\u0E23\u0E49\u0E32\u0E07 app \u0E43\u0E2B\u0E21\u0E48",slug:"\u0E2A\u0E23\u0E49\u0E32\u0E07-app-\u0E43\u0E2B\u0E21\u0E48",children:[]},{level:3,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 dependencies",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-dependencies",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update metro.config.js",slug:"update-metro-config-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 cocoapods",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-cocoapods",children:[]},{level:3,title:"Start application",slug:"start-application",children:[]}]},{level:2,title:"Solana DApp Scaffold \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A React Native",slug:"solana-dapp-scaffold-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-react-native",children:[]},{level:2,title:"\u0E1B\u0E31\u0E0D\u0E2B\u0E32\u0E17\u0E35\u0E48\u0E40\u0E08\u0E2D\u0E1A\u0E48\u0E2D\u0E22\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E43\u0E0A\u0E49 @solana/web3.js \u0E01\u0E31\u0E1A React Native app",slug:"\u0E1B\u0E31\u0E0D\u0E2B\u0E32\u0E17\u0E35\u0E48\u0E40\u0E08\u0E2D\u0E1A\u0E48\u0E2D\u0E22\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E43\u0E0A\u0E49-solana-web3-js-\u0E01\u0E31\u0E1A-react-native-app",children:[{level:3,title:"Error: While trying to resolve module superstruct from file",slug:"error-while-trying-to-resolve-module-superstruct-from-file",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/th/integrations/react-native.html",pathLocale:"/th/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Serum market",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-market",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Serum order books",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-order-books",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 open orders \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",children:[]}],path:"/th/integrations/serum.html",pathLocale:"/th/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 fully managed token",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-fully-managed-token",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 buy \u0E41\u0E25\u0E30 sell a token",slug:"\u0E27\u0E34\u0E18\u0E35-buy-\u0E41\u0E25\u0E30-sell-a-token",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 bootstrap liquidity",slug:"\u0E27\u0E34\u0E18\u0E35-bootstrap-liquidity",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/strata.html",pathLocale:"/th/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E32\u0E01 aggregator feed",slug:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E32\u0E01-aggregator-feed",children:[]},{level:3,title:"Create a new aggregator feed",slug:"create-a-new-aggregator-feed",children:[]},{level:3,title:"Read data from an aggregator feed in program",slug:"read-data-from-an-aggregator-feed-in-program",children:[]},{level:3,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Feed \u0E08\u0E32\u0E01 Publisher",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-feed-\u0E08\u0E32\u0E01-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"\u0E2A\u0E23\u0E49\u0E32\u0E07 oracle",slug:"\u0E2A\u0E23\u0E49\u0E32\u0E07-oracle",children:[]},{level:3,title:"Run an oracle locally",slug:"run-an-oracle-locally",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifiable Random Function(VRF)",slug:"verifiable-random-function-vrf",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19 VRF account",slug:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19-vrf-account",children:[]},{level:3,title:"Creating a VRF account",slug:"creating-a-vrf-account",children:[]},{level:3,title:"\u0E02\u0E2D Randomness \u0E08\u0E32\u0E01 vrf account",slug:"\u0E02\u0E2D-randomness-\u0E08\u0E32\u0E01-vrf-account",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E23\u0E39\u0E49",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E23\u0E39\u0E49",children:[{level:3,title:"APIs \u0E41\u0E25\u0E30 Libraries",slug:"apis-\u0E41\u0E25\u0E30-libraries",children:[]},{level:3,title:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07",slug:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07",children:[]},{level:3,title:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",slug:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",children:[]}]}],path:"/th/integrations/switchboard.html",pathLocale:"/th/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"wallet \u0E04\u0E37\u0E2D\u0E2D\u0E30\u0E44\u0E23?",slug:"wallet-\u0E04\u0E37\u0E2D\u0E2D\u0E30\u0E44\u0E23",children:[]},{level:2,title:"Social Logins \u0E1A\u0E19 Solana",slug:"social-logins-\u0E1A\u0E19-solana",children:[]},{level:2,title:"\u0E41\u0E19\u0E27\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23 Integration",slug:"\u0E41\u0E19\u0E27\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23-integration",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 Dependencies",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-dependencies",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 SDK \u0E41\u0E25\u0E30 initialize",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-sdk-\u0E41\u0E25\u0E30-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E0A\u0E49 torus instance \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14 user account",slug:"\u0E01\u0E32\u0E23\u0E0A\u0E49-torus-instance-\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14-user-account",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 Torus Solana API \u0E40\u0E1E\u0E37\u0E48\u0E2D sign message.",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-torus-solana-api-\u0E40\u0E1E\u0E37\u0E48\u0E2D-sign-message",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 torus Solana API \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E48\u0E07 transaction.\u200B",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-torus-solana-api-\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E48\u0E07-transaction-\u200B",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/integrations/web3auth.html",pathLocale:"/th/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 system account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-system-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E33\u0E19\u0E27\u0E13 account cost",slug:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E4D\u0E32\u0E19\u0E27\u0E13-account-cost",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 accounts \u0E14\u0E49\u0E27\u0E22 seeds",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-accounts-\u0E14\u0E49\u0E27\u0E22-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 PDAs",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-pdas",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 PDA",slug:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07-pda",children:[]},{level:3,title:"\u0E28\u0E23\u0E49\u0E32\u0E07 PDA",slug:"\u0E28\u0E23\u0E49\u0E32\u0E07-pda",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 sign \u0E14\u0E49\u0E27\u0E22 PDA",slug:"\u0E27\u0E34\u0E18\u0E35-sign-\u0E14\u0E49\u0E27\u0E22-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 program accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-program-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14 accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 account balance",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-account-balance",children:[]}],path:"/th/references/accounts.html",pathLocale:"/th/",extraFields:[]},{title:"Sending Transactions",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35 send SOL",slug:"\u0E27\u0E34\u0E18\u0E35-send-sol",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 send SPL-Tokens",slug:"\u0E27\u0E34\u0E18\u0E35-send-spl-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E33\u0E19\u0E27\u0E13\u0E2B\u0E32 transaction cost",slug:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E4D\u0E32\u0E19\u0E27\u0E13\u0E2B\u0E32-transaction-cost",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1E\u0E34\u0E48\u0E21 memo \u0E43\u0E19 transaction",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1E\u0E34\u0E48\u0E21-memo-\u0E43\u0E19-transaction",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A transaction",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-compute-budget-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-transaction",children:[]}],path:"/th/references/basic-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"Keypairs \u0E41\u0E25\u0E30 Wallets",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Keypair \u0E43\u0E2B\u0E21\u0E48",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-keypair-\u0E43\u0E2B\u0E21\u0E48",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 restore a Keypair from a secret",slug:"\u0E27\u0E34\u0E18\u0E35-restore-a-keypair-from-a-secret",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 verify a Keypair",slug:"\u0E27\u0E34\u0E18\u0E35-verify-a-keypair",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 check if a public key has an associated private key",slug:"\u0E27\u0E34\u0E18\u0E35-check-if-a-public-key-has-an-associated-private-key",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 generate a mnemonic phrase",slug:"\u0E27\u0E34\u0E18\u0E35-generate-a-mnemonic-phrase",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E01\u0E39\u0E49 Keypair \u0E08\u0E32\u0E01 mnemonic phrase",slug:"\u0E27\u0E34\u0E18\u0E35\u0E01\u0E39\u0E49-keypair-\u0E08\u0E32\u0E01-mnemonic-phrase",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 generate a vanity address",slug:"\u0E27\u0E34\u0E18\u0E35-generate-a-vanity-address",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 sign \u0E41\u0E25\u0E30 verify messages with wallets",slug:"\u0E27\u0E34\u0E18\u0E35-sign-\u0E41\u0E25\u0E30-verify-messages-with-wallets",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A wallet",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/th/references/keypairs-and-wallets.html",pathLocale:"/th/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E43\u0E0A\u0E49 Local Validator",slug:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E43\u0E0A\u0E49-local-validator",children:[]},{level:2,title:"Connecting to Environments",slug:"connecting-to-environments",children:[]},{level:2,title:"Subscribing to Events",slug:"subscribing-to-events",children:[]},{level:2,title:"Getting Test SOL",slug:"getting-test-sol",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Mainnet Accounts \u0E41\u0E25\u0E30 Programs",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-mainnet-accounts-\u0E41\u0E25\u0E30-programs",children:[{level:3,title:"\u0E27\u0E34\u0E18\u0E35 load accounts \u0E08\u0E32\u0E01 mainnet",slug:"\u0E27\u0E34\u0E18\u0E35-load-accounts-\u0E08\u0E32\u0E01-mainnet",children:[]},{level:3,title:"\u0E27\u0E34\u0E18\u0E35 load programs from mainnet",slug:"\u0E27\u0E34\u0E18\u0E35-load-programs-from-mainnet",children:[]}]}],path:"/th/references/local-development.html",pathLocale:"/th/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"\u0E2B\u0E32\u0E17\u0E38\u0E01 domain names \u0E17\u0E35\u0E48 public key \u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07",slug:"\u0E2B\u0E32\u0E17\u0E38\u0E01-domain-names-\u0E17\u0E35\u0E48-public-key-\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07",children:[]},{level:2,title:"Resolve a Twitter handle",slug:"resolve-a-twitter-handle",children:[]},{level:2,title:"Reverse look up of a Twitter handle",slug:"reverse-look-up-of-a-twitter-handle",children:[]}],path:"/th/references/name-service.html",pathLocale:"/th/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 an NFT",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-an-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint the NFT",slug:"mint-the-nft",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 NFT Metadata",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-nft-metadata",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07 (owner) \u0E02\u0E2D\u0E07 NFT",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07-owner-\u0E02\u0E2D\u0E07-nft",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 NFT Mint Addresses",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01 NFTs \u0E08\u0E32\u0E01 wallet?",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01-nfts-\u0E08\u0E32\u0E01-wallet",children:[]}],path:"/th/references/nfts.html",pathLocale:"/th/",extraFields:[]},{title:"Sending Offline Transactions",headers:[{level:2,title:"Sign Transaction",slug:"sign-transaction",children:[]},{level:2,title:"Partial Sign Transaction",slug:"partial-sign-transaction",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Create Nonce Account",slug:"create-nonce-account",children:[]},{level:3,title:"Get Nonce Account",slug:"get-nonce-account",children:[]},{level:3,title:"Use Nonce Account",slug:"use-nonce-account",children:[]}]}],path:"/th/references/offline-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E40\u0E02\u0E35\u0E22\u0E19 Programs",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35 transfer SOL in a program",slug:"\u0E27\u0E34\u0E18\u0E35-transfer-sol-in-a-program",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 (clock) \u0E43\u0E19 program",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32-clock-\u0E43\u0E19-program",children:[{level:3,title:"\u0E2A\u0E48\u0E07 Clock \u0E43\u0E19\u0E41\u0E1A\u0E1A account \u0E20\u0E32\u0E22\u0E43\u0E19 instruction",slug:"\u0E2A\u0E48\u0E07-clock-\u0E43\u0E19\u0E41\u0E1A\u0E1A-account-\u0E20\u0E32\u0E22\u0E43\u0E19-instruction",children:[]},{level:3,title:"\u0E43\u0E0A\u0E49 Clock \u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E43\u0E19 instruction",slug:"\u0E43\u0E0A\u0E49-clock-\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E43\u0E19-instruction",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 account size",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-account-size",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E33 Cross Program Invocation",slug:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E4D\u0E32-cross-program-invocation",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 PDA",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-pda",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19 accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19 instructions \u0E2B\u0E25\u0E32\u0E22\u0E46 \u0E15\u0E31\u0E27\u0E08\u0E32\u0E01 transaction",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19-instructions-\u0E2B\u0E25\u0E32\u0E22\u0E46-\u0E15\u0E31\u0E27\u0E08\u0E32\u0E01-transaction",children:[]}],path:"/th/references/programs.html",pathLocale:"/th/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Validators \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",slug:"\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-validators-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",children:[]},{level:2,title:"\u0E2A\u0E23\u0E49\u0E32\u0E07 Stake Account",slug:"\u0E2A\u0E23\u0E49\u0E32\u0E07-stake-account",children:[]},{level:2,title:"Delegate Stake",slug:"delegate-stake",children:[]},{level:2,title:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Delegator \u0E14\u0E49\u0E27\u0E22 Validators",slug:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-delegator-\u0E14\u0E49\u0E27\u0E22-validators",children:[]},{level:2,title:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 Stake",slug:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01-stake",children:[]},{level:2,title:"\u0E16\u0E2D\u0E19 Stake",slug:"\u0E16\u0E2D\u0E19-stake",children:[]}],path:"/th/references/staking.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 Tokens",headers:[{level:2,title:"\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E2D\u0E30\u0E44\u0E23\u0E1A\u0E49\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30\u0E44\u0E1B\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 SPL-Tokens?",slug:"\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E2D\u0E30\u0E44\u0E23\u0E1A\u0E49\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30\u0E44\u0E1B\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19-spl-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Token \u0E43\u0E2B\u0E21\u0E48",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-token-\u0E43\u0E2B\u0E21\u0E48",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 token mint",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-token-mint",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 token account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-token-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Token Account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-token-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 balance \u0E02\u0E2D\u0E07 token account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-balance-\u0E02\u0E2D\u0E07-token-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 mint tokens",slug:"\u0E27\u0E34\u0E18\u0E35-mint-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E48\u0E07 tokens",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E48\u0E07-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E33\u0E25\u0E32\u0E22 (burn) tokens",slug:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E4D\u0E32\u0E25\u0E32\u0E22-burn-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14 token accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14-token-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07 authority \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A token accounts \u0E2B\u0E23\u0E37\u0E2D mints",slug:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-authority-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-token-accounts-\u0E2B\u0E23\u0E37\u0E2D-mints",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34 (approve) token \u0E43\u0E2B\u0E49 delegate \u0E44\u0E14\u0E49",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34-approve-token-\u0E43\u0E2B\u0E49-delegate-\u0E44\u0E14\u0E49",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 (revoke) token \u0E17\u0E35\u0E48 delegate \u0E44\u0E27\u0E49",slug:"\u0E27\u0E34\u0E18\u0E35\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01-revoke-token-\u0E17\u0E35\u0E48-delegate-\u0E44\u0E27\u0E49",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 wrapped SOL",slug:"\u0E27\u0E34\u0E18\u0E35\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23-wrapped-sol",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 Token Account",slug:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07-token-account",children:[]},{level:3,title:"\u0E40\u0E1E\u0E34\u0E48\u0E21 Balance",slug:"\u0E40\u0E1E\u0E34\u0E48\u0E21-balance",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01\u0E46 token accounts \u0E15\u0E32\u0E21 owner",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01\u0E46-token-accounts-\u0E15\u0E32\u0E21-owner",children:[]}],path:"/th/references/token.html",pathLocale:"/th/",extraFields:[]},{title:"Accounts (Account\u2019lar)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Account Model (Account Modeli)",slug:"account-model-account-modeli",children:[]},{level:3,title:"Rent",slug:"rent",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[{level:3,title:"Referans",slug:"referans",children:[]}]}],path:"/tr/core-concepts/accounts.html",pathLocale:"/tr/",extraFields:[]},{title:"Program Derived Addresses (PDAs) (Programdan T\xFCretilmi\u015F Adresler)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Generating PDAs (PDA\u2019lar Olu\u015Fturma)",slug:"generating-pdas-pda-lar-olusturma",children:[]},{level:3,title:"Interacting with PDAs (PDA\u2019lar ile Etkile\u015Fim)",slug:"interacting-with-pdas-pda-lar-ile-etkilesim",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[]}],path:"/tr/core-concepts/pdas.html",pathLocale:"/tr/",extraFields:[]},{title:"Programs (Programlar)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Native Program\u2019lar & Solana Program Library (SPL)",slug:"native-program-lar-solana-program-library-spl",children:[]},{level:3,title:"Writing Programs (Program Yazma)",slug:"writing-programs-program-yazma",children:[]},{level:3,title:"Deploying Programs (Programlar\u0131 \xC7al\u0131\u015Ft\u0131rma)",slug:"deploying-programs-programlar\u0131-cal\u0131st\u0131rma",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[]}],path:"/tr/core-concepts/programs.html",pathLocale:"/tr/",extraFields:[]},{title:"Transactions (\u0130\u015Flemler)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Fees (\xDCcretler)",slug:"fees-ucretler",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[]}],path:"/tr/core-concepts/transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Install Web3.js (Web3.js Kurulumu)",slug:"install-web3-js-web3-js-kurulumu",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet Adapter (C\xFCzdan Adapt\xF6r\xFC)",slug:"wallet-adapter-cuzdan-adaptoru",children:[]}]},{level:2,title:"Install Rust (Rust Kurulumu)",slug:"install-rust-rust-kurulumu",children:[]},{level:2,title:"Install CLI (CLI Kurulumu)",slug:"install-cli-cli-kurulumu",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source (Kaynaktan Derleme)",slug:"build-from-source-kaynaktan-derleme",children:[]}]}],path:"/tr/getting-started/installation.html",pathLocale:"/tr/",extraFields:[]},{title:"Account Maps (Hesap Haritalar\u0131)",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/tr/guides/account-maps.html",pathLocale:"/tr/",extraFields:[]},{title:"Migrating a Programs Data Accounts (Programlar\u0131n Data Account\u2019lar\u0131n\u0131 Ta\u015F\u0131ma)",headers:[{level:2,title:"How can you migrate a program's data accounts? (Programlar\u0131n veri account\u2019lar\u0131 nas\u0131l ta\u015F\u0131n\u0131r)",slug:"how-can-you-migrate-a-program-s-data-accounts-programlar\u0131n-veri-account-lar\u0131-nas\u0131l-tas\u0131n\u0131r",children:[]},{level:2,title:"Scenario (Senaryo)",slug:"scenario-senaryo",children:[]},{level:2,title:"Upgrading the Account (Account\u2019\u0131 Y\xFCkseltme)",slug:"upgrading-the-account-account-\u0131-yukseltme",children:[{level:3,title:"1. Add account conversion logic (Hesap d\xF6n\xFC\u015Ft\xFCrme mant\u0131\u011F\u0131 ekleme)",slug:"_1-add-account-conversion-logic-hesap-donusturme-mant\u0131g\u0131-ekleme",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/data-migration.html",pathLocale:"/tr/",extraFields:[]},{title:"Debugging Solana Programs (Solana Programlar\u0131nda Hata Ay\u0131klama)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Runtime Testing and Debugging in editor (Edit\xF6rde Runtime Test ve Hata Ay\u0131klama)",slug:"runtime-testing-and-debugging-in-editor-editorde-runtime-test-ve-hata-ay\u0131klama",children:[]},{level:2,title:"Local Validator Node Testing in editor (D\xFCzenleyicide Yerel Do\u011Frulay\u0131c\u0131 Node Testi)",slug:"local-validator-node-testing-in-editor-duzenleyicide-yerel-dogrulay\u0131c\u0131-node-testi",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps (Client Uygulamalar\u0131nda Yerel Validator Node Testi)",slug:"local-validator-node-testing-from-client-apps-client-uygulamalar\u0131nda-yerel-validator-node-testi",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/debugging-solana-programs.html",pathLocale:"/tr/",extraFields:[]},{title:"Feature Parity Testing (\xD6zellik Parite Testi)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Scenario (Senaryo)",slug:"scenario-senaryo",children:[]},{level:2,title:"Feature Status (\xD6zellik Durumu)",slug:"feature-status-ozellik-durumu",children:[]},{level:2,title:"Parity Testing (Parite Testi)",slug:"parity-testing-parite-testi",children:[]},{level:2,title:"Simple Demonstration (Basit G\xF6sterim)",slug:"simple-demonstration-basit-gosterim",children:[{level:3,title:"All features activated (T\xFCm \xF6zellikler aktifle\u015Ftirildi)",slug:"all-features-activated-tum-ozellikler-aktiflestirildi",children:[]},{level:3,title:"Selective features deactivated (Se\xE7ici \xF6zellikler devre d\u0131\u015F\u0131 b\u0131rak\u0131ld\u0131)",slug:"selective-features-deactivated-secici-ozellikler-devre-d\u0131s\u0131-b\u0131rak\u0131ld\u0131",children:[]}]},{level:2,title:"Full Parity Testing Programmatically (Programl\u0131 Olarak Tam Parite Testi)",slug:"full-parity-testing-programmatically-programl\u0131-olarak-tam-parite-testi",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/feature-parity-testing.html",pathLocale:"/tr/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/tr/guides/get-program-accounts.html",pathLocale:"/tr/",extraFields:[]},{title:"Retrying Transactions (\u0130\u015Flemleri Yeniden Denemek)",headers:[{level:2,title:"The Journey of a Transaction (Bir \u0130\u015Flemin Yolculu\u011Fu)",slug:"the-journey-of-a-transaction-bir-islemin-yolculugu",children:[{level:3,title:"How Clients Submit Transactions (Client\u2019lar \u0130\u015Flemleri Nas\u0131l G\xF6nderir)",slug:"how-clients-submit-transactions-client-lar-islemleri-nas\u0131l-gonderir",children:[]},{level:3,title:"How RPC Nodes Broadcast Transactions (RPC Node\u2019lar\u0131 \u0130\u015Flemleri Nas\u0131l Yay\u0131nlar)",slug:"how-rpc-nodes-broadcast-transactions-rpc-node-lar\u0131-islemleri-nas\u0131l-yay\u0131nlar",children:[]}]},{level:2,title:"How Transactions Get Dropped (\u0130\u015Flemler Nas\u0131l D\xFC\u015Fer)",slug:"how-transactions-get-dropped-islemler-nas\u0131l-duser",children:[{level:3,title:"Before a transaction is processed (\u0130\u015Flem i\u015Flenmeden \xF6nce)",slug:"before-a-transaction-is-processed-islem-islenmeden-once",children:[]},{level:3,title:"After a transaction is processed and before it is finalized (\u0130\u015Flem i\u015Flendikten sonra ama sonu\xE7lanmadan \xF6nce)",slug:"after-a-transaction-is-processed-and-before-it-is-finalized-islem-islendikten-sonra-ama-sonuclanmadan-once",children:[]}]},{level:2,title:"Handling Dropped Transactions (D\xFC\u015Fen \u0130\u015Flemleri Y\xF6netme)",slug:"handling-dropped-transactions-dusen-islemleri-yonetme",children:[{level:3,title:"An In-Depth Look at sendTransaction (sendTransaction\u2019a Derinden Bak\u0131\u015F)",slug:"an-in-depth-look-at-sendtransaction-sendtransaction-a-derinden-bak\u0131s",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic (Rebroadcast Logic \xD6zelle\u015Ftirme)",slug:"customizing-rebroadcast-logic-rebroadcast-logic-ozellestirme",children:[{level:3,title:"The Cost of Skipping Preflight (\xD6n Kontrol\xFC Atlaman\u0131n Maliyeti)",slug:"the-cost-of-skipping-preflight-on-kontrolu-atlaman\u0131n-maliyeti",children:[]},{level:3,title:"When to Re-Sign Transactions (\u0130\u015Flemler Ne Zaman Yeniden \u0130mzalanmal\u0131)",slug:"when-to-re-sign-transactions-islemler-ne-zaman-yeniden-imzalanmal\u0131",children:[]}]},{level:2,title:"Acknowledgements (Te\u015Fekk\xFCrler)",slug:"acknowledgements-tesekkurler",children:[]}],path:"/tr/guides/retrying-transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Serializing Data (Serile\u015Ftirme)",headers:[{level:2,title:"Setting up for Borsh Serialization (Borsh Serialization i\xE7in Kurulum)",slug:"setting-up-for-borsh-serialization-borsh-serialization-icin-kurulum",children:[]},{level:2,title:"How to serialize instruction data on the client (Client\u2019taki y\xF6nerge verisi nas\u0131l serile\u015Ftirilir)",slug:"how-to-serialize-instruction-data-on-the-client-client-taki-yonerge-verisi-nas\u0131l-serilestirilir",children:[]},{level:2,title:"How to deserialize instruction data on the program (Instruction data programlarda nas\u0131l deserialize edilir)",slug:"how-to-deserialize-instruction-data-on-the-program-instruction-data-programlarda-nas\u0131l-deserialize-edilir",children:[]},{level:2,title:"How to serialize account data on the program (Programdaki account data nas\u0131l serialize edilir)",slug:"how-to-serialize-account-data-on-the-program-programdaki-account-data-nas\u0131l-serialize-edilir",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"Usage (Kullan\u0131m)",slug:"usage-kullan\u0131m",children:[]}]},{level:2,title:"How to deserialize account data on the client (Client\u2019ta account data nas\u0131l deserialize edilir)",slug:"how-to-deserialize-account-data-on-the-client-client-ta-account-data-nas\u0131l-deserialize-edilir",children:[]},{level:2,title:"Common Solana TS/JS Mappings (Yayg\u0131n Solana TS/JS E\u015Flemeleri)",slug:"common-solana-ts-js-mappings-yayg\u0131n-solana-ts-js-eslemeleri",children:[]},{level:2,title:"Advanced Constructs (Geli\u015Fmi\u015F Yap\u0131lar)",slug:"advanced-constructs-gelismis-yap\u0131lar",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/serialization.html",pathLocale:"/tr/",extraFields:[]},{title:"Accounts (Account\u2019lar)",headers:[{level:2,title:"How to create a system account (System account olu\u015Fturma)",slug:"how-to-create-a-system-account-system-account-olusturma",children:[]},{level:2,title:"How to calculate account cost (Account maliyeti hesaplama)",slug:"how-to-calculate-account-cost-account-maliyeti-hesaplama",children:[]},{level:2,title:"How to calculate account cost (Account\u2019lar seed\u2019leri olu\u015Fturma)",slug:"how-to-calculate-account-cost-account-lar-seed-leri-olusturma",children:[{level:3,title:"Generate (\xDCretme)",slug:"generate-uretme",children:[]},{level:3,title:"Create (Olu\u015Fturma)",slug:"create-olusturma",children:[]},{level:3,title:"Transfer (Transfer)",slug:"transfer-transfer",children:[]}]},{level:2,title:"How to create PDAs (PDA\u2019leri olu\u015Fturma)",slug:"how-to-create-pdas-pda-leri-olusturma",children:[{level:3,title:"Generate a PDA (PDA \xFCretme)",slug:"generate-a-pda-pda-uretme",children:[]},{level:3,title:"Create a PDA (PDA olu\u015Fturma)",slug:"create-a-pda-pda-olusturma",children:[]}]},{level:2,title:"How to sign with a PDA (PDA ile imzalama)",slug:"how-to-sign-with-a-pda-pda-ile-imzalama",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"How to get program accounts (Program hesaplar\u0131n\u0131 getirme)",slug:"how-to-get-program-accounts-program-hesaplar\u0131n\u0131-getirme",children:[]},{level:2,title:"How to close accounts (Account\u2019lar\u0131 kapatma)",slug:"how-to-close-accounts-account-lar\u0131-kapatma",children:[]},{level:2,title:"How to get account balance (Account bakiyesi getirme)",slug:"how-to-get-account-balance-account-bakiyesi-getirme",children:[]}],path:"/tr/references/accounts.html",pathLocale:"/tr/",extraFields:[]},{title:"Sending Transactions(\u0130\u015Flem G\xF6nderimi)",headers:[{level:2,title:"How to send SOL (SOL nas\u0131l g\xF6nderilir)",slug:"how-to-send-sol-sol-nas\u0131l-gonderilir",children:[]},{level:2,title:"How to send SPL-Tokens (SPL-Token\u2019lar nas\u0131l g\xF6nderilir)",slug:"how-to-send-spl-tokens-spl-token-lar-nas\u0131l-gonderilir",children:[]},{level:2,title:"How to calculate transaction cost (\u0130\u015Flem maliyeti nas\u0131l hesaplan\u0131r)",slug:"how-to-calculate-transaction-cost-islem-maliyeti-nas\u0131l-hesaplan\u0131r",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"How to add a memo to a transaction (Bir i\u015Fleme mesaj nas\u0131l eklenir)",slug:"how-to-add-a-memo-to-a-transaction-bir-isleme-mesaj-nas\u0131l-eklenir",children:[]},{level:2,title:"How to change compute budget, fee, & priority for a transaction (Bir i\u015Flem i\xE7in i\u015Flem b\xFCt\xE7esi, bedeli ve \xF6nceli\u011Fi nas\u0131l de\u011Fi\u015Ftirilir)",slug:"how-to-change-compute-budget-fee-priority-for-a-transaction-bir-islem-icin-islem-butcesi-bedeli-ve-onceligi-nas\u0131l-degistirilir",children:[]}],path:"/tr/references/basic-transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"How to generate a new Keypair (Yeni Keypair nas\u0131l olu\u015Fturulur)",slug:"how-to-generate-a-new-keypair-yeni-keypair-nas\u0131l-olusturulur",children:[]},{level:2,title:"How to verify a Keypair (Keypair nas\u0131l do\u011Frulan\u0131r)",slug:"how-to-verify-a-keypair-keypair-nas\u0131l-dogrulan\u0131r",children:[]},{level:2,title:"How to check if a public key has an associated private key (Bir public key\u2019in ili\u015Fkili private key\u2019e sahip olup olmad\u0131\u011F\u0131 nas\u0131l kontrol edilir)",slug:"how-to-check-if-a-public-key-has-an-associated-private-key-bir-public-key-in-iliskili-private-key-e-sahip-olup-olmad\u0131g\u0131-nas\u0131l-kontrol-edilir",children:[]},{level:2,title:"How to generate a mnemonic phrase (Hat\u0131rlat\u0131c\u0131 bir ifade nas\u0131l olu\u015Fturulur)",slug:"how-to-generate-a-mnemonic-phrase-hat\u0131rlat\u0131c\u0131-bir-ifade-nas\u0131l-olusturulur",children:[]},{level:2,title:"How to restore a Keypair from a mnemonic phrase (An\u0131msat\u0131c\u0131 bir c\xFCmleden Keypair nas\u0131l y\xFCklenir)",slug:"how-to-restore-a-keypair-from-a-mnemonic-phrase-an\u0131msat\u0131c\u0131-bir-cumleden-keypair-nas\u0131l-yuklenir",children:[]},{level:2,title:"How to generate a vanity address (\xD6zel bir adres nas\u0131l olu\u015Fturulur)",slug:"how-to-generate-a-vanity-address-ozel-bir-adres-nas\u0131l-olusturulur",children:[]},{level:2,title:"How to sign and verify messages with wallets (C\xFCzdanlarla mesajlar nas\u0131l imzalan\u0131r ve do\u011Frulan\u0131r)",slug:"how-to-sign-and-verify-messages-with-wallets-cuzdanlarla-mesajlar-nas\u0131l-imzalan\u0131r-ve-dogrulan\u0131r",children:[]},{level:2,title:"How to connect to a wallet (C\xFCzdana nas\u0131l ba\u011Flan\u0131l\u0131r)",slug:"how-to-connect-to-a-wallet-cuzdana-nas\u0131l-baglan\u0131l\u0131r",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/tr/references/keypairs-and-wallets.html",pathLocale:"/tr/",extraFields:[]},{title:"Local Development (Yerel Geli\u015Ftirme)",headers:[{level:2,title:"Starting a local validator (Yerel validator ba\u015Flatma)",slug:"starting-a-local-validator-yerel-validator-baslatma",children:[]},{level:2,title:"Connecting to Environments (Ortamlara Ba\u011Flanma)",slug:"connecting-to-environments-ortamlara-baglanma",children:[]},{level:2,title:"Subscribing to Events (Event\u2019lere Abone Olma)",slug:"subscribing-to-events-event-lere-abone-olma",children:[]},{level:2,title:"Getting Test SOL (Test SOL Edinme)",slug:"getting-test-sol-test-sol-edinme",children:[]},{level:2,title:"Using Mainnet Accounts and Programs (Mainnet Account ve Programlar\u0131n\u0131 Kullanma)",slug:"using-mainnet-accounts-and-programs-mainnet-account-ve-programlar\u0131n\u0131-kullanma",children:[{level:3,title:"How to load accounts from mainnet (Account\u2019lar mainnet\u2019ten nas\u0131l y\xFCklenir)",slug:"how-to-load-accounts-from-mainnet-account-lar-mainnet-ten-nas\u0131l-yuklenir",children:[]},{level:3,title:"How to load programs from mainnet (Programlar mainnet\u2019ten nas\u0131l y\xFCklenir)",slug:"how-to-load-programs-from-mainnet-programlar-mainnet-ten-nas\u0131l-yuklenir",children:[]}]}],path:"/tr/references/local-development.html",pathLocale:"/tr/",extraFields:[]},{title:"Name Service (Name Servisi)",headers:[{level:2,title:"Name registry (Name kayd\u0131)",slug:"name-registry-name-kayd\u0131",children:[]},{level:2,title:"Resolving SOL domains (SOL alan adlar\u0131n\u0131 \xE7\xF6zme)",slug:"resolving-sol-domains-sol-alan-adlar\u0131n\u0131-cozme",children:[]},{level:2,title:"Reverse lookup (Geriye do\u011Fru arama)",slug:"reverse-lookup-geriye-dogru-arama",children:[]},{level:2,title:"Subdomain lookup (Subdomain arama)",slug:"subdomain-lookup-subdomain-arama",children:[]},{level:2,title:"Find all the domain names owned by a public key (Bir public key\u2019in sahip oldu\u011Fu t\xFCm isimleri bulma)",slug:"find-all-the-domain-names-owned-by-a-public-key-bir-public-key-in-sahip-oldugu-tum-isimleri-bulma",children:[]},{level:2,title:"Resolve a Twitter handle (Twitter handle\u2019\u0131n\u0131 \xE7\xF6zme)",slug:"resolve-a-twitter-handle-twitter-handle-\u0131n\u0131-cozme",children:[]},{level:2,title:"Reverse lookup of a Twitter handle (Twitter handle\u2019\u0131n\u0131 geri aratma)",slug:"reverse-lookup-of-a-twitter-handle-twitter-handle-\u0131n\u0131-geri-aratma",children:[]}],path:"/tr/references/name-service.html",pathLocale:"/tr/",extraFields:[]},{title:"Non Fungible Tokens (NFTs)",headers:[{level:2,title:"How to create an NFT (NFT olu\u015Fturma)",slug:"how-to-create-an-nft-nft-olusturma",children:[{level:3,title:"Upload to Arweave (Arwave\u2019e y\xFCkleme)",slug:"upload-to-arweave-arwave-e-yukleme",children:[]},{level:3,title:"Mint the NFT (NFT Mint)",slug:"mint-the-nft-nft-mint",children:[]}]},{level:2,title:"How to get NFT Metadata (NFT Metadata\u2019y\u0131 getirme)",slug:"how-to-get-nft-metadata-nft-metadata-y\u0131-getirme",children:[]},{level:2,title:"How to get the owner of an NFT (Bir NFT\u2019nin sahibini getirme)",slug:"how-to-get-the-owner-of-an-nft-bir-nft-nin-sahibini-getirme",children:[]},{level:2,title:"How to get NFT Mint Addresses (NFT Mint Adres\u2019lerini getirme)",slug:"how-to-get-nft-mint-addresses-nft-mint-adres-lerini-getirme",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"How to get all NFTs from a wallet? (Bir c\xFCzdandan t\xFCm NFT\u2019leri alma)",slug:"how-to-get-all-nfts-from-a-wallet-bir-cuzdandan-tum-nft-leri-alma",children:[]}],path:"/tr/references/nfts.html",pathLocale:"/tr/",extraFields:[]},{title:"Offline Transaction (\xC7evrimd\u0131\u015F\u0131 i\u015Flem)",headers:[{level:2,title:"Sign Transaction (\u0130\u015Flem \u0130mzalama)",slug:"sign-transaction-islem-imzalama",children:[]},{level:2,title:"Partial Sign Transaction (K\u0131smi \u0130mzalama)",slug:"partial-sign-transaction-k\u0131smi-imzalama",children:[]},{level:2,title:"Durable Nonce(Uzun S\xFCreli Nonce)",slug:"durable-nonce-uzun-sureli-nonce",children:[{level:3,title:"Create Nonce Account (Nonce Account Olu\u015Fturma)",slug:"create-nonce-account-nonce-account-olusturma",children:[]},{level:3,title:"Get Nonce Account (Nonce Account Getirme)",slug:"get-nonce-account-nonce-account-getirme",children:[]},{level:3,title:"Use Nonce Account (Nonce Account Kullanma)",slug:"use-nonce-account-nonce-account-kullanma",children:[]}]}],path:"/tr/references/offline-transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Writing Programs (Programlar\u0131 Yazma)",headers:[{level:2,title:"How to transfer SOL in a program (Programda SOL aktarma)",slug:"how-to-transfer-sol-in-a-program-programda-sol-aktarma",children:[]},{level:2,title:"How to get clock in a program (Programlarda saat)",slug:"how-to-get-clock-in-a-program-programlarda-saat",children:[{level:3,title:"Passing Clock as an account inside an instruction (Saati bir intstruction i\xE7inde bir hesap olarak ge\xE7irme)",slug:"passing-clock-as-an-account-inside-an-instruction-saati-bir-intstruction-icinde-bir-hesap-olarak-gecirme",children:[]},{level:3,title:"Accessing Clock directly inside an instruction (Saate do\u011Frudan bir instruction i\xE7inden eri\u015Fme)",slug:"accessing-clock-directly-inside-an-instruction-saate-dogrudan-bir-instruction-icinden-erisme",children:[]}]},{level:2,title:"How to change account size (Account boyutu de\u011Fi\u015Ftirme)",slug:"how-to-change-account-size-account-boyutu-degistirme",children:[]},{level:2,title:"How to do Cross Program Invocation (\xC7apraz Program \xC7a\u011F\u0131rma)",slug:"how-to-do-cross-program-invocation-capraz-program-cag\u0131rma",children:[]},{level:2,title:"How to create a PDA (PDA olu\u015Fturma)",slug:"how-to-create-a-pda-pda-olusturma",children:[]},{level:2,title:"How to read accounts (Account\u2019lar\u0131 okuma)",slug:"how-to-read-accounts-account-lar\u0131-okuma",children:[]},{level:2,title:"How to verify accounts (Account\u2019lar\u0131 do\u011Frulama)",slug:"how-to-verify-accounts-account-lar\u0131-dogrulama",children:[]},{level:2,title:"How to read multiple instructions from a transaction (\u0130\u015Flemdeki \xE7oklu talimatlar\u0131 okuma)",slug:"how-to-read-multiple-instructions-from-a-transaction-islemdeki-coklu-talimatlar\u0131-okuma",children:[]}],path:"/tr/references/programs.html",pathLocale:"/tr/",extraFields:[]},{title:"Staking (Stake Etme)",headers:[{level:2,title:"Get Current Validators (Ge\xE7erli Validator\u2019lar\u0131 Getirme)",slug:"get-current-validators-gecerli-validator-lar\u0131-getirme",children:[]},{level:2,title:"Create Stake Account (Stake hesab\u0131 olu\u015Fturma)",slug:"create-stake-account-stake-hesab\u0131-olusturma",children:[]},{level:2,title:"Delegate Stake (Delegate Stake)",slug:"delegate-stake-delegate-stake",children:[]},{level:2,title:"Get Delegator by Validators (Validator account\u2019a stake eden account\u2019lar\u0131 getirme)",slug:"get-delegator-by-validators-validator-account-a-stake-eden-account-lar\u0131-getirme",children:[]},{level:2,title:"Deactivate Stake (Stake\u2019i Devre D\u0131\u015F\u0131 B\u0131rakma)",slug:"deactivate-stake-stake-i-devre-d\u0131s\u0131-b\u0131rakma",children:[]},{level:2,title:"Withdraw Stake (Stake\u2019i \xC7ekme)",slug:"withdraw-stake-stake-i-cekme",children:[]}],path:"/tr/references/staking.html",pathLocale:"/tr/",extraFields:[]},{title:"Interacting with Tokens (Token\u2019lar ile Etkile\u015Fim)",headers:[{level:2,title:"What do I need to get started with SPL-Tokens? (SPL Token\u2019lar\u0131 kullanmaya ba\u015Flamak i\xE7in neye ihtiyac\u0131m\u0131z var?)",slug:"what-do-i-need-to-get-started-with-spl-tokens-spl-token-lar\u0131-kullanmaya-baslamak-icin-neye-ihtiyac\u0131m\u0131z-var",children:[]},{level:2,title:"How to create a new Token (Yeni bir Token olu\u015Fturma)",slug:"how-to-create-a-new-token-yeni-bir-token-olusturma",children:[]},{level:2,title:"How to get a token mint (Token Mint etme)",slug:"how-to-get-a-token-mint-token-mint-etme",children:[]},{level:2,title:"How to create a token account (Token account olu\u015Fturma)",slug:"how-to-create-a-token-account-token-account-olusturma",children:[]},{level:2,title:"How to get a Token Account (Token account\u2019u getirme)",slug:"how-to-get-a-token-account-token-account-u-getirme",children:[]},{level:2,title:"How to get a token account's balance (Token account bakiyesi getirme)",slug:"how-to-get-a-token-account-s-balance-token-account-bakiyesi-getirme",children:[]},{level:2,title:"How to mint tokens (Token mint\u2019leme)",slug:"how-to-mint-tokens-token-mint-leme",children:[]},{level:2,title:"How to transfer tokens (Token transfer etme)",slug:"how-to-transfer-tokens-token-transfer-etme",children:[]},{level:2,title:"How to burn tokens (Token yakma(burn))",slug:"how-to-burn-tokens-token-yakma-burn",children:[]},{level:2,title:"How to close token accounts (Token account\u2019lar\u0131n\u0131 kapatma)",slug:"how-to-close-token-accounts-token-account-lar\u0131n\u0131-kapatma",children:[]},{level:2,title:"How to set authority on token accounts or mints (Token hesaplar\u0131nda ve mint\u2019lerinde yetki belirleme)",slug:"how-to-set-authority-on-token-accounts-or-mints-token-hesaplar\u0131nda-ve-mint-lerinde-yetki-belirleme",children:[]},{level:2,title:"How to approve a token delegate (Token delegate onaylama)",slug:"how-to-approve-a-token-delegate-token-delegate-onaylama",children:[]},{level:2,title:"How to revoke a token delegate (Token delegate iptal etme)",slug:"how-to-revoke-a-token-delegate-token-delegate-iptal-etme",children:[]},{level:2,title:"How to manage wrapped SOL (Wrapped SOL y\xF6netimi)",slug:"how-to-manage-wrapped-sol-wrapped-sol-yonetimi",children:[{level:3,title:"Create Token Account (Token Account Olu\u015Fturma)",slug:"create-token-account-token-account-olusturma",children:[]},{level:3,title:"Add Balance (Bakiye Ekleme)",slug:"add-balance-bakiye-ekleme",children:[]}]},{level:2,title:"How to get all token accounts by owner (T\xFCm token account\u2019lar\u0131 sahibi taraf\u0131ndan nas\u0131l al\u0131n\u0131r?)",slug:"how-to-get-all-token-accounts-by-owner-tum-token-account-lar\u0131-sahibi-taraf\u0131ndan-nas\u0131l-al\u0131n\u0131r",children:[]}],path:"/tr/references/token.html",pathLocale:"/tr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"C\u1EA5u tr\xFAc Account",slug:"cau-truc-account",children:[]},{level:3,title:"Thu\xEA",slug:"thue",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[{level:3,title:"L\u1EDDi c\u1EA3m \u01A1n",slug:"loi-cam-on",children:[]}]}],path:"/vi/core-concepts/accounts.html",pathLocale:"/vi/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[{level:3,title:"C\xE1ch sinh PDA",slug:"cach-sinh-pda",children:[]},{level:3,title:"T\u01B0\u01A1ng t\xE1c v\u1EDBi PDAs",slug:"tuong-tac-voi-pdas",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/core-concepts/pdas.html",pathLocale:"/vi/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"Native Programs & Solana Program Library (SPL) Programs",slug:"native-programs-solana-program-library-spl-programs",children:[]},{level:3,title:"Vi\u1EBFt m\u1ED9t Program",slug:"viet-mot-program",children:[]},{level:3,title:"Tri\u1EC3n khai Program",slug:"trien-khai-program",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/core-concepts/programs.html",pathLocale:"/vi/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"Ph\xED",slug:"phi",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/core-concepts/transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"C\xE0i \u0111\u1EB7t",headers:[{level:2,title:"C\xE0i \u0111\u1EB7t Web3.js",slug:"cai-\u0111at-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"C\xE0i \u0111\u1EB7t Rust",slug:"cai-\u0111at-rust",children:[]},{level:2,title:"C\xE0i \u0111\u1EB7t CLI",slug:"cai-\u0111at-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Bi\xEAn d\u1ECBch t\u1EEB m\xE3 ngu\u1ED3n",slug:"bien-dich-tu-ma-nguon",children:[]}]}],path:"/vi/getting-started/installation.html",pathLocale:"/vi/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"T\xECm PDA",slug:"tim-pda",children:[]},{level:2,title:"Map b\u1EB1ng Account \u0111\u01A1n",slug:"map-bang-account-\u0111on",children:[]}],path:"/vi/guides/account-maps.html",pathLocale:"/vi/",extraFields:[]},{title:"N\xE2ng c\u1EA5p d\u1EEF li\u1EC7u cho Program Account",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\xF3 th\u1EC3 n\xE2ng c\u1EA5p d\u1EEF li\u1EC7u trong Program Account?",slug:"lam-the-nao-\u0111e-co-the-nang-cap-du-lieu-trong-program-account",children:[]},{level:2,title:"Ng\u1EEF c\u1EA3nh",slug:"ngu-canh",children:[]},{level:2,title:"N\xE2ng c\u1EA5p Account",slug:"nang-cap-account",children:[{level:3,title:"1. Th\xEAm lu\u1EADn l\xFD \u0111\u1EC3 chuy\u1EC3n \u0111\u1ED5i Account",slug:"_1-them-luan-ly-\u0111e-chuyen-\u0111oi-account",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/data-migration.html",pathLocale:"/vi/",extraFields:[]},{title:"So\xE1t l\u1ED7i ch\u01B0\u01A1ng tr\xECnh tr\xEAn Solana",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"M\xF4i tr\u01B0\u1EDDng ki\u1EC3m th\u1EED v\xE0 so\xE1t l\u1ED7i trong tr\xECnh bi\xEAn t\u1EADp",slug:"moi-truong-kiem-thu-va-soat-loi-trong-trinh-bien-tap",children:[]},{level:2,title:"Ki\u1EC3m th\u1EED b\u1EB1ng n\u1ED1t Local Validator trong tr\xECnh bi\xEAn t\u1EADp",slug:"kiem-thu-bang-not-local-validator-trong-trinh-bien-tap",children:[]},{level:2,title:"Ki\u1EC3m th\u1EED b\u1EB1ng n\u1ED1t Local Validator tr\xEAn \u1EE9ng d\u1EE5ng ng\u01B0\u1EDDi d\xF9ng",slug:"kiem-thu-bang-not-local-validator-tren-ung-dung-nguoi-dung",children:[]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/debugging-solana-programs.html",pathLocale:"/vi/",extraFields:[]},{title:"\u0110\u1EC1 xu\u1EA5t Ki\u1EC3m th\u1EED Parity",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"T\xECnh hu\u1ED1ng gi\u1EA3 \u0111\u1ECBnh",slug:"tinh-huong-gia-\u0111inh",children:[]},{level:2,title:"\u0110\u1EC1 xu\u1EA5t Tr\u1EA1ng th\xE1i",slug:"\u0111e-xuat-trang-thai",children:[]},{level:2,title:"Ki\u1EC3m th\u1EED Parity",slug:"kiem-thu-parity",children:[]},{level:2,title:"V\xED d\u1EE5 \u0111\u01A1n gi\u1EA3n",slug:"vi-du-\u0111on-gian",children:[{level:3,title:"Khi t\u1EA5t c\u1EA3 c\xE1c \u0111\u1EC1 xu\u1EA5t \u0111\u1EC1u k\xEDch ho\u1EA1t",slug:"khi-tat-ca-cac-\u0111e-xuat-\u0111eu-kich-hoat",children:[]},{level:3,title:"V\xF4 hi\u1EC7u m\u1ED9t v\xE0i \u0111\u1EC1 xu\u1EA5t",slug:"vo-hieu-mot-vai-\u0111e-xuat",children:[]}]},{level:2,title:"Ki\u1EC3m th\u1EED Parity \u0110\u1EA7y \u0111\u1EE7",slug:"kiem-thu-parity-\u0111ay-\u0111u",children:[]},{level:2,title:"C\xE0i \u0111\u1EB7t t\u1EF1 \u0111\u1ED9ng cho Ki\u1EC3m th\u1EED Parity \u0110\u1EA7y \u0111\u1EE7",slug:"cai-\u0111at-tu-\u0111ong-cho-kiem-thu-parity-\u0111ay-\u0111u",children:[]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/feature-parity-testing.html",pathLocale:"/vi/",extraFields:[]},{title:"\u0110\u1ECDc d\u1EEF li\u1EC7u Program Account",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/get-program-accounts.html",pathLocale:"/vi/",extraFields:[]},{title:"Th\u1EED l\u1EA1i Transaction",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"H\xE0nh tr\xECnh c\u1EE7a m\u1ED9t Transaction",slug:"hanh-trinh-cua-mot-transaction",children:[{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ng\u01B0\u1EDDi d\xF9ng g\u1EEDi Transactions",slug:"lam-the-nao-\u0111e-nguoi-dung-gui-transactions",children:[]},{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\xE1c n\u1ED1t RPC lan truy\u1EC1n Transaction",slug:"lam-the-nao-\u0111e-cac-not-rpc-lan-truyen-transaction",children:[]}]},{level:2,title:"Khi n\xE0o c\xE1c Transaction b\u1ECB hu\u1EF7",slug:"khi-nao-cac-transaction-bi-huy",children:[{level:3,title:"Tr\u01B0\u1EDBc khi Transaction \u0111\u01B0\u1EE3c x\u1EED l\xFD",slug:"truoc-khi-transaction-\u0111uoc-xu-ly",children:[]},{level:3,title:"Sau khi Transaction \u0111\u01B0\u1EE3c x\u1EED l\xFD v\xE0 tr\u01B0\u1EDBc khi \u0111\u01B0\u1EE3c ghi v\xE0o block",slug:"sau-khi-transaction-\u0111uoc-xu-ly-va-truoc-khi-\u0111uoc-ghi-vao-block",children:[]}]},{level:2,title:"X\u1EED tr\xED v\u1EDBi Transaction b\u1ECB hu\u1EF7",slug:"xu-tri-voi-transaction-bi-huy",children:[{level:3,title:"Nghi\xEAn c\u1EE9u sendTransaction",slug:"nghien-cuu-sendtransaction",children:[]}]},{level:2,title:"Tu\u1EF3 ch\u1EC9nh thu\u1EADt to\xE1n lan truy\u1EC1n",slug:"tuy-chinh-thuat-toan-lan-truyen",children:[{level:3,title:"C\xE2n nh\u1EAFc khi b\u1ECF qua Preflight",slug:"can-nhac-khi-bo-qua-preflight",children:[]},{level:3,title:"Khi n\xE0o n\xEAn t\xE1i k\xFD transaction",slug:"khi-nao-nen-tai-ky-transaction",children:[]}]},{level:2,title:"L\u1EDDi c\u1EA3m \u01A1n",slug:"loi-cam-on",children:[]}],path:"/vi/guides/retrying-transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"Tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u",headers:[{level:2,title:"C\xE0i \u0111\u1EB7t Tu\u1EA7n t\u1EF1 ho\xE1 Borsh",slug:"cai-\u0111at-tuan-tu-hoa-borsh",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u c\u1EE7a c\xE1c ch\u1EC9 th\u1ECB t\u1EEB ph\xEDa ng\u01B0\u1EDDi d\xF9ng",slug:"lam-the-nao-\u0111e-tuan-tu-hoa-du-lieu-cua-cac-chi-thi-tu-phia-nguoi-dung",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 phi tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u c\u1EE7a c\xE1c ch\u1EC9 th\u1ECB tr\xEAn Program",slug:"lam-the-nao-\u0111e-phi-tuan-tu-hoa-du-lieu-cua-cac-chi-thi-tren-program",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u Account tr\xEAn Program",slug:"lam-the-nao-\u0111e-tuan-tu-hoa-du-lieu-account-tren-program",children:[{level:3,title:"Pack (\u0110\xF3ng g\xF3i)",slug:"pack-\u0111ong-goi",children:[]},{level:3,title:"Tu\u1EA7n t\u1EF1 ho\xE1 v\xE0 Phi tu\u1EA7n t\u1EF1 ho\xE1",slug:"tuan-tu-hoa-va-phi-tuan-tu-hoa",children:[]},{level:3,title:"C\xE1ch d\xF9ng",slug:"cach-dung",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 tu\u1EA7n ho\xE1 d\u1EEF li\u1EC7u Account \u1EDF ph\xEDa ng\u01B0\u1EDDi d\xF9ng",slug:"lam-the-nao-\u0111e-tuan-hoa-du-lieu-account-o-phia-nguoi-dung",children:[]},{level:2,title:"Mapping c\u01A1 b\u1EA3n b\u1EB1ng TS/JS cho Solana",slug:"mapping-co-ban-bang-ts-js-cho-solana",children:[]},{level:2,title:"Ki\u1EC3u d\u1EEF li\u1EC7u n\xE2ng cao",slug:"kieu-du-lieu-nang-cao",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/serialization.html",pathLocale:"/vi/",extraFields:[]},{title:"Getting Started",headers:[{level:2,title:"Composability is Key",slug:"composability-is-key",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/vi/integrations/",pathLocale:"/vi/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Fetching Token list from Jupiter",slug:"fetching-token-list-from-jupiter",children:[]},{level:3,title:"Loading the Jupiter instance",slug:"loading-the-jupiter-instance",children:[]},{level:3,title:"Getting the RouteMap",slug:"getting-the-routemap",children:[]},{level:3,title:"Getting the routes for given Input and Output token",slug:"getting-the-routes-for-given-input-and-output-token",children:[]},{level:3,title:"Execute the Token Swap",slug:"execute-the-token-swap",children:[]},{level:2,title:"How to use Jupiter in a React Application",slug:"how-to-use-jupiter-in-a-react-application",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Adding the Provider",slug:"adding-the-provider",children:[]},{level:3,title:"Fetching the List of Tokens",slug:"fetching-the-list-of-tokens",children:[]},{level:3,title:"Setting up the State",slug:"setting-up-the-state",children:[]},{level:3,title:"Using the useJupiter react hook",slug:"using-the-usejupiter-react-hook",children:[]},{level:3,title:"Performing the Swap",slug:"performing-the-swap",children:[]}]},{level:2,title:"How to use Jupiter API",slug:"how-to-use-jupiter-api",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Getting the Route Map",slug:"getting-the-route-map",children:[]},{level:3,title:"Getting the Serialized Transaction to perform Swap",slug:"getting-the-serialized-transaction-to-perform-swap",children:[]},{level:3,title:"Executing the Swap Transaction",slug:"executing-the-swap-transaction",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/jupiter.html",pathLocale:"/vi/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"How to get a Mango Group",slug:"how-to-get-a-mango-group",children:[]},{level:2,title:"How to create a Mango Account",slug:"how-to-create-a-mango-account",children:[]},{level:2,title:"How to deposit USDC into a Mango Account",slug:"how-to-deposit-usdc-into-a-mango-account",children:[]},{level:2,title:"How to place a spot order",slug:"how-to-place-a-spot-order",children:[]},{level:2,title:"How to load bids",slug:"how-to-load-bids",children:[]},{level:2,title:"How to load asks",slug:"how-to-load-asks",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/mango.html",pathLocale:"/vi/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"How to use Pyth in Client",slug:"how-to-use-pyth-in-client",children:[]},{level:2,title:"How to use Pyth in Anchor",slug:"how-to-use-pyth-in-anchor",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/pyth.html",pathLocale:"/vi/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"How to use @solana/web3.js in a React Native app",slug:"how-to-use-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Create a new app",slug:"create-a-new-app",children:[]},{level:3,title:"Install dependencies",slug:"install-dependencies",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update metro.config.js",slug:"update-metro-config-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"Install cocoapods",slug:"install-cocoapods",children:[]},{level:3,title:"Start application",slug:"start-application",children:[]}]},{level:2,title:"Solana DApp Scaffold for React Native",slug:"solana-dapp-scaffold-for-react-native",children:[]},{level:2,title:"Common issues when using @solana/web3.js in a React Native app",slug:"common-issues-when-using-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Error: While trying to resolve module superstruct from file",slug:"error-while-trying-to-resolve-module-superstruct-from-file",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/vi/integrations/react-native.html",pathLocale:"/vi/",extraFields:[]},{title:"Serum",headers:[{level:2,title:"How to get a Serum market",slug:"how-to-get-a-serum-market",children:[]},{level:2,title:"How to get Serum order books",slug:"how-to-get-serum-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],path:"/vi/integrations/serum.html",pathLocale:"/vi/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"How to create a fully managed token",slug:"how-to-create-a-fully-managed-token",children:[]},{level:2,title:"How to buy and sell a token",slug:"how-to-buy-and-sell-a-token",children:[]},{level:2,title:"How to bootstrap liquidity",slug:"how-to-bootstrap-liquidity",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/strata.html",pathLocale:"/vi/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"Read data from an aggregator feed",slug:"read-data-from-an-aggregator-feed",children:[]},{level:3,title:"Create a new aggregator feed",slug:"create-a-new-aggregator-feed",children:[]},{level:3,title:"Read data from an aggregator feed in program",slug:"read-data-from-an-aggregator-feed-in-program",children:[]},{level:3,title:"How to Create a Feed from the Publisher",slug:"how-to-create-a-feed-from-the-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Create an oracle",slug:"create-an-oracle",children:[]},{level:3,title:"Run an oracle locally",slug:"run-an-oracle-locally",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifiable Random Function(VRF)",slug:"verifiable-random-function-vrf",children:[{level:3,title:"Reading a VRF account",slug:"reading-a-vrf-account",children:[]},{level:3,title:"Creating a VRF account",slug:"creating-a-vrf-account",children:[]},{level:3,title:"Request Randomness from vrf account",slug:"request-randomness-from-vrf-account",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/vi/integrations/switchboard.html",pathLocale:"/vi/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"What is a wallet?",slug:"what-is-a-wallet",children:[]},{level:2,title:"Social Logins on Solana",slug:"social-logins-on-solana",children:[]},{level:2,title:"Integration Guide",slug:"integration-guide",children:[{level:3,title:"Installing Dependencies",slug:"installing-dependencies",children:[]},{level:3,title:"Import the SDK and initialize",slug:"import-the-sdk-and-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"Using torus instance to fetch user account detail\u200B",slug:"using-torus-instance-to-fetch-user-account-detail\u200B",children:[]},{level:3,title:"Using Torus Solana API to sign a message.",slug:"using-torus-solana-api-to-sign-a-message",children:[]},{level:3,title:"Using torus Solana API to send a transaction.\u200B",slug:"using-torus-solana-api-to-send-a-transaction-\u200B",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/vi/integrations/web3auth.html",pathLocale:"/vi/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t System Account",slug:"lam-the-nao-\u0111e-tao-mot-system-account",children:[]},{level:2,title:"T\xEDnh chi ph\xED cho m\u1ED9t account",slug:"tinh-chi-phi-cho-mot-account",children:[]},{level:2,title:"L\xE0m th\u1EBF \xE0o \u0111\u1EC3 t\u1EA1o account v\u1EDBi seeds",slug:"lam-the-ao-\u0111e-tao-account-voi-seeds",children:[{level:3,title:"T\xECm Account",slug:"tim-account",children:[]},{level:3,title:"T\u1EA1o Account",slug:"tao-account",children:[]},{level:3,title:"Chuy\u1EC3n lamports",slug:"chuyen-lamports",children:[]}]},{level:2,title:"C\xE1ch t\u1EA1o PDAs",slug:"cach-tao-pdas",children:[{level:3,title:"Sinh ra m\u1ED9t PDA",slug:"sinh-ra-mot-pda",children:[]},{level:3,title:"T\u1EA1o m\u1ED9t PDA",slug:"tao-mot-pda",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 k\xFD b\u1EB1ng PDA",slug:"lam-the-nao-\u0111e-ky-bang-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Ng\u01B0\u1EDDi d\xF9ng",slug:"nguoi-dung-1",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n c\xE1c account c\u1EE7a m\u1ED9t program",slug:"lam-the-nao-\u0111e-truy-van-cac-account-cua-mot-program",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\xF3ng account",slug:"lam-the-nao-\u0111e-\u0111ong-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n s\u1ED1 d\u01B0 c\u1EE7a m\u1ED9t account",slug:"lam-the-nao-\u0111e-truy-van-so-du-cua-mot-account",children:[]}],path:"/vi/references/accounts.html",pathLocale:"/vi/",extraFields:[]},{title:"G\u1EEDi Transaction",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 g\u1EEDi SOL",slug:"lam-the-nao-\u0111e-gui-sol",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 g\u1EEDi SPL-Tokens",slug:"lam-the-nao-\u0111e-gui-spl-tokens",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\xEDnh chi ph\xED g\u1EEDi transaction",slug:"lam-the-nao-\u0111e-tinh-chi-phi-gui-transaction",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 th\xEAm ghi ch\xFA v\xE0 m\u1ED9t transaction",slug:"lam-the-nao-\u0111e-them-ghi-chu-va-mot-transaction",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thay \u0111\u1ED5i ng\xE2n s\xE1ch t\xEDnh to\xE1n cho m\u1ED9t transaction",slug:"lam-the-nao-\u0111e-thay-\u0111oi-ngan-sach-tinh-toan-cho-mot-transaction",children:[]}],path:"/vi/references/basic-transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"C\u1EB7p kho\xE1 v\xE0 V\xED",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 sinh C\u1EB7p kho\xE1",slug:"lam-the-nao-\u0111e-sinh-cap-khoa",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ph\u1EE5c h\u1ED3i m\u1ED9t C\u1EB7p kho\xE1 t\u1EEB kho\xE1 ri\xEAng t\u01B0",slug:"lam-the-nao-\u0111e-phuc-hoi-mot-cap-khoa-tu-khoa-rieng-tu",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ki\u1EC3m tra m\u1ED9t c\u1EB7p kho\xE1",slug:"lam-the-nao-\u0111e-kiem-tra-mot-cap-khoa",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ki\u1EC3m tra n\u1EBFu m\u1ED9t kho\xE1 c\xF4ng khai kh\xF4ng t\u1ED3n t\u1EA1i kho\xE1 ri\xEAng t\u01B0 t\u01B0\u01A1ng \u1EE8ng",slug:"lam-the-nao-\u0111e-kiem-tra-neu-mot-khoa-cong-khai-khong-ton-tai-khoa-rieng-tu-tuong-ung",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 sinh ra c\u1EE5m mnemonic",slug:"lam-the-nao-\u0111e-sinh-ra-cum-mnemonic",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ph\u1EE5c h\u1ED3i l\u1EA1i c\u1EB7p kho\xE1 t\u1EEB c\u1EE5m mnemonic",slug:"lam-the-nao-\u0111e-phuc-hoi-lai-cap-khoa-tu-cum-mnemonic",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 sinh m\u1ED9t \u0111\u1ECBa ch\u1EC9 danh ngh\u0129a",slug:"lam-the-nao-\u0111e-sinh-mot-\u0111ia-chi-danh-nghia",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o k\xFD v\xE0 ki\u1EC3m tra tinh nh\u1EAFn b\u1EB1ng v\xED",slug:"lam-the-nao-ky-va-kiem-tra-tinh-nhan-bang-vi",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 k\u1EBFt n\u1ED1i v\xED",slug:"lam-the-nao-\u0111e-ket-noi-vi",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/vi/references/keypairs-and-wallets.html",pathLocale:"/vi/",extraFields:[]},{title:"L\u1EADp tr\xECnh \u1EDF Local",headers:[{level:2,title:"Kh\u1EDFi ch\u1EA1y Local Validator",slug:"khoi-chay-local-validator",children:[]},{level:2,title:"K\u1EBFt n\u1ED1i \u0111\u1EBFn m\xF4i tr\u01B0\u1EDDng",slug:"ket-noi-\u0111en-moi-truong",children:[]},{level:2,title:"L\u1EAFng nghe c\xE1c s\u1EF1 ki\u1EC7n",slug:"lang-nghe-cac-su-kien",children:[]},{level:2,title:"Nh\u1EADn SOL \u0111\u1EC3 ki\u1EC3m th\u1EED",slug:"nhan-sol-\u0111e-kiem-thu",children:[]},{level:2,title:"S\u1EED d\u1EE5ng Accounts v\xE0 Programs tr\xEAn Mainnet",slug:"su-dung-accounts-va-programs-tren-mainnet",children:[{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\xE0i \u0111\u1EB7t accounts t\u1EEB mainnet",slug:"lam-the-nao-\u0111e-cai-\u0111at-accounts-tu-mainnet",children:[]},{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\u1EA3i \u0111\u1EB7t programs t\u1EEB mainnet",slug:"lam-the-nao-\u0111e-cai-\u0111at-programs-tu-mainnet",children:[]}]}],path:"/vi/references/local-development.html",pathLocale:"/vi/",extraFields:[]},{title:"D\u1ECBch v\u1EE5 t\xEAn mi\u1EC1n",headers:[{level:2,title:"D\u1ECBch v\u1EE5 \u0111\u0103ng k\xFD t\xEAn mi\u1EC1n",slug:"dich-vu-\u0111ang-ky-ten-mien",children:[]},{level:2,title:"Ph\xE2n gi\u1EA3i t\xEAn mi\u1EC1n SOL",slug:"phan-giai-ten-mien-sol",children:[]},{level:2,title:"Tra c\u1EE9u ng\u01B0\u1EE3c",slug:"tra-cuu-nguoc",children:[]},{level:2,title:"Tra c\u1EE9u t\xEAn mi\u1EC1n con",slug:"tra-cuu-ten-mien-con",children:[]},{level:2,title:"T\xECm t\u1EA5t c\u1EA3 t\xEAn mi\u1EC1n \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi m\u1ED9t kho\xE1 c\xF4ng khai",slug:"tim-tat-ca-ten-mien-\u0111uoc-so-huu-boi-mot-khoa-cong-khai",children:[]},{level:2,title:"Ph\xE2n gi\u1EA3i m\u1ED9t Twitter Handle",slug:"phan-giai-mot-twitter-handle",children:[]},{level:2,title:"Tra c\u1EE9u ng\u01B0\u1EE3c c\u1EE7a m\u1ED9t Twitter Handle",slug:"tra-cuu-nguoc-cua-mot-twitter-handle",children:[]}],path:"/vi/references/name-service.html",pathLocale:"/vi/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t NFT",slug:"lam-the-nao-\u0111e-tao-mot-nft",children:[{level:3,title:"\u0110\u0103ng t\u1EA3i l\xEAn Arweave",slug:"\u0111ang-tai-len-arweave",children:[]},{level:3,title:"\u0110\xFAc NFT",slug:"\u0111uc-nft",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n NFT Metadata",slug:"lam-the-nao-\u0111e-truy-van-nft-metadata",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n ch\u1EE7 s\u1EDF h\u1EEFu c\u1EE7a m\u1ED9t NFTs",slug:"lam-the-nao-\u0111e-truy-van-chu-so-huu-cua-mot-nfts",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n \u0111\u1ECBa ch\u1EC9 mint c\u1EE7a NFT",slug:"lam-the-nao-\u0111e-truy-van-\u0111ia-chi-mint-cua-nft",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n t\u1EA5t c\u1EA3 NFT t\u1EEB m\u1ED9t v\xED?",slug:"lam-the-nao-\u0111e-truy-van-tat-ca-nft-tu-mot-vi",children:[]}],path:"/vi/references/nfts.html",pathLocale:"/vi/",extraFields:[]},{title:"G\u1EEDi Transactions Ngo\u1EA1i tuy\u1EBFn",headers:[{level:2,title:"K\xFD Transaction",slug:"ky-transaction",children:[]},{level:2,title:"K\xFD m\u1ED9t ph\u1EA7n Transaction",slug:"ky-mot-phan-transaction",children:[]},{level:2,title:"Nonce v\u0129nh vi\u1EC5n",slug:"nonce-vinh-vien",children:[{level:3,title:"T\u1EA1o Nonce Account",slug:"tao-nonce-account",children:[]},{level:3,title:"Truy v\u1EA5n Nonce Account",slug:"truy-van-nonce-account",children:[]},{level:3,title:"S\u1EED d\u1EE5ng Nonce Account",slug:"su-dung-nonce-account",children:[]}]}],path:"/vi/references/offline-transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"X\xE2y d\u1EF1ng Programs",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 chuy\u1EC3n SOL trong m\u1ED9t program",slug:"lam-the-nao-\u0111e-chuyen-sol-trong-mot-program",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 l\u1EA5y th\u1EDDi gian trong m\u1ED9t program",slug:"lam-the-nao-\u0111e-lay-thoi-gian-trong-mot-program",children:[{level:3,title:"Truy\u1EC1n Clock nh\u01B0 l\xE0 m\u1ED9t account trong ch\u1EC9 th\u1ECB",slug:"truyen-clock-nhu-la-mot-account-trong-chi-thi",children:[]},{level:3,title:"Truy c\u1EADp Clock tr\u1EF1c ti\u1EBFp b\xEAn trong ch\u1EC9 th\u1ECB",slug:"truy-cap-clock-truc-tiep-ben-trong-chi-thi",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thay \u0111\u1ED5i k\xEDch th\u01B0\u1EDBc account",slug:"lam-the-nao-\u0111e-thay-\u0111oi-kich-thuoc-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 g\u1ECDi gi\u1EEFa c\xE1c program (Cross Program Invocation - CPI)",slug:"lam-the-nao-\u0111e-goi-giua-cac-program-cross-program-invocation-cpi",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o PDA",slug:"lam-the-nao-\u0111e-tao-pda",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ECDc Account",slug:"lam-the-nao-\u0111e-\u0111oc-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ki\u1EC3m tra account",slug:"lam-the-nao-\u0111e-kiem-tra-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ECDc nhi\u1EC1u ch\u1EC9 th\u1ECB t\u1EEB m\u1ED9t Transaction",slug:"lam-the-nao-\u0111e-\u0111oc-nhieu-chi-thi-tu-mot-transaction",children:[]}],path:"/vi/references/programs.html",pathLocale:"/vi/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Truy v\u1EA5n danh s\xE1ch Validators hi\u1EC7n t\u1EA1i",slug:"truy-van-danh-sach-validators-hien-tai",children:[]},{level:2,title:"T\u1EA1o m\u1ED9t Stake Account",slug:"tao-mot-stake-account",children:[]},{level:2,title:"U\u1EF7 quy\u1EC1n Stake",slug:"uy-quyen-stake",children:[]},{level:2,title:"Truy v\u1EA5n c\xE1c nh\xE0 u\u1EF7 quy\u1EC1n b\u1EB1ng validator",slug:"truy-van-cac-nha-uy-quyen-bang-validator",children:[]},{level:2,title:"D\u1EEBng stake",slug:"dung-stake",children:[]},{level:2,title:"R\xFAt Stake",slug:"rut-stake",children:[]}],path:"/vi/references/staking.html",pathLocale:"/vi/",extraFields:[]},{title:"T\u01B0\u01A1ng t\xE1c v\u1EDBi Tokens",headers:[{level:2,title:"T\xF4i n\xEAn c\u1EA7n g\xEC \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u v\u1EDBi SPL-Tokens?",slug:"toi-nen-can-gi-\u0111e-bat-\u0111au-voi-spl-tokens",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t token m\u1EDBi",slug:"lam-the-nao-\u0111e-tao-mot-token-moi",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ECDc truy v\u1EA5n token mint",slug:"lam-the-nao-\u0111e-\u0111oc-truy-van-token-mint",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t token account",slug:"lam-the-nao-\u0111e-tao-mot-token-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n token acount",slug:"lam-the-nao-\u0111e-truy-van-token-acount",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n s\u1ED1 d\u01B0 c\u1EE7a token account",slug:"lam-the-nao-\u0111e-truy-van-so-du-cua-token-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 d\xFAc token",slug:"lam-the-nao-\u0111e-duc-token",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 chuy\u1EC3n token",slug:"lam-the-nao-\u0111e-chuyen-token",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ED1t token",slug:"lam-the-nao-\u0111e-\u0111ot-token",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\xF3ng m\u1ED9t token account",slug:"lam-the-nao-\u0111e-\u0111ong-mot-token-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thi\u1EBFt l\u1EADp ch\u1EE7 s\u1EDF h\u1EEFu cho token account v\xE0 mint",slug:"lam-the-nao-\u0111e-thiet-lap-chu-so-huu-cho-token-account-va-mint",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 u\u1EF7 quy\u1EC1n cho m\u1ED9t token \u0111\u1EA1i di\u1EC7n (delegate)",slug:"lam-the-nao-\u0111e-uy-quyen-cho-mot-token-\u0111ai-dien-delegate",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thu h\u1ED3i m\u1ED9t token \u0111\u1EA1i di\u1EC7n",slug:"lam-the-nao-\u0111e-thu-hoi-mot-token-\u0111ai-dien",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 qu\u1EA3n l\xFD wrapped SOL",slug:"lam-the-nao-\u0111e-quan-ly-wrapped-sol",children:[{level:3,title:"T\u1EA1o token account",slug:"tao-token-account",children:[]},{level:3,title:"Th\xEAm s\u1ED1 d\u01B0",slug:"them-so-du",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n t\u1EA5t c\u1EA3 token account c\u1EE7a m\u1ED9t Ch\u1EE7",slug:"lam-the-nao-\u0111e-truy-van-tat-ca-token-account-cua-mot-chu",children:[]}],path:"/vi/references/token.html",pathLocale:"/vi/",extraFields:[]},{title:"\u8D26\u6237",headers:[{level:2,title:"\u7EFC\u8FF0",slug:"\u7EFC\u8FF0",children:[]},{level:2,title:"\u6DF1\u5165",slug:"\u6DF1\u5165",children:[{level:3,title:"\u8D26\u6237\u6A21\u578B",slug:"\u8D26\u6237\u6A21\u578B",children:[]},{level:3,title:"\u79DF\u91D1",slug:"\u79DF\u91D1",children:[]}]},{level:2,title:"\u5176\u4ED6\u8D44\u6599",slug:"\u5176\u4ED6\u8D44\u6599",children:[{level:3,title:"\u81F4\u8C22",slug:"\u81F4\u8C22",children:[]}]}],path:"/zh/core-concepts/accounts.html",pathLocale:"/zh/",extraFields:[]},{title:"\u7A0B\u5E8F\u6D3E\u751F\u8D26\u6237 (PDA)",headers:[{level:2,title:"\u7EFC\u8FF0",slug:"\u7EFC\u8FF0",children:[{level:3,title:"\u751F\u6210PDA",slug:"\u751F\u6210pda",children:[]},{level:3,title:"\u4E0EPDA\u4EA4\u4E92",slug:"\u4E0Epda\u4EA4\u4E92",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/zh/core-concepts/pdas.html",pathLocale:"/zh/",extraFields:[]},{title:"\u7A0B\u5E8F",headers:[{level:2,title:"\u7EFC\u8FF0",slug:"\u7EFC\u8FF0",children:[]},{level:2,title:"\u6DF1\u5165",slug:"\u6DF1\u5165",children:[{level:3,title:"\u539F\u751F\u7A0B\u5E8F\u548CSolana\u7A0B\u5E8F\u5E93\uFF08SPL\uFF09",slug:"\u539F\u751F\u7A0B\u5E8F\u548Csolana\u7A0B\u5E8F\u5E93-spl",children:[]},{level:3,title:"\u7F16\u5199\u7A0B\u5E8F",slug:"\u7F16\u5199\u7A0B\u5E8F",children:[]},{level:3,title:"\u90E8\u7F72\u7A0B\u5E8F",slug:"\u90E8\u7F72\u7A0B\u5E8F",children:[]}]},{level:2,title:"\u5176\u4ED6\u8D44\u6599",slug:"\u5176\u4ED6\u8D44\u6599",children:[]}],path:"/zh/core-concepts/programs.html",pathLocale:"/zh/",extraFields:[]},{title:"\u4EA4\u6613",headers:[{level:2,title:"\u6982\u8FF0",slug:"\u6982\u8FF0",children:[]},{level:2,title:"\u6DF1\u5165",slug:"\u6DF1\u5165",children:[{level:3,title:"\u8D39\u7528",slug:"\u8D39\u7528",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/zh/core-concepts/transactions.html",pathLocale:"/zh/",extraFields:[]},{title:"\u5B89\u88C5",headers:[{level:2,title:"\u5B89\u88C5Web3.js",slug:"\u5B89\u88C5web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL\u4EE3\u5E01\uFF08SPL-Token\uFF09",slug:"spl\u4EE3\u5E01-spl-token",children:[]},{level:3,title:"\u94B1\u5305\u9002\u914D\u5668\uFF08Wallet-Adapter\uFF09",slug:"\u94B1\u5305\u9002\u914D\u5668-wallet-adapter",children:[]}]},{level:2,title:"\u5B89\u88C5Rust",slug:"\u5B89\u88C5rust",children:[]},{level:2,title:"\u5B89\u88C5\u547D\u4EE4\u884C\u5DE5\u5177",slug:"\u5B89\u88C5\u547D\u4EE4\u884C\u5DE5\u5177",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"\u4ECE\u6E90\u7801\u7F16\u8BD1",slug:"\u4ECE\u6E90\u7801\u7F16\u8BD1",children:[]}]}],path:"/zh/getting-started/installation.html",pathLocale:"/zh/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}],Nc=Ee(Cv),xv=()=>Nc;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updateSearchIndex=e=>{Nc.value=e});const jv=/[^\x00-\x7F]/,Vv=e=>e.split(/\s+/g).map(t=>t.trim()).filter(t=>!!t),Ya=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),Qa=(e,t)=>{const n=t.join(" "),l=Vv(e);if(jv.test(e))return l.some(a=>n.toLowerCase().indexOf(a)>-1);const r=e.endsWith(" ");return new RegExp(l.map((a,s)=>l.length===s+1&&!r?`(?=.*\\b${Ya(a)})`:`(?=.*\\b${Ya(a)}\\b)`).join("")+".+","gi").test(n)},Fv=({searchIndex:e,routeLocale:t,query:n,maxSuggestions:l})=>{const r=_e(()=>e.value.filter(i=>i.pathLocale===t.value));return _e(()=>{const i=n.value.trim().toLowerCase();if(!i)return[];const a=[],s=(c,u)=>{Qa(i,[u.title])&&a.push({link:`${c.path}#${u.slug}`,title:c.title,header:u.title});for(const d of u.children){if(a.length>=l.value)return;s(c,d)}};for(const c of r.value){if(a.length>=l.value)break;if(Qa(i,[c.title,...c.extraFields])){a.push({link:c.path,title:c.title});continue}for(const u of c.headers){if(a.length>=l.value)break;s(c,u)}}return a})},Nv=e=>{const t=Ee(0);return{focusIndex:t,focusNext:()=>{t.value{t.value>0?t.value-=1:t.value=e.value.length-1}}},Mv=ze({name:"SearchBox",props:{locales:{type:Object,required:!1,default:()=>({})},hotKeys:{type:Array,required:!1,default:()=>[]},maxSuggestions:{type:Number,required:!1,default:5}},setup(e){const{locales:t,hotKeys:n,maxSuggestions:l}=yd(e),r=ll(),i=Fi(),a=xv(),s=Ee(null),c=Ee(!1),u=Ee(""),d=_e(()=>{var P;return(P=t.value[i.value])!==null&&P!==void 0?P:{}}),v=Fv({searchIndex:a,routeLocale:i,query:u,maxSuggestions:l}),{focusIndex:g,focusNext:b,focusPrev:m}=Nv(v);Iv({input:s,hotKeys:n});const _=_e(()=>c.value&&!!v.value.length),f=()=>{!_.value||m()},y=()=>{!_.value||b()},w=P=>{if(!_.value)return;const A=v.value[P];!A||r.push(A.link).then(()=>{u.value="",g.value=0})};return()=>ee("form",{class:"search-box",role:"search"},[ee("input",{ref:s,type:"search",placeholder:d.value.placeholder,autocomplete:"off",spellcheck:!1,value:u.value,onFocus:()=>c.value=!0,onBlur:()=>c.value=!1,onInput:P=>u.value=P.target.value,onKeydown:P=>{switch(P.key){case"ArrowUp":{f();break}case"ArrowDown":{y();break}case"Enter":{P.preventDefault(),w(g.value);break}}}}),_.value&&ee("ul",{class:"suggestions",onMouseleave:()=>g.value=-1},v.value.map(({link:P,title:A,header:D},F)=>ee("li",{class:["suggestion",{focus:g.value===F}],onMouseenter:()=>g.value=F,onMousedown:()=>w(F)},ee("a",{href:P,onClick:S=>S.preventDefault()},[ee("span",{class:"page-title"},A),D&&ee("span",{class:"page-header"},`> ${D}`)]))))])}});const zv={"/":{placeholder:"Search"},"/zh/":{placeholder:"\u641C\u7D22"},"/vi/":{placeholder:"T\xECm ki\u1EBFm"},"/th/":{placeholder:"\u0E04\u0E49\u0E19\u0E2B\u0E32"},"/fr/":{placeholder:"Rechercher"},"/id/":{placeholder:"Cari"},"/kr/":{placeholder:"\uAC80\uC0C9"},"/ja/":{placeholder:"\u691C\u7D22"}},Hv=["s","/"],Bv=10;var Uv=Lt(({app:e})=>{e.component("SearchBox",t=>ee(Mv,xe({locales:zv,hotKeys:Hv,maxSuggestions:Bv},t)))}),Kv=({app:e})=>{e.component("SolanaCodeGroup",h(()=>o(()=>Promise.resolve().then(function(){return i_}),void 0))),e.component("SolanaCodeGroupItem",h(()=>o(()=>Promise.resolve().then(function(){return u_}),void 0)))};/*! @docsearch/js 3.0.0-alpha.42 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function Gn(e){return Gn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gn(e)}function qv(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gr(){return Gr=Object.assign||function(e){for(var t=1;t=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Bl(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,l){if(!(typeof Symbol=="undefined"||!(Symbol.iterator in Object(n)))){var r=[],i=!0,a=!1,s=void 0;try{for(var c,u=n[Symbol.iterator]();!(i=(c=u.next()).done)&&(r.push(c.value),!l||r.length!==l);i=!0);}catch(d){a=!0,s=d}finally{try{i||u.return==null||u.return()}finally{if(a)throw s}}return r}}(e,t)||Mc(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +See: https://github.com/francoischalifour/medium-zoom`)}},Dm=function(t){var n=document.createElement("div");return n.classList.add("medium-zoom-overlay"),n.style.background=t,n},Rm=function(t){var n=t.getBoundingClientRect(),l=n.top,r=n.left,i=n.width,a=n.height,s=t.cloneNode(),c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,u=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return s.removeAttribute("id"),s.style.position="absolute",s.style.top=l+c+"px",s.style.left=r+u+"px",s.style.width=i+"px",s.style.height=a+"px",s.style.transform="",s},Yt=function(t,n){var l=Ft({bubbles:!1,cancelable:!1,detail:void 0},n);if(typeof window.CustomEvent=="function")return new CustomEvent(t,l);var r=document.createEvent("CustomEvent");return r.initCustomEvent(t,l.bubbles,l.cancelable,l.detail),r},Im=function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=window.Promise||function(L){function H(){}L(H,H)},r=function(L){var H=L.target;if(H===K){m();return}P.indexOf(H)!==-1&&_({target:H})},i=function(){if(!(D||!O.original)){var L=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(F-L)>S.scrollOffset&&setTimeout(m,150)}},a=function(L){var H=L.key||L.keyCode;(H==="Escape"||H==="Esc"||H===27)&&m()},s=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=L;if(L.background&&(K.style.background=L.background),L.container&&L.container instanceof Object&&(H.container=Ft({},S.container,L.container)),L.template){var Q=kl(L.template)?L.template:document.querySelector(L.template);H.template=Q}return S=Ft({},S,H),P.forEach(function(se){se.dispatchEvent(Yt("medium-zoom:update",{detail:{zoom:B}}))}),B},c=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Ft({},S,L))},u=function(){for(var L=arguments.length,H=Array(L),Q=0;Q0?H.reduce(function(J,le){return[].concat(J,Ka(le))},[]):P;return se.forEach(function(J){J.classList.remove("medium-zoom-image"),J.dispatchEvent(Yt("medium-zoom:detach",{detail:{zoom:B}}))}),P=P.filter(function(J){return se.indexOf(J)===-1}),B},v=function(L,H){var Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return P.forEach(function(se){se.addEventListener("medium-zoom:"+L,H,Q)}),A.push({type:"medium-zoom:"+L,listener:H,options:Q}),B},g=function(L,H){var Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return P.forEach(function(se){se.removeEventListener("medium-zoom:"+L,H,Q)}),A=A.filter(function(se){return!(se.type==="medium-zoom:"+L&&se.listener.toString()===H.toString())}),B},b=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=L.target,Q=function(){var J={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},le=void 0,re=void 0;if(S.container)if(S.container instanceof Object)J=Ft({},J,S.container),le=J.width-J.left-J.right-S.margin*2,re=J.height-J.top-J.bottom-S.margin*2;else{var we=kl(S.container)?S.container:document.querySelector(S.container),Ae=we.getBoundingClientRect(),Le=Ae.width,Pe=Ae.height,Ie=Ae.left,He=Ae.top;J=Ft({},J,{width:Le,height:Pe,left:Ie,top:He})}le=le||J.width-S.margin*2,re=re||J.height-S.margin*2;var I=O.zoomedHd||O.original,U=Ua(I)?le:I.naturalWidth||le,N=Ua(I)?re:I.naturalHeight||re,q=I.getBoundingClientRect(),ue=q.top,me=q.left,ie=q.width,ne=q.height,p=Math.min(U,le)/ie,k=Math.min(N,re)/ne,T=Math.min(p,k),R=(-me+(le-ie)/2+S.margin+J.left)/T,C=(-ue+(re-ne)/2+S.margin+J.top)/T,x="scale("+T+") translate3d("+R+"px, "+C+"px, 0)";O.zoomed.style.transform=x,O.zoomedHd&&(O.zoomedHd.style.transform=x)};return new l(function(se){if(H&&P.indexOf(H)===-1){se(B);return}var J=function Le(){D=!1,O.zoomed.removeEventListener("transitionend",Le),O.original.dispatchEvent(Yt("medium-zoom:opened",{detail:{zoom:B}})),se(B)};if(O.zoomed){se(B);return}if(H)O.original=H;else if(P.length>0){var le=P;O.original=le[0]}else{se(B);return}if(O.original.dispatchEvent(Yt("medium-zoom:open",{detail:{zoom:B}})),F=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,D=!0,O.zoomed=Rm(O.original),document.body.appendChild(K),S.template){var re=kl(S.template)?S.template:document.querySelector(S.template);O.template=document.createElement("div"),O.template.appendChild(re.content.cloneNode(!0)),document.body.appendChild(O.template)}if(document.body.appendChild(O.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),O.original.classList.add("medium-zoom-image--hidden"),O.zoomed.classList.add("medium-zoom-image--opened"),O.zoomed.addEventListener("click",m),O.zoomed.addEventListener("transitionend",J),O.original.getAttribute("data-zoom-src")){O.zoomedHd=O.zoomed.cloneNode(),O.zoomedHd.removeAttribute("srcset"),O.zoomedHd.removeAttribute("sizes"),O.zoomedHd.src=O.zoomed.getAttribute("data-zoom-src"),O.zoomedHd.onerror=function(){clearInterval(we),console.warn("Unable to reach the zoom image target "+O.zoomedHd.src),O.zoomedHd=null,Q()};var we=setInterval(function(){O.zoomedHd.complete&&(clearInterval(we),O.zoomedHd.classList.add("medium-zoom-image--opened"),O.zoomedHd.addEventListener("click",m),document.body.appendChild(O.zoomedHd),Q())},10)}else if(O.original.hasAttribute("srcset")){O.zoomedHd=O.zoomed.cloneNode(),O.zoomedHd.removeAttribute("sizes"),O.zoomedHd.removeAttribute("loading");var Ae=O.zoomedHd.addEventListener("load",function(){O.zoomedHd.removeEventListener("load",Ae),O.zoomedHd.classList.add("medium-zoom-image--opened"),O.zoomedHd.addEventListener("click",m),document.body.appendChild(O.zoomedHd),Q()})}else Q()})},m=function(){return new l(function(L){if(D||!O.original){L(B);return}var H=function Q(){O.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(O.zoomed),O.zoomedHd&&document.body.removeChild(O.zoomedHd),document.body.removeChild(K),O.zoomed.classList.remove("medium-zoom-image--opened"),O.template&&document.body.removeChild(O.template),D=!1,O.zoomed.removeEventListener("transitionend",Q),O.original.dispatchEvent(Yt("medium-zoom:closed",{detail:{zoom:B}})),O.original=null,O.zoomed=null,O.zoomedHd=null,O.template=null,L(B)};D=!0,document.body.classList.remove("medium-zoom--opened"),O.zoomed.style.transform="",O.zoomedHd&&(O.zoomedHd.style.transform=""),O.template&&(O.template.style.transition="opacity 150ms",O.template.style.opacity=0),O.original.dispatchEvent(Yt("medium-zoom:close",{detail:{zoom:B}})),O.zoomed.addEventListener("transitionend",H)})},_=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=L.target;return O.original?m():b({target:H})},f=function(){return S},y=function(){return P},w=function(){return O.original},P=[],A=[],D=!1,F=0,S=n,O={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?S=t:(t||typeof t=="string")&&u(t),S=Ft({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},S);var K=Dm(S.background);document.addEventListener("click",r),document.addEventListener("keyup",a),document.addEventListener("scroll",i),window.addEventListener("resize",m);var B={open:b,close:m,toggle:_,update:s,clone:c,attach:u,detach:d,on:v,off:g,getOptions:f,getImages:y,getZoomedImage:w};return B};function Cm(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document=="undefined")){var l=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",n==="top"&&l.firstChild?l.insertBefore(r,l.firstChild):l.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var xm=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Cm(xm);var jm=Im;const Vm=Symbol("mediumZoom");const Fm=".theme-default-content > img, .theme-default-content :not(a) > img",Nm={},Mm=300;var zm=Lt(({app:e,router:t})=>{const n=jm(Nm);n.refresh=(l=Fm)=>{n.detach(),n.attach(l)},e.provide(Vm,n),t.afterEach(()=>{setTimeout(()=>n.refresh(),Mm)})});const Hm={logo:"/solana_cookbook_lightmode.svg",logoDark:"/solana_cookbook_darkmode.svg",contributors:!0,algolia:{apiKey:"1831a64a81ffef4f85d5c0aa28cb801f",indexName:"solanacookbook",appId:"QMKSKREFKN",algoliaOptions:{hitsPerPage:10}},locales:{"/":{navbar:[{text:"Contribute",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrations",link:"/integrations"}],sidebar:{"/":[{text:"Getting Started",children:["/","/getting-started/installation.md"]},{text:"Core Concepts",children:["/core-concepts/accounts.md","/core-concepts/programs.md","/core-concepts/transactions.md","/core-concepts/pdas.md","/core-concepts/cpi.md"]},{text:"Guides",children:["/guides/get-program-accounts.md","/guides/serialization.md","/guides/data-migration.md","/guides/account-maps.md","/guides/retrying-transactions.md","/guides/debugging-solana-programs.md","/guides/feature-parity-testing.md","/guides/versioned-transactions.md"]},{text:"References",children:["/references/local-development.md","/references/keypairs-and-wallets.md","/references/basic-transactions.md","/references/accounts.md","/references/programs.md","/references/token.md","/references/staking.md","/references/nfts.md","/references/offline-transactions.md","/references/name-service.md",{text:"Gaming",collapsible:!0,children:["/gaming/intro.md","/gaming/game-sdks.md","/gaming/nfts-in-games.md","/gaming/hello-world.md","/gaming/store-sol-in-pda.md","/gaming/saving-game-state.md","/gaming/energy-system.md","/gaming/interact-with-tokens.md","/gaming/porting-anchor-to-unity.md","/gaming/distribution.md","/gaming/game-examples.md"]}]}],"/integrations":[{text:"Integrations",children:["/integrations","/integrations/OpenBook.md","/integrations/pyth.md","/integrations/switchboard.md","/integrations/mango.md","/integrations/strata.md","/integrations/web3auth.md","/integrations/react-native.md","/integrations/jupiter.md","/integrations/orao-vrf.md"]}]},selectLanguageName:"English"},"/zh/":{selectLanguageName:"\u4E2D\u6587",navbar:[{text:"\u8D21\u732E\u4EE3\u7801",link:"https://github.com/solana-developers/solana-cookbook"}],sidebar:[{text:"\u5F00\u59CB\u4F7F\u7528",children:["/zh/","/zh/getting-started/installation.md"]},{text:"\u6838\u5FC3\u6982\u5FF5",children:["/zh/core-concepts/accounts.md","/zh/core-concepts/programs.md","/zh/core-concepts/transactions.md","/zh/core-concepts/pdas.md"]},{text:"\u6307\u5357",children:[]},{text:"\u53C2\u8003",children:[]}]},"/es/":{selectLanguageName:"Spanish",navbar:[{text:"Contribuir",link:"https://github.com/solana-developers/solana-cookbook"}],sidebar:{"/":[{text:"Primeros pasos",children:["/es/","/es/getting-started/installation.md"]},{text:"Conceptos clave",children:["/es/core-concepts/accounts.md","/es/core-concepts/programs.md","/es/core-concepts/transactions.md","/es/core-concepts/pdas.md"]},{text:"Gu\xEDas",children:["/es/guides/get-program-accounts.md","/es/guides/serialization.md","/es/guides/data-migration.md","/es/guides/account-maps.md","/es/guides/retrying-transactions.md","/es/guides/debugging-solana-programs.md","/es/guides/feature-parity-testing.md"]},{text:"Referencias",children:["/es/references/local-development.md","/es/references/keypairs-and-wallets.md","/es/references/basic-transactions.md","/es/references/accounts.md","/es/references/programs.md","/es/references/token.md","/es/references/staking.md","/es/references/nfts.md","/es/references/offline-transactions.md","/es/references/name-service.md"]}]}},"/de/":{selectLanguageName:"Deutsch",navbar:[{text:"Kontributor",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrationen",link:"/de/integrations"}],sidebar:{"/":[{text:"F\xFCr Beginner",children:["/de/","/de/getting-started/installation.md"]},{text:"Fundamentale Konzepte",children:["/de/core-concepts/accounts.md","/de/core-concepts/programs.md","/de/core-concepts/transactions.md","/de/core-concepts/pdas.md"]},{text:"Guides",children:["/de/guides/get-program-accounts.md","/de/guides/serialization.md","/de/guides/data-migration.md","/de/guides/account-maps.md","/de/guides/retrying-transactions.md","/de/guides/debugging-solana-programs.md","/de/guides/feature-parity-testing.md"]},{text:"Referenzen",children:["/de/references/local-development.md","/de/references/keypairs-and-wallets.md","/de/references/basic-transactions.md","/de/references/accounts.md","/de/references/programs.md","/de/references/token.md","/de/references/staking.md","/de/references/nfts.md","/de/references/offline-transactions.md","/de/references/name-service.md"]}],"/de/integrations":[{text:"Integrationen",children:["/de/integrations","/de/integrations/OpenBook.md","/de/integrations/pyth.md","/de/integrations/switchboard.md","/de/integrations/mango.md","/de/integrations/strata.md","/de/integrations/web3auth.md","/de/integrations/react-native.md","/de/integrations/jupiter.md"]}]}},"/vi/":{selectLanguageName:"Ti\u1EBFng Vi\u1EC7t",navbar:[{text:"\u0110\xF3ng g\xF3p",link:"https://github.com/solana-developers/solana-cookbook"},{text:"T\xEDch h\u1EE3p",link:"/vi/integrations"}],sidebar:{"/vi/":[{text:"M\u1EDF \u0111\u1EA7u",children:["/vi/","/vi/getting-started/installation.md"]},{text:"Kh\xE1i ni\u1EC7m c\u0103n b\u1EA3n",children:["/vi/core-concepts/accounts.md","/vi/core-concepts/programs.md","/vi/core-concepts/transactions.md","/vi/core-concepts/pdas.md"]},{text:"H\u01B0\u1EDBng d\u1EABn",children:["/vi/guides/get-program-accounts.md","/vi/guides/serialization.md","/vi/guides/data-migration.md","/vi/guides/account-maps.md","/vi/guides/retrying-transactions.md","/vi/guides/debugging-solana-programs.md","/vi/guides/feature-parity-testing.md"]},{text:"Tham kh\u1EA3o",children:["/vi/references/local-development.md","/vi/references/keypairs-and-wallets.md","/vi/references/basic-transactions.md","/vi/references/accounts.md","/vi/references/programs.md","/vi/references/token.md","/vi/references/staking.md","/vi/references/nfts.md","/vi/references/offline-transactions.md","/vi/references/name-service.md"]}],"/vi/integrations":[{text:"T\xEDch h\u1EE3p",children:["/vi/integrations","/vi/integrations/OpenBook.md","/vi/integrations/pyth.md","/vi/integrations/switchboard.md","/vi/integrations/mango.md","/vi/integrations/strata.md","/vi/integrations/web3auth.md","/vi/integrations/react-native.md","/vi/integrations/jupiter.md"]}]}},"/th/":{selectLanguageName:"\u0E44\u0E17\u0E22",navbar:[{text:"\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E19\u0E40\u0E02\u0E35\u0E22\u0E19",link:"https://github.com/solana-developers/solana-cookbook"},{text:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",link:"/th/integrations"}],sidebar:{"/th/":[{text:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19",children:["/th/","/th/getting-started/installation.md"]},{text:"\u0E41\u0E19\u0E27\u0E04\u0E27\u0E32\u0E21\u0E04\u0E34\u0E14\u0E2B\u0E25\u0E31\u0E01",children:["/th/core-concepts/accounts.md","/th/core-concepts/programs.md","/th/core-concepts/transactions.md","/th/core-concepts/pdas.md"]},{text:"\u0E41\u0E19\u0E27\u0E17\u0E32\u0E07",children:["/th/guides/get-program-accounts.md","/th/guides/serialization.md","/th/guides/data-migration.md","/th/guides/account-maps.md","/th/guides/retrying-transactions.md","/th/guides/debugging-solana-programs.md","/th/guides/feature-parity-testing.md","/th/guides/versioned-transactions.md"]},{text:"\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07",children:["/th/references/local-development.md","/th/references/keypairs-and-wallets.md","/th/references/basic-transactions.md","/th/references/accounts.md","/th/references/programs.md","/th/references/token.md","/th/references/staking.md","/th/references/nfts.md","/th/references/offline-transactions.md","/th/references/name-service.md"]}],"/th/integrations":[{text:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",children:["/th/integrations","/th/integrations/OpenBook.md","/th/integrations/pyth.md","/th/integrations/switchboard.md","/th/integrations/mango.md","/th/integrations/strata.md","/th/integrations/web3auth.md","/th/integrations/react-native.md","/th/integrations/jupiter.md"]}]}},"/fr/":{selectLanguageName:"Fran\xE7ais",navbar:[{text:"Contribuer",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Int\xE9grations",link:"/fr/integrations"}],sidebar:{"/fr/":[{text:"Pour Commencer",children:["/fr/","/fr/getting-started/installation.md"]},{text:"Concepts Fondamentaux",children:["/fr/core-concepts/accounts.md","/fr/core-concepts/programs.md","/fr/core-concepts/transactions.md","/fr/core-concepts/pdas.md"]},{text:"Guides",children:["/fr/guides/get-program-accounts.md","/fr/guides/serialization.md","/fr/guides/data-migration.md","/fr/guides/account-maps.md","/fr/guides/retrying-transactions.md","/fr/guides/debugging-solana-programs.md","/fr/guides/feature-parity-testing.md"]},{text:"R\xE9f\xE9rences",children:["/fr/references/local-development.md","/fr/references/keypairs-and-wallets.md","/fr/references/basic-transactions.md","/fr/references/accounts.md","/fr/references/programs.md","/fr/references/token.md","/fr/references/staking.md","/fr/references/nfts.md","/fr/references/offline-transactions.md","/fr/references/name-service.md"]}],"/fr/integrations":[{text:"Int\xE9grations",children:["/fr/integrations","/fr/integrations/OpenBook.md","/fr/integrations/pyth.md","/fr/integrations/switchboard.md","/fr/integrations/mango.md","/fr/integrations/strata.md","/fr/integrations/web3auth.md","/fr/integrations/react-native.md","/fr/integrations/jupiter.md"]}]}},"/id/":{selectLanguageName:"Bahasa Indonesia",navbar:[{text:"Kontribusi",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrasi",link:"/id/integrations"}],sidebar:{"/":[{text:"Memulai",children:["/id/","/id/getting-started/installation.md"]},{text:"Konsep Utama",children:["/id/core-concepts/accounts.md","/id/core-concepts/programs.md","/id/core-concepts/transactions.md","/id/core-concepts/pdas.md"]},{text:"Panduan",children:["/id/guides/get-program-accounts.md","/id/guides/serialization.md","/id/guides/data-migration.md","/id/guides/account-maps.md","/id/guides/retrying-transactions.md","/id/guides/debugging-solana-programs.md","/id/guides/feature-parity-testing.md"]},{text:"Referensi",children:["/id/references/local-development.md","/id/references/keypairs-and-wallets.md","/id/references/basic-transactions.md","/id/references/accounts.md","/id/references/programs.md","/id/references/token.md","/id/references/staking.md","/id/references/nfts.md","/id/references/offline-transactions.md","/id/references/name-service.md"]}],"/id/integrations":[{text:"Integrasi",children:["/id/integrations","/id/integrations/OpenBook.md","/id/integrations/pyth.md","/id/integrations/switchboard.md","/id/integrations/mango.md","/id/integrations/strata.md","/id/integrations/web3auth.md","/id/integrations/react-native.md","/id/integrations/jupiter.md"]}]}},"/tr/":{selectLanguageName:"T\xFCrk\xE7e",navbar:[{text:"Katk\u0131 yapmak",link:"https://github.com/solana-developers/solana-cookbook"}],sidebar:{"/tr/":[{text:"Ba\u015Flarken",children:["/tr/","/tr/getting-started/installation.md"]},{text:"Temel Kavramlar",children:["/tr/core-concepts/accounts.md","/tr/core-concepts/programs.md","/tr/core-concepts/transactions.md","/tr/core-concepts/pdas.md"]},{text:"K\u0131lavuzlar",children:["/tr/guides/get-program-accounts.md","/tr/guides/serialization.md","/tr/guides/data-migration.md","/tr/guides/account-maps.md","/tr/guides/retrying-transactions.md","/tr/guides/debugging-solana-programs.md","/tr/guides/feature-parity-testing.md"]},{text:"Referanslar",children:["/tr/references/local-development.md","/tr/references/keypairs-and-wallets.md","/tr/references/basic-transactions.md","/tr/references/accounts.md","/tr/references/programs.md","/tr/references/token.md","/tr/references/staking.md","/tr/references/nfts.md","/tr/references/offline-transactions.md","/tr/references/name-service.md"]}]}},"/kr/":{selectLanguageName:"\uD55C\uAD6D\uC5B4",navbar:[{text:"Contribute",link:"https://github.com/solana-developers/solana-cookbook"},{text:"Integrations",link:"/integrations"}],sidebar:{"/":[{text:"Getting Started",children:["/kr/","/kr/getting-started/installation.md"]},{text:"Core Concepts",children:["/kr/core-concepts/accounts.md","/kr/core-concepts/programs.md","/kr/core-concepts/transactions.md","/kr/core-concepts/pdas.md"]},{text:"Guides",children:["/kr/guides/get-program-accounts.md","/kr/guides/serialization.md","/kr/guides/data-migration.md","/kr/guides/account-maps.md","/kr/guides/retrying-transactions.md","/kr/guides/debugging-solana-programs.md","/kr/guides/feature-parity-testing.md"]},{text:"References",children:["/kr/references/local-development.md","/kr/references/keypairs-and-wallets.md","/kr/references/basic-transactions.md","/kr/references/accounts.md","/kr/references/programs.md","/kr/references/token.md","/kr/references/staking.md","/kr/references/nfts.md","/kr/references/offline-transactions.md","/kr/references/name-service.md"]}],"/integrations":[{text:"Integrations",children:["/integrations","/integrations/OpenBook.md","/integrations/pyth.md","/integrations/switchboard.md","/integrations/mango.md","/integrations/strata.md","/integrations/web3auth.md","/integrations/react-native.md","/integrations/jupiter.md"]}]}},"/ja/":{selectLanguageName:"\u65E5\u672C\u8A9E",navbar:[{text:"\u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30C8",link:"https://github.com/solana-developers/solana-cookbook"},{text:"\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3",link:"/ja/integrations"}],sidebar:{"/":[{text:"\u306F\u3058\u3081\u306B",children:["/ja/","/ja/getting-started/installation.md"]},{text:"\u30B3\u30A2\u30B3\u30F3\u30BB\u30D7\u30C8",children:["/ja/core-concepts/accounts.md","/ja/core-concepts/programs.md","/ja/core-concepts/transactions.md","/ja/core-concepts/pdas.md","/ja/core-concepts/cpi.md"]},{text:"\u30AC\u30A4\u30C9",children:["/ja/guides/get-program-accounts.md","/ja/guides/serialization.md","/ja/guides/data-migration.md","/ja/guides/account-maps.md","/ja/guides/retrying-transactions.md","/ja/guides/debugging-solana-programs.md","/ja/guides/feature-parity-testing.md"]},{text:"\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9",children:["/ja/references/local-development.md","/ja/references/keypairs-and-wallets.md","/ja/references/basic-transactions.md","/ja/references/accounts.md","/ja/references/programs.md","/ja/references/token.md","/ja/references/staking.md","/ja/references/nfts.md","/ja/references/offline-transactions.md","/ja/references/name-service.md"]}],"/ja/integrations":[{text:"\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3",children:["/ja/integrations","/ja/integrations/OpenBook.md","/ja/integrations/pyth.md","/ja/integrations/switchboard.md","/ja/integrations/mango.md","/ja/integrations/strata.md","/ja/integrations/web3auth.md","/ja/integrations/react-native.md","/ja/integrations/jupiter.md","/ja/integrations/orao-vrf.md"]}]}}},navbar:[],darkMode:!0,repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebar:"auto",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,lastUpdatedText:"Last Updated",contributorsText:"Contributors",notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"},Dc=Ee(Hm),Bm=()=>Dc;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updateThemeData=e=>{Dc.value=e});const Rc=Symbol(""),Um=()=>{const e=Re(Rc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},Km=(e,t)=>{var n;return xe(xe({},e),(n=e.locales)===null||n===void 0?void 0:n[t])};var qm=Lt(({app:e})=>{const t=Bm(),n=e._context.provides[Vi],l=_e(()=>Km(t.value,n.value));e.provide(Rc,l),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return l.value}}})});const Wm=ze({props:{type:{type:String,required:!1,default:"tip"},text:{type:String,required:!1,default:""},vertical:{type:String,required:!1,default:void 0}},setup(e){return(t,n)=>(nl(),Li("span",{class:wt(["badge",e.type]),style:Yl({verticalAlign:e.vertical})},[Fl(t.$slots,"default",{},()=>[Si(xu(e.text),1)])],6))}});var $m=ze({name:"CodeGroup",setup(e,{slots:t}){const n=Ee(-1),l=Ee([]),r=(s=n.value)=>{s{s>0?n.value=s-1:n.value=l.value.length-1,l.value[n.value].focus()},a=(s,c)=>{s.key===" "||s.key==="Enter"?(s.preventDefault(),n.value=c):s.key==="ArrowRight"?(s.preventDefault(),r(c)):s.key==="ArrowLeft"&&(s.preventDefault(),i(c))};return()=>{var s;const c=(((s=t.default)===null||s===void 0?void 0:s.call(t))||[]).filter(u=>u.type.name==="CodeGroupItem").map(u=>(u.props===null&&(u.props={}),u));return c.length===0?null:(n.value<0||n.value>c.length-1?(n.value=c.findIndex(u=>u.props.active===""||u.props.active===!0),n.value===-1&&(n.value=0)):c.forEach((u,d)=>{u.props.active=d===n.value}),ee("div",{class:"code-group"},[ee("div",{class:"code-group__nav"},ee("ul",{class:"code-group__ul"},c.map((u,d)=>{const v=d===n.value;return ee("li",{class:"code-group__li"},ee("button",{ref:g=>{g&&(l.value[d]=g)},class:{"code-group__nav-tab":!0,"code-group__nav-tab-active":v},ariaPressed:v,ariaExpanded:v,onClick:()=>n.value=d,onKeydown:g=>a(g,d)},u.props.title))}))),c]))}}});const Gm=["aria-selected"],Jm=ze({name:"CodeGroupItem"}),Ym=ze(St(xe({},Jm),{props:{title:{type:String,required:!0},active:{type:Boolean,required:!1,default:!1}},setup(e){return(t,n)=>(nl(),Li("div",{class:wt(["code-group-item",{"code-group-item__active":e.active}]),"aria-selected":e.active},[Fl(t.$slots,"default")],10,Gm))}}));function Ic(e){return Ku()?(qu(e),!0):!1}const il=typeof window!="undefined",Qm=e=>typeof e=="string",kr=()=>{};function Zm(e,t){function n(...l){e(()=>t.apply(this,l),{fn:t,thisArg:this,args:l})}return n}const Xm=e=>e();var qa=Object.getOwnPropertySymbols,ev=Object.prototype.hasOwnProperty,tv=Object.prototype.propertyIsEnumerable,nv=(e,t)=>{var n={};for(var l in e)ev.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(e!=null&&qa)for(var l of qa(e))t.indexOf(l)<0&&tv.call(e,l)&&(n[l]=e[l]);return n};function lv(e,t,n={}){const l=n,{eventFilter:r=Xm}=l,i=nv(l,["eventFilter"]);return et(e,Zm(r,t),i)}function rv(e,t=!0){lc()?tt(e):t?e():Ei(e)}const Hl=il?window:void 0;il&&window.document;il&&window.navigator;il&&window.location;function iv(...e){let t,n,l,r;if(Qm(e[0])?([n,l,r]=e,t=Hl):[t,n,l,r]=e,!t)return kr;let i=kr;const a=et(()=>Bt(t),c=>{i(),c&&(c.addEventListener(n,l,r),i=()=>{c.removeEventListener(n,l,r),i=kr})},{immediate:!0,flush:"post"}),s=()=>{a(),i()};return Ic(s),s}function av(e,t={}){const{window:n=Hl}=t;let l;const r=Ee(!1),i=()=>{!n||(l||(l=n.matchMedia(e)),r.value=l.matches)};return rv(()=>{i(),l&&("addEventListener"in l?l.addEventListener("change",i):l.addListener(i),Ic(()=>{"removeEventListener"in i?l.removeEventListener("change",i):l.removeListener(i)}))}),r}const Wr=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},$r="__vueuse_ssr_handlers__";Wr[$r]=Wr[$r]||{};const ov=Wr[$r];function sv(e,t){return ov[e]||t}function cv(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"||Array.isArray(e)?"object":Number.isNaN(e)?"any":"number"}const uv={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))}};function dv(e,t,n,l={}){var r;const{flush:i="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:c=!0,shallow:u,window:d=Hl,eventFilter:v,onError:g=w=>{console.error(w)}}=l,b=Bt(t),m=cv(b),_=(u?Os:Ee)(t),f=(r=l.serializer)!=null?r:uv[m];if(!n)try{n=sv("getDefaultStorage",()=>{var w;return(w=Hl)==null?void 0:w.localStorage})()}catch(w){g(w)}function y(w){if(!(!n||w&&w.key!==e))try{const P=w?w.newValue:n.getItem(e);P==null?(_.value=b,c&&b!==null&&n.setItem(e,f.write(b))):typeof P!="string"?_.value=P:_.value=f.read(P)}catch(P){g(P)}}return y(),d&&s&&iv(d,"storage",w=>setTimeout(()=>y(w),0)),n&&lv(_,()=>{try{_.value==null?n.removeItem(e):n.setItem(e,f.write(_.value))}catch(w){g(w)}},{flush:i,deep:a,eventFilter:v}),_}function hv(e){return av("(prefers-color-scheme: dark)",e)}var Wa,$a;il&&(window==null?void 0:window.navigator)&&((Wa=window==null?void 0:window.navigator)==null?void 0:Wa.platform)&&/iP(ad|hone|od)/.test(($a=window==null?void 0:window.navigator)==null?void 0:$a.platform);var gv=Object.defineProperty,Ga=Object.getOwnPropertySymbols,mv=Object.prototype.hasOwnProperty,vv=Object.prototype.propertyIsEnumerable,Ja=(e,t,n)=>t in e?gv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pv=(e,t)=>{for(var n in t||(t={}))mv.call(t,n)&&Ja(e,n,t[n]);if(Ga)for(var n of Ga(t))vv.call(t,n)&&Ja(e,n,t[n]);return e};const fv={top:0,left:0,bottom:0,right:0,height:0,width:0};pv({text:""},fv);const Cc=Symbol(""),J_=()=>{const e=Re(Cc);if(!e)throw new Error("useDarkMode() is called without provider.");return e},_v=()=>{const e=Fc(),t=hv(),n=dv("vuepress-color-scheme","auto"),l=_e({get(){return e.value.darkMode?n.value==="auto"?t.value:n.value==="dark":!1},set(r){r===t.value?n.value="auto":n.value=r?"dark":"light"}});Ut(Cc,l),bv(l)},bv=e=>{const t=(n=e.value)=>{const l=window==null?void 0:window.document.querySelector("html");l==null||l.classList.toggle("dark",n)};tt(()=>{et(e,t,{immediate:!0})}),Ai(()=>t())},xc=(...e)=>{const n=ll().resolve(...e),l=n.matched[n.matched.length-1];if(!(l!=null&&l.redirect))return n;const{redirect:r}=l,i=ae(r)?r(n):r,a=be(i)?{path:i}:i;return xc(xe({hash:n.hash,query:n.query,params:n.params},a))},yv=e=>{const t=xc(e);return{text:t.meta.title||e,link:t.name==="404"?e:t.fullPath}};let Er=null,Pn=null;const kv={wait:()=>Er,pending:()=>{Er=new Promise(e=>Pn=e)},resolve:()=>{Pn==null||Pn(),Er=null,Pn=null}},Ev=()=>kv,jc=Symbol("sidebarItems"),Y_=()=>{const e=Re(jc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},wv=()=>{const e=Fc(),t=hm(),n=_e(()=>Pv(t.value,e.value));Ut(jc,n)},Pv=(e,t)=>{var n,l,r,i;const a=(l=(n=e.sidebar)!==null&&n!==void 0?n:t.sidebar)!==null&&l!==void 0?l:"auto",s=(i=(r=e.sidebarDepth)!==null&&r!==void 0?r:t.sidebarDepth)!==null&&i!==void 0?i:2;return e.home||a===!1?[]:a==="auto"?Av(s):te(a)?Vc(a,s):Lc(a)?Ov(a,s):[]},Tv=(e,t)=>({text:e.title,link:`#${e.slug}`,children:zi(e.children,t)}),zi=(e,t)=>t>0?e.map(n=>Tv(n,t-1)):[],Av=e=>{const t=rl();return[{text:t.value.title,children:zi(t.value.headers,e)}]},Vc=(e,t)=>{const n=ji(),l=rl(),r=i=>{var a;let s;if(be(i)?s=yv(i):s=i,s.children)return St(xe({},s),{children:s.children.map(c=>r(c))});if(s.link===n.path){const c=((a=l.value.headers[0])===null||a===void 0?void 0:a.level)===1?l.value.headers[0].children:l.value.headers;return St(xe({},s),{children:zi(c,t)})}return s};return e.map(i=>r(i))},Ov=(e,t)=>{var n;const l=ji(),r=Sc(e,l.path),i=(n=e[r])!==null&&n!==void 0?n:[];return Vc(i,t)},Fc=()=>Um();var Lv=Lt(({app:e,router:t})=>{e.component("Badge",Wm),e.component("CodeGroup",$m),e.component("CodeGroupItem",Ym),e.component("NavbarSearch",()=>{const l=e.component("Docsearch")||e.component("SearchBox");return l?ee(l):null});const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...l)=>(await Ev().wait(),n(...l))});const Sv=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},gtag("js",new Date),gtag("config",e)},Dv="UA-213843360-1";var Rv=Lt(()=>{Sv(Dv)});const Iv=({input:e,hotKeys:t})=>{const n=l=>{!e.value||t.value.length===0||l.target===document.body&&t.value.includes(l.key)&&(e.value.focus(),l.preventDefault())};tt(()=>{document.addEventListener("keydown",n)}),nr(()=>{document.removeEventListener("keydown",n)})},Cv=[{title:"Cooking with Solana",headers:[{level:2,title:"Contributing",slug:"contributing",children:[]},{level:2,title:"How to Read the Cookbook",slug:"how-to-read-the-cookbook",children:[]}],path:"/",pathLocale:"/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Account Model",slug:"account-model",children:[]},{level:3,title:"Rent",slug:"rent",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/core-concepts/accounts.html",pathLocale:"/",extraFields:[]},{title:"Cross Program Invocations (CPIs)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"CPI with\xA0invoke",slug:"cpi-with-invoke",children:[]},{level:3,title:"CPI with\xA0invoke_signed",slug:"cpi-with-invoke-signed",children:[]},{level:3,title:"CPI Instruction",slug:"cpi-instruction",children:[]},{level:3,title:"CPI AccountInfo",slug:"cpi-accountinfo",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/cpi.html",pathLocale:"/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Generating PDAs",slug:"generating-pdas",children:[]},{level:3,title:"Interacting with PDAs",slug:"interacting-with-pdas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/pdas.html",pathLocale:"/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Native Programs & The Solana Program Library (SPL)",slug:"native-programs-the-solana-program-library-spl",children:[]},{level:3,title:"Writing Programs",slug:"writing-programs",children:[]},{level:3,title:"Deploying Programs",slug:"deploying-programs",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/programs.html",pathLocale:"/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Fees",slug:"fees",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/core-concepts/transactions.html",pathLocale:"/",extraFields:[]},{title:"Kochen mit Solana",headers:[{level:2,title:"Beitragen",slug:"beitragen",children:[]},{level:2,title:"Wie man das Kochbuch liest",slug:"wie-man-das-kochbuch-liest",children:[]}],path:"/de/",pathLocale:"/de/",extraFields:[]},{title:"Libro de recetas de Solana",headers:[{level:2,title:"Contribuyendo",slug:"contribuyendo",children:[]},{level:2,title:"Como Leer el Cookbook",slug:"como-leer-el-cookbook",children:[]}],path:"/es/",pathLocale:"/es/",extraFields:[]},{title:"Solana Cookbook",headers:[{level:2,title:"Contribution",slug:"contribution",children:[]},{level:2,title:"Comment lire le Cookbook",slug:"comment-lire-le-cookbook",children:[]}],path:"/fr/",pathLocale:"/fr/",extraFields:[]},{title:"How to auto approve transactions",headers:[],path:"/gaming/auto-approve.html",pathLocale:"/",extraFields:[]},{title:"Distribution",headers:[{level:2,title:"Publishing Platforms",slug:"publishing-platforms",children:[]}],path:"/gaming/distribution.html",pathLocale:"/",extraFields:[]},{title:"Energy System",headers:[{level:2,title:"Anchor program",slug:"anchor-program",children:[{level:3,title:"Creating the player account",slug:"creating-the-player-account",children:[]},{level:3,title:"Choping trees",slug:"choping-trees",children:[]},{level:3,title:"Calculating the energy",slug:"calculating-the-energy",children:[]}]},{level:2,title:"Js client",slug:"js-client",children:[{level:3,title:"Create connection",slug:"create-connection",children:[]},{level:3,title:"Initialize player data",slug:"initialize-player-data",children:[]},{level:3,title:"Subscribe to account updates",slug:"subscribe-to-account-updates",children:[]},{level:3,title:"Calculate energy and show count down",slug:"calculate-energy-and-show-count-down",children:[]}]}],path:"/gaming/energy-system.html",pathLocale:"/",extraFields:[]},{title:"Learn By Example",headers:[{level:2,title:"Interact with Anchor Program from Unity",slug:"interact-with-anchor-program-from-unity",children:[]},{level:2,title:"Saving Sol in a PDA",slug:"saving-sol-in-a-pda",children:[]},{level:2,title:"On chain matchmaking",slug:"on-chain-matchmaking",children:[]},{level:2,title:"Use Solana Pay Qr codes to control a game",slug:"use-solana-pay-qr-codes-to-control-a-game",children:[]},{level:2,title:"Hide game state from other players",slug:"hide-game-state-from-other-players",children:[]},{level:2,title:"How to build a round based multiplayer game",slug:"how-to-build-a-round-based-multiplayer-game",children:[]},{level:2,title:"On Chain Chess",slug:"on-chain-chess",children:[]},{level:2,title:"Multiplayer Game using voting system",slug:"multiplayer-game-using-voting-system",children:[]},{level:2,title:"Entity component system example",slug:"entity-component-system-example",children:[]},{level:2,title:"Adventure killing monsters and gaining xp",slug:"adventure-killing-monsters-and-gaining-xp",children:[]},{level:2,title:"Real-time pvp on chain game",slug:"real-time-pvp-on-chain-game",children:[]}],path:"/gaming/game-examples.html",pathLocale:"/",extraFields:[]},{title:"Solana Gaming SDKs",headers:[{level:3,title:"Unity SDK",slug:"unity-sdk",children:[]},{level:3,title:"Unreal SDK",slug:"unreal-sdk",children:[]},{level:3,title:"Flutter",slug:"flutter",children:[]},{level:3,title:"Next.js/React + Anchor",slug:"next-js-react-anchor",children:[]},{level:3,title:"Python",slug:"python",children:[]},{level:3,title:"Native C#",slug:"native-c",children:[]}],path:"/gaming/game-sdks.html",pathLocale:"/",extraFields:[]},{title:"Hello World example",headers:[{level:2,title:"Getting started with your first Solana game",slug:"getting-started-with-your-first-solana-game",children:[]},{level:2,title:"Tiny Adventure",slug:"tiny-adventure",children:[{level:3,title:"Getting Started",slug:"getting-started",children:[]},{level:3,title:"Defining the Game Data Account",slug:"defining-the-game-data-account",children:[]},{level:3,title:"Initialize Instruction",slug:"initialize-instruction",children:[]},{level:3,title:"Move Left Instruction",slug:"move-left-instruction",children:[]},{level:3,title:"Move Right Instruction",slug:"move-right-instruction",children:[]},{level:3,title:"Build and Deploy",slug:"build-and-deploy",children:[]},{level:3,title:"Get Started with the Client",slug:"get-started-with-the-client",children:[]},{level:3,title:"Where to Go from Here",slug:"where-to-go-from-here",children:[]}]}],path:"/gaming/hello-world.html",pathLocale:"/",extraFields:[]},{title:"How interact with tokens in programs",headers:[{level:2,title:"Create, Mint, and Burn Tokens with Anchor",slug:"create-mint-and-burn-tokens-with-anchor",children:[{level:3,title:"Getting Started",slug:"getting-started",children:[]},{level:3,title:"Create Mint instruction",slug:"create-mint-instruction",children:[]},{level:3,title:"Init Player Instruction",slug:"init-player-instruction",children:[]},{level:3,title:"Kill Enemy Instruction",slug:"kill-enemy-instruction",children:[]},{level:3,title:"Heal Instruction",slug:"heal-instruction",children:[]},{level:3,title:"Build and Deploy",slug:"build-and-deploy",children:[]},{level:3,title:"Get Started with the Client",slug:"get-started-with-the-client",children:[]}]}],path:"/gaming/interact-with-tokens.html",pathLocale:"/",extraFields:[]},{title:"Introduction to Gaming on Solana",headers:[],path:"/gaming/intro.html",pathLocale:"/",extraFields:[]},{title:"Gaming with NFTs",headers:[{level:2,title:"Token gating with NFTs",slug:"token-gating-with-nfts",children:[]},{level:2,title:"Bonus Effects with NFTs",slug:"bonus-effects-with-nfts",children:[]},{level:2,title:"Using NFT Metadata for Player Stats",slug:"using-nft-metadata-for-player-stats",children:[]},{level:2,title:"Fusing NFTs Together",slug:"fusing-nfts-together",children:[]},{level:2,title:"Use 3D Nfts in a game",slug:"use-3d-nfts-in-a-game",children:[]},{level:2,title:"Customize NFTs with items and traits (Raindrops boots)",slug:"customize-nfts-with-items-and-traits-raindrops-boots",children:[]},{level:2,title:"How to create an NFT collection",slug:"how-to-create-an-nft-collection",children:[]}],path:"/gaming/nfts-in-games.html",pathLocale:"/",extraFields:[]},{title:"Port Anchor to Unity",headers:[{level:2,title:"Generating the Client",slug:"generating-the-client",children:[]},{level:2,title:"Building the Transaction in Unity C#",slug:"building-the-transaction-in-unity-c",children:[]}],path:"/gaming/porting-anchor-to-unity.html",pathLocale:"/",extraFields:[]},{title:"Saving game state",headers:[],path:"/gaming/saving-game-state.html",pathLocale:"/",extraFields:[]},{title:"Storing SOL in a PDA",headers:[{level:2,title:"Tiny Adventure Anchor Program - Part Two",slug:"tiny-adventure-anchor-program-part-two",children:[{level:3,title:"Getting Started",slug:"getting-started",children:[]},{level:3,title:"Defining the Chest Vault Account",slug:"defining-the-chest-vault-account",children:[]},{level:3,title:"Defining the Game Data Account",slug:"defining-the-game-data-account",children:[]},{level:3,title:"Initialize Level One Instruction",slug:"initialize-level-one-instruction",children:[]},{level:3,title:"Reset Level and Spawn Chest Instruction",slug:"reset-level-and-spawn-chest-instruction",children:[]},{level:3,title:"Move Right Instruction",slug:"move-right-instruction",children:[]},{level:3,title:"Build and Deploy",slug:"build-and-deploy",children:[]},{level:3,title:"Get Started with the Client",slug:"get-started-with-the-client",children:[]}]}],path:"/gaming/store-sol-in-pda.html",pathLocale:"/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Install Web3.js",slug:"install-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/getting-started/installation.html",pathLocale:"/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/guides/account-maps.html",pathLocale:"/",extraFields:[]},{title:"Migrating Program Data Accounts",headers:[{level:2,title:"How can you migrate a program's data accounts?",slug:"how-can-you-migrate-a-program-s-data-accounts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Upgrading the Account",slug:"upgrading-the-account",children:[{level:3,title:"1. Add account conversion logic",slug:"_1-add-account-conversion-logic",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/data-migration.html",pathLocale:"/",extraFields:[]},{title:"Debugging Solana Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Runtime Testing and Debugging in editor",slug:"runtime-testing-and-debugging-in-editor",children:[]},{level:2,title:"Local Validator Node Testing in editor",slug:"local-validator-node-testing-in-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/debugging-solana-programs.html",pathLocale:"/",extraFields:[]},{title:"Feature Parity Testing",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parity Testing",slug:"parity-testing",children:[]},{level:2,title:"Simple Demonstration",slug:"simple-demonstration",children:[{level:3,title:"All features activated",slug:"all-features-activated",children:[]},{level:3,title:"Selective features deactivated",slug:"selective-features-deactivated",children:[]}]},{level:2,title:"Full Parity Testing",slug:"full-parity-testing",children:[]},{level:2,title:"Full Parity Testing Programmatically",slug:"full-parity-testing-programmatically",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/feature-parity-testing.html",pathLocale:"/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/guides/get-program-accounts.html",pathLocale:"/",extraFields:[]},{title:"Retrying Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"The Journey of a Transaction",slug:"the-journey-of-a-transaction",children:[{level:3,title:"How Clients Submit Transactions",slug:"how-clients-submit-transactions",children:[]},{level:3,title:"How RPC Nodes Broadcast Transactions",slug:"how-rpc-nodes-broadcast-transactions",children:[]}]},{level:2,title:"How Transactions Get Dropped",slug:"how-transactions-get-dropped",children:[{level:3,title:"Before a transaction is processed",slug:"before-a-transaction-is-processed",children:[]},{level:3,title:"After a transaction is processed and before it is finalized",slug:"after-a-transaction-is-processed-and-before-it-is-finalized",children:[]}]},{level:2,title:"Handling Dropped Transactions",slug:"handling-dropped-transactions",children:[{level:3,title:"An In-Depth Look at sendTransaction",slug:"an-in-depth-look-at-sendtransaction",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic",slug:"customizing-rebroadcast-logic",children:[{level:3,title:"The Cost of Skipping Preflight",slug:"the-cost-of-skipping-preflight",children:[]},{level:3,title:"When to Re-Sign Transactions",slug:"when-to-re-sign-transactions",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/guides/retrying-transactions.html",pathLocale:"/",extraFields:[]},{title:"Serializing Data",headers:[{level:2,title:"Setting up for Borsh Serialization",slug:"setting-up-for-borsh-serialization",children:[]},{level:2,title:"How to serialize instruction data on the client",slug:"how-to-serialize-instruction-data-on-the-client",children:[]},{level:2,title:"How to deserialize instruction data on the program",slug:"how-to-deserialize-instruction-data-on-the-program",children:[]},{level:2,title:"How to serialize account data on the program",slug:"how-to-serialize-account-data-on-the-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"How to deserialize account data on the client",slug:"how-to-deserialize-account-data-on-the-client",children:[]},{level:2,title:"Common Solana TS/JS Mappings",slug:"common-solana-ts-js-mappings",children:[]},{level:2,title:"Advanced Constructs",slug:"advanced-constructs",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/guides/serialization.html",pathLocale:"/",extraFields:[]},{title:"Versioned Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Legacy Transaction",slug:"legacy-transaction",children:[]},{level:2,title:"Legacy Message",slug:"legacy-message",children:[{level:3,title:"Header",slug:"header",children:[]},{level:3,title:"Compact-array of account addresses",slug:"compact-array-of-account-addresses",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions",children:[]}]},{level:2,title:"Issues with Legacy Transactions",slug:"issues-with-legacy-transactions",children:[]},{level:2,title:"Address Lookup Tables (LUT)",slug:"address-lookup-tables-lut",children:[]},{level:2,title:"Versioned Transactions: TransactionV0",slug:"versioned-transactions-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Compact array of address table lookups",slug:"compact-array-of-address-table-lookups",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions-1",children:[]}]},{level:2,title:"RPC Changes",slug:"rpc-changes",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]},{level:2,title:"References",slug:"references",children:[]}],path:"/guides/versioned-transactions.html",pathLocale:"/",extraFields:[]},{title:"Buku Panduan Solana",headers:[{level:2,title:"Cara untuk berkontribusi",slug:"cara-untuk-berkontribusi",children:[]},{level:2,title:"Cara untuk membaca Buku Panduan",slug:"cara-untuk-membaca-buku-panduan",children:[]}],path:"/id/",pathLocale:"/id/",extraFields:[]},{title:"Getting Started",headers:[{level:2,title:"Composability is Key",slug:"composability-is-key",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/integrations/",pathLocale:"/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Fetching Token list from Jupiter",slug:"fetching-token-list-from-jupiter",children:[]},{level:3,title:"Loading the Jupiter instance",slug:"loading-the-jupiter-instance",children:[]},{level:3,title:"Getting the RouteMap",slug:"getting-the-routemap",children:[]},{level:3,title:"Getting the routes for given Input and Output token",slug:"getting-the-routes-for-given-input-and-output-token",children:[]},{level:3,title:"Execute the Token Swap",slug:"execute-the-token-swap",children:[]},{level:2,title:"How to use Jupiter in a React Application",slug:"how-to-use-jupiter-in-a-react-application",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Adding the Provider",slug:"adding-the-provider",children:[]},{level:3,title:"Fetching the List of Tokens",slug:"fetching-the-list-of-tokens",children:[]},{level:3,title:"Setting up the State",slug:"setting-up-the-state",children:[]},{level:3,title:"Using the useJupiter react hook",slug:"using-the-usejupiter-react-hook",children:[]},{level:3,title:"Performing the Swap",slug:"performing-the-swap",children:[]}]},{level:2,title:"How to use Jupiter API",slug:"how-to-use-jupiter-api",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Getting the Route Map",slug:"getting-the-route-map",children:[]},{level:3,title:"Getting the Serialized Transaction to perform Swap",slug:"getting-the-serialized-transaction-to-perform-swap",children:[]},{level:3,title:"Executing the Swap Transaction",slug:"executing-the-swap-transaction",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/jupiter.html",pathLocale:"/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"How to get a Mango Group",slug:"how-to-get-a-mango-group",children:[]},{level:2,title:"How to create a Mango Account",slug:"how-to-create-a-mango-account",children:[]},{level:2,title:"How to deposit USDC into a Mango Account",slug:"how-to-deposit-usdc-into-a-mango-account",children:[]},{level:2,title:"How to place a spot order",slug:"how-to-place-a-spot-order",children:[]},{level:2,title:"How to load bids",slug:"how-to-load-bids",children:[]},{level:2,title:"How to load asks",slug:"how-to-load-asks",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/mango.html",pathLocale:"/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Basic usage scenario",slug:"basic-usage-scenario",children:[]},{level:2,title:"SDKs",slug:"sdks",children:[]},{level:2,title:"Anatomy of a randomness request",slug:"anatomy-of-a-randomness-request",children:[]},{level:2,title:"Anatomy of a VRF configuration",slug:"anatomy-of-a-vrf-configuration",children:[]},{level:2,title:"Rust-native example",slug:"rust-native-example",children:[{level:3,title:"1. Setup the connection",slug:"_1-setup-the-connection",children:[]},{level:3,title:"2. Create a request",slug:"_2-create-a-request",children:[]},{level:3,title:"3. Wait for fulfillment",slug:"_3-wait-for-fulfillment",children:[]}]},{level:2,title:"CPI Example",slug:"cpi-example",children:[{level:3,title:"1. Create the contract",slug:"_1-create-the-contract",children:[]},{level:3,title:"2. Collect the necessary accounts",slug:"_2-collect-the-necessary-accounts",children:[]},{level:3,title:"3. Perform a CPI call",slug:"_3-perform-a-cpi-call",children:[]},{level:3,title:"4. Use the fulfilled randomness",slug:"_4-use-the-fulfilled-randomness",children:[]}]}],path:"/integrations/orao-vrf.html",pathLocale:"/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"How to use Pyth in Client",slug:"how-to-use-pyth-in-client",children:[]},{level:2,title:"How to use Pyth in Anchor",slug:"how-to-use-pyth-in-anchor",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/pyth.html",pathLocale:"/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"How to use @solana/web3.js in a React Native app",slug:"how-to-use-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Create a new app",slug:"create-a-new-app",children:[]},{level:3,title:"Install dependencies",slug:"install-dependencies",children:[]},{level:3,title:"Patch Babel to use the Hermes transforms",slug:"patch-babel-to-use-the-hermes-transforms",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"[iOS only] Install cocoapods",slug:"ios-only-install-cocoapods",children:[]},{level:3,title:"Start application",slug:"start-application",children:[]}]},{level:2,title:"Solana DApp Scaffold for React Native",slug:"solana-dapp-scaffold-for-react-native",children:[]},{level:2,title:"Common issues when using crypto libraries in a React Native app",slug:"common-issues-when-using-crypto-libraries-in-a-react-native-app",children:[{level:3,title:"Error: Watchman crawl failed",slug:"error-watchman-crawl-failed",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/integrations/react-native.html",pathLocale:"/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"How to get a OpenBook market",slug:"how-to-get-a-OpenBook-market",children:[]},{level:2,title:"How to get OpenBook order books",slug:"how-to-get-OpenBook-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],path:"/integrations/OpenBook.html",pathLocale:"/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"How to create a fully managed token",slug:"how-to-create-a-fully-managed-token",children:[]},{level:2,title:"How to buy and sell a token",slug:"how-to-buy-and-sell-a-token",children:[]},{level:2,title:"How to bootstrap liquidity",slug:"how-to-bootstrap-liquidity",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/integrations/strata.html",pathLocale:"/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"Read data from an aggregator feed",slug:"read-data-from-an-aggregator-feed",children:[]},{level:3,title:"Create a new aggregator feed",slug:"create-a-new-aggregator-feed",children:[]},{level:3,title:"Read data from an aggregator feed in program",slug:"read-data-from-an-aggregator-feed-in-program",children:[]},{level:3,title:"How to Create a Feed from the Publisher",slug:"how-to-create-a-feed-from-the-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Create an oracle",slug:"create-an-oracle",children:[]},{level:3,title:"Run an oracle locally",slug:"run-an-oracle-locally",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifiable Random Function(VRF)",slug:"verifiable-random-function-vrf",children:[{level:3,title:"Reading a VRF account",slug:"reading-a-vrf-account",children:[]},{level:3,title:"Creating a VRF account",slug:"creating-a-vrf-account",children:[]},{level:3,title:"Request Randomness from vrf account",slug:"request-randomness-from-vrf-account",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/integrations/switchboard.html",pathLocale:"/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"What is a wallet?",slug:"what-is-a-wallet",children:[]},{level:2,title:"Social Logins on Solana",slug:"social-logins-on-solana",children:[]},{level:2,title:"Integration Guide",slug:"integration-guide",children:[{level:3,title:"Installing Dependencies",slug:"installing-dependencies",children:[]},{level:3,title:"Import the SDK and initialize",slug:"import-the-sdk-and-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"Using torus instance to fetch user account detail\u200B",slug:"using-torus-instance-to-fetch-user-account-detail\u200B",children:[]},{level:3,title:"Using Torus Solana API to sign a message.",slug:"using-torus-solana-api-to-sign-a-message",children:[]},{level:3,title:"Using torus Solana API to send a transaction.\u200B",slug:"using-torus-solana-api-to-send-a-transaction-\u200B",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/integrations/web3auth.html",pathLocale:"/",extraFields:[]},{title:"Cooking with Solana",headers:[{level:2,title:"\u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30B7\u30E7\u30F3",slug:"\u30B3\u30F3\u30C8\u30EA\u30D2\u3099\u30E5\u30FC\u30B7\u30E7\u30F3",children:[]},{level:2,title:"Cookbook\u306E\u8AAD\u307F\u65B9",slug:"cookbook\u306E\u8AAD\u307F\u65B9",children:[]}],path:"/ja/",pathLocale:"/ja/",extraFields:[]},{title:"Cooking with Solana",headers:[{level:2,title:"Contributing",slug:"contributing",children:[]},{level:2,title:"How to Read the Cookbook",slug:"how-to-read-the-cookbook",children:[]}],path:"/kr/",pathLocale:"/kr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"How to create a system account",slug:"how-to-create-a-system-account",children:[]},{level:2,title:"How to calculate account cost",slug:"how-to-calculate-account-cost",children:[]},{level:2,title:"How to create accounts with seeds",slug:"how-to-create-accounts-with-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"How to create PDAs",slug:"how-to-create-pdas",children:[{level:3,title:"Generate a PDA",slug:"generate-a-pda",children:[]},{level:3,title:"Create a PDA",slug:"create-a-pda",children:[]}]},{level:2,title:"How to sign with a PDA",slug:"how-to-sign-with-a-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"How to get program accounts",slug:"how-to-get-program-accounts",children:[]},{level:2,title:"How to close accounts",slug:"how-to-close-accounts",children:[]},{level:2,title:"How to get account balance",slug:"how-to-get-account-balance",children:[]}],path:"/references/accounts.html",pathLocale:"/",extraFields:[]},{title:"Sending Transactions",headers:[{level:2,title:"How to send SOL",slug:"how-to-send-sol",children:[]},{level:2,title:"How to send SPL-Tokens",slug:"how-to-send-spl-tokens",children:[]},{level:2,title:"How to calculate transaction cost",slug:"how-to-calculate-transaction-cost",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"How to add a memo to a transaction",slug:"how-to-add-a-memo-to-a-transaction",children:[]},{level:2,title:"How to change compute budget, fee, & priority for a transaction",slug:"how-to-change-compute-budget-fee-priority-for-a-transaction",children:[]}],path:"/references/basic-transactions.html",pathLocale:"/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"How to generate a new Keypair",slug:"how-to-generate-a-new-keypair",children:[]},{level:2,title:"How to restore a Keypair from a secret",slug:"how-to-restore-a-keypair-from-a-secret",children:[]},{level:2,title:"How to verify a Keypair",slug:"how-to-verify-a-keypair",children:[]},{level:2,title:"How to check if a public key has an associated private key",slug:"how-to-check-if-a-public-key-has-an-associated-private-key",children:[]},{level:2,title:"How to generate a mnemonic phrase",slug:"how-to-generate-a-mnemonic-phrase",children:[]},{level:2,title:"How to restore a Keypair from a mnemonic phrase",slug:"how-to-restore-a-keypair-from-a-mnemonic-phrase",children:[]},{level:2,title:"How to generate a vanity address",slug:"how-to-generate-a-vanity-address",children:[]},{level:2,title:"How to sign and verify messages with wallets",slug:"how-to-sign-and-verify-messages-with-wallets",children:[]},{level:2,title:"How to connect to a wallet",slug:"how-to-connect-to-a-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/references/keypairs-and-wallets.html",pathLocale:"/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"Starting a Local Validator",slug:"starting-a-local-validator",children:[]},{level:2,title:"Connecting to Environments",slug:"connecting-to-environments",children:[]},{level:2,title:"Subscribing to Events",slug:"subscribing-to-events",children:[]},{level:2,title:"Getting Test SOL",slug:"getting-test-sol",children:[]},{level:2,title:"Using Mainnet Accounts and Programs",slug:"using-mainnet-accounts-and-programs",children:[{level:3,title:"How to load accounts from mainnet",slug:"how-to-load-accounts-from-mainnet",children:[]},{level:3,title:"How to load programs from mainnet",slug:"how-to-load-programs-from-mainnet",children:[]}]}],path:"/references/local-development.html",pathLocale:"/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"Find all the domain names owned by a public key",slug:"find-all-the-domain-names-owned-by-a-public-key",children:[]},{level:2,title:"Resolve a Twitter handle",slug:"resolve-a-twitter-handle",children:[]},{level:2,title:"Reverse look up of a Twitter handle",slug:"reverse-look-up-of-a-twitter-handle",children:[]}],path:"/references/name-service.html",pathLocale:"/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"How to create an NFT",slug:"how-to-create-an-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint the NFT",slug:"mint-the-nft",children:[]}]},{level:2,title:"How to get NFT Metadata",slug:"how-to-get-nft-metadata",children:[]},{level:2,title:"How to get the owner of an NFT",slug:"how-to-get-the-owner-of-an-nft",children:[]},{level:2,title:"How to get NFT Mint Addresses",slug:"how-to-get-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"How to get all NFTs from a wallet?",slug:"how-to-get-all-nfts-from-a-wallet",children:[]},{level:2,title:"Candy Machine v2",slug:"candy-machine-v2-1",children:[{level:3,title:"How to create a Candy Machine",slug:"how-to-create-a-candy-machine",children:[]},{level:3,title:"How to delete a Candy Machine",slug:"how-to-delete-a-candy-machine",children:[]},{level:3,title:"How to find Candy Machine via authority",slug:"how-to-find-candy-machine-via-authority",children:[]},{level:3,title:"How to find Candy Machine using wallet address",slug:"how-to-find-candy-machine-using-wallet-address",children:[]},{level:3,title:"How to find Candy Machine using its address",slug:"how-to-find-candy-machine-using-its-address",children:[]},{level:3,title:"How to find minted NFTs from a Candy Machine",slug:"how-to-find-minted-nfts-from-a-candy-machine",children:[]},{level:3,title:"How to insert items into a Candy Machine",slug:"how-to-insert-items-into-a-candy-machine",children:[]},{level:3,title:"How to mint an NFT from a Candy Machine",slug:"how-to-mint-an-nft-from-a-candy-machine",children:[]}]}],path:"/references/nfts.html",pathLocale:"/",extraFields:[]},{title:"Sending Offline Transactions",headers:[{level:2,title:"Sign Transaction",slug:"sign-transaction",children:[]},{level:2,title:"Partial Sign Transaction",slug:"partial-sign-transaction",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Create Nonce Account",slug:"create-nonce-account",children:[]},{level:3,title:"Get Nonce Account",slug:"get-nonce-account",children:[]},{level:3,title:"Use Nonce Account",slug:"use-nonce-account",children:[]}]}],path:"/references/offline-transactions.html",pathLocale:"/",extraFields:[]},{title:"Writing Programs",headers:[{level:2,title:"How to transfer SOL in a program",slug:"how-to-transfer-sol-in-a-program",children:[]},{level:2,title:"How to get clock in a program",slug:"how-to-get-clock-in-a-program",children:[{level:3,title:"Passing Clock as an account inside an instruction",slug:"passing-clock-as-an-account-inside-an-instruction",children:[]},{level:3,title:"Accessing Clock directly inside an instruction",slug:"accessing-clock-directly-inside-an-instruction",children:[]}]},{level:2,title:"How to change account size",slug:"how-to-change-account-size",children:[]},{level:2,title:"How to do Cross Program Invocation",slug:"how-to-do-cross-program-invocation",children:[]},{level:2,title:"How to create a PDA",slug:"how-to-create-a-pda",children:[]},{level:2,title:"How to read accounts",slug:"how-to-read-accounts",children:[]},{level:2,title:"How to verify accounts",slug:"how-to-verify-accounts",children:[]},{level:2,title:"How to read multiple instructions from a transaction",slug:"how-to-read-multiple-instructions-from-a-transaction",children:[]}],path:"/references/programs.html",pathLocale:"/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Get Current Validators",slug:"get-current-validators",children:[]},{level:2,title:"Create Stake Account",slug:"create-stake-account",children:[]},{level:2,title:"Delegate Stake",slug:"delegate-stake",children:[]},{level:2,title:"Get Delegator by Validators",slug:"get-delegator-by-validators",children:[]},{level:2,title:"Deactivate Stake",slug:"deactivate-stake",children:[]},{level:2,title:"Withdraw Stake",slug:"withdraw-stake",children:[]}],path:"/references/staking.html",pathLocale:"/",extraFields:[]},{title:"Interacting with Tokens",headers:[{level:2,title:"What do I need to get started with SPL-Tokens?",slug:"what-do-i-need-to-get-started-with-spl-tokens",children:[]},{level:2,title:"How to create a new Token",slug:"how-to-create-a-new-token",children:[]},{level:2,title:"How to get a token mint",slug:"how-to-get-a-token-mint",children:[]},{level:2,title:"How to create a token account",slug:"how-to-create-a-token-account",children:[]},{level:2,title:"How to get a Token Account",slug:"how-to-get-a-token-account",children:[]},{level:2,title:"How to get a token account's balance",slug:"how-to-get-a-token-account-s-balance",children:[]},{level:2,title:"How to mint tokens",slug:"how-to-mint-tokens",children:[]},{level:2,title:"How to transfer tokens",slug:"how-to-transfer-tokens",children:[]},{level:2,title:"How to burn tokens",slug:"how-to-burn-tokens",children:[]},{level:2,title:"How to close token accounts",slug:"how-to-close-token-accounts",children:[]},{level:2,title:"How to set authority on token accounts or mints",slug:"how-to-set-authority-on-token-accounts-or-mints",children:[]},{level:2,title:"How to approve a token delegate",slug:"how-to-approve-a-token-delegate",children:[]},{level:2,title:"How to revoke a token delegate",slug:"how-to-revoke-a-token-delegate",children:[]},{level:2,title:"How to manage wrapped SOL",slug:"how-to-manage-wrapped-sol",children:[{level:3,title:"Create Token Account",slug:"create-token-account",children:[]},{level:3,title:"Add Balance",slug:"add-balance",children:[]}]},{level:2,title:"How to get all token accounts by owner",slug:"how-to-get-all-token-accounts-by-owner",children:[]}],path:"/references/token.html",pathLocale:"/",extraFields:[]},{title:"Cooking \u0E01\u0E31\u0E1A Solana",headers:[{level:2,title:"\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E19\u0E40\u0E02\u0E35\u0E22\u0E19",slug:"\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E19\u0E40\u0E02\u0E35\u0E22\u0E19",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D",children:[]}],path:"/th/",pathLocale:"/th/",extraFields:[]},{title:"Solana Cookbook",headers:[{level:2,title:"Contributing (Nas\u0131l Katk\u0131 Verebilirsiniz?)",slug:"contributing-nas\u0131l-katk\u0131-verebilirsiniz",children:[]},{level:2,title:"How to Read the Cookbook (Cookbook Nas\u0131l Okunur?)",slug:"how-to-read-the-cookbook-cookbook-nas\u0131l-okunur",children:[]}],path:"/tr/",pathLocale:"/tr/",extraFields:[]},{title:"Nh\u1EADp m\xF4n Solana",headers:[{level:2,title:"\u0110\xF3ng g\xF3p",slug:"\u0111ong-gop",children:[]},{level:2,title:"C\u1EA5u tr\xFAc c\u1EE7a To\xE0n t\u1EADp Solana",slug:"cau-truc-cua-toan-tap-solana",children:[]},{level:2,title:"L\u1EDDi c\u1EE7a d\u1ECBch gi\u1EA3",slug:"loi-cua-dich-gia",children:[]}],path:"/vi/",pathLocale:"/vi/",extraFields:[]},{title:"Solana\u79D8\u7C4D",headers:[{level:2,title:"\u8D21\u732E\u4EE3\u7801",slug:"\u8D21\u732E\u4EE3\u7801",children:[]},{level:2,title:"\u5982\u4F55\u9605\u8BFBSolana\u79D8\u7C4D",slug:"\u5982\u4F55\u9605\u8BFBsolana\u79D8\u7C4D",children:[]}],path:"/zh/",pathLocale:"/zh/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Accounts Model",slug:"accounts-model",children:[]},{level:3,title:"Miete",slug:"miete",children:[]}]},{level:2,title:"Andere Ressourcen",slug:"andere-ressourcen",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/de/core-concepts/accounts.html",pathLocale:"/de/",extraFields:[]},{title:"Programmabgeleitete Adressen (PDAs)",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Generating PDAs",slug:"generating-pdas",children:[]},{level:3,title:"Interaktion mit PDAs",slug:"interaktion-mit-pdas",children:[]}]},{level:2,title:"Andere Quellen",slug:"andere-quellen",children:[]}],path:"/de/core-concepts/pdas.html",pathLocale:"/de/",extraFields:[]},{title:"Programme",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Native Programme & Die Solana Programm Bibliothek (SPL - Solana Program Library)",slug:"native-programme-die-solana-programm-bibliothek-spl-solana-program-library",children:[]},{level:3,title:"Writing Programs",slug:"writing-programs",children:[]},{level:3,title:"Bereitstellen von Programmen",slug:"bereitstellen-von-programmen",children:[]}]},{level:2,title:"Weitere Quellen",slug:"weitere-quellen",children:[]}],path:"/de/core-concepts/programs.html",pathLocale:"/de/",extraFields:[]},{title:"Transaktionen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Geb\xFChren",slug:"gebuhren",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/core-concepts/transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Installieren von Web3.js",slug:"installieren-von-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Aus Quelle erstellen",slug:"aus-quelle-erstellen",children:[]}]}],path:"/de/getting-started/installation.html",pathLocale:"/de/",extraFields:[]},{title:"Kontozuordnungen",headers:[{level:2,title:"Ableitende PDAs",slug:"ableitende-pdas",children:[]},{level:2,title:"Einzelnes Kartenkonto",slug:"einzelnes-kartenkonto",children:[]}],path:"/de/guides/account-maps.html",pathLocale:"/de/",extraFields:[]},{title:"Migrieren von Programmdatenkonten",headers:[{level:2,title:"Wie k\xF6nnen Sie die Datenkonten eines Programms migrieren?",slug:"wie-konnen-sie-die-datenkonten-eines-programms-migrieren",children:[]},{level:2,title:"Szenario",slug:"szenario",children:[]},{level:2,title:"Upgrade des Kontos",slug:"upgrade-des-kontos",children:[{level:3,title:"1. Kontoumwandlungslogik hinzuf\xFCgen",slug:"_1-kontoumwandlungslogik-hinzufugen",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/de/guides/data-migration.html",pathLocale:"/de/",extraFields:[]},{title:"Debuggen von Solana-Programmen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Laufzeittests und Debugging im Editor",slug:"laufzeittests-und-debugging-im-editor",children:[]},{level:2,title:"Testen des lokalen Validator-Knotens im Editor",slug:"testen-des-lokalen-validator-knotens-im-editor",children:[]},{level:2,title:"Testen lokaler Validator-Knoten von Client-Apps",slug:"testen-lokaler-validator-knoten-von-client-apps",children:[]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/guides/debugging-solana-programs.html",pathLocale:"/de/",extraFields:[]},{title:"Funktionsparit\xE4tstest",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Szenario",slug:"szenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parit\xE4tstest",slug:"paritatstest",children:[]},{level:2,title:"Einfache Vorf\xFChrung",slug:"einfache-vorfuhrung",children:[{level:3,title:"Alle Funktionen aktiviert",slug:"alle-funktionen-aktiviert",children:[]},{level:3,title:"Selektive Funktionen deaktiviert",slug:"selektive-funktionen-deaktiviert",children:[]}]},{level:2,title:"Vollst\xE4ndiger Parit\xE4tstest",slug:"vollstandiger-paritatstest",children:[]},{level:2,title:"Vollst\xE4ndiger Parit\xE4tstest programmgesteuert",slug:"vollstandiger-paritatstest-programmgesteuert",children:[]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/guides/feature-parity-testing.html",pathLocale:"/de/",extraFields:[]},{title:"Programmkonten Abfragen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/guides/get-program-accounts.html",pathLocale:"/de/",extraFields:[]},{title:"Transaktionen Wiederholen",headers:[{level:2,title:"Fakten",slug:"fakten",children:[]},{level:2,title:"Die Reise einer Transaktion",slug:"die-reise-einer-transaktion-1",children:[{level:3,title:"Wie Anwender Transaktionen \xFCbermitteln",slug:"wie-anwender-transaktionen-ubermitteln",children:[]},{level:3,title:"Wie RPC-Knoten Transaktionen senden",slug:"wie-rpc-knoten-transaktionen-senden",children:[]}]},{level:2,title:"Wie Transaktionen verworfen werden",slug:"wie-transaktionen-verworfen-werden",children:[{level:3,title:"Bevor eine Transaktion verarbeitet wird",slug:"bevor-eine-transaktion-verarbeitet-wird",children:[]},{level:3,title:"Nachdem eine Transaktion verarbeitet wurde und bevor sie abgeschlossen wird",slug:"nachdem-eine-transaktion-verarbeitet-wurde-und-bevor-sie-abgeschlossen-wird",children:[]}]},{level:2,title:"Umgang mit abgebrochenen Transaktionen",slug:"umgang-mit-abgebrochenen-transaktionen",children:[{level:3,title:"Ein eingehender Blick in sendTransaction",slug:"ein-eingehender-blick-in-sendtransaction",children:[]}]},{level:2,title:"Anpassen der Reroadcast-Logik",slug:"anpassen-der-reroadcast-logik",children:[{level:3,title:"Die Kosten f\xFCr das \xDCberspringen des Preflights",slug:"die-kosten-fur-das-uberspringen-des-preflights",children:[]},{level:3,title:"Wann Transaktionen neu signiert werden m\xFCssen",slug:"wann-transaktionen-neu-signiert-werden-mussen",children:[]}]},{level:2,title:"Danksagungen",slug:"danksagungen",children:[]}],path:"/de/guides/retrying-transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Serialisieren von Daten",headers:[{level:2,title:"Einrichten der Borsh-Serialisierung",slug:"einrichten-der-borsh-serialisierung",children:[]},{level:2,title:"So serialisieren Sie Anweisungsdaten auf dem Client",slug:"so-serialisieren-sie-anweisungsdaten-auf-dem-client",children:[]},{level:2,title:"So deserialisieren Sie Befehlsdaten im Programm",slug:"so-deserialisieren-sie-befehlsdaten-im-programm",children:[]},{level:2,title:"So serialisieren Sie Kontodaten im Programm",slug:"so-serialisieren-sie-kontodaten-im-programm",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialisierung/Deserialisierung",slug:"serialisierung-deserialisierung",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"So deserialisieren Sie Kontodaten auf dem Client",slug:"so-deserialisieren-sie-kontodaten-auf-dem-client",children:[]},{level:2,title:"Common Solana TS/JS Mappings",slug:"common-solana-ts-js-mappings",children:[]},{level:2,title:"Fortgeschrittene Konstrukte",slug:"fortgeschrittene-konstrukte",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/guides/serialization.html",pathLocale:"/de/",extraFields:[]},{title:"Getting Started",headers:[{level:2,title:"Composability is Key",slug:"composability-is-key",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/de/integrations/",pathLocale:"/de/",extraFields:[]},{title:"Jupiter",headers:[{level:2,title:"Installation",slug:"installation",children:[{level:3,title:"Abrufen der Token-Liste von Jupiter",slug:"abrufen-der-token-liste-von-jupiter",children:[]},{level:3,title:"Laden der Jupiter-Instanz",slug:"laden-der-jupiter-instanz",children:[]},{level:3,title:"Abrufen der RouteMap",slug:"abrufen-der-routemap",children:[]},{level:3,title:"Abrufen der Routen f\xFCr gegebene Input- und Output-Token",slug:"abrufen-der-routen-fur-gegebene-input-und-output-token",children:[]},{level:3,title:"F\xFChren Sie den Token-Tausch durch",slug:"fuhren-sie-den-token-tausch-durch",children:[]}]},{level:2,title:"So verwenden Sie Jupiter in einer React-Anwendung",slug:"so-verwenden-sie-jupiter-in-einer-react-anwendung",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Anbieter hinzuf\xFCgen",slug:"anbieter-hinzufugen",children:[]},{level:3,title:"Abrufen der Token-Liste",slug:"abrufen-der-token-liste",children:[]},{level:3,title:"Aufbau des Staates",slug:"aufbau-des-staates",children:[]},{level:3,title:"Verwenden des useJupiter-Reaktionshooks",slug:"verwenden-des-usejupiter-reaktionshooks",children:[]},{level:3,title:"Durchf\xFChrung des Swaps",slug:"durchfuhrung-des-swaps",children:[]}]},{level:2,title:"So verwenden Sie die Jupiter-API",slug:"so-verwenden-sie-die-jupiter-api",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Abrufen der Routenkarte",slug:"abrufen-der-routenkarte",children:[]},{level:3,title:"Abrufen der serialisierten Transaktion zum Ausf\xFChren von Swap",slug:"abrufen-der-serialisierten-transaktion-zum-ausfuhren-von-swap",children:[]},{level:3,title:"Ausf\xFChrung der Swap-Transaktion",slug:"ausfuhrung-der-swap-transaktion",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/integrations/jupiter.html",pathLocale:"/de/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"So erhalten Sie eine Mango-Gruppe",slug:"so-erhalten-sie-eine-mango-gruppe",children:[]},{level:2,title:"So erstellen Sie ein Mango-Konto",slug:"so-erstellen-sie-ein-mango-konto",children:[]},{level:2,title:"So zahlen Sie USDC auf ein Mango-Konto ein",slug:"so-zahlen-sie-usdc-auf-ein-mango-konto-ein",children:[]},{level:2,title:"So platzieren Sie eine Spot-Order",slug:"so-platzieren-sie-eine-spot-order",children:[]},{level:2,title:"So laden Sie Gebote",slug:"so-laden-sie-gebote",children:[]},{level:2,title:"How to load asks",slug:"how-to-load-asks",children:[]},{level:2,title:"Andere Ressourcen",slug:"andere-ressourcen",children:[]}],path:"/de/integrations/mango.html",pathLocale:"/de/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Grundlegendes Nutzungsszenario",slug:"grundlegendes-nutzungsszenario",children:[]},{level:2,title:"SDKs (Software Developer Kits - Software-entwicklungs-packet)",slug:"sdks-software-developer-kits-software-entwicklungs-packet",children:[]},{level:2,title:"Anatomie einer Zuf\xE4lligkeitsanforderung",slug:"anatomie-einer-zufalligkeitsanforderung",children:[]},{level:2,title:"Anatomie einer VRF-Konfiguration",slug:"anatomie-einer-vrf-konfiguration",children:[]},{level:2,title:"Rust-natives Beispiel",slug:"rust-natives-beispiel",children:[{level:3,title:"1. Stellen Sie die Verbindung her",slug:"_1-stellen-sie-die-verbindung-her",children:[]},{level:3,title:"2. Erstellen Sie eine Anfrage",slug:"_2-erstellen-sie-eine-anfrage",children:[]},{level:3,title:"3. Warte auf die Erf\xFCllung",slug:"_3-warte-auf-die-erfullung",children:[]}]},{level:2,title:"CPI-Beispiel",slug:"cpi-beispiel",children:[{level:3,title:"1. Erstellen Sie den Vertrag",slug:"_1-erstellen-sie-den-vertrag",children:[]},{level:3,title:"2. Sammeln Sie die erforderlichen Konten",slug:"_2-sammeln-sie-die-erforderlichen-konten",children:[]},{level:3,title:"3. F\xFChren Sie einen CPI-Aufruf durch",slug:"_3-fuhren-sie-einen-cpi-aufruf-durch",children:[]},{level:3,title:"4. Nutzen Sie die erf\xFCllte Zuf\xE4lligkeit",slug:"_4-nutzen-sie-die-erfullte-zufalligkeit",children:[]}]}],path:"/de/integrations/orao-vrf.html",pathLocale:"/de/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"Verwendung von Pyth im Client",slug:"verwendung-von-pyth-im-client",children:[]},{level:2,title:"Verwendung von Pyth in Anchor",slug:"verwendung-von-pyth-in-anchor",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/integrations/pyth.html",pathLocale:"/de/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"How to use @solana/web3.js in a React Native app",slug:"how-to-use-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Erstellen Sie eine neue Anwendung",slug:"erstellen-sie-eine-neue-anwendung",children:[]},{level:3,title:"Abh\xE4ngigkeiten installieren",slug:"abhangigkeiten-installieren",children:[]},{level:3,title:"Patchen Sie Babel, um die Hermes-Transformationen zu verwenden",slug:"patchen-sie-babel-um-die-hermes-transformationen-zu-verwenden",children:[]},{level:3,title:"Aktualisieren Sie \u201Eindex.js\u201C",slug:"aktualisieren-sie-\u201Eindex-js",children:[]},{level:3,title:"Aktualisieren Sie \u201EApp.tsx\u201C",slug:"aktualisieren-sie-\u201Eapp-tsx",children:[]},{level:3,title:"[iOS only] Install cocoapods",slug:"ios-only-install-cocoapods",children:[]},{level:3,title:"Anwendung starten",slug:"anwendung-starten",children:[]}]},{level:2,title:"Solana DApp Scaffold f\xFCr React Native",slug:"solana-dapp-scaffold-fur-react-native",children:[]},{level:2,title:"H\xE4ufige Probleme bei der Verwendung von Kryptobibliotheken in einer React Native-App",slug:"haufige-probleme-bei-der-verwendung-von-kryptobibliotheken-in-einer-react-native-app",children:[{level:3,title:"Fehler: \u201EWatchman-Crawling fehlgeschlagen\u201C.",slug:"fehler-\u201Ewatchman-crawling-fehlgeschlagen",children:[]},{level:3,title:"Fehler: URL.protocol ist nicht implementiert",slug:"fehler-url-protocol-ist-nicht-implementiert",children:[]},{level:3,title:"Fehler: crypto.getRandomValues() wird nicht unterst\xFCtzt",slug:"fehler-crypto-getrandomvalues-wird-nicht-unterstutzt",children:[]}]}],path:"/de/integrations/react-native.html",pathLocale:"/de/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"So erhalten Sie einen OpenBookmarkt",slug:"so-erhalten-sie-einen-OpenBookmarkt",children:[]},{level:2,title:"So erhalten Sie OpenBook-Bestellb\xFCcher",slug:"so-erhalten-sie-OpenBook-bestellbucher",children:[]},{level:2,title:"So erhalten Sie aktuelle offene Bestellungen",slug:"so-erhalten-sie-aktuelle-offene-bestellungen",children:[]}],path:"/de/integrations/OpenBook.html",pathLocale:"/de/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"So erstellen Sie ein vollst\xE4ndig verwaltetes Token",slug:"so-erstellen-sie-ein-vollstandig-verwaltetes-token",children:[]},{level:2,title:"Wie man einen Token kauft und verkauft",slug:"wie-man-einen-token-kauft-und-verkauft",children:[]},{level:2,title:"Wie man Liquidit\xE4t aufbaut",slug:"wie-man-liquiditat-aufbaut",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/de/integrations/strata.html",pathLocale:"/de/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Daten Feeds",slug:"daten-feeds",children:[{level:3,title:"Daten aus einem Aggregator-Feed lesen",slug:"daten-aus-einem-aggregator-feed-lesen",children:[]},{level:3,title:"Erstellen eines neuen Aggregator-Feed",slug:"erstellen-eines-neuen-aggregator-feed",children:[]},{level:3,title:"Lesen Sie Daten aus einem Aggregator-Feed-in-Programm",slug:"lesen-sie-daten-aus-einem-aggregator-feed-in-programm",children:[]},{level:3,title:"So erstellen Sie einen Feed vom Publisher",slug:"so-erstellen-sie-einen-feed-vom-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Erstelen eines Oracle",slug:"erstelen-eines-oracle",children:[]},{level:3,title:"Ausf\xFChren eines lokalen Oracle",slug:"ausfuhren-eines-lokalen-oracle",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifizierbare Zufallsfunktion (VRF)",slug:"verifizierbare-zufallsfunktion-vrf",children:[{level:3,title:"Lesen eines VRF-Kontos",slug:"lesen-eines-vrf-kontos",children:[]},{level:3,title:"Erstellen eines VRF-Kontos",slug:"erstellen-eines-vrf-kontos",children:[]},{level:3,title:"Fordern von Zuf\xE4lligkeit vom vrf-Konto",slug:"fordern-von-zufalligkeit-vom-vrf-konto",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/de/integrations/switchboard.html",pathLocale:"/de/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"Was ist eine Brieftasche?",slug:"was-ist-eine-brieftasche",children:[]},{level:2,title:"Soziale Logins auf Solana",slug:"soziale-logins-auf-solana",children:[]},{level:2,title:"Integrationsleitfaden",slug:"integrationsleitfaden",children:[{level:3,title:"Abh\xE4ngigkeiten installieren",slug:"abhangigkeiten-installieren",children:[]},{level:3,title:"Importieren Sie das SDK und initialisieren Sie es",slug:"importieren-sie-das-sdk-und-initialisieren-sie-es",children:[]},{level:3,title:"Benutzeranmeldung ausl\xF6sen",slug:"benutzeranmeldung-auslosen",children:[]},{level:3,title:"Verwenden der Torus-Instanz zum Abrufen von Benutzerkontodetails",slug:"verwenden-der-torus-instanz-zum-abrufen-von-benutzerkontodetails",children:[]},{level:3,title:"Verwenden der Torus Solana-API zum Signieren einer Nachricht.",slug:"verwenden-der-torus-solana-api-zum-signieren-einer-nachricht",children:[]},{level:3,title:"Verwenden der Torus Solana-API zum Senden einer Transaktion",slug:"verwenden-der-torus-solana-api-zum-senden-einer-transaktion",children:[]},{level:3,title:"Aufladungen",slug:"aufladungen",children:[]},{level:3,title:"Ausloggen",slug:"ausloggen",children:[]}]},{level:2,title:"Ressourcen",slug:"ressourcen",children:[]}],path:"/de/integrations/web3auth.html",pathLocale:"/de/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"So erstellen Sie ein Systemkonto",slug:"so-erstellen-sie-ein-systemkonto",children:[]},{level:2,title:"So berechnen Sie die Kontokosten",slug:"so-berechnen-sie-die-kontokosten",children:[]},{level:2,title:"So erstellen Sie Konten mit Seeds",slug:"so-erstellen-sie-konten-mit-seeds",children:[{level:3,title:"Generieren",slug:"generieren",children:[]},{level:3,title:"Erstellen",slug:"erstellen",children:[]},{level:3,title:"Transferieren",slug:"transferieren",children:[]}]},{level:2,title:"So erstellen Sie PDAs",slug:"so-erstellen-sie-pdas",children:[{level:3,title:"Generieren Sie einen PDA",slug:"generieren-sie-einen-pda",children:[]},{level:3,title:"Erstellen Sie einen PDA",slug:"erstellen-sie-einen-pda",children:[]}]},{level:2,title:"So signieren Sie mit einem PDA",slug:"so-signieren-sie-mit-einem-pda",children:[{level:3,title:"Programm",slug:"programm",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"So erhalten Sie Programmkonten",slug:"so-erhalten-sie-programmkonten",children:[]},{level:2,title:"So schlie\xDFen Sie Konten",slug:"so-schlie\xDFen-sie-konten",children:[]},{level:2,title:"So erhalten Sie den Kontostand",slug:"so-erhalten-sie-den-kontostand",children:[]}],path:"/de/references/accounts.html",pathLocale:"/de/",extraFields:[]},{title:"Transaktionen versenden",headers:[{level:2,title:"So senden Sie SPL-Tokens",slug:"so-senden-sie-spl-tokens",children:[]},{level:2,title:"So berechnen Sie die Transaktionskosten",slug:"so-berechnen-sie-die-transaktionskosten",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"So f\xFCgen Sie einer Transaktion eine Notiz hinzu",slug:"so-fugen-sie-einer-transaktion-eine-notiz-hinzu",children:[]},{level:2,title:"So \xE4ndern Sie das Computing-Budget, die Geb\xFChr & Priorit\xE4t f\xFCr eine Transaktion",slug:"so-andern-sie-das-computing-budget-die-gebuhr-prioritat-fur-eine-transaktion",children:[]}],path:"/de/references/basic-transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"So generieren Sie ein neues Schl\xFCsselpaar",slug:"so-generieren-sie-ein-neues-schlusselpaar",children:[]},{level:2,title:"So stellen Sie ein Schl\xFCsselpaar aus einem Geheimnis wieder her",slug:"so-stellen-sie-ein-schlusselpaar-aus-einem-geheimnis-wieder-her",children:[]},{level:2,title:"So verifizieren Sie ein Schl\xFCsselpaar",slug:"so-verifizieren-sie-ein-schlusselpaar",children:[]},{level:2,title:"So \xFCberpr\xFCfen Sie, ob ein \xF6ffentlicher Schl\xFCssel einen zugeh\xF6rigen privaten Schl\xFCssel hat",slug:"so-uberprufen-sie-ob-ein-offentlicher-schlussel-einen-zugehorigen-privaten-schlussel-hat",children:[]},{level:2,title:"Wie man eine mnemonische Phrase generiert",slug:"wie-man-eine-mnemonische-phrase-generiert",children:[]},{level:2,title:"So stellen Sie ein Schl\xFCsselpaar aus einer mnemonischen Phrase wieder her",slug:"so-stellen-sie-ein-schlusselpaar-aus-einer-mnemonischen-phrase-wieder-her",children:[]},{level:2,title:"So generieren Sie eine Vanity-Adresse",slug:"so-generieren-sie-eine-vanity-adresse",children:[]},{level:2,title:"So signieren und verifizieren Sie Nachrichten mit Wallets",slug:"so-signieren-und-verifizieren-sie-nachrichten-mit-wallets",children:[]},{level:2,title:"So verbinden Sie sich mit einer Brieftasche",slug:"so-verbinden-sie-sich-mit-einer-brieftasche",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/de/references/keypairs-and-wallets.html",pathLocale:"/de/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"Starten eines lokalen Validators",slug:"starten-eines-lokalen-validators",children:[]},{level:2,title:"Verbindung zu Umgebungen",slug:"verbindung-zu-umgebungen",children:[]},{level:2,title:"Abonnieren von Veranstaltungen",slug:"abonnieren-von-veranstaltungen",children:[]},{level:2,title:"Test SOL erhalten",slug:"test-sol-erhalten",children:[]},{level:2,title:"Verwenden von Mainnet-Konten und -Programmen",slug:"verwenden-von-mainnet-konten-und-programmen",children:[{level:3,title:"So laden Sie Konten aus dem Mainnet",slug:"so-laden-sie-konten-aus-dem-mainnet",children:[]},{level:3,title:"So laden Sie Programme aus dem Mainnet",slug:"so-laden-sie-programme-aus-dem-mainnet",children:[]}]}],path:"/de/references/local-development.html",pathLocale:"/de/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Namensregister",slug:"namensregister",children:[]},{level:2,title:"SOL-Dom\xE4nen aufl\xF6sen",slug:"sol-domanen-auflosen",children:[]},{level:2,title:"R\xFCckw\xE4rtssuche",slug:"ruckwartssuche",children:[]},{level:2,title:"Subdomain nachschlagen",slug:"subdomain-nachschlagen",children:[]},{level:2,title:"Finden Sie alle Domainnamen, die einem \xF6ffentlichen Schl\xFCssel geh\xF6ren",slug:"finden-sie-alle-domainnamen-die-einem-offentlichen-schlussel-gehoren",children:[]},{level:2,title:"Ein Twitter-Handle aufl\xF6sen",slug:"ein-twitter-handle-auflosen",children:[]},{level:2,title:"Umgekehrte Suche nach einem Twitter-Handle",slug:"umgekehrte-suche-nach-einem-twitter-handle",children:[]}],path:"/de/references/name-service.html",pathLocale:"/de/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"So erstellen Sie eine NFT",slug:"so-erstellen-sie-eine-nft",children:[{level:3,title:"Upload zu Arweave",slug:"upload-zu-arweave",children:[]},{level:3,title:"Minte das NFT",slug:"minte-das-nft",children:[]}]},{level:2,title:"So erhalten Sie NFT-Metadaten",slug:"so-erhalten-sie-nft-metadaten",children:[]},{level:2,title:"So erhalten Sie den Besitzer eines NFT",slug:"so-erhalten-sie-den-besitzer-eines-nft",children:[]},{level:2,title:"So erhalten Sie NFT Mint-Adressen",slug:"so-erhalten-sie-nft-mint-adressen",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"Wie bekomme ich alle NFTs aus einem Wallet?",slug:"wie-bekomme-ich-alle-nfts-aus-einem-wallet",children:[]},{level:2,title:"Candy Machine v2",slug:"candy-machine-v2-1",children:[{level:3,title:"Wie erstelle ich eine Candy Machine?",slug:"wie-erstelle-ich-eine-candy-machine",children:[]},{level:3,title:"Wie Sie eine Candy Machine l\xF6schen",slug:"wie-sie-eine-candy-machine-loschen",children:[]},{level:3,title:"So finden Sie die Candy Machine Autorit\xE4t",slug:"so-finden-sie-die-candy-machine-autoritat",children:[]},{level:3,title:"So finden Sie Candy Machine mit der Wallet-Adresse",slug:"so-finden-sie-candy-machine-mit-der-wallet-adresse",children:[]},{level:3,title:"So finden Sie Candy Machine anhand seiner Adresse",slug:"so-finden-sie-candy-machine-anhand-seiner-adresse",children:[]},{level:3,title:"So finden Sie gepr\xE4gte NFTs von einer Candy Machine",slug:"so-finden-sie-gepragte-nfts-von-einer-candy-machine",children:[]},{level:3,title:"So f\xFCgen Sie Artikel in einer Candy Machine bei",slug:"so-fugen-sie-artikel-in-einer-candy-machine-bei",children:[]},{level:3,title:"Wie man einen NFT von einer Candy Machine pr\xE4gt",slug:"wie-man-einen-nft-von-einer-candy-machine-pragt",children:[]}]}],path:"/de/references/nfts.html",pathLocale:"/de/",extraFields:[]},{title:"Senden von Offline-Transaktionen",headers:[{level:2,title:"Transaktion unterzeichnen",slug:"transaktion-unterzeichnen",children:[]},{level:2,title:"Transaktion teilweise signieren",slug:"transaktion-teilweise-signieren",children:[]},{level:2,title:"Langlebige Nonce",slug:"langlebige-nonce",children:[{level:3,title:"Erstellen Sie ein Nonce-Konto",slug:"erstellen-sie-ein-nonce-konto",children:[]},{level:3,title:"Holen Sie sich ein Nonce-Konto",slug:"holen-sie-sich-ein-nonce-konto",children:[]},{level:3,title:"Verwenden Sie das Nonce-Konto",slug:"verwenden-sie-das-nonce-konto",children:[]}]}],path:"/de/references/offline-transactions.html",pathLocale:"/de/",extraFields:[]},{title:"Programme schreiben",headers:[{level:2,title:"So \xFCbertragen Sie SOL in einem Programm",slug:"so-ubertragen-sie-sol-in-einem-programm",children:[]},{level:2,title:"Wie bekomme ich die Uhr in ein Programm?",slug:"wie-bekomme-ich-die-uhr-in-ein-programm",children:[{level:3,title:"Passing Clock als Konto innerhalb einer Anweisung",slug:"passing-clock-als-konto-innerhalb-einer-anweisung",children:[]},{level:3,title:"Direkter Zugriff auf die Uhr innerhalb einer Anweisung",slug:"direkter-zugriff-auf-die-uhr-innerhalb-einer-anweisung",children:[]}]},{level:2,title:"So \xE4ndern Sie die Kontogr\xF6\xDFe",slug:"so-andern-sie-die-kontogro\xDFe",children:[]},{level:2,title:"Wie man einen programm\xFCbergreifenden Aufruf durchf\xFChrt",slug:"wie-man-einen-programmubergreifenden-aufruf-durchfuhrt",children:[]},{level:2,title:"So erstellen Sie einen PDA",slug:"so-erstellen-sie-einen-pda",children:[]},{level:2,title:"Wie man Konten liest",slug:"wie-man-konten-liest",children:[]},{level:2,title:"So verifizieren Sie Konten",slug:"so-verifizieren-sie-konten",children:[]},{level:2,title:"So lesen Sie mehrere Anweisungen aus einer Transaktion",slug:"so-lesen-sie-mehrere-anweisungen-aus-einer-transaktion",children:[]}],path:"/de/references/programs.html",pathLocale:"/de/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Holen Sie sich aktuelle Validatoren",slug:"holen-sie-sich-aktuelle-validatoren",children:[]},{level:2,title:"Einsatzkonto erstellen",slug:"einsatzkonto-erstellen",children:[]},{level:2,title:"Stake delegieren",slug:"stake-delegieren",children:[]},{level:2,title:"Delegator durch Validatoren abrufen",slug:"delegator-durch-validatoren-abrufen",children:[]},{level:2,title:"Stake deaktivieren",slug:"stake-deaktivieren",children:[]},{level:2,title:"Stake Auszahlen",slug:"stake-auszahlen",children:[]}],path:"/de/references/staking.html",pathLocale:"/de/",extraFields:[]},{title:"Interaktion mit Tokens",headers:[{level:2,title:"Was ben\xF6tige ich, um mit SPL-Tokens zu beginnen?",slug:"was-benotige-ich-um-mit-spl-tokens-zu-beginnen",children:[]},{level:2,title:"So erstellen Sie ein neues Token",slug:"so-erstellen-sie-ein-neues-token",children:[]},{level:2,title:"So erhalten Sie eine Token-Minze",slug:"so-erhalten-sie-eine-token-minze",children:[]},{level:2,title:"So erstellen Sie ein Token-Konto",slug:"so-erstellen-sie-ein-token-konto",children:[]},{level:2,title:"So erhalten Sie ein Token-Konto",slug:"so-erhalten-sie-ein-token-konto",children:[]},{level:2,title:"So erhalten Sie das Guthaben eines Token-Kontos",slug:"so-erhalten-sie-das-guthaben-eines-token-kontos",children:[]},{level:2,title:"Wie man Token pr\xE4gt",slug:"wie-man-token-pragt",children:[]},{level:2,title:"So \xFCbertragen Sie Token",slug:"so-ubertragen-sie-token",children:[]},{level:2,title:"Wie man Token verbrennt",slug:"wie-man-token-verbrennt",children:[]},{level:2,title:"So schlie\xDFen Sie Token-Konten",slug:"so-schlie\xDFen-sie-token-konten",children:[]},{level:2,title:"So legen Sie die Autorit\xE4t f\xFCr Token-Konten oder Mints fest",slug:"so-legen-sie-die-autoritat-fur-token-konten-oder-mints-fest",children:[]},{level:2,title:"So genehmigen Sie einen Token-Delegierten",slug:"so-genehmigen-sie-einen-token-delegierten",children:[]},{level:2,title:"So widerrufen Sie einen Token-Delegierten",slug:"so-widerrufen-sie-einen-token-delegierten",children:[]},{level:2,title:"So verwalten Sie verpackte SOL",slug:"so-verwalten-sie-verpackte-sol",children:[{level:3,title:"Token-Konto erstellen",slug:"token-konto-erstellen",children:[]},{level:3,title:"Guthaben hinzuf\xFCgen",slug:"guthaben-hinzufugen",children:[]}]},{level:2,title:"So erhalten Sie alle Token-Konten nach Eigent\xFCmer",slug:"so-erhalten-sie-alle-token-konten-nach-eigentumer",children:[]}],path:"/de/references/token.html",pathLocale:"/de/",extraFields:[]},{title:"Cuentas",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"El modelo de una cuenta",slug:"el-modelo-de-una-cuenta",children:[]},{level:3,title:"Renta",slug:"renta",children:[]}]},{level:2,title:"Otros recursos",slug:"otros-recursos",children:[{level:3,title:"Creditos",slug:"creditos",children:[]}]}],path:"/es/core-concepts/accounts.html",pathLocale:"/es/",extraFields:[]},{title:"Direcciones derivadas de programa (PDAs)",headers:[{level:2,title:"Hechos",slug:"hechos",children:[{level:3,title:"Generando PDAs",slug:"generando-pdas",children:[]},{level:3,title:"Interactuando con PDAs",slug:"interactuando-con-pdas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/es/core-concepts/pdas.html",pathLocale:"/es/",extraFields:[]},{title:"Programas",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"Programas nativos & La librer\xEDa de Programas de Solana (SPL)",slug:"programas-nativos-la-libreria-de-programas-de-solana-spl",children:[]},{level:3,title:"Escribiendo programas",slug:"escribiendo-programas",children:[]},{level:3,title:"Desplegando Programas",slug:"desplegando-programas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/es/core-concepts/programs.html",pathLocale:"/es/",extraFields:[]},{title:"Transacciones",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"Cargos (fees)",slug:"cargos-fees",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/es/core-concepts/transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Instalaci\xF3n",headers:[{level:2,title:"Instalaci\xF3n de Web3.js",slug:"instalacion-de-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Instalaci\xF3n de Rust",slug:"instalacion-de-rust",children:[]},{level:2,title:"Instalaci\xF3n de CLI",slug:"instalacion-de-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Compilaci\xF3n desde el C\xF3digo Fuente",slug:"compilacion-desde-el-codigo-fuente",children:[]}]}],path:"/es/getting-started/installation.html",pathLocale:"/es/",extraFields:[]},{title:"C\xF3mo usar Map en cuentas",headers:[{level:2,title:"Derivando PDAs",slug:"derivando-pdas",children:[]},{level:2,title:"Map simple",slug:"map-simple",children:[]}],path:"/es/guides/account-maps.html",pathLocale:"/es/",extraFields:[]},{title:"Migrando cuentas de datos de programas",headers:[{level:2,title:"\xBFC\xF3mo se pueden migrar las cuentas de datos de un programa?",slug:"\xBFcomo-se-pueden-migrar-las-cuentas-de-datos-de-un-programa",children:[]},{level:2,title:"Escenario",slug:"escenario",children:[]},{level:2,title:"Actualizando la cuenta",slug:"actualizando-la-cuenta",children:[{level:3,title:"1. Agregar la l\xF3gica de conversi\xF3n de cuenta",slug:"_1-agregar-la-logica-de-conversion-de-cuenta",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/es/guides/data-migration.html",pathLocale:"/es/",extraFields:[]},{title:"Depurando Programas en Solana",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Pruebas de tiempo de ejecuci\xF3n y depuraci\xF3n en el editor",slug:"pruebas-de-tiempo-de-ejecucion-y-depuracion-en-el-editor",children:[]},{level:2,title:"Pruebas de nodo de validaci\xF3n local en el editor (Local Validator)",slug:"pruebas-de-nodo-de-validacion-local-en-el-editor-local-validator",children:[]},{level:2,title:"Pruebas de nodos de validadores locales desde aplicaciones cliente",slug:"pruebas-de-nodos-de-validadores-locales-desde-aplicaciones-cliente",children:[]},{level:2,title:"Recursos",slug:"recursos",children:[]}],path:"/es/guides/debugging-solana-programs.html",pathLocale:"/es/",extraFields:[]},{title:"Prueba de paridad de caracter\xEDsticas",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Escenario",slug:"escenario",children:[]},{level:2,title:"Estado de la funci\xF3n",slug:"estado-de-la-funcion",children:[]},{level:2,title:"Pruebas de paridad",slug:"pruebas-de-paridad",children:[]},{level:2,title:"Demostraci\xF3n sencilla",slug:"demostracion-sencilla",children:[{level:3,title:"Todas las funciones activadas",slug:"todas-las-funciones-activadas",children:[]},{level:3,title:"Funciones selectivas desactivadas",slug:"funciones-selectivas-desactivadas",children:[]}]},{level:2,title:"Pruebas de paridad completa",slug:"pruebas-de-paridad-completa",children:[]},{level:2,title:"Pruebas de paridad completa program\xE1ticamente",slug:"pruebas-de-paridad-completa-programaticamente",children:[]},{level:2,title:"Recursos",slug:"recursos",children:[]}],path:"/es/guides/feature-parity-testing.html",pathLocale:"/es/",extraFields:[]},{title:"Obtener cuentas de programa",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"Un vistazo m\xE1s profundo",slug:"un-vistazo-mas-profundo",children:[{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Otros recursos",slug:"otros-recursos",children:[]}],path:"/es/guides/get-program-accounts.html",pathLocale:"/es/",extraFields:[]},{title:"Reintentando Transacciones",headers:[{level:2,title:"Hechos",slug:"hechos",children:[]},{level:2,title:"El viaje de una transacci\xF3n",slug:"el-viaje-de-una-transaccion",children:[{level:3,title:"C\xF3mo los clientes env\xEDan transacciones",slug:"como-los-clientes-envian-transacciones",children:[]},{level:3,title:"C\xF3mo transmiten las transacciones los nodos RPC",slug:"como-transmiten-las-transacciones-los-nodos-rpc",children:[]}]},{level:2,title:"C\xF3mo se caen las transacciones",slug:"como-se-caen-las-transacciones",children:[{level:3,title:"Antes de que se procese una transacci\xF3n",slug:"antes-de-que-se-procese-una-transaccion",children:[]},{level:3,title:"Despu\xE9s de que se procese una transacci\xF3n y antes de que finalice",slug:"despues-de-que-se-procese-una-transaccion-y-antes-de-que-finalice",children:[]}]},{level:2,title:"Manejo de transacciones descartadas",slug:"manejo-de-transacciones-descartadas",children:[{level:3,title:"Una mirada en profundidad a sendTransaction",slug:"una-mirada-en-profundidad-a-sendtransaction",children:[]}]},{level:2,title:"Personalizaci\xF3n de la l\xF3gica de retransmisi\xF3n",slug:"personalizacion-de-la-logica-de-retransmision",children:[{level:3,title:"El costo de omitir la verificaci\xF3n previa",slug:"el-costo-de-omitir-la-verificacion-previa",children:[]},{level:3,title:"Cu\xE1ndo volver a firmar transacciones",slug:"cuando-volver-a-firmar-transacciones",children:[]}]},{level:2,title:"Agradecimientos",slug:"agradecimientos",children:[]}],path:"/es/guides/retrying-transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Serializando datos",headers:[{level:2,title:"Configuraci\xF3n para la serializaci\xF3n con Borsh",slug:"configuracion-para-la-serializacion-con-borsh",children:[]},{level:2,title:"C\xF3mo serializar datos de instrucciones en el cliente",slug:"como-serializar-datos-de-instrucciones-en-el-cliente",children:[]},{level:2,title:"How to deserialize instruction data on the program",slug:"how-to-deserialize-instruction-data-on-the-program",children:[]},{level:2,title:"C\xF3mo serializar los datos de la cuenta en el programa",slug:"como-serializar-los-datos-de-la-cuenta-en-el-programa",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serializaci\xF3n/Deserealizaci\xF3n",slug:"serializacion-deserealizacion",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"C\xF3mo deserializar los datos de la cuenta en el cliente",slug:"como-deserializar-los-datos-de-la-cuenta-en-el-cliente",children:[]},{level:2,title:"Mappins comunes de Solana TS/JS",slug:"mappins-comunes-de-solana-ts-js",children:[]},{level:2,title:"Construcciones avanzadas",slug:"construcciones-avanzadas",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Recursos",slug:"recursos",children:[]}],path:"/es/guides/serialization.html",pathLocale:"/es/",extraFields:[]},{title:"Cuentas",headers:[{level:2,title:"C\xF3mo crear una cuenta del sistema",slug:"como-crear-una-cuenta-del-sistema",children:[]},{level:2,title:"C\xF3mo calcular el costo de una cuenta",slug:"como-calcular-el-costo-de-una-cuenta",children:[]},{level:2,title:"C\xF3mo crear cuentas con semillas",slug:"como-crear-cuentas-con-semillas",children:[{level:3,title:"Generar",slug:"generar",children:[]},{level:3,title:"Crear",slug:"crear",children:[]},{level:3,title:"Transferir",slug:"transferir",children:[]}]},{level:2,title:"C\xF3mo crear PDAs",slug:"como-crear-pdas",children:[{level:3,title:"Generar una cuenta derivada de programa (PDA)",slug:"generar-una-cuenta-derivada-de-programa-pda",children:[]},{level:3,title:"Crear una cuenta derivada de programa (PDA)",slug:"crear-una-cuenta-derivada-de-programa-pda",children:[]}]},{level:2,title:"C\xF3mo firmar con una cuenta derivada de programa (PDA)",slug:"como-firmar-con-una-cuenta-derivada-de-programa-pda",children:[{level:3,title:"Programa",slug:"programa-1",children:[]},{level:3,title:"Cliente",slug:"cliente-1",children:[]}]},{level:2,title:"C\xF3mo obtener cuentas de programas",slug:"como-obtener-cuentas-de-programas",children:[]},{level:2,title:"C\xF3mo cerrar cuentas",slug:"como-cerrar-cuentas",children:[]},{level:2,title:"C\xF3mo obtener el balance de una cuenta",slug:"como-obtener-el-balance-de-una-cuenta",children:[]}],path:"/es/references/accounts.html",pathLocale:"/es/",extraFields:[]},{title:"Enviando transacciones",headers:[{level:2,title:"C\xF3mo enviar SOL",slug:"como-enviar-sol",children:[]},{level:2,title:"How to send SPL-Tokens",slug:"how-to-send-spl-tokens",children:[]},{level:2,title:"C\xF3mo calcular el costo de una transacci\xF3n",slug:"como-calcular-el-costo-de-una-transaccion",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"C\xF3mo agregar un memo en una transacci\xF3n",slug:"como-agregar-un-memo-en-una-transaccion",children:[]},{level:2,title:"C\xF3mo cambiar el presupuesto de c\xF3mputo para una transacci\xF3n",slug:"como-cambiar-el-presupuesto-de-computo-para-una-transaccion",children:[]}],path:"/es/references/basic-transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Pares de llaves y billeteras",headers:[{level:2,title:"C\xF3mo generar un nuevo Keypair (par de llaves)",slug:"como-generar-un-nuevo-keypair-par-de-llaves",children:[]},{level:2,title:"C\xF3mo restaurar un par de llaves a partir de una llave privada",slug:"como-restaurar-un-par-de-llaves-a-partir-de-una-llave-privada",children:[]},{level:2,title:"C\xF3mo verificar un par de llaves",slug:"como-verificar-un-par-de-llaves",children:[]},{level:2,title:"C\xF3mo comprobar si una llave p\xFAblica tiene una llave privada asociada",slug:"como-comprobar-si-una-llave-publica-tiene-una-llave-privada-asociada",children:[]},{level:2,title:"C\xF3mo generar una frase semilla (mnemonic)",slug:"como-generar-una-frase-semilla-mnemonic",children:[]},{level:2,title:"C\xF3mo restaurar un par de llaves desde una frase semilla",slug:"como-restaurar-un-par-de-llaves-desde-una-frase-semilla",children:[]},{level:2,title:"C\xF3mo generar una direcci\xF3n personalizada",slug:"como-generar-una-direccion-personalizada",children:[]},{level:2,title:"C\xF3mo firmar y verificar mensajes con wallets",slug:"como-firmar-y-verificar-mensajes-con-wallets",children:[]},{level:2,title:"C\xF3mo conectar una wallet",slug:"como-conectar-una-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/es/references/keypairs-and-wallets.html",pathLocale:"/es/",extraFields:[]},{title:"Desarrollo en entorno local",headers:[{level:2,title:"Iniciando un validador",slug:"iniciando-un-validador",children:[]},{level:2,title:"Conect\xE1ndote con los diferentes entornos",slug:"conectandote-con-los-diferentes-entornos",children:[]},{level:2,title:"Suscripci\xF3n a eventos",slug:"suscripcion-a-eventos",children:[]},{level:2,title:"Obteniendo SOL para pruebas",slug:"obteniendo-sol-para-pruebas",children:[]},{level:2,title:"Usando cuentas de mainnet y programas",slug:"usando-cuentas-de-mainnet-y-programas",children:[{level:3,title:"C\xF3mo cargar cuentas de mainnet",slug:"como-cargar-cuentas-de-mainnet",children:[]},{level:3,title:"C\xF3mo cargar programas de mainnet",slug:"como-cargar-programas-de-mainnet",children:[]}]}],path:"/es/references/local-development.html",pathLocale:"/es/",extraFields:[]},{title:"Servicio de nombres",headers:[{level:2,title:"Registro de nombres",slug:"registro-de-nombres",children:[]},{level:2,title:"Resolviendo dominios SOL",slug:"resolviendo-dominios-sol",children:[]},{level:2,title:"B\xFAsqueda inversa",slug:"busqueda-inversa",children:[]},{level:2,title:"B\xFAsqueda de subdominios",slug:"busqueda-de-subdominios",children:[]},{level:2,title:"Encuentre todos los nombres de dominio que pertenecen a una clave p\xFAblica",slug:"encuentre-todos-los-nombres-de-dominio-que-pertenecen-a-una-clave-publica",children:[]},{level:2,title:"Resolver un identificador de Twitter",slug:"resolver-un-identificador-de-twitter",children:[]},{level:2,title:"B\xFAsqueda inversa de un identificador de Twitter",slug:"busqueda-inversa-de-un-identificador-de-twitter",children:[]}],path:"/es/references/name-service.html",pathLocale:"/es/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"\xBFC\xF3mo crear un NFT?",slug:"\xBFcomo-crear-un-nft",children:[{level:3,title:"Subir a Arweave",slug:"subir-a-arweave",children:[]},{level:3,title:"Crear (mint) el NFT",slug:"crear-mint-el-nft",children:[]}]},{level:2,title:"\xBFC\xF3mo obtener metadatos de un NFT?",slug:"\xBFcomo-obtener-metadatos-de-un-nft",children:[]},{level:2,title:"\xBFC\xF3mo obtener el due\xF1o de un NFT?",slug:"\xBFcomo-obtener-el-dueno-de-un-nft",children:[]},{level:2,title:"\xBFC\xF3mo obtener direcciones de mint de NFT?",slug:"\xBFcomo-obtener-direcciones-de-mint-de-nft",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"\xBFC\xF3mo obtener todos los NFT de una billetera?",slug:"\xBFcomo-obtener-todos-los-nft-de-una-billetera",children:[]}],path:"/es/references/nfts.html",pathLocale:"/es/",extraFields:[]},{title:"Enviando transacciones offline",headers:[{level:2,title:"Firmar una transacci\xF3n",slug:"firmar-una-transaccion",children:[]},{level:2,title:"Firma parcial de una transacci\xF3n",slug:"firma-parcial-de-una-transaccion",children:[]},{level:2,title:"Nonce de larga duraci\xF3n (Durable Nonce)",slug:"nonce-de-larga-duracion-durable-nonce",children:[{level:3,title:"Crear una cuenta nonce",slug:"crear-una-cuenta-nonce",children:[]},{level:3,title:"Obtener una cuenta nonce",slug:"obtener-una-cuenta-nonce",children:[]},{level:3,title:"Usar una cuenta nonce",slug:"usar-una-cuenta-nonce",children:[]}]}],path:"/es/references/offline-transactions.html",pathLocale:"/es/",extraFields:[]},{title:"Escribiendo Programas",headers:[{level:2,title:"C\xF3mo transferir SOL a un programa",slug:"como-transferir-sol-a-un-programa",children:[]},{level:2,title:"C\xF3mo obtener una referencia al reloj en un programa",slug:"como-obtener-una-referencia-al-reloj-en-un-programa",children:[{level:3,title:"Enviando Clock c\xF3mo una cuenta dentro de una instrucci\xF3n",slug:"enviando-clock-como-una-cuenta-dentro-de-una-instruccion",children:[]},{level:3,title:"Accediendo al reloj directamente dentro de una instrucci\xF3n",slug:"accediendo-al-reloj-directamente-dentro-de-una-instruccion",children:[]}]},{level:2,title:"C\xF3mo cambiar el tama\xF1o de una cuenta",slug:"como-cambiar-el-tamano-de-una-cuenta",children:[]},{level:2,title:"C\xF3mo hacer una invocaci\xF3n entre programas (Cross Program Invocation)",slug:"como-hacer-una-invocacion-entre-programas-cross-program-invocation",children:[]},{level:2,title:"C\xF3mo crear una cuenta derivada de programa (PDA)",slug:"como-crear-una-cuenta-derivada-de-programa-pda",children:[]},{level:2,title:"C\xF3mo leer cuentas",slug:"como-leer-cuentas",children:[]},{level:2,title:"C\xF3mo verificar cuentas",slug:"como-verificar-cuentas",children:[]},{level:2,title:"C\xF3mo leer m\xFAltiples instrucciones de una transacci\xF3n",slug:"como-leer-multiples-instrucciones-de-una-transaccion",children:[]}],path:"/es/references/programs.html",pathLocale:"/es/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Obtener los validadores actuales",slug:"obtener-los-validadores-actuales",children:[]},{level:2,title:"\xBFCrear una cuenta de stake?",slug:"\xBFcrear-una-cuenta-de-stake",children:[]},{level:2,title:"Delegar Stake",slug:"delegar-stake",children:[]},{level:2,title:"Obtener el delegador por los validadores",slug:"obtener-el-delegador-por-los-validadores",children:[]},{level:2,title:"Desactivar Stake",slug:"desactivar-stake",children:[]},{level:2,title:"Retirar Stake",slug:"retirar-stake",children:[]}],path:"/es/references/staking.html",pathLocale:"/es/",extraFields:[]},{title:"Interactuando con tokens",headers:[{level:2,title:"\xBFQu\xE9 necesito para comenzar a trabajar con SPL-Tokens?",slug:"\xBFque-necesito-para-comenzar-a-trabajar-con-spl-tokens",children:[]},{level:2,title:"\xBFC\xF3mo crear un nuevo token?",slug:"\xBFcomo-crear-un-nuevo-token",children:[]},{level:2,title:'\xBFC\xF3mo obtener un token "mint"?',slug:"\xBFcomo-obtener-un-token-mint",children:[]},{level:2,title:"\xBFC\xF3mo crear una cuenta de token?",slug:"\xBFcomo-crear-una-cuenta-de-token",children:[]},{level:2,title:"\xBFC\xF3mo obtener un cuenta de token?",slug:"\xBFcomo-obtener-un-cuenta-de-token",children:[]},{level:2,title:"\xBFC\xF3mo obtener el saldo de una cuenta token?",slug:"\xBFcomo-obtener-el-saldo-de-una-cuenta-token",children:[]},{level:2,title:"\xBFC\xF3mo crear (mint) nuevos tokens?",slug:"\xBFcomo-crear-mint-nuevos-tokens",children:[]},{level:2,title:"\xBFC\xF3mo transferir tokens?",slug:"\xBFcomo-transferir-tokens",children:[]},{level:2,title:"\xBFC\xF3mo quemar tokens?",slug:"\xBFcomo-quemar-tokens",children:[]},{level:2,title:"\xBFC\xF3mo cerrar cuentas de token?",slug:"\xBFcomo-cerrar-cuentas-de-token",children:[]},{level:2,title:"\xBFC\xF3mo establecer la autoridad en cuentas de tokens o mints?",slug:"\xBFcomo-establecer-la-autoridad-en-cuentas-de-tokens-o-mints",children:[]},{level:2,title:"\xBFC\xF3mo aprobar una delegaci\xF3n de token?",slug:"\xBFcomo-aprobar-una-delegacion-de-token",children:[]},{level:2,title:"\xBFC\xF3mo revocar una delegaci\xF3n de token?",slug:"\xBFcomo-revocar-una-delegacion-de-token",children:[]},{level:2,title:"\xBFC\xF3mo manejar Wrapped SOL?",slug:"\xBFcomo-manejar-wrapped-sol",children:[{level:3,title:"Crear una cuenta de token",slug:"crear-una-cuenta-de-token",children:[]},{level:3,title:"Agregar saldo",slug:"agregar-saldo",children:[]}]},{level:2,title:"\xBFC\xF3mo obtener todas las cuentas de token por propietario?",slug:"\xBFcomo-obtener-todas-las-cuentas-de-token-por-propietario",children:[]}],path:"/es/references/token.html",pathLocale:"/es/",extraFields:[]},{title:"Comptes",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"Le mod\xE8le d'un compte",slug:"le-modele-d-un-compte",children:[]},{level:3,title:"Rente",slug:"rente",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[{level:3,title:"Cr\xE9dit",slug:"credit",children:[]}]}],path:"/fr/core-concepts/accounts.html",pathLocale:"/fr/",extraFields:[]},{title:"Adresses d\xE9riv\xE9es de programmes (PDAs)",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"G\xE9n\xE9ration des PDAs",slug:"generation-des-pdas",children:[]},{level:3,title:"Interaction avec les PDAs",slug:"interaction-avec-les-pdas",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/core-concepts/pdas.html",pathLocale:"/fr/",extraFields:[]},{title:"Programmes",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"Programmes Natifs & La Biblioth\xE8que des Programmes de Solana (SPL)",slug:"programmes-natifs-la-bibliotheque-des-programmes-de-solana-spl",children:[]},{level:3,title:"Ecrire des programmes",slug:"ecrire-des-programmes",children:[]},{level:3,title:"D\xE9ployer des programmes",slug:"deployer-des-programmes",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/core-concepts/programs.html",pathLocale:"/fr/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"Frais",slug:"frais",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/core-concepts/transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Installer Web3.js",slug:"installer-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Installer Rust",slug:"installer-rust",children:[]},{level:2,title:"Installer CLI",slug:"installer-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Compiler \xE0 partir du code source",slug:"compiler-a-partir-du-code-source",children:[]}]}],path:"/fr/getting-started/installation.html",pathLocale:"/fr/",extraFields:[]},{title:"Maps de Comptes",headers:[{level:2,title:"D\xE9rivation des PDAs",slug:"derivation-des-pdas",children:[]},{level:2,title:"Compte de Map Unique",slug:"compte-de-map-unique",children:[]}],path:"/fr/guides/account-maps.html",pathLocale:"/fr/",extraFields:[]},{title:"Migration des Comptes de Donn\xE9es de Programmes",headers:[{level:2,title:"Comment migrer les comptes de donn\xE9es d'un programme ?",slug:"comment-migrer-les-comptes-de-donnees-d-un-programme",children:[]},{level:2,title:"Sc\xE9nario",slug:"scenario",children:[]},{level:2,title:"Mise \xE0 jour du Compte",slug:"mise-a-jour-du-compte",children:[{level:3,title:"1. Ajouter une logique de conversion de compte",slug:"_1-ajouter-une-logique-de-conversion-de-compte",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/data-migration.html",pathLocale:"/fr/",extraFields:[]},{title:"D\xE9bogage des Programmes Solana",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Tests d'Ex\xE9cution et D\xE9bogage dans l'\xE9diteur",slug:"tests-d-execution-et-debogage-dans-l-editeur",children:[]},{level:2,title:"Test avec un N\u0153ud de Validation Local dans l'\xE9diteur",slug:"test-avec-un-n\u0153ud-de-validation-local-dans-l-editeur",children:[]},{level:2,title:"Test avec un N\u0153ud de Validation Local \xE0 partir des Applications Clients",slug:"test-avec-un-n\u0153ud-de-validation-local-a-partir-des-applications-clients",children:[]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/debugging-solana-programs.html",pathLocale:"/fr/",extraFields:[]},{title:"Test de Conformit\xE9 des Fonctionnalit\xE9s",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Sc\xE9nario",slug:"scenario",children:[]},{level:2,title:"Statut de la Fonctionnalit\xE9",slug:"statut-de-la-fonctionnalite",children:[]},{level:2,title:"Test de Conformit\xE9",slug:"test-de-conformite",children:[]},{level:2,title:"D\xE9monstration Simple",slug:"demonstration-simple",children:[{level:3,title:"Toutes les fonctionnalit\xE9s activ\xE9es",slug:"toutes-les-fonctionnalites-activees",children:[]},{level:3,title:"Fonctionnalit\xE9s s\xE9lectives d\xE9sactiv\xE9es",slug:"fonctionnalites-selectives-desactivees",children:[]}]},{level:2,title:"Tests de Conformit\xE9 Compl\xE8te",slug:"tests-de-conformite-complete",children:[]},{level:2,title:"Test de Conformit\xE9 Compl\xE8te programm\xE9",slug:"test-de-conformite-complete-programme",children:[]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/feature-parity-testing.html",pathLocale:"/fr/",extraFields:[]},{title:"Obtenir les comptes d'un programme",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Examen plus approfondi",slug:"examen-plus-approfondi",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/guides/get-program-accounts.html",pathLocale:"/fr/",extraFields:[]},{title:"R\xE9essayer des Transactions",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Le Voyage d'une Transaction",slug:"le-voyage-d-une-transaction",children:[{level:3,title:"Comment Les Clients Soumettent Les Transactions",slug:"comment-les-clients-soumettent-les-transactions",children:[]},{level:3,title:"Comment Les N\u0153uds RPC Transmettent Les Transactions",slug:"comment-les-n\u0153uds-rpc-transmettent-les-transactions",children:[]}]},{level:2,title:"Comment Les Transactions Sont Rejet\xE9es",slug:"comment-les-transactions-sont-rejetees",children:[{level:3,title:"Avant le traitement d'une transaction",slug:"avant-le-traitement-d-une-transaction",children:[]},{level:3,title:"Apr\xE8s le traitement d'une transaction et avant sa finalisation",slug:"apres-le-traitement-d-une-transaction-et-avant-sa-finalisation",children:[]}]},{level:2,title:"Traitement Des Transactions Rejet\xE9es",slug:"traitement-des-transactions-rejetees",children:[{level:3,title:"Un Examen Approfondi De sendTransaction",slug:"un-examen-approfondi-de-sendtransaction",children:[]}]},{level:2,title:"Personnalisation De La logique De Retransmission",slug:"personnalisation-de-la-logique-de-retransmission",children:[{level:3,title:"Le Co\xFBt de l'Omission Du Contr\xF4le Pr\xE9alable",slug:"le-cout-de-l-omission-du-controle-prealable",children:[]},{level:3,title:"Quand Re-Signer Des Transactions",slug:"quand-re-signer-des-transactions",children:[]}]},{level:2,title:"Remerciements",slug:"remerciements",children:[]}],path:"/fr/guides/retrying-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"S\xE9rialisation des donn\xE9es",headers:[{level:2,title:"Configuration pour la s\xE9rialisation avec Borsh",slug:"configuration-pour-la-serialisation-avec-borsh",children:[]},{level:2,title:"Comment s\xE9rialiser les donn\xE9es d'instruction c\xF4t\xE9 client",slug:"comment-serialiser-les-donnees-d-instruction-cote-client",children:[]},{level:2,title:"Comment d\xE9s\xE9rialiser les donn\xE9es d'instruction dans le programme",slug:"comment-deserialiser-les-donnees-d-instruction-dans-le-programme",children:[]},{level:2,title:"Comment s\xE9rialiser des donn\xE9es du compte dans le programme",slug:"comment-serialiser-des-donnees-du-compte-dans-le-programme",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"S\xE9rialisation/D\xE9s\xE9rialisation",slug:"serialisation-deserialisation",children:[]},{level:3,title:"Utilisation",slug:"utilisation",children:[]}]},{level:2,title:"Comment d\xE9s\xE9rialisation des donn\xE9es du compte c\xF4t\xE9 client",slug:"comment-deserialisation-des-donnees-du-compte-cote-client",children:[]},{level:2,title:"Mappages courants de Solana TS/JS",slug:"mappages-courants-de-solana-ts-js",children:[]},{level:2,title:"Constructions Avanc\xE9es",slug:"constructions-avancees",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/guides/serialization.html",pathLocale:"/fr/",extraFields:[]},{title:"Transactions Versionn\xE9es",headers:[{level:2,title:"Faits",slug:"faits",children:[]},{level:2,title:"Transaction H\xE9rit\xE9e",slug:"transaction-heritee",children:[]},{level:2,title:"Message H\xE9rit\xE9",slug:"message-herite",children:[{level:3,title:"En-t\xEAte",slug:"en-tete",children:[]},{level:3,title:"Tableau compact d'adresses de comptes",slug:"tableau-compact-d-adresses-de-comptes",children:[]},{level:3,title:"Tableau compact d'instructions",slug:"tableau-compact-d-instructions",children:[]}]},{level:2,title:"Probl\xE8mes li\xE9s aux Transactions H\xE9rit\xE9es",slug:"problemes-lies-aux-transactions-heritees",children:[]},{level:2,title:"Tables de Consultation d'Adresses (LUT)",slug:"tables-de-consultation-d-adresses-lut",children:[]},{level:2,title:"Transactions Versionn\xE9es : TransactionV0",slug:"transactions-versionnees-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Tableau compact de consultations de tables d'adresses",slug:"tableau-compact-de-consultations-de-tables-d-adresses",children:[]},{level:3,title:"Tableau compact d'instructions",slug:"tableau-compact-d-instructions-1",children:[]}]},{level:2,title:"Modifications du RPC",slug:"modifications-du-rpc",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]},{level:2,title:"R\xE9f\xE9rences",slug:"references",children:[]}],path:"/fr/guides/versioned-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"Pour Commencer",headers:[{level:2,title:"La composabilit\xE9 est Essentielle",slug:"la-composabilite-est-essentielle",children:[]},{level:2,title:"Contribution",slug:"contribution",children:[]}],path:"/fr/integrations/",pathLocale:"/fr/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"R\xE9cup\xE9ration de la liste des jetons depuis Jupiter",slug:"recuperation-de-la-liste-des-jetons-depuis-jupiter",children:[]},{level:3,title:"Chargement de l'instance Jupiter",slug:"chargement-de-l-instance-jupiter",children:[]},{level:3,title:"Obtenir le Chemin d'Acc\xE8s (RouteMap)",slug:"obtenir-le-chemin-d-acces-routemap",children:[]},{level:3,title:"Obtention des chemins pour un jeton d'Entr\xE9e et de Sortie donn\xE9",slug:"obtention-des-chemins-pour-un-jeton-d-entree-et-de-sortie-donne",children:[]},{level:3,title:"Ex\xE9cuter l'Echange de Jetons",slug:"executer-l-echange-de-jetons",children:[]},{level:2,title:"Comment utiliser Jupiter dans une application React",slug:"comment-utiliser-jupiter-dans-une-application-react",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Ajout du Provider",slug:"ajout-du-provider",children:[]},{level:3,title:"R\xE9cup\xE9ration de la Liste de Jetons",slug:"recuperation-de-la-liste-de-jetons",children:[]},{level:3,title:"Cr\xE9ation de l'\xC9tat",slug:"creation-de-l-etat",children:[]},{level:3,title:"Utilisation du hook react useJupiter",slug:"utilisation-du-hook-react-usejupiter",children:[]},{level:3,title:"Ex\xE9cution de l'Echange",slug:"execution-de-l-echange",children:[]}]},{level:2,title:"Comment utiliser l'API de Jupiter",slug:"comment-utiliser-l-api-de-jupiter",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Obtention du Chemin d'Acc\xE8s",slug:"obtention-du-chemin-d-acces",children:[]},{level:3,title:"Obtention de la Transaction S\xE9rialis\xE9e pour effectuer le Swap",slug:"obtention-de-la-transaction-serialisee-pour-effectuer-le-swap",children:[]},{level:3,title:"Ex\xE9cution de l'Op\xE9ration d'Echange",slug:"execution-de-l-operation-d-echange",children:[]}]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/jupiter.html",pathLocale:"/fr/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"Comment r\xE9cup\xE9rer un Groupe Mango",slug:"comment-recuperer-un-groupe-mango",children:[]},{level:2,title:"Comment cr\xE9er un Compte Mango",slug:"comment-creer-un-compte-mango",children:[]},{level:2,title:"Comment d\xE9poser des USDC sur un Compte Mango",slug:"comment-deposer-des-usdc-sur-un-compte-mango",children:[]},{level:2,title:"Comment placer un ordre spot",slug:"comment-placer-un-ordre-spot",children:[]},{level:2,title:"Comment charger les offres",slug:"comment-charger-les-offres",children:[]},{level:2,title:"Comment charger les demandes",slug:"comment-charger-les-demandes",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/mango.html",pathLocale:"/fr/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Sc\xE9nario d'utilisation de base",slug:"scenario-d-utilisation-de-base",children:[]},{level:2,title:"SDKs",slug:"sdks",children:[]},{level:2,title:"Anatomie d'une requ\xEAte d'al\xE9atoire",slug:"anatomie-d-une-requete-d-aleatoire",children:[]},{level:2,title:"Anatomie d'une configuration VRF",slug:"anatomie-d-une-configuration-vrf",children:[]},{level:2,title:"Exemple Rust-natif",slug:"exemple-rust-natif",children:[{level:3,title:"1. Configurer la connexion",slug:"_1-configurer-la-connexion",children:[]},{level:3,title:"2. Cr\xE9er une requ\xEAte",slug:"_2-creer-une-requete",children:[]},{level:3,title:"3. Attendre le traitement",slug:"_3-attendre-le-traitement",children:[]}]},{level:2,title:"Exemple CPI",slug:"exemple-cpi",children:[{level:3,title:"1. Cr\xE9er le contrat",slug:"_1-creer-le-contrat",children:[]},{level:3,title:"2. Collecter les comptes n\xE9cessaires",slug:"_2-collecter-les-comptes-necessaires",children:[]},{level:3,title:"3. Effectuer un appel CPI",slug:"_3-effectuer-un-appel-cpi",children:[]},{level:3,title:"4. Utiliser le caract\xE8re al\xE9atoire obtenu",slug:"_4-utiliser-le-caractere-aleatoire-obtenu",children:[]}]}],path:"/fr/integrations/orao-vrf.html",pathLocale:"/fr/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"Comment utiliser Pyth dans le Client",slug:"comment-utiliser-pyth-dans-le-client",children:[]},{level:2,title:"Comment utiliser Pyth dans Anchor",slug:"comment-utiliser-pyth-dans-anchor",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/pyth.html",pathLocale:"/fr/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"Comment utiliser @solana/web3.js dans une application React Native",slug:"comment-utiliser-solana-web3-js-dans-une-application-react-native",children:[{level:3,title:"Cr\xE9er une nouvelle application",slug:"creer-une-nouvelle-application",children:[]},{level:3,title:"Installer les d\xE9pendances",slug:"installer-les-dependances",children:[]},{level:3,title:"Corriger Babel pour utiliser les transformations Hermes",slug:"corriger-babel-pour-utiliser-les-transformations-hermes",children:[]},{level:3,title:"Mettre \xE0 jour index.js",slug:"mettre-a-jour-index-js",children:[]},{level:3,title:"Mettre \xE0 jour App.tsx",slug:"mettre-a-jour-app-tsx",children:[]},{level:3,title:"[iOS uniquement] Installer cocoapods",slug:"ios-uniquement-installer-cocoapods",children:[]},{level:3,title:"D\xE9marrer l'application",slug:"demarrer-l-application",children:[]}]},{level:2,title:"Solana DApp Scaffold for React Native",slug:"solana-dapp-scaffold-for-react-native",children:[]},{level:2,title:"Probl\xE8mes courants lors de l'utilisation de biblioth\xE8ques crypto dans une application React Native",slug:"problemes-courants-lors-de-l-utilisation-de-bibliotheques-crypto-dans-une-application-react-native",children:[{level:3,title:"Erreur: Watchman crawl failed",slug:"erreur-watchman-crawl-failed",children:[]},{level:3,title:"Erreur: URL.protocol is not implemented",slug:"erreur-url-protocol-is-not-implemented",children:[]},{level:3,title:"Erreur: crypto.getRandomValues() not supported",slug:"erreur-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/fr/integrations/react-native.html",pathLocale:"/fr/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"Comment obtenir un march\xE9 de OpenBook",slug:"comment-obtenir-un-marche-de-OpenBook",children:[]},{level:2,title:"Comment obtenir les carnets d'ordres de OpenBook",slug:"comment-obtenir-les-carnets-d-ordres-de-OpenBook",children:[]},{level:2,title:"Comment obtenir les ordres ouverts actuels",slug:"comment-obtenir-les-ordres-ouverts-actuels",children:[]}],path:"/fr/integrations/OpenBook.html",pathLocale:"/fr/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"Comment cr\xE9er un jeton enti\xE8rement g\xE9r\xE9",slug:"comment-creer-un-jeton-entierement-gere",children:[]},{level:2,title:"Comment acheter et vendre un jeton",slug:"comment-acheter-et-vendre-un-jeton",children:[]},{level:2,title:"Comment initier la liquidit\xE9",slug:"comment-initier-la-liquidite",children:[]},{level:2,title:"Autres Ressources",slug:"autres-ressources",children:[]}],path:"/fr/integrations/strata.html",pathLocale:"/fr/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Flux de Donn\xE9es",slug:"flux-de-donnees",children:[{level:3,title:"Lire les donn\xE9es d'un flux d'agr\xE9gation",slug:"lire-les-donnees-d-un-flux-d-agregation",children:[]},{level:3,title:"Cr\xE9er un nouveau flux d'agr\xE9gation",slug:"creer-un-nouveau-flux-d-agregation",children:[]},{level:3,title:"Lire les donn\xE9es d'un flux d'agr\xE9gation dans un programme",slug:"lire-les-donnees-d-un-flux-d-agregation-dans-un-programme",children:[]},{level:3,title:"Comment Cr\xE9er un Flux \xE0 partir du Publisher",slug:"comment-creer-un-flux-a-partir-du-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Cr\xE9er un oracle",slug:"creer-un-oracle",children:[]},{level:3,title:"Ex\xE9cuter un oracle localement",slug:"executer-un-oracle-localement",children:[]},{level:3,title:"Configuration de l'Oracle",slug:"configuration-de-l-oracle",children:[]}]},{level:2,title:"Fonction Al\xE9atoire V\xE9rifiable(VRF)",slug:"fonction-aleatoire-verifiable-vrf",children:[{level:3,title:"Lire un compte VRF",slug:"lire-un-compte-vrf",children:[]},{level:3,title:"Cr\xE9er un compte VRF",slug:"creer-un-compte-vrf",children:[]},{level:3,title:"Demande de Hasard \xE0 partir d'un compte VRF",slug:"demande-de-hasard-a-partir-d-un-compte-vrf",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[{level:3,title:"API et Biblioth\xE8ques",slug:"api-et-bibliotheques",children:[]},{level:3,title:"Exemples",slug:"exemples",children:[]},{level:3,title:"Plus d'Informations",slug:"plus-d-informations",children:[]}]}],path:"/fr/integrations/switchboard.html",pathLocale:"/fr/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"Qu'est-ce qu'un portefeuille ?",slug:"qu-est-ce-qu-un-portefeuille",children:[]},{level:2,title:"Connexions Sociales sur Solana",slug:"connexions-sociales-sur-solana",children:[]},{level:2,title:"Guide d'Int\xE9gration",slug:"guide-d-integration",children:[{level:3,title:"Installation des D\xE9pendances",slug:"installation-des-dependances",children:[]},{level:3,title:"Importer le SDK et l'initialiser",slug:"importer-le-sdk-et-l-initialiser",children:[]},{level:3,title:"D\xE9clencher la connexion de l'utilisateur",slug:"declencher-la-connexion-de-l-utilisateur",children:[]},{level:3,title:"Utilisation de l'instance torus pour r\xE9cup\xE9rer les d\xE9tails du compte utilisateur",slug:"utilisation-de-l-instance-torus-pour-recuperer-les-details-du-compte-utilisateur",children:[]},{level:3,title:"Utilisation de l'API Solana de Torus pour signer un message.",slug:"utilisation-de-l-api-solana-de-torus-pour-signer-un-message",children:[]},{level:3,title:"Utilisation de l'API Solana de Torus pour envoyer une transaction.",slug:"utilisation-de-l-api-solana-de-torus-pour-envoyer-une-transaction",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"D\xE9connexion",slug:"deconnexion",children:[]}]},{level:2,title:"Ressources",slug:"ressources",children:[]}],path:"/fr/integrations/web3auth.html",pathLocale:"/fr/",extraFields:[]},{title:"Comptes",headers:[{level:2,title:"Comment cr\xE9er un compte de syst\xE8me",slug:"comment-creer-un-compte-de-systeme",children:[]},{level:2,title:"Comment calculer les frais de compte",slug:"comment-calculer-les-frais-de-compte",children:[]},{level:2,title:"Comment cr\xE9er des comptes avec des seeds",slug:"comment-creer-des-comptes-avec-des-seeds",children:[{level:3,title:"G\xE9n\xE9rer",slug:"generer",children:[]},{level:3,title:"Cr\xE9er",slug:"creer",children:[]},{level:3,title:"Transf\xE9rer",slug:"transferer",children:[]}]},{level:2,title:"Comment cr\xE9er des PDAs",slug:"comment-creer-des-pdas",children:[{level:3,title:"G\xE9n\xE9rer un PDA",slug:"generer-un-pda",children:[]},{level:3,title:"Cr\xE9er un PDA",slug:"creer-un-pda",children:[]}]},{level:2,title:"Comment signer avec un PDA",slug:"comment-signer-avec-un-pda",children:[{level:3,title:"Programme",slug:"programme-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"Comment obtenir les comptes du programme",slug:"comment-obtenir-les-comptes-du-programme",children:[]},{level:2,title:"Comment fermer des comptes",slug:"comment-fermer-des-comptes",children:[]},{level:2,title:"Comment obtenir le solde d'un compte",slug:"comment-obtenir-le-solde-d-un-compte",children:[]}],path:"/fr/references/accounts.html",pathLocale:"/fr/",extraFields:[]},{title:"Envoyer des Transactions",headers:[{level:2,title:"Comment envoyer des SOL",slug:"comment-envoyer-des-sol",children:[]},{level:2,title:"Comment envoyer des jetons SPL",slug:"comment-envoyer-des-jetons-spl",children:[]},{level:2,title:"Comment calculer les co\xFBts de transaction",slug:"comment-calculer-les-couts-de-transaction",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"Comment ajouter un m\xE9mo \xE0 une transaction",slug:"comment-ajouter-un-memo-a-une-transaction",children:[]},{level:2,title:"Comment changer le budget de calcul, les frais, & la priorisation d'une transaction",slug:"comment-changer-le-budget-de-calcul-les-frais-la-priorisation-d-une-transaction",children:[]}],path:"/fr/references/basic-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"Paires de Cl\xE9s et Portefeuilles",headers:[{level:2,title:"Comment g\xE9n\xE9rer une nouvelle Paire de Cl\xE9s",slug:"comment-generer-une-nouvelle-paire-de-cles",children:[]},{level:2,title:"Comment restaurer une Paire de cl\xE9s \xE0 partir d'une cl\xE9 priv\xE9e",slug:"comment-restaurer-une-paire-de-cles-a-partir-d-une-cle-privee",children:[]},{level:2,title:"Comment v\xE9rifier une Paire de Cl\xE9s",slug:"comment-verifier-une-paire-de-cles",children:[]},{level:2,title:"Comment v\xE9rifier si une cl\xE9 publique a une cl\xE9 priv\xE9e associ\xE9e",slug:"comment-verifier-si-une-cle-publique-a-une-cle-privee-associee",children:[]},{level:2,title:"Comment g\xE9n\xE9rer une phrase mn\xE9monique",slug:"comment-generer-une-phrase-mnemonique",children:[]},{level:2,title:"Comment restaurer une paire de cl\xE9s \xE0 partir d'une phrase mn\xE9monique",slug:"comment-restaurer-une-paire-de-cles-a-partir-d-une-phrase-mnemonique",children:[]},{level:2,title:"Comment g\xE9n\xE9rer une adresse personnalis\xE9e",slug:"comment-generer-une-adresse-personnalisee",children:[]},{level:2,title:"Comment signer et v\xE9rifier des messages avec les portefeuilles",slug:"comment-signer-et-verifier-des-messages-avec-les-portefeuilles",children:[]},{level:2,title:"Comment se connecter \xE0 un portefeuille",slug:"comment-se-connecter-a-un-portefeuille",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/fr/references/keypairs-and-wallets.html",pathLocale:"/fr/",extraFields:[]},{title:"D\xE9veloppement Local",headers:[{level:2,title:"D\xE9marrer un Validateur Local",slug:"demarrer-un-validateur-local",children:[]},{level:2,title:"Connexion aux Environnements",slug:"connexion-aux-environnements",children:[]},{level:2,title:"Inscription \xE0 des Ev\xE9nements",slug:"inscription-a-des-evenements",children:[]},{level:2,title:"Obtention de SOL pour les Tests",slug:"obtention-de-sol-pour-les-tests",children:[]},{level:2,title:"Utilisation des Comptes et des Programmes du Mainnet",slug:"utilisation-des-comptes-et-des-programmes-du-mainnet",children:[{level:3,title:"Comment charger des comptes depuis le mainnet",slug:"comment-charger-des-comptes-depuis-le-mainnet",children:[]},{level:3,title:"Comment charger des programmes depuis le mainnet",slug:"comment-charger-des-programmes-depuis-le-mainnet",children:[]}]}],path:"/fr/references/local-development.html",pathLocale:"/fr/",extraFields:[]},{title:"Service de Noms",headers:[{level:2,title:"Registre de noms",slug:"registre-de-noms",children:[]},{level:2,title:"R\xE9solution des domaines SOL",slug:"resolution-des-domaines-sol",children:[]},{level:2,title:"Recherche invers\xE9e",slug:"recherche-inversee",children:[]},{level:2,title:"Recherche des sous-domaines",slug:"recherche-des-sous-domaines",children:[]},{level:2,title:"Trouver tous les noms de domaine appartenant \xE0 une cl\xE9 publique",slug:"trouver-tous-les-noms-de-domaine-appartenant-a-une-cle-publique",children:[]},{level:2,title:"R\xE9soudre un pseudo Twitter",slug:"resoudre-un-pseudo-twitter",children:[]},{level:2,title:"Recherche invers\xE9e d'un pseudo Twitter",slug:"recherche-inversee-d-un-pseudo-twitter",children:[]}],path:"/fr/references/name-service.html",pathLocale:"/fr/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"Comment cr\xE9er un NFT",slug:"comment-creer-un-nft",children:[{level:3,title:"T\xE9l\xE9charger sur Arweave",slug:"telecharger-sur-arweave",children:[]},{level:3,title:"Cr\xE9er le NFT",slug:"creer-le-nft",children:[]}]},{level:2,title:"Comment obtenir les m\xE9tadonn\xE9es des NFTs",slug:"comment-obtenir-les-metadonnees-des-nfts",children:[]},{level:2,title:"Comment obtenir le propri\xE9taire d'un NFT",slug:"comment-obtenir-le-proprietaire-d-un-nft",children:[]},{level:2,title:"Comment obtenir les adresses de cr\xE9ation des NFTs",slug:"comment-obtenir-les-adresses-de-creation-des-nfts",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"Comment r\xE9cup\xE9rer tous les NFTs d'un portefeuille ?",slug:"comment-recuperer-tous-les-nfts-d-un-portefeuille",children:[]}],path:"/fr/references/nfts.html",pathLocale:"/fr/",extraFields:[]},{title:"Envoi de transactions hors connexion",headers:[{level:2,title:"Signer la Transaction",slug:"signer-la-transaction",children:[]},{level:2,title:"Transaction avec Signature Partielle",slug:"transaction-avec-signature-partielle",children:[]},{level:2,title:"Nonce Durable",slug:"nonce-durable",children:[{level:3,title:"Cr\xE9er un Compte de Nonce",slug:"creer-un-compte-de-nonce",children:[]},{level:3,title:"Obtenir le Compte de Nonce",slug:"obtenir-le-compte-de-nonce",children:[]},{level:3,title:"Utiliser le Compte de Nonce",slug:"utiliser-le-compte-de-nonce",children:[]}]}],path:"/fr/references/offline-transactions.html",pathLocale:"/fr/",extraFields:[]},{title:"\xC9crire des Programmes",headers:[{level:2,title:"Comment transf\xE9rer SOL dans un programme",slug:"comment-transferer-sol-dans-un-programme",children:[]},{level:2,title:"Comment obtenir une r\xE9f\xE9rence \xE0 l'horloge dans un programme",slug:"comment-obtenir-une-reference-a-l-horloge-dans-un-programme",children:[{level:3,title:"Passer l'Horloge comme un compte dans une instruction",slug:"passer-l-horloge-comme-un-compte-dans-une-instruction",children:[]},{level:3,title:"Acc\xE9der \xE0 l'horloge directement dans une instruction",slug:"acceder-a-l-horloge-directement-dans-une-instruction",children:[]}]},{level:2,title:"Comment modifier la taille d'un compte",slug:"comment-modifier-la-taille-d-un-compte",children:[]},{level:2,title:"Comment faire l'Invocation de Programme Crois\xE9",slug:"comment-faire-l-invocation-de-programme-croise",children:[]},{level:2,title:"Comment cr\xE9er un PDA",slug:"comment-creer-un-pda",children:[]},{level:2,title:"Comment lire des comptes",slug:"comment-lire-des-comptes",children:[]},{level:2,title:"Comment v\xE9rifier des comptes",slug:"comment-verifier-des-comptes",children:[]},{level:2,title:"Comment lire plusieurs instructions \xE0 partir d'une transaction",slug:"comment-lire-plusieurs-instructions-a-partir-d-une-transaction",children:[]}],path:"/fr/references/programs.html",pathLocale:"/fr/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Obtenir les Validateurs Actuels",slug:"obtenir-les-validateurs-actuels",children:[]},{level:2,title:"Cr\xE9er un Compte de Stake",slug:"creer-un-compte-de-stake",children:[]},{level:2,title:"D\xE9l\xE9guer un Stake",slug:"deleguer-un-stake",children:[]},{level:2,title:"Obtenir les D\xE9l\xE9gu\xE9s par Validateurs",slug:"obtenir-les-delegues-par-validateurs",children:[]},{level:2,title:"D\xE9sactiver le Stake",slug:"desactiver-le-stake",children:[]},{level:2,title:"Retirer le Stake",slug:"retirer-le-stake",children:[]}],path:"/fr/references/staking.html",pathLocale:"/fr/",extraFields:[]},{title:"Interaction avec les Jetons",headers:[{level:2,title:"De quoi ai-je besoin pour commencer avec SPL-Tokens ?",slug:"de-quoi-ai-je-besoin-pour-commencer-avec-spl-tokens",children:[]},{level:2,title:"Comment cr\xE9er un nouveau Jeton",slug:"comment-creer-un-nouveau-jeton",children:[]},{level:2,title:'Comment obtenir un "mint" de jeton',slug:"comment-obtenir-un-mint-de-jeton",children:[]},{level:2,title:"Comment cr\xE9er un compte de jeton",slug:"comment-creer-un-compte-de-jeton",children:[]},{level:2,title:"Comment obtenir un compte de jetons",slug:"comment-obtenir-un-compte-de-jetons",children:[]},{level:2,title:"Comment obtenir le solde d'un compte de jetons",slug:"comment-obtenir-le-solde-d-un-compte-de-jetons",children:[]},{level:2,title:"Comment cr\xE9er (mint) de nouveaux jetons",slug:"comment-creer-mint-de-nouveaux-jetons",children:[]},{level:2,title:"Comment transf\xE9rer des jetons",slug:"comment-transferer-des-jetons",children:[]},{level:2,title:"Comment br\xFBler des jetons",slug:"comment-bruler-des-jetons",children:[]},{level:2,title:"Comment fermer des comptes de jetons",slug:"comment-fermer-des-comptes-de-jetons",children:[]},{level:2,title:"Comment d\xE9finir l'autorit\xE9 sur les comptes de jetons ou de mints ?",slug:"comment-definir-l-autorite-sur-les-comptes-de-jetons-ou-de-mints",children:[]},{level:2,title:"Comment approuver une d\xE9l\xE9gation de jetons",slug:"comment-approuver-une-delegation-de-jetons",children:[]},{level:2,title:"Comment r\xE9voquer une d\xE9l\xE9gation de jetons",slug:"comment-revoquer-une-delegation-de-jetons",children:[]},{level:2,title:"Comment g\xE9rer les wrapped SOL",slug:"comment-gerer-les-wrapped-sol",children:[{level:3,title:"Cr\xE9er un Compte de Jetons",slug:"creer-un-compte-de-jetons",children:[]},{level:3,title:"Ajouter un solde",slug:"ajouter-un-solde",children:[]}]},{level:2,title:"Comment obtenir tous les comptes de jetons par propri\xE9taire",slug:"comment-obtenir-tous-les-comptes-de-jetons-par-proprietaire",children:[]}],path:"/fr/references/token.html",pathLocale:"/fr/",extraFields:[]},{title:"Akun",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[]},{level:2,title:"Lebih Dalam",slug:"lebih-dalam",children:[{level:3,title:"Model Akun",slug:"model-akun",children:[]},{level:3,title:"Menyewa",slug:"menyewa",children:[]}]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/id/core-concepts/accounts.html",pathLocale:"/id/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[{level:3,title:"Membuat PDA",slug:"membuat-pda",children:[]},{level:3,title:"Berinteraksi dengan PDAs",slug:"berinteraksi-dengan-pdas",children:[]}]},{level:2,title:"Sumber lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/core-concepts/pdas.html",pathLocale:"/id/",extraFields:[]},{title:"Program",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[]},{level:2,title:"Lebih Dalam",slug:"lebih-dalam",children:[{level:3,title:"Native Program & Solana Program Library (SPL)",slug:"native-program-solana-program-library-spl",children:[]},{level:3,title:"Menulis Program",slug:"menulis-program",children:[]},{level:3,title:"Deploy Program",slug:"deploy-program",children:[]}]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/core-concepts/programs.html",pathLocale:"/id/",extraFields:[]},{title:"Transaksi",headers:[{level:2,title:"Fakta-Fakta",slug:"fakta-fakta",children:[]},{level:2,title:"Lebih Dalam",slug:"lebih-dalam",children:[{level:3,title:"Biaya",slug:"biaya",children:[]}]},{level:2,title:"Sumber lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/core-concepts/transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Instalasi",headers:[{level:2,title:"Unduh Web3.js",slug:"unduh-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Membangun dari Source",slug:"membangun-dari-source",children:[]}]}],path:"/id/getting-started/installation.html",pathLocale:"/id/",extraFields:[]},{title:"Peta Akun",headers:[{level:2,title:"Menghasilkan PDA",slug:"menghasilkan-pda",children:[]},{level:2,title:"Akun Peta Tunggal",slug:"akun-peta-tunggal",children:[]}],path:"/id/guides/account-maps.html",pathLocale:"/id/",extraFields:[]},{title:"Migrasi Akun Data Program",headers:[{level:2,title:"Bagaimana cara melakukan migrasi akun data sebuah program?",slug:"bagaimana-cara-melakukan-migrasi-akun-data-sebuah-program",children:[]},{level:2,title:"Skenario",slug:"skenario",children:[]},{level:2,title:"Melakukan upgrade Akun",slug:"melakukan-upgrade-akun",children:[{level:3,title:"1. Tambahkan logika konversi akun",slug:"_1-tambahkan-logika-konversi-akun",children:[]}]},{level:2,title:"Resource",slug:"resource",children:[]}],path:"/id/guides/data-migration.html",pathLocale:"/id/",extraFields:[]},{title:"Debug Program Solana",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Uji Runtime dan Debugging di editor",slug:"uji-runtime-dan-debugging-di-editor",children:[]},{level:2,title:"Uji Node Validator Lokal di editor",slug:"uji-node-validator-lokal-di-editor",children:[]},{level:2,title:"Uji Node Validator Lokal dari Aplikasi Klien",slug:"uji-node-validator-lokal-dari-aplikasi-klien",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/id/guides/debugging-solana-programs.html",pathLocale:"/id/",extraFields:[]},{title:"Pengujian Paritas Fitur",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Skenario",slug:"skenario",children:[]},{level:2,title:"Status Fitur",slug:"status-fitur",children:[]},{level:2,title:"Uji Paritas",slug:"uji-paritas",children:[]},{level:2,title:"Demonstrasi Sederhana",slug:"demonstrasi-sederhana",children:[{level:3,title:"Semua fitur diaktifkan",slug:"semua-fitur-diaktifkan",children:[]},{level:3,title:"Fitur selektif dinonaktifkan",slug:"fitur-selektif-dinonaktifkan",children:[]}]},{level:2,title:"Uji Paritas Penuh",slug:"uji-paritas-penuh",children:[]},{level:2,title:"Uji Paritas Penuh Secara Terprogram",slug:"uji-paritas-penuh-secara-terprogram",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/id/guides/feature-parity-testing.html",pathLocale:"/id/",extraFields:[]},{title:"Mendapatkan Akun Program",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Memahami lebih dalam",slug:"memahami-lebih-dalam",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Resource lainnya",slug:"resource-lainnya",children:[]}],path:"/id/guides/get-program-accounts.html",pathLocale:"/id/",extraFields:[]},{title:"Mengulang Kembali transaksi",headers:[{level:2,title:"Fakta",slug:"fakta",children:[]},{level:2,title:"Perjalanan dari sebuah Transaksi",slug:"perjalanan-dari-sebuah-transaksi",children:[{level:3,title:"Bagaimana Klien Mengirimkan Transaksi",slug:"bagaimana-klien-mengirimkan-transaksi",children:[]},{level:3,title:"Bagaimana Node RPC melakukan broadcast Transaksi",slug:"bagaimana-node-rpc-melakukan-broadcast-transaksi",children:[]}]},{level:2,title:"Bagaimana Transaksi dapat dibatalkan",slug:"bagaimana-transaksi-dapat-dibatalkan",children:[{level:3,title:"Sebelum transaksi diproses",slug:"sebelum-transaksi-diproses",children:[]},{level:3,title:"Setelah transaksi diproses dan sebelum diselesaikan",slug:"setelah-transaksi-diproses-dan-sebelum-diselesaikan",children:[]}]},{level:2,title:"Menangani Transaksi yang dibatalkan",slug:"menangani-transaksi-yang-dibatalkan",children:[{level:3,title:"Menelusuri lebih dalam mengenai sendTransaction",slug:"menelusuri-lebih-dalam-mengenai-sendtransaction",children:[]}]},{level:2,title:"Menyesuaikan Logika Rebroadcast",slug:"menyesuaikan-logika-rebroadcast",children:[{level:3,title:"Dampak apabila Melewatkan Preflight",slug:"dampak-apabila-melewatkan-preflight",children:[]},{level:3,title:"Kapan Menandatangani Ulang (Re-Sign) Transaksi",slug:"kapan-menandatangani-ulang-re-sign-transaksi",children:[]}]},{level:2,title:"Ucapan Terima Kasih",slug:"ucapan-terima-kasih",children:[]}],path:"/id/guides/retrying-transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Serialisasi Data",headers:[{level:2,title:"Persiapan untuk Borsh Serialization",slug:"persiapan-untuk-borsh-serialization",children:[]},{level:2,title:"Cara serialize data instruksi pada klien",slug:"cara-serialize-data-instruksi-pada-klien",children:[]},{level:2,title:"Cara deserialisasi data instruksi pada program",slug:"cara-deserialisasi-data-instruksi-pada-program",children:[]},{level:2,title:"Cara serialisasi data akun pada program",slug:"cara-serialisasi-data-akun-pada-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialisasi/Deserialisasi",slug:"serialisasi-deserialisasi",children:[]},{level:3,title:"Penggunaan",slug:"penggunaan",children:[]}]},{level:2,title:"Cara deserialisasi data akun pada klien",slug:"cara-deserialisasi-data-akun-pada-klien",children:[]},{level:2,title:"Pemetaan Solana TS/JS Umum",slug:"pemetaan-solana-ts-js-umum",children:[]},{level:2,title:"Metode Lanjutan",slug:"metode-lanjutan",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resource",slug:"resource",children:[]}],path:"/id/guides/serialization.html",pathLocale:"/id/",extraFields:[]},{title:"Memulai",headers:[{level:2,title:"Composability Adalah Kunci",slug:"composability-adalah-kunci",children:[]},{level:2,title:"Kontribusi",slug:"kontribusi",children:[]}],path:"/id/integrations/",pathLocale:"/id/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Instalasi",slug:"instalasi",children:[]},{level:3,title:"Mengambil List Token dari Jupiter",slug:"mengambil-list-token-dari-jupiter",children:[]},{level:3,title:"Loading instance dari Jupiter",slug:"loading-instance-dari-jupiter",children:[]},{level:3,title:"Mendapatkan RouteMap",slug:"mendapatkan-routemap",children:[]},{level:3,title:"Mendapatkan route dari Input dengan Output token",slug:"mendapatkan-route-dari-input-dengan-output-token",children:[]},{level:3,title:"Ekskusi Token Swap",slug:"ekskusi-token-swap",children:[]},{level:2,title:"How to use Jupiter in a React Application",slug:"how-to-use-jupiter-in-a-react-application",children:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Menambahkan Provider",slug:"menambahkan-provider",children:[]},{level:3,title:"Mendapatkan List dari Token",slug:"mendapatkan-list-dari-token",children:[]},{level:3,title:"Seting State",slug:"seting-state",children:[]},{level:3,title:"Menggunakan useJupiter react hook",slug:"menggunakan-usejupiter-react-hook",children:[]},{level:3,title:"Perform Swap",slug:"perform-swap",children:[]}]},{level:2,title:"Cara Menggunakan Jupiter API",slug:"cara-menggunakan-jupiter-api",children:[{level:3,title:"Instalasi",slug:"instalasi-1",children:[]},{level:3,title:"Mendapatkan Route Map",slug:"mendapatkan-route-map",children:[]},{level:3,title:"Mendapatkan Serialisasi Transaksi untuk perform Swap",slug:"mendapatkan-serialisasi-transaksi-untuk-perform-swap",children:[]},{level:3,title:"Eksekusi Transaksi Swap",slug:"eksekusi-transaksi-swap",children:[]}]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/jupiter.html",pathLocale:"/id/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"Cara Mendapatkan Mango Group",slug:"cara-mendapatkan-mango-group",children:[]},{level:2,title:"Membuat Akun Mango",slug:"membuat-akun-mango",children:[]},{level:2,title:"Cara Deposit USDC ke Akun Manggo",slug:"cara-deposit-usdc-ke-akun-manggo",children:[]},{level:2,title:"Cara Menempatkan Spot Order",slug:"cara-menempatkan-spot-order",children:[]},{level:2,title:"Cara Load Bids",slug:"cara-load-bids",children:[]},{level:2,title:"Cara Load Asks",slug:"cara-load-asks",children:[]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/mango.html",pathLocale:"/id/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"Cara Menggunakan Pyth di Client",slug:"cara-menggunakan-pyth-di-client",children:[]},{level:2,title:"Cara Memakai Pyth di Anchor",slug:"cara-memakai-pyth-di-anchor",children:[]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/pyth.html",pathLocale:"/id/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"Cara Pakai @solana/web3.js di React Native app",slug:"cara-pakai-solana-web3-js-di-react-native-app",children:[{level:3,title:"Buat aplikasi baru",slug:"buat-aplikasi-baru",children:[]},{level:3,title:"Install dependensi",slug:"install-dependensi",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update metro.config.js",slug:"update-metro-config-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"Install cocoapods",slug:"install-cocoapods",children:[]},{level:3,title:"Start aplikasi",slug:"start-aplikasi",children:[]}]},{level:2,title:"Solana DApp Scaffold untuk React Native",slug:"solana-dapp-scaffold-untuk-react-native",children:[]},{level:2,title:"Isu Umum ketika menggunakan @solana/web3.js di aplikasi React Native",slug:"isu-umum-ketika-menggunakan-solana-web3-js-di-aplikasi-react-native",children:[{level:3,title:"Error: While trying to resolve module superstruct from file",slug:"error-while-trying-to-resolve-module-superstruct-from-file",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/id/integrations/react-native.html",pathLocale:"/id/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"Cara Mendapatkan OpenBook Market",slug:"cara-mendapatkan-OpenBook-market",children:[]},{level:2,title:"Mendapatkan OpenBook Order Books",slug:"mendapatkan-OpenBook-order-books",children:[]},{level:2,title:"Cara Mendapatkan Open Orders",slug:"cara-mendapatkan-open-orders",children:[]}],path:"/id/integrations/OpenBook.html",pathLocale:"/id/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"Cara Membuat Token Yang Dikendalikan Penuh",slug:"cara-membuat-token-yang-dikendalikan-penuh",children:[]},{level:2,title:"Cara beli dan jual token",slug:"cara-beli-dan-jual-token",children:[]},{level:2,title:"Cara bootstrap liquidity",slug:"cara-bootstrap-liquidity",children:[]},{level:2,title:"Sumber Lainnya",slug:"sumber-lainnya",children:[]}],path:"/id/integrations/strata.html",pathLocale:"/id/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"Cara Baca Data Dari Aggregator Feeds",slug:"cara-baca-data-dari-aggregator-feeds",children:[]},{level:3,title:"Membuat Aggregator Feed Baru",slug:"membuat-aggregator-feed-baru",children:[]},{level:3,title:"Baca data dari aggregator feeds dalam sebuah program",slug:"baca-data-dari-aggregator-feeds-dalam-sebuah-program",children:[]},{level:3,title:"Cara Membuat a Feeds Dari Publisher",slug:"cara-membuat-a-feeds-dari-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Create an oracle",slug:"create-an-oracle",children:[]},{level:3,title:"Menjalan Oracle di lokal",slug:"menjalan-oracle-di-lokal",children:[]},{level:3,title:"Konfigurasi Oracle",slug:"konfigurasi-oracle",children:[]}]},{level:2,title:"Fungsi Random yang Terverifikasi - Verifiable Random Function(VRF)",slug:"fungsi-random-yang-terverifikasi-verifiable-random-function-vrf",children:[{level:3,title:"Membaca akun VRF",slug:"membaca-akun-vrf",children:[]},{level:3,title:"Membuat Sebuah Akun VRF",slug:"membuat-sebuah-akun-vrf",children:[]},{level:3,title:"Request Randomness dari akun vrf",slug:"request-randomness-dari-akun-vrf",children:[]}]},{level:2,title:"Sumber",slug:"sumber",children:[{level:3,title:"API dan Librari",slug:"api-dan-librari",children:[]},{level:3,title:"Contoh",slug:"contoh",children:[]},{level:3,title:"Informasi Lebih Lanjut",slug:"informasi-lebih-lanjut",children:[]}]}],path:"/id/integrations/switchboard.html",pathLocale:"/id/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"Apakah itu wallet?",slug:"apakah-itu-wallet",children:[]},{level:2,title:"Social Login di Solana",slug:"social-login-di-solana",children:[]},{level:2,title:"Panduan Integrasi",slug:"panduan-integrasi",children:[{level:3,title:"Instal Dependensi",slug:"instal-dependensi",children:[]},{level:3,title:"Import SDK dan initialize",slug:"import-sdk-dan-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"Menggunakan torus instance untuk mengambil detil akun user",slug:"menggunakan-torus-instance-untuk-mengambil-detil-akun-user",children:[]},{level:3,title:"Menggunakan Torus Solana API untuk sign sebuah pesan.",slug:"menggunakan-torus-solana-api-untuk-sign-sebuah-pesan",children:[]},{level:3,title:"Menggunakan torus Solana API untuk mengirim transaksi.\u200B",slug:"menggunakan-torus-solana-api-untuk-mengirim-transaksi-\u200B",children:[]},{level:3,title:"Topup",slug:"topup",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Sumber",slug:"sumber",children:[]}],path:"/id/integrations/web3auth.html",pathLocale:"/id/",extraFields:[]},{title:"Akun",headers:[{level:2,title:"Bagaimana cara membuat sebuah sistem akun",slug:"bagaimana-cara-membuat-sebuah-sistem-akun",children:[]},{level:2,title:"Bagaimana cara mengkalkulasi biaya akun",slug:"bagaimana-cara-mengkalkulasi-biaya-akun",children:[]},{level:2,title:"Bagaimana cara membuat akun dengan seeds",slug:"bagaimana-cara-membuat-akun-dengan-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"Bagaimana cara membuat PDAs",slug:"bagaimana-cara-membuat-pdas",children:[{level:3,title:"Menghasilkan sebuah PDA",slug:"menghasilkan-sebuah-pda",children:[]},{level:3,title:"Membuat sebuah PDA",slug:"membuat-sebuah-pda",children:[]}]},{level:2,title:"Bagaimana cara untuk sign sebuah PDA",slug:"bagaimana-cara-untuk-sign-sebuah-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"Bagaimana Cara Mendapatkan Program Akun",slug:"bagaimana-cara-mendapatkan-program-akun",children:[]},{level:2,title:"Bagaimana Cara Menutup Akun",slug:"bagaimana-cara-menutup-akun",children:[]},{level:2,title:"Bagaimana Cara Mendapatkan Balance Akun",slug:"bagaimana-cara-mendapatkan-balance-akun",children:[]}],path:"/id/references/accounts.html",pathLocale:"/id/",extraFields:[]},{title:"Mengirim Transaksi",headers:[{level:2,title:"Bagaimana cara mengirim SOL",slug:"bagaimana-cara-mengirim-sol",children:[]},{level:2,title:"Bagimana cara mengirim SPL-Tokens",slug:"bagimana-cara-mengirim-spl-tokens",children:[]},{level:2,title:"Bagaimana cara mengkalkulasi biaya transaksi",slug:"bagaimana-cara-mengkalkulasi-biaya-transaksi",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"Bagaimana menambah catatan ke dalam sebuah transaksi",slug:"bagaimana-menambah-catatan-ke-dalam-sebuah-transaksi",children:[]},{level:2,title:"Bagaimana cara merubah perhitungan budget untuk sebuah transaksi",slug:"bagaimana-cara-merubah-perhitungan-budget-untuk-sebuah-transaksi",children:[]}],path:"/id/references/basic-transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Keypairs & Wallets",headers:[{level:2,title:"Bagaimana cara membuat sebuah Keypair baru",slug:"bagaimana-cara-membuat-sebuah-keypair-baru",children:[]},{level:2,title:"Bagaimana cara me-restore sebuah Keypair dari sebuah secret",slug:"bagaimana-cara-me-restore-sebuah-keypair-dari-sebuah-secret",children:[]},{level:2,title:"Bagaimana cara menverifikasi sebuah Keypair",slug:"bagaimana-cara-menverifikasi-sebuah-keypair",children:[]},{level:2,title:"Bagaimana cara untuk check jika sebuah public key telah terhubung dengan sebuah private key",slug:"bagaimana-cara-untuk-check-jika-sebuah-public-key-telah-terhubung-dengan-sebuah-private-key",children:[]},{level:2,title:"Bagaimana cara membuat mnemonic phrase",slug:"bagaimana-cara-membuat-mnemonic-phrase",children:[]},{level:2,title:"Bagaimana cara restore sebuah Keypair dari sebuah mnemonic phrase",slug:"bagaimana-cara-restore-sebuah-keypair-dari-sebuah-mnemonic-phrase",children:[]},{level:2,title:"Bagaimana cara membuat sebuah vanity address",slug:"bagaimana-cara-membuat-sebuah-vanity-address",children:[]},{level:2,title:"Bagaimana cara untuk sign dan menverifikasi messages dalam wallet",slug:"bagaimana-cara-untuk-sign-dan-menverifikasi-messages-dalam-wallet",children:[]},{level:2,title:"Bagaimana cara mengkoneksi ke sebuah wallet",slug:"bagaimana-cara-mengkoneksi-ke-sebuah-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/id/references/keypairs-and-wallets.html",pathLocale:"/id/",extraFields:[]},{title:"Development Lokal",headers:[{level:2,title:"Memulai Validator Lokal",slug:"memulai-validator-lokal",children:[]},{level:2,title:"Menghubungkan Ke Environment",slug:"menghubungkan-ke-environment",children:[]},{level:2,title:"Subskripsi Event",slug:"subskripsi-event",children:[]},{level:2,title:"Mendapatkan Tes SOL",slug:"mendapatkan-tes-sol",children:[]},{level:2,title:"Menggunakan Akun dan Program Mainnet",slug:"menggunakan-akun-dan-program-mainnet",children:[{level:3,title:"Cara memuat akun dari mainnet",slug:"cara-memuat-akun-dari-mainnet",children:[]},{level:3,title:"Cara memuat program dari mainnet",slug:"cara-memuat-program-dari-mainnet",children:[]}]}],path:"/id/references/local-development.html",pathLocale:"/id/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"Menemukan semua domain name yang dimiliki oleh suatu public key",slug:"menemukan-semua-domain-name-yang-dimiliki-oleh-suatu-public-key",children:[]},{level:2,title:"Resolve Twitter handle",slug:"resolve-twitter-handle",children:[]},{level:2,title:"Reverse look up suatu Twitter handle",slug:"reverse-look-up-suatu-twitter-handle",children:[]}],path:"/id/references/name-service.html",pathLocale:"/id/",extraFields:[]},{title:"NFT",headers:[{level:2,title:"Cara membuat NFT",slug:"cara-membuat-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint NFT-nya",slug:"mint-nft-nya",children:[]}]},{level:2,title:"Cara Mendapatkan Metadata NFT",slug:"cara-mendapatkan-metadata-nft",children:[]},{level:2,title:"Cara Mengetahui Pemilik Sebuah NFT",slug:"cara-mengetahui-pemilik-sebuah-nft",children:[]},{level:2,title:"Cara untuk mengambil NFT Mint Addresses",slug:"cara-untuk-mengambil-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"Cara Mendapatkan Semua NFT dari Suatu Wallet",slug:"cara-mendapatkan-semua-nft-dari-suatu-wallet",children:[]}],path:"/id/references/nfts.html",pathLocale:"/id/",extraFields:[]},{title:"Mengirim Transaksi Offline",headers:[{level:2,title:"Sign Transaksi",slug:"sign-transaksi",children:[]},{level:2,title:"Sign Transaksi Sebagian",slug:"sign-transaksi-sebagian",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Membuat Akun Nonce",slug:"membuat-akun-nonce",children:[]},{level:3,title:"Mendapatkan Akun Nonce",slug:"mendapatkan-akun-nonce",children:[]},{level:3,title:"Menggunakan Akun Nonce",slug:"menggunakan-akun-nonce",children:[]}]}],path:"/id/references/offline-transactions.html",pathLocale:"/id/",extraFields:[]},{title:"Menulis Program",headers:[{level:2,title:"Bagaimana cara mentransfer SOL di dalam sebuah program",slug:"bagaimana-cara-mentransfer-sol-di-dalam-sebuah-program",children:[]},{level:2,title:"Bagaimana cara mendapatkan waktu dalam sebuah program",slug:"bagaimana-cara-mendapatkan-waktu-dalam-sebuah-program",children:[{level:3,title:"Passing Waktu sebagai sebuah account di dalam sebuah instruksi",slug:"passing-waktu-sebagai-sebuah-account-di-dalam-sebuah-instruksi",children:[]},{level:3,title:"Mengakses Waktu secara langsung di dalam sebuah instruksi",slug:"mengakses-waktu-secara-langsung-di-dalam-sebuah-instruksi",children:[]}]},{level:2,title:"Bagaimana cara merubah size akun",slug:"bagaimana-cara-merubah-size-akun",children:[]},{level:2,title:"Bagaimana cara untuk membuat program Cross Invocation",slug:"bagaimana-cara-untuk-membuat-program-cross-invocation",children:[]},{level:2,title:"Bagaimana cara membuat sebuah PDA",slug:"bagaimana-cara-membuat-sebuah-pda",children:[]},{level:2,title:"Bagaimana cara membaca akun",slug:"bagaimana-cara-membaca-akun",children:[]},{level:2,title:"Bagaimana cara men-verifikasi akun",slug:"bagaimana-cara-men-verifikasi-akun",children:[]},{level:2,title:"Bagaimana cara membaca beberapa instruksi dalam sebuah transaksi",slug:"bagaimana-cara-membaca-beberapa-instruksi-dalam-sebuah-transaksi",children:[]}],path:"/id/references/programs.html",pathLocale:"/id/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Mendapatkan Validators",slug:"mendapatkan-validators",children:[]},{level:2,title:"Membuat Stake Account",slug:"membuat-stake-account",children:[]},{level:2,title:"Mendelegasi Stake",slug:"mendelegasi-stake",children:[]},{level:2,title:"Mendapatkan Delegator dengan Validator",slug:"mendapatkan-delegator-dengan-validator",children:[]},{level:2,title:"Deactivate Stake",slug:"deactivate-stake",children:[]},{level:2,title:"Withdraw Stake",slug:"withdraw-stake",children:[]}],path:"/id/references/staking.html",pathLocale:"/id/",extraFields:[]},{title:"Interaksi dengan Token",headers:[{level:2,title:"Apa yang saya perlukan untuk memulai dengan SPL-Tokens?",slug:"apa-yang-saya-perlukan-untuk-memulai-dengan-spl-tokens",children:[]},{level:2,title:"Bagaimana cara untuk membuat sebuah Token baru",slug:"bagaimana-cara-untuk-membuat-sebuah-token-baru",children:[]},{level:2,title:"Bagaimana cara mendapatkan sebuah token mint",slug:"bagaimana-cara-mendapatkan-sebuah-token-mint",children:[]},{level:2,title:"Bagaimana cara membuat sebuah akun token",slug:"bagaimana-cara-membuat-sebuah-akun-token",children:[]},{level:2,title:"Bagaimana cara mendapatkan sebuah Akun Token",slug:"bagaimana-cara-mendapatkan-sebuah-akun-token",children:[]},{level:2,title:"Bagaimana cara mendapatkan saldo dari akun token",slug:"bagaimana-cara-mendapatkan-saldo-dari-akun-token",children:[]},{level:2,title:"Bagaimana cara untuk me-mint token-token",slug:"bagaimana-cara-untuk-me-mint-token-token",children:[]},{level:2,title:"Bagaimana cara mentransfer token-token",slug:"bagaimana-cara-mentransfer-token-token",children:[]},{level:2,title:"Bagaimana cara membakar token-token",slug:"bagaimana-cara-membakar-token-token",children:[]},{level:2,title:"Bagaimana cara menutup akun-akun token",slug:"bagaimana-cara-menutup-akun-akun-token",children:[]},{level:2,title:"Bagaimana cara untuk men-set authority pada akun-akun token atau mints",slug:"bagaimana-cara-untuk-men-set-authority-pada-akun-akun-token-atau-mints",children:[]},{level:2,title:"Bagaimana cara untuk men-approve delegasi sebuah token",slug:"bagaimana-cara-untuk-men-approve-delegasi-sebuah-token",children:[]},{level:2,title:"Bagaimana cara menarik kembali delegasi token",slug:"bagaimana-cara-menarik-kembali-delegasi-token",children:[]},{level:2,title:"Bagaimana cara mengature wrapped SOL",slug:"bagaimana-cara-mengature-wrapped-sol",children:[{level:3,title:"Membuat Akun Token",slug:"membuat-akun-token",children:[]},{level:3,title:"Menambah Saldo",slug:"menambah-saldo",children:[]}]},{level:2,title:"Bagaimana cara mendapatkan semua akun-akun token sebagai pemilik",slug:"bagaimana-cara-mendapatkan-semua-akun-akun-token-sebagai-pemilik",children:[]}],path:"/id/references/token.html",pathLocale:"/id/",extraFields:[]},{title:"\u30A2\u30AB\u30A6\u30F3\u30C8",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30E2\u30C7\u30EB",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30E2\u30C6\u3099\u30EB",children:[]},{level:3,title:"rent(\u5BB6\u8CC3)",slug:"rent-\u5BB6\u8CC3",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/ja/core-concepts/accounts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u9593\u547C\u3073\u51FA\u3057(CPI)",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"invoke\u3092\u7528\u3044\u305FCPI",slug:"invoke\u3092\u7528\u3044\u305Fcpi",children:[]},{level:3,title:"invoke_signed\u3092\u7528\u3044\u305FCPI",slug:"invoke-signed\u3092\u7528\u3044\u305Fcpi",children:[]},{level:3,title:"CPI Instruction",slug:"cpi-instruction",children:[]},{level:3,title:"CPI AccountInfo",slug:"cpi-accountinfo",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/cpi.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u6D3E\u751F\u30A2\u30C9\u30EC\u30B9(PDA)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"PDA \u306E\u751F\u6210",slug:"pda-\u306E\u751F\u6210",children:[]},{level:3,title:"PDA\u3068\u5BFE\u8A71\u3059\u308B",slug:"pda\u3068\u5BFE\u8A71\u3059\u308B",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/pdas.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"Native Programs & The Solana Program Library (SPL)",slug:"native-programs-the-solana-program-library-spl",children:[]},{level:3,title:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30DF\u30F3\u30AF\u3099",children:[]},{level:3,title:"\u30C7\u30D7\u30ED\u30A4",slug:"\u30C6\u3099\u30D5\u309A\u30ED\u30A4",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/programs.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"\u624B\u6570\u6599",slug:"\u624B\u6570\u6599",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/core-concepts/transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",headers:[{level:2,title:"Install Web3.js",slug:"install-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/ja/getting-started/installation.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30DE\u30C3\u30D7",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"\u5358\u4E00\u306E\u30DE\u30C3\u30D7 \u30A2\u30AB\u30A6\u30F3\u30C8",slug:"\u5358\u4E00\u306E\u30DE\u30C3\u30D5\u309A-\u30A2\u30AB\u30A6\u30F3\u30C8",children:[]}],path:"/ja/guides/account-maps.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0 \u30C7\u30FC\u30BF \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u79FB\u884C",headers:[{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30C7\u30FC\u30BF \u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u79FB\u884C\u3059\u308B\u306B\u306F\u3069\u3046\u3059\u308C\u3070\u3088\u3044\u3067\u3059\u304B\uFF1F",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u30C6\u3099\u30FC\u30BF-\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u79FB\u884C\u3059\u308B\u306B\u306F\u3068\u3099\u3046\u3059\u308C\u306F\u3099\u3088\u3044\u3066\u3099\u3059\u304B",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30A2\u30C3\u30D5\u309A\u30AF\u3099\u30EC\u30FC\u30C8\u3099",children:[{level:3,title:"1. \u30A2\u30AB\u30A6\u30F3\u30C8\u5909\u63DB\u30ED\u30B8\u30C3\u30AF\u3092\u8FFD\u52A0\u3059\u308B",slug:"_1-\u30A2\u30AB\u30A6\u30F3\u30C8\u5909\u63DB\u30ED\u30B7\u3099\u30C3\u30AF\u3092\u8FFD\u52A0\u3059\u308B",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/data-migration.html",pathLocale:"/ja/",extraFields:[]},{title:"Solana\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30C7\u30D0\u30C3\u30B0",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Runtime Testing and Debugging in editor",slug:"runtime-testing-and-debugging-in-editor",children:[]},{level:2,title:"Local Validator Node Testing in editor",slug:"local-validator-node-testing-in-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/debugging-solana-programs.html",pathLocale:"/ja/",extraFields:[]},{title:"\u6A5F\u80FD\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u30B7\u30CA\u30EA\u30AA",slug:"\u30B7\u30CA\u30EA\u30AA",children:[]},{level:2,title:"\u6A5F\u80FD\u30B9\u30C6\u30FC\u30BF\u30B9",slug:"\u6A5F\u80FD\u30B9\u30C6\u30FC\u30BF\u30B9",children:[]},{level:2,title:"\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",slug:"\u30CF\u309A\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",children:[]},{level:2,title:"\u7C21\u5358\u306A\u30C7\u30E2\u30F3\u30B9\u30C8\u30EC\u30FC\u30B7\u30E7\u30F3",slug:"\u7C21\u5358\u306A\u30C6\u3099\u30E2\u30F3\u30B9\u30C8\u30EC\u30FC\u30B7\u30E7\u30F3",children:[{level:3,title:"\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u3059\u3079\u3066\u306E\u6A5F\u80FD",slug:"\u30A2\u30AF\u30C6\u30A3\u30D5\u3099\u306A\u3059\u3078\u3099\u3066\u306E\u6A5F\u80FD",children:[]},{level:3,title:"\u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u9078\u629E\u6A5F\u80FD",slug:"\u975E\u30A2\u30AF\u30C6\u30A3\u30D5\u3099\u306A\u9078\u629E\u6A5F\u80FD",children:[]}]},{level:2,title:"\u5B8C\u5168\u306A\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",slug:"\u5B8C\u5168\u306A\u30CF\u309A\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u306E\u5B8C\u5168\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099\u306E\u5B8C\u5168\u30CF\u309A\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/feature-parity-testing.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"\u8A73\u7D30",slug:"\u8A73\u7D30",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/get-program-accounts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u518D\u8A66\u884C",headers:[{level:2,title:"\u6982\u8981",slug:"\u6982\u8981",children:[]},{level:2,title:"The Journey of a Transaction",slug:"the-journey-of-a-transaction",children:[{level:3,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304B\u3099\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1\u3059\u308B\u65B9\u6CD5",children:[]},{level:3,title:"RPC \u30CE\u30FC\u30C9\u304C\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u30D6\u30ED\u30FC\u30C9\u30AD\u30E3\u30B9\u30C8\u3059\u308B\u65B9\u6CD5",slug:"rpc-\u30CE\u30FC\u30C8\u3099\u304B\u3099\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u30D5\u3099\u30ED\u30FC\u30C8\u3099\u30AD\u30E3\u30B9\u30C8\u3059\u308B\u65B9\u6CD5",children:[]}]},{level:2,title:"How Transactions Get Dropped",slug:"how-transactions-get-dropped",children:[{level:3,title:"Before a transaction is processed",slug:"before-a-transaction-is-processed",children:[]},{level:3,title:"After a transaction is processed and before it is finalized",slug:"after-a-transaction-is-processed-and-before-it-is-finalized",children:[]}]},{level:2,title:"Handling Dropped Transactions",slug:"handling-dropped-transactions",children:[{level:3,title:"An In-Depth Look at sendTransaction",slug:"an-in-depth-look-at-sendtransaction",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic",slug:"customizing-rebroadcast-logic",children:[{level:3,title:"The Cost of Skipping Preflight",slug:"the-cost-of-skipping-preflight",children:[]},{level:3,title:"When to Re-Sign Transactions",slug:"when-to-re-sign-transactions",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/ja/guides/retrying-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C7\u30FC\u30BF\u306E\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3",headers:[{level:2,title:"Setting up for Borsh Serialization",slug:"setting-up-for-borsh-serialization",children:[]},{level:2,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067\u547D\u4EE4\u30C7\u30FC\u30BF\u3092\u30B7\u30EA\u30A2\u30EB\u5316\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3066\u3099\u547D\u4EE4\u30C6\u3099\u30FC\u30BF\u3092\u30B7\u30EA\u30A2\u30EB\u5316\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u547D\u4EE4\u30C7\u30FC\u30BF\u3092\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BA\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u547D\u4EE4\u30C6\u3099\u30FC\u30BF\u3092\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30B9\u3099\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u547D\u4EE4\u30C7\u30FC\u30BF\u3092\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BA\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u547D\u4EE4\u30C6\u3099\u30FC\u30BF\u3092\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30B9\u3099\u3059\u308B\u65B9\u6CD5-1",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3/\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3",slug:"\u30B7\u30EA\u30A2\u30E9\u30A4\u30BB\u3099\u30FC\u30B7\u30E7\u30F3-\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30BB\u3099\u30FC\u30B7\u30E7\u30F3",children:[]},{level:3,title:"\u4F7F\u7528\u65B9\u6CD5",slug:"\u4F7F\u7528\u65B9\u6CD5",children:[]}]},{level:2,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067\u30A2\u30AB\u30A6\u30F3\u30C8 \u30C7\u30FC\u30BF\u3092\u30C7\u30B7\u30EA\u30A2\u30E9\u30A4\u30BA\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3066\u3099\u30A2\u30AB\u30A6\u30F3\u30C8-\u30C6\u3099\u30FC\u30BF\u3092\u30C6\u3099\u30B7\u30EA\u30A2\u30E9\u30A4\u30B9\u3099\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u4E00\u822C\u7684\u306A Solana TS/JS \u30DE\u30C3\u30D4\u30F3\u30B0",slug:"\u4E00\u822C\u7684\u306A-solana-ts-js-\u30DE\u30C3\u30D2\u309A\u30F3\u30AF\u3099",children:[]},{level:2,title:"\u3088\u308A\u9AD8\u5EA6\u306A\u69CB\u9020",slug:"\u3088\u308A\u9AD8\u5EA6\u306A\u69CB\u9020",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/guides/serialization.html",pathLocale:"/ja/",extraFields:[]},{title:"Versioned Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Legacy Transaction",slug:"legacy-transaction",children:[]},{level:2,title:"Legacy Message",slug:"legacy-message",children:[{level:3,title:"Header",slug:"header",children:[]},{level:3,title:"Compact-array of account addresses",slug:"compact-array-of-account-addresses",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions",children:[]}]},{level:2,title:"Issues with Legacy Transactions",slug:"issues-with-legacy-transactions",children:[]},{level:2,title:"Address Lookup Tables (LUT)",slug:"address-lookup-tables-lut",children:[]},{level:2,title:"Versioned Transactions: TransactionV0",slug:"versioned-transactions-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Compact array of address table lookups",slug:"compact-array-of-address-table-lookups",children:[]},{level:3,title:"Compact array of instructions",slug:"compact-array-of-instructions-1",children:[]}]},{level:2,title:"RPC Changes",slug:"rpc-changes",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]},{level:2,title:"References",slug:"references",children:[]}],path:"/ja/guides/versioned-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u958B\u59CB",headers:[{level:2,title:"\u69CB\u6210\u53EF\u80FD\u6027\u304C\u9375",slug:"\u69CB\u6210\u53EF\u80FD\u6027\u304B\u3099\u9375",children:[]},{level:2,title:"\u30B3\u30F3\u30C8\u30EA\u30D3\u30E5\u30FC\u30B7\u30E7\u30F3",slug:"\u30B3\u30F3\u30C8\u30EA\u30D2\u3099\u30E5\u30FC\u30B7\u30E7\u30F3",children:[]}],path:"/ja/integrations/",pathLocale:"/ja/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Jupiter\u304B\u3089\u306E\u30C8\u30FC\u30AF\u30F3\u30EA\u30B9\u30C8\u306E\u53D6\u5F97",slug:"jupiter\u304B\u3089\u306E\u30C8\u30FC\u30AF\u30F3\u30EA\u30B9\u30C8\u306E\u53D6\u5F97",children:[]},{level:3,title:"Jupiter\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u8AAD\u8FBC",slug:"jupiter\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u8AAD\u8FBC",children:[]},{level:3,title:"RouteMap\u306E\u53D6\u5F97",slug:"routemap\u306E\u53D6\u5F97",children:[]},{level:3,title:"\u6307\u5B9A\u3055\u308C\u305F\u5165\u529B\u304A\u3088\u3073\u51FA\u529B\u30C8\u30FC\u30AF\u30F3\u306E\u30EB\u30FC\u30C8\u3092\u53D6\u5F97\u3059\u308B",slug:"\u6307\u5B9A\u3055\u308C\u305F\u5165\u529B\u304A\u3088\u3072\u3099\u51FA\u529B\u30C8\u30FC\u30AF\u30F3\u306E\u30EB\u30FC\u30C8\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"\u30C8\u30FC\u30AF\u30F3\u30B9\u30EF\u30C3\u30D7\u3092\u5B9F\u884C\u3059\u308B",slug:"\u30C8\u30FC\u30AF\u30F3\u30B9\u30EF\u30C3\u30D5\u309A\u3092\u5B9F\u884C\u3059\u308B",children:[]},{level:2,title:"React \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067 Jupiter \u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"react-\u30A2\u30D5\u309A\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3066\u3099-jupiter-\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",slug:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",children:[]},{level:3,title:"\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u306E\u8FFD\u52A0",slug:"\u30D5\u309A\u30ED\u30CF\u3099\u30A4\u30BF\u3099\u30FC\u306E\u8FFD\u52A0",children:[]},{level:3,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u30EA\u30B9\u30C8\u3092\u53D6\u5F97\u3059\u308B",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u30EA\u30B9\u30C8\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"State\u306E\u8A2D\u5B9A",slug:"state\u306E\u8A2D\u5B9A",children:[]},{level:3,title:"useJupiter react hook\u306E\u4ED5\u69D8",slug:"usejupiter-react-hook\u306E\u4ED5\u69D8",children:[]},{level:3,title:"\u30B9\u30EF\u30C3\u30D7\u306E\u5B9F\u884C",slug:"\u30B9\u30EF\u30C3\u30D5\u309A\u306E\u5B9F\u884C",children:[]}]},{level:2,title:"Jupiter API\u306E\u4F7F\u7528\u65B9\u6CD5",slug:"jupiter-api\u306E\u4F7F\u7528\u65B9\u6CD5",children:[{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",slug:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB-1",children:[]},{level:3,title:"\u30EB\u30FC\u30C8\u30DE\u30C3\u30D7\u306E\u53D6\u5F97",slug:"\u30EB\u30FC\u30C8\u30DE\u30C3\u30D5\u309A\u306E\u53D6\u5F97",children:[]},{level:3,title:"\u30B7\u30EA\u30A2\u30EB\u5316\u3055\u308C\u305F\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u53D6\u5F97\u3057\u3066\u30B9\u30EF\u30C3\u30D7\u3092\u5B9F\u884C\u3059\u308B",slug:"\u30B7\u30EA\u30A2\u30EB\u5316\u3055\u308C\u305F\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u53D6\u5F97\u3057\u3066\u30B9\u30EF\u30C3\u30D5\u309A\u3092\u5B9F\u884C\u3059\u308B",children:[]},{level:3,title:"\u30B9\u30EF\u30C3\u30D7\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u5B9F\u884C",slug:"\u30B9\u30EF\u30C3\u30D5\u309A\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u5B9F\u884C",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/jupiter.html",pathLocale:"/ja/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"Mango Group\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"mango-group\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"Mango Account\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"mango-account\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"USDC\u3092Mango Account\u306B\u5165\u91D1\u3059\u308B\u65B9\u6CD5",slug:"usdc\u3092mango-account\u306B\u5165\u91D1\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5",slug:"\u30B9\u30DB\u309A\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5",children:[]},{level:2,title:"\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",slug:"\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",children:[]},{level:2,title:"\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",slug:"\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/mango.html",pathLocale:"/ja/",extraFields:[]},{title:"ORAO VRF",headers:[{level:2,title:"Basic usage scenario",slug:"basic-usage-scenario",children:[]},{level:2,title:"SDKs",slug:"sdks",children:[]},{level:2,title:"Anatomy of a randomness request",slug:"anatomy-of-a-randomness-request",children:[]},{level:2,title:"Anatomy of a VRF configuration",slug:"anatomy-of-a-vrf-configuration",children:[]},{level:2,title:"Rust-native example",slug:"rust-native-example",children:[{level:3,title:"1. Setup the connection",slug:"_1-setup-the-connection",children:[]},{level:3,title:"2. Create a request",slug:"_2-create-a-request",children:[]},{level:3,title:"3. Wait for fulfillment",slug:"_3-wait-for-fulfillment",children:[]}]},{level:2,title:"CPI Example",slug:"cpi-example",children:[{level:3,title:"1. Create the contract",slug:"_1-create-the-contract",children:[]},{level:3,title:"2. Collect the necessary accounts",slug:"_2-collect-the-necessary-accounts",children:[]},{level:3,title:"3. Perform a CPI call",slug:"_3-perform-a-cpi-call",children:[]},{level:3,title:"4. Use the fulfilled randomness",slug:"_4-use-the-fulfilled-randomness",children:[]}]}],path:"/ja/integrations/orao-vrf.html",pathLocale:"/ja/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067Pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3066\u3099pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"Anchor\u3067Pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"anchor\u3066\u3099pyth\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/pyth.html",pathLocale:"/ja/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"React Native\u30A2\u30D7\u30EA\u3067@solana/web3.js\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",slug:"react-native\u30A2\u30D5\u309A\u30EA\u3066\u3099-solana-web3-js\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u65B0\u3057\u3044\u30A2\u30D7\u30EA\u3092\u4F5C\u6210\u3059\u308B",slug:"\u65B0\u3057\u3044\u30A2\u30D5\u309A\u30EA\u3092\u4F5C\u6210\u3059\u308B",children:[]},{level:3,title:"\u4F9D\u5B58\u95A2\u4FC2\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",slug:"\u4F9D\u5B58\u95A2\u4FC2\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",children:[]},{level:3,title:"Hermes\u5909\u63DB\u3092\u4F7F\u7528\u3059\u308B\u3088\u3046\u306BBabel\u306B\u30D1\u30C3\u30C1\u3092\u9069\u7528\u3059\u308B",slug:"hermes\u5909\u63DB\u3092\u4F7F\u7528\u3059\u308B\u3088\u3046\u306Bbabel\u306B\u30CF\u309A\u30C3\u30C1\u3092\u9069\u7528\u3059\u308B",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"[iOS \u306E\u307F]cocoapods\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",slug:"ios-\u306E\u307F-cocoapods\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B",children:[]},{level:3,title:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u958B\u59CB",slug:"\u30A2\u30D5\u309A\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u958B\u59CB",children:[]}]},{level:2,title:"React Native\u7528Solana DApp\u30B9\u30AD\u30E3\u30D5\u30A9\u30FC\u30EB\u30C9",slug:"react-native\u7528solana-dapp\u30B9\u30AD\u30E3\u30D5\u30A9\u30FC\u30EB\u30C8\u3099",children:[]},{level:2,title:"React Native\u30A2\u30D7\u30EA\u3067\u6697\u53F7\u5316\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u4F7F\u7528\u3059\u308B\u969B\u306E\u4E00\u822C\u7684\u306A\u554F\u984C",slug:"react-native\u30A2\u30D5\u309A\u30EA\u3066\u3099\u6697\u53F7\u5316\u30E9\u30A4\u30D5\u3099\u30E9\u30EA\u3092\u4F7F\u7528\u3059\u308B\u969B\u306E\u4E00\u822C\u7684\u306A\u554F\u984C",children:[{level:3,title:"Error: Watchman crawl failed",slug:"error-watchman-crawl-failed",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/ja/integrations/react-native.html",pathLocale:"/ja/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"OpenBook\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",slug:"OpenBook\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",children:[]},{level:2,title:"\u73FE\u5728\u306E\u30AA\u30FC\u30D7\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/integrations/OpenBook.html",pathLocale:"/ja/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"\u30D5\u30EB\u30DE\u30CD\u30FC\u30B8\u30C9\u30C8\u30FC\u30AF\u30F3\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"\u30D5\u30EB\u30DE\u30CD\u30FC\u30B7\u3099\u30C8\u3099\u30C8\u30FC\u30AF\u30F3\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5",children:[]},{level:2,title:"\u6D41\u52D5\u6027\u306E\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u65B9\u6CD5",slug:"\u6D41\u52D5\u6027\u306E\u30D5\u3099\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D5\u309A\u65B9\u6CD5",children:[]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/strata.html",pathLocale:"/ja/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"\u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u304B\u3089\u30C7\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",slug:"\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u304B\u3089\u30C6\u3099\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",children:[]},{level:3,title:"\u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B",slug:"\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B",children:[]},{level:3,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u304B\u3089\u30C7\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u304B\u3089\u30C6\u3099\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u308B",children:[]},{level:3,title:"\u30D1\u30D6\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C9\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",slug:"\u30CF\u309A\u30D5\u3099\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",children:[]}]},{level:2,title:"Oracle",slug:"oracle",children:[{level:3,title:"Oracle\u3092\u4F5C\u6210",slug:"oracle\u3092\u4F5C\u6210",children:[]},{level:3,title:"Oracle\u3092\u30ED\u30FC\u30AB\u30EB\u3067\u5B9F\u884C",slug:"oracle\u3092\u30ED\u30FC\u30AB\u30EB\u3066\u3099\u5B9F\u884C",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"\u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570(VRF)",slug:"\u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570-vrf",children:[{level:3,title:"VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u53D6\u308A",slug:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u53D6\u308A",children:[]},{level:3,title:"VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",slug:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",children:[]},{level:3,title:"VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089Randomness\u3092\u8981\u6C42\u3059\u308B",slug:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089randomness\u3092\u8981\u6C42\u3059\u308B",children:[]}]},{level:2,title:"\u53C2\u8003\u6587\u732E",slug:"\u53C2\u8003\u6587\u732E",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/ja/integrations/switchboard.html",pathLocale:"/ja/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3068\u306F\uFF1F",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3068\u306F",children:[]},{level:2,title:"Solana\u306E\u30BD\u30FC\u30B7\u30E3\u30EB\u30ED\u30B0\u30A4\u30F3",slug:"solana\u306E\u30BD\u30FC\u30B7\u30E3\u30EB\u30ED\u30AF\u3099\u30A4\u30F3",children:[]},{level:2,title:"\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3\u30AC\u30A4\u30C9",slug:"\u30A4\u30F3\u30C6\u30AF\u3099\u30EC\u30FC\u30B7\u30E7\u30F3\u30AB\u3099\u30A4\u30C8\u3099",children:[{level:3,title:"\u4F9D\u5B58\u95A2\u4FC2\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",slug:"\u4F9D\u5B58\u95A2\u4FC2\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",children:[]},{level:3,title:"SDK\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u3066\u521D\u671F\u5316\u3059\u308B",slug:"sdk\u3092\u30A4\u30F3\u30DB\u309A\u30FC\u30C8\u3057\u3066\u521D\u671F\u5316\u3059\u308B",children:[]},{level:3,title:"\u30E6\u30FC\u30B6\u30FC\u30ED\u30B0\u30A4\u30F3\u306E\u30C8\u30EA\u30AC\u30FC",slug:"\u30E6\u30FC\u30B5\u3099\u30FC\u30ED\u30AF\u3099\u30A4\u30F3\u306E\u30C8\u30EA\u30AB\u3099\u30FC",children:[]},{level:3,title:"Torus\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F7F\u7528\u3057\u3066\u30E6\u30FC\u30B6\u30FC\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8A73\u7D30\u3092\u53D6\u5F97\u3059\u308B",slug:"torus\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F7F\u7528\u3057\u3066\u30E6\u30FC\u30B5\u3099\u30FC\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8A73\u7D30\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"Torus Solana API\u3092\u4F7F\u7528\u3057\u3066\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u7F72\u540D\u3057\u307E\u3059\u3002",slug:"torus-solana-api\u3092\u4F7F\u7528\u3057\u3066\u30E1\u30C3\u30BB\u30FC\u30B7\u3099\u306B\u7F72\u540D\u3057\u307E\u3059\u3002",children:[]},{level:3,title:"torus Solana API\u3092\u4F7F\u7528\u3057\u3066\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1",slug:"torus-solana-api\u3092\u4F7F\u7528\u3057\u3066\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"\u30ED\u30B0\u30A2\u30A6\u30C8",slug:"\u30ED\u30AF\u3099\u30A2\u30A6\u30C8",children:[]}]},{level:2,title:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",slug:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",children:[]}],path:"/ja/integrations/web3auth.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30A2\u30AB\u30A6\u30F3\u30C8",headers:[{level:2,title:"\u30B7\u30B9\u30C6\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u308A\u65B9",slug:"\u30B7\u30B9\u30C6\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u308A\u65B9",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u8CBB\u7528\u306E\u8A08\u7B97\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u8CBB\u7528\u306E\u8A08\u7B97\u65B9\u6CD5",children:[]},{level:2,title:"\u30B7\u30FC\u30C9\u4ED8\u304D\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",slug:"\u30B7\u30FC\u30C8\u3099\u4ED8\u304D\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u751F\u6210",slug:"\u751F\u6210",children:[]},{level:3,title:"\u4F5C\u6210",slug:"\u4F5C\u6210",children:[]},{level:3,title:"\u9001\u4FE1",slug:"\u9001\u4FE1",children:[]}]},{level:2,title:"PDA \u306E\u4F5C\u6210\u65B9\u6CD5",slug:"pda-\u306E\u4F5C\u6210\u65B9\u6CD5",children:[{level:3,title:"PDA\u306E\u751F\u6210",slug:"pda\u306E\u751F\u6210",children:[]},{level:3,title:"Create a PDA",slug:"create-a-pda",children:[]}]},{level:2,title:"PDA\u3067\u7F72\u540D\u3059\u308B\u65B9\u6CD5",slug:"pda\u3066\u3099\u7F72\u540D\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"program account\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"program-account\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"account\u306E\u9589\u9396",slug:"account\u306E\u9589\u9396",children:[]},{level:2,title:"account\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"account\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/accounts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1",headers:[{level:2,title:"SOL\u306E\u9001\u91D1\u65B9\u6CD5",slug:"sol\u306E\u9001\u91D1\u65B9\u6CD5",children:[]},{level:2,title:"SPL-Token\u306E\u9001\u4FE1\u65B9\u6CD5",slug:"spl-token\u306E\u9001\u4FE1\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u30B3\u30B9\u30C8\u306E\u8A08\u7B97\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u30B3\u30B9\u30C8\u306E\u8A08\u7B97\u65B9\u6CD5",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3078\u306E\u30E1\u30E2\u306E\u8FFD\u52A0\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u3078\u306E\u30E1\u30E2\u306E\u8FFD\u52A0\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3073\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3072\u3099\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/basic-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30AD\u30FC\u30DA\u30A2\u3068\u30A6\u30A9\u30EC\u30C3\u30C8",headers:[{level:2,title:"\u65B0\u3057\u3044\u30AD\u30FC\u30DA\u30A2\u306E\u751F\u6210\u65B9\u6CD5",slug:"\u65B0\u3057\u3044\u30AD\u30FC\u30D8\u309A\u30A2\u306E\u751F\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304B\u3089\u30AD\u30FC\u30DA\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",slug:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304B\u3089\u30AD\u30FC\u30D8\u309A\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30AD\u30FC\u30DA\u30A2\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",slug:"\u30AD\u30FC\u30D8\u309A\u30A2\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u516C\u958B\u9375\u306B\u79D8\u5BC6\u9375\u304C\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",slug:"\u516C\u958B\u9375\u306B\u79D8\u5BC6\u9375\u304B\u3099\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u304B\u3068\u3099\u3046\u304B\u3092\u78BA\u8A8D\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30BA\u306E\u751F\u6210\u65B9\u6CD5",slug:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30B9\u3099\u306E\u751F\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30BA\u304B\u3089\u30AD\u30FC\u30DA\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",slug:"\u30CB\u30FC\u30E2\u30CB\u30C3\u30AF\u30D5\u30EC\u30FC\u30B9\u3099\u304B\u3089\u30AD\u30FC\u30D8\u309A\u30A2\u3092\u5FA9\u5143\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D0\u30CB\u30C6\u30A3\u30A2\u30C9\u30EC\u30B9\u306E\u751F\u6210\u65B9\u6CD5",slug:"\u30CF\u3099\u30CB\u30C6\u30A3\u30A2\u30C8\u3099\u30EC\u30B9\u306E\u751F\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3067\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u7F72\u540D\u3057\u3066\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3066\u3099\u30E1\u30C3\u30BB\u30FC\u30B7\u3099\u306B\u7F72\u540D\u3057\u3066\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3078\u306E\u63A5\u7D9A\u65B9\u6CD5",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u3078\u306E\u63A5\u7D9A\u65B9\u6CD5",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/ja/references/keypairs-and-wallets.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30ED\u30FC\u30AB\u30EB\u958B\u767A",headers:[{level:2,title:"\u30ED\u30FC\u30AB\u30EB\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306E\u958B\u59CB",slug:"\u30ED\u30FC\u30AB\u30EB\u30CF\u3099\u30EA\u30C6\u3099\u30FC\u30BF\u30FC\u306E\u958B\u59CB",children:[]},{level:2,title:"\u74B0\u5883\u3078\u306E\u63A5\u7D9A",slug:"\u74B0\u5883\u3078\u306E\u63A5\u7D9A",children:[]},{level:2,title:"\u30A4\u30D9\u30F3\u30C8\u306E\u30B5\u30D6\u30B9\u30AF\u30E9\u30A4\u30D6",slug:"\u30A4\u30D8\u3099\u30F3\u30C8\u306E\u30B5\u30D5\u3099\u30B9\u30AF\u30E9\u30A4\u30D5\u3099",children:[]},{level:2,title:"\u30C6\u30B9\u30C8SOL\u306E\u53D6\u5F97",slug:"\u30C6\u30B9\u30C8sol\u306E\u53D6\u5F97",children:[]},{level:2,title:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F7F\u7528",slug:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u306E\u4F7F\u7528",children:[{level:3,title:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u65B9\u6CD5",slug:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5",children:[]},{level:3,title:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u30ED\u30FC\u30C9\u3059\u308B\u65B9\u6CD5",slug:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5",children:[]}]}],path:"/ja/references/local-development.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30CD\u30FC\u30E0\u30B5\u30FC\u30D3\u30B9",headers:[{level:2,title:"\u30CD\u30FC\u30E0\u30EC\u30B8\u30B9\u30C8\u30EA",slug:"\u30CD\u30FC\u30E0\u30EC\u30B7\u3099\u30B9\u30C8\u30EA",children:[]},{level:2,title:"SOL\u30C9\u30E1\u30A4\u30F3\u306E\u89E3\u6C7A",slug:"sol\u30C8\u3099\u30E1\u30A4\u30F3\u306E\u89E3\u6C7A",children:[]},{level:2,title:"\u9006\u5F15\u304D",slug:"\u9006\u5F15\u304D",children:[]},{level:2,title:"\u30B5\u30D6\u30C9\u30E1\u30A4\u30F3\u306E\u691C\u7D22",slug:"\u30B5\u30D5\u3099\u30C8\u3099\u30E1\u30A4\u30F3\u306E\u691C\u7D22",children:[]},{level:2,title:"\u516C\u958B\u9375\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30C9\u30E1\u30A4\u30F3\u540D\u3092\u898B\u3064\u3051\u308B",slug:"\u516C\u958B\u9375\u304B\u3099\u6240\u6709\u3059\u308B\u3059\u3078\u3099\u3066\u306E\u30C8\u3099\u30E1\u30A4\u30F3\u540D\u3092\u898B\u3064\u3051\u308B",children:[]},{level:2,title:"Twitter handle\u3092\u89E3\u6C7A\u3059\u308B",slug:"twitter-handle\u3092\u89E3\u6C7A\u3059\u308B",children:[]},{level:2,title:"Twitter handle\u306E\u9006\u5F15\u304D",slug:"twitter-handle\u306E\u9006\u5F15\u304D",children:[]}],path:"/ja/references/name-service.html",pathLocale:"/ja/",extraFields:[]},{title:"NFT",headers:[{level:2,title:"NFT \u306E\u4F5C\u6210\u65B9\u6CD5",slug:"nft-\u306E\u4F5C\u6210\u65B9\u6CD5",children:[{level:3,title:"Arweave\u306B\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",slug:"arweave\u306B\u30A2\u30C3\u30D5\u309A\u30ED\u30FC\u30C8\u3099",children:[]},{level:3,title:"NFT\u3092\u30DF\u30F3\u30C8",slug:"nft\u3092\u30DF\u30F3\u30C8",children:[]}]},{level:2,title:"NFT\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"nft\u30E1\u30BF\u30C6\u3099\u30FC\u30BF\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"NFT\u306E\u6240\u6709\u8005\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"nft\u306E\u6240\u6709\u8005\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"NFT\u30DF\u30F3\u30C8\u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"nft\u30DF\u30F3\u30C8\u30A2\u30C8\u3099\u30EC\u30B9\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u304B\u3089\u3059\u3079\u3066\u306E NFT \u3092\u53D6\u5F97\u3059\u308B\u306B\u306F\uFF1F",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u304B\u3089\u3059\u3078\u3099\u3066\u306E-nft-\u3092\u53D6\u5F97\u3059\u308B\u306B\u306F",children:[]},{level:2,title:"Candy Machine v2",slug:"candy-machine-v2-1",children:[{level:3,title:"Candy Machine\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"candy-machine\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u306E\u524A\u9664\u65B9\u6CD5",slug:"candy-machine\u306E\u524A\u9664\u65B9\u6CD5",children:[]},{level:3,title:"authority\u3092\u4ECB\u3057\u3066Candy Machine\u3092\u63A2\u3059\u65B9\u6CD5",slug:"authority\u3092\u4ECB\u3057\u3066candy-machine\u3092\u63A2\u3059\u65B9\u6CD5",children:[]},{level:3,title:"\u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C9\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066Candy Machine\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",slug:"\u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C8\u3099\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066candy-machine\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",children:[]},{level:3,title:"\u30A2\u30C9\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066Candy Machine\u3092\u63A2\u3059\u65B9\u6CD5",slug:"\u30A2\u30C8\u3099\u30EC\u30B9\u3092\u4F7F\u7528\u3057\u3066candy-machine\u3092\u63A2\u3059\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u304B\u3089\u30DF\u30F3\u30C8\u3055\u308C\u305FNFT\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",slug:"candy-machine\u304B\u3089\u30DF\u30F3\u30C8\u3055\u308C\u305Fnft\u3092\u898B\u3064\u3051\u308B\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u306B\u30A2\u30A4\u30C6\u30E0\u3092\u633F\u5165\u3059\u308B\u65B9\u6CD5",slug:"candy-machine\u306B\u30A2\u30A4\u30C6\u30E0\u3092\u633F\u5165\u3059\u308B\u65B9\u6CD5",children:[]},{level:3,title:"Candy Machine\u304B\u3089NFT\u3092\u30DF\u30F3\u30C8\u3059\u308B\u65B9\u6CD5",slug:"candy-machine\u304B\u3089nft\u3092\u30DF\u30F3\u30C8\u3059\u308B\u65B9\u6CD5",children:[]}]}],path:"/ja/references/nfts.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30AA\u30D5\u30E9\u30A4\u30F3\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1",headers:[{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u7F72\u540D",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u7F72\u540D",children:[]},{level:2,title:"\u90E8\u5206\u7F72\u540D\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3",slug:"\u90E8\u5206\u7F72\u540D\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3",children:[]},{level:2,title:"\u8010\u4E45\u6027\u306E\u3042\u308B\u30CA\u30F3\u30B9",slug:"\u8010\u4E45\u6027\u306E\u3042\u308B\u30CA\u30F3\u30B9",children:[{level:3,title:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97",slug:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97",children:[]},{level:3,title:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97",slug:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97-1",children:[]},{level:3,title:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F7F\u7528",slug:"\u30CA\u30F3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F7F\u7528",children:[]}]}],path:"/ja/references/offline-transactions.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F5C\u6210",headers:[{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067SOL\u3092\u8EE2\u9001\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099sol\u3092\u8EE2\u9001\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u3067clock\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3066\u3099clock\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u3057\u3066Clock\u3092\u6E21\u3059",slug:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u3057\u3066clock\u3092\u6E21\u3059",children:[]},{level:3,title:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u3067Clock\u306B\u76F4\u63A5\u30A2\u30AF\u30BB\u30B9\u3059\u308B",slug:"\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u5185\u3066\u3099clock\u306B\u76F4\u63A5\u30A2\u30AF\u30BB\u30B9\u3059\u308B",children:[]}]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30B5\u30A4\u30BA\u306E\u5909\u66F4\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30B5\u30A4\u30B9\u3099\u306E\u5909\u66F4\u65B9\u6CD5",children:[]},{level:2,title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u540C\u58EB\u306E\u547C\u3073\u51FA\u3057\u65B9\u6CD5",slug:"\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u540C\u58EB\u306E\u547C\u3072\u3099\u51FA\u3057\u65B9\u6CD5",children:[]},{level:2,title:"PDA\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"pda\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u65B9\u6CD5",children:[]},{level:2,title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",slug:"\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u8A3C\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u304B\u3089\u8907\u6570\u306E\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\u65B9\u6CD5",slug:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u304B\u3089\u8907\u6570\u306E\u30A4\u30F3\u30B9\u30C8\u30E9\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/programs.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30B9\u30C6\u30FC\u30AD\u30F3\u30B0",headers:[{level:2,title:"\u73FE\u5728\u306E\u30D0\u30EA\u30C7\u30FC\u30BF\u3092\u53D6\u5F97",slug:"\u73FE\u5728\u306E\u30CF\u3099\u30EA\u30C6\u3099\u30FC\u30BF\u3092\u53D6\u5F97",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",slug:"\u30B9\u30C6\u30FC\u30AF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u306E\u59D4\u4EFB",slug:"\u30B9\u30C6\u30FC\u30AF\u306E\u59D4\u4EFB",children:[]},{level:2,title:"\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306B\u3088\u308B\u30C7\u30EA\u30B2\u30FC\u30BF\u30FC\u306E\u53D6\u5F97",slug:"\u30CF\u3099\u30EA\u30C6\u3099\u30FC\u30BF\u30FC\u306B\u3088\u308B\u30C6\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u306E\u53D6\u5F97",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u3092\u7121\u52B9\u306B\u3059\u308B",slug:"\u30B9\u30C6\u30FC\u30AF\u3092\u7121\u52B9\u306B\u3059\u308B",children:[]},{level:2,title:"\u30B9\u30C6\u30FC\u30AF\u3092\u5F15\u304D\u51FA\u3059",slug:"\u30B9\u30C6\u30FC\u30AF\u3092\u5F15\u304D\u51FA\u3059",children:[]}],path:"/ja/references/staking.html",pathLocale:"/ja/",extraFields:[]},{title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u306E\u5BFE\u8A71",headers:[{level:2,title:"SPL-Tokens \u3092\u59CB\u3081\u308B\u306B\u306F\u4F55\u304C\u5FC5\u8981\u3067\u3059\u304B\uFF1F",slug:"spl-tokens-\u3092\u59CB\u3081\u308B\u306B\u306F\u4F55\u304B\u3099\u5FC5\u8981\u3066\u3099\u3059\u304B",children:[]},{level:2,title:"\u65B0\u3057\u3044\u30C8\u30FC\u30AF\u30F3\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",slug:"\u65B0\u3057\u3044\u30C8\u30FC\u30AF\u30F3\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30DF\u30F3\u30C8\u306E\u5165\u624B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30DF\u30F3\u30C8\u306E\u5165\u624B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u767A\u884C\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u767A\u884C\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u8EE2\u9001\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u8EE2\u9001\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u306E\u30D0\u30FC\u30F3\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u306E\u30CF\u3099\u30FC\u30F3\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u9589\u3058\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u9589\u3057\u3099\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u307E\u305F\u306Fmint\u306B\u6A29\u9650\u3092\u8A2D\u5B9A\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u307E\u305F\u306Fmint\u306B\u6A29\u9650\u3092\u8A2D\u5B9A\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30C7\u30EA\u30B2\u30FC\u30C8\u3092\u627F\u8A8D\u3059\u308B\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30C6\u3099\u30EA\u30B1\u3099\u30FC\u30C8\u3092\u627F\u8A8D\u3059\u308B\u65B9\u6CD5",children:[]},{level:2,title:"\u30C8\u30FC\u30AF\u30F3\u30C7\u30EA\u30B2\u30FC\u30C8\u3092\u53D6\u308A\u6D88\u3059\u65B9\u6CD5",slug:"\u30C8\u30FC\u30AF\u30F3\u30C6\u3099\u30EA\u30B1\u3099\u30FC\u30C8\u3092\u53D6\u308A\u6D88\u3059\u65B9\u6CD5",children:[]},{level:2,title:"wrapped SOL\u306E\u7BA1\u7406\u65B9\u6CD5",slug:"wrapped-sol\u306E\u7BA1\u7406\u65B9\u6CD5",children:[{level:3,title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B",slug:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B",children:[]},{level:3,title:"\u6B8B\u9AD8\u306E\u8FFD\u52A0",slug:"\u6B8B\u9AD8\u306E\u8FFD\u52A0",children:[]}]},{level:2,title:"\u6240\u6709\u8005\u3054\u3068\u306E\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u6240\u6709\u8005\u3053\u3099\u3068\u306E\u3059\u3078\u3099\u3066\u306E\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],path:"/ja/references/token.html",pathLocale:"/ja/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Account Model",slug:"account-model",children:[]},{level:3,title:"Rent",slug:"rent",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/kr/core-concepts/accounts.html",pathLocale:"/kr/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Generating PDAs",slug:"generating-pdas",children:[]},{level:3,title:"Interacting with PDAs",slug:"interacting-with-pdas",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/core-concepts/pdas.html",pathLocale:"/kr/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Native Programs & The Solana Program Library (SPL)",slug:"native-programs-the-solana-program-library-spl",children:[]},{level:3,title:"Writing Programs",slug:"writing-programs",children:[]},{level:3,title:"Deploying Programs",slug:"deploying-programs",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/core-concepts/programs.html",pathLocale:"/kr/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"Fees",slug:"fees",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/core-concepts/transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Install Web3.js",slug:"install-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"Install Rust",slug:"install-rust",children:[]},{level:2,title:"Install CLI",slug:"install-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/kr/getting-started/installation.html",pathLocale:"/kr/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/kr/guides/account-maps.html",pathLocale:"/kr/",extraFields:[]},{title:"Migrating Program Data Accounts",headers:[{level:2,title:"How can you migrate a program's data accounts?",slug:"how-can-you-migrate-a-program-s-data-accounts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Upgrading the Account",slug:"upgrading-the-account",children:[{level:3,title:"1. Add account conversion logic",slug:"_1-add-account-conversion-logic",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/data-migration.html",pathLocale:"/kr/",extraFields:[]},{title:"Debugging Solana Programs",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Runtime Testing and Debugging in editor",slug:"runtime-testing-and-debugging-in-editor",children:[]},{level:2,title:"Local Validator Node Testing in editor",slug:"local-validator-node-testing-in-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/debugging-solana-programs.html",pathLocale:"/kr/",extraFields:[]},{title:"Feature Parity Testing",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parity Testing",slug:"parity-testing",children:[]},{level:2,title:"Simple Demonstration",slug:"simple-demonstration",children:[{level:3,title:"All features activated",slug:"all-features-activated",children:[]},{level:3,title:"Selective features deactivated",slug:"selective-features-deactivated",children:[]}]},{level:2,title:"Full Parity Testing",slug:"full-parity-testing",children:[]},{level:2,title:"Full Parity Testing Programmatically",slug:"full-parity-testing-programmatically",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/feature-parity-testing.html",pathLocale:"/kr/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"Deep Dive",slug:"deep-dive",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/kr/guides/get-program-accounts.html",pathLocale:"/kr/",extraFields:[]},{title:"Retrying Transactions",headers:[{level:2,title:"Facts",slug:"facts",children:[]},{level:2,title:"The Journey of a Transaction",slug:"the-journey-of-a-transaction",children:[{level:3,title:"How Clients Submit Transactions",slug:"how-clients-submit-transactions",children:[]},{level:3,title:"How RPC Nodes Broadcast Transactions",slug:"how-rpc-nodes-broadcast-transactions",children:[]}]},{level:2,title:"How Transactions Get Dropped",slug:"how-transactions-get-dropped",children:[{level:3,title:"Before a transaction is processed",slug:"before-a-transaction-is-processed",children:[]},{level:3,title:"After a transaction is processed and before it is finalized",slug:"after-a-transaction-is-processed-and-before-it-is-finalized",children:[]}]},{level:2,title:"Handling Dropped Transactions",slug:"handling-dropped-transactions",children:[{level:3,title:"An In-Depth Look at sendTransaction",slug:"an-in-depth-look-at-sendtransaction",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic",slug:"customizing-rebroadcast-logic",children:[{level:3,title:"The Cost of Skipping Preflight",slug:"the-cost-of-skipping-preflight",children:[]},{level:3,title:"When to Re-Sign Transactions",slug:"when-to-re-sign-transactions",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/kr/guides/retrying-transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Serializing Data",headers:[{level:2,title:"Setting up for Borsh Serialization",slug:"setting-up-for-borsh-serialization",children:[]},{level:2,title:"How to serialize instruction data on the client",slug:"how-to-serialize-instruction-data-on-the-client",children:[]},{level:2,title:"How to deserialize instruction data on the program",slug:"how-to-deserialize-instruction-data-on-the-program",children:[]},{level:2,title:"How to serialize account data on the program",slug:"how-to-serialize-account-data-on-the-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"Usage",slug:"usage",children:[]}]},{level:2,title:"How to deserialize account data on the client",slug:"how-to-deserialize-account-data-on-the-client",children:[]},{level:2,title:"Common Solana TS/JS Mappings",slug:"common-solana-ts-js-mappings",children:[]},{level:2,title:"Advanced Constructs",slug:"advanced-constructs",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/kr/guides/serialization.html",pathLocale:"/kr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"How to create a system account",slug:"how-to-create-a-system-account",children:[]},{level:2,title:"How to calculate account cost",slug:"how-to-calculate-account-cost",children:[]},{level:2,title:"How to create accounts with seeds",slug:"how-to-create-accounts-with-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"How to create PDAs",slug:"how-to-create-pdas",children:[{level:3,title:"Generate a PDA",slug:"generate-a-pda",children:[]},{level:3,title:"Create a PDA",slug:"create-a-pda",children:[]}]},{level:2,title:"How to sign with a PDA",slug:"how-to-sign-with-a-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"How to get program accounts",slug:"how-to-get-program-accounts",children:[]},{level:2,title:"How to close accounts",slug:"how-to-close-accounts",children:[]},{level:2,title:"How to get account balance",slug:"how-to-get-account-balance",children:[]}],path:"/kr/references/accounts.html",pathLocale:"/kr/",extraFields:[]},{title:"Sending Transactions",headers:[{level:2,title:"How to send SOL",slug:"how-to-send-sol",children:[]},{level:2,title:"How to send SPL-Tokens",slug:"how-to-send-spl-tokens",children:[]},{level:2,title:"How to calculate transaction cost",slug:"how-to-calculate-transaction-cost",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"How to add a memo to a transaction",slug:"how-to-add-a-memo-to-a-transaction",children:[]},{level:2,title:"How to change compute budget, fee, & priority for a transaction",slug:"how-to-change-compute-budget-fee-priority-for-a-transaction",children:[]}],path:"/kr/references/basic-transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"How to generate a new Keypair",slug:"how-to-generate-a-new-keypair",children:[]},{level:2,title:"How to restore a Keypair from a secret",slug:"how-to-restore-a-keypair-from-a-secret",children:[]},{level:2,title:"How to verify a Keypair",slug:"how-to-verify-a-keypair",children:[]},{level:2,title:"How to check if a public key has an associated private key",slug:"how-to-check-if-a-public-key-has-an-associated-private-key",children:[]},{level:2,title:"How to generate a mnemonic phrase",slug:"how-to-generate-a-mnemonic-phrase",children:[]},{level:2,title:"How to restore a Keypair from a mnemonic phrase",slug:"how-to-restore-a-keypair-from-a-mnemonic-phrase",children:[]},{level:2,title:"How to generate a vanity address",slug:"how-to-generate-a-vanity-address",children:[]},{level:2,title:"How to sign and verify messages with wallets",slug:"how-to-sign-and-verify-messages-with-wallets",children:[]},{level:2,title:"How to connect to a wallet",slug:"how-to-connect-to-a-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/kr/references/keypairs-and-wallets.html",pathLocale:"/kr/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"Starting a Local Validator",slug:"starting-a-local-validator",children:[]},{level:2,title:"Connecting to Environments",slug:"connecting-to-environments",children:[]},{level:2,title:"Subscribing to Events",slug:"subscribing-to-events",children:[]},{level:2,title:"Getting Test SOL",slug:"getting-test-sol",children:[]},{level:2,title:"Using Mainnet Accounts and Programs",slug:"using-mainnet-accounts-and-programs",children:[{level:3,title:"How to load accounts from mainnet",slug:"how-to-load-accounts-from-mainnet",children:[]},{level:3,title:"How to load programs from mainnet",slug:"how-to-load-programs-from-mainnet",children:[]}]}],path:"/kr/references/local-development.html",pathLocale:"/kr/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"Find all the domain names owned by a public key",slug:"find-all-the-domain-names-owned-by-a-public-key",children:[]},{level:2,title:"Resolve a Twitter handle",slug:"resolve-a-twitter-handle",children:[]},{level:2,title:"Reverse look up of a Twitter handle",slug:"reverse-look-up-of-a-twitter-handle",children:[]}],path:"/kr/references/name-service.html",pathLocale:"/kr/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"How to create an NFT",slug:"how-to-create-an-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint the NFT",slug:"mint-the-nft",children:[]}]},{level:2,title:"How to get NFT Metadata",slug:"how-to-get-nft-metadata",children:[]},{level:2,title:"How to get the owner of an NFT",slug:"how-to-get-the-owner-of-an-nft",children:[]},{level:2,title:"How to get NFT Mint Addresses",slug:"how-to-get-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"How to get all NFTs from a wallet?",slug:"how-to-get-all-nfts-from-a-wallet",children:[]}],path:"/kr/references/nfts.html",pathLocale:"/kr/",extraFields:[]},{title:"Sending Offline Transactions",headers:[{level:2,title:"Sign Transaction",slug:"sign-transaction",children:[]},{level:2,title:"Partial Sign Transaction",slug:"partial-sign-transaction",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Create Nonce Account",slug:"create-nonce-account",children:[]},{level:3,title:"Get Nonce Account",slug:"get-nonce-account",children:[]},{level:3,title:"Use Nonce Account",slug:"use-nonce-account",children:[]}]}],path:"/kr/references/offline-transactions.html",pathLocale:"/kr/",extraFields:[]},{title:"Writing Programs",headers:[{level:2,title:"How to transfer SOL in a program",slug:"how-to-transfer-sol-in-a-program",children:[]},{level:2,title:"How to get clock in a program",slug:"how-to-get-clock-in-a-program",children:[{level:3,title:"Passing Clock as an account inside an instruction",slug:"passing-clock-as-an-account-inside-an-instruction",children:[]},{level:3,title:"Accessing Clock directly inside an instruction",slug:"accessing-clock-directly-inside-an-instruction",children:[]}]},{level:2,title:"How to change account size",slug:"how-to-change-account-size",children:[]},{level:2,title:"How to do Cross Program Invocation",slug:"how-to-do-cross-program-invocation",children:[]},{level:2,title:"How to create a PDA",slug:"how-to-create-a-pda",children:[]},{level:2,title:"How to read accounts",slug:"how-to-read-accounts",children:[]},{level:2,title:"How to verify accounts",slug:"how-to-verify-accounts",children:[]},{level:2,title:"How to read multiple instructions from a transaction",slug:"how-to-read-multiple-instructions-from-a-transaction",children:[]}],path:"/kr/references/programs.html",pathLocale:"/kr/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Get Current Validators",slug:"get-current-validators",children:[]},{level:2,title:"Create Stake Account",slug:"create-stake-account",children:[]},{level:2,title:"Delegate Stake",slug:"delegate-stake",children:[]},{level:2,title:"Get Delegator by Validators",slug:"get-delegator-by-validators",children:[]},{level:2,title:"Deactivate Stake",slug:"deactivate-stake",children:[]},{level:2,title:"Withdraw Stake",slug:"withdraw-stake",children:[]}],path:"/kr/references/staking.html",pathLocale:"/kr/",extraFields:[]},{title:"Interacting with Tokens",headers:[{level:2,title:"What do I need to get started with SPL-Tokens?",slug:"what-do-i-need-to-get-started-with-spl-tokens",children:[]},{level:2,title:"How to create a new Token",slug:"how-to-create-a-new-token",children:[]},{level:2,title:"How to get a token mint",slug:"how-to-get-a-token-mint",children:[]},{level:2,title:"How to create a token account",slug:"how-to-create-a-token-account",children:[]},{level:2,title:"How to get a Token Account",slug:"how-to-get-a-token-account",children:[]},{level:2,title:"How to get a token account's balance",slug:"how-to-get-a-token-account-s-balance",children:[]},{level:2,title:"How to mint tokens",slug:"how-to-mint-tokens",children:[]},{level:2,title:"How to transfer tokens",slug:"how-to-transfer-tokens",children:[]},{level:2,title:"How to burn tokens",slug:"how-to-burn-tokens",children:[]},{level:2,title:"How to close token accounts",slug:"how-to-close-token-accounts",children:[]},{level:2,title:"How to set authority on token accounts or mints",slug:"how-to-set-authority-on-token-accounts-or-mints",children:[]},{level:2,title:"How to approve a token delegate",slug:"how-to-approve-a-token-delegate",children:[]},{level:2,title:"How to revoke a token delegate",slug:"how-to-revoke-a-token-delegate",children:[]},{level:2,title:"How to manage wrapped SOL",slug:"how-to-manage-wrapped-sol",children:[{level:3,title:"Create Token Account",slug:"create-token-account",children:[]},{level:3,title:"Add Balance",slug:"add-balance",children:[]}]},{level:2,title:"How to get all token accounts by owner",slug:"how-to-get-all-token-accounts-by-owner",children:[]}],path:"/kr/references/token.html",pathLocale:"/kr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"Account Model",slug:"account-model",children:[]},{level:3,title:"Rent (\u0E04\u0E48\u0E32\u0E40\u0E0A\u0E48\u0E32)",slug:"rent-\u0E04\u0E48\u0E32\u0E40\u0E0A\u0E48\u0E32",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[{level:3,title:"Credit",slug:"credit",children:[]}]}],path:"/th/core-concepts/accounts.html",pathLocale:"/th/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 PDAs",slug:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07-pdas",children:[]},{level:3,title:"\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 PDAs",slug:"\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19-pdas",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/core-concepts/pdas.html",pathLocale:"/th/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"Native Programs \u0E41\u0E25\u0E30 The Solana Program Library (SPL)",slug:"native-programs-\u0E41\u0E25\u0E30-the-solana-program-library-spl",children:[]},{level:3,title:"\u0E40\u0E02\u0E35\u0E22\u0E19 Programs",slug:"\u0E40\u0E02\u0E35\u0E22\u0E19-programs",children:[]},{level:3,title:"Deploying Programs",slug:"deploying-programs",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/core-concepts/programs.html",pathLocale:"/th/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"\u0E04\u0E48\u0E32\u0E18\u0E23\u0E23\u0E21\u0E40\u0E19\u0E35\u0E22\u0E21 (Fees)",slug:"\u0E04\u0E48\u0E32\u0E18\u0E23\u0E23\u0E21\u0E40\u0E19\u0E35\u0E22\u0E21-fees",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/core-concepts/transactions.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",headers:[{level:2,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 Web3.js",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 Rust",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-rust",children:[]},{level:2,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 CLI",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source",slug:"build-from-source",children:[]}]}],path:"/th/getting-started/installation.html",pathLocale:"/th/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/th/guides/account-maps.html",pathLocale:"/th/",extraFields:[]},{title:"Migrating Program Data Accounts",headers:[{level:2,title:"\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 migrate program's data accounts \u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07?",slug:"\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16-migrate-program-s-data-accounts-\u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07",children:[]},{level:2,title:"\u0E2A\u0E16\u0E32\u0E19\u0E01\u0E32\u0E23\u0E13\u0E4C (Scenario)",slug:"\u0E2A\u0E16\u0E32\u0E19\u0E01\u0E32\u0E23\u0E13\u0E4C-scenario",children:[]},{level:2,title:"Upgrading the Account",slug:"upgrading-the-account",children:[{level:3,title:"1. Add account conversion logic",slug:"_1-add-account-conversion-logic",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/data-migration.html",pathLocale:"/th/",extraFields:[]},{title:"Debugging Solana Programs",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"Runtime Testing \u0E41\u0E25\u0E30 Debugging \u0E43\u0E19 editor",slug:"runtime-testing-\u0E41\u0E25\u0E30-debugging-\u0E43\u0E19-editor",children:[]},{level:2,title:"\u0E17\u0E14\u0E2A\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22 Local Validator Node \u0E43\u0E19 editor",slug:"\u0E17\u0E14\u0E2A\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22-local-validator-node-\u0E43\u0E19-editor",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps",slug:"local-validator-node-testing-from-client-apps",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/debugging-solana-programs.html",pathLocale:"/th/",extraFields:[]},{title:"Feature Parity Testing",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"Scenario",slug:"scenario",children:[]},{level:2,title:"Feature Status",slug:"feature-status",children:[]},{level:2,title:"Parity Testing",slug:"parity-testing",children:[]},{level:2,title:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22\u0E46",slug:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22\u0E46",children:[{level:3,title:"\u0E40\u0E1B\u0E34\u0E14\u0E17\u0E38\u0E01 features",slug:"\u0E40\u0E1B\u0E34\u0E14\u0E17\u0E38\u0E01-features",children:[]},{level:3,title:"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E34\u0E14 features",slug:"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E34\u0E14-features",children:[]}]},{level:2,title:"Feature Parity Testing",slug:"feature-parity-testing",children:[]},{level:2,title:"Full Parity Testing Programmatically",slug:"full-parity-testing-programmatically",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/feature-parity-testing.html",pathLocale:"/th/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E25\u0E07\u0E25\u0E36\u0E01",slug:"\u0E25\u0E07\u0E25\u0E36\u0E01",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/guides/get-program-accounts.html",pathLocale:"/th/",extraFields:[]},{title:"Retrying Transactions",headers:[{level:2,title:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",slug:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"\u0E01\u0E32\u0E23\u0E40\u0E14\u0E34\u0E19\u0E17\u0E32\u0E07\u0E02\u0E2D\u0E07 Transaction",slug:"\u0E01\u0E32\u0E23\u0E40\u0E14\u0E34\u0E19\u0E17\u0E32\u0E07\u0E02\u0E2D\u0E07-transaction",children:[{level:3,title:"Clients Submit Transactions \u0E22\u0E31\u0E07\u0E44\u0E07",slug:"clients-submit-transactions-\u0E22\u0E31\u0E07\u0E44\u0E07",children:[]},{level:3,title:"RPC Nodes Broadcast Transactions \u0E22\u0E31\u0E07\u0E44\u0E07",slug:"rpc-nodes-broadcast-transactions-\u0E22\u0E31\u0E07\u0E44\u0E07",children:[]}]},{level:2,title:"Transactions \u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07",slug:"transactions-\u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07",children:[{level:3,title:"\u0E01\u0E48\u0E2D\u0E19 transaction \u0E08\u0E30\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08",slug:"\u0E01\u0E48\u0E2D\u0E19-transaction-\u0E08\u0E30\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08",children:[]},{level:3,title:"\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01 transaction \u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08 \u0E41\u0E25\u0E30\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30 finalized",slug:"\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01-transaction-\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08-\u0E41\u0E25\u0E30\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30-finalized",children:[]}]},{level:2,title:"\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 Transactions \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07",slug:"\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23-transactions-\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E17\u0E34\u0E49\u0E07",children:[{level:3,title:"sendTransaction \u0E40\u0E0A\u0E34\u0E07\u0E25\u0E36\u0E01",slug:"sendtransaction-\u0E40\u0E0A\u0E34\u0E07\u0E25\u0E36\u0E01",children:[]}]},{level:2,title:"\u0E17\u0E33 Rebroadcast Logic \u0E40\u0E2D\u0E07",slug:"\u0E17\u0E4D\u0E32-rebroadcast-logic-\u0E40\u0E2D\u0E07",children:[{level:3,title:"\u0E08\u0E30\u0E40\u0E01\u0E34\u0E14\u0E2D\u0E30\u0E44\u0E23\u0E02\u0E36\u0E49\u0E19\u0E16\u0E49\u0E32 Skip Preflight",slug:"\u0E08\u0E30\u0E40\u0E01\u0E34\u0E14\u0E2D\u0E30\u0E44\u0E23\u0E02\u0E36\u0E49\u0E19\u0E16\u0E49\u0E32-skip-preflight",children:[]},{level:3,title:"Re-Sign Transactions \u0E40\u0E21\u0E37\u0E48\u0E2D\u0E44\u0E2B\u0E23\u0E48\u0E14\u0E35",slug:"re-sign-transactions-\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E44\u0E2B\u0E23\u0E48\u0E14\u0E35",children:[]}]},{level:2,title:"Acknowledgements",slug:"acknowledgements",children:[]}],path:"/th/guides/retrying-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"Serializing Data",headers:[{level:2,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A Borsh Serialization",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-borsh-serialization",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 serialize instruction data \u0E17\u0E35\u0E48 client",slug:"\u0E27\u0E34\u0E18\u0E35-serialize-instruction-data-\u0E17\u0E35\u0E48-client",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 deserialize instruction data \u0E43\u0E19 program",slug:"\u0E27\u0E34\u0E18\u0E35-deserialize-instruction-data-\u0E43\u0E19-program",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 serialize account data \u0E43\u0E19 program",slug:"\u0E27\u0E34\u0E18\u0E35-serialize-account-data-\u0E43\u0E19-program",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 deserialize account data \u0E17\u0E35\u0E48 client",slug:"\u0E27\u0E34\u0E18\u0E35-deserialize-account-data-\u0E17\u0E35\u0E48-client",children:[]},{level:2,title:"Solana TS/JS Mappings \u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B",slug:"solana-ts-js-mappings-\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B",children:[]},{level:2,title:"Advanced Constructs",slug:"advanced-constructs",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/guides/serialization.html",pathLocale:"/th/",extraFields:[]},{title:"Versioned Transactions",headers:[{level:2,title:"Facts (\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49)",slug:"facts-\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",children:[]},{level:2,title:"Legacy Transaction",slug:"legacy-transaction",children:[]},{level:2,title:"Legacy Message",slug:"legacy-message",children:[{level:3,title:"Header",slug:"header",children:[]},{level:3,title:"Compact-array \u0E02\u0E2D\u0E07 account addresses",slug:"compact-array-\u0E02\u0E2D\u0E07-account-addresses",children:[]},{level:3,title:"Compact array \u0E02\u0E2D\u0E07 instructions",slug:"compact-array-\u0E02\u0E2D\u0E07-instructions",children:[]}]},{level:2,title:"\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E02\u0E2D\u0E07 Legacy Transactions",slug:"\u0E02\u0E49\u0E2D\u0E08\u0E4D\u0E32\u0E01\u0E31\u0E14\u0E02\u0E2D\u0E07-legacy-transactions",children:[]},{level:2,title:"Address Lookup Tables (LUT)",slug:"address-lookup-tables-lut",children:[]},{level:2,title:"Versioned Transactions: TransactionV0",slug:"versioned-transactions-transactionv0",children:[]},{level:2,title:"MessageV0",slug:"messagev0",children:[{level:3,title:"Compact array \u0E02\u0E2D\u0E07 address table lookups",slug:"compact-array-\u0E02\u0E2D\u0E07-address-table-lookups",children:[]},{level:3,title:"Compact array \u0E02\u0E2D\u0E07 instructions",slug:"compact-array-\u0E02\u0E2D\u0E07-instructions-1",children:[]}]},{level:2,title:"RPC Changes",slug:"rpc-changes",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",children:[]},{level:2,title:"\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07",slug:"\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07",children:[]}],path:"/th/guides/versioned-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19",headers:[{level:2,title:"Composability \u0E04\u0E37\u0E2D\u0E2B\u0E31\u0E27\u0E43\u0E08",slug:"composability-\u0E04\u0E37\u0E2D\u0E2B\u0E31\u0E27\u0E43\u0E08",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/th/integrations/",pathLocale:"/th/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",children:[]},{level:3,title:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 Token \u0E08\u0E32\u0E01 Jupiter",slug:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23-token-\u0E08\u0E32\u0E01-jupiter",children:[]},{level:3,title:"Loading the Jupiter instance",slug:"loading-the-jupiter-instance",children:[]},{level:3,title:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07 RouteMap",slug:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07-routemap",children:[]},{level:3,title:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A Input \u0E41\u0E25\u0E30 Output token \u0E17\u0E35\u0E48\u0E43\u0E2B\u0E49\u0E21\u0E32",slug:"\u0E2B\u0E32\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-input-\u0E41\u0E25\u0E30-output-token-\u0E17\u0E35\u0E48\u0E43\u0E2B\u0E49\u0E21\u0E32",children:[]},{level:3,title:"Execute the Token Swap",slug:"execute-the-token-swap",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Jupiter \u0E01\u0E31\u0E1A React Application",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-jupiter-\u0E01\u0E31\u0E1A-react-application",children:[{level:3,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",children:[]},{level:3,title:"\u0E40\u0E1E\u0E34\u0E48\u0E21 Provider",slug:"\u0E40\u0E1E\u0E34\u0E48\u0E21-provider",children:[]},{level:3,title:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 Tokens",slug:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23-tokens",children:[]},{level:3,title:"\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 State",slug:"\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32-state",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 react hook useJupiter",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-react-hook-usejupiter",children:[]},{level:3,title:"\u0E17\u0E33\u0E01\u0E32\u0E23 Swap",slug:"\u0E17\u0E4D\u0E32\u0E01\u0E32\u0E23-swap",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 use Jupiter API",slug:"\u0E27\u0E34\u0E18\u0E35-use-jupiter-api",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-1",children:[]},{level:3,title:"\u0E2B\u0E32 Route Map",slug:"\u0E2B\u0E32-route-map",children:[]},{level:3,title:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E33 Serialized Transaction \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E2D\u0E32\u0E44\u0E1B Swap",slug:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E4D\u0E32-serialized-transaction-\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E2D\u0E32\u0E44\u0E1B-swap",children:[]},{level:3,title:"\u0E17\u0E33\u0E01\u0E32\u0E23 Swap Transaction",slug:"\u0E17\u0E4D\u0E32\u0E01\u0E32\u0E23-swap-transaction",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/jupiter.html",pathLocale:"/th/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Mango Group",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-mango-group",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Mango Account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-mango-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E1D\u0E32\u0E01 (deposit) USDC \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19 Mango Account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E1D\u0E32\u0E01-deposit-usdc-\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19-mango-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07 spot order",slug:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-spot-order",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 load bids",slug:"\u0E27\u0E34\u0E18\u0E35-load-bids",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22 (asks)",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22-asks",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/mango.html",pathLocale:"/th/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Pyth \u0E08\u0E32\u0E01 Client",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-pyth-\u0E08\u0E32\u0E01-client",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Pyth \u0E14\u0E49\u0E27\u0E22 Anchor",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-pyth-\u0E14\u0E49\u0E27\u0E22-anchor",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/pyth.html",pathLocale:"/th/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 @solana/web3.js \u0E43\u0E19 React Native app",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-solana-web3-js-\u0E43\u0E19-react-native-app",children:[{level:3,title:"\u0E2A\u0E23\u0E49\u0E32\u0E07 app \u0E43\u0E2B\u0E21\u0E48",slug:"\u0E2A\u0E23\u0E49\u0E32\u0E07-app-\u0E43\u0E2B\u0E21\u0E48",children:[]},{level:3,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 dependencies",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-dependencies",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update metro.config.js",slug:"update-metro-config-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 cocoapods",slug:"\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-cocoapods",children:[]},{level:3,title:"Start application",slug:"start-application",children:[]}]},{level:2,title:"Solana DApp Scaffold \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A React Native",slug:"solana-dapp-scaffold-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-react-native",children:[]},{level:2,title:"\u0E1B\u0E31\u0E0D\u0E2B\u0E32\u0E17\u0E35\u0E48\u0E40\u0E08\u0E2D\u0E1A\u0E48\u0E2D\u0E22\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E43\u0E0A\u0E49 @solana/web3.js \u0E01\u0E31\u0E1A React Native app",slug:"\u0E1B\u0E31\u0E0D\u0E2B\u0E32\u0E17\u0E35\u0E48\u0E40\u0E08\u0E2D\u0E1A\u0E48\u0E2D\u0E22\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E43\u0E0A\u0E49-solana-web3-js-\u0E01\u0E31\u0E1A-react-native-app",children:[{level:3,title:"Error: While trying to resolve module superstruct from file",slug:"error-while-trying-to-resolve-module-superstruct-from-file",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/th/integrations/react-native.html",pathLocale:"/th/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 OpenBook market",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-market",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 OpenBook order books",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-order-books",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 open orders \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",children:[]}],path:"/th/integrations/OpenBook.html",pathLocale:"/th/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 fully managed token",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-fully-managed-token",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 buy \u0E41\u0E25\u0E30 sell a token",slug:"\u0E27\u0E34\u0E18\u0E35-buy-\u0E41\u0E25\u0E30-sell-a-token",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 bootstrap liquidity",slug:"\u0E27\u0E34\u0E18\u0E35-bootstrap-liquidity",children:[]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",children:[]}],path:"/th/integrations/strata.html",pathLocale:"/th/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E32\u0E01 aggregator feed",slug:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E32\u0E01-aggregator-feed",children:[]},{level:3,title:"Create a new aggregator feed",slug:"create-a-new-aggregator-feed",children:[]},{level:3,title:"Read data from an aggregator feed in program",slug:"read-data-from-an-aggregator-feed-in-program",children:[]},{level:3,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Feed \u0E08\u0E32\u0E01 Publisher",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-feed-\u0E08\u0E32\u0E01-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"\u0E2A\u0E23\u0E49\u0E32\u0E07 oracle",slug:"\u0E2A\u0E23\u0E49\u0E32\u0E07-oracle",children:[]},{level:3,title:"Run an oracle locally",slug:"run-an-oracle-locally",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifiable Random Function(VRF)",slug:"verifiable-random-function-vrf",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19 VRF account",slug:"\u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19-vrf-account",children:[]},{level:3,title:"Creating a VRF account",slug:"creating-a-vrf-account",children:[]},{level:3,title:"\u0E02\u0E2D Randomness \u0E08\u0E32\u0E01 vrf account",slug:"\u0E02\u0E2D-randomness-\u0E08\u0E32\u0E01-vrf-account",children:[]}]},{level:2,title:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E23\u0E39\u0E49",slug:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E23\u0E39\u0E49",children:[{level:3,title:"APIs \u0E41\u0E25\u0E30 Libraries",slug:"apis-\u0E41\u0E25\u0E30-libraries",children:[]},{level:3,title:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07",slug:"\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07",children:[]},{level:3,title:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",slug:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19\u0E46",children:[]}]}],path:"/th/integrations/switchboard.html",pathLocale:"/th/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"wallet \u0E04\u0E37\u0E2D\u0E2D\u0E30\u0E44\u0E23?",slug:"wallet-\u0E04\u0E37\u0E2D\u0E2D\u0E30\u0E44\u0E23",children:[]},{level:2,title:"Social Logins \u0E1A\u0E19 Solana",slug:"social-logins-\u0E1A\u0E19-solana",children:[]},{level:2,title:"\u0E41\u0E19\u0E27\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23 Integration",slug:"\u0E41\u0E19\u0E27\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23-integration",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07 Dependencies",slug:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-dependencies",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 SDK \u0E41\u0E25\u0E30 initialize",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-sdk-\u0E41\u0E25\u0E30-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E0A\u0E49 torus instance \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14 user account",slug:"\u0E01\u0E32\u0E23\u0E0A\u0E49-torus-instance-\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14-user-account",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 Torus Solana API \u0E40\u0E1E\u0E37\u0E48\u0E2D sign message.",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-torus-solana-api-\u0E40\u0E1E\u0E37\u0E48\u0E2D-sign-message",children:[]},{level:3,title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 torus Solana API \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E48\u0E07 transaction.\u200B",slug:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49-torus-solana-api-\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E48\u0E07-transaction-\u200B",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/th/integrations/web3auth.html",pathLocale:"/th/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 system account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-system-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E33\u0E19\u0E27\u0E13 account cost",slug:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E4D\u0E32\u0E19\u0E27\u0E13-account-cost",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 accounts \u0E14\u0E49\u0E27\u0E22 seeds",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-accounts-\u0E14\u0E49\u0E27\u0E22-seeds",children:[{level:3,title:"Generate",slug:"generate",children:[]},{level:3,title:"Create",slug:"create",children:[]},{level:3,title:"Transfer",slug:"transfer",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 PDAs",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-pdas",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 PDA",slug:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07-pda",children:[]},{level:3,title:"\u0E28\u0E23\u0E49\u0E32\u0E07 PDA",slug:"\u0E28\u0E23\u0E49\u0E32\u0E07-pda",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 sign \u0E14\u0E49\u0E27\u0E22 PDA",slug:"\u0E27\u0E34\u0E18\u0E35-sign-\u0E14\u0E49\u0E27\u0E22-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 program accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-program-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14 accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 account balance",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-account-balance",children:[]}],path:"/th/references/accounts.html",pathLocale:"/th/",extraFields:[]},{title:"Sending Transactions",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35 send SOL",slug:"\u0E27\u0E34\u0E18\u0E35-send-sol",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 send SPL-Tokens",slug:"\u0E27\u0E34\u0E18\u0E35-send-spl-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E33\u0E19\u0E27\u0E13\u0E2B\u0E32 transaction cost",slug:"\u0E27\u0E34\u0E18\u0E35\u0E04\u0E4D\u0E32\u0E19\u0E27\u0E13\u0E2B\u0E32-transaction-cost",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1E\u0E34\u0E48\u0E21 memo \u0E43\u0E19 transaction",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1E\u0E34\u0E48\u0E21-memo-\u0E43\u0E19-transaction",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A transaction",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-compute-budget-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-transaction",children:[]}],path:"/th/references/basic-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"Keypairs \u0E41\u0E25\u0E30 Wallets",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Keypair \u0E43\u0E2B\u0E21\u0E48",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-keypair-\u0E43\u0E2B\u0E21\u0E48",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 restore a Keypair from a secret",slug:"\u0E27\u0E34\u0E18\u0E35-restore-a-keypair-from-a-secret",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 verify a Keypair",slug:"\u0E27\u0E34\u0E18\u0E35-verify-a-keypair",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 check if a public key has an associated private key",slug:"\u0E27\u0E34\u0E18\u0E35-check-if-a-public-key-has-an-associated-private-key",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 generate a mnemonic phrase",slug:"\u0E27\u0E34\u0E18\u0E35-generate-a-mnemonic-phrase",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E01\u0E39\u0E49 Keypair \u0E08\u0E32\u0E01 mnemonic phrase",slug:"\u0E27\u0E34\u0E18\u0E35\u0E01\u0E39\u0E49-keypair-\u0E08\u0E32\u0E01-mnemonic-phrase",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 generate a vanity address",slug:"\u0E27\u0E34\u0E18\u0E35-generate-a-vanity-address",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 sign \u0E41\u0E25\u0E30 verify messages with wallets",slug:"\u0E27\u0E34\u0E18\u0E35-sign-\u0E41\u0E25\u0E30-verify-messages-with-wallets",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A wallet",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A-wallet",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/th/references/keypairs-and-wallets.html",pathLocale:"/th/",extraFields:[]},{title:"Local Development",headers:[{level:2,title:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E43\u0E0A\u0E49 Local Validator",slug:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E43\u0E0A\u0E49-local-validator",children:[]},{level:2,title:"Connecting to Environments",slug:"connecting-to-environments",children:[]},{level:2,title:"Subscribing to Events",slug:"subscribing-to-events",children:[]},{level:2,title:"Getting Test SOL",slug:"getting-test-sol",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 Mainnet Accounts \u0E41\u0E25\u0E30 Programs",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49-mainnet-accounts-\u0E41\u0E25\u0E30-programs",children:[{level:3,title:"\u0E27\u0E34\u0E18\u0E35 load accounts \u0E08\u0E32\u0E01 mainnet",slug:"\u0E27\u0E34\u0E18\u0E35-load-accounts-\u0E08\u0E32\u0E01-mainnet",children:[]},{level:3,title:"\u0E27\u0E34\u0E18\u0E35 load programs from mainnet",slug:"\u0E27\u0E34\u0E18\u0E35-load-programs-from-mainnet",children:[]}]}],path:"/th/references/local-development.html",pathLocale:"/th/",extraFields:[]},{title:"Name Service",headers:[{level:2,title:"Name registry",slug:"name-registry",children:[]},{level:2,title:"Resolving SOL domains",slug:"resolving-sol-domains",children:[]},{level:2,title:"Reverse look up",slug:"reverse-look-up",children:[]},{level:2,title:"Subdomain look up",slug:"subdomain-look-up",children:[]},{level:2,title:"\u0E2B\u0E32\u0E17\u0E38\u0E01 domain names \u0E17\u0E35\u0E48 public key \u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07",slug:"\u0E2B\u0E32\u0E17\u0E38\u0E01-domain-names-\u0E17\u0E35\u0E48-public-key-\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07",children:[]},{level:2,title:"Resolve a Twitter handle",slug:"resolve-a-twitter-handle",children:[]},{level:2,title:"Reverse look up of a Twitter handle",slug:"reverse-look-up-of-a-twitter-handle",children:[]}],path:"/th/references/name-service.html",pathLocale:"/th/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 an NFT",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-an-nft",children:[{level:3,title:"Upload to Arweave",slug:"upload-to-arweave",children:[]},{level:3,title:"Mint the NFT",slug:"mint-the-nft",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 NFT Metadata",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-nft-metadata",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07 (owner) \u0E02\u0E2D\u0E07 NFT",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07-owner-\u0E02\u0E2D\u0E07-nft",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 NFT Mint Addresses",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-nft-mint-addresses",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01 NFTs \u0E08\u0E32\u0E01 wallet?",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01-nfts-\u0E08\u0E32\u0E01-wallet",children:[]}],path:"/th/references/nfts.html",pathLocale:"/th/",extraFields:[]},{title:"Sending Offline Transactions",headers:[{level:2,title:"Sign Transaction",slug:"sign-transaction",children:[]},{level:2,title:"Partial Sign Transaction",slug:"partial-sign-transaction",children:[]},{level:2,title:"Durable Nonce",slug:"durable-nonce",children:[{level:3,title:"Create Nonce Account",slug:"create-nonce-account",children:[]},{level:3,title:"Get Nonce Account",slug:"get-nonce-account",children:[]},{level:3,title:"Use Nonce Account",slug:"use-nonce-account",children:[]}]}],path:"/th/references/offline-transactions.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E40\u0E02\u0E35\u0E22\u0E19 Programs",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35 transfer SOL in a program",slug:"\u0E27\u0E34\u0E18\u0E35-transfer-sol-in-a-program",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 (clock) \u0E43\u0E19 program",slug:"\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32-clock-\u0E43\u0E19-program",children:[{level:3,title:"\u0E2A\u0E48\u0E07 Clock \u0E43\u0E19\u0E41\u0E1A\u0E1A account \u0E20\u0E32\u0E22\u0E43\u0E19 instruction",slug:"\u0E2A\u0E48\u0E07-clock-\u0E43\u0E19\u0E41\u0E1A\u0E1A-account-\u0E20\u0E32\u0E22\u0E43\u0E19-instruction",children:[]},{level:3,title:"\u0E43\u0E0A\u0E49 Clock \u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E43\u0E19 instruction",slug:"\u0E43\u0E0A\u0E49-clock-\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E43\u0E19-instruction",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 account size",slug:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-account-size",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E33 Cross Program Invocation",slug:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E4D\u0E32-cross-program-invocation",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 PDA",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-pda",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19 accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19 instructions \u0E2B\u0E25\u0E32\u0E22\u0E46 \u0E15\u0E31\u0E27\u0E08\u0E32\u0E01 transaction",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E48\u0E32\u0E19-instructions-\u0E2B\u0E25\u0E32\u0E22\u0E46-\u0E15\u0E31\u0E27\u0E08\u0E32\u0E01-transaction",children:[]}],path:"/th/references/programs.html",pathLocale:"/th/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Validators \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",slug:"\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-validators-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",children:[]},{level:2,title:"\u0E2A\u0E23\u0E49\u0E32\u0E07 Stake Account",slug:"\u0E2A\u0E23\u0E49\u0E32\u0E07-stake-account",children:[]},{level:2,title:"Delegate Stake",slug:"delegate-stake",children:[]},{level:2,title:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Delegator \u0E14\u0E49\u0E27\u0E22 Validators",slug:"\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-delegator-\u0E14\u0E49\u0E27\u0E22-validators",children:[]},{level:2,title:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 Stake",slug:"\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01-stake",children:[]},{level:2,title:"\u0E16\u0E2D\u0E19 Stake",slug:"\u0E16\u0E2D\u0E19-stake",children:[]}],path:"/th/references/staking.html",pathLocale:"/th/",extraFields:[]},{title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 Tokens",headers:[{level:2,title:"\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E2D\u0E30\u0E44\u0E23\u0E1A\u0E49\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30\u0E44\u0E1B\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 SPL-Tokens?",slug:"\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E2D\u0E30\u0E44\u0E23\u0E1A\u0E49\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30\u0E44\u0E1B\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19-spl-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Token \u0E43\u0E2B\u0E21\u0E48",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-token-\u0E43\u0E2B\u0E21\u0E48",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 token mint",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-token-mint",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 token account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-token-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Token Account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-token-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 balance \u0E02\u0E2D\u0E07 token account",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-balance-\u0E02\u0E2D\u0E07-token-account",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35 mint tokens",slug:"\u0E27\u0E34\u0E18\u0E35-mint-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E48\u0E07 tokens",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E48\u0E07-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E33\u0E25\u0E32\u0E22 (burn) tokens",slug:"\u0E27\u0E34\u0E18\u0E35\u0E17\u0E4D\u0E32\u0E25\u0E32\u0E22-burn-tokens",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14 token accounts",slug:"\u0E27\u0E34\u0E18\u0E35\u0E1B\u0E34\u0E14-token-accounts",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07 authority \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A token accounts \u0E2B\u0E23\u0E37\u0E2D mints",slug:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-authority-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-token-accounts-\u0E2B\u0E23\u0E37\u0E2D-mints",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34 (approve) token \u0E43\u0E2B\u0E49 delegate \u0E44\u0E14\u0E49",slug:"\u0E27\u0E34\u0E18\u0E35\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34-approve-token-\u0E43\u0E2B\u0E49-delegate-\u0E44\u0E14\u0E49",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 (revoke) token \u0E17\u0E35\u0E48 delegate \u0E44\u0E27\u0E49",slug:"\u0E27\u0E34\u0E18\u0E35\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01-revoke-token-\u0E17\u0E35\u0E48-delegate-\u0E44\u0E27\u0E49",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 wrapped SOL",slug:"\u0E27\u0E34\u0E18\u0E35\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23-wrapped-sol",children:[{level:3,title:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 Token Account",slug:"\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07-token-account",children:[]},{level:3,title:"\u0E40\u0E1E\u0E34\u0E48\u0E21 Balance",slug:"\u0E40\u0E1E\u0E34\u0E48\u0E21-balance",children:[]}]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01\u0E46 token accounts \u0E15\u0E32\u0E21 owner",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E38\u0E01\u0E46-token-accounts-\u0E15\u0E32\u0E21-owner",children:[]}],path:"/th/references/token.html",pathLocale:"/th/",extraFields:[]},{title:"Accounts (Account\u2019lar)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Account Model (Account Modeli)",slug:"account-model-account-modeli",children:[]},{level:3,title:"Rent",slug:"rent",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[{level:3,title:"Referans",slug:"referans",children:[]}]}],path:"/tr/core-concepts/accounts.html",pathLocale:"/tr/",extraFields:[]},{title:"Program Derived Addresses (PDAs) (Programdan T\xFCretilmi\u015F Adresler)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Generating PDAs (PDA\u2019lar Olu\u015Fturma)",slug:"generating-pdas-pda-lar-olusturma",children:[]},{level:3,title:"Interacting with PDAs (PDA\u2019lar ile Etkile\u015Fim)",slug:"interacting-with-pdas-pda-lar-ile-etkilesim",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[]}],path:"/tr/core-concepts/pdas.html",pathLocale:"/tr/",extraFields:[]},{title:"Programs (Programlar)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Native Program\u2019lar & Solana Program Library (SPL)",slug:"native-program-lar-solana-program-library-spl",children:[]},{level:3,title:"Writing Programs (Program Yazma)",slug:"writing-programs-program-yazma",children:[]},{level:3,title:"Deploying Programs (Programlar\u0131 \xC7al\u0131\u015Ft\u0131rma)",slug:"deploying-programs-programlar\u0131-cal\u0131st\u0131rma",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[]}],path:"/tr/core-concepts/programs.html",pathLocale:"/tr/",extraFields:[]},{title:"Transactions (\u0130\u015Flemler)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"Fees (\xDCcretler)",slug:"fees-ucretler",children:[]}]},{level:2,title:"Other Resources (Di\u011Fer Kaynaklar)",slug:"other-resources-diger-kaynaklar",children:[]}],path:"/tr/core-concepts/transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Installation",headers:[{level:2,title:"Install Web3.js (Web3.js Kurulumu)",slug:"install-web3-js-web3-js-kurulumu",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet Adapter (C\xFCzdan Adapt\xF6r\xFC)",slug:"wallet-adapter-cuzdan-adaptoru",children:[]}]},{level:2,title:"Install Rust (Rust Kurulumu)",slug:"install-rust-rust-kurulumu",children:[]},{level:2,title:"Install CLI (CLI Kurulumu)",slug:"install-cli-cli-kurulumu",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Build From Source (Kaynaktan Derleme)",slug:"build-from-source-kaynaktan-derleme",children:[]}]}],path:"/tr/getting-started/installation.html",pathLocale:"/tr/",extraFields:[]},{title:"Account Maps (Hesap Haritalar\u0131)",headers:[{level:2,title:"Deriving PDAs",slug:"deriving-pdas",children:[]},{level:2,title:"Single Map Account",slug:"single-map-account",children:[]}],path:"/tr/guides/account-maps.html",pathLocale:"/tr/",extraFields:[]},{title:"Migrating a Programs Data Accounts (Programlar\u0131n Data Account\u2019lar\u0131n\u0131 Ta\u015F\u0131ma)",headers:[{level:2,title:"How can you migrate a program's data accounts? (Programlar\u0131n veri account\u2019lar\u0131 nas\u0131l ta\u015F\u0131n\u0131r)",slug:"how-can-you-migrate-a-program-s-data-accounts-programlar\u0131n-veri-account-lar\u0131-nas\u0131l-tas\u0131n\u0131r",children:[]},{level:2,title:"Scenario (Senaryo)",slug:"scenario-senaryo",children:[]},{level:2,title:"Upgrading the Account (Account\u2019\u0131 Y\xFCkseltme)",slug:"upgrading-the-account-account-\u0131-yukseltme",children:[{level:3,title:"1. Add account conversion logic (Hesap d\xF6n\xFC\u015Ft\xFCrme mant\u0131\u011F\u0131 ekleme)",slug:"_1-add-account-conversion-logic-hesap-donusturme-mant\u0131g\u0131-ekleme",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/data-migration.html",pathLocale:"/tr/",extraFields:[]},{title:"Debugging Solana Programs (Solana Programlar\u0131nda Hata Ay\u0131klama)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Runtime Testing and Debugging in editor (Edit\xF6rde Runtime Test ve Hata Ay\u0131klama)",slug:"runtime-testing-and-debugging-in-editor-editorde-runtime-test-ve-hata-ay\u0131klama",children:[]},{level:2,title:"Local Validator Node Testing in editor (D\xFCzenleyicide Yerel Do\u011Frulay\u0131c\u0131 Node Testi)",slug:"local-validator-node-testing-in-editor-duzenleyicide-yerel-dogrulay\u0131c\u0131-node-testi",children:[]},{level:2,title:"Local Validator Node Testing from Client Apps (Client Uygulamalar\u0131nda Yerel Validator Node Testi)",slug:"local-validator-node-testing-from-client-apps-client-uygulamalar\u0131nda-yerel-validator-node-testi",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/debugging-solana-programs.html",pathLocale:"/tr/",extraFields:[]},{title:"Feature Parity Testing (\xD6zellik Parite Testi)",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Scenario (Senaryo)",slug:"scenario-senaryo",children:[]},{level:2,title:"Feature Status (\xD6zellik Durumu)",slug:"feature-status-ozellik-durumu",children:[]},{level:2,title:"Parity Testing (Parite Testi)",slug:"parity-testing-parite-testi",children:[]},{level:2,title:"Simple Demonstration (Basit G\xF6sterim)",slug:"simple-demonstration-basit-gosterim",children:[{level:3,title:"All features activated (T\xFCm \xF6zellikler aktifle\u015Ftirildi)",slug:"all-features-activated-tum-ozellikler-aktiflestirildi",children:[]},{level:3,title:"Selective features deactivated (Se\xE7ici \xF6zellikler devre d\u0131\u015F\u0131 b\u0131rak\u0131ld\u0131)",slug:"selective-features-deactivated-secici-ozellikler-devre-d\u0131s\u0131-b\u0131rak\u0131ld\u0131",children:[]}]},{level:2,title:"Full Parity Testing Programmatically (Programl\u0131 Olarak Tam Parite Testi)",slug:"full-parity-testing-programmatically-programl\u0131-olarak-tam-parite-testi",children:[]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/feature-parity-testing.html",pathLocale:"/tr/",extraFields:[]},{title:"Get Program Accounts",headers:[{level:2,title:"Facts (\xD6zet Bilgiler)",slug:"facts-ozet-bilgiler",children:[]},{level:2,title:"Deep Dive (Derinlemesine Bak\u0131\u015F)",slug:"deep-dive-derinlemesine-bak\u0131s",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/tr/guides/get-program-accounts.html",pathLocale:"/tr/",extraFields:[]},{title:"Retrying Transactions (\u0130\u015Flemleri Yeniden Denemek)",headers:[{level:2,title:"The Journey of a Transaction (Bir \u0130\u015Flemin Yolculu\u011Fu)",slug:"the-journey-of-a-transaction-bir-islemin-yolculugu",children:[{level:3,title:"How Clients Submit Transactions (Client\u2019lar \u0130\u015Flemleri Nas\u0131l G\xF6nderir)",slug:"how-clients-submit-transactions-client-lar-islemleri-nas\u0131l-gonderir",children:[]},{level:3,title:"How RPC Nodes Broadcast Transactions (RPC Node\u2019lar\u0131 \u0130\u015Flemleri Nas\u0131l Yay\u0131nlar)",slug:"how-rpc-nodes-broadcast-transactions-rpc-node-lar\u0131-islemleri-nas\u0131l-yay\u0131nlar",children:[]}]},{level:2,title:"How Transactions Get Dropped (\u0130\u015Flemler Nas\u0131l D\xFC\u015Fer)",slug:"how-transactions-get-dropped-islemler-nas\u0131l-duser",children:[{level:3,title:"Before a transaction is processed (\u0130\u015Flem i\u015Flenmeden \xF6nce)",slug:"before-a-transaction-is-processed-islem-islenmeden-once",children:[]},{level:3,title:"After a transaction is processed and before it is finalized (\u0130\u015Flem i\u015Flendikten sonra ama sonu\xE7lanmadan \xF6nce)",slug:"after-a-transaction-is-processed-and-before-it-is-finalized-islem-islendikten-sonra-ama-sonuclanmadan-once",children:[]}]},{level:2,title:"Handling Dropped Transactions (D\xFC\u015Fen \u0130\u015Flemleri Y\xF6netme)",slug:"handling-dropped-transactions-dusen-islemleri-yonetme",children:[{level:3,title:"An In-Depth Look at sendTransaction (sendTransaction\u2019a Derinden Bak\u0131\u015F)",slug:"an-in-depth-look-at-sendtransaction-sendtransaction-a-derinden-bak\u0131s",children:[]}]},{level:2,title:"Customizing Rebroadcast Logic (Rebroadcast Logic \xD6zelle\u015Ftirme)",slug:"customizing-rebroadcast-logic-rebroadcast-logic-ozellestirme",children:[{level:3,title:"The Cost of Skipping Preflight (\xD6n Kontrol\xFC Atlaman\u0131n Maliyeti)",slug:"the-cost-of-skipping-preflight-on-kontrolu-atlaman\u0131n-maliyeti",children:[]},{level:3,title:"When to Re-Sign Transactions (\u0130\u015Flemler Ne Zaman Yeniden \u0130mzalanmal\u0131)",slug:"when-to-re-sign-transactions-islemler-ne-zaman-yeniden-imzalanmal\u0131",children:[]}]},{level:2,title:"Acknowledgements (Te\u015Fekk\xFCrler)",slug:"acknowledgements-tesekkurler",children:[]}],path:"/tr/guides/retrying-transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Serializing Data (Serile\u015Ftirme)",headers:[{level:2,title:"Setting up for Borsh Serialization (Borsh Serialization i\xE7in Kurulum)",slug:"setting-up-for-borsh-serialization-borsh-serialization-icin-kurulum",children:[]},{level:2,title:"How to serialize instruction data on the client (Client\u2019taki y\xF6nerge verisi nas\u0131l serile\u015Ftirilir)",slug:"how-to-serialize-instruction-data-on-the-client-client-taki-yonerge-verisi-nas\u0131l-serilestirilir",children:[]},{level:2,title:"How to deserialize instruction data on the program (Instruction data programlarda nas\u0131l deserialize edilir)",slug:"how-to-deserialize-instruction-data-on-the-program-instruction-data-programlarda-nas\u0131l-deserialize-edilir",children:[]},{level:2,title:"How to serialize account data on the program (Programdaki account data nas\u0131l serialize edilir)",slug:"how-to-serialize-account-data-on-the-program-programdaki-account-data-nas\u0131l-serialize-edilir",children:[{level:3,title:"Pack",slug:"pack",children:[]},{level:3,title:"Serialization/Deserialization",slug:"serialization-deserialization",children:[]},{level:3,title:"Usage (Kullan\u0131m)",slug:"usage-kullan\u0131m",children:[]}]},{level:2,title:"How to deserialize account data on the client (Client\u2019ta account data nas\u0131l deserialize edilir)",slug:"how-to-deserialize-account-data-on-the-client-client-ta-account-data-nas\u0131l-deserialize-edilir",children:[]},{level:2,title:"Common Solana TS/JS Mappings (Yayg\u0131n Solana TS/JS E\u015Flemeleri)",slug:"common-solana-ts-js-mappings-yayg\u0131n-solana-ts-js-eslemeleri",children:[]},{level:2,title:"Advanced Constructs (Geli\u015Fmi\u015F Yap\u0131lar)",slug:"advanced-constructs-gelismis-yap\u0131lar",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/tr/guides/serialization.html",pathLocale:"/tr/",extraFields:[]},{title:"Accounts (Account\u2019lar)",headers:[{level:2,title:"How to create a system account (System account olu\u015Fturma)",slug:"how-to-create-a-system-account-system-account-olusturma",children:[]},{level:2,title:"How to calculate account cost (Account maliyeti hesaplama)",slug:"how-to-calculate-account-cost-account-maliyeti-hesaplama",children:[]},{level:2,title:"How to calculate account cost (Account\u2019lar seed\u2019leri olu\u015Fturma)",slug:"how-to-calculate-account-cost-account-lar-seed-leri-olusturma",children:[{level:3,title:"Generate (\xDCretme)",slug:"generate-uretme",children:[]},{level:3,title:"Create (Olu\u015Fturma)",slug:"create-olusturma",children:[]},{level:3,title:"Transfer (Transfer)",slug:"transfer-transfer",children:[]}]},{level:2,title:"How to create PDAs (PDA\u2019leri olu\u015Fturma)",slug:"how-to-create-pdas-pda-leri-olusturma",children:[{level:3,title:"Generate a PDA (PDA \xFCretme)",slug:"generate-a-pda-pda-uretme",children:[]},{level:3,title:"Create a PDA (PDA olu\u015Fturma)",slug:"create-a-pda-pda-olusturma",children:[]}]},{level:2,title:"How to sign with a PDA (PDA ile imzalama)",slug:"how-to-sign-with-a-pda-pda-ile-imzalama",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Client",slug:"client-1",children:[]}]},{level:2,title:"How to get program accounts (Program hesaplar\u0131n\u0131 getirme)",slug:"how-to-get-program-accounts-program-hesaplar\u0131n\u0131-getirme",children:[]},{level:2,title:"How to close accounts (Account\u2019lar\u0131 kapatma)",slug:"how-to-close-accounts-account-lar\u0131-kapatma",children:[]},{level:2,title:"How to get account balance (Account bakiyesi getirme)",slug:"how-to-get-account-balance-account-bakiyesi-getirme",children:[]}],path:"/tr/references/accounts.html",pathLocale:"/tr/",extraFields:[]},{title:"Sending Transactions(\u0130\u015Flem G\xF6nderimi)",headers:[{level:2,title:"How to send SOL (SOL nas\u0131l g\xF6nderilir)",slug:"how-to-send-sol-sol-nas\u0131l-gonderilir",children:[]},{level:2,title:"How to send SPL-Tokens (SPL-Token\u2019lar nas\u0131l g\xF6nderilir)",slug:"how-to-send-spl-tokens-spl-token-lar-nas\u0131l-gonderilir",children:[]},{level:2,title:"How to calculate transaction cost (\u0130\u015Flem maliyeti nas\u0131l hesaplan\u0131r)",slug:"how-to-calculate-transaction-cost-islem-maliyeti-nas\u0131l-hesaplan\u0131r",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"How to add a memo to a transaction (Bir i\u015Fleme mesaj nas\u0131l eklenir)",slug:"how-to-add-a-memo-to-a-transaction-bir-isleme-mesaj-nas\u0131l-eklenir",children:[]},{level:2,title:"How to change compute budget, fee, & priority for a transaction (Bir i\u015Flem i\xE7in i\u015Flem b\xFCt\xE7esi, bedeli ve \xF6nceli\u011Fi nas\u0131l de\u011Fi\u015Ftirilir)",slug:"how-to-change-compute-budget-fee-priority-for-a-transaction-bir-islem-icin-islem-butcesi-bedeli-ve-onceligi-nas\u0131l-degistirilir",children:[]}],path:"/tr/references/basic-transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Keypairs and Wallets",headers:[{level:2,title:"How to generate a new Keypair (Yeni Keypair nas\u0131l olu\u015Fturulur)",slug:"how-to-generate-a-new-keypair-yeni-keypair-nas\u0131l-olusturulur",children:[]},{level:2,title:"How to verify a Keypair (Keypair nas\u0131l do\u011Frulan\u0131r)",slug:"how-to-verify-a-keypair-keypair-nas\u0131l-dogrulan\u0131r",children:[]},{level:2,title:"How to check if a public key has an associated private key (Bir public key\u2019in ili\u015Fkili private key\u2019e sahip olup olmad\u0131\u011F\u0131 nas\u0131l kontrol edilir)",slug:"how-to-check-if-a-public-key-has-an-associated-private-key-bir-public-key-in-iliskili-private-key-e-sahip-olup-olmad\u0131g\u0131-nas\u0131l-kontrol-edilir",children:[]},{level:2,title:"How to generate a mnemonic phrase (Hat\u0131rlat\u0131c\u0131 bir ifade nas\u0131l olu\u015Fturulur)",slug:"how-to-generate-a-mnemonic-phrase-hat\u0131rlat\u0131c\u0131-bir-ifade-nas\u0131l-olusturulur",children:[]},{level:2,title:"How to restore a Keypair from a mnemonic phrase (An\u0131msat\u0131c\u0131 bir c\xFCmleden Keypair nas\u0131l y\xFCklenir)",slug:"how-to-restore-a-keypair-from-a-mnemonic-phrase-an\u0131msat\u0131c\u0131-bir-cumleden-keypair-nas\u0131l-yuklenir",children:[]},{level:2,title:"How to generate a vanity address (\xD6zel bir adres nas\u0131l olu\u015Fturulur)",slug:"how-to-generate-a-vanity-address-ozel-bir-adres-nas\u0131l-olusturulur",children:[]},{level:2,title:"How to sign and verify messages with wallets (C\xFCzdanlarla mesajlar nas\u0131l imzalan\u0131r ve do\u011Frulan\u0131r)",slug:"how-to-sign-and-verify-messages-with-wallets-cuzdanlarla-mesajlar-nas\u0131l-imzalan\u0131r-ve-dogrulan\u0131r",children:[]},{level:2,title:"How to connect to a wallet (C\xFCzdana nas\u0131l ba\u011Flan\u0131l\u0131r)",slug:"how-to-connect-to-a-wallet-cuzdana-nas\u0131l-baglan\u0131l\u0131r",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/tr/references/keypairs-and-wallets.html",pathLocale:"/tr/",extraFields:[]},{title:"Local Development (Yerel Geli\u015Ftirme)",headers:[{level:2,title:"Starting a local validator (Yerel validator ba\u015Flatma)",slug:"starting-a-local-validator-yerel-validator-baslatma",children:[]},{level:2,title:"Connecting to Environments (Ortamlara Ba\u011Flanma)",slug:"connecting-to-environments-ortamlara-baglanma",children:[]},{level:2,title:"Subscribing to Events (Event\u2019lere Abone Olma)",slug:"subscribing-to-events-event-lere-abone-olma",children:[]},{level:2,title:"Getting Test SOL (Test SOL Edinme)",slug:"getting-test-sol-test-sol-edinme",children:[]},{level:2,title:"Using Mainnet Accounts and Programs (Mainnet Account ve Programlar\u0131n\u0131 Kullanma)",slug:"using-mainnet-accounts-and-programs-mainnet-account-ve-programlar\u0131n\u0131-kullanma",children:[{level:3,title:"How to load accounts from mainnet (Account\u2019lar mainnet\u2019ten nas\u0131l y\xFCklenir)",slug:"how-to-load-accounts-from-mainnet-account-lar-mainnet-ten-nas\u0131l-yuklenir",children:[]},{level:3,title:"How to load programs from mainnet (Programlar mainnet\u2019ten nas\u0131l y\xFCklenir)",slug:"how-to-load-programs-from-mainnet-programlar-mainnet-ten-nas\u0131l-yuklenir",children:[]}]}],path:"/tr/references/local-development.html",pathLocale:"/tr/",extraFields:[]},{title:"Name Service (Name Servisi)",headers:[{level:2,title:"Name registry (Name kayd\u0131)",slug:"name-registry-name-kayd\u0131",children:[]},{level:2,title:"Resolving SOL domains (SOL alan adlar\u0131n\u0131 \xE7\xF6zme)",slug:"resolving-sol-domains-sol-alan-adlar\u0131n\u0131-cozme",children:[]},{level:2,title:"Reverse lookup (Geriye do\u011Fru arama)",slug:"reverse-lookup-geriye-dogru-arama",children:[]},{level:2,title:"Subdomain lookup (Subdomain arama)",slug:"subdomain-lookup-subdomain-arama",children:[]},{level:2,title:"Find all the domain names owned by a public key (Bir public key\u2019in sahip oldu\u011Fu t\xFCm isimleri bulma)",slug:"find-all-the-domain-names-owned-by-a-public-key-bir-public-key-in-sahip-oldugu-tum-isimleri-bulma",children:[]},{level:2,title:"Resolve a Twitter handle (Twitter handle\u2019\u0131n\u0131 \xE7\xF6zme)",slug:"resolve-a-twitter-handle-twitter-handle-\u0131n\u0131-cozme",children:[]},{level:2,title:"Reverse lookup of a Twitter handle (Twitter handle\u2019\u0131n\u0131 geri aratma)",slug:"reverse-lookup-of-a-twitter-handle-twitter-handle-\u0131n\u0131-geri-aratma",children:[]}],path:"/tr/references/name-service.html",pathLocale:"/tr/",extraFields:[]},{title:"Non Fungible Tokens (NFTs)",headers:[{level:2,title:"How to create an NFT (NFT olu\u015Fturma)",slug:"how-to-create-an-nft-nft-olusturma",children:[{level:3,title:"Upload to Arweave (Arwave\u2019e y\xFCkleme)",slug:"upload-to-arweave-arwave-e-yukleme",children:[]},{level:3,title:"Mint the NFT (NFT Mint)",slug:"mint-the-nft-nft-mint",children:[]}]},{level:2,title:"How to get NFT Metadata (NFT Metadata\u2019y\u0131 getirme)",slug:"how-to-get-nft-metadata-nft-metadata-y\u0131-getirme",children:[]},{level:2,title:"How to get the owner of an NFT (Bir NFT\u2019nin sahibini getirme)",slug:"how-to-get-the-owner-of-an-nft-bir-nft-nin-sahibini-getirme",children:[]},{level:2,title:"How to get NFT Mint Addresses (NFT Mint Adres\u2019lerini getirme)",slug:"how-to-get-nft-mint-addresses-nft-mint-adres-lerini-getirme",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"How to get all NFTs from a wallet? (Bir c\xFCzdandan t\xFCm NFT\u2019leri alma)",slug:"how-to-get-all-nfts-from-a-wallet-bir-cuzdandan-tum-nft-leri-alma",children:[]}],path:"/tr/references/nfts.html",pathLocale:"/tr/",extraFields:[]},{title:"Offline Transaction (\xC7evrimd\u0131\u015F\u0131 i\u015Flem)",headers:[{level:2,title:"Sign Transaction (\u0130\u015Flem \u0130mzalama)",slug:"sign-transaction-islem-imzalama",children:[]},{level:2,title:"Partial Sign Transaction (K\u0131smi \u0130mzalama)",slug:"partial-sign-transaction-k\u0131smi-imzalama",children:[]},{level:2,title:"Durable Nonce(Uzun S\xFCreli Nonce)",slug:"durable-nonce-uzun-sureli-nonce",children:[{level:3,title:"Create Nonce Account (Nonce Account Olu\u015Fturma)",slug:"create-nonce-account-nonce-account-olusturma",children:[]},{level:3,title:"Get Nonce Account (Nonce Account Getirme)",slug:"get-nonce-account-nonce-account-getirme",children:[]},{level:3,title:"Use Nonce Account (Nonce Account Kullanma)",slug:"use-nonce-account-nonce-account-kullanma",children:[]}]}],path:"/tr/references/offline-transactions.html",pathLocale:"/tr/",extraFields:[]},{title:"Writing Programs (Programlar\u0131 Yazma)",headers:[{level:2,title:"How to transfer SOL in a program (Programda SOL aktarma)",slug:"how-to-transfer-sol-in-a-program-programda-sol-aktarma",children:[]},{level:2,title:"How to get clock in a program (Programlarda saat)",slug:"how-to-get-clock-in-a-program-programlarda-saat",children:[{level:3,title:"Passing Clock as an account inside an instruction (Saati bir intstruction i\xE7inde bir hesap olarak ge\xE7irme)",slug:"passing-clock-as-an-account-inside-an-instruction-saati-bir-intstruction-icinde-bir-hesap-olarak-gecirme",children:[]},{level:3,title:"Accessing Clock directly inside an instruction (Saate do\u011Frudan bir instruction i\xE7inden eri\u015Fme)",slug:"accessing-clock-directly-inside-an-instruction-saate-dogrudan-bir-instruction-icinden-erisme",children:[]}]},{level:2,title:"How to change account size (Account boyutu de\u011Fi\u015Ftirme)",slug:"how-to-change-account-size-account-boyutu-degistirme",children:[]},{level:2,title:"How to do Cross Program Invocation (\xC7apraz Program \xC7a\u011F\u0131rma)",slug:"how-to-do-cross-program-invocation-capraz-program-cag\u0131rma",children:[]},{level:2,title:"How to create a PDA (PDA olu\u015Fturma)",slug:"how-to-create-a-pda-pda-olusturma",children:[]},{level:2,title:"How to read accounts (Account\u2019lar\u0131 okuma)",slug:"how-to-read-accounts-account-lar\u0131-okuma",children:[]},{level:2,title:"How to verify accounts (Account\u2019lar\u0131 do\u011Frulama)",slug:"how-to-verify-accounts-account-lar\u0131-dogrulama",children:[]},{level:2,title:"How to read multiple instructions from a transaction (\u0130\u015Flemdeki \xE7oklu talimatlar\u0131 okuma)",slug:"how-to-read-multiple-instructions-from-a-transaction-islemdeki-coklu-talimatlar\u0131-okuma",children:[]}],path:"/tr/references/programs.html",pathLocale:"/tr/",extraFields:[]},{title:"Staking (Stake Etme)",headers:[{level:2,title:"Get Current Validators (Ge\xE7erli Validator\u2019lar\u0131 Getirme)",slug:"get-current-validators-gecerli-validator-lar\u0131-getirme",children:[]},{level:2,title:"Create Stake Account (Stake hesab\u0131 olu\u015Fturma)",slug:"create-stake-account-stake-hesab\u0131-olusturma",children:[]},{level:2,title:"Delegate Stake (Delegate Stake)",slug:"delegate-stake-delegate-stake",children:[]},{level:2,title:"Get Delegator by Validators (Validator account\u2019a stake eden account\u2019lar\u0131 getirme)",slug:"get-delegator-by-validators-validator-account-a-stake-eden-account-lar\u0131-getirme",children:[]},{level:2,title:"Deactivate Stake (Stake\u2019i Devre D\u0131\u015F\u0131 B\u0131rakma)",slug:"deactivate-stake-stake-i-devre-d\u0131s\u0131-b\u0131rakma",children:[]},{level:2,title:"Withdraw Stake (Stake\u2019i \xC7ekme)",slug:"withdraw-stake-stake-i-cekme",children:[]}],path:"/tr/references/staking.html",pathLocale:"/tr/",extraFields:[]},{title:"Interacting with Tokens (Token\u2019lar ile Etkile\u015Fim)",headers:[{level:2,title:"What do I need to get started with SPL-Tokens? (SPL Token\u2019lar\u0131 kullanmaya ba\u015Flamak i\xE7in neye ihtiyac\u0131m\u0131z var?)",slug:"what-do-i-need-to-get-started-with-spl-tokens-spl-token-lar\u0131-kullanmaya-baslamak-icin-neye-ihtiyac\u0131m\u0131z-var",children:[]},{level:2,title:"How to create a new Token (Yeni bir Token olu\u015Fturma)",slug:"how-to-create-a-new-token-yeni-bir-token-olusturma",children:[]},{level:2,title:"How to get a token mint (Token Mint etme)",slug:"how-to-get-a-token-mint-token-mint-etme",children:[]},{level:2,title:"How to create a token account (Token account olu\u015Fturma)",slug:"how-to-create-a-token-account-token-account-olusturma",children:[]},{level:2,title:"How to get a Token Account (Token account\u2019u getirme)",slug:"how-to-get-a-token-account-token-account-u-getirme",children:[]},{level:2,title:"How to get a token account's balance (Token account bakiyesi getirme)",slug:"how-to-get-a-token-account-s-balance-token-account-bakiyesi-getirme",children:[]},{level:2,title:"How to mint tokens (Token mint\u2019leme)",slug:"how-to-mint-tokens-token-mint-leme",children:[]},{level:2,title:"How to transfer tokens (Token transfer etme)",slug:"how-to-transfer-tokens-token-transfer-etme",children:[]},{level:2,title:"How to burn tokens (Token yakma(burn))",slug:"how-to-burn-tokens-token-yakma-burn",children:[]},{level:2,title:"How to close token accounts (Token account\u2019lar\u0131n\u0131 kapatma)",slug:"how-to-close-token-accounts-token-account-lar\u0131n\u0131-kapatma",children:[]},{level:2,title:"How to set authority on token accounts or mints (Token hesaplar\u0131nda ve mint\u2019lerinde yetki belirleme)",slug:"how-to-set-authority-on-token-accounts-or-mints-token-hesaplar\u0131nda-ve-mint-lerinde-yetki-belirleme",children:[]},{level:2,title:"How to approve a token delegate (Token delegate onaylama)",slug:"how-to-approve-a-token-delegate-token-delegate-onaylama",children:[]},{level:2,title:"How to revoke a token delegate (Token delegate iptal etme)",slug:"how-to-revoke-a-token-delegate-token-delegate-iptal-etme",children:[]},{level:2,title:"How to manage wrapped SOL (Wrapped SOL y\xF6netimi)",slug:"how-to-manage-wrapped-sol-wrapped-sol-yonetimi",children:[{level:3,title:"Create Token Account (Token Account Olu\u015Fturma)",slug:"create-token-account-token-account-olusturma",children:[]},{level:3,title:"Add Balance (Bakiye Ekleme)",slug:"add-balance-bakiye-ekleme",children:[]}]},{level:2,title:"How to get all token accounts by owner (T\xFCm token account\u2019lar\u0131 sahibi taraf\u0131ndan nas\u0131l al\u0131n\u0131r?)",slug:"how-to-get-all-token-accounts-by-owner-tum-token-account-lar\u0131-sahibi-taraf\u0131ndan-nas\u0131l-al\u0131n\u0131r",children:[]}],path:"/tr/references/token.html",pathLocale:"/tr/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"C\u1EA5u tr\xFAc Account",slug:"cau-truc-account",children:[]},{level:3,title:"Thu\xEA",slug:"thue",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[{level:3,title:"L\u1EDDi c\u1EA3m \u01A1n",slug:"loi-cam-on",children:[]}]}],path:"/vi/core-concepts/accounts.html",pathLocale:"/vi/",extraFields:[]},{title:"Program Derived Addresses (PDAs)",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[{level:3,title:"C\xE1ch sinh PDA",slug:"cach-sinh-pda",children:[]},{level:3,title:"T\u01B0\u01A1ng t\xE1c v\u1EDBi PDAs",slug:"tuong-tac-voi-pdas",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/core-concepts/pdas.html",pathLocale:"/vi/",extraFields:[]},{title:"Programs",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"Native Programs & Solana Program Library (SPL) Programs",slug:"native-programs-solana-program-library-spl-programs",children:[]},{level:3,title:"Vi\u1EBFt m\u1ED9t Program",slug:"viet-mot-program",children:[]},{level:3,title:"Tri\u1EC3n khai Program",slug:"trien-khai-program",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/core-concepts/programs.html",pathLocale:"/vi/",extraFields:[]},{title:"Transactions",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"Ph\xED",slug:"phi",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/core-concepts/transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"C\xE0i \u0111\u1EB7t",headers:[{level:2,title:"C\xE0i \u0111\u1EB7t Web3.js",slug:"cai-\u0111at-web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL-Token",slug:"spl-token",children:[]},{level:3,title:"Wallet-Adapter",slug:"wallet-adapter",children:[]}]},{level:2,title:"C\xE0i \u0111\u1EB7t Rust",slug:"cai-\u0111at-rust",children:[]},{level:2,title:"C\xE0i \u0111\u1EB7t CLI",slug:"cai-\u0111at-cli",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"Bi\xEAn d\u1ECBch t\u1EEB m\xE3 ngu\u1ED3n",slug:"bien-dich-tu-ma-nguon",children:[]}]}],path:"/vi/getting-started/installation.html",pathLocale:"/vi/",extraFields:[]},{title:"Account Maps",headers:[{level:2,title:"T\xECm PDA",slug:"tim-pda",children:[]},{level:2,title:"Map b\u1EB1ng Account \u0111\u01A1n",slug:"map-bang-account-\u0111on",children:[]}],path:"/vi/guides/account-maps.html",pathLocale:"/vi/",extraFields:[]},{title:"N\xE2ng c\u1EA5p d\u1EEF li\u1EC7u cho Program Account",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\xF3 th\u1EC3 n\xE2ng c\u1EA5p d\u1EEF li\u1EC7u trong Program Account?",slug:"lam-the-nao-\u0111e-co-the-nang-cap-du-lieu-trong-program-account",children:[]},{level:2,title:"Ng\u1EEF c\u1EA3nh",slug:"ngu-canh",children:[]},{level:2,title:"N\xE2ng c\u1EA5p Account",slug:"nang-cap-account",children:[{level:3,title:"1. Th\xEAm lu\u1EADn l\xFD \u0111\u1EC3 chuy\u1EC3n \u0111\u1ED5i Account",slug:"_1-them-luan-ly-\u0111e-chuyen-\u0111oi-account",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/data-migration.html",pathLocale:"/vi/",extraFields:[]},{title:"So\xE1t l\u1ED7i ch\u01B0\u01A1ng tr\xECnh tr\xEAn Solana",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"M\xF4i tr\u01B0\u1EDDng ki\u1EC3m th\u1EED v\xE0 so\xE1t l\u1ED7i trong tr\xECnh bi\xEAn t\u1EADp",slug:"moi-truong-kiem-thu-va-soat-loi-trong-trinh-bien-tap",children:[]},{level:2,title:"Ki\u1EC3m th\u1EED b\u1EB1ng n\u1ED1t Local Validator trong tr\xECnh bi\xEAn t\u1EADp",slug:"kiem-thu-bang-not-local-validator-trong-trinh-bien-tap",children:[]},{level:2,title:"Ki\u1EC3m th\u1EED b\u1EB1ng n\u1ED1t Local Validator tr\xEAn \u1EE9ng d\u1EE5ng ng\u01B0\u1EDDi d\xF9ng",slug:"kiem-thu-bang-not-local-validator-tren-ung-dung-nguoi-dung",children:[]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/debugging-solana-programs.html",pathLocale:"/vi/",extraFields:[]},{title:"\u0110\u1EC1 xu\u1EA5t Ki\u1EC3m th\u1EED Parity",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"T\xECnh hu\u1ED1ng gi\u1EA3 \u0111\u1ECBnh",slug:"tinh-huong-gia-\u0111inh",children:[]},{level:2,title:"\u0110\u1EC1 xu\u1EA5t Tr\u1EA1ng th\xE1i",slug:"\u0111e-xuat-trang-thai",children:[]},{level:2,title:"Ki\u1EC3m th\u1EED Parity",slug:"kiem-thu-parity",children:[]},{level:2,title:"V\xED d\u1EE5 \u0111\u01A1n gi\u1EA3n",slug:"vi-du-\u0111on-gian",children:[{level:3,title:"Khi t\u1EA5t c\u1EA3 c\xE1c \u0111\u1EC1 xu\u1EA5t \u0111\u1EC1u k\xEDch ho\u1EA1t",slug:"khi-tat-ca-cac-\u0111e-xuat-\u0111eu-kich-hoat",children:[]},{level:3,title:"V\xF4 hi\u1EC7u m\u1ED9t v\xE0i \u0111\u1EC1 xu\u1EA5t",slug:"vo-hieu-mot-vai-\u0111e-xuat",children:[]}]},{level:2,title:"Ki\u1EC3m th\u1EED Parity \u0110\u1EA7y \u0111\u1EE7",slug:"kiem-thu-parity-\u0111ay-\u0111u",children:[]},{level:2,title:"C\xE0i \u0111\u1EB7t t\u1EF1 \u0111\u1ED9ng cho Ki\u1EC3m th\u1EED Parity \u0110\u1EA7y \u0111\u1EE7",slug:"cai-\u0111at-tu-\u0111ong-cho-kiem-thu-parity-\u0111ay-\u0111u",children:[]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/feature-parity-testing.html",pathLocale:"/vi/",extraFields:[]},{title:"\u0110\u1ECDc d\u1EEF li\u1EC7u Program Account",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"Chi ti\u1EBFt",slug:"chi-tiet",children:[{level:3,title:"filters",slug:"filters",children:[]},{level:3,title:"dataSlice",slug:"dataslice",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/get-program-accounts.html",pathLocale:"/vi/",extraFields:[]},{title:"Th\u1EED l\u1EA1i Transaction",headers:[{level:2,title:"C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt",slug:"co-the-ban-chua-biet",children:[]},{level:2,title:"H\xE0nh tr\xECnh c\u1EE7a m\u1ED9t Transaction",slug:"hanh-trinh-cua-mot-transaction",children:[{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ng\u01B0\u1EDDi d\xF9ng g\u1EEDi Transactions",slug:"lam-the-nao-\u0111e-nguoi-dung-gui-transactions",children:[]},{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\xE1c n\u1ED1t RPC lan truy\u1EC1n Transaction",slug:"lam-the-nao-\u0111e-cac-not-rpc-lan-truyen-transaction",children:[]}]},{level:2,title:"Khi n\xE0o c\xE1c Transaction b\u1ECB hu\u1EF7",slug:"khi-nao-cac-transaction-bi-huy",children:[{level:3,title:"Tr\u01B0\u1EDBc khi Transaction \u0111\u01B0\u1EE3c x\u1EED l\xFD",slug:"truoc-khi-transaction-\u0111uoc-xu-ly",children:[]},{level:3,title:"Sau khi Transaction \u0111\u01B0\u1EE3c x\u1EED l\xFD v\xE0 tr\u01B0\u1EDBc khi \u0111\u01B0\u1EE3c ghi v\xE0o block",slug:"sau-khi-transaction-\u0111uoc-xu-ly-va-truoc-khi-\u0111uoc-ghi-vao-block",children:[]}]},{level:2,title:"X\u1EED tr\xED v\u1EDBi Transaction b\u1ECB hu\u1EF7",slug:"xu-tri-voi-transaction-bi-huy",children:[{level:3,title:"Nghi\xEAn c\u1EE9u sendTransaction",slug:"nghien-cuu-sendtransaction",children:[]}]},{level:2,title:"Tu\u1EF3 ch\u1EC9nh thu\u1EADt to\xE1n lan truy\u1EC1n",slug:"tuy-chinh-thuat-toan-lan-truyen",children:[{level:3,title:"C\xE2n nh\u1EAFc khi b\u1ECF qua Preflight",slug:"can-nhac-khi-bo-qua-preflight",children:[]},{level:3,title:"Khi n\xE0o n\xEAn t\xE1i k\xFD transaction",slug:"khi-nao-nen-tai-ky-transaction",children:[]}]},{level:2,title:"L\u1EDDi c\u1EA3m \u01A1n",slug:"loi-cam-on",children:[]}],path:"/vi/guides/retrying-transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"Tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u",headers:[{level:2,title:"C\xE0i \u0111\u1EB7t Tu\u1EA7n t\u1EF1 ho\xE1 Borsh",slug:"cai-\u0111at-tuan-tu-hoa-borsh",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u c\u1EE7a c\xE1c ch\u1EC9 th\u1ECB t\u1EEB ph\xEDa ng\u01B0\u1EDDi d\xF9ng",slug:"lam-the-nao-\u0111e-tuan-tu-hoa-du-lieu-cua-cac-chi-thi-tu-phia-nguoi-dung",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 phi tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u c\u1EE7a c\xE1c ch\u1EC9 th\u1ECB tr\xEAn Program",slug:"lam-the-nao-\u0111e-phi-tuan-tu-hoa-du-lieu-cua-cac-chi-thi-tren-program",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u Account tr\xEAn Program",slug:"lam-the-nao-\u0111e-tuan-tu-hoa-du-lieu-account-tren-program",children:[{level:3,title:"Pack (\u0110\xF3ng g\xF3i)",slug:"pack-\u0111ong-goi",children:[]},{level:3,title:"Tu\u1EA7n t\u1EF1 ho\xE1 v\xE0 Phi tu\u1EA7n t\u1EF1 ho\xE1",slug:"tuan-tu-hoa-va-phi-tuan-tu-hoa",children:[]},{level:3,title:"C\xE1ch d\xF9ng",slug:"cach-dung",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 tu\u1EA7n ho\xE1 d\u1EEF li\u1EC7u Account \u1EDF ph\xEDa ng\u01B0\u1EDDi d\xF9ng",slug:"lam-the-nao-\u0111e-tuan-hoa-du-lieu-account-o-phia-nguoi-dung",children:[]},{level:2,title:"Mapping c\u01A1 b\u1EA3n b\u1EB1ng TS/JS cho Solana",slug:"mapping-co-ban-bang-ts-js-cho-solana",children:[]},{level:2,title:"Ki\u1EC3u d\u1EEF li\u1EC7u n\xE2ng cao",slug:"kieu-du-lieu-nang-cao",children:[{level:3,title:"COption",slug:"coption",children:[]}]},{level:2,title:"C\xE1c ngu\u1ED3n t\xE0i li\u1EC7u kh\xE1c",slug:"cac-nguon-tai-lieu-khac",children:[]}],path:"/vi/guides/serialization.html",pathLocale:"/vi/",extraFields:[]},{title:"Getting Started",headers:[{level:2,title:"Composability is Key",slug:"composability-is-key",children:[]},{level:2,title:"Contributing",slug:"contributing",children:[]}],path:"/vi/integrations/",pathLocale:"/vi/",extraFields:[]},{title:"Jupiter",headers:[{level:3,title:"Installation",slug:"installation",children:[]},{level:3,title:"Fetching Token list from Jupiter",slug:"fetching-token-list-from-jupiter",children:[]},{level:3,title:"Loading the Jupiter instance",slug:"loading-the-jupiter-instance",children:[]},{level:3,title:"Getting the RouteMap",slug:"getting-the-routemap",children:[]},{level:3,title:"Getting the routes for given Input and Output token",slug:"getting-the-routes-for-given-input-and-output-token",children:[]},{level:3,title:"Execute the Token Swap",slug:"execute-the-token-swap",children:[]},{level:2,title:"How to use Jupiter in a React Application",slug:"how-to-use-jupiter-in-a-react-application",children:[{level:3,title:"Installation",slug:"installation-1",children:[]},{level:3,title:"Adding the Provider",slug:"adding-the-provider",children:[]},{level:3,title:"Fetching the List of Tokens",slug:"fetching-the-list-of-tokens",children:[]},{level:3,title:"Setting up the State",slug:"setting-up-the-state",children:[]},{level:3,title:"Using the useJupiter react hook",slug:"using-the-usejupiter-react-hook",children:[]},{level:3,title:"Performing the Swap",slug:"performing-the-swap",children:[]}]},{level:2,title:"How to use Jupiter API",slug:"how-to-use-jupiter-api",children:[{level:3,title:"Installation",slug:"installation-2",children:[]},{level:3,title:"Getting the Route Map",slug:"getting-the-route-map",children:[]},{level:3,title:"Getting the Serialized Transaction to perform Swap",slug:"getting-the-serialized-transaction-to-perform-swap",children:[]},{level:3,title:"Executing the Swap Transaction",slug:"executing-the-swap-transaction",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/jupiter.html",pathLocale:"/vi/",extraFields:[]},{title:"Mango Markets",headers:[{level:2,title:"How to get a Mango Group",slug:"how-to-get-a-mango-group",children:[]},{level:2,title:"How to create a Mango Account",slug:"how-to-create-a-mango-account",children:[]},{level:2,title:"How to deposit USDC into a Mango Account",slug:"how-to-deposit-usdc-into-a-mango-account",children:[]},{level:2,title:"How to place a spot order",slug:"how-to-place-a-spot-order",children:[]},{level:2,title:"How to load bids",slug:"how-to-load-bids",children:[]},{level:2,title:"How to load asks",slug:"how-to-load-asks",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/mango.html",pathLocale:"/vi/",extraFields:[]},{title:"Pyth",headers:[{level:2,title:"How to use Pyth in Client",slug:"how-to-use-pyth-in-client",children:[]},{level:2,title:"How to use Pyth in Anchor",slug:"how-to-use-pyth-in-anchor",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/pyth.html",pathLocale:"/vi/",extraFields:[]},{title:"React Native",headers:[{level:2,title:"How to use @solana/web3.js in a React Native app",slug:"how-to-use-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Create a new app",slug:"create-a-new-app",children:[]},{level:3,title:"Install dependencies",slug:"install-dependencies",children:[]},{level:3,title:"Update index.js",slug:"update-index-js",children:[]},{level:3,title:"Update metro.config.js",slug:"update-metro-config-js",children:[]},{level:3,title:"Update App.tsx",slug:"update-app-tsx",children:[]},{level:3,title:"Install cocoapods",slug:"install-cocoapods",children:[]},{level:3,title:"Start application",slug:"start-application",children:[]}]},{level:2,title:"Solana DApp Scaffold for React Native",slug:"solana-dapp-scaffold-for-react-native",children:[]},{level:2,title:"Common issues when using @solana/web3.js in a React Native app",slug:"common-issues-when-using-solana-web3-js-in-a-react-native-app",children:[{level:3,title:"Error: While trying to resolve module superstruct from file",slug:"error-while-trying-to-resolve-module-superstruct-from-file",children:[]},{level:3,title:"Error: URL.protocol is not implemented",slug:"error-url-protocol-is-not-implemented",children:[]},{level:3,title:"Error: crypto.getRandomValues() not supported",slug:"error-crypto-getrandomvalues-not-supported",children:[]}]}],path:"/vi/integrations/react-native.html",pathLocale:"/vi/",extraFields:[]},{title:"OpenBook",headers:[{level:2,title:"How to get a OpenBook market",slug:"how-to-get-a-OpenBook-market",children:[]},{level:2,title:"How to get OpenBook order books",slug:"how-to-get-OpenBook-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],path:"/vi/integrations/OpenBook.html",pathLocale:"/vi/",extraFields:[]},{title:"Strata",headers:[{level:2,title:"How to create a fully managed token",slug:"how-to-create-a-fully-managed-token",children:[]},{level:2,title:"How to buy and sell a token",slug:"how-to-buy-and-sell-a-token",children:[]},{level:2,title:"How to bootstrap liquidity",slug:"how-to-bootstrap-liquidity",children:[]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/vi/integrations/strata.html",pathLocale:"/vi/",extraFields:[]},{title:"Switchboard",headers:[{level:2,title:"Data Feeds",slug:"data-feeds",children:[{level:3,title:"Read data from an aggregator feed",slug:"read-data-from-an-aggregator-feed",children:[]},{level:3,title:"Create a new aggregator feed",slug:"create-a-new-aggregator-feed",children:[]},{level:3,title:"Read data from an aggregator feed in program",slug:"read-data-from-an-aggregator-feed-in-program",children:[]},{level:3,title:"How to Create a Feed from the Publisher",slug:"how-to-create-a-feed-from-the-publisher",children:[]}]},{level:2,title:"Oracles",slug:"oracles",children:[{level:3,title:"Create an oracle",slug:"create-an-oracle",children:[]},{level:3,title:"Run an oracle locally",slug:"run-an-oracle-locally",children:[]},{level:3,title:"Oracle Config",slug:"oracle-config",children:[]}]},{level:2,title:"Verifiable Random Function(VRF)",slug:"verifiable-random-function-vrf",children:[{level:3,title:"Reading a VRF account",slug:"reading-a-vrf-account",children:[]},{level:3,title:"Creating a VRF account",slug:"creating-a-vrf-account",children:[]},{level:3,title:"Request Randomness from vrf account",slug:"request-randomness-from-vrf-account",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[{level:3,title:"APIs and Libraries",slug:"apis-and-libraries",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"More Information",slug:"more-information",children:[]}]}],path:"/vi/integrations/switchboard.html",pathLocale:"/vi/",extraFields:[]},{title:"web3Auth (Torus Wallet)",headers:[{level:2,title:"What is a wallet?",slug:"what-is-a-wallet",children:[]},{level:2,title:"Social Logins on Solana",slug:"social-logins-on-solana",children:[]},{level:2,title:"Integration Guide",slug:"integration-guide",children:[{level:3,title:"Installing Dependencies",slug:"installing-dependencies",children:[]},{level:3,title:"Import the SDK and initialize",slug:"import-the-sdk-and-initialize",children:[]},{level:3,title:"Trigger user login\u200B",slug:"trigger-user-login\u200B",children:[]},{level:3,title:"Using torus instance to fetch user account detail\u200B",slug:"using-torus-instance-to-fetch-user-account-detail\u200B",children:[]},{level:3,title:"Using Torus Solana API to sign a message.",slug:"using-torus-solana-api-to-sign-a-message",children:[]},{level:3,title:"Using torus Solana API to send a transaction.\u200B",slug:"using-torus-solana-api-to-send-a-transaction-\u200B",children:[]},{level:3,title:"Top-ups\u200B",slug:"top-ups\u200B",children:[]},{level:3,title:"Logout",slug:"logout",children:[]}]},{level:2,title:"Resources",slug:"resources",children:[]}],path:"/vi/integrations/web3auth.html",pathLocale:"/vi/",extraFields:[]},{title:"Accounts",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t System Account",slug:"lam-the-nao-\u0111e-tao-mot-system-account",children:[]},{level:2,title:"T\xEDnh chi ph\xED cho m\u1ED9t account",slug:"tinh-chi-phi-cho-mot-account",children:[]},{level:2,title:"L\xE0m th\u1EBF \xE0o \u0111\u1EC3 t\u1EA1o account v\u1EDBi seeds",slug:"lam-the-ao-\u0111e-tao-account-voi-seeds",children:[{level:3,title:"T\xECm Account",slug:"tim-account",children:[]},{level:3,title:"T\u1EA1o Account",slug:"tao-account",children:[]},{level:3,title:"Chuy\u1EC3n lamports",slug:"chuyen-lamports",children:[]}]},{level:2,title:"C\xE1ch t\u1EA1o PDAs",slug:"cach-tao-pdas",children:[{level:3,title:"Sinh ra m\u1ED9t PDA",slug:"sinh-ra-mot-pda",children:[]},{level:3,title:"T\u1EA1o m\u1ED9t PDA",slug:"tao-mot-pda",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 k\xFD b\u1EB1ng PDA",slug:"lam-the-nao-\u0111e-ky-bang-pda",children:[{level:3,title:"Program",slug:"program-1",children:[]},{level:3,title:"Ng\u01B0\u1EDDi d\xF9ng",slug:"nguoi-dung-1",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n c\xE1c account c\u1EE7a m\u1ED9t program",slug:"lam-the-nao-\u0111e-truy-van-cac-account-cua-mot-program",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\xF3ng account",slug:"lam-the-nao-\u0111e-\u0111ong-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n s\u1ED1 d\u01B0 c\u1EE7a m\u1ED9t account",slug:"lam-the-nao-\u0111e-truy-van-so-du-cua-mot-account",children:[]}],path:"/vi/references/accounts.html",pathLocale:"/vi/",extraFields:[]},{title:"G\u1EEDi Transaction",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 g\u1EEDi SOL",slug:"lam-the-nao-\u0111e-gui-sol",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 g\u1EEDi SPL-Tokens",slug:"lam-the-nao-\u0111e-gui-spl-tokens",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\xEDnh chi ph\xED g\u1EEDi transaction",slug:"lam-the-nao-\u0111e-tinh-chi-phi-gui-transaction",children:[{level:3,title:"getEstimatedFee",slug:"getestimatedfee",children:[]},{level:3,title:"getFeeForMessage",slug:"getfeeformessage",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 th\xEAm ghi ch\xFA v\xE0 m\u1ED9t transaction",slug:"lam-the-nao-\u0111e-them-ghi-chu-va-mot-transaction",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thay \u0111\u1ED5i ng\xE2n s\xE1ch t\xEDnh to\xE1n cho m\u1ED9t transaction",slug:"lam-the-nao-\u0111e-thay-\u0111oi-ngan-sach-tinh-toan-cho-mot-transaction",children:[]}],path:"/vi/references/basic-transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"C\u1EB7p kho\xE1 v\xE0 V\xED",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 sinh C\u1EB7p kho\xE1",slug:"lam-the-nao-\u0111e-sinh-cap-khoa",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ph\u1EE5c h\u1ED3i m\u1ED9t C\u1EB7p kho\xE1 t\u1EEB kho\xE1 ri\xEAng t\u01B0",slug:"lam-the-nao-\u0111e-phuc-hoi-mot-cap-khoa-tu-khoa-rieng-tu",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ki\u1EC3m tra m\u1ED9t c\u1EB7p kho\xE1",slug:"lam-the-nao-\u0111e-kiem-tra-mot-cap-khoa",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ki\u1EC3m tra n\u1EBFu m\u1ED9t kho\xE1 c\xF4ng khai kh\xF4ng t\u1ED3n t\u1EA1i kho\xE1 ri\xEAng t\u01B0 t\u01B0\u01A1ng \u1EE8ng",slug:"lam-the-nao-\u0111e-kiem-tra-neu-mot-khoa-cong-khai-khong-ton-tai-khoa-rieng-tu-tuong-ung",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 sinh ra c\u1EE5m mnemonic",slug:"lam-the-nao-\u0111e-sinh-ra-cum-mnemonic",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ph\u1EE5c h\u1ED3i l\u1EA1i c\u1EB7p kho\xE1 t\u1EEB c\u1EE5m mnemonic",slug:"lam-the-nao-\u0111e-phuc-hoi-lai-cap-khoa-tu-cum-mnemonic",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 sinh m\u1ED9t \u0111\u1ECBa ch\u1EC9 danh ngh\u0129a",slug:"lam-the-nao-\u0111e-sinh-mot-\u0111ia-chi-danh-nghia",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o k\xFD v\xE0 ki\u1EC3m tra tinh nh\u1EAFn b\u1EB1ng v\xED",slug:"lam-the-nao-ky-va-kiem-tra-tinh-nhan-bang-vi",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 k\u1EBFt n\u1ED1i v\xED",slug:"lam-the-nao-\u0111e-ket-noi-vi",children:[{level:3,title:"React",slug:"react",children:[]},{level:3,title:"Vue",slug:"vue",children:[]},{level:3,title:"Svelte",slug:"svelte",children:[]}]}],path:"/vi/references/keypairs-and-wallets.html",pathLocale:"/vi/",extraFields:[]},{title:"L\u1EADp tr\xECnh \u1EDF Local",headers:[{level:2,title:"Kh\u1EDFi ch\u1EA1y Local Validator",slug:"khoi-chay-local-validator",children:[]},{level:2,title:"K\u1EBFt n\u1ED1i \u0111\u1EBFn m\xF4i tr\u01B0\u1EDDng",slug:"ket-noi-\u0111en-moi-truong",children:[]},{level:2,title:"L\u1EAFng nghe c\xE1c s\u1EF1 ki\u1EC7n",slug:"lang-nghe-cac-su-kien",children:[]},{level:2,title:"Nh\u1EADn SOL \u0111\u1EC3 ki\u1EC3m th\u1EED",slug:"nhan-sol-\u0111e-kiem-thu",children:[]},{level:2,title:"S\u1EED d\u1EE5ng Accounts v\xE0 Programs tr\xEAn Mainnet",slug:"su-dung-accounts-va-programs-tren-mainnet",children:[{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\xE0i \u0111\u1EB7t accounts t\u1EEB mainnet",slug:"lam-the-nao-\u0111e-cai-\u0111at-accounts-tu-mainnet",children:[]},{level:3,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\u1EA3i \u0111\u1EB7t programs t\u1EEB mainnet",slug:"lam-the-nao-\u0111e-cai-\u0111at-programs-tu-mainnet",children:[]}]}],path:"/vi/references/local-development.html",pathLocale:"/vi/",extraFields:[]},{title:"D\u1ECBch v\u1EE5 t\xEAn mi\u1EC1n",headers:[{level:2,title:"D\u1ECBch v\u1EE5 \u0111\u0103ng k\xFD t\xEAn mi\u1EC1n",slug:"dich-vu-\u0111ang-ky-ten-mien",children:[]},{level:2,title:"Ph\xE2n gi\u1EA3i t\xEAn mi\u1EC1n SOL",slug:"phan-giai-ten-mien-sol",children:[]},{level:2,title:"Tra c\u1EE9u ng\u01B0\u1EE3c",slug:"tra-cuu-nguoc",children:[]},{level:2,title:"Tra c\u1EE9u t\xEAn mi\u1EC1n con",slug:"tra-cuu-ten-mien-con",children:[]},{level:2,title:"T\xECm t\u1EA5t c\u1EA3 t\xEAn mi\u1EC1n \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi m\u1ED9t kho\xE1 c\xF4ng khai",slug:"tim-tat-ca-ten-mien-\u0111uoc-so-huu-boi-mot-khoa-cong-khai",children:[]},{level:2,title:"Ph\xE2n gi\u1EA3i m\u1ED9t Twitter Handle",slug:"phan-giai-mot-twitter-handle",children:[]},{level:2,title:"Tra c\u1EE9u ng\u01B0\u1EE3c c\u1EE7a m\u1ED9t Twitter Handle",slug:"tra-cuu-nguoc-cua-mot-twitter-handle",children:[]}],path:"/vi/references/name-service.html",pathLocale:"/vi/",extraFields:[]},{title:"NFTs",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t NFT",slug:"lam-the-nao-\u0111e-tao-mot-nft",children:[{level:3,title:"\u0110\u0103ng t\u1EA3i l\xEAn Arweave",slug:"\u0111ang-tai-len-arweave",children:[]},{level:3,title:"\u0110\xFAc NFT",slug:"\u0111uc-nft",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n NFT Metadata",slug:"lam-the-nao-\u0111e-truy-van-nft-metadata",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n ch\u1EE7 s\u1EDF h\u1EEFu c\u1EE7a m\u1ED9t NFTs",slug:"lam-the-nao-\u0111e-truy-van-chu-so-huu-cua-mot-nfts",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n \u0111\u1ECBa ch\u1EC9 mint c\u1EE7a NFT",slug:"lam-the-nao-\u0111e-truy-van-\u0111ia-chi-mint-cua-nft",children:[{level:3,title:"Candy Machine V1",slug:"candy-machine-v1",children:[]},{level:3,title:"Candy Machine V2",slug:"candy-machine-v2",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n t\u1EA5t c\u1EA3 NFT t\u1EEB m\u1ED9t v\xED?",slug:"lam-the-nao-\u0111e-truy-van-tat-ca-nft-tu-mot-vi",children:[]}],path:"/vi/references/nfts.html",pathLocale:"/vi/",extraFields:[]},{title:"G\u1EEDi Transactions Ngo\u1EA1i tuy\u1EBFn",headers:[{level:2,title:"K\xFD Transaction",slug:"ky-transaction",children:[]},{level:2,title:"K\xFD m\u1ED9t ph\u1EA7n Transaction",slug:"ky-mot-phan-transaction",children:[]},{level:2,title:"Nonce v\u0129nh vi\u1EC5n",slug:"nonce-vinh-vien",children:[{level:3,title:"T\u1EA1o Nonce Account",slug:"tao-nonce-account",children:[]},{level:3,title:"Truy v\u1EA5n Nonce Account",slug:"truy-van-nonce-account",children:[]},{level:3,title:"S\u1EED d\u1EE5ng Nonce Account",slug:"su-dung-nonce-account",children:[]}]}],path:"/vi/references/offline-transactions.html",pathLocale:"/vi/",extraFields:[]},{title:"X\xE2y d\u1EF1ng Programs",headers:[{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 chuy\u1EC3n SOL trong m\u1ED9t program",slug:"lam-the-nao-\u0111e-chuyen-sol-trong-mot-program",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 l\u1EA5y th\u1EDDi gian trong m\u1ED9t program",slug:"lam-the-nao-\u0111e-lay-thoi-gian-trong-mot-program",children:[{level:3,title:"Truy\u1EC1n Clock nh\u01B0 l\xE0 m\u1ED9t account trong ch\u1EC9 th\u1ECB",slug:"truyen-clock-nhu-la-mot-account-trong-chi-thi",children:[]},{level:3,title:"Truy c\u1EADp Clock tr\u1EF1c ti\u1EBFp b\xEAn trong ch\u1EC9 th\u1ECB",slug:"truy-cap-clock-truc-tiep-ben-trong-chi-thi",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thay \u0111\u1ED5i k\xEDch th\u01B0\u1EDBc account",slug:"lam-the-nao-\u0111e-thay-\u0111oi-kich-thuoc-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 g\u1ECDi gi\u1EEFa c\xE1c program (Cross Program Invocation - CPI)",slug:"lam-the-nao-\u0111e-goi-giua-cac-program-cross-program-invocation-cpi",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o PDA",slug:"lam-the-nao-\u0111e-tao-pda",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ECDc Account",slug:"lam-the-nao-\u0111e-\u0111oc-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 ki\u1EC3m tra account",slug:"lam-the-nao-\u0111e-kiem-tra-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ECDc nhi\u1EC1u ch\u1EC9 th\u1ECB t\u1EEB m\u1ED9t Transaction",slug:"lam-the-nao-\u0111e-\u0111oc-nhieu-chi-thi-tu-mot-transaction",children:[]}],path:"/vi/references/programs.html",pathLocale:"/vi/",extraFields:[]},{title:"Staking",headers:[{level:2,title:"Truy v\u1EA5n danh s\xE1ch Validators hi\u1EC7n t\u1EA1i",slug:"truy-van-danh-sach-validators-hien-tai",children:[]},{level:2,title:"T\u1EA1o m\u1ED9t Stake Account",slug:"tao-mot-stake-account",children:[]},{level:2,title:"U\u1EF7 quy\u1EC1n Stake",slug:"uy-quyen-stake",children:[]},{level:2,title:"Truy v\u1EA5n c\xE1c nh\xE0 u\u1EF7 quy\u1EC1n b\u1EB1ng validator",slug:"truy-van-cac-nha-uy-quyen-bang-validator",children:[]},{level:2,title:"D\u1EEBng stake",slug:"dung-stake",children:[]},{level:2,title:"R\xFAt Stake",slug:"rut-stake",children:[]}],path:"/vi/references/staking.html",pathLocale:"/vi/",extraFields:[]},{title:"T\u01B0\u01A1ng t\xE1c v\u1EDBi Tokens",headers:[{level:2,title:"T\xF4i n\xEAn c\u1EA7n g\xEC \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u v\u1EDBi SPL-Tokens?",slug:"toi-nen-can-gi-\u0111e-bat-\u0111au-voi-spl-tokens",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t token m\u1EDBi",slug:"lam-the-nao-\u0111e-tao-mot-token-moi",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ECDc truy v\u1EA5n token mint",slug:"lam-the-nao-\u0111e-\u0111oc-truy-van-token-mint",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 t\u1EA1o m\u1ED9t token account",slug:"lam-the-nao-\u0111e-tao-mot-token-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n token acount",slug:"lam-the-nao-\u0111e-truy-van-token-acount",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n s\u1ED1 d\u01B0 c\u1EE7a token account",slug:"lam-the-nao-\u0111e-truy-van-so-du-cua-token-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 d\xFAc token",slug:"lam-the-nao-\u0111e-duc-token",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 chuy\u1EC3n token",slug:"lam-the-nao-\u0111e-chuyen-token",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\u1ED1t token",slug:"lam-the-nao-\u0111e-\u0111ot-token",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 \u0111\xF3ng m\u1ED9t token account",slug:"lam-the-nao-\u0111e-\u0111ong-mot-token-account",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thi\u1EBFt l\u1EADp ch\u1EE7 s\u1EDF h\u1EEFu cho token account v\xE0 mint",slug:"lam-the-nao-\u0111e-thiet-lap-chu-so-huu-cho-token-account-va-mint",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 u\u1EF7 quy\u1EC1n cho m\u1ED9t token \u0111\u1EA1i di\u1EC7n (delegate)",slug:"lam-the-nao-\u0111e-uy-quyen-cho-mot-token-\u0111ai-dien-delegate",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thu h\u1ED3i m\u1ED9t token \u0111\u1EA1i di\u1EC7n",slug:"lam-the-nao-\u0111e-thu-hoi-mot-token-\u0111ai-dien",children:[]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 qu\u1EA3n l\xFD wrapped SOL",slug:"lam-the-nao-\u0111e-quan-ly-wrapped-sol",children:[{level:3,title:"T\u1EA1o token account",slug:"tao-token-account",children:[]},{level:3,title:"Th\xEAm s\u1ED1 d\u01B0",slug:"them-so-du",children:[]}]},{level:2,title:"L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 truy v\u1EA5n t\u1EA5t c\u1EA3 token account c\u1EE7a m\u1ED9t Ch\u1EE7",slug:"lam-the-nao-\u0111e-truy-van-tat-ca-token-account-cua-mot-chu",children:[]}],path:"/vi/references/token.html",pathLocale:"/vi/",extraFields:[]},{title:"\u8D26\u6237",headers:[{level:2,title:"\u7EFC\u8FF0",slug:"\u7EFC\u8FF0",children:[]},{level:2,title:"\u6DF1\u5165",slug:"\u6DF1\u5165",children:[{level:3,title:"\u8D26\u6237\u6A21\u578B",slug:"\u8D26\u6237\u6A21\u578B",children:[]},{level:3,title:"\u79DF\u91D1",slug:"\u79DF\u91D1",children:[]}]},{level:2,title:"\u5176\u4ED6\u8D44\u6599",slug:"\u5176\u4ED6\u8D44\u6599",children:[{level:3,title:"\u81F4\u8C22",slug:"\u81F4\u8C22",children:[]}]}],path:"/zh/core-concepts/accounts.html",pathLocale:"/zh/",extraFields:[]},{title:"\u7A0B\u5E8F\u6D3E\u751F\u8D26\u6237 (PDA)",headers:[{level:2,title:"\u7EFC\u8FF0",slug:"\u7EFC\u8FF0",children:[{level:3,title:"\u751F\u6210PDA",slug:"\u751F\u6210pda",children:[]},{level:3,title:"\u4E0EPDA\u4EA4\u4E92",slug:"\u4E0Epda\u4EA4\u4E92",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/zh/core-concepts/pdas.html",pathLocale:"/zh/",extraFields:[]},{title:"\u7A0B\u5E8F",headers:[{level:2,title:"\u7EFC\u8FF0",slug:"\u7EFC\u8FF0",children:[]},{level:2,title:"\u6DF1\u5165",slug:"\u6DF1\u5165",children:[{level:3,title:"\u539F\u751F\u7A0B\u5E8F\u548CSolana\u7A0B\u5E8F\u5E93\uFF08SPL\uFF09",slug:"\u539F\u751F\u7A0B\u5E8F\u548Csolana\u7A0B\u5E8F\u5E93-spl",children:[]},{level:3,title:"\u7F16\u5199\u7A0B\u5E8F",slug:"\u7F16\u5199\u7A0B\u5E8F",children:[]},{level:3,title:"\u90E8\u7F72\u7A0B\u5E8F",slug:"\u90E8\u7F72\u7A0B\u5E8F",children:[]}]},{level:2,title:"\u5176\u4ED6\u8D44\u6599",slug:"\u5176\u4ED6\u8D44\u6599",children:[]}],path:"/zh/core-concepts/programs.html",pathLocale:"/zh/",extraFields:[]},{title:"\u4EA4\u6613",headers:[{level:2,title:"\u6982\u8FF0",slug:"\u6982\u8FF0",children:[]},{level:2,title:"\u6DF1\u5165",slug:"\u6DF1\u5165",children:[{level:3,title:"\u8D39\u7528",slug:"\u8D39\u7528",children:[]}]},{level:2,title:"Other Resources",slug:"other-resources",children:[]}],path:"/zh/core-concepts/transactions.html",pathLocale:"/zh/",extraFields:[]},{title:"\u5B89\u88C5",headers:[{level:2,title:"\u5B89\u88C5Web3.js",slug:"\u5B89\u88C5web3-js",children:[{level:3,title:"Web3.js",slug:"web3-js",children:[]},{level:3,title:"SPL\u4EE3\u5E01\uFF08SPL-Token\uFF09",slug:"spl\u4EE3\u5E01-spl-token",children:[]},{level:3,title:"\u94B1\u5305\u9002\u914D\u5668\uFF08Wallet-Adapter\uFF09",slug:"\u94B1\u5305\u9002\u914D\u5668-wallet-adapter",children:[]}]},{level:2,title:"\u5B89\u88C5Rust",slug:"\u5B89\u88C5rust",children:[]},{level:2,title:"\u5B89\u88C5\u547D\u4EE4\u884C\u5DE5\u5177",slug:"\u5B89\u88C5\u547D\u4EE4\u884C\u5DE5\u5177",children:[{level:3,title:"macOS & Linux",slug:"macos-linux",children:[]},{level:3,title:"Windows",slug:"windows",children:[]},{level:3,title:"\u4ECE\u6E90\u7801\u7F16\u8BD1",slug:"\u4ECE\u6E90\u7801\u7F16\u8BD1",children:[]}]}],path:"/zh/getting-started/installation.html",pathLocale:"/zh/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}],Nc=Ee(Cv),xv=()=>Nc;sr.webpackHot&&(__VUE_HMR_RUNTIME__.updateSearchIndex=e=>{Nc.value=e});const jv=/[^\x00-\x7F]/,Vv=e=>e.split(/\s+/g).map(t=>t.trim()).filter(t=>!!t),Ya=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),Qa=(e,t)=>{const n=t.join(" "),l=Vv(e);if(jv.test(e))return l.some(a=>n.toLowerCase().indexOf(a)>-1);const r=e.endsWith(" ");return new RegExp(l.map((a,s)=>l.length===s+1&&!r?`(?=.*\\b${Ya(a)})`:`(?=.*\\b${Ya(a)}\\b)`).join("")+".+","gi").test(n)},Fv=({searchIndex:e,routeLocale:t,query:n,maxSuggestions:l})=>{const r=_e(()=>e.value.filter(i=>i.pathLocale===t.value));return _e(()=>{const i=n.value.trim().toLowerCase();if(!i)return[];const a=[],s=(c,u)=>{Qa(i,[u.title])&&a.push({link:`${c.path}#${u.slug}`,title:c.title,header:u.title});for(const d of u.children){if(a.length>=l.value)return;s(c,d)}};for(const c of r.value){if(a.length>=l.value)break;if(Qa(i,[c.title,...c.extraFields])){a.push({link:c.path,title:c.title});continue}for(const u of c.headers){if(a.length>=l.value)break;s(c,u)}}return a})},Nv=e=>{const t=Ee(0);return{focusIndex:t,focusNext:()=>{t.value{t.value>0?t.value-=1:t.value=e.value.length-1}}},Mv=ze({name:"SearchBox",props:{locales:{type:Object,required:!1,default:()=>({})},hotKeys:{type:Array,required:!1,default:()=>[]},maxSuggestions:{type:Number,required:!1,default:5}},setup(e){const{locales:t,hotKeys:n,maxSuggestions:l}=yd(e),r=ll(),i=Fi(),a=xv(),s=Ee(null),c=Ee(!1),u=Ee(""),d=_e(()=>{var P;return(P=t.value[i.value])!==null&&P!==void 0?P:{}}),v=Fv({searchIndex:a,routeLocale:i,query:u,maxSuggestions:l}),{focusIndex:g,focusNext:b,focusPrev:m}=Nv(v);Iv({input:s,hotKeys:n});const _=_e(()=>c.value&&!!v.value.length),f=()=>{!_.value||m()},y=()=>{!_.value||b()},w=P=>{if(!_.value)return;const A=v.value[P];!A||r.push(A.link).then(()=>{u.value="",g.value=0})};return()=>ee("form",{class:"search-box",role:"search"},[ee("input",{ref:s,type:"search",placeholder:d.value.placeholder,autocomplete:"off",spellcheck:!1,value:u.value,onFocus:()=>c.value=!0,onBlur:()=>c.value=!1,onInput:P=>u.value=P.target.value,onKeydown:P=>{switch(P.key){case"ArrowUp":{f();break}case"ArrowDown":{y();break}case"Enter":{P.preventDefault(),w(g.value);break}}}}),_.value&&ee("ul",{class:"suggestions",onMouseleave:()=>g.value=-1},v.value.map(({link:P,title:A,header:D},F)=>ee("li",{class:["suggestion",{focus:g.value===F}],onMouseenter:()=>g.value=F,onMousedown:()=>w(F)},ee("a",{href:P,onClick:S=>S.preventDefault()},[ee("span",{class:"page-title"},A),D&&ee("span",{class:"page-header"},`> ${D}`)]))))])}});const zv={"/":{placeholder:"Search"},"/zh/":{placeholder:"\u641C\u7D22"},"/vi/":{placeholder:"T\xECm ki\u1EBFm"},"/th/":{placeholder:"\u0E04\u0E49\u0E19\u0E2B\u0E32"},"/fr/":{placeholder:"Rechercher"},"/id/":{placeholder:"Cari"},"/kr/":{placeholder:"\uAC80\uC0C9"},"/ja/":{placeholder:"\u691C\u7D22"}},Hv=["s","/"],Bv=10;var Uv=Lt(({app:e})=>{e.component("SearchBox",t=>ee(Mv,xe({locales:zv,hotKeys:Hv,maxSuggestions:Bv},t)))}),Kv=({app:e})=>{e.component("SolanaCodeGroup",h(()=>o(()=>Promise.resolve().then(function(){return i_}),void 0))),e.component("SolanaCodeGroupItem",h(()=>o(()=>Promise.resolve().then(function(){return u_}),void 0)))};/*! @docsearch/js 3.0.0-alpha.42 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function Gn(e){return Gn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gn(e)}function qv(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gr(){return Gr=Object.assign||function(e){for(var t=1;t=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Bl(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,l){if(!(typeof Symbol=="undefined"||!(Symbol.iterator in Object(n)))){var r=[],i=!0,a=!1,s=void 0;try{for(var c,u=n[Symbol.iterator]();!(i=(c=u.next()).done)&&(r.push(c.value),!l||r.length!==l);i=!0);}catch(d){a=!0,s=d}finally{try{i||u.return==null||u.return()}finally{if(a)throw s}}return r}}(e,t)||Mc(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Ul(e){return function(t){if(Array.isArray(t))return Jr(t)}(e)||function(t){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(t))return Array.from(t)}(e)||Mc(e)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Mc(e,t){if(e){if(typeof e=="string")return Jr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Jr(e,t):void 0}}function Jr(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n3)for(n=[n],i=3;i0?zn(b.type,b.props,b.key,null,b.__v):b)!=null){if(b.__=n,b.__b=n.__b+1,(g=y[d])===null||g&&b.key==g.key&&b.type===g.type)y[d]=void 0;else for(v=0;v3)for(n=[n],i=3;i=n.__.length&&n.__.push({}),n.__[e]}function co(e,t,n){var l=Qn(vn++,2);return l.t=e,l.__c||(l.__=[n?n(t):Qc(void 0,t),function(r){var i=l.t(l.__[0],r);l.__[0]!==i&&(l.__=[i,l.__[1]],l.__c.setState({}))}],l.__c=Fe),l.__}function uo(e,t){var n=Qn(vn++,4);!Z.__s&&Ui(n.__H,t)&&(n.__=e,n.__H=t,Fe.__h.push(n))}function El(e,t){var n=Qn(vn++,7);return Ui(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Qv(){Qr.forEach(function(e){if(e.__P)try{e.__H.__h.forEach(wl),e.__H.__h.forEach(Zr),e.__H.__h=[]}catch(t){e.__H.__h=[],Z.__e(t,e.__v)}}),Qr=[]}Z.__b=function(e){Fe=null,ro&&ro(e)},Z.__r=function(e){io&&io(e),vn=0;var t=(Fe=e.__c).__H;t&&(t.__h.forEach(wl),t.__h.forEach(Zr),t.__h=[])},Z.diffed=function(e){ao&&ao(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(Qr.push(t)!==1&&lo===Z.requestAnimationFrame||((lo=Z.requestAnimationFrame)||function(n){var l,r=function(){clearTimeout(i),ho&&cancelAnimationFrame(l),setTimeout(n)},i=setTimeout(r,100);ho&&(l=requestAnimationFrame(r))})(Qv)),Fe=void 0},Z.__c=function(e,t){t.some(function(n){try{n.__h.forEach(wl),n.__h=n.__h.filter(function(l){return!l.__||Zr(l)})}catch(l){t.some(function(r){r.__h&&(r.__h=[])}),t=[],Z.__e(l,n.__v)}}),oo&&oo(e,t)},Z.unmount=function(e){so&&so(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(wl)}catch(n){Z.__e(n,t.__v)}};var ho=typeof requestAnimationFrame=="function";function wl(e){var t=Fe;typeof e.__c=="function"&&e.__c(),Fe=t}function Zr(e){var t=Fe;e.__c=e.__(),Fe=t}function Ui(e,t){return!e||e.length!==t.length||t.some(function(n,l){return n!==e[l]})}function Qc(e,t){return typeof t=="function"?t(e):t}function Zc(e,t){for(var n in t)e[n]=t[n];return e}function Xr(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var l in t)if(l!=="__source"&&e[l]!==t[l])return!0;return!1}function ei(e){this.props=e}(ei.prototype=new at).isPureReactComponent=!0,ei.prototype.shouldComponentUpdate=function(e,t){return Xr(this.props,e)||Xr(this.state,t)};var go=Z.__b;Z.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),go&&go(e)};var Zv=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,mo=function(e,t){return e==null?null:ht(ht(e).map(t))},Xv={map:mo,forEach:mo,count:function(e){return e?ht(e).length:0},only:function(e){var t=ht(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:ht},ep=Z.__e;function Pl(){this.__u=0,this.t=null,this.__b=null}function Xc(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function Dn(){this.u=null,this.o=null}Z.__e=function(e,t,n){if(e.then){for(var l,r=t;r=r.__;)if((l=r.__c)&&l.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k),l.__c(e,t)}ep(e,t,n)},(Pl.prototype=new at).__c=function(e,t){var n=t.__c,l=this;l.t==null&&(l.t=[]),l.t.push(n);var r=Xc(l.__v),i=!1,a=function(){i||(i=!0,n.componentWillUnmount=n.__c,r?r(s):s())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){a(),n.__c&&n.__c()};var s=function(){if(!--l.__u){if(l.state.__e){var u=l.state.__e;l.__v.__k[0]=function v(g,b,m){return g&&(g.__v=null,g.__k=g.__k&&g.__k.map(function(_){return v(_,b,m)}),g.__c&&g.__c.__P===b&&(g.__e&&m.insertBefore(g.__e,g.__d),g.__c.__e=!0,g.__c.__P=m)),g}(u,u.__c.__P,u.__c.__O)}var d;for(l.setState({__e:l.__b=null});d=l.t.pop();)d.forceUpdate()}},c=t.__h===!0;l.__u++||c||l.setState({__e:l.__b=l.__v.__k[0]}),e.then(a,a)},Pl.prototype.componentWillUnmount=function(){this.t=[]},Pl.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),l=this.__v.__k[0].__c;this.__v.__k[0]=function i(a,s,c){return a&&(a.__c&&a.__c.__H&&(a.__c.__H.__.forEach(function(u){typeof u.__c=="function"&&u.__c()}),a.__c.__H=null),(a=Zc({},a)).__c!=null&&(a.__c.__P===c&&(a.__c.__P=s),a.__c=null),a.__k=a.__k&&a.__k.map(function(u){return i(u,s,c)})),a}(this.__b,n,l.__O=l.__P)}this.__b=null}var r=t.__e&&it(Ot,null,e.fallback);return r&&(r.__h=null),[it(Ot,null,t.__e?null:e.children),r]};var vo=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(l)}}),Yn(it(tp,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function eu(e,t){return it(np,{__v:e,i:t})}(Dn.prototype=new at).__e=function(e){var t=this,n=Xc(t.__v),l=t.o.get(e);return l[0]++,function(r){var i=function(){t.props.revealOrder?(l.push(r),vo(t,e,l)):r()};n?n(i):i()}},Dn.prototype.render=function(e){this.u=null,this.o=new Map;var t=ht(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Dn.prototype.componentDidUpdate=Dn.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,n){vo(e,n,t)})};var tu=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,lp=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,rp=function(e){return(typeof Symbol!="undefined"&&Gn(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function nu(e,t,n){return t.__k==null&&(t.textContent=""),Yn(e,t),typeof n=="function"&&n(),e?e.__c:null}at.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(at.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var po=Z.event;function ip(){}function ap(){return this.cancelBubble}function op(){return this.defaultPrevented}Z.event=function(e){return po&&(e=po(e)),e.persist=ip,e.isPropagationStopped=ap,e.isDefaultPrevented=op,e.nativeEvent=e};var lu,fo={configurable:!0,get:function(){return this.class}},_o=Z.vnode;Z.vnode=function(e){var t=e.type,n=e.props,l=n;if(typeof t=="string"){for(var r in l={},n){var i=n[r];r==="value"&&"defaultValue"in n&&i==null||(r==="defaultValue"&&"value"in n&&n.value==null?r="value":r==="download"&&i===!0?i="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!rp(n.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():lp.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():i===null&&(i=void 0),l[r]=i)}t=="select"&&l.multiple&&Array.isArray(l.value)&&(l.value=ht(n.children).forEach(function(a){a.props.selected=l.value.indexOf(a.props.value)!=-1})),t=="select"&&l.defaultValue!=null&&(l.value=ht(n.children).forEach(function(a){a.props.selected=l.multiple?l.defaultValue.indexOf(a.props.value)!=-1:l.defaultValue==a.props.value})),e.props=l}t&&n.class!=n.className&&(fo.enumerable="className"in n,n.className!=null&&(l.class=n.className),Object.defineProperty(l,"className",fo)),e.$$typeof=tu,_o&&_o(e)};var bo=Z.__r;Z.__r=function(e){bo&&bo(e),lu=e.__c};var sp={ReactCurrentDispatcher:{current:{readContext:function(e){return lu.__n[e.__c].props.value}}}};(typeof performance=="undefined"?"undefined":Gn(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function yo(e){return!!e&&e.$$typeof===tu}var E={useState:function(e){return ln=1,co(Qc,e)},useReducer:co,useEffect:function(e,t){var n=Qn(vn++,3);!Z.__s&&Ui(n.__H,t)&&(n.__=e,n.__H=t,Fe.__H.__h.push(n))},useLayoutEffect:uo,useRef:function(e){return ln=5,El(function(){return{current:e}},[])},useImperativeHandle:function(e,t,n){ln=6,uo(function(){typeof e=="function"?e(t()):e&&(e.current=t())},n==null?n:n.concat(e))},useMemo:El,useCallback:function(e,t){return ln=8,El(function(){return e},t)},useContext:function(e){var t=Fe.context[e.__c],n=Qn(vn++,9);return n.__c=e,t?(n.__==null&&(n.__=!0,t.sub(Fe)),t.props.value):e.__},useDebugValue:function(e,t){Z.useDebugValue&&Z.useDebugValue(t?t(e):e)},version:"16.8.0",Children:Xv,render:nu,hydrate:function(e,t,n){return Yc(e,t),typeof n=="function"&&n(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(Yn(null,e),!0)},createPortal:eu,createElement:it,createContext:function(e,t){var n={__c:t="__cC"+Hc++,__:e,Consumer:function(l,r){return l.children(r)},Provider:function(l){var r,i;return this.getChildContext||(r=[],(i={})[t]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&r.some(Yr)},this.sub=function(a){r.push(a);var s=a.componentWillUnmount;a.componentWillUnmount=function(){r.splice(r.indexOf(a),1),s&&s.call(a)}}),l.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(e){return it.bind(null,e)},cloneElement:function(e){return yo(e)?Yv.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:Ot,isValidElement:yo,findDOMNode:function(e){return e&&(e.base||e.nodeType===1&&e)||null},Component:at,PureComponent:ei,memo:function(e,t){function n(r){var i=this.props.ref,a=i==r.ref;return!a&&i&&(i.call?i(null):i.current=null),t?!t(this.props,r)||!a:Xr(this.props,r)}function l(r){return this.shouldComponentUpdate=n,it(e,r)}return l.displayName="Memo("+(e.displayName||e.name)+")",l.prototype.isReactComponent=!0,l.__f=!0,l},forwardRef:function(e){function t(n,l){var r=Zc({},n);return delete r.ref,e(r,(l=n.ref||l)&&(Gn(l)!="object"||"current"in l)?l:null)}return t.$$typeof=Zv,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:Ot,Suspense:Pl,SuspenseList:Dn,lazy:function(e){var t,n,l;function r(i){if(t||(t=e()).then(function(a){n=a.default||a},function(a){l=a}),l)throw l;if(!n)throw t;return it(n,i)}return r.displayName="Lazy",r.__f=!0,r},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:sp};function cp(){return E.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},E.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function ru(){return E.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},E.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var up=["translations"];function ti(){return ti=Object.assign||function(e){for(var t=1;t=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var hp=E.forwardRef(function(e,t){var n=e.translations,l=n===void 0?{}:n,r=dp(e,up),i=l.buttonText,a=i===void 0?"Search":i,s=l.buttonAriaLabel,c=s===void 0?"Search":s,u=El(function(){return typeof navigator!="undefined"?/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"\u2318":"Ctrl":null},[]);return E.createElement("button",ti({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},r,{ref:t}),E.createElement("span",{className:"DocSearch-Button-Container"},E.createElement(ru,null),E.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),E.createElement("span",{className:"DocSearch-Button-Keys"},u!==null&&E.createElement(E.Fragment,null,E.createElement("span",{className:"DocSearch-Button-Key"},u==="Ctrl"?E.createElement(cp,null):u),E.createElement("span",{className:"DocSearch-Button-Key"},"K"))))});function Zn(e){return e.reduce(function(t,n){return t.concat(n)},[])}var gp=0;function ni(e){return e.collections.length===0?0:e.collections.reduce(function(t,n){return t+n.items.length},0)}var mp=function(){},vp=[{segment:"autocomplete-core",version:"1.5.0"}];function ko(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,l)}return n}function pp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fp(e,t,n){var l=t.initialState;return{getState:function(){return l},dispatch:function(r,i){var a=function(s){for(var c=1;c=n?l===null?null:0:r}function Po(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,l)}return n}function bp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yp(e,t){var n=[];return Promise.resolve(e(t)).then(function(l){return Promise.all(l.filter(function(r){return Boolean(r)}).map(function(r){if(r.sourceId,n.includes(r.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(r.sourceId)," is not unique."));n.push(r.sourceId);var i=function(a){for(var s=1;se.length)&&(t=e.length);for(var n=0,l=new Array(t);ne.length)&&(t=e.length);for(var n=0,l=new Array(t);n|<\/mark>)/g,ff=RegExp(ou.source);function su(e){var t,n,l,r,i,a=e;if(!a.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var s=((a.__docsearch_parent?(t=a.__docsearch_parent)===null||t===void 0||(n=t._highlightResult)===null||n===void 0||(l=n.hierarchy)===null||l===void 0?void 0:l.lvl0:(r=e._highlightResult)===null||r===void 0||(i=r.hierarchy)===null||i===void 0?void 0:i.lvl0)||{}).value;return s&&ff.test(s)?s.replace(ou,""):s}function ii(){return ii=Object.assign||function(e){for(var t=1;t=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function kf(e){var t=e.translations,n=t===void 0?{}:t,l=yf(e,bf),r=n.recentSearchesTitle,i=r===void 0?"Recent":r,a=n.noRecentSearchesText,s=a===void 0?"No recent searches":a,c=n.saveRecentSearchButtonTitle,u=c===void 0?"Save this search":c,d=n.removeRecentSearchButtonTitle,v=d===void 0?"Remove this search from history":d,g=n.favoriteSearchesTitle,b=g===void 0?"Favorite":g,m=n.removeFavoriteSearchButtonTitle,_=m===void 0?"Remove this search from favorites":m;return l.state.status==="idle"&&l.hasCollections===!1?l.disableUserPersonalization?null:E.createElement("div",{className:"DocSearch-StartScreen"},E.createElement("p",{className:"DocSearch-Help"},s)):l.hasCollections===!1?null:E.createElement("div",{className:"DocSearch-Dropdown-Container"},E.createElement(ri,$l({},l,{title:i,collection:l.state.collections[0],renderIcon:function(){return E.createElement("div",{className:"DocSearch-Hit-icon"},E.createElement(Zp,null))},renderAction:function(f){var y=f.item,w=f.runFavoriteTransition,P=f.runDeleteTransition;return E.createElement(E.Fragment,null,E.createElement("div",{className:"DocSearch-Hit-action"},E.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(A){A.preventDefault(),A.stopPropagation(),w(function(){l.favoriteSearches.add(y),l.recentSearches.remove(y),l.refresh()})}},E.createElement(Mo,null))),E.createElement("div",{className:"DocSearch-Hit-action"},E.createElement("button",{className:"DocSearch-Hit-action-button",title:v,type:"submit",onClick:function(A){A.preventDefault(),A.stopPropagation(),P(function(){l.recentSearches.remove(y),l.refresh()})}},E.createElement(li,null))))}})),E.createElement(ri,$l({},l,{title:b,collection:l.state.collections[1],renderIcon:function(){return E.createElement("div",{className:"DocSearch-Hit-icon"},E.createElement(Mo,null))},renderAction:function(f){var y=f.item,w=f.runDeleteTransition;return E.createElement("div",{className:"DocSearch-Hit-action"},E.createElement("button",{className:"DocSearch-Hit-action-button",title:_,type:"submit",onClick:function(P){P.preventDefault(),P.stopPropagation(),w(function(){l.favoriteSearches.remove(y),l.refresh()})}},E.createElement(li,null)))}})))}var Ef=["translations"];function Gl(){return Gl=Object.assign||function(e){for(var t=1;t=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Pf=E.memo(function(e){var t=e.translations,n=t===void 0?{}:t,l=wf(e,Ef);if(l.state.status==="error")return E.createElement(of,{translations:n==null?void 0:n.errorScreen});var r=l.state.collections.some(function(i){return i.items.length>0});return l.state.query?r===!1?E.createElement(df,Gl({},l,{translations:n==null?void 0:n.noResultsScreen})):E.createElement(_f,l):E.createElement(kf,Gl({},l,{hasCollections:r,translations:n==null?void 0:n.startScreen}))},function(e,t){return t.state.status==="loading"||t.state.status==="stalled"}),Tf=["translations"];function Jl(){return Jl=Object.assign||function(e){for(var t=1;t=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Of(e){var t=e.translations,n=t===void 0?{}:t,l=Af(e,Tf),r=n.resetButtonTitle,i=r===void 0?"Clear the query":r,a=n.resetButtonAriaLabel,s=a===void 0?"Clear the query":a,c=n.cancelButtonText,u=c===void 0?"Cancel":c,d=n.cancelButtonAriaLabel,v=d===void 0?"Cancel":d,g=l.getFormProps({inputElement:l.inputRef.current}).onReset;return E.useEffect(function(){l.autoFocus&&l.inputRef.current&&l.inputRef.current.focus()},[l.autoFocus,l.inputRef]),E.useEffect(function(){l.isFromSelection&&l.inputRef.current&&l.inputRef.current.select()},[l.isFromSelection,l.inputRef]),E.createElement(E.Fragment,null,E.createElement("form",{className:"DocSearch-Form",onSubmit:function(b){b.preventDefault()},onReset:g},E.createElement("label",Jl({className:"DocSearch-MagnifierLabel"},l.getLabelProps()),E.createElement(ru,null)),E.createElement("div",{className:"DocSearch-LoadingIndicator"},E.createElement(Qp,null)),E.createElement("input",Jl({className:"DocSearch-Input",ref:l.inputRef},l.getInputProps({inputElement:l.inputRef.current,autoFocus:l.autoFocus,maxLength:64}))),E.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":s,hidden:!l.state.query},E.createElement(li,null))),E.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":v,onClick:l.onClose},u))}var Lf=["_highlightResult","_snippetResult"];function Sf(e,t){if(e==null)return{};var n,l,r=function(a,s){if(a==null)return{};var c,u,d={},v=Object.keys(a);for(u=0;u=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Df(e){return function(){var t="__TEST_KEY__";try{return localStorage.setItem(t,""),localStorage.removeItem(t),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function $o(e){var t=e.key,n=e.limit,l=n===void 0?5:n,r=Df(t),i=r.getItem().slice(0,l);return{add:function(a){var s=a,c=(s._highlightResult,s._snippetResult,Sf(s,Lf)),u=i.findIndex(function(d){return d.objectID===c.objectID});u>-1&&i.splice(u,1),i.unshift(c),i=i.slice(0,l),r.setItem(i)},remove:function(a){i=i.filter(function(s){return s.objectID!==a.objectID}),r.setItem(i)},getAll:function(){return i}}}var Rf=["facetName","facetQuery"];function If(e){var t,n="algoliasearch-client-js-".concat(e.key),l=function(){return t===void 0&&(t=e.localStorage||window.localStorage),t},r=function(){return JSON.parse(l().getItem(n)||"{}")};return{get:function(i,a){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){var c=JSON.stringify(i),u=r()[c];return Promise.all([u||a(),u!==void 0])}).then(function(c){var u=Bl(c,2),d=u[0],v=u[1];return Promise.all([d,v||s.miss(d)])}).then(function(c){return Bl(c,1)[0]})},set:function(i,a){return Promise.resolve().then(function(){var s=r();return s[JSON.stringify(i)]=a,l().setItem(n,JSON.stringify(s)),a})},delete:function(i){return Promise.resolve().then(function(){var a=r();delete a[JSON.stringify(i)],l().setItem(n,JSON.stringify(a))})},clear:function(){return Promise.resolve().then(function(){l().removeItem(n)})}}}function Rn(e){var t=Ul(e.caches),n=t.shift();return n===void 0?{get:function(l,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return r().then(function(a){return Promise.all([a,i.miss(a)])}).then(function(a){return Bl(a,1)[0]})},set:function(l,r){return Promise.resolve(r)},delete:function(l){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(l,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(l,r,i).catch(function(){return Rn({caches:t}).get(l,r,i)})},set:function(l,r){return n.set(l,r).catch(function(){return Rn({caches:t}).set(l,r)})},delete:function(l){return n.delete(l).catch(function(){return Rn({caches:t}).delete(l)})},clear:function(){return n.clear().catch(function(){return Rn({caches:t}).clear()})}}}function Or(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},t={};return{get:function(n,l){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(n);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=l(),s=r&&r.miss||function(){return Promise.resolve()};return a.then(function(c){return s(c)}).then(function(){return a})},set:function(n,l){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(l):l,Promise.resolve(l)},delete:function(n){return delete t[JSON.stringify(n)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Cf(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),l=e[t];e[t]=e[n],e[n]=l}return e}function cu(e,t){return t&&Object.keys(t).forEach(function(n){e[n]=t[n](e)}),e}function ar(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),l=1;l0?l:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}var an={Read:1,Write:2,Any:3},uu=1,xf=2,du=3;function hu(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:uu;return he(he({},e),{},{status:t,lastUpdate:Date.now()})}function gu(e){return typeof e=="string"?{protocol:"https",url:e,accept:an.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||an.Any}}var Jo="GET",or="POST";function jf(e,t){return Promise.all(t.map(function(n){return e.get(n,function(){return Promise.resolve(hu(n))})})).then(function(n){var l=n.filter(function(a){return function(s){return s.status===uu||Date.now()-s.lastUpdate>12e4}(a)}),r=n.filter(function(a){return function(s){return s.status===du&&Date.now()-s.lastUpdate<=12e4}(a)}),i=[].concat(Ul(l),Ul(r));return{getTimeout:function(a,s){return(r.length===0&&a===0?1:r.length+3+a)*s},statelessHosts:i.length>0?i.map(function(a){return gu(a)}):t}})}function Yo(e,t,n,l){var r=[],i=function(g,b){if(!(g.method===Jo||g.data===void 0&&b.data===void 0)){var m=Array.isArray(g.data)?g.data:he(he({},g.data),b.data);return JSON.stringify(m)}}(n,l),a=function(g,b){var m=he(he({},g.headers),b.headers),_={};return Object.keys(m).forEach(function(f){var y=m[f];_[f.toLowerCase()]=y}),_}(e,l),s=n.method,c=n.method!==Jo?{}:he(he({},n.data),l.data),u=he(he(he({"x-algolia-agent":e.userAgent.value},e.queryParameters),c),l.queryParameters),d=0,v=function g(b,m){var _=b.pop();if(_===void 0)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Qo(r)};var f={data:i,headers:a,method:s,url:Ff(_,n.path,u),connectTimeout:m(d,e.timeouts.connect),responseTimeout:m(d,l.timeout)},y=function(P){var A={request:f,response:P,host:_,triesLeft:b.length};return r.push(A),A},w={onSucess:function(P){return function(A){try{return JSON.parse(A.content)}catch(D){throw function(F,S){return{name:"DeserializationError",message:F,response:S}}(D.message,A)}}(P)},onRetry:function(P){var A=y(P);return P.isTimedOut&&d++,Promise.all([e.logger.info("Retryable failure",vu(A)),e.hostsCache.set(_,hu(_,P.isTimedOut?du:xf))]).then(function(){return g(b,m)})},onFail:function(P){throw y(P),function(A,D){var F=A.content,S=A.status,O=F;try{O=JSON.parse(F).message}catch{}return function(K,B,W){return{name:"ApiError",message:K,status:B,transporterStackTrace:W}}(O,S,D)}(P,Qo(r))}};return e.requester.send(f).then(function(P){return function(A,D){return function(F){var S=F.status;return F.isTimedOut||function(O){var K=O.isTimedOut,B=O.status;return!K&&~~B==0}(F)||~~(S/100)!=2&&~~(S/100)!=4}(A)?D.onRetry(A):~~(A.status/100)==2?D.onSucess(A):D.onFail(A)}(P,w)})};return jf(e.hostsCache,t).then(function(g){return v(Ul(g.statelessHosts).reverse(),g.getTimeout)})}function Vf(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(n){var l="; ".concat(n.segment).concat(n.version!==void 0?" (".concat(n.version,")"):"");return t.value.indexOf(l)===-1&&(t.value="".concat(t.value).concat(l)),t}};return t}function Ff(e,t,n){var l=mu(n),r="".concat(e.protocol,"://").concat(e.url,"/").concat(t.charAt(0)==="/"?t.substr(1):t);return l.length&&(r+="?".concat(l)),r}function mu(e){return Object.keys(e).map(function(t){return ar("%s=%s",t,(n=e[t],Object.prototype.toString.call(n)==="[object Object]"||Object.prototype.toString.call(n)==="[object Array]"?JSON.stringify(e[t]):e[t]));var n}).join("&")}function Qo(e){return e.map(function(t){return vu(t)})}function vu(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return he(he({},e),{},{request:he(he({},e.request),{},{headers:he(he({},e.request.headers),t)})})}var Nf=function(e){var t=e.appId,n=function(i,a,s){var c={"x-algolia-api-key":s,"x-algolia-application-id":a};return{headers:function(){return i===Tl.WithinHeaders?c:{}},queryParameters:function(){return i===Tl.WithinQueryParameters?c:{}}}}(e.authMode!==void 0?e.authMode:Tl.WithinHeaders,t,e.apiKey),l=function(i){var a=i.hostsCache,s=i.logger,c=i.requester,u=i.requestsCache,d=i.responsesCache,v=i.timeouts,g=i.userAgent,b=i.hosts,m=i.queryParameters,_={hostsCache:a,logger:s,requester:c,requestsCache:u,responsesCache:d,timeouts:v,userAgent:g,headers:i.headers,queryParameters:m,hosts:b.map(function(f){return gu(f)}),read:function(f,y){var w=Go(y,_.timeouts.read),P=function(){return Yo(_,_.hosts.filter(function(D){return(D.accept&an.Read)!=0}),f,w)};if((w.cacheable!==void 0?w.cacheable:f.cacheable)!==!0)return P();var A={request:f,mappedRequestOptions:w,transporter:{queryParameters:_.queryParameters,headers:_.headers}};return _.responsesCache.get(A,function(){return _.requestsCache.get(A,function(){return _.requestsCache.set(A,P()).then(function(D){return Promise.all([_.requestsCache.delete(A),D])},function(D){return Promise.all([_.requestsCache.delete(A),Promise.reject(D)])}).then(function(D){var F=Bl(D,2);return F[0],F[1]})})},{miss:function(D){return _.responsesCache.set(A,D)}})},write:function(f,y){return Yo(_,_.hosts.filter(function(w){return(w.accept&an.Write)!=0}),f,Go(y,_.timeouts.write))}};return _}(he(he({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:an.Read},{url:"".concat(t,".algolia.net"),accept:an.Write}].concat(Cf([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:he(he(he({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:he(he({},n.queryParameters()),e.queryParameters)})),r={transporter:l,appId:t,addAlgoliaAgent:function(i,a){l.userAgent.add({segment:i,version:a})},clearCache:function(){return Promise.all([l.requestsCache.clear(),l.responsesCache.clear()]).then(function(){})}};return cu(r,e.methods)},pu=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l={transporter:e.transporter,appId:e.appId,indexName:t};return cu(l,n.methods)}},Zo=function(e){return function(t,n){var l=t.map(function(r){return he(he({},r),{},{params:mu(r.params||{})})});return e.transporter.read({method:or,path:"1/indexes/*/queries",data:{requests:l},cacheable:!0},n)}},Xo=function(e){return function(t,n){return Promise.all(t.map(function(l){var r=l.params,i=r.facetName,a=r.facetQuery,s=Wv(r,Rf);return pu(e)(l.indexName,{methods:{searchForFacetValues:fu}}).searchForFacetValues(i,a,he(he({},n),s))}))}},Mf=function(e){return function(t,n,l){return e.transporter.read({method:or,path:ar("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:n},cacheable:!0},l)}},zf=function(e){return function(t,n){return e.transporter.read({method:or,path:ar("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n)}},fu=function(e){return function(t,n,l){return e.transporter.read({method:or,path:ar("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},l)}},Hf=1,Bf=2,Uf=3;function _u(e,t,n){var l,r={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(i){return new Promise(function(a){var s=new XMLHttpRequest;s.open(i.method,i.url,!0),Object.keys(i.headers).forEach(function(v){return s.setRequestHeader(v,i.headers[v])});var c,u=function(v,g){return setTimeout(function(){s.abort(),a({status:0,content:g,isTimedOut:!0})},1e3*v)},d=u(i.connectTimeout,"Connection timeout");s.onreadystatechange=function(){s.readyState>s.OPENED&&c===void 0&&(clearTimeout(d),c=u(i.responseTimeout,"Socket timeout"))},s.onerror=function(){s.status===0&&(clearTimeout(d),clearTimeout(c),a({content:s.responseText||"Network request failed",status:s.status,isTimedOut:!1}))},s.onload=function(){clearTimeout(d),clearTimeout(c),a({content:s.responseText,status:s.status,isTimedOut:!1})},s.send(i.data)})}},logger:(l=Uf,{debug:function(i,a){return Hf>=l&&console.debug(i,a),Promise.resolve()},info:function(i,a){return Bf>=l&&console.info(i,a),Promise.resolve()},error:function(i,a){return console.error(i,a),Promise.resolve()}}),responsesCache:Or(),requestsCache:Or({serializable:!1}),hostsCache:Rn({caches:[If({key:"".concat("4.8.5","-").concat(e)}),Or()]}),userAgent:Vf("4.8.5").add({segment:"Browser",version:"lite"}),authMode:Tl.WithinQueryParameters};return Nf(he(he(he({},r),n),{},{methods:{search:Zo,searchForFacetValues:Xo,multipleQueries:Zo,multipleSearchForFacetValues:Xo,initIndex:function(i){return function(a){return pu(i)(a,{methods:{search:zf,searchForFacetValues:fu,findAnswers:Mf}})}}}}))}_u.version="4.8.5";var Kf=["footer","searchBox"];function Hn(){return Hn=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,l=new Array(t);n=0||(d[c]=a[c]);return d}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Gf(e){var t=e.appId,n=t===void 0?"BH4D9OD16A":t,l=e.apiKey,r=e.indexName,i=e.placeholder,a=i===void 0?"Search docs":i,s=e.searchParameters,c=e.onClose,u=c===void 0?pf:c,d=e.transformItems,v=d===void 0?Wo:d,g=e.hitComponent,b=g===void 0?Yp:g,m=e.resultsFooterComponent,_=m===void 0?function(){return null}:m,f=e.navigator,y=e.initialScrollY,w=y===void 0?0:y,P=e.transformSearchClient,A=P===void 0?Wo:P,D=e.disableUserPersonalization,F=D!==void 0&&D,S=e.initialQuery,O=S===void 0?"":S,K=e.translations,B=K===void 0?{}:K,W=B.footer,L=B.searchBox,H=$f(B,Kf),Q=Wf(E.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),se=Q[0],J=Q[1],le=E.useRef(null),re=E.useRef(null),we=E.useRef(null),Ae=E.useRef(null),Le=E.useRef(null),Pe=E.useRef(10),Ie=E.useRef(typeof window!="undefined"?window.getSelection().toString().slice(0,64):"").current,He=E.useRef(O||Ie).current,I=function(p,k,T){return E.useMemo(function(){var R=_u(p,k);return R.addAlgoliaAgent("docsearch","3.0.0-alpha.42"),/docsearch.js \(.*\)/.test(R.transporter.userAgent.value)===!1&&R.addAlgoliaAgent("docsearch-react","3.0.0-alpha.42"),T(R)},[p,k,T])}(n,l,A),U=E.useRef($o({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(r),limit:10})).current,N=E.useRef($o({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(r),limit:U.getAll().length===0?7:4})).current,q=E.useCallback(function(p){if(!F){var k=p.type==="content"?p.__docsearch_parent:p;k&&U.getAll().findIndex(function(T){return T.objectID===k.objectID})===-1&&N.add(k)}},[U,N,F]),ue=E.useMemo(function(){return $p({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:He,context:{searchSuggestions:[]}},navigator:f,onStateChange:function(p){J(p.state)},getSources:function(p){var k=p.query,T=p.state,R=p.setContext,C=p.setStatus;return k?I.search([{query:k,indexName:r,params:Lr({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(Pe.current),"hierarchy.lvl2:".concat(Pe.current),"hierarchy.lvl3:".concat(Pe.current),"hierarchy.lvl4:".concat(Pe.current),"hierarchy.lvl5:".concat(Pe.current),"hierarchy.lvl6:".concat(Pe.current),"content:".concat(Pe.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20},s)}]).catch(function(x){throw x.name==="RetryError"&&C("error"),x}).then(function(x){var M=x.results[0],j=M.hits,z=M.nbHits,V=qo(j,function(Y){return su(Y)});return T.context.searchSuggestions.length0&&(ne(),Le.current&&Le.current.focus())},[He,ne]),E.useEffect(function(){function p(){if(re.current){var k=.01*window.innerHeight;re.current.style.setProperty("--docsearch-vh","".concat(k,"px"))}}return p(),window.addEventListener("resize",p),function(){window.removeEventListener("resize",p)}},[]),E.createElement("div",Hn({ref:le},ie({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",se.status==="stalled"&&"DocSearch-Container--Stalled",se.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(p){p.target===p.currentTarget&&u()}}),E.createElement("div",{className:"DocSearch-Modal",ref:re},E.createElement("header",{className:"DocSearch-SearchBar",ref:we},E.createElement(Of,Hn({},ue,{state:se,autoFocus:He.length===0,inputRef:Le,isFromSelection:Boolean(He)&&He===Ie,translations:L,onClose:u}))),E.createElement("div",{className:"DocSearch-Dropdown",ref:Ae},E.createElement(Pf,Hn({},ue,{indexName:r,state:se,hitComponent:b,resultsFooterComponent:_,disableUserPersonalization:F,recentSearches:N,favoriteSearches:U,inputRef:Le,translations:H,onItemClick:function(p){q(p),u()}}))),E.createElement("footer",{className:"DocSearch-Footer"},E.createElement(Jp,{translations:W}))))}function ai(){return ai=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,l=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:window;return typeof t=="string"?n.document.querySelector(t):t}(e.container,e.environment))}var bu,oi,yu,Qf=[];function Zf(e,t,n){var l,r,i,a={};for(i in t)i=="key"?l=t[i]:i=="ref"?r=t[i]:a[i]=t[i];if(arguments.length>2&&(a.children=arguments.length>3?bu.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)a[i]===void 0&&(a[i]=e.defaultProps[i]);return Xf(e,a,l,r,null)}function Xf(e,t,n,l,r){var i={type:e,props:t,key:n,ref:l,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:r==null?++yu:r};return r==null&&oi.vnode!=null&&oi.vnode(i),i}bu=Qf.slice,oi={__e:function(e,t){for(var n,l,r;t=t.__;)if((n=t.__c)&&!n.__)try{if((l=n.constructor)&&l.getDerivedStateFromError!=null&&(n.setState(l.getDerivedStateFromError(e)),r=n.__d),n.componentDidCatch!=null&&(n.componentDidCatch(e),r=n.__d),r)return n.__E=n}catch(i){e=i}throw e}},yu=0,typeof Promise=="function"&&Promise.prototype.then.bind(Promise.resolve());const e_=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,t_=()=>{const e=ll(),t=Ac();return{transformItems:n=>n.map(l=>St(xe({},l),{url:wm(l.url,t.value.base)})),hitComponent:({hit:n,children:l})=>Zf("a",{href:n.url,onClick:r=>{e_(r)||(r.preventDefault(),e.push(n.url))}},l),navigator:{navigate:({itemUrl:n})=>{e.push(n)}}}};const n_=ze({name:"Docsearch",props:{options:{type:Object,required:!0}},setup(e){const t=Fi(),n=Tc(),l=t_(),r=_e(()=>{var s;return xe(xe({},e.options),(s=e.options.locales)===null||s===void 0?void 0:s[t.value])}),i=[],a=()=>{var s,c;const u=(c=(s=r.value.searchParameters)===null||s===void 0?void 0:s.facetFilters)!==null&&c!==void 0?c:[];i.splice(0,i.length,`lang:${n.value}`,...te(u)?u:[u]),Yf(St(xe(xe({},l),r.value),{container:"#docsearch-container",searchParameters:St(xe({},r.value.searchParameters),{facetFilters:i})}))};return tt(()=>{a(),et([t,r],([s,c],[u,d])=>{s!==u&&JSON.stringify(c)!==JSON.stringify(d)&&a()}),et(n,(s,c)=>{if(s!==c){const u=i.findIndex(d=>d===`lang:${c}`);u>-1&&i.splice(u,1,`lang:${s}`)}})}),()=>ee("div",{id:"docsearch-container"})}}),l_={apiKey:"1831a64a81ffef4f85d5c0aa28cb801f",indexName:"solanacookbook",appId:"QMKSKREFKN",algoliaOptions:{hitsPerPage:10},locales:{"/":{placeholder:"Search",translations:{button:{buttonText:"Search"}}},"/zh/":{placeholder:"\u641C\u7D22\u6587\u6863",translations:{button:{buttonText:"\u641C\u7D22\u6587\u6863"}}},"/vi/":{placeholder:"T\xECm ki\u1EBFm",translations:{button:{buttonText:"T\xECm ki\u1EBFm"}}},"/th/":{placeholder:"\u0E04\u0E49\u0E19\u0E2B\u0E32",translations:{button:{buttonText:"\u0E04\u0E49\u0E19\u0E2B\u0E32"}}},"/fr/":{placeholder:"Rechercher",translations:{button:{buttonText:"Rechercher"}}},"/id/":{placeholder:"Cari",translations:{button:{buttonText:"Cari"}}},"/kr/":{placeholder:"\uAC80\uC0C9",translations:{button:{buttonText:"\uAC80\uC0C9"}}},"/ja/":{placeholder:"\u691C\u7D22",translations:{button:{buttonText:"\u691C\u7D22"}}}}};var r_=Lt(({app:e})=>{e.component("Docsearch",()=>ee(n_,{options:l_}))});const ku=ze({name:"SolanaCodeGroup",setup(e,{slots:t}){var b;const n=Ee(-1),l=Ee([]),r=(m=n.value)=>{m{m>0?n.value=m-1:n.value=l.value.length-1,l.value[n.value].focus()},a=(m,_)=>{m.key===" "||m.key==="Enter"?(m.preventDefault(),n.value=_):m.key==="ArrowRight"?(m.preventDefault(),r(_)):m.key==="ArrowLeft"&&(m.preventDefault(),i(_))},s=((b=t.default)==null?void 0:b.call(t))||[];let c=!1;s.forEach(m=>{Object.keys(m.children).includes("preview")&&(c=!0)});const u=Ee(c),d=()=>{u.value=!u.value};function v(m){return m.map(_=>{var f;return((f=_.props)==null?void 0:f.class)==="line-number"?"":typeof _.children=="string"?_.children:Array.isArray(_.children)?v(_.children):""}).join("")}const g=()=>{let m=s.find((w,P)=>P===n.value),_=u.value?m.children.preview():m.children.default(),f=v(_),y=[new ClipboardItem({"text/plain":new Blob([f],{type:"text/plain"})})];navigator.clipboard.write(y)};return()=>{var _;const m=(((_=t.default)==null?void 0:_.call(t))||[]).map(f=>(f.props===null&&(f.props={preview:u}),f));return m.length===0?null:(n.value<0||n.value>m.length-1?(n.value=m.findIndex(f=>f.props.active===""||f.props.active===!0),n.value===-1&&(n.value=0)):m.forEach((f,y)=>{f.props.active=y===n.value,f.props.preview=u.value}),ee("div",{class:"code-group"},[ee("div",{class:"code-group__nav"},ee("ul",{class:"code-group__ul"},m.map((f,y)=>{const w=y===n.value;return ee("li",{class:"code-group__li"},ee("button",{ref:P=>{P&&(l.value[y]=P)},class:{"code-group__nav-tab":!0,"code-group__nav-tab-active":w},ariaPressed:w,ariaExpanded:w,onClick:()=>n.value=y,onKeydown:P=>a(P,y)},f.props.title))}),ee("li",{class:"flex-grow"}),ee("li",{class:"code-group__li"},ee("button",{class:{"code-group__nav-tab":!0},onClick:()=>d()},ee("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none"},ee("path",{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":2,d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"})))),ee("li",{class:"code-group__li"},ee("button",{class:{"code-group__nav-tab":!0},onClick:()=>g()},ee("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none"},ee("path",{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})))))),ee("div",[u.value?ee("div",{class:"code-info-title"},"Press button to view full source"):null]),m]))}}});var i_=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:ku});var a_=(e,t)=>{const n=e.__vccOpts||e;for(const[l,r]of t)n[l]=r;return n};const o_={name:"SolanaCodeGroupItem",props:{title:{type:String,required:!0},active:{type:Boolean,required:!1,default:!1},preview:{type:Boolean,required:!1,default:!1}}},s_=["aria-selected"];function c_(e,t,n,l,r,i){return nl(),Li("div",{class:wt(["code-group-item",{"code-group-item__active":n.active}]),"aria-selected":n.active},[Vl("div",{class:wt({hidden:n.preview})},[Fl(e.$slots,"default",{},void 0,!0)],2),Vl("div",{class:wt({hidden:!n.preview})},[Fl(e.$slots,"preview",{},void 0,!0)],2)],10,s_)}var Eu=a_(o_,[["render",c_],["__scopeId","data-v-6ae3d40e"]]),u_=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:Eu});var d_=Lt(({app:e,router:t,siteData:n})=>{e.component("SolanaCodeGroup",ku),e.component("SolanaCodeGroupItem",Eu)});const h_=[Lm,zm,qm,Lv,Rv,Uv,Kv,r_,d_];function wu(e,t,n){var l,r,i;t===void 0&&(t=50),n===void 0&&(n={});var a=(l=n.isImmediate)!=null&&l,s=(r=n.callback)!=null&&r,c=n.maxWait,u=Date.now(),d=[];function v(){if(c!==void 0){var b=Date.now()-u;if(b+t>=c)return c-b}return t}var g=function(){var b=[].slice.call(arguments),m=this;return new Promise(function(_,f){var y=a&&i===void 0;if(i!==void 0&&clearTimeout(i),i=setTimeout(function(){if(i=void 0,u=Date.now(),!a){var P=e.apply(m,b);s&&s(P),d.forEach(function(A){return(0,A.resolve)(P)}),d=[]}},v()),y){var w=e.apply(m,b);return s&&s(w),_(w)}d.push({resolve:_,reject:f})})};return g.cancel=function(b){i!==void 0&&clearTimeout(i),d.forEach(function(m){return(0,m.reject)(b)}),d=[]},g}const rs=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,g_=()=>window.scrollTo({top:0,behavior:"smooth"});const m_=ze({name:"BackToTop",setup(){const e=Ee(0),t=_e(()=>e.value>300),n=wu(()=>{e.value=rs()},100);tt(()=>{e.value=rs(),window.addEventListener("scroll",()=>n())});const l=ee("div",{class:"back-to-top",onClick:g_});return()=>ee(Ii,{name:"back-to-top"},()=>t.value?l:null)}}),v_=[m_],p_=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:l=5})=>{const r=ll(),i=rl(),s=wu(()=>{var c,u,d,v;const g=Array.from(document.querySelectorAll(e)),m=Array.from(document.querySelectorAll(t)).filter(P=>g.some(A=>A.hash===P.hash)),_=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),f=window.innerHeight+_,y=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),w=Math.abs(y-f)=((u=(c=A.parentElement)===null||c===void 0?void 0:c.offsetTop)!==null&&u!==void 0?u:0)-l,O=!D||_<((v=(d=D.parentElement)===null||d===void 0?void 0:d.offsetTop)!==null&&v!==void 0?v:0)-l;if(!(F||S&&O))continue;const B=decodeURIComponent(r.currentRoute.value.hash),W=decodeURIComponent(A.hash);if(B===W)return;if(w){for(let L=P+1;L{s(),window.addEventListener("scroll",s)}),nr(()=>{window.removeEventListener("scroll",s)}),et(()=>i.value.path,s)},f_=async(e,...t)=>{const{scrollBehavior:n}=e.options;e.options.scrollBehavior=void 0,await e.replace(...t).finally(()=>e.options.scrollBehavior=n)},__="a.sidebar-item",b_=".header-anchor",y_=300,k_=5;var E_=Mi(()=>{p_({headerLinkSelector:__,headerAnchorSelector:b_,delay:y_,offset:k_})}),w_=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Al={exports:{}};/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress - * @license MIT */(function(e,t){(function(n,l){e.exports=l()})(w_,function(){var n={};n.version="0.2.0";var l=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};n.configure=function(m){var _,f;for(_ in m)f=m[_],f!==void 0&&m.hasOwnProperty(_)&&(l[_]=f);return this},n.status=null,n.set=function(m){var _=n.isStarted();m=r(m,l.minimum,1),n.status=m===1?null:m;var f=n.render(!_),y=f.querySelector(l.barSelector),w=l.speed,P=l.easing;return f.offsetWidth,s(function(A){l.positionUsing===""&&(l.positionUsing=n.getPositioningCSS()),c(y,a(m,w,P)),m===1?(c(f,{transition:"none",opacity:1}),f.offsetWidth,setTimeout(function(){c(f,{transition:"all "+w+"ms linear",opacity:0}),setTimeout(function(){n.remove(),A()},w)},w)):setTimeout(A,w)}),this},n.isStarted=function(){return typeof n.status=="number"},n.start=function(){n.status||n.set(0);var m=function(){setTimeout(function(){!n.status||(n.trickle(),m())},l.trickleSpeed)};return l.trickle&&m(),this},n.done=function(m){return!m&&!n.status?this:n.inc(.3+.5*Math.random()).set(1)},n.inc=function(m){var _=n.status;return _?(typeof m!="number"&&(m=(1-_)*r(Math.random()*_,.1,.95)),_=r(_+m,0,.994),n.set(_)):n.start()},n.trickle=function(){return n.inc(Math.random()*l.trickleRate)},function(){var m=0,_=0;n.promise=function(f){return!f||f.state()==="resolved"?this:(_===0&&n.start(),m++,_++,f.always(function(){_--,_===0?(m=0,n.done()):n.set((m-_)/m)}),this)}}(),n.render=function(m){if(n.isRendered())return document.getElementById("nprogress");d(document.documentElement,"nprogress-busy");var _=document.createElement("div");_.id="nprogress",_.innerHTML=l.template;var f=_.querySelector(l.barSelector),y=m?"-100":i(n.status||0),w=document.querySelector(l.parent),P;return c(f,{transition:"all 0 linear",transform:"translate3d("+y+"%,0,0)"}),l.showSpinner||(P=_.querySelector(l.spinnerSelector),P&&b(P)),w!=document.body&&d(w,"nprogress-custom-parent"),w.appendChild(_),_},n.remove=function(){v(document.documentElement,"nprogress-busy"),v(document.querySelector(l.parent),"nprogress-custom-parent");var m=document.getElementById("nprogress");m&&b(m)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var m=document.body.style,_="WebkitTransform"in m?"Webkit":"MozTransform"in m?"Moz":"msTransform"in m?"ms":"OTransform"in m?"O":"";return _+"Perspective"in m?"translate3d":_+"Transform"in m?"translate":"margin"};function r(m,_,f){return m<_?_:m>f?f:m}function i(m){return(-1+m)*100}function a(m,_,f){var y;return l.positionUsing==="translate3d"?y={transform:"translate3d("+i(m)+"%,0,0)"}:l.positionUsing==="translate"?y={transform:"translate("+i(m)+"%,0)"}:y={"margin-left":i(m)+"%"},y.transition="all "+_+"ms "+f,y}var s=function(){var m=[];function _(){var f=m.shift();f&&f(_)}return function(f){m.push(f),m.length==1&&_()}}(),c=function(){var m=["Webkit","O","Moz","ms"],_={};function f(A){return A.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(D,F){return F.toUpperCase()})}function y(A){var D=document.body.style;if(A in D)return A;for(var F=m.length,S=A.charAt(0).toUpperCase()+A.slice(1),O;F--;)if(O=m[F]+S,O in D)return O;return A}function w(A){return A=f(A),_[A]||(_[A]=y(A))}function P(A,D,F){D=w(D),A.style[D]=F}return function(A,D){var F=arguments,S,O;if(F.length==2)for(S in D)O=D[S],O!==void 0&&D.hasOwnProperty(S)&&P(A,S,O);else P(A,F[1],F[2])}}();function u(m,_){var f=typeof m=="string"?m:g(m);return f.indexOf(" "+_+" ")>=0}function d(m,_){var f=g(m),y=f+_;u(f,_)||(m.className=y.substring(1))}function v(m,_){var f=g(m),y;!u(m,_)||(y=f.replace(" "+_+" "," "),m.className=y.substring(1,y.length-1))}function g(m){return(" "+(m.className||"")+" ").replace(/\s+/gi," ")}function b(m){m&&m.parentNode&&m.parentNode.removeChild(m)}return n})})(Al);const P_=()=>{tt(()=>{const e=ll(),t=new Set;t.add(e.currentRoute.value.path),Al.exports.configure({showSpinner:!1}),e.beforeEach(n=>{t.has(n.path)||Al.exports.start()}),e.afterEach(n=>{t.add(n.path),Al.exports.done()})})};var T_=Mi(()=>{P_()}),A_=Mi(()=>{_v(),wv()});const O_=[E_,T_,A_],L_=[["v-8daa1a0e","/",{title:"Cooking with Solana"},["/index.html","/README.md"]],["v-6bf54404","/core-concepts/accounts.html",{title:"Accounts"},["/core-concepts/accounts","/core-concepts/accounts.md"]],["v-5f0a12cc","/core-concepts/cpi.html",{title:"Cross Program Invocations (CPIs)"},["/core-concepts/cpi","/core-concepts/cpi.md"]],["v-130ca978","/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/core-concepts/pdas","/core-concepts/pdas.md"]],["v-882009ca","/core-concepts/programs.html",{title:"Programs"},["/core-concepts/programs","/core-concepts/programs.md"]],["v-63197375","/core-concepts/transactions.html",{title:"Transactions"},["/core-concepts/transactions","/core-concepts/transactions.md"]],["v-2d0a8235","/de/",{title:"Kochen mit Solana"},["/de/index.html","/de/README.md"]],["v-2d0a87a8","/es/",{title:"Libro de recetas de Solana"},["/es/index.html","/es/README.md"]],["v-2d0a8b4a","/fr/",{title:"Solana Cookbook"},["/fr/index.html","/fr/README.md"]],["v-345c0323","/gaming/auto-approve.html",{title:"How to auto approve transactions"},["/gaming/auto-approve","/gaming/auto-approve.md"]],["v-2119e6ee","/gaming/distribution.html",{title:"Distribution"},["/gaming/distribution","/gaming/distribution.md"]],["v-33bd6568","/gaming/energy-system.html",{title:"Energy System"},["/gaming/energy-system","/gaming/energy-system.md"]],["v-687f189c","/gaming/game-examples.html",{title:"Learn By Example"},["/gaming/game-examples","/gaming/game-examples.md"]],["v-00547d6c","/gaming/game-sdks.html",{title:"Solana Gaming SDKs"},["/gaming/game-sdks","/gaming/game-sdks.md"]],["v-3edbe329","/gaming/hello-world.html",{title:"Hello World example"},["/gaming/hello-world","/gaming/hello-world.md"]],["v-3d8530c8","/gaming/interact-with-tokens.html",{title:"How interact with tokens in programs"},["/gaming/interact-with-tokens","/gaming/interact-with-tokens.md"]],["v-c08c9418","/gaming/intro.html",{title:"Introduction to Gaming on Solana"},["/gaming/intro","/gaming/intro.md"]],["v-c4d04f5e","/gaming/nfts-in-games.html",{title:"Gaming with NFTs"},["/gaming/nfts-in-games","/gaming/nfts-in-games.md"]],["v-4ea6aa5e","/gaming/porting-anchor-to-unity.html",{title:"Port Anchor to Unity"},["/gaming/porting-anchor-to-unity","/gaming/porting-anchor-to-unity.md"]],["v-1e0c6857","/gaming/saving-game-state.html",{title:"Saving game state"},["/gaming/saving-game-state","/gaming/saving-game-state.md"]],["v-61d730b8","/gaming/store-sol-in-pda.html",{title:"Storing SOL in a PDA"},["/gaming/store-sol-in-pda","/gaming/store-sol-in-pda.md"]],["v-4e8563af","/getting-started/installation.html",{title:"Installation"},["/getting-started/installation","/getting-started/installation.md"]],["v-76b1e9e3","/guides/account-maps.html",{title:"Account Maps"},["/guides/account-maps","/guides/account-maps.md"]],["v-6da58eef","/guides/data-migration.html",{title:"Migrating Program Data Accounts"},["/guides/data-migration","/guides/data-migration.md"]],["v-4684263f","/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs"},["/guides/debugging-solana-programs","/guides/debugging-solana-programs.md"]],["v-4740871a","/guides/feature-parity-testing.html",{title:"Feature Parity Testing"},["/guides/feature-parity-testing","/guides/feature-parity-testing.md"]],["v-2b9a5458","/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/guides/get-program-accounts","/guides/get-program-accounts.md"]],["v-5a9d5a10","/guides/retrying-transactions.html",{title:"Retrying Transactions"},["/guides/retrying-transactions","/guides/retrying-transactions.md"]],["v-2e379628","/guides/serialization.html",{title:"Serializing Data"},["/guides/serialization","/guides/serialization.md"]],["v-7e81f36f","/guides/versioned-transactions.html",{title:"Versioned Transactions"},["/guides/versioned-transactions","/guides/versioned-transactions.md"]],["v-2d0a94db","/id/",{title:"Buku Panduan Solana"},["/id/index.html","/id/README.md"]],["v-100dc897","/integrations/",{title:"Getting Started"},["/integrations/index.html","/integrations/README.md"]],["v-13513bf3","/integrations/jupiter.html",{title:"Jupiter"},["/integrations/jupiter","/integrations/jupiter.md"]],["v-7f12be2e","/integrations/mango.html",{title:"Mango Markets"},["/integrations/mango","/integrations/mango.md"]],["v-0bf487b4","/integrations/orao-vrf.html",{title:"ORAO VRF"},["/integrations/orao-vrf","/integrations/orao-vrf.md"]],["v-6bb05bf6","/integrations/pyth.html",{title:"Pyth"},["/integrations/pyth","/integrations/pyth.md"]],["v-78a2a41d","/integrations/react-native.html",{title:"React Native"},["/integrations/react-native","/integrations/react-native.md"]],["v-0a8f60b8","/integrations/serum.html",{title:"Serum"},["/integrations/serum","/integrations/serum.md"]],["v-402eef45","/integrations/strata.html",{title:"Strata"},["/integrations/strata","/integrations/strata.md"]],["v-4d26b27e","/integrations/switchboard.html",{title:"Switchboard"},["/integrations/switchboard","/integrations/switchboard.md"]],["v-da1de70a","/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/integrations/web3auth","/integrations/web3auth.md"]],["v-2d0a983f","/ja/",{title:"Cooking with Solana"},["/ja/index.html","/ja/README.md"]],["v-2d0a9e0f","/kr/",{title:"Cooking with Solana"},["/kr/index.html","/kr/README.md"]],["v-6c467d65","/references/accounts.html",{title:"Accounts"},["/references/accounts","/references/accounts.md"]],["v-70f9aa12","/references/basic-transactions.html",{title:"Sending Transactions"},["/references/basic-transactions","/references/basic-transactions.md"]],["v-4dc29afa","/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/references/keypairs-and-wallets","/references/keypairs-and-wallets.md"]],["v-10b56a2e","/references/local-development.html",{title:"Local Development"},["/references/local-development","/references/local-development.md"]],["v-9eccd210","/references/name-service.html",{title:"Name Service"},["/references/name-service","/references/name-service.md"]],["v-d2aec298","/references/nfts.html",{title:"NFTs"},["/references/nfts","/references/nfts.md"]],["v-f8950628","/references/offline-transactions.html",{title:"Sending Offline Transactions"},["/references/offline-transactions","/references/offline-transactions.md"]],["v-877d9708","/references/programs.html",{title:"Writing Programs"},["/references/programs","/references/programs.md"]],["v-26f90ae0","/references/staking.html",{title:"Staking"},["/references/staking","/references/staking.md"]],["v-0d096f0e","/references/token.html",{title:"Interacting with Tokens"},["/references/token","/references/token.md"]],["v-2d0abea2","/th/",{title:"Cooking \u0E01\u0E31\u0E1A Solana"},["/th/index.html","/th/README.md"]],["v-2d0abfd8","/tr/",{title:"Solana Cookbook"},["/tr/index.html","/tr/README.md"]],["v-2d0ac643","/vi/",{title:"Nh\u1EADp m\xF4n Solana"},["/vi/index.html","/vi/README.md"]],["v-2d0ad528","/zh/",{title:"Solana\u79D8\u7C4D"},["/zh/index.html","/zh/README.md"]],["v-8e5be170","/de/core-concepts/accounts.html",{title:"Accounts"},["/de/core-concepts/accounts","/de/core-concepts/accounts.md"]],["v-f2328ef0","/de/core-concepts/pdas.html",{title:"Programmabgeleitete Adressen (PDAs)"},["/de/core-concepts/pdas","/de/core-concepts/pdas.md"]],["v-08ccc65f","/de/core-concepts/programs.html",{title:"Programme"},["/de/core-concepts/programs","/de/core-concepts/programs.md"]],["v-1256fcb9","/de/core-concepts/transactions.html",{title:"Transaktionen"},["/de/core-concepts/transactions","/de/core-concepts/transactions.md"]],["v-2485abf3","/de/getting-started/installation.html",{title:"Installation"},["/de/getting-started/installation","/de/getting-started/installation.md"]],["v-1832f5c2","/de/guides/account-maps.html",{title:"Kontozuordnungen"},["/de/guides/account-maps","/de/guides/account-maps.md"]],["v-70204b2b","/de/guides/data-migration.html",{title:"Migrieren von Programmdatenkonten"},["/de/guides/data-migration","/de/guides/data-migration.md"]],["v-16deac83","/de/guides/debugging-solana-programs.html",{title:"Debuggen von Solana-Programmen"},["/de/guides/debugging-solana-programs","/de/guides/debugging-solana-programs.md"]],["v-732f06a2","/de/guides/feature-parity-testing.html",{title:"Funktionsparit\xE4tstest"},["/de/guides/feature-parity-testing","/de/guides/feature-parity-testing.md"]],["v-22a67510","/de/guides/get-program-accounts.html",{title:"Programmkonten Abfragen"},["/de/guides/get-program-accounts","/de/guides/get-program-accounts.md"]],["v-309da254","/de/guides/retrying-transactions.html",{title:"Transaktionen Wiederholen"},["/de/guides/retrying-transactions","/de/guides/retrying-transactions.md"]],["v-5796626c","/de/guides/serialization.html",{title:"Serialisieren von Daten"},["/de/guides/serialization","/de/guides/serialization.md"]],["v-1bac4a4a","/de/integrations/",{title:"Getting Started"},["/de/integrations/index.html","/de/integrations/README.md"]],["v-3cb00837","/de/integrations/jupiter.html",{title:"Jupiter"},["/de/integrations/jupiter","/de/integrations/jupiter.md"]],["v-0f7fcb72","/de/integrations/mango.html",{title:"Mango Markets"},["/de/integrations/mango","/de/integrations/mango.md"]],["v-0e6f43f0","/de/integrations/orao-vrf.html",{title:"ORAO VRF"},["/de/integrations/orao-vrf","/de/integrations/orao-vrf.md"]],["v-d5fbe77e","/de/integrations/pyth.html",{title:"Pyth"},["/de/integrations/pyth","/de/integrations/pyth.md"]],["v-0aace259","/de/integrations/react-native.html",{title:"React Native"},["/de/integrations/react-native","/de/integrations/react-native.md"]],["v-ca072408","/de/integrations/serum.html",{title:"Serum"},["/de/integrations/serum","/de/integrations/serum.md"]],["v-8538eafe","/de/integrations/strata.html",{title:"Strata"},["/de/integrations/strata","/de/integrations/strata.md"]],["v-5404867c","/de/integrations/switchboard.html",{title:"Switchboard"},["/de/integrations/switchboard","/de/integrations/switchboard.md"]],["v-d5286e92","/de/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/de/integrations/web3auth","/de/integrations/web3auth.md"]],["v-2d09cebe","/de/references/accounts.html",{title:"Accounts"},["/de/references/accounts","/de/references/accounts.md"]],["v-9ce8299a","/de/references/basic-transactions.html",{title:"Transaktionen versenden"},["/de/references/basic-transactions","/de/references/basic-transactions.md"]],["v-4ec78794","/de/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/de/references/keypairs-and-wallets","/de/references/keypairs-and-wallets.md"]],["v-32949b1c","/de/references/local-development.html",{title:"Local Development"},["/de/references/local-development","/de/references/local-development.md"]],["v-01539798","/de/references/name-service.html",{title:"Name Service"},["/de/references/name-service","/de/references/name-service.md"]],["v-6bf79020","/de/references/nfts.html",{title:"NFTs"},["/de/references/nfts","/de/references/nfts.md"]],["v-0e8f1e28","/de/references/offline-transactions.html",{title:"Senden von Offline-Transaktionen"},["/de/references/offline-transactions","/de/references/offline-transactions.md"]],["v-3975cfb8","/de/references/programs.html",{title:"Programme schreiben"},["/de/references/programs","/de/references/programs.md"]],["v-7cf087d4","/de/references/staking.html",{title:"Staking"},["/de/references/staking","/de/references/staking.md"]],["v-4520fd52","/de/references/token.html",{title:"Interaktion mit Tokens"},["/de/references/token","/de/references/token.md"]],["v-08458c16","/es/core-concepts/accounts.html",{title:"Cuentas"},["/es/core-concepts/accounts","/es/core-concepts/accounts.md"]],["v-79377c96","/es/core-concepts/pdas.html",{title:"Direcciones derivadas de programa (PDAs)"},["/es/core-concepts/pdas","/es/core-concepts/pdas.md"]],["v-4bd7f10c","/es/core-concepts/programs.html",{title:"Programas"},["/es/core-concepts/programs","/es/core-concepts/programs.md"]],["v-314308e6","/es/core-concepts/transactions.html",{title:"Transacciones"},["/es/core-concepts/transactions","/es/core-concepts/transactions.md"]],["v-389f60e0","/es/getting-started/installation.html",{title:"Instalaci\xF3n"},["/es/getting-started/installation","/es/getting-started/installation.md"]],["v-471a2192","/es/guides/account-maps.html",{title:"C\xF3mo usar Map en cuentas"},["/es/guides/account-maps","/es/guides/account-maps.md"]],["v-7642d244","/es/guides/data-migration.html",{title:"Migrando cuentas de datos de programas"},["/es/guides/data-migration","/es/guides/data-migration.md"]],["v-6c0a22f0","/es/guides/debugging-solana-programs.html",{title:"Depurando Programas en Solana"},["/es/guides/debugging-solana-programs","/es/guides/debugging-solana-programs.md"]],["v-35856562","/es/guides/feature-parity-testing.html",{title:"Prueba de paridad de caracter\xEDsticas"},["/es/guides/feature-parity-testing","/es/guides/feature-parity-testing.md"]],["v-3d8822fa","/es/guides/get-program-accounts.html",{title:"Obtener cuentas de programa"},["/es/guides/get-program-accounts","/es/guides/get-program-accounts.md"]],["v-44b75741","/es/guides/retrying-transactions.html",{title:"Reintentando Transacciones"},["/es/guides/retrying-transactions","/es/guides/retrying-transactions.md"]],["v-6ad65459","/es/guides/serialization.html",{title:"Serializando datos"},["/es/guides/serialization","/es/guides/serialization.md"]],["v-3caeb514","/es/references/accounts.html",{title:"Cuentas"},["/es/references/accounts","/es/references/accounts.md"]],["v-20a8d3e6","/es/references/basic-transactions.html",{title:"Enviando transacciones"},["/es/references/basic-transactions","/es/references/basic-transactions.md"]],["v-17bc77ae","/es/references/keypairs-and-wallets.html",{title:"Pares de llaves y billeteras"},["/es/references/keypairs-and-wallets","/es/references/keypairs-and-wallets.md"]],["v-0a613142","/es/references/local-development.html",{title:"Desarrollo en entorno local"},["/es/references/local-development","/es/references/local-development.md"]],["v-1db05f27","/es/references/name-service.html",{title:"Servicio de nombres"},["/es/references/name-service","/es/references/name-service.md"]],["v-6f8605e3","/es/references/nfts.html",{title:"NFTs"},["/es/references/nfts","/es/references/nfts.md"]],["v-2a14a61b","/es/references/offline-transactions.html",{title:"Enviando transacciones offline"},["/es/references/offline-transactions","/es/references/offline-transactions.md"]],["v-e6ad27aa","/es/references/programs.html",{title:"Escribiendo Programas"},["/es/references/programs","/es/references/programs.md"]],["v-8d23ddfe","/es/references/staking.html",{title:"Staking"},["/es/references/staking","/es/references/staking.md"]],["v-4fd8edbf","/es/references/token.html",{title:"Interactuando con tokens"},["/es/references/token","/es/references/token.md"]],["v-598bfdda","/fr/core-concepts/accounts.html",{title:"Comptes"},["/fr/core-concepts/accounts","/fr/core-concepts/accounts.md"]],["v-410d47d3","/fr/core-concepts/pdas.html",{title:"Adresses d\xE9riv\xE9es de programmes (PDAs)"},["/fr/core-concepts/pdas","/fr/core-concepts/pdas.md"]],["v-2334b82a","/fr/core-concepts/programs.html",{title:"Programmes"},["/fr/core-concepts/programs","/fr/core-concepts/programs.md"]],["v-1ee9ddf8","/fr/core-concepts/transactions.html",{title:"Transactions"},["/fr/core-concepts/transactions","/fr/core-concepts/transactions.md"]],["v-4605d97e","/fr/getting-started/installation.html",{title:"Installation"},["/fr/getting-started/installation","/fr/getting-started/installation.md"]],["v-7e91df34","/fr/guides/account-maps.html",{title:"Maps de Comptes"},["/fr/guides/account-maps","/fr/guides/account-maps.md"]],["v-05451800","/fr/guides/data-migration.html",{title:"Migration des Comptes de Donn\xE9es de Programmes"},["/fr/guides/data-migration","/fr/guides/data-migration.md"]],["v-0bb1c6e4","/fr/guides/debugging-solana-programs.html",{title:"D\xE9bogage des Programmes Solana"},["/fr/guides/debugging-solana-programs","/fr/guides/debugging-solana-programs.md"]],["v-5623fef8","/fr/guides/feature-parity-testing.html",{title:"Test de Conformit\xE9 des Fonctionnalit\xE9s"},["/fr/guides/feature-parity-testing","/fr/guides/feature-parity-testing.md"]],["v-0af4ea25","/fr/guides/get-program-accounts.html",{title:"Obtenir les comptes d'un programme"},["/fr/guides/get-program-accounts","/fr/guides/get-program-accounts.md"]],["v-521dcfdf","/fr/guides/retrying-transactions.html",{title:"R\xE9essayer des Transactions"},["/fr/guides/retrying-transactions","/fr/guides/retrying-transactions.md"]],["v-22564af7","/fr/guides/serialization.html",{title:"S\xE9rialisation des donn\xE9es"},["/fr/guides/serialization","/fr/guides/serialization.md"]],["v-77103780","/fr/guides/versioned-transactions.html",{title:"Transactions Versionn\xE9es"},["/fr/guides/versioned-transactions","/fr/guides/versioned-transactions.md"]],["v-4571fbe6","/fr/integrations/",{title:"Pour Commencer"},["/fr/integrations/index.html","/fr/integrations/README.md"]],["v-076ff0c2","/fr/integrations/jupiter.html",{title:"Jupiter"},["/fr/integrations/jupiter","/fr/integrations/jupiter.md"]],["v-6cb34a86","/fr/integrations/mango.html",{title:"Mango Markets"},["/fr/integrations/mango","/fr/integrations/mango.md"]],["v-c8a72676","/fr/integrations/orao-vrf.html",{title:"ORAO VRF"},["/fr/integrations/orao-vrf","/fr/integrations/orao-vrf.md"]],["v-6976e796","/fr/integrations/pyth.html",{title:"Pyth"},["/fr/integrations/pyth","/fr/integrations/pyth.md"]],["v-1e60cea4","/fr/integrations/react-native.html",{title:"React Native"},["/fr/integrations/react-native","/fr/integrations/react-native.md"]],["v-5522fd47","/fr/integrations/serum.html",{title:"Serum"},["/fr/integrations/serum","/fr/integrations/serum.md"]],["v-480ee496","/fr/integrations/strata.html",{title:"Strata"},["/fr/integrations/strata","/fr/integrations/strata.md"]],["v-139f3066","/fr/integrations/switchboard.html",{title:"Switchboard"},["/fr/integrations/switchboard","/fr/integrations/switchboard.md"]],["v-22a8f18c","/fr/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/fr/integrations/web3auth","/fr/integrations/web3auth.md"]],["v-742672b6","/fr/references/accounts.html",{title:"Comptes"},["/fr/references/accounts","/fr/references/accounts.md"]],["v-7fdd21f0","/fr/references/basic-transactions.html",{title:"Envoyer des Transactions"},["/fr/references/basic-transactions","/fr/references/basic-transactions.md"]],["v-5bd01ecb","/fr/references/keypairs-and-wallets.html",{title:"Paires de Cl\xE9s et Portefeuilles"},["/fr/references/keypairs-and-wallets","/fr/references/keypairs-and-wallets.md"]],["v-0835dffd","/fr/references/local-development.html",{title:"D\xE9veloppement Local"},["/fr/references/local-development","/fr/references/local-development.md"]],["v-31ec7bc9","/fr/references/name-service.html",{title:"Service de Noms"},["/fr/references/name-service","/fr/references/name-service.md"]],["v-3331e485","/fr/references/nfts.html",{title:"NFTs"},["/fr/references/nfts","/fr/references/nfts.md"]],["v-dc79fe86","/fr/references/offline-transactions.html",{title:"Envoi de transactions hors connexion"},["/fr/references/offline-transactions","/fr/references/offline-transactions.md"]],["v-77bdac66","/fr/references/programs.html",{title:"\xC9crire des Programmes"},["/fr/references/programs","/fr/references/programs.md"]],["v-3717171f","/fr/references/staking.html",{title:"Staking"},["/fr/references/staking","/fr/references/staking.md"]],["v-01a8e35d","/fr/references/token.html",{title:"Interaction avec les Jetons"},["/fr/references/token","/fr/references/token.md"]],["v-da3cf63c","/id/core-concepts/accounts.html",{title:"Akun"},["/id/core-concepts/accounts","/id/core-concepts/accounts.md"]],["v-0bf50b22","/id/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/id/core-concepts/pdas","/id/core-concepts/pdas.md"]],["v-3a47880e","/id/core-concepts/programs.html",{title:"Program"},["/id/core-concepts/programs","/id/core-concepts/programs.md"]],["v-73c3d55a","/id/core-concepts/transactions.html",{title:"Transaksi"},["/id/core-concepts/transactions","/id/core-concepts/transactions.md"]],["v-02e9060d","/id/getting-started/installation.html",{title:"Instalasi"},["/id/getting-started/installation","/id/getting-started/installation.md"]],["v-10a285c5","/id/guides/account-maps.html",{title:"Peta Akun"},["/id/guides/account-maps","/id/guides/account-maps.md"]],["v-4ddeba51","/id/guides/data-migration.html",{title:"Migrasi Akun Data Program"},["/id/guides/data-migration","/id/guides/data-migration.md"]],["v-0173699d","/id/guides/debugging-solana-programs.html",{title:"Debug Program Solana"},["/id/guides/debugging-solana-programs","/id/guides/debugging-solana-programs.md"]],["v-971f3456","/id/guides/feature-parity-testing.html",{title:"Pengujian Paritas Fitur"},["/id/guides/feature-parity-testing","/id/guides/feature-parity-testing.md"]],["v-307b2094","/id/guides/get-program-accounts.html",{title:"Mendapatkan Akun Program"},["/id/guides/get-program-accounts","/id/guides/get-program-accounts.md"]],["v-0f00fc6e","/id/guides/retrying-transactions.html",{title:"Mengulang Kembali transaksi"},["/id/guides/retrying-transactions","/id/guides/retrying-transactions.md"]],["v-5b4b12f4","/id/guides/serialization.html",{title:"Serialisasi Data"},["/id/guides/serialization","/id/guides/serialization.md"]],["v-0027c5f5","/id/integrations/",{title:"Memulai"},["/id/integrations/index.html","/id/integrations/README.md"]],["v-9117c75e","/id/integrations/jupiter.html",{title:"Jupiter"},["/id/integrations/jupiter","/id/integrations/jupiter.md"]],["v-d6e3c3e8","/id/integrations/mango.html",{title:"Mango Markets"},["/id/integrations/mango","/id/integrations/mango.md"]],["v-2df1fe67","/id/integrations/pyth.html",{title:"Pyth"},["/id/integrations/pyth","/id/integrations/pyth.md"]],["v-10996302","/id/integrations/react-native.html",{title:"React Native"},["/id/integrations/react-native","/id/integrations/react-native.md"]],["v-200ac096","/id/integrations/serum.html",{title:"Serum"},["/id/integrations/serum","/id/integrations/serum.md"]],["v-4bc0e9b2","/id/integrations/strata.html",{title:"Strata"},["/id/integrations/strata","/id/integrations/strata.md"]],["v-6a0633dc","/id/integrations/switchboard.html",{title:"Switchboard"},["/id/integrations/switchboard","/id/integrations/switchboard.md"]],["v-732a37dd","/id/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/id/integrations/web3auth","/id/integrations/web3auth.md"]],["v-06371947","/id/references/accounts.html",{title:"Akun"},["/id/references/accounts","/id/references/accounts.md"]],["v-c0d8574e","/id/references/basic-transactions.html",{title:"Mengirim Transaksi"},["/id/references/basic-transactions","/id/references/basic-transactions.md"]],["v-644e73dc","/id/references/keypairs-and-wallets.html",{title:"Keypairs & Wallets"},["/id/references/keypairs-and-wallets","/id/references/keypairs-and-wallets.md"]],["v-75cde6e8","/id/references/local-development.html",{title:"Development Lokal"},["/id/references/local-development","/id/references/local-development.md"]],["v-673571da","/id/references/name-service.html",{title:"Name Service"},["/id/references/name-service","/id/references/name-service.md"]],["v-931308d4","/id/references/nfts.html",{title:"NFT"},["/id/references/nfts","/id/references/nfts.md"]],["v-cb7d5464","/id/references/offline-transactions.html",{title:"Mengirim Transaksi Offline"},["/id/references/offline-transactions","/id/references/offline-transactions.md"]],["v-5631d05e","/id/references/programs.html",{title:"Menulis Program"},["/id/references/programs","/id/references/programs.md"]],["v-01feda6e","/id/references/staking.html",{title:"Staking"},["/id/references/staking","/id/references/staking.md"]],["v-3211a328","/id/references/token.html",{title:"Interaksi dengan Token"},["/id/references/token","/id/references/token.md"]],["v-179e82fe","/ja/core-concepts/accounts.html",{title:"\u30A2\u30AB\u30A6\u30F3\u30C8"},["/ja/core-concepts/accounts","/ja/core-concepts/accounts.md"]],["v-52ffdf92","/ja/core-concepts/cpi.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u9593\u547C\u3073\u51FA\u3057(CPI)"},["/ja/core-concepts/cpi","/ja/core-concepts/cpi.md"]],["v-fd851184","/ja/core-concepts/pdas.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u6D3E\u751F\u30A2\u30C9\u30EC\u30B9(PDA)"},["/ja/core-concepts/pdas","/ja/core-concepts/pdas.md"]],["v-67993a15","/ja/core-concepts/programs.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0"},["/ja/core-concepts/programs","/ja/core-concepts/programs.md"]],["v-ec92b522","/ja/core-concepts/transactions.html",{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3"},["/ja/core-concepts/transactions","/ja/core-concepts/transactions.md"]],["v-429dff29","/ja/getting-started/installation.html",{title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB"},["/ja/getting-started/installation","/ja/getting-started/installation.md"]],["v-44679d29","/ja/guides/account-maps.html",{title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30DE\u30C3\u30D7"},["/ja/guides/account-maps","/ja/guides/account-maps.md"]],["v-b688ee96","/ja/guides/data-migration.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0 \u30C7\u30FC\u30BF \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u79FB\u884C"},["/ja/guides/data-migration","/ja/guides/data-migration.md"]],["v-04e3168e","/ja/guides/debugging-solana-programs.html",{title:"Solana\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30C7\u30D0\u30C3\u30B0"},["/ja/guides/debugging-solana-programs","/ja/guides/debugging-solana-programs.md"]],["v-6b5a9039","/ja/guides/feature-parity-testing.html",{title:"\u6A5F\u80FD\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8"},["/ja/guides/feature-parity-testing","/ja/guides/feature-parity-testing.md"]],["v-d18839cc","/ja/guides/get-program-accounts.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97"},["/ja/guides/get-program-accounts","/ja/guides/get-program-accounts.md"]],["v-4eb5f58a","/ja/guides/retrying-transactions.html",{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u518D\u8A66\u884C"},["/ja/guides/retrying-transactions","/ja/guides/retrying-transactions.md"]],["v-17384ba2","/ja/guides/serialization.html",{title:"\u30C7\u30FC\u30BF\u306E\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3"},["/ja/guides/serialization","/ja/guides/serialization.md"]],["v-0d7cc735","/ja/guides/versioned-transactions.html",{title:"Versioned Transactions"},["/ja/guides/versioned-transactions","/ja/guides/versioned-transactions.md"]],["v-57b135de","/ja/integrations/",{title:"\u958B\u59CB"},["/ja/integrations/index.html","/ja/integrations/README.md"]],["v-075c1d26","/ja/integrations/jupiter.html",{title:"Jupiter"},["/ja/integrations/jupiter","/ja/integrations/jupiter.md"]],["v-09d68a28","/ja/integrations/mango.html",{title:"Mango Markets"},["/ja/integrations/mango","/ja/integrations/mango.md"]],["v-430a817a","/ja/integrations/orao-vrf.html",{title:"ORAO VRF"},["/ja/integrations/orao-vrf","/ja/integrations/orao-vrf.md"]],["v-83c4c26a","/ja/integrations/pyth.html",{title:"Pyth"},["/ja/integrations/pyth","/ja/integrations/pyth.md"]],["v-460b6a3a","/ja/integrations/react-native.html",{title:"React Native"},["/ja/integrations/react-native","/ja/integrations/react-native.md"]],["v-d559a69c","/ja/integrations/serum.html",{title:"Serum"},["/ja/integrations/serum","/ja/integrations/serum.md"]],["v-0de4a28b","/ja/integrations/strata.html",{title:"Strata"},["/ja/integrations/strata","/ja/integrations/strata.md"]],["v-9907ca10","/ja/integrations/switchboard.html",{title:"Switchboard"},["/ja/integrations/switchboard","/ja/integrations/switchboard.md"]],["v-6bf1f37e","/ja/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/ja/integrations/web3auth","/ja/integrations/web3auth.md"]],["v-39fc30ab","/ja/references/accounts.html",{title:"\u30A2\u30AB\u30A6\u30F3\u30C8"},["/ja/references/accounts","/ja/references/accounts.md"]],["v-567dfebd","/ja/references/basic-transactions.html",{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1"},["/ja/references/basic-transactions","/ja/references/basic-transactions.md"]],["v-09579540","/ja/references/keypairs-and-wallets.html",{title:"\u30AD\u30FC\u30DA\u30A2\u3068\u30A6\u30A9\u30EC\u30C3\u30C8"},["/ja/references/keypairs-and-wallets","/ja/references/keypairs-and-wallets.md"]],["v-04ce05a8","/ja/references/local-development.html",{title:"\u30ED\u30FC\u30AB\u30EB\u958B\u767A"},["/ja/references/local-development","/ja/references/local-development.md"]],["v-7a18373e","/ja/references/name-service.html",{title:"\u30CD\u30FC\u30E0\u30B5\u30FC\u30D3\u30B9"},["/ja/references/name-service","/ja/references/name-service.md"]],["v-6d16e4fa","/ja/references/nfts.html",{title:"NFT"},["/ja/references/nfts","/ja/references/nfts.md"]],["v-3f4a7732","/ja/references/offline-transactions.html",{title:"\u30AA\u30D5\u30E9\u30A4\u30F3\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1"},["/ja/references/offline-transactions","/ja/references/offline-transactions.md"]],["v-ec12307c","/ja/references/programs.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F5C\u6210"},["/ja/references/programs","/ja/references/programs.md"]],["v-7747468a","/ja/references/staking.html",{title:"\u30B9\u30C6\u30FC\u30AD\u30F3\u30B0"},["/ja/references/staking","/ja/references/staking.md"]],["v-0463f188","/ja/references/token.html",{title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u306E\u5BFE\u8A71"},["/ja/references/token","/ja/references/token.md"]],["v-52cd49a4","/kr/core-concepts/accounts.html",{title:"Accounts"},["/kr/core-concepts/accounts","/kr/core-concepts/accounts.md"]],["v-4a4be76e","/kr/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/kr/core-concepts/pdas","/kr/core-concepts/pdas.md"]],["v-26941245","/kr/core-concepts/programs.html",{title:"Programs"},["/kr/core-concepts/programs","/kr/core-concepts/programs.md"]],["v-2229e59f","/kr/core-concepts/transactions.html",{title:"Transactions"},["/kr/core-concepts/transactions","/kr/core-concepts/transactions.md"]],["v-e97c194e","/kr/getting-started/installation.html",{title:"Installation"},["/kr/getting-started/installation","/kr/getting-started/installation.md"]],["v-c5b19a0e","/kr/guides/account-maps.html",{title:"Account Maps"},["/kr/guides/account-maps","/kr/guides/account-maps.md"]],["v-68262af6","/kr/guides/data-migration.html",{title:"Migrating Program Data Accounts"},["/kr/guides/data-migration","/kr/guides/data-migration.md"]],["v-a4865e2e","/kr/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs"},["/kr/guides/debugging-solana-programs","/kr/guides/debugging-solana-programs.md"]],["v-37352209","/kr/guides/feature-parity-testing.html",{title:"Feature Parity Testing"},["/kr/guides/feature-parity-testing","/kr/guides/feature-parity-testing.md"]],["v-0d30a8ea","/kr/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/kr/guides/get-program-accounts","/kr/guides/get-program-accounts.md"]],["v-d14c2c8c","/kr/guides/retrying-transactions.html",{title:"Retrying Transactions"},["/kr/guides/retrying-transactions","/kr/guides/retrying-transactions.md"]],["v-5329205c","/kr/guides/serialization.html",{title:"Serializing Data"},["/kr/guides/serialization","/kr/guides/serialization.md"]],["v-da88730a","/kr/references/accounts.html",{title:"Accounts"},["/kr/references/accounts","/kr/references/accounts.md"]],["v-2258908d","/kr/references/basic-transactions.html",{title:"Sending Transactions"},["/kr/references/basic-transactions","/kr/references/basic-transactions.md"]],["v-48d4f310","/kr/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/kr/references/keypairs-and-wallets","/kr/references/keypairs-and-wallets.md"]],["v-4d71f9d8","/kr/references/local-development.html",{title:"Local Development"},["/kr/references/local-development","/kr/references/local-development.md"]],["v-cb0f35e4","/kr/references/name-service.html",{title:"Name Service"},["/kr/references/name-service","/kr/references/name-service.md"]],["v-b3ac3a6c","/kr/references/nfts.html",{title:"NFTs"},["/kr/references/nfts","/kr/references/nfts.md"]],["v-7ec7d502","/kr/references/offline-transactions.html",{title:"Sending Offline Transactions"},["/kr/references/offline-transactions","/kr/references/offline-transactions.md"]],["v-3a9304dc","/kr/references/programs.html",{title:"Writing Programs"},["/kr/references/programs","/kr/references/programs.md"]],["v-4055b6ba","/kr/references/staking.html",{title:"Staking"},["/kr/references/staking","/kr/references/staking.md"]],["v-249ea490","/kr/references/token.html",{title:"Interacting with Tokens"},["/kr/references/token","/kr/references/token.md"]],["v-3f8c76bb","/th/core-concepts/accounts.html",{title:"Accounts"},["/th/core-concepts/accounts","/th/core-concepts/accounts.md"]],["v-310cd17b","/th/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/th/core-concepts/pdas","/th/core-concepts/pdas.md"]],["v-e0f1a45c","/th/core-concepts/programs.html",{title:"Programs"},["/th/core-concepts/programs","/th/core-concepts/programs.md"]],["v-5dda72ac","/th/core-concepts/transactions.html",{title:"Transactions"},["/th/core-concepts/transactions","/th/core-concepts/transactions.md"]],["v-c5f91db4","/th/getting-started/installation.html",{title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07"},["/th/getting-started/installation","/th/getting-started/installation.md"]],["v-e2f8eae8","/th/guides/account-maps.html",{title:"Account Maps"},["/th/guides/account-maps","/th/guides/account-maps.md"]],["v-50dcad50","/th/guides/data-migration.html",{title:"Migrating Program Data Accounts"},["/th/guides/data-migration","/th/guides/data-migration.md"]],["v-387ebf94","/th/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs"},["/th/guides/debugging-solana-programs","/th/guides/debugging-solana-programs.md"]],["v-5da35ddc","/th/guides/feature-parity-testing.html",{title:"Feature Parity Testing"},["/th/guides/feature-parity-testing","/th/guides/feature-parity-testing.md"]],["v-4791bd7d","/th/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/th/guides/get-program-accounts","/th/guides/get-program-accounts.md"]],["v-adc930f2","/th/guides/retrying-transactions.html",{title:"Retrying Transactions"},["/th/guides/retrying-transactions","/th/guides/retrying-transactions.md"]],["v-109a0a9f","/th/guides/serialization.html",{title:"Serializing Data"},["/th/guides/serialization","/th/guides/serialization.md"]],["v-0074d650","/th/guides/versioned-transactions.html",{title:"Versioned Transactions"},["/th/guides/versioned-transactions","/th/guides/versioned-transactions.md"]],["v-18d9f78e","/th/integrations/",{title:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19"},["/th/integrations/index.html","/th/integrations/README.md"]],["v-14989f2c","/th/integrations/jupiter.html",{title:"Jupiter"},["/th/integrations/jupiter","/th/integrations/jupiter.md"]],["v-8cb43736","/th/integrations/mango.html",{title:"Mango Markets"},["/th/integrations/mango","/th/integrations/mango.md"]],["v-67e8ee24","/th/integrations/pyth.html",{title:"Pyth"},["/th/integrations/pyth","/th/integrations/pyth.md"]],["v-fe8d3bf4","/th/integrations/react-native.html",{title:"React Native"},["/th/integrations/react-native","/th/integrations/react-native.md"]],["v-452286ef","/th/integrations/serum.html",{title:"Serum"},["/th/integrations/serum","/th/integrations/serum.md"]],["v-58008fee","/th/integrations/strata.html",{title:"Strata"},["/th/integrations/strata","/th/integrations/strata.md"]],["v-d087d916","/th/integrations/switchboard.html",{title:"Switchboard"},["/th/integrations/switchboard","/th/integrations/switchboard.md"]],["v-0645b238","/th/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/th/integrations/web3auth","/th/integrations/web3auth.md"]],["v-f7cfc3e4","/th/references/accounts.html",{title:"Accounts"},["/th/references/accounts","/th/references/accounts.md"]],["v-48c6cc60","/th/references/basic-transactions.html",{title:"Sending Transactions"},["/th/references/basic-transactions","/th/references/basic-transactions.md"]],["v-e6b8f3ba","/th/references/keypairs-and-wallets.html",{title:"Keypairs \u0E41\u0E25\u0E30 Wallets"},["/th/references/keypairs-and-wallets","/th/references/keypairs-and-wallets.md"]],["v-5f3377a5","/th/references/local-development.html",{title:"Local Development"},["/th/references/local-development","/th/references/local-development.md"]],["v-4fe8bb21","/th/references/name-service.html",{title:"Name Service"},["/th/references/name-service","/th/references/name-service.md"]],["v-00aefbdd","/th/references/nfts.html",{title:"NFTs"},["/th/references/nfts","/th/references/nfts.md"]],["v-7ad32fd6","/th/references/offline-transactions.html",{title:"Sending Offline Transactions"},["/th/references/offline-transactions","/th/references/offline-transactions.md"]],["v-57da55b6","/th/references/programs.html",{title:"\u0E40\u0E02\u0E35\u0E22\u0E19 Programs"},["/th/references/programs","/th/references/programs.md"]],["v-2716a0c7","/th/references/staking.html",{title:"Staking"},["/th/references/staking","/th/references/staking.md"]],["v-386291f6","/th/references/token.html",{title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 Tokens"},["/th/references/token","/th/references/token.md"]],["v-46a93876","/tr/core-concepts/accounts.html",{title:"Accounts (Account\u2019lar)"},["/tr/core-concepts/accounts","/tr/core-concepts/accounts.md"]],["v-5aefd385","/tr/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs) (Programdan T\xFCretilmi\u015F Adresler)"},["/tr/core-concepts/pdas","/tr/core-concepts/pdas.md"]],["v-2ca61adc","/tr/core-concepts/programs.html",{title:"Programs (Programlar)"},["/tr/core-concepts/programs","/tr/core-concepts/programs.md"]],["v-4847cab6","/tr/core-concepts/transactions.html",{title:"Transactions (\u0130\u015Flemler)"},["/tr/core-concepts/transactions","/tr/core-concepts/transactions.md"]],["v-bd0a22a0","/tr/getting-started/installation.html",{title:"Installation"},["/tr/getting-started/installation","/tr/getting-started/installation.md"]],["v-bdfe6c7c","/tr/guides/account-maps.html",{title:"Account Maps (Hesap Haritalar\u0131)"},["/tr/guides/account-maps","/tr/guides/account-maps.md"]],["v-3fbbf30e","/tr/guides/data-migration.html",{title:"Migrating a Programs Data Accounts (Programlar\u0131n Data Account\u2019lar\u0131n\u0131 Ta\u015F\u0131ma)"},["/tr/guides/data-migration","/tr/guides/data-migration.md"]],["v-846b6e80","/tr/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs (Solana Programlar\u0131nda Hata Ay\u0131klama)"},["/tr/guides/debugging-solana-programs","/tr/guides/debugging-solana-programs.md"]],["v-2fc8dcdc","/tr/guides/feature-parity-testing.html",{title:"Feature Parity Testing (\xD6zellik Parite Testi)"},["/tr/guides/feature-parity-testing","/tr/guides/feature-parity-testing.md"]],["v-aa61329a","/tr/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/tr/guides/get-program-accounts","/tr/guides/get-program-accounts.md"]],["v-a4da35de","/tr/guides/retrying-transactions.html",{title:"Retrying Transactions (\u0130\u015Flemleri Yeniden Denemek)"},["/tr/guides/retrying-transactions","/tr/guides/retrying-transactions.md"]],["v-4dc4b229","/tr/guides/serialization.html",{title:"Serializing Data (Serile\u015Ftirme)"},["/tr/guides/serialization","/tr/guides/serialization.md"]],["v-d2d54578","/tr/references/accounts.html",{title:"Accounts (Account\u2019lar)"},["/tr/references/accounts","/tr/references/accounts.md"]],["v-5981ffd4","/tr/references/basic-transactions.html",{title:"Sending Transactions(\u0130\u015Flem G\xF6nderimi)"},["/tr/references/basic-transactions","/tr/references/basic-transactions.md"]],["v-59dda459","/tr/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/tr/references/keypairs-and-wallets","/tr/references/keypairs-and-wallets.md"]],["v-63aaf52f","/tr/references/local-development.html",{title:"Local Development (Yerel Geli\u015Ftirme)"},["/tr/references/local-development","/tr/references/local-development.md"]],["v-56a76f57","/tr/references/name-service.html",{title:"Name Service (Name Servisi)"},["/tr/references/name-service","/tr/references/name-service.md"]],["v-41e84613","/tr/references/nfts.html",{title:"Non Fungible Tokens (NFTs)"},["/tr/references/nfts","/tr/references/nfts.md"]],["v-e05ef36a","/tr/references/offline-transactions.html",{title:"Offline Transaction (\xC7evrimd\u0131\u015F\u0131 i\u015Flem)"},["/tr/references/offline-transactions","/tr/references/offline-transactions.md"]],["v-32dfd74a","/tr/references/programs.html",{title:"Writing Programs (Programlar\u0131 Yazma)"},["/tr/references/programs","/tr/references/programs.md"]],["v-50f9a2d1","/tr/references/staking.html",{title:"Staking (Stake Etme)"},["/tr/references/staking","/tr/references/staking.md"]],["v-6c8298e2","/tr/references/token.html",{title:"Interacting with Tokens (Token\u2019lar ile Etkile\u015Fim)"},["/tr/references/token","/tr/references/token.md"]],["v-6a35b27a","/vi/core-concepts/accounts.html",{title:"Accounts"},["/vi/core-concepts/accounts","/vi/core-concepts/accounts.md"]],["v-8e20768c","/vi/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/vi/core-concepts/pdas","/vi/core-concepts/pdas.md"]],["v-8b9f2cde","/vi/core-concepts/programs.html",{title:"Programs"},["/vi/core-concepts/programs","/vi/core-concepts/programs.md"]],["v-55f1b6eb","/vi/core-concepts/transactions.html",{title:"Transactions"},["/vi/core-concepts/transactions","/vi/core-concepts/transactions.md"]],["v-274abcb6","/vi/getting-started/installation.html",{title:"C\xE0i \u0111\u1EB7t"},["/vi/getting-started/installation","/vi/getting-started/installation.md"]],["v-02feff2d","/vi/guides/account-maps.html",{title:"Account Maps"},["/vi/guides/account-maps","/vi/guides/account-maps.md"]],["v-1b0279b9","/vi/guides/data-migration.html",{title:"N\xE2ng c\u1EA5p d\u1EEF li\u1EC7u cho Program Account"},["/vi/guides/data-migration","/vi/guides/data-migration.md"]],["v-5afd7935","/vi/guides/debugging-solana-programs.html",{title:"So\xE1t l\u1ED7i ch\u01B0\u01A1ng tr\xECnh tr\xEAn Solana"},["/vi/guides/debugging-solana-programs","/vi/guides/debugging-solana-programs.md"]],["v-0d9b8586","/vi/guides/feature-parity-testing.html",{title:"\u0110\u1EC1 xu\u1EA5t Ki\u1EC3m th\u1EED Parity"},["/vi/guides/feature-parity-testing","/vi/guides/feature-parity-testing.md"]],["v-5263011e","/vi/guides/get-program-accounts.html",{title:"\u0110\u1ECDc d\u1EEF li\u1EC7u Program Account"},["/vi/guides/get-program-accounts","/vi/guides/get-program-accounts.md"]],["v-0f1acff4","/vi/guides/retrying-transactions.html",{title:"Th\u1EED l\u1EA1i Transaction"},["/vi/guides/retrying-transactions","/vi/guides/retrying-transactions.md"]],["v-2b8d2a1e","/vi/guides/serialization.html",{title:"Tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u"},["/vi/guides/serialization","/vi/guides/serialization.md"]],["v-35d91d8d","/vi/integrations/",{title:"Getting Started"},["/vi/integrations/index.html","/vi/integrations/README.md"]],["v-10a6cfe9","/vi/integrations/jupiter.html",{title:"Jupiter"},["/vi/integrations/jupiter","/vi/integrations/jupiter.md"]],["v-4188d7a4","/vi/integrations/mango.html",{title:"Mango Markets"},["/vi/integrations/mango","/vi/integrations/mango.md"]],["v-5f249c62","/vi/integrations/pyth.html",{title:"Pyth"},["/vi/integrations/pyth","/vi/integrations/pyth.md"]],["v-049919e7","/vi/integrations/react-native.html",{title:"React Native"},["/vi/integrations/react-native","/vi/integrations/react-native.md"]],["v-65f50ba4","/vi/integrations/serum.html",{title:"Serum"},["/vi/integrations/serum","/vi/integrations/serum.md"]],["v-6707f6e2","/vi/integrations/strata.html",{title:"Strata"},["/vi/integrations/strata","/vi/integrations/strata.md"]],["v-85f54918","/vi/integrations/switchboard.html",{title:"Switchboard"},["/vi/integrations/switchboard","/vi/integrations/switchboard.md"]],["v-404df745","/vi/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/vi/integrations/web3auth","/vi/integrations/web3auth.md"]],["v-0ed8daa2","/vi/references/accounts.html",{title:"Accounts"},["/vi/references/accounts","/vi/references/accounts.md"]],["v-3754a87e","/vi/references/basic-transactions.html",{title:"G\u1EEDi Transaction"},["/vi/references/basic-transactions","/vi/references/basic-transactions.md"]],["v-7ff81144","/vi/references/keypairs-and-wallets.html",{title:"C\u1EB7p kho\xE1 v\xE0 V\xED"},["/vi/references/keypairs-and-wallets","/vi/references/keypairs-and-wallets.md"]],["v-a2eaafb8","/vi/references/local-development.html",{title:"L\u1EADp tr\xECnh \u1EDF Local"},["/vi/references/local-development","/vi/references/local-development.md"]],["v-7a66f742","/vi/references/name-service.html",{title:"D\u1ECBch v\u1EE5 t\xEAn mi\u1EC1n"},["/vi/references/name-service","/vi/references/name-service.md"]],["v-1b97e8fe","/vi/references/nfts.html",{title:"NFTs"},["/vi/references/nfts","/vi/references/nfts.md"]],["v-942a1994","/vi/references/offline-transactions.html",{title:"G\u1EEDi Transactions Ngo\u1EA1i tuy\u1EBFn"},["/vi/references/offline-transactions","/vi/references/offline-transactions.md"]],["v-488e49c6","/vi/references/programs.html",{title:"X\xE2y d\u1EF1ng Programs"},["/vi/references/programs","/vi/references/programs.md"]],["v-a20cd7f4","/vi/references/staking.html",{title:"Staking"},["/vi/references/staking","/vi/references/staking.md"]],["v-26036e04","/vi/references/token.html",{title:"T\u01B0\u01A1ng t\xE1c v\u1EDBi Tokens"},["/vi/references/token","/vi/references/token.md"]],["v-43987c75","/zh/core-concepts/accounts.html",{title:"\u8D26\u6237"},["/zh/core-concepts/accounts","/zh/core-concepts/accounts.md"]],["v-3c24c435","/zh/core-concepts/pdas.html",{title:"\u7A0B\u5E8F\u6D3E\u751F\u8D26\u6237 (PDA)"},["/zh/core-concepts/pdas","/zh/core-concepts/pdas.md"]],["v-d8d998e8","/zh/core-concepts/programs.html",{title:"\u7A0B\u5E8F"},["/zh/core-concepts/programs","/zh/core-concepts/programs.md"]],["v-66cde934","/zh/core-concepts/transactions.html",{title:"\u4EA4\u6613"},["/zh/core-concepts/transactions","/zh/core-concepts/transactions.md"]],["v-567ec360","/zh/getting-started/installation.html",{title:"\u5B89\u88C5"},["/zh/getting-started/installation","/zh/getting-started/installation.md"]],["v-3706649a","/404.html",{title:""},["/404"]]],S_=L_.reduce((e,[t,n,l,r])=>(e.push({name:t,path:n,component:Ba,meta:l},...r.map(i=>({path:i,redirect:n}))),e),[{name:"404",path:"/:catchAll(.*)",component:Ba}]),D_=wg,R_=()=>{const e=am({history:D_(km(Et.value.base)),routes:S_,scrollBehavior:(t,n,l)=>l||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{var l;(t.path!==n.path||n===st)&&([ut.value]=await Promise.all([Vt.resolvePageData(t.name),(l=bc[t.name])===null||l===void 0?void 0:l.__asyncLoader()]))}),e},I_=e=>{e.component("ClientOnly",sm),e.component("Content",Ni)},C_=(e,t)=>{const n=_e(()=>Vt.resolveRouteLocale(Et.value.locales,t.currentRoute.value.path)),l=_e(()=>Vt.resolveSiteLocaleData(Et.value,n.value)),r=_e(()=>Vt.resolvePageFrontmatter(ut.value)),i=_e(()=>Vt.resolvePageHeadTitle(ut.value,l.value)),a=_e(()=>Vt.resolvePageHead(i.value,r.value,l.value)),s=_e(()=>Vt.resolvePageLang(ut.value));return e.provide(Vi,n),e.provide(Oc,l),e.provide(Ec,r),e.provide(mm,i),e.provide(wc,a),e.provide(Pc,s),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>r.value},$head:{get:()=>a.value},$headTitle:{get:()=>i.value},$lang:{get:()=>s.value},$page:{get:()=>ut.value},$routeLocale:{get:()=>n.value},$site:{get:()=>Et.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>Pm}}),{pageData:ut,pageFrontmatter:r,pageHead:a,pageHeadTitle:i,pageLang:s,routeLocale:n,siteData:Et,siteLocaleData:l}},x_=()=>{const e=ji(),t=gm(),n=Tc(),l=Ee([]),r=()=>{t.value.forEach(a=>{const s=j_(a);s&&l.value.push(s)})},i=()=>{document.documentElement.lang=n.value,l.value.forEach(a=>{a.parentNode===document.head&&document.head.removeChild(a)}),l.value.splice(0,l.value.length),t.value.forEach(a=>{const s=V_(a);s!==null&&(document.head.appendChild(s),l.value.push(s))})};Ut(pm,i),tt(()=>{r(),i(),et(()=>e.path,()=>i())})},j_=([e,t,n=""])=>{const l=Object.entries(t).map(([s,c])=>be(c)?`[${s}="${c}"]`:c===!0?`[${s}]`:"").join(""),r=`head > ${e}${l}`;return Array.from(document.querySelectorAll(r)).find(s=>s.innerText===n)||null},V_=([e,t,n])=>{if(!be(e))return null;const l=document.createElement(e);return Lc(t)&&Object.entries(t).forEach(([r,i])=>{be(i)?l.setAttribute(r,i):i===!0&&l.setAttribute(r,"")}),be(n)&&l.appendChild(document.createTextNode(n)),l},F_=lg,N_=async()=>{const e=F_({name:"VuepressApp",setup(){x_();for(const n of O_)n();return()=>[ee(_c),...v_.map(n=>ee(n))]}}),t=R_();I_(e),C_(e,t);for(const n of h_)await n({app:e,router:t,siteData:Et});return e.use(t),{app:e,router:t}};N_().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Ac as A,W_ as B,J_ as C,ee as D,Pm as E,Me as F,sm as G,wt as H,Ee as I,et as J,z_ as K,q_ as L,Em as M,km as N,ll as O,be as P,yv as Q,tt as R,Yl as S,Ii as T,rl as U,Y_ as V,Lc as W,K_ as X,Ai as Y,Ev as Z,a_ as _,Vl as a,Te as b,Li as c,N_ as createVueApp,Si as d,H_ as e,ze as f,Fc as g,Bt as h,hm as i,_e as j,te as k,U_ as l,B_ as m,ji as n,nl as o,yd as p,ec as q,gh as r,bh as s,xu as t,Fi as u,Fl as v,Rd as w,ym as x,$_ as y,G_ as z}; + * @license MIT */(function(e,t){(function(n,l){e.exports=l()})(w_,function(){var n={};n.version="0.2.0";var l=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};n.configure=function(m){var _,f;for(_ in m)f=m[_],f!==void 0&&m.hasOwnProperty(_)&&(l[_]=f);return this},n.status=null,n.set=function(m){var _=n.isStarted();m=r(m,l.minimum,1),n.status=m===1?null:m;var f=n.render(!_),y=f.querySelector(l.barSelector),w=l.speed,P=l.easing;return f.offsetWidth,s(function(A){l.positionUsing===""&&(l.positionUsing=n.getPositioningCSS()),c(y,a(m,w,P)),m===1?(c(f,{transition:"none",opacity:1}),f.offsetWidth,setTimeout(function(){c(f,{transition:"all "+w+"ms linear",opacity:0}),setTimeout(function(){n.remove(),A()},w)},w)):setTimeout(A,w)}),this},n.isStarted=function(){return typeof n.status=="number"},n.start=function(){n.status||n.set(0);var m=function(){setTimeout(function(){!n.status||(n.trickle(),m())},l.trickleSpeed)};return l.trickle&&m(),this},n.done=function(m){return!m&&!n.status?this:n.inc(.3+.5*Math.random()).set(1)},n.inc=function(m){var _=n.status;return _?(typeof m!="number"&&(m=(1-_)*r(Math.random()*_,.1,.95)),_=r(_+m,0,.994),n.set(_)):n.start()},n.trickle=function(){return n.inc(Math.random()*l.trickleRate)},function(){var m=0,_=0;n.promise=function(f){return!f||f.state()==="resolved"?this:(_===0&&n.start(),m++,_++,f.always(function(){_--,_===0?(m=0,n.done()):n.set((m-_)/m)}),this)}}(),n.render=function(m){if(n.isRendered())return document.getElementById("nprogress");d(document.documentElement,"nprogress-busy");var _=document.createElement("div");_.id="nprogress",_.innerHTML=l.template;var f=_.querySelector(l.barSelector),y=m?"-100":i(n.status||0),w=document.querySelector(l.parent),P;return c(f,{transition:"all 0 linear",transform:"translate3d("+y+"%,0,0)"}),l.showSpinner||(P=_.querySelector(l.spinnerSelector),P&&b(P)),w!=document.body&&d(w,"nprogress-custom-parent"),w.appendChild(_),_},n.remove=function(){v(document.documentElement,"nprogress-busy"),v(document.querySelector(l.parent),"nprogress-custom-parent");var m=document.getElementById("nprogress");m&&b(m)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var m=document.body.style,_="WebkitTransform"in m?"Webkit":"MozTransform"in m?"Moz":"msTransform"in m?"ms":"OTransform"in m?"O":"";return _+"Perspective"in m?"translate3d":_+"Transform"in m?"translate":"margin"};function r(m,_,f){return m<_?_:m>f?f:m}function i(m){return(-1+m)*100}function a(m,_,f){var y;return l.positionUsing==="translate3d"?y={transform:"translate3d("+i(m)+"%,0,0)"}:l.positionUsing==="translate"?y={transform:"translate("+i(m)+"%,0)"}:y={"margin-left":i(m)+"%"},y.transition="all "+_+"ms "+f,y}var s=function(){var m=[];function _(){var f=m.shift();f&&f(_)}return function(f){m.push(f),m.length==1&&_()}}(),c=function(){var m=["Webkit","O","Moz","ms"],_={};function f(A){return A.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(D,F){return F.toUpperCase()})}function y(A){var D=document.body.style;if(A in D)return A;for(var F=m.length,S=A.charAt(0).toUpperCase()+A.slice(1),O;F--;)if(O=m[F]+S,O in D)return O;return A}function w(A){return A=f(A),_[A]||(_[A]=y(A))}function P(A,D,F){D=w(D),A.style[D]=F}return function(A,D){var F=arguments,S,O;if(F.length==2)for(S in D)O=D[S],O!==void 0&&D.hasOwnProperty(S)&&P(A,S,O);else P(A,F[1],F[2])}}();function u(m,_){var f=typeof m=="string"?m:g(m);return f.indexOf(" "+_+" ")>=0}function d(m,_){var f=g(m),y=f+_;u(f,_)||(m.className=y.substring(1))}function v(m,_){var f=g(m),y;!u(m,_)||(y=f.replace(" "+_+" "," "),m.className=y.substring(1,y.length-1))}function g(m){return(" "+(m.className||"")+" ").replace(/\s+/gi," ")}function b(m){m&&m.parentNode&&m.parentNode.removeChild(m)}return n})})(Al);const P_=()=>{tt(()=>{const e=ll(),t=new Set;t.add(e.currentRoute.value.path),Al.exports.configure({showSpinner:!1}),e.beforeEach(n=>{t.has(n.path)||Al.exports.start()}),e.afterEach(n=>{t.add(n.path),Al.exports.done()})})};var T_=Mi(()=>{P_()}),A_=Mi(()=>{_v(),wv()});const O_=[E_,T_,A_],L_=[["v-8daa1a0e","/",{title:"Cooking with Solana"},["/index.html","/README.md"]],["v-6bf54404","/core-concepts/accounts.html",{title:"Accounts"},["/core-concepts/accounts","/core-concepts/accounts.md"]],["v-5f0a12cc","/core-concepts/cpi.html",{title:"Cross Program Invocations (CPIs)"},["/core-concepts/cpi","/core-concepts/cpi.md"]],["v-130ca978","/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/core-concepts/pdas","/core-concepts/pdas.md"]],["v-882009ca","/core-concepts/programs.html",{title:"Programs"},["/core-concepts/programs","/core-concepts/programs.md"]],["v-63197375","/core-concepts/transactions.html",{title:"Transactions"},["/core-concepts/transactions","/core-concepts/transactions.md"]],["v-2d0a8235","/de/",{title:"Kochen mit Solana"},["/de/index.html","/de/README.md"]],["v-2d0a87a8","/es/",{title:"Libro de recetas de Solana"},["/es/index.html","/es/README.md"]],["v-2d0a8b4a","/fr/",{title:"Solana Cookbook"},["/fr/index.html","/fr/README.md"]],["v-345c0323","/gaming/auto-approve.html",{title:"How to auto approve transactions"},["/gaming/auto-approve","/gaming/auto-approve.md"]],["v-2119e6ee","/gaming/distribution.html",{title:"Distribution"},["/gaming/distribution","/gaming/distribution.md"]],["v-33bd6568","/gaming/energy-system.html",{title:"Energy System"},["/gaming/energy-system","/gaming/energy-system.md"]],["v-687f189c","/gaming/game-examples.html",{title:"Learn By Example"},["/gaming/game-examples","/gaming/game-examples.md"]],["v-00547d6c","/gaming/game-sdks.html",{title:"Solana Gaming SDKs"},["/gaming/game-sdks","/gaming/game-sdks.md"]],["v-3edbe329","/gaming/hello-world.html",{title:"Hello World example"},["/gaming/hello-world","/gaming/hello-world.md"]],["v-3d8530c8","/gaming/interact-with-tokens.html",{title:"How interact with tokens in programs"},["/gaming/interact-with-tokens","/gaming/interact-with-tokens.md"]],["v-c08c9418","/gaming/intro.html",{title:"Introduction to Gaming on Solana"},["/gaming/intro","/gaming/intro.md"]],["v-c4d04f5e","/gaming/nfts-in-games.html",{title:"Gaming with NFTs"},["/gaming/nfts-in-games","/gaming/nfts-in-games.md"]],["v-4ea6aa5e","/gaming/porting-anchor-to-unity.html",{title:"Port Anchor to Unity"},["/gaming/porting-anchor-to-unity","/gaming/porting-anchor-to-unity.md"]],["v-1e0c6857","/gaming/saving-game-state.html",{title:"Saving game state"},["/gaming/saving-game-state","/gaming/saving-game-state.md"]],["v-61d730b8","/gaming/store-sol-in-pda.html",{title:"Storing SOL in a PDA"},["/gaming/store-sol-in-pda","/gaming/store-sol-in-pda.md"]],["v-4e8563af","/getting-started/installation.html",{title:"Installation"},["/getting-started/installation","/getting-started/installation.md"]],["v-76b1e9e3","/guides/account-maps.html",{title:"Account Maps"},["/guides/account-maps","/guides/account-maps.md"]],["v-6da58eef","/guides/data-migration.html",{title:"Migrating Program Data Accounts"},["/guides/data-migration","/guides/data-migration.md"]],["v-4684263f","/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs"},["/guides/debugging-solana-programs","/guides/debugging-solana-programs.md"]],["v-4740871a","/guides/feature-parity-testing.html",{title:"Feature Parity Testing"},["/guides/feature-parity-testing","/guides/feature-parity-testing.md"]],["v-2b9a5458","/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/guides/get-program-accounts","/guides/get-program-accounts.md"]],["v-5a9d5a10","/guides/retrying-transactions.html",{title:"Retrying Transactions"},["/guides/retrying-transactions","/guides/retrying-transactions.md"]],["v-2e379628","/guides/serialization.html",{title:"Serializing Data"},["/guides/serialization","/guides/serialization.md"]],["v-7e81f36f","/guides/versioned-transactions.html",{title:"Versioned Transactions"},["/guides/versioned-transactions","/guides/versioned-transactions.md"]],["v-2d0a94db","/id/",{title:"Buku Panduan Solana"},["/id/index.html","/id/README.md"]],["v-100dc897","/integrations/",{title:"Getting Started"},["/integrations/index.html","/integrations/README.md"]],["v-13513bf3","/integrations/jupiter.html",{title:"Jupiter"},["/integrations/jupiter","/integrations/jupiter.md"]],["v-7f12be2e","/integrations/mango.html",{title:"Mango Markets"},["/integrations/mango","/integrations/mango.md"]],["v-0bf487b4","/integrations/orao-vrf.html",{title:"ORAO VRF"},["/integrations/orao-vrf","/integrations/orao-vrf.md"]],["v-6bb05bf6","/integrations/pyth.html",{title:"Pyth"},["/integrations/pyth","/integrations/pyth.md"]],["v-78a2a41d","/integrations/react-native.html",{title:"React Native"},["/integrations/react-native","/integrations/react-native.md"]],["v-0a8f60b8","/integrations/OpenBook.html",{title:"OpenBook"},["/integrations/OpenBook","/integrations/OpenBook.md"]],["v-402eef45","/integrations/strata.html",{title:"Strata"},["/integrations/strata","/integrations/strata.md"]],["v-4d26b27e","/integrations/switchboard.html",{title:"Switchboard"},["/integrations/switchboard","/integrations/switchboard.md"]],["v-da1de70a","/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/integrations/web3auth","/integrations/web3auth.md"]],["v-2d0a983f","/ja/",{title:"Cooking with Solana"},["/ja/index.html","/ja/README.md"]],["v-2d0a9e0f","/kr/",{title:"Cooking with Solana"},["/kr/index.html","/kr/README.md"]],["v-6c467d65","/references/accounts.html",{title:"Accounts"},["/references/accounts","/references/accounts.md"]],["v-70f9aa12","/references/basic-transactions.html",{title:"Sending Transactions"},["/references/basic-transactions","/references/basic-transactions.md"]],["v-4dc29afa","/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/references/keypairs-and-wallets","/references/keypairs-and-wallets.md"]],["v-10b56a2e","/references/local-development.html",{title:"Local Development"},["/references/local-development","/references/local-development.md"]],["v-9eccd210","/references/name-service.html",{title:"Name Service"},["/references/name-service","/references/name-service.md"]],["v-d2aec298","/references/nfts.html",{title:"NFTs"},["/references/nfts","/references/nfts.md"]],["v-f8950628","/references/offline-transactions.html",{title:"Sending Offline Transactions"},["/references/offline-transactions","/references/offline-transactions.md"]],["v-877d9708","/references/programs.html",{title:"Writing Programs"},["/references/programs","/references/programs.md"]],["v-26f90ae0","/references/staking.html",{title:"Staking"},["/references/staking","/references/staking.md"]],["v-0d096f0e","/references/token.html",{title:"Interacting with Tokens"},["/references/token","/references/token.md"]],["v-2d0abea2","/th/",{title:"Cooking \u0E01\u0E31\u0E1A Solana"},["/th/index.html","/th/README.md"]],["v-2d0abfd8","/tr/",{title:"Solana Cookbook"},["/tr/index.html","/tr/README.md"]],["v-2d0ac643","/vi/",{title:"Nh\u1EADp m\xF4n Solana"},["/vi/index.html","/vi/README.md"]],["v-2d0ad528","/zh/",{title:"Solana\u79D8\u7C4D"},["/zh/index.html","/zh/README.md"]],["v-8e5be170","/de/core-concepts/accounts.html",{title:"Accounts"},["/de/core-concepts/accounts","/de/core-concepts/accounts.md"]],["v-f2328ef0","/de/core-concepts/pdas.html",{title:"Programmabgeleitete Adressen (PDAs)"},["/de/core-concepts/pdas","/de/core-concepts/pdas.md"]],["v-08ccc65f","/de/core-concepts/programs.html",{title:"Programme"},["/de/core-concepts/programs","/de/core-concepts/programs.md"]],["v-1256fcb9","/de/core-concepts/transactions.html",{title:"Transaktionen"},["/de/core-concepts/transactions","/de/core-concepts/transactions.md"]],["v-2485abf3","/de/getting-started/installation.html",{title:"Installation"},["/de/getting-started/installation","/de/getting-started/installation.md"]],["v-1832f5c2","/de/guides/account-maps.html",{title:"Kontozuordnungen"},["/de/guides/account-maps","/de/guides/account-maps.md"]],["v-70204b2b","/de/guides/data-migration.html",{title:"Migrieren von Programmdatenkonten"},["/de/guides/data-migration","/de/guides/data-migration.md"]],["v-16deac83","/de/guides/debugging-solana-programs.html",{title:"Debuggen von Solana-Programmen"},["/de/guides/debugging-solana-programs","/de/guides/debugging-solana-programs.md"]],["v-732f06a2","/de/guides/feature-parity-testing.html",{title:"Funktionsparit\xE4tstest"},["/de/guides/feature-parity-testing","/de/guides/feature-parity-testing.md"]],["v-22a67510","/de/guides/get-program-accounts.html",{title:"Programmkonten Abfragen"},["/de/guides/get-program-accounts","/de/guides/get-program-accounts.md"]],["v-309da254","/de/guides/retrying-transactions.html",{title:"Transaktionen Wiederholen"},["/de/guides/retrying-transactions","/de/guides/retrying-transactions.md"]],["v-5796626c","/de/guides/serialization.html",{title:"Serialisieren von Daten"},["/de/guides/serialization","/de/guides/serialization.md"]],["v-1bac4a4a","/de/integrations/",{title:"Getting Started"},["/de/integrations/index.html","/de/integrations/README.md"]],["v-3cb00837","/de/integrations/jupiter.html",{title:"Jupiter"},["/de/integrations/jupiter","/de/integrations/jupiter.md"]],["v-0f7fcb72","/de/integrations/mango.html",{title:"Mango Markets"},["/de/integrations/mango","/de/integrations/mango.md"]],["v-0e6f43f0","/de/integrations/orao-vrf.html",{title:"ORAO VRF"},["/de/integrations/orao-vrf","/de/integrations/orao-vrf.md"]],["v-d5fbe77e","/de/integrations/pyth.html",{title:"Pyth"},["/de/integrations/pyth","/de/integrations/pyth.md"]],["v-0aace259","/de/integrations/react-native.html",{title:"React Native"},["/de/integrations/react-native","/de/integrations/react-native.md"]],["v-ca072408","/de/integrations/OpenBook.html",{title:"OpenBook"},["/de/integrations/OpenBook","/de/integrations/OpenBook.md"]],["v-8538eafe","/de/integrations/strata.html",{title:"Strata"},["/de/integrations/strata","/de/integrations/strata.md"]],["v-5404867c","/de/integrations/switchboard.html",{title:"Switchboard"},["/de/integrations/switchboard","/de/integrations/switchboard.md"]],["v-d5286e92","/de/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/de/integrations/web3auth","/de/integrations/web3auth.md"]],["v-2d09cebe","/de/references/accounts.html",{title:"Accounts"},["/de/references/accounts","/de/references/accounts.md"]],["v-9ce8299a","/de/references/basic-transactions.html",{title:"Transaktionen versenden"},["/de/references/basic-transactions","/de/references/basic-transactions.md"]],["v-4ec78794","/de/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/de/references/keypairs-and-wallets","/de/references/keypairs-and-wallets.md"]],["v-32949b1c","/de/references/local-development.html",{title:"Local Development"},["/de/references/local-development","/de/references/local-development.md"]],["v-01539798","/de/references/name-service.html",{title:"Name Service"},["/de/references/name-service","/de/references/name-service.md"]],["v-6bf79020","/de/references/nfts.html",{title:"NFTs"},["/de/references/nfts","/de/references/nfts.md"]],["v-0e8f1e28","/de/references/offline-transactions.html",{title:"Senden von Offline-Transaktionen"},["/de/references/offline-transactions","/de/references/offline-transactions.md"]],["v-3975cfb8","/de/references/programs.html",{title:"Programme schreiben"},["/de/references/programs","/de/references/programs.md"]],["v-7cf087d4","/de/references/staking.html",{title:"Staking"},["/de/references/staking","/de/references/staking.md"]],["v-4520fd52","/de/references/token.html",{title:"Interaktion mit Tokens"},["/de/references/token","/de/references/token.md"]],["v-08458c16","/es/core-concepts/accounts.html",{title:"Cuentas"},["/es/core-concepts/accounts","/es/core-concepts/accounts.md"]],["v-79377c96","/es/core-concepts/pdas.html",{title:"Direcciones derivadas de programa (PDAs)"},["/es/core-concepts/pdas","/es/core-concepts/pdas.md"]],["v-4bd7f10c","/es/core-concepts/programs.html",{title:"Programas"},["/es/core-concepts/programs","/es/core-concepts/programs.md"]],["v-314308e6","/es/core-concepts/transactions.html",{title:"Transacciones"},["/es/core-concepts/transactions","/es/core-concepts/transactions.md"]],["v-389f60e0","/es/getting-started/installation.html",{title:"Instalaci\xF3n"},["/es/getting-started/installation","/es/getting-started/installation.md"]],["v-471a2192","/es/guides/account-maps.html",{title:"C\xF3mo usar Map en cuentas"},["/es/guides/account-maps","/es/guides/account-maps.md"]],["v-7642d244","/es/guides/data-migration.html",{title:"Migrando cuentas de datos de programas"},["/es/guides/data-migration","/es/guides/data-migration.md"]],["v-6c0a22f0","/es/guides/debugging-solana-programs.html",{title:"Depurando Programas en Solana"},["/es/guides/debugging-solana-programs","/es/guides/debugging-solana-programs.md"]],["v-35856562","/es/guides/feature-parity-testing.html",{title:"Prueba de paridad de caracter\xEDsticas"},["/es/guides/feature-parity-testing","/es/guides/feature-parity-testing.md"]],["v-3d8822fa","/es/guides/get-program-accounts.html",{title:"Obtener cuentas de programa"},["/es/guides/get-program-accounts","/es/guides/get-program-accounts.md"]],["v-44b75741","/es/guides/retrying-transactions.html",{title:"Reintentando Transacciones"},["/es/guides/retrying-transactions","/es/guides/retrying-transactions.md"]],["v-6ad65459","/es/guides/serialization.html",{title:"Serializando datos"},["/es/guides/serialization","/es/guides/serialization.md"]],["v-3caeb514","/es/references/accounts.html",{title:"Cuentas"},["/es/references/accounts","/es/references/accounts.md"]],["v-20a8d3e6","/es/references/basic-transactions.html",{title:"Enviando transacciones"},["/es/references/basic-transactions","/es/references/basic-transactions.md"]],["v-17bc77ae","/es/references/keypairs-and-wallets.html",{title:"Pares de llaves y billeteras"},["/es/references/keypairs-and-wallets","/es/references/keypairs-and-wallets.md"]],["v-0a613142","/es/references/local-development.html",{title:"Desarrollo en entorno local"},["/es/references/local-development","/es/references/local-development.md"]],["v-1db05f27","/es/references/name-service.html",{title:"Servicio de nombres"},["/es/references/name-service","/es/references/name-service.md"]],["v-6f8605e3","/es/references/nfts.html",{title:"NFTs"},["/es/references/nfts","/es/references/nfts.md"]],["v-2a14a61b","/es/references/offline-transactions.html",{title:"Enviando transacciones offline"},["/es/references/offline-transactions","/es/references/offline-transactions.md"]],["v-e6ad27aa","/es/references/programs.html",{title:"Escribiendo Programas"},["/es/references/programs","/es/references/programs.md"]],["v-8d23ddfe","/es/references/staking.html",{title:"Staking"},["/es/references/staking","/es/references/staking.md"]],["v-4fd8edbf","/es/references/token.html",{title:"Interactuando con tokens"},["/es/references/token","/es/references/token.md"]],["v-598bfdda","/fr/core-concepts/accounts.html",{title:"Comptes"},["/fr/core-concepts/accounts","/fr/core-concepts/accounts.md"]],["v-410d47d3","/fr/core-concepts/pdas.html",{title:"Adresses d\xE9riv\xE9es de programmes (PDAs)"},["/fr/core-concepts/pdas","/fr/core-concepts/pdas.md"]],["v-2334b82a","/fr/core-concepts/programs.html",{title:"Programmes"},["/fr/core-concepts/programs","/fr/core-concepts/programs.md"]],["v-1ee9ddf8","/fr/core-concepts/transactions.html",{title:"Transactions"},["/fr/core-concepts/transactions","/fr/core-concepts/transactions.md"]],["v-4605d97e","/fr/getting-started/installation.html",{title:"Installation"},["/fr/getting-started/installation","/fr/getting-started/installation.md"]],["v-7e91df34","/fr/guides/account-maps.html",{title:"Maps de Comptes"},["/fr/guides/account-maps","/fr/guides/account-maps.md"]],["v-05451800","/fr/guides/data-migration.html",{title:"Migration des Comptes de Donn\xE9es de Programmes"},["/fr/guides/data-migration","/fr/guides/data-migration.md"]],["v-0bb1c6e4","/fr/guides/debugging-solana-programs.html",{title:"D\xE9bogage des Programmes Solana"},["/fr/guides/debugging-solana-programs","/fr/guides/debugging-solana-programs.md"]],["v-5623fef8","/fr/guides/feature-parity-testing.html",{title:"Test de Conformit\xE9 des Fonctionnalit\xE9s"},["/fr/guides/feature-parity-testing","/fr/guides/feature-parity-testing.md"]],["v-0af4ea25","/fr/guides/get-program-accounts.html",{title:"Obtenir les comptes d'un programme"},["/fr/guides/get-program-accounts","/fr/guides/get-program-accounts.md"]],["v-521dcfdf","/fr/guides/retrying-transactions.html",{title:"R\xE9essayer des Transactions"},["/fr/guides/retrying-transactions","/fr/guides/retrying-transactions.md"]],["v-22564af7","/fr/guides/serialization.html",{title:"S\xE9rialisation des donn\xE9es"},["/fr/guides/serialization","/fr/guides/serialization.md"]],["v-77103780","/fr/guides/versioned-transactions.html",{title:"Transactions Versionn\xE9es"},["/fr/guides/versioned-transactions","/fr/guides/versioned-transactions.md"]],["v-4571fbe6","/fr/integrations/",{title:"Pour Commencer"},["/fr/integrations/index.html","/fr/integrations/README.md"]],["v-076ff0c2","/fr/integrations/jupiter.html",{title:"Jupiter"},["/fr/integrations/jupiter","/fr/integrations/jupiter.md"]],["v-6cb34a86","/fr/integrations/mango.html",{title:"Mango Markets"},["/fr/integrations/mango","/fr/integrations/mango.md"]],["v-c8a72676","/fr/integrations/orao-vrf.html",{title:"ORAO VRF"},["/fr/integrations/orao-vrf","/fr/integrations/orao-vrf.md"]],["v-6976e796","/fr/integrations/pyth.html",{title:"Pyth"},["/fr/integrations/pyth","/fr/integrations/pyth.md"]],["v-1e60cea4","/fr/integrations/react-native.html",{title:"React Native"},["/fr/integrations/react-native","/fr/integrations/react-native.md"]],["v-5522fd47","/fr/integrations/OpenBook.html",{title:"OpenBook"},["/fr/integrations/OpenBook","/fr/integrations/OpenBook.md"]],["v-480ee496","/fr/integrations/strata.html",{title:"Strata"},["/fr/integrations/strata","/fr/integrations/strata.md"]],["v-139f3066","/fr/integrations/switchboard.html",{title:"Switchboard"},["/fr/integrations/switchboard","/fr/integrations/switchboard.md"]],["v-22a8f18c","/fr/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/fr/integrations/web3auth","/fr/integrations/web3auth.md"]],["v-742672b6","/fr/references/accounts.html",{title:"Comptes"},["/fr/references/accounts","/fr/references/accounts.md"]],["v-7fdd21f0","/fr/references/basic-transactions.html",{title:"Envoyer des Transactions"},["/fr/references/basic-transactions","/fr/references/basic-transactions.md"]],["v-5bd01ecb","/fr/references/keypairs-and-wallets.html",{title:"Paires de Cl\xE9s et Portefeuilles"},["/fr/references/keypairs-and-wallets","/fr/references/keypairs-and-wallets.md"]],["v-0835dffd","/fr/references/local-development.html",{title:"D\xE9veloppement Local"},["/fr/references/local-development","/fr/references/local-development.md"]],["v-31ec7bc9","/fr/references/name-service.html",{title:"Service de Noms"},["/fr/references/name-service","/fr/references/name-service.md"]],["v-3331e485","/fr/references/nfts.html",{title:"NFTs"},["/fr/references/nfts","/fr/references/nfts.md"]],["v-dc79fe86","/fr/references/offline-transactions.html",{title:"Envoi de transactions hors connexion"},["/fr/references/offline-transactions","/fr/references/offline-transactions.md"]],["v-77bdac66","/fr/references/programs.html",{title:"\xC9crire des Programmes"},["/fr/references/programs","/fr/references/programs.md"]],["v-3717171f","/fr/references/staking.html",{title:"Staking"},["/fr/references/staking","/fr/references/staking.md"]],["v-01a8e35d","/fr/references/token.html",{title:"Interaction avec les Jetons"},["/fr/references/token","/fr/references/token.md"]],["v-da3cf63c","/id/core-concepts/accounts.html",{title:"Akun"},["/id/core-concepts/accounts","/id/core-concepts/accounts.md"]],["v-0bf50b22","/id/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/id/core-concepts/pdas","/id/core-concepts/pdas.md"]],["v-3a47880e","/id/core-concepts/programs.html",{title:"Program"},["/id/core-concepts/programs","/id/core-concepts/programs.md"]],["v-73c3d55a","/id/core-concepts/transactions.html",{title:"Transaksi"},["/id/core-concepts/transactions","/id/core-concepts/transactions.md"]],["v-02e9060d","/id/getting-started/installation.html",{title:"Instalasi"},["/id/getting-started/installation","/id/getting-started/installation.md"]],["v-10a285c5","/id/guides/account-maps.html",{title:"Peta Akun"},["/id/guides/account-maps","/id/guides/account-maps.md"]],["v-4ddeba51","/id/guides/data-migration.html",{title:"Migrasi Akun Data Program"},["/id/guides/data-migration","/id/guides/data-migration.md"]],["v-0173699d","/id/guides/debugging-solana-programs.html",{title:"Debug Program Solana"},["/id/guides/debugging-solana-programs","/id/guides/debugging-solana-programs.md"]],["v-971f3456","/id/guides/feature-parity-testing.html",{title:"Pengujian Paritas Fitur"},["/id/guides/feature-parity-testing","/id/guides/feature-parity-testing.md"]],["v-307b2094","/id/guides/get-program-accounts.html",{title:"Mendapatkan Akun Program"},["/id/guides/get-program-accounts","/id/guides/get-program-accounts.md"]],["v-0f00fc6e","/id/guides/retrying-transactions.html",{title:"Mengulang Kembali transaksi"},["/id/guides/retrying-transactions","/id/guides/retrying-transactions.md"]],["v-5b4b12f4","/id/guides/serialization.html",{title:"Serialisasi Data"},["/id/guides/serialization","/id/guides/serialization.md"]],["v-0027c5f5","/id/integrations/",{title:"Memulai"},["/id/integrations/index.html","/id/integrations/README.md"]],["v-9117c75e","/id/integrations/jupiter.html",{title:"Jupiter"},["/id/integrations/jupiter","/id/integrations/jupiter.md"]],["v-d6e3c3e8","/id/integrations/mango.html",{title:"Mango Markets"},["/id/integrations/mango","/id/integrations/mango.md"]],["v-2df1fe67","/id/integrations/pyth.html",{title:"Pyth"},["/id/integrations/pyth","/id/integrations/pyth.md"]],["v-10996302","/id/integrations/react-native.html",{title:"React Native"},["/id/integrations/react-native","/id/integrations/react-native.md"]],["v-200ac096","/id/integrations/OpenBook.html",{title:"OpenBook"},["/id/integrations/OpenBook","/id/integrations/OpenBook.md"]],["v-4bc0e9b2","/id/integrations/strata.html",{title:"Strata"},["/id/integrations/strata","/id/integrations/strata.md"]],["v-6a0633dc","/id/integrations/switchboard.html",{title:"Switchboard"},["/id/integrations/switchboard","/id/integrations/switchboard.md"]],["v-732a37dd","/id/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/id/integrations/web3auth","/id/integrations/web3auth.md"]],["v-06371947","/id/references/accounts.html",{title:"Akun"},["/id/references/accounts","/id/references/accounts.md"]],["v-c0d8574e","/id/references/basic-transactions.html",{title:"Mengirim Transaksi"},["/id/references/basic-transactions","/id/references/basic-transactions.md"]],["v-644e73dc","/id/references/keypairs-and-wallets.html",{title:"Keypairs & Wallets"},["/id/references/keypairs-and-wallets","/id/references/keypairs-and-wallets.md"]],["v-75cde6e8","/id/references/local-development.html",{title:"Development Lokal"},["/id/references/local-development","/id/references/local-development.md"]],["v-673571da","/id/references/name-service.html",{title:"Name Service"},["/id/references/name-service","/id/references/name-service.md"]],["v-931308d4","/id/references/nfts.html",{title:"NFT"},["/id/references/nfts","/id/references/nfts.md"]],["v-cb7d5464","/id/references/offline-transactions.html",{title:"Mengirim Transaksi Offline"},["/id/references/offline-transactions","/id/references/offline-transactions.md"]],["v-5631d05e","/id/references/programs.html",{title:"Menulis Program"},["/id/references/programs","/id/references/programs.md"]],["v-01feda6e","/id/references/staking.html",{title:"Staking"},["/id/references/staking","/id/references/staking.md"]],["v-3211a328","/id/references/token.html",{title:"Interaksi dengan Token"},["/id/references/token","/id/references/token.md"]],["v-179e82fe","/ja/core-concepts/accounts.html",{title:"\u30A2\u30AB\u30A6\u30F3\u30C8"},["/ja/core-concepts/accounts","/ja/core-concepts/accounts.md"]],["v-52ffdf92","/ja/core-concepts/cpi.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u9593\u547C\u3073\u51FA\u3057(CPI)"},["/ja/core-concepts/cpi","/ja/core-concepts/cpi.md"]],["v-fd851184","/ja/core-concepts/pdas.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u6D3E\u751F\u30A2\u30C9\u30EC\u30B9(PDA)"},["/ja/core-concepts/pdas","/ja/core-concepts/pdas.md"]],["v-67993a15","/ja/core-concepts/programs.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0"},["/ja/core-concepts/programs","/ja/core-concepts/programs.md"]],["v-ec92b522","/ja/core-concepts/transactions.html",{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3"},["/ja/core-concepts/transactions","/ja/core-concepts/transactions.md"]],["v-429dff29","/ja/getting-started/installation.html",{title:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB"},["/ja/getting-started/installation","/ja/getting-started/installation.md"]],["v-44679d29","/ja/guides/account-maps.html",{title:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30DE\u30C3\u30D7"},["/ja/guides/account-maps","/ja/guides/account-maps.md"]],["v-b688ee96","/ja/guides/data-migration.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0 \u30C7\u30FC\u30BF \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u79FB\u884C"},["/ja/guides/data-migration","/ja/guides/data-migration.md"]],["v-04e3168e","/ja/guides/debugging-solana-programs.html",{title:"Solana\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30C7\u30D0\u30C3\u30B0"},["/ja/guides/debugging-solana-programs","/ja/guides/debugging-solana-programs.md"]],["v-6b5a9039","/ja/guides/feature-parity-testing.html",{title:"\u6A5F\u80FD\u30D1\u30EA\u30C6\u30A3\u30C6\u30B9\u30C8"},["/ja/guides/feature-parity-testing","/ja/guides/feature-parity-testing.md"]],["v-d18839cc","/ja/guides/get-program-accounts.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97"},["/ja/guides/get-program-accounts","/ja/guides/get-program-accounts.md"]],["v-4eb5f58a","/ja/guides/retrying-transactions.html",{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u518D\u8A66\u884C"},["/ja/guides/retrying-transactions","/ja/guides/retrying-transactions.md"]],["v-17384ba2","/ja/guides/serialization.html",{title:"\u30C7\u30FC\u30BF\u306E\u30B7\u30EA\u30A2\u30E9\u30A4\u30BC\u30FC\u30B7\u30E7\u30F3"},["/ja/guides/serialization","/ja/guides/serialization.md"]],["v-0d7cc735","/ja/guides/versioned-transactions.html",{title:"Versioned Transactions"},["/ja/guides/versioned-transactions","/ja/guides/versioned-transactions.md"]],["v-57b135de","/ja/integrations/",{title:"\u958B\u59CB"},["/ja/integrations/index.html","/ja/integrations/README.md"]],["v-075c1d26","/ja/integrations/jupiter.html",{title:"Jupiter"},["/ja/integrations/jupiter","/ja/integrations/jupiter.md"]],["v-09d68a28","/ja/integrations/mango.html",{title:"Mango Markets"},["/ja/integrations/mango","/ja/integrations/mango.md"]],["v-430a817a","/ja/integrations/orao-vrf.html",{title:"ORAO VRF"},["/ja/integrations/orao-vrf","/ja/integrations/orao-vrf.md"]],["v-83c4c26a","/ja/integrations/pyth.html",{title:"Pyth"},["/ja/integrations/pyth","/ja/integrations/pyth.md"]],["v-460b6a3a","/ja/integrations/react-native.html",{title:"React Native"},["/ja/integrations/react-native","/ja/integrations/react-native.md"]],["v-d559a69c","/ja/integrations/OpenBook.html",{title:"OpenBook"},["/ja/integrations/OpenBook","/ja/integrations/OpenBook.md"]],["v-0de4a28b","/ja/integrations/strata.html",{title:"Strata"},["/ja/integrations/strata","/ja/integrations/strata.md"]],["v-9907ca10","/ja/integrations/switchboard.html",{title:"Switchboard"},["/ja/integrations/switchboard","/ja/integrations/switchboard.md"]],["v-6bf1f37e","/ja/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/ja/integrations/web3auth","/ja/integrations/web3auth.md"]],["v-39fc30ab","/ja/references/accounts.html",{title:"\u30A2\u30AB\u30A6\u30F3\u30C8"},["/ja/references/accounts","/ja/references/accounts.md"]],["v-567dfebd","/ja/references/basic-transactions.html",{title:"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1"},["/ja/references/basic-transactions","/ja/references/basic-transactions.md"]],["v-09579540","/ja/references/keypairs-and-wallets.html",{title:"\u30AD\u30FC\u30DA\u30A2\u3068\u30A6\u30A9\u30EC\u30C3\u30C8"},["/ja/references/keypairs-and-wallets","/ja/references/keypairs-and-wallets.md"]],["v-04ce05a8","/ja/references/local-development.html",{title:"\u30ED\u30FC\u30AB\u30EB\u958B\u767A"},["/ja/references/local-development","/ja/references/local-development.md"]],["v-7a18373e","/ja/references/name-service.html",{title:"\u30CD\u30FC\u30E0\u30B5\u30FC\u30D3\u30B9"},["/ja/references/name-service","/ja/references/name-service.md"]],["v-6d16e4fa","/ja/references/nfts.html",{title:"NFT"},["/ja/references/nfts","/ja/references/nfts.md"]],["v-3f4a7732","/ja/references/offline-transactions.html",{title:"\u30AA\u30D5\u30E9\u30A4\u30F3\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u9001\u4FE1"},["/ja/references/offline-transactions","/ja/references/offline-transactions.md"]],["v-ec12307c","/ja/references/programs.html",{title:"\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F5C\u6210"},["/ja/references/programs","/ja/references/programs.md"]],["v-7747468a","/ja/references/staking.html",{title:"\u30B9\u30C6\u30FC\u30AD\u30F3\u30B0"},["/ja/references/staking","/ja/references/staking.md"]],["v-0463f188","/ja/references/token.html",{title:"\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3068\u306E\u5BFE\u8A71"},["/ja/references/token","/ja/references/token.md"]],["v-52cd49a4","/kr/core-concepts/accounts.html",{title:"Accounts"},["/kr/core-concepts/accounts","/kr/core-concepts/accounts.md"]],["v-4a4be76e","/kr/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/kr/core-concepts/pdas","/kr/core-concepts/pdas.md"]],["v-26941245","/kr/core-concepts/programs.html",{title:"Programs"},["/kr/core-concepts/programs","/kr/core-concepts/programs.md"]],["v-2229e59f","/kr/core-concepts/transactions.html",{title:"Transactions"},["/kr/core-concepts/transactions","/kr/core-concepts/transactions.md"]],["v-e97c194e","/kr/getting-started/installation.html",{title:"Installation"},["/kr/getting-started/installation","/kr/getting-started/installation.md"]],["v-c5b19a0e","/kr/guides/account-maps.html",{title:"Account Maps"},["/kr/guides/account-maps","/kr/guides/account-maps.md"]],["v-68262af6","/kr/guides/data-migration.html",{title:"Migrating Program Data Accounts"},["/kr/guides/data-migration","/kr/guides/data-migration.md"]],["v-a4865e2e","/kr/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs"},["/kr/guides/debugging-solana-programs","/kr/guides/debugging-solana-programs.md"]],["v-37352209","/kr/guides/feature-parity-testing.html",{title:"Feature Parity Testing"},["/kr/guides/feature-parity-testing","/kr/guides/feature-parity-testing.md"]],["v-0d30a8ea","/kr/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/kr/guides/get-program-accounts","/kr/guides/get-program-accounts.md"]],["v-d14c2c8c","/kr/guides/retrying-transactions.html",{title:"Retrying Transactions"},["/kr/guides/retrying-transactions","/kr/guides/retrying-transactions.md"]],["v-5329205c","/kr/guides/serialization.html",{title:"Serializing Data"},["/kr/guides/serialization","/kr/guides/serialization.md"]],["v-da88730a","/kr/references/accounts.html",{title:"Accounts"},["/kr/references/accounts","/kr/references/accounts.md"]],["v-2258908d","/kr/references/basic-transactions.html",{title:"Sending Transactions"},["/kr/references/basic-transactions","/kr/references/basic-transactions.md"]],["v-48d4f310","/kr/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/kr/references/keypairs-and-wallets","/kr/references/keypairs-and-wallets.md"]],["v-4d71f9d8","/kr/references/local-development.html",{title:"Local Development"},["/kr/references/local-development","/kr/references/local-development.md"]],["v-cb0f35e4","/kr/references/name-service.html",{title:"Name Service"},["/kr/references/name-service","/kr/references/name-service.md"]],["v-b3ac3a6c","/kr/references/nfts.html",{title:"NFTs"},["/kr/references/nfts","/kr/references/nfts.md"]],["v-7ec7d502","/kr/references/offline-transactions.html",{title:"Sending Offline Transactions"},["/kr/references/offline-transactions","/kr/references/offline-transactions.md"]],["v-3a9304dc","/kr/references/programs.html",{title:"Writing Programs"},["/kr/references/programs","/kr/references/programs.md"]],["v-4055b6ba","/kr/references/staking.html",{title:"Staking"},["/kr/references/staking","/kr/references/staking.md"]],["v-249ea490","/kr/references/token.html",{title:"Interacting with Tokens"},["/kr/references/token","/kr/references/token.md"]],["v-3f8c76bb","/th/core-concepts/accounts.html",{title:"Accounts"},["/th/core-concepts/accounts","/th/core-concepts/accounts.md"]],["v-310cd17b","/th/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/th/core-concepts/pdas","/th/core-concepts/pdas.md"]],["v-e0f1a45c","/th/core-concepts/programs.html",{title:"Programs"},["/th/core-concepts/programs","/th/core-concepts/programs.md"]],["v-5dda72ac","/th/core-concepts/transactions.html",{title:"Transactions"},["/th/core-concepts/transactions","/th/core-concepts/transactions.md"]],["v-c5f91db4","/th/getting-started/installation.html",{title:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07"},["/th/getting-started/installation","/th/getting-started/installation.md"]],["v-e2f8eae8","/th/guides/account-maps.html",{title:"Account Maps"},["/th/guides/account-maps","/th/guides/account-maps.md"]],["v-50dcad50","/th/guides/data-migration.html",{title:"Migrating Program Data Accounts"},["/th/guides/data-migration","/th/guides/data-migration.md"]],["v-387ebf94","/th/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs"},["/th/guides/debugging-solana-programs","/th/guides/debugging-solana-programs.md"]],["v-5da35ddc","/th/guides/feature-parity-testing.html",{title:"Feature Parity Testing"},["/th/guides/feature-parity-testing","/th/guides/feature-parity-testing.md"]],["v-4791bd7d","/th/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/th/guides/get-program-accounts","/th/guides/get-program-accounts.md"]],["v-adc930f2","/th/guides/retrying-transactions.html",{title:"Retrying Transactions"},["/th/guides/retrying-transactions","/th/guides/retrying-transactions.md"]],["v-109a0a9f","/th/guides/serialization.html",{title:"Serializing Data"},["/th/guides/serialization","/th/guides/serialization.md"]],["v-0074d650","/th/guides/versioned-transactions.html",{title:"Versioned Transactions"},["/th/guides/versioned-transactions","/th/guides/versioned-transactions.md"]],["v-18d9f78e","/th/integrations/",{title:"\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19"},["/th/integrations/index.html","/th/integrations/README.md"]],["v-14989f2c","/th/integrations/jupiter.html",{title:"Jupiter"},["/th/integrations/jupiter","/th/integrations/jupiter.md"]],["v-8cb43736","/th/integrations/mango.html",{title:"Mango Markets"},["/th/integrations/mango","/th/integrations/mango.md"]],["v-67e8ee24","/th/integrations/pyth.html",{title:"Pyth"},["/th/integrations/pyth","/th/integrations/pyth.md"]],["v-fe8d3bf4","/th/integrations/react-native.html",{title:"React Native"},["/th/integrations/react-native","/th/integrations/react-native.md"]],["v-452286ef","/th/integrations/OpenBook.html",{title:"OpenBook"},["/th/integrations/OpenBook","/th/integrations/OpenBook.md"]],["v-58008fee","/th/integrations/strata.html",{title:"Strata"},["/th/integrations/strata","/th/integrations/strata.md"]],["v-d087d916","/th/integrations/switchboard.html",{title:"Switchboard"},["/th/integrations/switchboard","/th/integrations/switchboard.md"]],["v-0645b238","/th/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/th/integrations/web3auth","/th/integrations/web3auth.md"]],["v-f7cfc3e4","/th/references/accounts.html",{title:"Accounts"},["/th/references/accounts","/th/references/accounts.md"]],["v-48c6cc60","/th/references/basic-transactions.html",{title:"Sending Transactions"},["/th/references/basic-transactions","/th/references/basic-transactions.md"]],["v-e6b8f3ba","/th/references/keypairs-and-wallets.html",{title:"Keypairs \u0E41\u0E25\u0E30 Wallets"},["/th/references/keypairs-and-wallets","/th/references/keypairs-and-wallets.md"]],["v-5f3377a5","/th/references/local-development.html",{title:"Local Development"},["/th/references/local-development","/th/references/local-development.md"]],["v-4fe8bb21","/th/references/name-service.html",{title:"Name Service"},["/th/references/name-service","/th/references/name-service.md"]],["v-00aefbdd","/th/references/nfts.html",{title:"NFTs"},["/th/references/nfts","/th/references/nfts.md"]],["v-7ad32fd6","/th/references/offline-transactions.html",{title:"Sending Offline Transactions"},["/th/references/offline-transactions","/th/references/offline-transactions.md"]],["v-57da55b6","/th/references/programs.html",{title:"\u0E40\u0E02\u0E35\u0E22\u0E19 Programs"},["/th/references/programs","/th/references/programs.md"]],["v-2716a0c7","/th/references/staking.html",{title:"Staking"},["/th/references/staking","/th/references/staking.md"]],["v-386291f6","/th/references/token.html",{title:"\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 Tokens"},["/th/references/token","/th/references/token.md"]],["v-46a93876","/tr/core-concepts/accounts.html",{title:"Accounts (Account\u2019lar)"},["/tr/core-concepts/accounts","/tr/core-concepts/accounts.md"]],["v-5aefd385","/tr/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs) (Programdan T\xFCretilmi\u015F Adresler)"},["/tr/core-concepts/pdas","/tr/core-concepts/pdas.md"]],["v-2ca61adc","/tr/core-concepts/programs.html",{title:"Programs (Programlar)"},["/tr/core-concepts/programs","/tr/core-concepts/programs.md"]],["v-4847cab6","/tr/core-concepts/transactions.html",{title:"Transactions (\u0130\u015Flemler)"},["/tr/core-concepts/transactions","/tr/core-concepts/transactions.md"]],["v-bd0a22a0","/tr/getting-started/installation.html",{title:"Installation"},["/tr/getting-started/installation","/tr/getting-started/installation.md"]],["v-bdfe6c7c","/tr/guides/account-maps.html",{title:"Account Maps (Hesap Haritalar\u0131)"},["/tr/guides/account-maps","/tr/guides/account-maps.md"]],["v-3fbbf30e","/tr/guides/data-migration.html",{title:"Migrating a Programs Data Accounts (Programlar\u0131n Data Account\u2019lar\u0131n\u0131 Ta\u015F\u0131ma)"},["/tr/guides/data-migration","/tr/guides/data-migration.md"]],["v-846b6e80","/tr/guides/debugging-solana-programs.html",{title:"Debugging Solana Programs (Solana Programlar\u0131nda Hata Ay\u0131klama)"},["/tr/guides/debugging-solana-programs","/tr/guides/debugging-solana-programs.md"]],["v-2fc8dcdc","/tr/guides/feature-parity-testing.html",{title:"Feature Parity Testing (\xD6zellik Parite Testi)"},["/tr/guides/feature-parity-testing","/tr/guides/feature-parity-testing.md"]],["v-aa61329a","/tr/guides/get-program-accounts.html",{title:"Get Program Accounts"},["/tr/guides/get-program-accounts","/tr/guides/get-program-accounts.md"]],["v-a4da35de","/tr/guides/retrying-transactions.html",{title:"Retrying Transactions (\u0130\u015Flemleri Yeniden Denemek)"},["/tr/guides/retrying-transactions","/tr/guides/retrying-transactions.md"]],["v-4dc4b229","/tr/guides/serialization.html",{title:"Serializing Data (Serile\u015Ftirme)"},["/tr/guides/serialization","/tr/guides/serialization.md"]],["v-d2d54578","/tr/references/accounts.html",{title:"Accounts (Account\u2019lar)"},["/tr/references/accounts","/tr/references/accounts.md"]],["v-5981ffd4","/tr/references/basic-transactions.html",{title:"Sending Transactions(\u0130\u015Flem G\xF6nderimi)"},["/tr/references/basic-transactions","/tr/references/basic-transactions.md"]],["v-59dda459","/tr/references/keypairs-and-wallets.html",{title:"Keypairs and Wallets"},["/tr/references/keypairs-and-wallets","/tr/references/keypairs-and-wallets.md"]],["v-63aaf52f","/tr/references/local-development.html",{title:"Local Development (Yerel Geli\u015Ftirme)"},["/tr/references/local-development","/tr/references/local-development.md"]],["v-56a76f57","/tr/references/name-service.html",{title:"Name Service (Name Servisi)"},["/tr/references/name-service","/tr/references/name-service.md"]],["v-41e84613","/tr/references/nfts.html",{title:"Non Fungible Tokens (NFTs)"},["/tr/references/nfts","/tr/references/nfts.md"]],["v-e05ef36a","/tr/references/offline-transactions.html",{title:"Offline Transaction (\xC7evrimd\u0131\u015F\u0131 i\u015Flem)"},["/tr/references/offline-transactions","/tr/references/offline-transactions.md"]],["v-32dfd74a","/tr/references/programs.html",{title:"Writing Programs (Programlar\u0131 Yazma)"},["/tr/references/programs","/tr/references/programs.md"]],["v-50f9a2d1","/tr/references/staking.html",{title:"Staking (Stake Etme)"},["/tr/references/staking","/tr/references/staking.md"]],["v-6c8298e2","/tr/references/token.html",{title:"Interacting with Tokens (Token\u2019lar ile Etkile\u015Fim)"},["/tr/references/token","/tr/references/token.md"]],["v-6a35b27a","/vi/core-concepts/accounts.html",{title:"Accounts"},["/vi/core-concepts/accounts","/vi/core-concepts/accounts.md"]],["v-8e20768c","/vi/core-concepts/pdas.html",{title:"Program Derived Addresses (PDAs)"},["/vi/core-concepts/pdas","/vi/core-concepts/pdas.md"]],["v-8b9f2cde","/vi/core-concepts/programs.html",{title:"Programs"},["/vi/core-concepts/programs","/vi/core-concepts/programs.md"]],["v-55f1b6eb","/vi/core-concepts/transactions.html",{title:"Transactions"},["/vi/core-concepts/transactions","/vi/core-concepts/transactions.md"]],["v-274abcb6","/vi/getting-started/installation.html",{title:"C\xE0i \u0111\u1EB7t"},["/vi/getting-started/installation","/vi/getting-started/installation.md"]],["v-02feff2d","/vi/guides/account-maps.html",{title:"Account Maps"},["/vi/guides/account-maps","/vi/guides/account-maps.md"]],["v-1b0279b9","/vi/guides/data-migration.html",{title:"N\xE2ng c\u1EA5p d\u1EEF li\u1EC7u cho Program Account"},["/vi/guides/data-migration","/vi/guides/data-migration.md"]],["v-5afd7935","/vi/guides/debugging-solana-programs.html",{title:"So\xE1t l\u1ED7i ch\u01B0\u01A1ng tr\xECnh tr\xEAn Solana"},["/vi/guides/debugging-solana-programs","/vi/guides/debugging-solana-programs.md"]],["v-0d9b8586","/vi/guides/feature-parity-testing.html",{title:"\u0110\u1EC1 xu\u1EA5t Ki\u1EC3m th\u1EED Parity"},["/vi/guides/feature-parity-testing","/vi/guides/feature-parity-testing.md"]],["v-5263011e","/vi/guides/get-program-accounts.html",{title:"\u0110\u1ECDc d\u1EEF li\u1EC7u Program Account"},["/vi/guides/get-program-accounts","/vi/guides/get-program-accounts.md"]],["v-0f1acff4","/vi/guides/retrying-transactions.html",{title:"Th\u1EED l\u1EA1i Transaction"},["/vi/guides/retrying-transactions","/vi/guides/retrying-transactions.md"]],["v-2b8d2a1e","/vi/guides/serialization.html",{title:"Tu\u1EA7n t\u1EF1 ho\xE1 d\u1EEF li\u1EC7u"},["/vi/guides/serialization","/vi/guides/serialization.md"]],["v-35d91d8d","/vi/integrations/",{title:"Getting Started"},["/vi/integrations/index.html","/vi/integrations/README.md"]],["v-10a6cfe9","/vi/integrations/jupiter.html",{title:"Jupiter"},["/vi/integrations/jupiter","/vi/integrations/jupiter.md"]],["v-4188d7a4","/vi/integrations/mango.html",{title:"Mango Markets"},["/vi/integrations/mango","/vi/integrations/mango.md"]],["v-5f249c62","/vi/integrations/pyth.html",{title:"Pyth"},["/vi/integrations/pyth","/vi/integrations/pyth.md"]],["v-049919e7","/vi/integrations/react-native.html",{title:"React Native"},["/vi/integrations/react-native","/vi/integrations/react-native.md"]],["v-65f50ba4","/vi/integrations/OpenBook.html",{title:"OpenBook"},["/vi/integrations/OpenBook","/vi/integrations/OpenBook.md"]],["v-6707f6e2","/vi/integrations/strata.html",{title:"Strata"},["/vi/integrations/strata","/vi/integrations/strata.md"]],["v-85f54918","/vi/integrations/switchboard.html",{title:"Switchboard"},["/vi/integrations/switchboard","/vi/integrations/switchboard.md"]],["v-404df745","/vi/integrations/web3auth.html",{title:"web3Auth (Torus Wallet)"},["/vi/integrations/web3auth","/vi/integrations/web3auth.md"]],["v-0ed8daa2","/vi/references/accounts.html",{title:"Accounts"},["/vi/references/accounts","/vi/references/accounts.md"]],["v-3754a87e","/vi/references/basic-transactions.html",{title:"G\u1EEDi Transaction"},["/vi/references/basic-transactions","/vi/references/basic-transactions.md"]],["v-7ff81144","/vi/references/keypairs-and-wallets.html",{title:"C\u1EB7p kho\xE1 v\xE0 V\xED"},["/vi/references/keypairs-and-wallets","/vi/references/keypairs-and-wallets.md"]],["v-a2eaafb8","/vi/references/local-development.html",{title:"L\u1EADp tr\xECnh \u1EDF Local"},["/vi/references/local-development","/vi/references/local-development.md"]],["v-7a66f742","/vi/references/name-service.html",{title:"D\u1ECBch v\u1EE5 t\xEAn mi\u1EC1n"},["/vi/references/name-service","/vi/references/name-service.md"]],["v-1b97e8fe","/vi/references/nfts.html",{title:"NFTs"},["/vi/references/nfts","/vi/references/nfts.md"]],["v-942a1994","/vi/references/offline-transactions.html",{title:"G\u1EEDi Transactions Ngo\u1EA1i tuy\u1EBFn"},["/vi/references/offline-transactions","/vi/references/offline-transactions.md"]],["v-488e49c6","/vi/references/programs.html",{title:"X\xE2y d\u1EF1ng Programs"},["/vi/references/programs","/vi/references/programs.md"]],["v-a20cd7f4","/vi/references/staking.html",{title:"Staking"},["/vi/references/staking","/vi/references/staking.md"]],["v-26036e04","/vi/references/token.html",{title:"T\u01B0\u01A1ng t\xE1c v\u1EDBi Tokens"},["/vi/references/token","/vi/references/token.md"]],["v-43987c75","/zh/core-concepts/accounts.html",{title:"\u8D26\u6237"},["/zh/core-concepts/accounts","/zh/core-concepts/accounts.md"]],["v-3c24c435","/zh/core-concepts/pdas.html",{title:"\u7A0B\u5E8F\u6D3E\u751F\u8D26\u6237 (PDA)"},["/zh/core-concepts/pdas","/zh/core-concepts/pdas.md"]],["v-d8d998e8","/zh/core-concepts/programs.html",{title:"\u7A0B\u5E8F"},["/zh/core-concepts/programs","/zh/core-concepts/programs.md"]],["v-66cde934","/zh/core-concepts/transactions.html",{title:"\u4EA4\u6613"},["/zh/core-concepts/transactions","/zh/core-concepts/transactions.md"]],["v-567ec360","/zh/getting-started/installation.html",{title:"\u5B89\u88C5"},["/zh/getting-started/installation","/zh/getting-started/installation.md"]],["v-3706649a","/404.html",{title:""},["/404"]]],S_=L_.reduce((e,[t,n,l,r])=>(e.push({name:t,path:n,component:Ba,meta:l},...r.map(i=>({path:i,redirect:n}))),e),[{name:"404",path:"/:catchAll(.*)",component:Ba}]),D_=wg,R_=()=>{const e=am({history:D_(km(Et.value.base)),routes:S_,scrollBehavior:(t,n,l)=>l||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{var l;(t.path!==n.path||n===st)&&([ut.value]=await Promise.all([Vt.resolvePageData(t.name),(l=bc[t.name])===null||l===void 0?void 0:l.__asyncLoader()]))}),e},I_=e=>{e.component("ClientOnly",sm),e.component("Content",Ni)},C_=(e,t)=>{const n=_e(()=>Vt.resolveRouteLocale(Et.value.locales,t.currentRoute.value.path)),l=_e(()=>Vt.resolveSiteLocaleData(Et.value,n.value)),r=_e(()=>Vt.resolvePageFrontmatter(ut.value)),i=_e(()=>Vt.resolvePageHeadTitle(ut.value,l.value)),a=_e(()=>Vt.resolvePageHead(i.value,r.value,l.value)),s=_e(()=>Vt.resolvePageLang(ut.value));return e.provide(Vi,n),e.provide(Oc,l),e.provide(Ec,r),e.provide(mm,i),e.provide(wc,a),e.provide(Pc,s),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>r.value},$head:{get:()=>a.value},$headTitle:{get:()=>i.value},$lang:{get:()=>s.value},$page:{get:()=>ut.value},$routeLocale:{get:()=>n.value},$site:{get:()=>Et.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>Pm}}),{pageData:ut,pageFrontmatter:r,pageHead:a,pageHeadTitle:i,pageLang:s,routeLocale:n,siteData:Et,siteLocaleData:l}},x_=()=>{const e=ji(),t=gm(),n=Tc(),l=Ee([]),r=()=>{t.value.forEach(a=>{const s=j_(a);s&&l.value.push(s)})},i=()=>{document.documentElement.lang=n.value,l.value.forEach(a=>{a.parentNode===document.head&&document.head.removeChild(a)}),l.value.splice(0,l.value.length),t.value.forEach(a=>{const s=V_(a);s!==null&&(document.head.appendChild(s),l.value.push(s))})};Ut(pm,i),tt(()=>{r(),i(),et(()=>e.path,()=>i())})},j_=([e,t,n=""])=>{const l=Object.entries(t).map(([s,c])=>be(c)?`[${s}="${c}"]`:c===!0?`[${s}]`:"").join(""),r=`head > ${e}${l}`;return Array.from(document.querySelectorAll(r)).find(s=>s.innerText===n)||null},V_=([e,t,n])=>{if(!be(e))return null;const l=document.createElement(e);return Lc(t)&&Object.entries(t).forEach(([r,i])=>{be(i)?l.setAttribute(r,i):i===!0&&l.setAttribute(r,"")}),be(n)&&l.appendChild(document.createTextNode(n)),l},F_=lg,N_=async()=>{const e=F_({name:"VuepressApp",setup(){x_();for(const n of O_)n();return()=>[ee(_c),...v_.map(n=>ee(n))]}}),t=R_();I_(e),C_(e,t);for(const n of h_)await n({app:e,router:t,siteData:Et});return e.use(t),{app:e,router:t}};N_().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Ac as A,W_ as B,J_ as C,ee as D,Pm as E,Me as F,sm as G,wt as H,Ee as I,et as J,z_ as K,q_ as L,Em as M,km as N,ll as O,be as P,yv as Q,tt as R,Yl as S,Ii as T,rl as U,Y_ as V,Lc as W,K_ as X,Ai as Y,Ev as Z,a_ as _,Vl as a,Te as b,Li as c,N_ as createVueApp,Si as d,H_ as e,ze as f,Fc as g,Bt as h,hm as i,_e as j,te as k,U_ as l,B_ as m,ji as n,nl as o,yd as p,ec as q,gh as r,bh as s,xu as t,Fi as u,Fl as v,Rd as w,ym as x,$_ as y,G_ as z}; diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.159d2d39.js b/docs/.vuepress/dist/assets/basic-transactions.html.159d2d39.js index c950e1305..b6999b519 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.159d2d39.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.159d2d39.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"comment-changer-le-budget-de-calcul-les-frais-la-priorisation-d-une-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-changer-le-budget-de-calcul-les-frais-la-priorisation-d-une-transaction","aria-hidden":"true"},"#"),s(" Comment changer le budget de calcul, les frais, & la priorisation d'une transaction")],-1),gn=n("p",null,"La priorisation d'une transaction (TX) est obtenue en payant des Frais de Priorisation en plus des Frais de Base. Par d\xE9faut, le budget de calcul est le produit de 200 000 unit\xE9s de calcul (UC) * le nombre d'instructions, avec un maximum de 1,4 million d'UC. Les Frais de Base sont de 5 000 Lamports. Un microLamport est 0.000001 Lamports.",-1),wn=n("p",null,"Le budget total de calcul ou les Frais de Priorisation pour une seule TX peuvent \xEAtre modifi\xE9s en ajoutant des instructions du programme ComputeBudgetProgram.",-1),_n=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s(" ajoutera des Frais de Priorisation en plus des Frais de Base (5 000 Lamports). La valeur fournie en microLamports sera multipli\xE9e par le budget de l'UC pour d\xE9terminer les Frais de Priorisation en Lamports. Par exemple, si votre budget de l'UC est de 1M d'UC, et que vous ajoutez 1 microLamport/UC, les Frais de Priorisation seront de 1 Lamport (1M * 0,000001). Les frais totaux seront alors de 5001 Lamports.")],-1),hn=n("p",null,[s("Utilisez "),n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" pour d\xE9finir le nouveau budget de calcul. La valeur fournie remplacera la valeur par d\xE9faut. Les transactions doivent demander la quantit\xE9 minimale d'UC n\xE9cessaire \xE0 l'ex\xE9cution afin de maximiser le d\xE9bit ou de minimiser les frais.")],-1),Tn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"comment-changer-le-budget-de-calcul-les-frais-la-priorisation-d-une-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-changer-le-budget-de-calcul-les-frais-la-priorisation-d-une-transaction","aria-hidden":"true"},"#"),s(" Comment changer le budget de calcul, les frais, & la priorisation d'une transaction")],-1),gn=n("p",null,"La priorisation d'une transaction (TX) est obtenue en payant des Frais de Priorisation en plus des Frais de Base. Par d\xE9faut, le budget de calcul est le produit de 200 000 unit\xE9s de calcul (UC) * le nombre d'instructions, avec un maximum de 1,4 million d'UC. Les Frais de Base sont de 5 000 Lamports. Un microLamport est 0.000001 Lamports.",-1),wn=n("p",null,"Le budget total de calcul ou les Frais de Priorisation pour une seule TX peuvent \xEAtre modifi\xE9s en ajoutant des instructions du programme ComputeBudgetProgram.",-1),_n=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s(" ajoutera des Frais de Priorisation en plus des Frais de Base (5 000 Lamports). La valeur fournie en microLamports sera multipli\xE9e par le budget de l'UC pour d\xE9terminer les Frais de Priorisation en Lamports. Par exemple, si votre budget de l'UC est de 1M d'UC, et que vous ajoutez 1 microLamport/UC, les Frais de Priorisation seront de 1 Lamport (1M * 0,000001). Les frais totaux seront alors de 5001 Lamports.")],-1),hn=n("p",null,[s("Utilisez "),n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" pour d\xE9finir le nouveau budget de calcul. La valeur fournie remplacera la valeur par d\xE9faut. Les transactions doivent demander la quantit\xE9 minimale d'UC n\xE9cessaire \xE0 l'ex\xE9cution afin de maximiser le d\xE9bit ou de minimiser les frais.")],-1),Tn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.26b4a82e.js b/docs/.vuepress/dist/assets/basic-transactions.html.26b4a82e.js index 264e7d006..e77065575 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.26b4a82e.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.26b4a82e.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"como-cambiar-el-presupuesto-de-computo-para-una-transaccion",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#como-cambiar-el-presupuesto-de-computo-para-una-transaccion","aria-hidden":"true"},"#"),s(" C\xF3mo cambiar el presupuesto de c\xF3mputo para una transacci\xF3n")],-1),gn=n("p",null,"El presupuesto de c\xF3mputo para una sola transacci\xF3n se puede cambiar agregando una instrucci\xF3n que llame al Compute Budget Program. De forma predeterminada, el presupuesto de c\xF3mputo se establece como la multiplicaci\xF3n de 200k unidades de c\xF3mputo por el n\xFAmero de instrucciones, con un m\xE1ximo de 1,4 millones de unidades de c\xF3mputo. Cuanto menos c\xF3mputo utilice, menores ser\xE1n los costos de transacci\xF3n.",-1),wn=n("p",null,[n("strong",null,"Nota"),s(": Para cambiar el presupuesto de c\xF3mputo de una transacci\xF3n, debes incluir esa transacci\xF3n c\xF3mo una de las primeras tres en la transacci\xF3n.")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"como-cambiar-el-presupuesto-de-computo-para-una-transaccion",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#como-cambiar-el-presupuesto-de-computo-para-una-transaccion","aria-hidden":"true"},"#"),s(" C\xF3mo cambiar el presupuesto de c\xF3mputo para una transacci\xF3n")],-1),gn=n("p",null,"El presupuesto de c\xF3mputo para una sola transacci\xF3n se puede cambiar agregando una instrucci\xF3n que llame al Compute Budget Program. De forma predeterminada, el presupuesto de c\xF3mputo se establece como la multiplicaci\xF3n de 200k unidades de c\xF3mputo por el n\xFAmero de instrucciones, con un m\xE1ximo de 1,4 millones de unidades de c\xF3mputo. Cuanto menos c\xF3mputo utilice, menores ser\xE1n los costos de transacci\xF3n.",-1),wn=n("p",null,[n("strong",null,"Nota"),s(": Para cambiar el presupuesto de c\xF3mputo de una transacci\xF3n, debes incluir esa transacci\xF3n c\xF3mo una de las primeras tres en la transacci\xF3n.")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.4a2578a5.js b/docs/.vuepress/dist/assets/basic-transactions.html.4a2578a5.js index 7b48b1bf5..837093346 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.4a2578a5.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.4a2578a5.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),gn=n("h2",{id:"bagaimana-cara-merubah-perhitungan-budget-untuk-sebuah-transaksi",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#bagaimana-cara-merubah-perhitungan-budget-untuk-sebuah-transaksi","aria-hidden":"true"},"#"),s(" Bagaimana cara merubah perhitungan budget untuk sebuah transaksi")],-1),fn=n("p",null,"Perhitungan budget untuk sebuah single transaksi dapat dirubah dengan menambahkan sebuah panggilan instruksi ke Compute Budget Program. Secara default, perhitungan budget diset dari 200k compute units * jumlah instruksi-instruksi, dengan maksimal1.4M compute units. Semakin sedikit perhitungan yang digunakan, semakin kecil biaya transaksi.",-1),wn=n("p",null,[n("strong",null,"Note"),s(": Untuk merubah perhitungan budget sebuah transaksi, anda harus membuat instruksi pertama dari tiga instruksi pertama sebuah transaksi yang membuat budget.")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),gn=n("h2",{id:"bagaimana-cara-merubah-perhitungan-budget-untuk-sebuah-transaksi",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#bagaimana-cara-merubah-perhitungan-budget-untuk-sebuah-transaksi","aria-hidden":"true"},"#"),s(" Bagaimana cara merubah perhitungan budget untuk sebuah transaksi")],-1),fn=n("p",null,"Perhitungan budget untuk sebuah single transaksi dapat dirubah dengan menambahkan sebuah panggilan instruksi ke Compute Budget Program. Secara default, perhitungan budget diset dari 200k compute units * jumlah instruksi-instruksi, dengan maksimal1.4M compute units. Semakin sedikit perhitungan yang digunakan, semakin kecil biaya transaksi.",-1),wn=n("p",null,[n("strong",null,"Note"),s(": Untuk merubah perhitungan budget sebuah transaksi, anda harus membuat instruksi pertama dari tiga instruksi pertama sebuah transaksi yang membuat budget.")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.9343afcb.js b/docs/.vuepress/dist/assets/basic-transactions.html.9343afcb.js index 8a3fc53ba..d73eae440 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.9343afcb.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.9343afcb.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"lam-the-nao-\u0111e-thay-\u0111oi-ngan-sach-tinh-toan-cho-mot-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#lam-the-nao-\u0111e-thay-\u0111oi-ngan-sach-tinh-toan-cho-mot-transaction","aria-hidden":"true"},"#"),s(" L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thay \u0111\u1ED5i ng\xE2n s\xE1ch t\xEDnh to\xE1n cho m\u1ED9t transaction")],-1),wn=n("p",null,"Ng\xE2n s\xE1ch t\xEDnh to\xE1n cho m\u1ED9t transaction c\xF3 th\u1EC3 thay \u0111\u1ED5i \u0111\u01B0\u1EE3c b\u1EB1ng c\xE1ch th\xEAm v\xE0o m\u1ED9t ch\u1EC9 th\u1ECB g\u1ECDi \u0111\u1EBFn Compute Budget Program. M\u1EB7c \u0111\u1ECBnh, ng\xE2n s\xE1ch t\xEDnh to\xE1n \u0111\u01B0\u1EE3c thi\u1EBFt l\u1EADp \u1EDF m\u1EE9c 200k \u0111\u01A1n v\u1ECB t\xEDnh to\xE1n nh\xE2n v\u1EDBi s\u1ED1 l\u01B0\u1EE3ng ch\u1EC9 th\u1ECB v\xE0 kh\xF4ng v\u01B0\u1EE3t qu\xE1 1.4M \u0111\u01A1n v\u1ECB t\xEDnh to\xE1n. C\xE0ng \xEDt b\u01B0\u1EDBc t\xEDnh to\xE1n, chi ph\xED b\u1ECF ra s\u1EBD c\xE0ng \xEDt.",-1),hn=n("p",null,[n("strong",null,"L\u01B0u \xFD"),s(": \u0110\u1EC3 thay \u0111\u1ED5i ng\xE2n s\xE1ch t\xEDnh to\xE1n, b\u1EA1n ph\u1EA3i ch\u1EAFc r\u1EB1ng ch\u1EC9 th\u1ECB \u0111\u1EA7u ti\xEAn trong 3 ch\u1EC9 th\u1ECB c\u1EE7a transaction l\xE0 thi\u1EBFt l\u1EADp ng\xE2n s\xE1ch.")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"lam-the-nao-\u0111e-thay-\u0111oi-ngan-sach-tinh-toan-cho-mot-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#lam-the-nao-\u0111e-thay-\u0111oi-ngan-sach-tinh-toan-cho-mot-transaction","aria-hidden":"true"},"#"),s(" L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 thay \u0111\u1ED5i ng\xE2n s\xE1ch t\xEDnh to\xE1n cho m\u1ED9t transaction")],-1),wn=n("p",null,"Ng\xE2n s\xE1ch t\xEDnh to\xE1n cho m\u1ED9t transaction c\xF3 th\u1EC3 thay \u0111\u1ED5i \u0111\u01B0\u1EE3c b\u1EB1ng c\xE1ch th\xEAm v\xE0o m\u1ED9t ch\u1EC9 th\u1ECB g\u1ECDi \u0111\u1EBFn Compute Budget Program. M\u1EB7c \u0111\u1ECBnh, ng\xE2n s\xE1ch t\xEDnh to\xE1n \u0111\u01B0\u1EE3c thi\u1EBFt l\u1EADp \u1EDF m\u1EE9c 200k \u0111\u01A1n v\u1ECB t\xEDnh to\xE1n nh\xE2n v\u1EDBi s\u1ED1 l\u01B0\u1EE3ng ch\u1EC9 th\u1ECB v\xE0 kh\xF4ng v\u01B0\u1EE3t qu\xE1 1.4M \u0111\u01A1n v\u1ECB t\xEDnh to\xE1n. C\xE0ng \xEDt b\u01B0\u1EDBc t\xEDnh to\xE1n, chi ph\xED b\u1ECF ra s\u1EBD c\xE0ng \xEDt.",-1),hn=n("p",null,[n("strong",null,"L\u01B0u \xFD"),s(": \u0110\u1EC3 thay \u0111\u1ED5i ng\xE2n s\xE1ch t\xEDnh to\xE1n, b\u1EA1n ph\u1EA3i ch\u1EAFc r\u1EB1ng ch\u1EC9 th\u1ECB \u0111\u1EA7u ti\xEAn trong 3 ch\u1EC9 th\u1ECB c\u1EE7a transaction l\xE0 thi\u1EBFt l\u1EADp ng\xE2n s\xE1ch.")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.9c6d8c48.js b/docs/.vuepress/dist/assets/basic-transactions.html.9c6d8c48.js index eaa9bb0cd..74234f178 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.9c6d8c48.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.9c6d8c48.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),gn=n("h2",{id:"how-to-change-compute-budget-fee-priority-for-a-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-change-compute-budget-fee-priority-for-a-transaction","aria-hidden":"true"},"#"),s(" How to change compute budget, fee, & priority for a transaction")],-1),wn=n("p",null,"Transaction (TX) \uC6B0\uC120\uC21C\uC704\uB294 \uAE30\uBCF8\uC694\uAE08\uC5D0 \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC744 \uCD94\uAC00\uD574 \uC9C0\uBD88\uD568\uC73C\uB85C\uC368 \uC5BB\uC5B4\uC9D1\uB2C8\uB2E4. \uAE30\uBCF8\uC801\uC73C\uB85C Compute budget\uC740 200,000 Compute Units (CU) \uC785\uB2C8\uB2E4. * \uCD5C\uB300 1.4M CU\uB97C \uAC00\uC9C4 Instruction\uC758 \uC218. \uAE30\uBCF8\uC694\uAE08\uC740 5,000 Lamports \uC785\uB2C8\uB2E4. microLamport\uB294 0.000001 Lamports\uC785\uB2C8\uB2E4.",-1),_n=n("p",null,"\uC804\uCCB4 Compute budget \uB610\uB294 \uB2E8\uC77C TX\uB97C \uC704\uD55C \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC740 ComputeBudgetProgram\uC73C\uB85C\uBD80\uD130 \uCD94\uAC00\uB41C Instruction\uB4E4\uC5D0 \uC758\uD574 \uBC14\uB014 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",-1),hn=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s("\uC740 \uAE30\uBCF8\uC694\uAE08 (5,000 Lamports) \uC704\uC5D0 \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC744 \uCD94\uAC00\uD560 \uAC83\uC785\uB2C8\uB2E4. microLamports\uC5D0\uC11C \uC81C\uACF5\uB41C \uAC12\uC740 Lamports\uB85C \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC744 \uACB0\uC815\uC9D3\uAE30 \uC704\uD574 CU budget\uC5D0 \uC758\uD574 \uACF1\uD574\uC9C8 \uAC83\uC785\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uB9CC\uC57D \uB2F9\uC2E0\uC758 CU budget\uC774 1M CU\uC774\uACE0 1 microLamport/CU\uB97C \uB354\uD55C\uB2E4\uBA74, \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC740 1 Lamport (1M * 0.000001) \uC774 \uB420 \uAC83\uC785\uB2C8\uB2E4. \uADF8\uB7EC\uBA74 \uC804\uCCB4 \uC694\uAE08\uC740 5001 Lamports\uAC00 \uB420 \uAC83\uC785\uB2C8\uB2E4.")],-1),Tn=n("p",null,[s("\uC0C8\uB85C\uC6B4 compute budget\uC744 \uC124\uC815\uD558\uAE30 \uC704\uD574\uC11C\uB294 "),n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" \uC0AC\uC6A9\uD558\uC138\uC694. \uC81C\uACF5\uB41C \uAC12\uC740 \uAE30\uBCF8 \uAC12\uC744 \uB300\uCCB4\uD560 \uAC83\uC785\uB2C8\uB2E4. Transaction\uB4E4\uC740 \uCC98\uB9AC\uB7C9\uC744 \uADF9\uB300\uD654\uD558\uACE0 \uC694\uAE08\uC744 \uCD5C\uC18C\uD654\uD558\uAE30 \uC704\uD574 \uC2E4\uD589\uC744 \uC704\uD574 \uC694\uAD6C\uB418\uB294 \uCD5C\uC18C \uC591\uC758 CU\uB97C \uC694\uCCAD\uD574\uC57C \uD569\uB2C8\uB2E4.")],-1),Sn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),gn=n("h2",{id:"how-to-change-compute-budget-fee-priority-for-a-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-change-compute-budget-fee-priority-for-a-transaction","aria-hidden":"true"},"#"),s(" How to change compute budget, fee, & priority for a transaction")],-1),wn=n("p",null,"Transaction (TX) \uC6B0\uC120\uC21C\uC704\uB294 \uAE30\uBCF8\uC694\uAE08\uC5D0 \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC744 \uCD94\uAC00\uD574 \uC9C0\uBD88\uD568\uC73C\uB85C\uC368 \uC5BB\uC5B4\uC9D1\uB2C8\uB2E4. \uAE30\uBCF8\uC801\uC73C\uB85C Compute budget\uC740 200,000 Compute Units (CU) \uC785\uB2C8\uB2E4. * \uCD5C\uB300 1.4M CU\uB97C \uAC00\uC9C4 Instruction\uC758 \uC218. \uAE30\uBCF8\uC694\uAE08\uC740 5,000 Lamports \uC785\uB2C8\uB2E4. microLamport\uB294 0.000001 Lamports\uC785\uB2C8\uB2E4.",-1),_n=n("p",null,"\uC804\uCCB4 Compute budget \uB610\uB294 \uB2E8\uC77C TX\uB97C \uC704\uD55C \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC740 ComputeBudgetProgram\uC73C\uB85C\uBD80\uD130 \uCD94\uAC00\uB41C Instruction\uB4E4\uC5D0 \uC758\uD574 \uBC14\uB014 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",-1),hn=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s("\uC740 \uAE30\uBCF8\uC694\uAE08 (5,000 Lamports) \uC704\uC5D0 \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC744 \uCD94\uAC00\uD560 \uAC83\uC785\uB2C8\uB2E4. microLamports\uC5D0\uC11C \uC81C\uACF5\uB41C \uAC12\uC740 Lamports\uB85C \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC744 \uACB0\uC815\uC9D3\uAE30 \uC704\uD574 CU budget\uC5D0 \uC758\uD574 \uACF1\uD574\uC9C8 \uAC83\uC785\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uB9CC\uC57D \uB2F9\uC2E0\uC758 CU budget\uC774 1M CU\uC774\uACE0 1 microLamport/CU\uB97C \uB354\uD55C\uB2E4\uBA74, \uC6B0\uC120\uC21C\uC704 \uC694\uAE08\uC740 1 Lamport (1M * 0.000001) \uC774 \uB420 \uAC83\uC785\uB2C8\uB2E4. \uADF8\uB7EC\uBA74 \uC804\uCCB4 \uC694\uAE08\uC740 5001 Lamports\uAC00 \uB420 \uAC83\uC785\uB2C8\uB2E4.")],-1),Tn=n("p",null,[s("\uC0C8\uB85C\uC6B4 compute budget\uC744 \uC124\uC815\uD558\uAE30 \uC704\uD574\uC11C\uB294 "),n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" \uC0AC\uC6A9\uD558\uC138\uC694. \uC81C\uACF5\uB41C \uAC12\uC740 \uAE30\uBCF8 \uAC12\uC744 \uB300\uCCB4\uD560 \uAC83\uC785\uB2C8\uB2E4. Transaction\uB4E4\uC740 \uCC98\uB9AC\uB7C9\uC744 \uADF9\uB300\uD654\uD558\uACE0 \uC694\uAE08\uC744 \uCD5C\uC18C\uD654\uD558\uAE30 \uC704\uD574 \uC2E4\uD589\uC744 \uC704\uD574 \uC694\uAD6C\uB418\uB294 \uCD5C\uC18C \uC591\uC758 CU\uB97C \uC694\uCCAD\uD574\uC57C \uD569\uB2C8\uB2E4.")],-1),Sn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.a3ec3168.js b/docs/.vuepress/dist/assets/basic-transactions.html.a3ec3168.js index 686a3c047..01ae3417e 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.a3ec3168.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.a3ec3168.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"so-andern-sie-das-computing-budget-die-gebuhr-prioritat-fur-eine-transaktion",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-andern-sie-das-computing-budget-die-gebuhr-prioritat-fur-eine-transaktion","aria-hidden":"true"},"#"),s(" So \xE4ndern Sie das Computing-Budget, die Geb\xFChr & Priorit\xE4t f\xFCr eine Transaktion")],-1),wn=n("p",null,"Die Transaktionspriorit\xE4t (TX) wird zus\xE4tzlich zur Grundgeb\xFChr durch die Zahlung einer Priorisierungsgeb\xFChr erreicht. Standardm\xE4\xDFig ist das Rechenbudget das Produkt von 200.000 Compute Units (CU) * Anzahl der Anweisungen, mit einem Maximum von 1,4 Mio. CU. Die Grundgeb\xFChr betr\xE4gt 5.000 Lamports. Ein microLamport ist 0,000001 Lamport.",-1),_n=n("p",null,"Das Gesamtrechenbudget oder die Priorisierungsgeb\xFChr f\xFCr eine einzelne TX kann umge\xE4ndert werden. Hinzuf\xFCgen von Anweisungen aus dem ComputeBudgetProgram.",-1),hn=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: Zahl })"),s(" wird eine Priorisierungsgeb\xFChr \xFCber der Grundgeb\xFChr (5.000 Lamports) hinzugef\xFCgt. Um das zu bestimmen Der Wert der Priorisierungsgeb\xFChr in Lamports die in microLamports bereitgestellt werden, werden mit dem CU-Budget multipliziert. Wenn Ihr CU-Budget beispielsweise 1 Mio. CU betr\xE4gt, und Sie F\xFCgen Sie 1 microLamport/CU hinzu, betr\xE4gt die Priorisierungsgeb\xFChr 1 Lamport (1M * 0,000001). Die Gesamtgeb\xFChr betr\xE4gt dann 5001 Lamports.")],-1),Tn=n("p",null,"Verwenden Sie zum Festlegen \u201EComputeBudgetProgram.setComputeUnitLimit({units: number})\u201C. das neue Compute-Budget. Der angegebene Wert ersetzt den Standardwert. Transaktionen sollten die erforderliche Mindestmenge an CU anfordern Ausf\xFChrung, um den Durchsatz zu maximieren oder Geb\xFChren zu minimieren.",-1),Sn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"so-andern-sie-das-computing-budget-die-gebuhr-prioritat-fur-eine-transaktion",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-andern-sie-das-computing-budget-die-gebuhr-prioritat-fur-eine-transaktion","aria-hidden":"true"},"#"),s(" So \xE4ndern Sie das Computing-Budget, die Geb\xFChr & Priorit\xE4t f\xFCr eine Transaktion")],-1),wn=n("p",null,"Die Transaktionspriorit\xE4t (TX) wird zus\xE4tzlich zur Grundgeb\xFChr durch die Zahlung einer Priorisierungsgeb\xFChr erreicht. Standardm\xE4\xDFig ist das Rechenbudget das Produkt von 200.000 Compute Units (CU) * Anzahl der Anweisungen, mit einem Maximum von 1,4 Mio. CU. Die Grundgeb\xFChr betr\xE4gt 5.000 Lamports. Ein microLamport ist 0,000001 Lamport.",-1),_n=n("p",null,"Das Gesamtrechenbudget oder die Priorisierungsgeb\xFChr f\xFCr eine einzelne TX kann umge\xE4ndert werden. Hinzuf\xFCgen von Anweisungen aus dem ComputeBudgetProgram.",-1),hn=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: Zahl })"),s(" wird eine Priorisierungsgeb\xFChr \xFCber der Grundgeb\xFChr (5.000 Lamports) hinzugef\xFCgt. Um das zu bestimmen Der Wert der Priorisierungsgeb\xFChr in Lamports die in microLamports bereitgestellt werden, werden mit dem CU-Budget multipliziert. Wenn Ihr CU-Budget beispielsweise 1 Mio. CU betr\xE4gt, und Sie F\xFCgen Sie 1 microLamport/CU hinzu, betr\xE4gt die Priorisierungsgeb\xFChr 1 Lamport (1M * 0,000001). Die Gesamtgeb\xFChr betr\xE4gt dann 5001 Lamports.")],-1),Tn=n("p",null,"Verwenden Sie zum Festlegen \u201EComputeBudgetProgram.setComputeUnitLimit({units: number})\u201C. das neue Compute-Budget. Der angegebene Wert ersetzt den Standardwert. Transaktionen sollten die erforderliche Mindestmenge an CU anfordern Ausf\xFChrung, um den Durchsatz zu maximieren oder Geb\xFChren zu minimieren.",-1),Sn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.a9786217.js b/docs/.vuepress/dist/assets/basic-transactions.html.a9786217.js index 3e353f849..8e55a653a 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.a9786217.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.a9786217.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"how-to-change-compute-budget-fee-priority-for-a-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-change-compute-budget-fee-priority-for-a-transaction","aria-hidden":"true"},"#"),s(" How to change compute budget, fee, & priority for a transaction")],-1),gn=n("p",null,"Transaction (TX) priority is achieved by paying a Prioritization Fee in addition to the Base Fee. By default the compute budget is the product of 200,000 Compute Units (CU) * number of instructions, with a max of 1.4M CU. The Base Fee is 5,000 Lamports. A microLamport is 0.000001 Lamports.",-1),wn=n("p",null,"The total compute budget or Prioritization Fee for a single TX can be changed by adding instructions from the ComputeBudgetProgram.",-1),_n=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s(" will add a Prioritization Fee above the Base Fee (5,000 Lamports). The value provided in microLamports will be multiplied by the CU budget to determine the Prioritization Fee in Lamports. For example, if your CU budget is 1M CU, and you add 1 microLamport/CU, the Prioritization Fee will be 1 Lamport (1M * 0.000001). The total fee will then be 5001 Lamports.")],-1),hn=n("p",null,[s("Use "),n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" to set the new compute budget. The value provided will replace the default value. Transactions should request the minimum amount of CU required for execution to maximize throughput, or minimize fees.")],-1),Tn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"how-to-change-compute-budget-fee-priority-for-a-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-change-compute-budget-fee-priority-for-a-transaction","aria-hidden":"true"},"#"),s(" How to change compute budget, fee, & priority for a transaction")],-1),gn=n("p",null,"Transaction (TX) priority is achieved by paying a Prioritization Fee in addition to the Base Fee. By default the compute budget is the product of 200,000 Compute Units (CU) * number of instructions, with a max of 1.4M CU. The Base Fee is 5,000 Lamports. A microLamport is 0.000001 Lamports.",-1),wn=n("p",null,"The total compute budget or Prioritization Fee for a single TX can be changed by adding instructions from the ComputeBudgetProgram.",-1),_n=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s(" will add a Prioritization Fee above the Base Fee (5,000 Lamports). The value provided in microLamports will be multiplied by the CU budget to determine the Prioritization Fee in Lamports. For example, if your CU budget is 1M CU, and you add 1 microLamport/CU, the Prioritization Fee will be 1 Lamport (1M * 0.000001). The total fee will then be 5001 Lamports.")],-1),hn=n("p",null,[s("Use "),n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" to set the new compute budget. The value provided will replace the default value. Transactions should request the minimum amount of CU required for execution to maximize throughput, or minimize fees.")],-1),Tn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.ca48a30a.js b/docs/.vuepress/dist/assets/basic-transactions.html.ca48a30a.js index 29c534412..062c4c68e 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.ca48a30a.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.ca48a30a.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),mn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("h2",{id:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3072\u3099\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3072\u3099\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3073\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5")],-1),fn=n("p",null,"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3 (TX) \u306E\u512A\u5148\u9806\u4F4D\u306F\u3001\u57FA\u672C\u624B\u6570\u6599\u306B\u52A0\u3048\u3066\u512A\u5148\u624B\u6570\u6599\u3092\u652F\u6255\u3046\u3053\u3068\u306B\u3088\u3063\u3066\u9054\u6210\u3055\u308C\u307E\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001\u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u4E88\u7B97\u306F 200,000 \u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0 \u30E6\u30CB\u30C3\u30C8 (CU) * \u547D\u4EE4\u6570\u306E\u7A4D\u3067\u3042\u308A\u3001\u6700\u5927 1.4M CU \u3067\u3059\u3002\u57FA\u672C\u6599\u91D1\u306F 5,000 lamport\u3067\u3059\u3002 microLamport \u306F 0.000001 lamport\u3067\u3059\u3002",-1),gn=n("p",null,"1\u3064\u306E TX \u306E\u5408\u8A08\u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u4E88\u7B97\u307E\u305F\u306F\u512A\u5148\u9806\u4F4D\u4ED8\u3051\u6599\u91D1\u306F\u3001ComputeBudgetProgram \u304B\u3089\u306E\u547D\u4EE4\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u3067\u5909\u66F4\u3067\u304D\u307E\u3059\u3002",-1),wn=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s(" \u306F\u3001\u57FA\u672C\u6599\u91D1 (5,000 lamport) \u306E\u4E0A\u306B\u512A\u5148\u6599\u91D1\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002 microLamports\u3067\u63D0\u4F9B\u3055\u308C\u308B\u5024\u306BCU\u4E88\u7B97\u3092\u639B\u3051\u3066\u3001Lamports \u306E\u512A\u5148\u6599\u91D1\u3092\u6C7A\u5B9A\u3057\u307E\u3059\u3002 \u305F\u3068\u3048\u3070\u3001CU \u4E88\u7B97\u304C 100 \u4E07 CU \u3067\u30011 \u3064\u306E microLamport/CU \u3092\u8FFD\u52A0\u3059\u308B\u5834\u5408\u3001\u512A\u5148\u6599\u91D1\u306F 1\u3000lamport (1M * 0.000001) \u306B\u306A\u308A\u307E\u3059\u3002\u5408\u8A08\u6599\u91D1\u306F 5001 lamport \u306B\u306A\u308A\u307E\u3059\u3002")],-1),_n=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" \u4F7F\u7528\u3057\u3066\u3001\u65B0\u3057\u3044\u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u4E88\u7B97\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002 \u6307\u5B9A\u3055\u308C\u305F\u5024\u306F\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002 \u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30EB\u30FC\u30D7\u30C3\u30C8\u3092\u6700\u5927\u5316\u3059\u308B\u3001\u307E\u305F\u306F\u624B\u6570\u6599\u3092\u6700\u5C0F\u5316\u3059\u308B\u305F\u3081\u306B\u3001\u5B9F\u884C\u306B\u5FC5\u8981\u306A\u6700\u5C0F\u91CF\u306E CU \u3092\u8981\u6C42\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002")],-1),hn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("h2",{id:"\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3072\u3099\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30C8\u30E9\u30F3\u30B5\u3099\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3072\u3099\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306E\u8A08\u7B97\u4E88\u7B97\u3001\u6599\u91D1\u3001\u304A\u3088\u3073\u512A\u5148\u5EA6\u3092\u5909\u66F4\u3059\u308B\u65B9\u6CD5")],-1),fn=n("p",null,"\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3 (TX) \u306E\u512A\u5148\u9806\u4F4D\u306F\u3001\u57FA\u672C\u624B\u6570\u6599\u306B\u52A0\u3048\u3066\u512A\u5148\u624B\u6570\u6599\u3092\u652F\u6255\u3046\u3053\u3068\u306B\u3088\u3063\u3066\u9054\u6210\u3055\u308C\u307E\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001\u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u4E88\u7B97\u306F 200,000 \u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0 \u30E6\u30CB\u30C3\u30C8 (CU) * \u547D\u4EE4\u6570\u306E\u7A4D\u3067\u3042\u308A\u3001\u6700\u5927 1.4M CU \u3067\u3059\u3002\u57FA\u672C\u6599\u91D1\u306F 5,000 lamport\u3067\u3059\u3002 microLamport \u306F 0.000001 lamport\u3067\u3059\u3002",-1),gn=n("p",null,"1\u3064\u306E TX \u306E\u5408\u8A08\u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u4E88\u7B97\u307E\u305F\u306F\u512A\u5148\u9806\u4F4D\u4ED8\u3051\u6599\u91D1\u306F\u3001ComputeBudgetProgram \u304B\u3089\u306E\u547D\u4EE4\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u3067\u5909\u66F4\u3067\u304D\u307E\u3059\u3002",-1),wn=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })"),s(" \u306F\u3001\u57FA\u672C\u6599\u91D1 (5,000 lamport) \u306E\u4E0A\u306B\u512A\u5148\u6599\u91D1\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002 microLamports\u3067\u63D0\u4F9B\u3055\u308C\u308B\u5024\u306BCU\u4E88\u7B97\u3092\u639B\u3051\u3066\u3001Lamports \u306E\u512A\u5148\u6599\u91D1\u3092\u6C7A\u5B9A\u3057\u307E\u3059\u3002 \u305F\u3068\u3048\u3070\u3001CU \u4E88\u7B97\u304C 100 \u4E07 CU \u3067\u30011 \u3064\u306E microLamport/CU \u3092\u8FFD\u52A0\u3059\u308B\u5834\u5408\u3001\u512A\u5148\u6599\u91D1\u306F 1\u3000lamport (1M * 0.000001) \u306B\u306A\u308A\u307E\u3059\u3002\u5408\u8A08\u6599\u91D1\u306F 5001 lamport \u306B\u306A\u308A\u307E\u3059\u3002")],-1),_n=n("p",null,[n("code",null,"ComputeBudgetProgram.setComputeUnitLimit({ units: number })"),s(" \u4F7F\u7528\u3057\u3066\u3001\u65B0\u3057\u3044\u30B3\u30F3\u30D4\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u4E88\u7B97\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002 \u6307\u5B9A\u3055\u308C\u305F\u5024\u306F\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002 \u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30EB\u30FC\u30D7\u30C3\u30C8\u3092\u6700\u5927\u5316\u3059\u308B\u3001\u307E\u305F\u306F\u624B\u6570\u6599\u3092\u6700\u5C0F\u5316\u3059\u308B\u305F\u3081\u306B\u3001\u5B9F\u884C\u306B\u5FC5\u8981\u306A\u6700\u5C0F\u91CF\u306E CU \u3092\u8981\u6C42\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002")],-1),hn=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/basic-transactions.html.fc1a8867.js b/docs/.vuepress/dist/assets/basic-transactions.html.fc1a8867.js index 95cadbe30..a9b55a92d 100644 --- a/docs/.vuepress/dist/assets/basic-transactions.html.fc1a8867.js +++ b/docs/.vuepress/dist/assets/basic-transactions.html.fc1a8867.js @@ -559,7 +559,7 @@ Signature: 5a3qbvoJQnTAxGPHCugibZTbSu7xuTgkxvF4EJupRjRXGgZZrnWFmKzfEzcqKF2ogCaF4 `),n("span",{class:"token keyword"},"await"),s(" connection"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"confirmTransaction"),n("span",{class:"token punctuation"},"("),s("signature"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token string"},'"processed"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br")])],-1),dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[s("solana transfer --from "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token operator"},"<"),s("RECIPIENT_ACCOUNT_ADDRESS"),n("span",{class:"token operator"},">"),s(),n("span",{class:"token number"},"0.5"),s(" --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer "),n("span",{class:"token operator"},"<"),s("KEYPAIR"),n("span",{class:"token operator"},">"),s(" --with-memo "),n("span",{class:"token operator"},"<"),s("MEMO"),n("span",{class:"token operator"},">"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-compute-budget-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-compute-budget-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-transaction","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A transaction")],-1),gn=n("p",null,"Compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E2B\u0E19\u0E36\u0E48\u0E07 transaction \u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E40\u0E1E\u0E34\u0E48\u0E21 instruction \u0E14\u0E49\u0E27\u0E22\u0E01\u0E32\u0E23\u0E40\u0E23\u0E35\u0E22\u0E01\u0E44\u0E1B\u0E17\u0E35\u0E48 Compute Budget Program \u0E42\u0E14\u0E22\u0E1B\u0E01\u0E15\u0E34\u0E41\u0E25\u0E49\u0E27 compute budget \u0E04\u0E37\u0E2D\u0E04\u0E48\u0E32\u0E02\u0E2D\u0E07 200k compute units * \u0E08\u0E33\u0E19\u0E27\u0E19 instructions, \u0E14\u0E49\u0E27\u0E22\u0E04\u0E48\u0E32\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14\u0E17\u0E35\u0E48 1.4M compute units \u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E43\u0E0A\u0E49 compute \u0E19\u0E49\u0E2D\u0E22\u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E08\u0E48\u0E32\u0E22 transaction costs \u0E19\u0E49\u0E2D\u0E22\u0E25\u0E07\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22",-1),wn=n("p",null,[n("strong",null,"Note"),s(": \u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A transaction \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E1B\u0E17\u0E33\u0E17\u0E35\u0E48 \u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19\u0E2A\u0E32\u0E21\u0E04\u0E33\u0E2A\u0E31\u0E48\u0E07\u0E41\u0E23\u0E01\u0E02\u0E2D\u0E07 instruction \u0E43\u0E19 transaction \u0E15\u0E23\u0E07 instruction \u0E17\u0E35\u0E48\u0E40\u0E2D\u0E32\u0E44\u0E27\u0E49\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E04\u0E48\u0E32 budget")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),fn=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-compute-budget-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-transaction",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19-compute-budget-\u0E2A\u0E4D\u0E32\u0E2B\u0E23\u0E31\u0E1A-transaction","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A transaction")],-1),gn=n("p",null,"Compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E2B\u0E19\u0E36\u0E48\u0E07 transaction \u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E40\u0E1E\u0E34\u0E48\u0E21 instruction \u0E14\u0E49\u0E27\u0E22\u0E01\u0E32\u0E23\u0E40\u0E23\u0E35\u0E22\u0E01\u0E44\u0E1B\u0E17\u0E35\u0E48 Compute Budget Program \u0E42\u0E14\u0E22\u0E1B\u0E01\u0E15\u0E34\u0E41\u0E25\u0E49\u0E27 compute budget \u0E04\u0E37\u0E2D\u0E04\u0E48\u0E32\u0E02\u0E2D\u0E07 200k compute units * \u0E08\u0E33\u0E19\u0E27\u0E19 instructions, \u0E14\u0E49\u0E27\u0E22\u0E04\u0E48\u0E32\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14\u0E17\u0E35\u0E48 1.4M compute units \u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E43\u0E0A\u0E49 compute \u0E19\u0E49\u0E2D\u0E22\u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E08\u0E48\u0E32\u0E22 transaction costs \u0E19\u0E49\u0E2D\u0E22\u0E25\u0E07\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22",-1),wn=n("p",null,[n("strong",null,"Note"),s(": \u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 compute budget \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A transaction \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E1B\u0E17\u0E33\u0E17\u0E35\u0E48 \u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19\u0E2A\u0E32\u0E21\u0E04\u0E33\u0E2A\u0E31\u0E48\u0E07\u0E41\u0E23\u0E01\u0E02\u0E2D\u0E07 instruction \u0E43\u0E19 transaction \u0E15\u0E23\u0E07 instruction \u0E17\u0E35\u0E48\u0E40\u0E2D\u0E32\u0E44\u0E27\u0E49\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E04\u0E48\u0E32 budget")],-1),_n=n("div",{class:"language-tsx ext-tsx line-numbers-mode"},[n("pre",{class:"language-tsx"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"BN"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` Keypair`),n("span",{class:"token punctuation"},","),s(` Connection`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.05fd251c.js b/docs/.vuepress/dist/assets/get-program-accounts.html.05fd251c.js index a1bea7015..c8a709918 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.05fd251c.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.05fd251c.js @@ -1,4 +1,4 @@ -import{_ as r,r as l,o as i,c as m,a as n,b as a,w as t,F as b,d as s,e as c}from"./app.55b1b60c.js";var k="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},g=n("h1",{id:"obtener-cuentas-de-programa",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#obtener-cuentas-de-programa","aria-hidden":"true"},"#"),s(" Obtener cuentas de programa")],-1),_=n("p",null,[s("Existe un m\xE9todo RPC que devuelve todas las cuentas que son propiedad de un programa. Actualmente no se admite la paginaci\xF3n. Las solicitudes a "),n("code",null,"getProgramAccounts"),s(" deben incluir los par\xE1metros "),n("code",null,"dataSlice"),s(" y/o "),n("code",null,"filters"),s(" para mejorar el tiempo de respuesta y devolver solo los resultados que se necesitan.")],-1),h=n("h2",{id:"hechos",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#hechos","aria-hidden":"true"},"#"),s(" Hechos")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Par\xE1metros",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Llave p\xFAblica del programa a consultar, codificada en base58")],-1),v=s("(optional) "),C=n("code",null,"configOrCommitment",-1),P=s(": "),S=n("code",null,"object",-1),E=s(" - Par\xE1metros de configuraci\xF3n que contienen los siguientes campos opcionales: "),T=s("(optional) "),D=n("code",null,"commitment",-1),N=s(": "),L=n("code",null,"string",-1),M=s(" - "),z={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},R=s("Compromiso del estado (state commitment)"),K=s("(optional) "),G=n("code",null,"encoding",-1),B=s(": "),x=n("code",null,"string",-1),q=s(" - La codificaci\xF3n para los datos de la cuenta, puede ser: "),j=n("code",null,"base58",-1),H=s(", "),F=n("code",null,"base64",-1),Z=s(", or "),Q=n("code",null,"jsonParsed",-1),U=s(". Los usuarios de web3js deben usar "),W={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},V=s("getParsedProgramAccounts"),O=c("
  • (optional) dataSlice: object - Configuraci\xF3n para limitar los datos que se retornan:
    • offset: number - N\xFAmero de bytes en los datos de la cuenta donde iniciar
    • length: number - N\xFAmero de bytes de datos de la cuenta a devolver
  • (optional) filters: array - Configuraci\xF3n para filtrar los resultados:
    • memcmp: object - Coincidencia de bytes con los datos de la cuenta:
      • offset: number - N\xFAmero de bytes en los datos de la cuenta donde empezar a comparar
      • bytes: string - Datos a comparar, como cadena codificada en base58 limitada a 129 bytes
    • dataSize: number - Compara la longitud de los datos de la cuenta con el tama\xF1o de datos proporcionado
  • ",2),Y=s("(optional) "),J=n("code",null,"withContext",-1),X=s(": "),I=n("code",null,"boolean",-1),$=s(" - Envuelve el resultado en un "),nn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},sn=s("Objeto JSON RpcResponse"),an=c('
    Respuesta

    Por defecto getProgramAccounts devolver\xE1 una matriz de objetos JSON con la siguiente estructura:

    • pubkey: string - La clave p\xFAblica de la cuenta codificada en base58
    • account: object - un objeto JSON, con los siguientes subcampos:
      • lamports: number - n\xFAmero de lamports asignado a la cuenta
      • owner: string - La clave p\xFAblica del programa al que se ha asignado la cuenta codificada en base58
      • data: string | object - datos asociados con la cuenta, ya sea como datos binarios o en formato JSON seg\xFAn el par\xE1metro de codificaci\xF3n proporcionado
      • executable: boolean - Indicaci\xF3n si la cuenta contiene un programa
      • rentEpoch: number - La \xE9poca en la que esta cuenta adeudar\xE1 alquiler
    ',3),en=n("h2",{id:"un-vistazo-mas-profundo",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#un-vistazo-mas-profundo","aria-hidden":"true"},"#"),s(" Un vistazo m\xE1s profundo")],-1),tn=n("p",null,[n("code",null,"getProgramAccounts"),s(" es un m\xE9todo RPC vers\xE1til que devuelve todas las cuentas propiedad de un programa. Podemos usar "),n("code",null,"getProgramAccounts"),s(" para una serie de consultas \xFAtiles, como encontrar:")],-1),on=n("li",null,"Todas las cuentas de token para una billetera en particular",-1),cn=s("Todas las cuentas para un mint en particular (ej. Todos los titulares (holders) de "),ln={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},pn=s("SRM"),un=s(")"),rn=s("Todas las cuentas para un programa en particular (ej. Todos los usuarios de "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),kn=s(")"),dn=c("

    A pesar de su utilidad, getProgramAccounts a menudo se malinterpreta debido a sus limitaciones actuales. Muchas de las consultas admitidas por getProgramAccounts requieren nodos RPC para escanear grandes conjuntos de datos. Estos escaneos consumen muchos recursos y memoria. Como resultado, las llamadas que son demasiado frecuentes o de un alcance demasiado grande pueden provocar tiempos de espera mayores al permitido (timeouts). Adem\xE1s, en el momento de escribir este art\xEDculo, el extremo getProgramAccounts no admite la paginaci\xF3n. Si los resultados de una consulta son demasiado grandes, la respuesta se truncar\xE1.

    Para resolver temporalmente estas restricciones, getProgramAccounts ofrece una serie de par\xE1metros \xFAtiles: por ejemplo, dataSlice y las opciones de filtros memcmp y dataSize. Al proporcionar combinaciones de estos par\xE1metros, podemos reducir el alcance de nuestras consultas a tama\xF1os manejables y predecibles.

    ",2),fn=s("Un ejemplo com\xFAn de "),gn=n("code",null,"getProgramAccounts",-1),_n=s(" consiste en interactuar con el "),hn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("Programa de tokens SPL"),An=s(". Solicitar todas las cuentas propiedad del Programa Token con una "),wn=s("llamada b\xE1sica"),vn=s(" implicar\xEDa una enorme cantidad de datos. Sin embargo, al proporcionar par\xE1metros, podemos solicitar de manera eficiente solo los datos que pretendemos utilizar."),Cn=c('

    filters

    El par\xE1metro m\xE1s com\xFAn para usar con getProgramAccounts es la matriz filters. Esta matriz acepta dos tipos de filtros, dataSize y memcmp. Antes de usar cualquiera de estos filtros, debemos estar familiarizados con la forma en que se distribuyen y serializan los datos que solicitamos.

    dataSize

    ',3),Pn=s("En el caso del Programa Token (Token Program), podemos ver que "),Sn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},En=s("las cuentas de token tienen una longitud de 165 bytes"),Tn=s(". Espec\xEDficamente, una cuenta de token tiene ocho campos diferentes, y cada campo requiere una cantidad predecible de bytes. Podemos visualizar c\xF3mo se distribuyen estos datos usando la siguiente ilustraci\xF3n."),Dn=c('

    Tama\xF1o de la cuenta

    Si quisi\xE9ramos encontrar todas las cuentas de token que pertenecen a nuestra direcci\xF3n de billetera, podr\xEDamos agregar { dataSize: 165 } a nuestra matriz de filtros para limitar el alcance de nuestra consulta a solo cuentas que tengan exactamente 165 bytes de longitud. Esto solo, sin embargo, ser\xEDa insuficiente. Tambi\xE9n necesitar\xEDamos agregar un filtro que busque cuentas propiedad de nuestra direcci\xF3n. Podemos lograr esto con el filtro memcmp.

    memcmp

    El filtro memcmp, o filtro de "comparaci\xF3n de memoria", nos permite comparar datos en cualquier campo almacenado en nuestra cuenta. Espec\xEDficamente, solo podemos consultar cuentas que coincidan con un conjunto de bytes en una posici\xF3n espec\xEDfica. memcmp requiere dos argumentos:

    • offset: La posici\xF3n para comenzar a comparar datos. Esta posici\xF3n se mide en bytes y se expresa como un n\xFAmero entero.
    • bytes: Los datos que deben coincidir con los datos de la cuenta. Esto se representa como una cadena codificada en base 58 que debe limitarse a menos de 129 bytes.

    Es importante tener en cuenta que memcmp solo devolver\xE1 resultados que coincidan exactamente en bytes. Actualmente, no admite comparaciones de valores menores o mayores que los "bytes" que proporcionamos.

    De acuerdo con nuestro ejemplo del Programa de tokens, podemos modificar nuestra consulta para que solo devuelva las cuentas de tokens que pertenecen a nuestra direcci\xF3n de billetera. Al observar una cuenta de token, podemos ver que los dos primeros campos almacenados en una cuenta de token son claves p\xFAblicas y que cada clave p\xFAblica tiene una longitud de 32 bytes. Dado que owner es el segundo campo, deber\xEDamos comenzar nuestro memcmp en un offset de 32 bytes. A partir de aqu\xED, buscaremos cuentas cuyo campo de propietario coincida con la direcci\xF3n de nuestra billetera.

    Tama\xF1o de la cuenta

    Podemos hacer esta b\xFAsqueda utilizando el siguiente ejemplo:

    ',9),Nn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as r,r as l,o as i,c as m,a as n,b as a,w as t,F as b,d as s,e as c}from"./app.55b1b60c.js";var k="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},g=n("h1",{id:"obtener-cuentas-de-programa",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#obtener-cuentas-de-programa","aria-hidden":"true"},"#"),s(" Obtener cuentas de programa")],-1),_=n("p",null,[s("Existe un m\xE9todo RPC que devuelve todas las cuentas que son propiedad de un programa. Actualmente no se admite la paginaci\xF3n. Las solicitudes a "),n("code",null,"getProgramAccounts"),s(" deben incluir los par\xE1metros "),n("code",null,"dataSlice"),s(" y/o "),n("code",null,"filters"),s(" para mejorar el tiempo de respuesta y devolver solo los resultados que se necesitan.")],-1),h=n("h2",{id:"hechos",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#hechos","aria-hidden":"true"},"#"),s(" Hechos")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Par\xE1metros",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Llave p\xFAblica del programa a consultar, codificada en base58")],-1),v=s("(optional) "),C=n("code",null,"configOrCommitment",-1),P=s(": "),S=n("code",null,"object",-1),E=s(" - Par\xE1metros de configuraci\xF3n que contienen los siguientes campos opcionales: "),T=s("(optional) "),D=n("code",null,"commitment",-1),N=s(": "),L=n("code",null,"string",-1),M=s(" - "),z={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},R=s("Compromiso del estado (state commitment)"),K=s("(optional) "),G=n("code",null,"encoding",-1),B=s(": "),x=n("code",null,"string",-1),q=s(" - La codificaci\xF3n para los datos de la cuenta, puede ser: "),j=n("code",null,"base58",-1),H=s(", "),F=n("code",null,"base64",-1),Z=s(", or "),Q=n("code",null,"jsonParsed",-1),U=s(". Los usuarios de web3js deben usar "),W={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},V=s("getParsedProgramAccounts"),O=c("
  • (optional) dataSlice: object - Configuraci\xF3n para limitar los datos que se retornan:
    • offset: number - N\xFAmero de bytes en los datos de la cuenta donde iniciar
    • length: number - N\xFAmero de bytes de datos de la cuenta a devolver
  • (optional) filters: array - Configuraci\xF3n para filtrar los resultados:
    • memcmp: object - Coincidencia de bytes con los datos de la cuenta:
      • offset: number - N\xFAmero de bytes en los datos de la cuenta donde empezar a comparar
      • bytes: string - Datos a comparar, como cadena codificada en base58 limitada a 129 bytes
    • dataSize: number - Compara la longitud de los datos de la cuenta con el tama\xF1o de datos proporcionado
  • ",2),Y=s("(optional) "),J=n("code",null,"withContext",-1),X=s(": "),I=n("code",null,"boolean",-1),$=s(" - Envuelve el resultado en un "),nn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},sn=s("Objeto JSON RpcResponse"),an=c('
    Respuesta

    Por defecto getProgramAccounts devolver\xE1 una matriz de objetos JSON con la siguiente estructura:

    • pubkey: string - La clave p\xFAblica de la cuenta codificada en base58
    • account: object - un objeto JSON, con los siguientes subcampos:
      • lamports: number - n\xFAmero de lamports asignado a la cuenta
      • owner: string - La clave p\xFAblica del programa al que se ha asignado la cuenta codificada en base58
      • data: string | object - datos asociados con la cuenta, ya sea como datos binarios o en formato JSON seg\xFAn el par\xE1metro de codificaci\xF3n proporcionado
      • executable: boolean - Indicaci\xF3n si la cuenta contiene un programa
      • rentEpoch: number - La \xE9poca en la que esta cuenta adeudar\xE1 alquiler
    ',3),en=n("h2",{id:"un-vistazo-mas-profundo",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#un-vistazo-mas-profundo","aria-hidden":"true"},"#"),s(" Un vistazo m\xE1s profundo")],-1),tn=n("p",null,[n("code",null,"getProgramAccounts"),s(" es un m\xE9todo RPC vers\xE1til que devuelve todas las cuentas propiedad de un programa. Podemos usar "),n("code",null,"getProgramAccounts"),s(" para una serie de consultas \xFAtiles, como encontrar:")],-1),on=n("li",null,"Todas las cuentas de token para una billetera en particular",-1),cn=s("Todas las cuentas para un mint en particular (ej. Todos los titulares (holders) de "),ln={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},pn=s("SRM"),un=s(")"),rn=s("Todas las cuentas para un programa en particular (ej. Todos los usuarios de "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),kn=s(")"),dn=c("

    A pesar de su utilidad, getProgramAccounts a menudo se malinterpreta debido a sus limitaciones actuales. Muchas de las consultas admitidas por getProgramAccounts requieren nodos RPC para escanear grandes conjuntos de datos. Estos escaneos consumen muchos recursos y memoria. Como resultado, las llamadas que son demasiado frecuentes o de un alcance demasiado grande pueden provocar tiempos de espera mayores al permitido (timeouts). Adem\xE1s, en el momento de escribir este art\xEDculo, el extremo getProgramAccounts no admite la paginaci\xF3n. Si los resultados de una consulta son demasiado grandes, la respuesta se truncar\xE1.

    Para resolver temporalmente estas restricciones, getProgramAccounts ofrece una serie de par\xE1metros \xFAtiles: por ejemplo, dataSlice y las opciones de filtros memcmp y dataSize. Al proporcionar combinaciones de estos par\xE1metros, podemos reducir el alcance de nuestras consultas a tama\xF1os manejables y predecibles.

    ",2),fn=s("Un ejemplo com\xFAn de "),gn=n("code",null,"getProgramAccounts",-1),_n=s(" consiste en interactuar con el "),hn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("Programa de tokens SPL"),An=s(". Solicitar todas las cuentas propiedad del Programa Token con una "),wn=s("llamada b\xE1sica"),vn=s(" implicar\xEDa una enorme cantidad de datos. Sin embargo, al proporcionar par\xE1metros, podemos solicitar de manera eficiente solo los datos que pretendemos utilizar."),Cn=c('

    filters

    El par\xE1metro m\xE1s com\xFAn para usar con getProgramAccounts es la matriz filters. Esta matriz acepta dos tipos de filtros, dataSize y memcmp. Antes de usar cualquiera de estos filtros, debemos estar familiarizados con la forma en que se distribuyen y serializan los datos que solicitamos.

    dataSize

    ',3),Pn=s("En el caso del Programa Token (Token Program), podemos ver que "),Sn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},En=s("las cuentas de token tienen una longitud de 165 bytes"),Tn=s(". Espec\xEDficamente, una cuenta de token tiene ocho campos diferentes, y cada campo requiere una cantidad predecible de bytes. Podemos visualizar c\xF3mo se distribuyen estos datos usando la siguiente ilustraci\xF3n."),Dn=c('

    Tama\xF1o de la cuenta

    Si quisi\xE9ramos encontrar todas las cuentas de token que pertenecen a nuestra direcci\xF3n de billetera, podr\xEDamos agregar { dataSize: 165 } a nuestra matriz de filtros para limitar el alcance de nuestra consulta a solo cuentas que tengan exactamente 165 bytes de longitud. Esto solo, sin embargo, ser\xEDa insuficiente. Tambi\xE9n necesitar\xEDamos agregar un filtro que busque cuentas propiedad de nuestra direcci\xF3n. Podemos lograr esto con el filtro memcmp.

    memcmp

    El filtro memcmp, o filtro de "comparaci\xF3n de memoria", nos permite comparar datos en cualquier campo almacenado en nuestra cuenta. Espec\xEDficamente, solo podemos consultar cuentas que coincidan con un conjunto de bytes en una posici\xF3n espec\xEDfica. memcmp requiere dos argumentos:

    • offset: La posici\xF3n para comenzar a comparar datos. Esta posici\xF3n se mide en bytes y se expresa como un n\xFAmero entero.
    • bytes: Los datos que deben coincidir con los datos de la cuenta. Esto se representa como una cadena codificada en base 58 que debe limitarse a menos de 129 bytes.

    Es importante tener en cuenta que memcmp solo devolver\xE1 resultados que coincidan exactamente en bytes. Actualmente, no admite comparaciones de valores menores o mayores que los "bytes" que proporcionamos.

    De acuerdo con nuestro ejemplo del Programa de tokens, podemos modificar nuestra consulta para que solo devuelva las cuentas de tokens que pertenecen a nuestra direcci\xF3n de billetera. Al observar una cuenta de token, podemos ver que los dos primeros campos almacenados en una cuenta de token son claves p\xFAblicas y que cada clave p\xFAblica tiene una longitud de 32 bytes. Dado que owner es el segundo campo, deber\xEDamos comenzar nuestro memcmp en un offset de 32 bytes. A partir de aqu\xED, buscaremos cuentas cuyo campo de propietario coincida con la direcci\xF3n de nuestra billetera.

    Tama\xF1o de la cuenta

    Podemos hacer esta b\xFAsqueda utilizando el siguiente ejemplo:

    ',9),Nn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.086000e2.js b/docs/.vuepress/dist/assets/get-program-accounts.html.086000e2.js index 623669341..f742bc2ed 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.086000e2.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.086000e2.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,o as r,c as m,a as n,b as a,w as t,F as k,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},_=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("\u0E19\u0E35\u0E48\u0E15\u0E37\u0E2D RPC method \u0E17\u0E35\u0E48\u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32 accounts \u0E17\u0E35\u0E48 program \u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07. \u0E43\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E19\u0E31\u0E1A\u0E2A\u0E19\u0E38\u0E19 pagination. \u0E01\u0E32\u0E23 requests \u0E44\u0E1B\u0E17\u0E35\u0E48 "),n("code",null,"getProgramAccounts"),s(" \u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E2A\u0E48\u0E07 parameters "),n("code",null,"dataSlice"),s(" \u0E41\u0E25\u0E30/\u0E2B\u0E23\u0E37\u0E2D "),n("code",null,"filters"),s(" \u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E25\u0E14 response time \u0E41\u0E25\u0E30\u0E08\u0E30\u0E44\u0E14\u0E49\u0E2A\u0E48\u0E07\u0E01\u0E25\u0E31\u0E1A\u0E21\u0E32\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23.")],-1),h=n("h2",{id:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49","aria-hidden":"true"},"#"),s(" \u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Parameters",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Pubkey \u0E02\u0E2D\u0E07 program \u0E17\u0E35\u0E48\u0E08\u0E30 query, \u0E40\u0E15\u0E23\u0E35\u0E22\u0E21\u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A base58 encoded string")],-1),C=s("(optional) "),S=n("code",null,"configOrCommitment",-1),P=s(": "),T=n("code",null,"object",-1),D=s(" - Configuration parameters \u0E17\u0E35\u0E48\u0E21\u0E35 optional fields \u0E15\u0E32\u0E21\u0E19\u0E35\u0E49: "),E=s("(optional) "),N=n("code",null,"commitment",-1),v=s(": "),M=n("code",null,"string",-1),R=s(" - "),K={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},G=s("State commitment"),L=s("(optional) "),B=n("code",null,"encoding",-1),z=s(": "),x=n("code",null,"string",-1),F=s(" - Encoding \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A account data, \u0E17\u0E31\u0E49\u0E07: "),H=n("code",null,"base58",-1),Z=s(", "),Q=n("code",null,"base64",-1),U=s(", \u0E2B\u0E23\u0E37\u0E2D "),W=n("code",null,"jsonParsed",-1),j=s(". Note, web3js \u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 "),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},Y=s("getParsedProgramAccounts"),J=s(" \u0E41\u0E17\u0E19"),X=o("
  • (optional) dataSlice: object - \u0E08\u0E33\u0E01\u0E31\u0E14\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C account data \u0E42\u0E14\u0E22\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A:
    • offset: number - \u0E08\u0E33\u0E19\u0E27\u0E19\u0E02\u0E2D\u0E07 bytes \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07 account data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E21\u0E32
    • length: number - \u0E08\u0E33\u0E19\u0E27\u0E19\u0E02\u0E2D\u0E07 bytes \u0E02\u0E2D\u0E07 account data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E2A\u0E48\u0E07\u0E01\u0E25\u0E31\u0E1A\u0E21\u0E32
  • (optional) filters: array - \u0E04\u0E31\u0E14\u0E01\u0E23\u0E2D\u0E07 results \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 filter objects \u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07:
    • memcmp: object - \u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A series \u0E02\u0E2D\u0E07 bytes \u0E02\u0E2D\u0E07 account data:
      • offset: number - \u0E08\u0E33\u0E19\u0E27\u0E19\u0E02\u0E2D\u0E07 bytes \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07 account data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E17\u0E35\u0E22\u0E1A
      • bytes: string - Data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E17\u0E35\u0E22\u0E1A\u0E14\u0E49\u0E27\u0E22, \u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A base58 encoded string \u0E08\u0E33\u0E01\u0E31\u0E14\u0E17\u0E35\u0E48 129 bytes
    • dataSize: number - \u0E40\u0E17\u0E35\u0E22\u0E1A account data length \u0E14\u0E49\u0E27\u0E22 data size \u0E17\u0E35\u0E48\u0E23\u0E30\u0E1A\u0E38\u0E44\u0E27\u0E49
  • ",2),O=s("(optional) "),I=n("code",null,"withContext",-1),q=s(": "),$=n("code",null,"boolean",-1),nn=s(" - \u0E04\u0E23\u0E2D\u0E1A (wrap)\u200B \u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A "),sn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},an=s("RpcResponse JSON object"),en=o('
    Response

    \u0E15\u0E32\u0E21\u0E1B\u0E01\u0E15\u0E34\u0E41\u0E25\u0E49\u0E27 getProgramAccounts \u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32 array \u0E02\u0E2D\u0E07 JSON objects \u0E17\u0E35\u0E48\u0E21\u0E35\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E15\u0E32\u0E21\u0E19\u0E35\u0E49:

    • pubkey: string - account pubkey \u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E02\u0E2D\u0E07 base58 encoded string
    • account: object - JSON object \u0E17\u0E35\u0E48\u0E21\u0E35 fields:
      • lamports: number, \u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E02\u0E2D\u0E07 lamports \u0E17\u0E35\u0E48\u0E21\u0E35\u0E43\u0E19 account
      • owner: string, base58 encoded pubkey \u0E02\u0E2D\u0E07 program \u0E17\u0E35\u0E48 account \u0E44\u0E14\u0E49 assigned \u0E44\u0E27\u0E49
      • data: string | object - data \u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07\u0E01\u0E31\u0E1A account \u0E2D\u0E32\u0E08\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E14\u0E49\u0E17\u0E31\u0E49\u0E07 encoded binary data \u0E2B\u0E23\u0E37\u0E2D JSON format \u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A encoding parameter
      • executable: boolean, \u0E15\u0E31\u0E27\u0E1A\u0E48\u0E07\u0E0A\u0E35\u0E49\u0E27\u0E48\u0E32 account \u0E19\u0E35\u0E49\u0E21\u0E35 program
      • rentEpoch: number, epoch \u0E17\u0E35\u0E48 account \u0E19\u0E35\u0E49\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E08\u0E48\u0E32\u0E22 rent
    ',3),tn=n("h2",{id:"\u0E25\u0E07\u0E25\u0E36\u0E01",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E25\u0E07\u0E25\u0E36\u0E01","aria-hidden":"true"},"#"),s(" \u0E25\u0E07\u0E25\u0E36\u0E01")],-1),cn=n("p",null,[n("code",null,"getProgramAccounts"),s(" \u0E04\u0E37\u0E2D RPC method \u0E17\u0E35\u0E48\u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E17\u0E38\u0E01 accounts \u0E17\u0E35\u0E48 program \u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49 "),n("code",null,"getProgramAccounts"),s(" \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E14\u0E49\u0E2B\u0E25\u0E32\u0E22\u0E41\u0E1A\u0E1A \u0E40\u0E0A\u0E48\u0E19:")],-1),on=n("li",null,"\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 token accounts \u0E02\u0E2D\u0E07 wallet",-1),ln=s("\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 token accounts \u0E17\u0E35\u0E48\u0E21\u0E35 mint \u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19(\u0E40\u0E0A\u0E48\u0E19 \u0E17\u0E38\u0E01\u0E46 \u0E04\u0E19\u0E17\u0E35\u0E48\u0E16\u0E37\u0E2D token "),pn={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},un=s("SRM"),rn=s(" \u0E44\u0E27\u0E49)"),mn=s("\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 custom accounts \u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49 program \u0E19\u0E35\u0E49(\u0E40\u0E0A\u0E48\u0E19 \u0E17\u0E38\u0E01\u0E46 \u0E04\u0E19\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49 "),kn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),dn=s(")"),fn=o("

    \u0E19\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E08\u0E30\u0E21\u0E35\u0E1B\u0E23\u0E30\u0E42\u0E22\u0E0A\u0E19\u0E4C\u0E41\u0E25\u0E49\u0E27, getProgramAccounts \u0E22\u0E31\u0E07\u0E16\u0E39\u0E01\u0E40\u0E02\u0E49\u0E32\u0E43\u0E08\u0E1C\u0E34\u0E14\u0E2D\u0E22\u0E39\u0E48\u0E1A\u0E49\u0E32\u0E07 \u0E40\u0E1E\u0E23\u0E32\u0E30\u0E14\u0E49\u0E27\u0E22\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E02\u0E2D\u0E07\u0E21\u0E31\u0E19 \u0E01\u0E32\u0E23\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49 getProgramAccounts \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49 RPC nodes \u0E04\u0E49\u0E19\u0E2B\u0E32 data \u0E02\u0E19\u0E32\u0E14\u0E43\u0E2B\u0E0D\u0E48. \u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E19\u0E31\u0E49\u0E19\u0E01\u0E34\u0E19\u0E17\u0E31\u0E49\u0E07 memory \u0E41\u0E25\u0E30 resource \u0E21\u0E32\u0E01\u0E46. \u0E1C\u0E25\u0E17\u0E35\u0E48\u0E40\u0E01\u0E34\u0E14\u0E02\u0E36\u0E49\u0E19\u0E04\u0E37\u0E2D\u0E16\u0E49\u0E32\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49\u0E1A\u0E48\u0E2D\u0E22\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B \u0E2B\u0E23\u0E37\u0E2D\u0E43\u0E2B\u0E0D\u0E48\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B\u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E01\u0E34\u0E14 connection timeouts \u0E44\u0E14\u0E49. \u0E43\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49 getProgramAccounts endpoint \u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E19\u0E31\u0E1A\u0E2A\u0E19\u0E38\u0E19 pagination. \u0E16\u0E49\u0E32\u0E1C\u0E25\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E43\u0E2B\u0E0D\u0E48\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E08\u0E30\u0E16\u0E39\u0E01\u0E15\u0E31\u0E14\u0E17\u0E34\u0E49\u0E07.

    \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2B\u0E25\u0E35\u0E01\u0E2B\u0E19\u0E35\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E19\u0E35\u0E49, getProgramAccounts \u0E40\u0E25\u0E22\u0E21\u0E35 parameters \u0E43\u0E2B\u0E49\u0E43\u0E0A\u0E49: \u0E0A\u0E37\u0E48\u0E2D, dataSlice \u0E41\u0E25\u0E30 filters options memcmp \u0E41\u0E25\u0E30 dataSize. \u0E16\u0E49\u0E32\u0E43\u0E0A\u0E49 parameters \u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49, \u0E40\u0E23\u0E32\u0E08\u0E30\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E14\u0E02\u0E2D\u0E1A\u0E40\u0E02\u0E15\u0E02\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E43\u0E2B\u0E49\u0E41\u0E04\u0E1A\u0E25\u0E07\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E04\u0E27\u0E1A\u0E04\u0E38\u0E21 \u0E41\u0E25\u0E30\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13\u0E02\u0E19\u0E32\u0E14\u0E02\u0E2D\u0E07\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E44\u0E14\u0E49.

    ",2),_n=s("\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B\u0E02\u0E2D\u0E07 "),gn=n("code",null,"getProgramAccounts",-1),hn=s(" \u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07\u0E01\u0E31\u0E1A "),yn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},An=s("SPL-Token Program"),wn=s(" \u0E40\u0E0A\u0E48\u0E19 \u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 accounts \u0E17\u0E35\u0E48 Token Program \u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 "),Cn=s("\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E41\u0E1A\u0E1A\u0E1B\u0E01\u0E15\u0E34"),Sn=s(" \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E1B\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E21\u0E32\u0E01\u0E21\u0E32\u0E22 \u0E41\u0E15\u0E48\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E43\u0E2A\u0E48 parameters \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22\u0E40\u0E23\u0E32\u0E08\u0E30\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 request \u0E44\u0E14\u0E49\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E20\u0E32\u0E1E \u0E41\u0E25\u0E30\u0E44\u0E14\u0E49 data \u0E40\u0E09\u0E1E\u0E32\u0E30\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49."),Pn=o('

    filters

    parameter \u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E1A\u0E48\u0E2D\u0E22\u0E46 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A getProgramAccounts \u0E04\u0E37\u0E2D filters array. \u0E0B\u0E36\u0E48\u0E07 array \u0E19\u0E35\u0E49\u0E08\u0E30\u0E23\u0E31\u0E1A filters 2 \u0E41\u0E1A\u0E1A\u0E04\u0E37\u0E2D dataSize \u0E41\u0E25\u0E30 memcmp \u0E01\u0E48\u0E2D\u0E19\u0E17\u0E35\u0E48\u0E08\u0E30\u0E43\u0E0A\u0E49 filters \u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E01\u0E48\u0E2D\u0E19\u0E27\u0E48\u0E32 data \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E23\u0E49\u0E2D\u0E07\u0E02\u0E2D\u0E21\u0E35\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E31\u0E07\u0E44\u0E07 \u0E41\u0E25\u0E30\u0E08\u0E31\u0E14\u0E40\u0E23\u0E35\u0E22\u0E07\u0E44\u0E27\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07.

    dataSize

    ',3),Tn=s("\u0E43\u0E19\u0E01\u0E23\u0E13\u0E35\u0E02\u0E2D\u0E07 Token Program, \u0E40\u0E23\u0E32\u0E08\u0E30\u0E40\u0E2B\u0E47\u0E19\u0E27\u0E48\u0E32 "),Dn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},En=s("token accounts \u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 165 bytes"),Nn=s(". \u0E41\u0E25\u0E30 token account \u0E08\u0E30\u0E21\u0E35 8 fields \u0E17\u0E35\u0E48\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E01\u0E31\u0E19\u0E42\u0E14\u0E22\u0E41\u0E15\u0E48\u0E25\u0E30 field \u0E08\u0E30\u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 bytes \u0E17\u0E35\u0E48\u0E41\u0E19\u0E48\u0E19\u0E2D\u0E19 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E2A\u0E14\u0E07 visualize \u0E27\u0E48\u0E32 data \u0E21\u0E35\u0E01\u0E32\u0E23\u0E27\u0E32\u0E07\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E31\u0E07\u0E44\u0E07\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E23\u0E39\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07."),vn=o('

    Account Size

    \u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 token accounts \u0E42\u0E14\u0E22\u0E21\u0E35 wallet address \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07, \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E2A\u0E48 { dataSize: 165 } \u0E43\u0E19 filters \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E25\u0E14\u0E02\u0E2D\u0E1A\u0E40\u0E02\u0E15\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E43\u0E2B\u0E49\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E40\u0E09\u0E1E\u0E32\u0E30 accounts \u0E17\u0E35\u0E48\u0E02\u0E19\u0E32\u0E14 165 bytes \u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 \u0E41\u0E15\u0E48\u0E40\u0E17\u0E48\u0E32\u0E19\u0E35\u0E49\u0E01\u0E47\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E14\u0E35\u0E1E\u0E2D \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E2A\u0E48 filter \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22\u0E27\u0E48\u0E32\u0E40\u0E23\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07 (owner) \u0E21\u0E31\u0E19\u0E14\u0E49\u0E27\u0E22 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E17\u0E33\u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22\u0E01\u0E32\u0E23\u0E40\u0E1E\u0E34\u0E48\u0E21 memcmp filter \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B.

    memcmp

    memcmp filter \u0E2B\u0E23\u0E37\u0E2D "memory comparison" filter, \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E23\u0E35\u0E22\u0E1A\u0E40\u0E17\u0E35\u0E22\u0E1A data \u0E43\u0E19 field \u0E44\u0E2B\u0E19\u0E01\u0E47\u0E44\u0E14\u0E49\u0E17\u0E35\u0E48\u0E40\u0E01\u0E47\u0E1A\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u200B account \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32. \u0E42\u0E14\u0E22\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E40\u0E09\u0E1E\u0E32\u0E30 accounts \u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A bytes \u0E17\u0E35\u0E48\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07\u0E43\u0E14\u0E46. memcmp \u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 2 arguments:

    • offset: \u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E17\u0E35\u0E22\u0E1A data \u0E21\u0E35\u0E02\u0E19\u0E32\u0E14\u0E40\u0E1B\u0E47\u0E19 bytes \u0E41\u0E25\u0E30\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E40\u0E15\u0E47\u0E21.
    • bytes: \u0E04\u0E37\u0E2D data \u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A account's data. \u0E08\u0E30\u0E43\u0E0A\u0E49 base-58 encoded string \u0E02\u0E19\u0E32\u0E14\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 129 bytes.

    \u0E41\u0E15\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E30\u0E27\u0E31\u0E07\u0E44\u0E27\u0E49\u0E27\u0E48\u0E32 memcmp \u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E21\u0E32\u0E01\u0E47\u0E15\u0E48\u0E2D\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E40\u0E08\u0E2D bytes \u0E15\u0E23\u0E07\u0E01\u0E31\u0E19\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 \u0E0B\u0E36\u0E48\u0E07\u0E43\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E17\u0E35\u0E22\u0E1A\u0E2B\u0E32\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32 \u0E2B\u0E23\u0E37\u0E2D\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32 bytes \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E43\u0E2A\u0E48\u0E44\u0E1B\u0E44\u0E14\u0E49

    \u0E43\u0E19\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07 Token Program \u0E2D\u0E31\u0E19\u0E15\u0E48\u0E2D\u0E44\u0E1B, \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E43\u0E2B\u0E49\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E21\u0E32\u0E40\u0E09\u0E1E\u0E32\u0E30 token account \u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A wallet address \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32 \u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E25\u0E2D\u0E07\u0E14\u0E39\u0E17\u0E35\u0E48 token account \u0E08\u0E30\u0E40\u0E2B\u0E47\u0E19\u0E27\u0E48\u0E32 2 fields \u0E41\u0E23\u0E01\u0E1A\u0E19 token account \u0E04\u0E37\u0E2D pubkeys, \u0E41\u0E25\u0E30\u0E41\u0E15\u0E48\u0E25\u0E30 pubkey \u0E08\u0E30\u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 32 bytes \u0E42\u0E14\u0E22\u0E17\u0E35\u0E48 owner \u0E08\u0E30\u0E2D\u0E22\u0E39\u0E48\u0E17\u0E35\u0E48 field \u0E17\u0E35\u0E48 2 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E34\u0E48\u0E21 memcmp \u0E17\u0E35\u0E48 offset \u0E17\u0E35\u0E48 32 bytes \u0E08\u0E32\u0E01\u0E15\u0E23\u0E07\u0E19\u0E31\u0E49\u0E19\u0E40\u0E23\u0E32\u0E01\u0E47\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E21\u0E2D\u0E07\u0E2B\u0E32 account \u0E17\u0E35\u0E48 ower \u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A wallet address \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32

    Account Size

    \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E2D\u0E07 query \u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07:

    ',9),Mn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as m,a as n,b as a,w as t,F as k,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},_=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("\u0E19\u0E35\u0E48\u0E15\u0E37\u0E2D RPC method \u0E17\u0E35\u0E48\u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32 accounts \u0E17\u0E35\u0E48 program \u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07. \u0E43\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E19\u0E31\u0E1A\u0E2A\u0E19\u0E38\u0E19 pagination. \u0E01\u0E32\u0E23 requests \u0E44\u0E1B\u0E17\u0E35\u0E48 "),n("code",null,"getProgramAccounts"),s(" \u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E2A\u0E48\u0E07 parameters "),n("code",null,"dataSlice"),s(" \u0E41\u0E25\u0E30/\u0E2B\u0E23\u0E37\u0E2D "),n("code",null,"filters"),s(" \u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E25\u0E14 response time \u0E41\u0E25\u0E30\u0E08\u0E30\u0E44\u0E14\u0E49\u0E2A\u0E48\u0E07\u0E01\u0E25\u0E31\u0E1A\u0E21\u0E32\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23.")],-1),h=n("h2",{id:"\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49","aria-hidden":"true"},"#"),s(" \u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E48\u0E32\u0E23\u0E39\u0E49")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Parameters",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Pubkey \u0E02\u0E2D\u0E07 program \u0E17\u0E35\u0E48\u0E08\u0E30 query, \u0E40\u0E15\u0E23\u0E35\u0E22\u0E21\u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A base58 encoded string")],-1),C=s("(optional) "),S=n("code",null,"configOrCommitment",-1),P=s(": "),T=n("code",null,"object",-1),D=s(" - Configuration parameters \u0E17\u0E35\u0E48\u0E21\u0E35 optional fields \u0E15\u0E32\u0E21\u0E19\u0E35\u0E49: "),E=s("(optional) "),N=n("code",null,"commitment",-1),v=s(": "),M=n("code",null,"string",-1),R=s(" - "),K={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},G=s("State commitment"),L=s("(optional) "),B=n("code",null,"encoding",-1),z=s(": "),x=n("code",null,"string",-1),F=s(" - Encoding \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A account data, \u0E17\u0E31\u0E49\u0E07: "),H=n("code",null,"base58",-1),Z=s(", "),Q=n("code",null,"base64",-1),U=s(", \u0E2B\u0E23\u0E37\u0E2D "),W=n("code",null,"jsonParsed",-1),j=s(". Note, web3js \u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 "),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},Y=s("getParsedProgramAccounts"),J=s(" \u0E41\u0E17\u0E19"),X=o("
  • (optional) dataSlice: object - \u0E08\u0E33\u0E01\u0E31\u0E14\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C account data \u0E42\u0E14\u0E22\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A:
    • offset: number - \u0E08\u0E33\u0E19\u0E27\u0E19\u0E02\u0E2D\u0E07 bytes \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07 account data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E21\u0E32
    • length: number - \u0E08\u0E33\u0E19\u0E27\u0E19\u0E02\u0E2D\u0E07 bytes \u0E02\u0E2D\u0E07 account data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E2A\u0E48\u0E07\u0E01\u0E25\u0E31\u0E1A\u0E21\u0E32
  • (optional) filters: array - \u0E04\u0E31\u0E14\u0E01\u0E23\u0E2D\u0E07 results \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 filter objects \u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07:
    • memcmp: object - \u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A series \u0E02\u0E2D\u0E07 bytes \u0E02\u0E2D\u0E07 account data:
      • offset: number - \u0E08\u0E33\u0E19\u0E27\u0E19\u0E02\u0E2D\u0E07 bytes \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07 account data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E17\u0E35\u0E22\u0E1A
      • bytes: string - Data \u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E17\u0E35\u0E22\u0E1A\u0E14\u0E49\u0E27\u0E22, \u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A base58 encoded string \u0E08\u0E33\u0E01\u0E31\u0E14\u0E17\u0E35\u0E48 129 bytes
    • dataSize: number - \u0E40\u0E17\u0E35\u0E22\u0E1A account data length \u0E14\u0E49\u0E27\u0E22 data size \u0E17\u0E35\u0E48\u0E23\u0E30\u0E1A\u0E38\u0E44\u0E27\u0E49
  • ",2),O=s("(optional) "),I=n("code",null,"withContext",-1),q=s(": "),$=n("code",null,"boolean",-1),nn=s(" - \u0E04\u0E23\u0E2D\u0E1A (wrap)\u200B \u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A "),sn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},an=s("RpcResponse JSON object"),en=o('
    Response

    \u0E15\u0E32\u0E21\u0E1B\u0E01\u0E15\u0E34\u0E41\u0E25\u0E49\u0E27 getProgramAccounts \u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32 array \u0E02\u0E2D\u0E07 JSON objects \u0E17\u0E35\u0E48\u0E21\u0E35\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E15\u0E32\u0E21\u0E19\u0E35\u0E49:

    • pubkey: string - account pubkey \u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E02\u0E2D\u0E07 base58 encoded string
    • account: object - JSON object \u0E17\u0E35\u0E48\u0E21\u0E35 fields:
      • lamports: number, \u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E02\u0E2D\u0E07 lamports \u0E17\u0E35\u0E48\u0E21\u0E35\u0E43\u0E19 account
      • owner: string, base58 encoded pubkey \u0E02\u0E2D\u0E07 program \u0E17\u0E35\u0E48 account \u0E44\u0E14\u0E49 assigned \u0E44\u0E27\u0E49
      • data: string | object - data \u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07\u0E01\u0E31\u0E1A account \u0E2D\u0E32\u0E08\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E14\u0E49\u0E17\u0E31\u0E49\u0E07 encoded binary data \u0E2B\u0E23\u0E37\u0E2D JSON format \u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A encoding parameter
      • executable: boolean, \u0E15\u0E31\u0E27\u0E1A\u0E48\u0E07\u0E0A\u0E35\u0E49\u0E27\u0E48\u0E32 account \u0E19\u0E35\u0E49\u0E21\u0E35 program
      • rentEpoch: number, epoch \u0E17\u0E35\u0E48 account \u0E19\u0E35\u0E49\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E08\u0E48\u0E32\u0E22 rent
    ',3),tn=n("h2",{id:"\u0E25\u0E07\u0E25\u0E36\u0E01",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E25\u0E07\u0E25\u0E36\u0E01","aria-hidden":"true"},"#"),s(" \u0E25\u0E07\u0E25\u0E36\u0E01")],-1),cn=n("p",null,[n("code",null,"getProgramAccounts"),s(" \u0E04\u0E37\u0E2D RPC method \u0E17\u0E35\u0E48\u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E17\u0E38\u0E01 accounts \u0E17\u0E35\u0E48 program \u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49 "),n("code",null,"getProgramAccounts"),s(" \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E14\u0E49\u0E2B\u0E25\u0E32\u0E22\u0E41\u0E1A\u0E1A \u0E40\u0E0A\u0E48\u0E19:")],-1),on=n("li",null,"\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 token accounts \u0E02\u0E2D\u0E07 wallet",-1),ln=s("\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 token accounts \u0E17\u0E35\u0E48\u0E21\u0E35 mint \u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19(\u0E40\u0E0A\u0E48\u0E19 \u0E17\u0E38\u0E01\u0E46 \u0E04\u0E19\u0E17\u0E35\u0E48\u0E16\u0E37\u0E2D token "),pn={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},un=s("SRM"),rn=s(" \u0E44\u0E27\u0E49)"),mn=s("\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 custom accounts \u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49 program \u0E19\u0E35\u0E49(\u0E40\u0E0A\u0E48\u0E19 \u0E17\u0E38\u0E01\u0E46 \u0E04\u0E19\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49 "),kn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),dn=s(")"),fn=o("

    \u0E19\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E08\u0E30\u0E21\u0E35\u0E1B\u0E23\u0E30\u0E42\u0E22\u0E0A\u0E19\u0E4C\u0E41\u0E25\u0E49\u0E27, getProgramAccounts \u0E22\u0E31\u0E07\u0E16\u0E39\u0E01\u0E40\u0E02\u0E49\u0E32\u0E43\u0E08\u0E1C\u0E34\u0E14\u0E2D\u0E22\u0E39\u0E48\u0E1A\u0E49\u0E32\u0E07 \u0E40\u0E1E\u0E23\u0E32\u0E30\u0E14\u0E49\u0E27\u0E22\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E02\u0E2D\u0E07\u0E21\u0E31\u0E19 \u0E01\u0E32\u0E23\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49 getProgramAccounts \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49 RPC nodes \u0E04\u0E49\u0E19\u0E2B\u0E32 data \u0E02\u0E19\u0E32\u0E14\u0E43\u0E2B\u0E0D\u0E48. \u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E19\u0E31\u0E49\u0E19\u0E01\u0E34\u0E19\u0E17\u0E31\u0E49\u0E07 memory \u0E41\u0E25\u0E30 resource \u0E21\u0E32\u0E01\u0E46. \u0E1C\u0E25\u0E17\u0E35\u0E48\u0E40\u0E01\u0E34\u0E14\u0E02\u0E36\u0E49\u0E19\u0E04\u0E37\u0E2D\u0E16\u0E49\u0E32\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49\u0E1A\u0E48\u0E2D\u0E22\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B \u0E2B\u0E23\u0E37\u0E2D\u0E43\u0E2B\u0E0D\u0E48\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B\u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E01\u0E34\u0E14 connection timeouts \u0E44\u0E14\u0E49. \u0E43\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49 getProgramAccounts endpoint \u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E19\u0E31\u0E1A\u0E2A\u0E19\u0E38\u0E19 pagination. \u0E16\u0E49\u0E32\u0E1C\u0E25\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E43\u0E2B\u0E0D\u0E48\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E08\u0E30\u0E16\u0E39\u0E01\u0E15\u0E31\u0E14\u0E17\u0E34\u0E49\u0E07.

    \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2B\u0E25\u0E35\u0E01\u0E2B\u0E19\u0E35\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E19\u0E35\u0E49, getProgramAccounts \u0E40\u0E25\u0E22\u0E21\u0E35 parameters \u0E43\u0E2B\u0E49\u0E43\u0E0A\u0E49: \u0E0A\u0E37\u0E48\u0E2D, dataSlice \u0E41\u0E25\u0E30 filters options memcmp \u0E41\u0E25\u0E30 dataSize. \u0E16\u0E49\u0E32\u0E43\u0E0A\u0E49 parameters \u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49, \u0E40\u0E23\u0E32\u0E08\u0E30\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E14\u0E02\u0E2D\u0E1A\u0E40\u0E02\u0E15\u0E02\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E43\u0E2B\u0E49\u0E41\u0E04\u0E1A\u0E25\u0E07\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E04\u0E27\u0E1A\u0E04\u0E38\u0E21 \u0E41\u0E25\u0E30\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13\u0E02\u0E19\u0E32\u0E14\u0E02\u0E2D\u0E07\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E17\u0E4C\u0E44\u0E14\u0E49.

    ",2),_n=s("\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B\u0E02\u0E2D\u0E07 "),gn=n("code",null,"getProgramAccounts",-1),hn=s(" \u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07\u0E01\u0E31\u0E1A "),yn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},An=s("SPL-Token Program"),wn=s(" \u0E40\u0E0A\u0E48\u0E19 \u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 accounts \u0E17\u0E35\u0E48 Token Program \u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 "),Cn=s("\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E41\u0E1A\u0E1A\u0E1B\u0E01\u0E15\u0E34"),Sn=s(" \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E1B\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E21\u0E32\u0E01\u0E21\u0E32\u0E22 \u0E41\u0E15\u0E48\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E43\u0E2A\u0E48 parameters \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22\u0E40\u0E23\u0E32\u0E08\u0E30\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 request \u0E44\u0E14\u0E49\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E20\u0E32\u0E1E \u0E41\u0E25\u0E30\u0E44\u0E14\u0E49 data \u0E40\u0E09\u0E1E\u0E32\u0E30\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49."),Pn=o('

    filters

    parameter \u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E1A\u0E48\u0E2D\u0E22\u0E46 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A getProgramAccounts \u0E04\u0E37\u0E2D filters array. \u0E0B\u0E36\u0E48\u0E07 array \u0E19\u0E35\u0E49\u0E08\u0E30\u0E23\u0E31\u0E1A filters 2 \u0E41\u0E1A\u0E1A\u0E04\u0E37\u0E2D dataSize \u0E41\u0E25\u0E30 memcmp \u0E01\u0E48\u0E2D\u0E19\u0E17\u0E35\u0E48\u0E08\u0E30\u0E43\u0E0A\u0E49 filters \u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E01\u0E48\u0E2D\u0E19\u0E27\u0E48\u0E32 data \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E23\u0E49\u0E2D\u0E07\u0E02\u0E2D\u0E21\u0E35\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E31\u0E07\u0E44\u0E07 \u0E41\u0E25\u0E30\u0E08\u0E31\u0E14\u0E40\u0E23\u0E35\u0E22\u0E07\u0E44\u0E27\u0E49\u0E22\u0E31\u0E07\u0E44\u0E07.

    dataSize

    ',3),Tn=s("\u0E43\u0E19\u0E01\u0E23\u0E13\u0E35\u0E02\u0E2D\u0E07 Token Program, \u0E40\u0E23\u0E32\u0E08\u0E30\u0E40\u0E2B\u0E47\u0E19\u0E27\u0E48\u0E32 "),Dn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},En=s("token accounts \u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 165 bytes"),Nn=s(". \u0E41\u0E25\u0E30 token account \u0E08\u0E30\u0E21\u0E35 8 fields \u0E17\u0E35\u0E48\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E01\u0E31\u0E19\u0E42\u0E14\u0E22\u0E41\u0E15\u0E48\u0E25\u0E30 field \u0E08\u0E30\u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 bytes \u0E17\u0E35\u0E48\u0E41\u0E19\u0E48\u0E19\u0E2D\u0E19 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E2A\u0E14\u0E07 visualize \u0E27\u0E48\u0E32 data \u0E21\u0E35\u0E01\u0E32\u0E23\u0E27\u0E32\u0E07\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E31\u0E07\u0E44\u0E07\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E23\u0E39\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07."),vn=o('

    Account Size

    \u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E2B\u0E32\u0E17\u0E38\u0E01\u0E46 token accounts \u0E42\u0E14\u0E22\u0E21\u0E35 wallet address \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07, \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E2A\u0E48 { dataSize: 165 } \u0E43\u0E19 filters \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E25\u0E14\u0E02\u0E2D\u0E1A\u0E40\u0E02\u0E15\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E43\u0E2B\u0E49\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E40\u0E09\u0E1E\u0E32\u0E30 accounts \u0E17\u0E35\u0E48\u0E02\u0E19\u0E32\u0E14 165 bytes \u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 \u0E41\u0E15\u0E48\u0E40\u0E17\u0E48\u0E32\u0E19\u0E35\u0E49\u0E01\u0E47\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E14\u0E35\u0E1E\u0E2D \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E2A\u0E48 filter \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22\u0E27\u0E48\u0E32\u0E40\u0E23\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07 (owner) \u0E21\u0E31\u0E19\u0E14\u0E49\u0E27\u0E22 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E17\u0E33\u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22\u0E01\u0E32\u0E23\u0E40\u0E1E\u0E34\u0E48\u0E21 memcmp filter \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B.

    memcmp

    memcmp filter \u0E2B\u0E23\u0E37\u0E2D "memory comparison" filter, \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E23\u0E35\u0E22\u0E1A\u0E40\u0E17\u0E35\u0E22\u0E1A data \u0E43\u0E19 field \u0E44\u0E2B\u0E19\u0E01\u0E47\u0E44\u0E14\u0E49\u0E17\u0E35\u0E48\u0E40\u0E01\u0E47\u0E1A\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u200B account \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32. \u0E42\u0E14\u0E22\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E40\u0E09\u0E1E\u0E32\u0E30 accounts \u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A bytes \u0E17\u0E35\u0E48\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07\u0E43\u0E14\u0E46. memcmp \u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 2 arguments:

    • offset: \u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E17\u0E35\u0E22\u0E1A data \u0E21\u0E35\u0E02\u0E19\u0E32\u0E14\u0E40\u0E1B\u0E47\u0E19 bytes \u0E41\u0E25\u0E30\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E40\u0E15\u0E47\u0E21.
    • bytes: \u0E04\u0E37\u0E2D data \u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A account's data. \u0E08\u0E30\u0E43\u0E0A\u0E49 base-58 encoded string \u0E02\u0E19\u0E32\u0E14\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 129 bytes.

    \u0E41\u0E15\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E30\u0E27\u0E31\u0E07\u0E44\u0E27\u0E49\u0E27\u0E48\u0E32 memcmp \u0E08\u0E30\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E21\u0E32\u0E01\u0E47\u0E15\u0E48\u0E2D\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E40\u0E08\u0E2D bytes \u0E15\u0E23\u0E07\u0E01\u0E31\u0E19\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 \u0E0B\u0E36\u0E48\u0E07\u0E43\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E17\u0E35\u0E22\u0E1A\u0E2B\u0E32\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32 \u0E2B\u0E23\u0E37\u0E2D\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32 bytes \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E43\u0E2A\u0E48\u0E44\u0E1B\u0E44\u0E14\u0E49

    \u0E43\u0E19\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07 Token Program \u0E2D\u0E31\u0E19\u0E15\u0E48\u0E2D\u0E44\u0E1B, \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E43\u0E2B\u0E49\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32\u0E21\u0E32\u0E40\u0E09\u0E1E\u0E32\u0E30 token account \u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A wallet address \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32 \u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E25\u0E2D\u0E07\u0E14\u0E39\u0E17\u0E35\u0E48 token account \u0E08\u0E30\u0E40\u0E2B\u0E47\u0E19\u0E27\u0E48\u0E32 2 fields \u0E41\u0E23\u0E01\u0E1A\u0E19 token account \u0E04\u0E37\u0E2D pubkeys, \u0E41\u0E25\u0E30\u0E41\u0E15\u0E48\u0E25\u0E30 pubkey \u0E08\u0E30\u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 32 bytes \u0E42\u0E14\u0E22\u0E17\u0E35\u0E48 owner \u0E08\u0E30\u0E2D\u0E22\u0E39\u0E48\u0E17\u0E35\u0E48 field \u0E17\u0E35\u0E48 2 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E34\u0E48\u0E21 memcmp \u0E17\u0E35\u0E48 offset \u0E17\u0E35\u0E48 32 bytes \u0E08\u0E32\u0E01\u0E15\u0E23\u0E07\u0E19\u0E31\u0E49\u0E19\u0E40\u0E23\u0E32\u0E01\u0E47\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E21\u0E2D\u0E07\u0E2B\u0E32 account \u0E17\u0E35\u0E48 ower \u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A wallet address \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32

    Account Size

    \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E2D\u0E07 query \u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07:

    ',9),Mn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.13e583fe.js b/docs/.vuepress/dist/assets/get-program-accounts.html.13e583fe.js index 54d119e19..4a1031d4e 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.13e583fe.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.13e583fe.js @@ -1,4 +1,4 @@ -import{_ as r,r as l,o as i,c as m,a as n,b as a,w as t,F as b,d as s,e as c}from"./app.55b1b60c.js";var k="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},g=n("h1",{id:"obtenir-les-comptes-d-un-programme",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#obtenir-les-comptes-d-un-programme","aria-hidden":"true"},"#"),s(" Obtenir les comptes d'un programme")],-1),_=n("p",null,[s("Il existe une m\xE9thode RPC qui renvoie tous les comptes appartenant \xE0 un programme. Actuellement, la pagination n'est pas prise en charge. Les requ\xEAtes \xE0 "),n("code",null,"getProgramAccounts"),s(" devraient inclure les param\xE8tres "),n("code",null,"dataSlice"),s(" et/ou "),n("code",null,"filters"),s(" afin d'am\xE9liorer le temps de r\xE9ponse et retourner uniquement les r\xE9sultats voulus.")],-1),h=n("h2",{id:"faits",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#faits","aria-hidden":"true"},"#"),s(" Faits")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Param\xE8tres",-1),v=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Cl\xE9 publique du programme \xE0 interroger, fournie sous forme de cha\xEEne de caract\xE8res cod\xE9e en base58")],-1),w=s("(optionnel) "),C=n("code",null,"configOrCommitment",-1),P=s(": "),S=n("code",null,"object",-1),T=s(" - Param\xE8tres de configuration contenant les champs facultatifs suivants : "),D=s("(optionnel) "),E=n("code",null,"commitment",-1),N=s(": "),x=n("code",null,"string",-1),L=s(" - "),q={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},M=s("Engagement de l'\xC9tat (State commitment)"),R=s("(optionnel) "),K=n("code",null,"encoding",-1),G=s(": "),B=n("code",null,"string",-1),z=s(" - L'encodage des donn\xE9es du compte, peut \xEAtre: "),j=n("code",null,"base58",-1),F=s(", "),H=n("code",null,"base64",-1),Z=s(", ou "),Q=n("code",null,"jsonParsed",-1),U=s(". Remarque : les utilisateurs de web3js doivent plut\xF4t utiliser "),W={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},J=s("getParsedProgramAccounts"),V=c("
  • (optionnel) dataSlice: object - Param\xE8tres permettant de limiter les donn\xE9es \xE0 renvoyer :
    • offset: number - Nombre de bytes dans les donn\xE9es du compte \xE0 partir desquels il faut commencer \xE0 retourner
    • length: number - Nombre de bytes de donn\xE9es du compte \xE0 retourner
  • (optionnel) filters: array - Param\xE8tres pour filtrer les r\xE9sultats :
    • memcmp: object - Correspondance d'une s\xE9rie de bytes avec les donn\xE9es du compte :
      • offset: number - Nombre de bytes dans les donn\xE9es du compte \xE0 partir desquels il faut commencer \xE0 comparer
      • bytes: string - Donn\xE9es \xE0 comparer, sous la forme d'une cha\xEEne de caract\xE8res cod\xE9e en base58 limit\xE9e \xE0 129 bytes
    • dataSize: number - Compare la longueur des donn\xE9es du compte avec la taille des donn\xE9es fournies
  • ",2),Y=s("(optionnel) "),O=n("code",null,"withContext",-1),X=s(": "),I=n("code",null,"boolean",-1),$=s(" - Enveloppe le r\xE9sultat dans un "),nn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},sn=s("objet JSON RpcResponse"),an=c('
    R\xE9ponse

    Par d\xE9faut, getProgramAccounts retournera un tableau d'objets JSON avec la structure suivante :

    • pubkey: string - La cl\xE9 publique du compte sous la forme d'une cha\xEEne de caract\xE8res encod\xE9e en base58
    • account: object - un objet JSON, avec les sous-champs suivants :
      • lamports: number, nombre de lamports allou\xE9s au compte
      • owner: string, La cl\xE9 publique du programme auquel le compte a \xE9t\xE9 attribu\xE9, encod\xE9e en base58
      • data: string | object - les donn\xE9es associ\xE9es au compte, soit sous forme de donn\xE9es binaires, soit au format JSON, conform\xE9ment au param\xE8tre d'encodage fourni
      • executable: boolean, Indique si le compte contient un programme
      • rentEpoch: number, L'\xE9poque \xE0 laquelle ce compte devra payer sa prochaine rente
    ',3),en=n("h2",{id:"examen-plus-approfondi",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#examen-plus-approfondi","aria-hidden":"true"},"#"),s(" Examen plus approfondi")],-1),tn=n("p",null,[n("code",null,"getProgramAccounts"),s(" est une m\xE9thode RPC polyvalente qui renvoie tous les comptes appartenant \xE0 un programme. Nous pouvons utiliser "),n("code",null,"getProgramAccounts"),s(" pour un certain nombre de requ\xEAtes utiles, telles que la recherche de :")],-1),on=n("li",null,"Tous les comptes de jetons pour un portefeuille en particulier",-1),cn=s("Tous les comptes de jetons pour un mint en particulier (par exemple, tous les propri\xE9taires (holders) de "),ln={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},pn=s("SRM"),un=s(")"),rn=s("Tous les comptes pour un programme en particulier (par exemple, tous les utilisateurs de "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),kn=s(")"),dn=c("

    Malgr\xE9 son utilit\xE9, getProgramAccounts est souvent mal compris en raison de ses limites actuelles. La plupart des requ\xEAtes support\xE9es par getProgramAccounts n\xE9cessitent des n\u0153uds RPC pour analyser de grands ensembles de donn\xE9es. Ces analyses sont \xE0 la fois gourmandes en m\xE9moire et en ressources. Par cons\xE9quent, les appels trop fr\xE9quents ou de trop grande envergure peuvent entra\xEEner des interruptions de connexion. De plus, au moment o\xF9 nous \xE9crivons ces lignes, le point de terminaison getProgramAccounts ne prend pas en charge la pagination. Si les r\xE9sultats d'une requ\xEAte sont trop volumineux, la r\xE9ponse sera tronqu\xE9e.

    Pour contourner ces contraintes actuelles, getProgramAccounts offre un certain nombre de param\xE8tres utiles : \xE0 savoir, dataSlice et les options de filters memcmp et dataSize. En fournissant des combinaisons de ces param\xE8tres, nous pouvons r\xE9duire la port\xE9e de nos requ\xEAtes \xE0 des tailles g\xE9rables et pr\xE9visibles.

    ",2),fn=s("Un exemple courant de "),gn=n("code",null,"getProgramAccounts",-1),_n=s(" consiste \xE0 interagir avec le "),hn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("Programme de Jetons SPL"),An=s(". Demander tous les comptes d\xE9tenus par le programme de Jetons avec un "),vn=s("appel de base"),wn=s(" impliquerait une \xE9norme quantit\xE9 de donn\xE9es. Cependant, en fournissant des param\xE8tres, nous pouvons efficacement demander uniquement les donn\xE9es que nous avons l'intention d'utiliser."),Cn=c('

    filters

    Le param\xE8tre le plus commun \xE0 utiliser avec getProgramAccounts est le tableau filters. Ce tableau accepte deux types de filtres, dataSize et memcmp. Avant d'utiliser l'un de ces filtres, nous devons nous familiariser avec la mani\xE8re dont les donn\xE9es que nous demandons sont organis\xE9es et s\xE9rialis\xE9es.

    dataSize

    ',3),Pn=s("Dans le cas du Programme de Jetons, nous pouvons constater que "),Sn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Tn=s("les comptes de jetons ont une taille de 165 bytes"),Dn=s(". Plus pr\xE9cis\xE9ment, un compte de jeton comporte huit champs diff\xE9rents, chaque champ ayant un nombre pr\xE9d\xE9fini de bytes. Nous pouvons visualiser comment ces donn\xE9es sont organis\xE9es \xE0 l'aide de l'illustration ci-dessous."),En=c('

    Taille des comptes

    Si nous voulions trouver tous les comptes de jetons appartenant \xE0 notre adresse de portefeuille, nous pourrions ajouter { dataSize: 165 } \xE0 notre tableau filters pour limiter notre requ\xEAte aux seuls comptes qui font exactement 165 bytes de long. Toutefois, cela ne suffirait pas. Nous devrions \xE9galement ajouter un filtre qui recherche les comptes appartenant \xE0 notre adresse. Nous pouvons r\xE9aliser cela avec le filtre memcmp.

    memcmp

    Le filtre memcmp, ou filtre "comparaison de m\xE9moire", nous permet de comparer des donn\xE9es \xE0 n'importe quel champ stock\xE9 sur notre compte. Plus pr\xE9cis\xE9ment, nous pouvons rechercher uniquement les comptes qui poss\xE8dent un certain ensemble de bytes \xE0 une position pr\xE9cise. memcmp n\xE9cessite deux arguments :

    • offset: La position \xE0 partir de laquelle il faut commencer \xE0 comparer les donn\xE9es. Cette position est mesur\xE9e en bytes et est exprim\xE9e sous la forme d'un nombre entier.
    • bytes: Les donn\xE9es qui doivent correspondre aux donn\xE9es du compte. Elles sont repr\xE9sent\xE9es sous la forme d'une cha\xEEne de caract\xE8res cod\xE9es en base 58 qui doit \xEAtre limit\xE9e \xE0 moins de 129 bytes.

    Il est important de noter que memcmp ne retournera que les r\xE9sultats qui correspondent exactement aux bytes. Actuellement, il ne supporte pas les comparaisons pour les valeurs inf\xE9rieures ou sup\xE9rieures aux bytes que nous fournissons.

    Pour rester dans notre exemple du Programme de Jetons, nous pouvons modifier notre requ\xEAte pour ne renvoyer que les comptes de jetons qui appartiennent \xE0 notre adresse de portefeuille. En examinant un compte de jetons, on constate que les deux premiers champs stock\xE9s sur un compte de jetons sont tous deux des cl\xE9s publiques, et que chaque cl\xE9 publique a une longueur de 32 octets. \xC9tant donn\xE9 que owner est le deuxi\xE8me champ, nous devrions commencer notre memcmp \xE0 un offset de 32 bytes. A partir de l\xE0, nous allons rechercher les comptes dont le champ propri\xE9taire (owner) correspond \xE0 l'adresse de notre portefeuille.

    Taille des comptes

    Nous pouvons faire appel \xE0 cette requ\xEAte via l'exemple suivant :

    ',9),Nn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as r,r as l,o as i,c as m,a as n,b as a,w as t,F as b,d as s,e as c}from"./app.55b1b60c.js";var k="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},g=n("h1",{id:"obtenir-les-comptes-d-un-programme",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#obtenir-les-comptes-d-un-programme","aria-hidden":"true"},"#"),s(" Obtenir les comptes d'un programme")],-1),_=n("p",null,[s("Il existe une m\xE9thode RPC qui renvoie tous les comptes appartenant \xE0 un programme. Actuellement, la pagination n'est pas prise en charge. Les requ\xEAtes \xE0 "),n("code",null,"getProgramAccounts"),s(" devraient inclure les param\xE8tres "),n("code",null,"dataSlice"),s(" et/ou "),n("code",null,"filters"),s(" afin d'am\xE9liorer le temps de r\xE9ponse et retourner uniquement les r\xE9sultats voulus.")],-1),h=n("h2",{id:"faits",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#faits","aria-hidden":"true"},"#"),s(" Faits")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Param\xE8tres",-1),v=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Cl\xE9 publique du programme \xE0 interroger, fournie sous forme de cha\xEEne de caract\xE8res cod\xE9e en base58")],-1),w=s("(optionnel) "),C=n("code",null,"configOrCommitment",-1),P=s(": "),S=n("code",null,"object",-1),T=s(" - Param\xE8tres de configuration contenant les champs facultatifs suivants : "),D=s("(optionnel) "),E=n("code",null,"commitment",-1),N=s(": "),x=n("code",null,"string",-1),L=s(" - "),q={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},M=s("Engagement de l'\xC9tat (State commitment)"),R=s("(optionnel) "),K=n("code",null,"encoding",-1),G=s(": "),B=n("code",null,"string",-1),z=s(" - L'encodage des donn\xE9es du compte, peut \xEAtre: "),j=n("code",null,"base58",-1),F=s(", "),H=n("code",null,"base64",-1),Z=s(", ou "),Q=n("code",null,"jsonParsed",-1),U=s(". Remarque : les utilisateurs de web3js doivent plut\xF4t utiliser "),W={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},J=s("getParsedProgramAccounts"),V=c("
  • (optionnel) dataSlice: object - Param\xE8tres permettant de limiter les donn\xE9es \xE0 renvoyer :
    • offset: number - Nombre de bytes dans les donn\xE9es du compte \xE0 partir desquels il faut commencer \xE0 retourner
    • length: number - Nombre de bytes de donn\xE9es du compte \xE0 retourner
  • (optionnel) filters: array - Param\xE8tres pour filtrer les r\xE9sultats :
    • memcmp: object - Correspondance d'une s\xE9rie de bytes avec les donn\xE9es du compte :
      • offset: number - Nombre de bytes dans les donn\xE9es du compte \xE0 partir desquels il faut commencer \xE0 comparer
      • bytes: string - Donn\xE9es \xE0 comparer, sous la forme d'une cha\xEEne de caract\xE8res cod\xE9e en base58 limit\xE9e \xE0 129 bytes
    • dataSize: number - Compare la longueur des donn\xE9es du compte avec la taille des donn\xE9es fournies
  • ",2),Y=s("(optionnel) "),O=n("code",null,"withContext",-1),X=s(": "),I=n("code",null,"boolean",-1),$=s(" - Enveloppe le r\xE9sultat dans un "),nn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},sn=s("objet JSON RpcResponse"),an=c('
    R\xE9ponse

    Par d\xE9faut, getProgramAccounts retournera un tableau d'objets JSON avec la structure suivante :

    • pubkey: string - La cl\xE9 publique du compte sous la forme d'une cha\xEEne de caract\xE8res encod\xE9e en base58
    • account: object - un objet JSON, avec les sous-champs suivants :
      • lamports: number, nombre de lamports allou\xE9s au compte
      • owner: string, La cl\xE9 publique du programme auquel le compte a \xE9t\xE9 attribu\xE9, encod\xE9e en base58
      • data: string | object - les donn\xE9es associ\xE9es au compte, soit sous forme de donn\xE9es binaires, soit au format JSON, conform\xE9ment au param\xE8tre d'encodage fourni
      • executable: boolean, Indique si le compte contient un programme
      • rentEpoch: number, L'\xE9poque \xE0 laquelle ce compte devra payer sa prochaine rente
    ',3),en=n("h2",{id:"examen-plus-approfondi",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#examen-plus-approfondi","aria-hidden":"true"},"#"),s(" Examen plus approfondi")],-1),tn=n("p",null,[n("code",null,"getProgramAccounts"),s(" est une m\xE9thode RPC polyvalente qui renvoie tous les comptes appartenant \xE0 un programme. Nous pouvons utiliser "),n("code",null,"getProgramAccounts"),s(" pour un certain nombre de requ\xEAtes utiles, telles que la recherche de :")],-1),on=n("li",null,"Tous les comptes de jetons pour un portefeuille en particulier",-1),cn=s("Tous les comptes de jetons pour un mint en particulier (par exemple, tous les propri\xE9taires (holders) de "),ln={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},pn=s("SRM"),un=s(")"),rn=s("Tous les comptes pour un programme en particulier (par exemple, tous les utilisateurs de "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),kn=s(")"),dn=c("

    Malgr\xE9 son utilit\xE9, getProgramAccounts est souvent mal compris en raison de ses limites actuelles. La plupart des requ\xEAtes support\xE9es par getProgramAccounts n\xE9cessitent des n\u0153uds RPC pour analyser de grands ensembles de donn\xE9es. Ces analyses sont \xE0 la fois gourmandes en m\xE9moire et en ressources. Par cons\xE9quent, les appels trop fr\xE9quents ou de trop grande envergure peuvent entra\xEEner des interruptions de connexion. De plus, au moment o\xF9 nous \xE9crivons ces lignes, le point de terminaison getProgramAccounts ne prend pas en charge la pagination. Si les r\xE9sultats d'une requ\xEAte sont trop volumineux, la r\xE9ponse sera tronqu\xE9e.

    Pour contourner ces contraintes actuelles, getProgramAccounts offre un certain nombre de param\xE8tres utiles : \xE0 savoir, dataSlice et les options de filters memcmp et dataSize. En fournissant des combinaisons de ces param\xE8tres, nous pouvons r\xE9duire la port\xE9e de nos requ\xEAtes \xE0 des tailles g\xE9rables et pr\xE9visibles.

    ",2),fn=s("Un exemple courant de "),gn=n("code",null,"getProgramAccounts",-1),_n=s(" consiste \xE0 interagir avec le "),hn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("Programme de Jetons SPL"),An=s(". Demander tous les comptes d\xE9tenus par le programme de Jetons avec un "),vn=s("appel de base"),wn=s(" impliquerait une \xE9norme quantit\xE9 de donn\xE9es. Cependant, en fournissant des param\xE8tres, nous pouvons efficacement demander uniquement les donn\xE9es que nous avons l'intention d'utiliser."),Cn=c('

    filters

    Le param\xE8tre le plus commun \xE0 utiliser avec getProgramAccounts est le tableau filters. Ce tableau accepte deux types de filtres, dataSize et memcmp. Avant d'utiliser l'un de ces filtres, nous devons nous familiariser avec la mani\xE8re dont les donn\xE9es que nous demandons sont organis\xE9es et s\xE9rialis\xE9es.

    dataSize

    ',3),Pn=s("Dans le cas du Programme de Jetons, nous pouvons constater que "),Sn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Tn=s("les comptes de jetons ont une taille de 165 bytes"),Dn=s(". Plus pr\xE9cis\xE9ment, un compte de jeton comporte huit champs diff\xE9rents, chaque champ ayant un nombre pr\xE9d\xE9fini de bytes. Nous pouvons visualiser comment ces donn\xE9es sont organis\xE9es \xE0 l'aide de l'illustration ci-dessous."),En=c('

    Taille des comptes

    Si nous voulions trouver tous les comptes de jetons appartenant \xE0 notre adresse de portefeuille, nous pourrions ajouter { dataSize: 165 } \xE0 notre tableau filters pour limiter notre requ\xEAte aux seuls comptes qui font exactement 165 bytes de long. Toutefois, cela ne suffirait pas. Nous devrions \xE9galement ajouter un filtre qui recherche les comptes appartenant \xE0 notre adresse. Nous pouvons r\xE9aliser cela avec le filtre memcmp.

    memcmp

    Le filtre memcmp, ou filtre "comparaison de m\xE9moire", nous permet de comparer des donn\xE9es \xE0 n'importe quel champ stock\xE9 sur notre compte. Plus pr\xE9cis\xE9ment, nous pouvons rechercher uniquement les comptes qui poss\xE8dent un certain ensemble de bytes \xE0 une position pr\xE9cise. memcmp n\xE9cessite deux arguments :

    • offset: La position \xE0 partir de laquelle il faut commencer \xE0 comparer les donn\xE9es. Cette position est mesur\xE9e en bytes et est exprim\xE9e sous la forme d'un nombre entier.
    • bytes: Les donn\xE9es qui doivent correspondre aux donn\xE9es du compte. Elles sont repr\xE9sent\xE9es sous la forme d'une cha\xEEne de caract\xE8res cod\xE9es en base 58 qui doit \xEAtre limit\xE9e \xE0 moins de 129 bytes.

    Il est important de noter que memcmp ne retournera que les r\xE9sultats qui correspondent exactement aux bytes. Actuellement, il ne supporte pas les comparaisons pour les valeurs inf\xE9rieures ou sup\xE9rieures aux bytes que nous fournissons.

    Pour rester dans notre exemple du Programme de Jetons, nous pouvons modifier notre requ\xEAte pour ne renvoyer que les comptes de jetons qui appartiennent \xE0 notre adresse de portefeuille. En examinant un compte de jetons, on constate que les deux premiers champs stock\xE9s sur un compte de jetons sont tous deux des cl\xE9s publiques, et que chaque cl\xE9 publique a une longueur de 32 octets. \xC9tant donn\xE9 que owner est le deuxi\xE8me champ, nous devrions commencer notre memcmp \xE0 un offset de 32 bytes. A partir de l\xE0, nous allons rechercher les comptes dont le champ propri\xE9taire (owner) correspond \xE0 l'adresse de notre portefeuille.

    Taille des comptes

    Nous pouvons faire appel \xE0 cette requ\xEAte via l'exemple suivant :

    ',9),Nn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.2027870e.js b/docs/.vuepress/dist/assets/get-program-accounts.html.2027870e.js index eb50a1fe3..a97fea6d6 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.2027870e.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.2027870e.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,o as r,c as m,a as n,b as a,w as t,F as b,d as s,e as o}from"./app.55b1b60c.js";var k="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},h=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("An RPC method that returns all accounts owned by a program. Currently pagination is not supported. Requests to "),n("code",null,"getProgramAccounts"),s(" should include the "),n("code",null,"dataSlice"),s(" and/or "),n("code",null,"filters"),s(" parameters to improve response time and return only intended results.")],-1),_=n("h2",{id:"facts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#facts","aria-hidden":"true"},"#"),s(" Facts")],-1),y={class:"custom-container tip"},w=n("p",{class:"custom-container-title"},"Parameters",-1),A=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Pubkey of the program to query, provided as a base58 encoded string")],-1),T=s("(optional) "),C=n("code",null,"configOrCommitment",-1),S=s(": "),P=n("code",null,"object",-1),v=s(" - Configuration parameters containing the following optional fields: "),D=s("(optional) "),E=n("code",null,"commitment",-1),N=s(": "),M=n("code",null,"string",-1),R=s(" - "),B={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},K=s("State commitment"),G=s("(optional) "),L=n("code",null,"encoding",-1),x=s(": "),z=n("code",null,"string",-1),F=s(" - Encoding for account data, either: "),H=n("code",null,"base58",-1),W=s(", "),Z=n("code",null,"base64",-1),Q=s(", or "),U=n("code",null,"jsonParsed",-1),j=s(". Note, web3js users should instead use "),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},I=s("getParsedProgramAccounts"),O=o("
  • (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
  • (optional) filters: array - Filter results using the following filter objects:
    • memcmp: object - Match a series of bytes to account data:
      • offset: number - Number of bytes into account data to begin comparing
      • bytes: string - Data to match, as base58 encoded string limited to 129 bytes
    • dataSize: number - Compares the account data length with the provided data size
  • ",2),Y=s("(optional) "),J=n("code",null,"withContext",-1),X=s(": "),q=n("code",null,"boolean",-1),$=s(" - Wrap the result in an "),nn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},sn=s("RpcResponse JSON object"),an=o('
    Response

    By default getProgramAccounts will return an array of JSON objects with the following structure:

    • pubkey: string - The account pubkey as a base58 encoded string
    • account: object - a JSON object, with the following sub fields:
      • lamports: number, number of lamports assigned to the account
      • owner: string, The base58 encoded pubkey of the program the account has been assigned to
      • data: string | object - data associated with the account, either as encoded binary data or JSON format depending on the provided encoding parameter
      • executable: boolean, Indication if the account contains a program
      • rentEpoch: number, The epoch at which this account will next owe rent
    ',3),en=n("h2",{id:"deep-dive",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#deep-dive","aria-hidden":"true"},"#"),s(" Deep Dive")],-1),tn=n("p",null,[n("code",null,"getProgramAccounts"),s(" is a versatile RPC method that returns all accounts owned by a program. We can use "),n("code",null,"getProgramAccounts"),s(" for a number of useful queries, such as finding:")],-1),cn=n("li",null,"All token accounts for a particular wallet",-1),on=s("All token accounts for a particular mint (i.e. All "),ln={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},pn=s("SRM"),un=s(" holders)"),rn=s("All custom accounts for a particular program (i.e. All "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),kn=s(" users)"),dn=o("

    Despite its usefulness, getProgramAccounts is often misunderstood due to its current constraints. Many of the queries supported by getProgramAccounts require RPC nodes to scan large sets of data. These scans are both memory and resource intensive. As a result, calls that are too frequent or too large in scope can result in connection timeouts. Furthermore, at the time of this writing, the getProgramAccounts endpoint does not support pagination. If the results of a query are too large, the response will be truncated.

    To get around these current constraints, getProgramAccounts offers a number of useful parameters: namely, dataSlice and the filters options memcmp and dataSize. By providing combinations of these parameters, we can reduce the scope of our queries down to manageable and predictable sizes.

    ",2),fn=s("A common example of "),hn=n("code",null,"getProgramAccounts",-1),gn=s(" involves interacting with the "),_n={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("SPL-Token Program"),wn=s(". Requesting all accounts owned by the Token Program with a "),An=s("basic call"),Tn=s(" would involve an enormous amount of data. By providing parameters, however, we can efficiently request just the data we intend to use."),Cn=o('

    filters

    The most common parameter to use with getProgramAccounts is the filters array. This array accepts two types of filters,dataSize and memcmp. Before using either of these filters, we should be familiar with how the data we are requesting is laid out and serialized.

    dataSize

    ',3),Sn=s("In the case of the Token Program, we can see that "),Pn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},vn=s("token accounts are 165 bytes in length"),Dn=s(". Specifically, a token account has eight different fields, with each field requiring a predictable number of bytes. We can visualize how this data is laid out using the below illustration."),En=o('

    Account Size

    If we wanted to find all token accounts owned by our wallet address, we could add { dataSize: 165 } to our filters array to narrow the scope of our query to just accounts that are exactly 165 bytes in length. This alone, however, would be insufficient. We would also need to add a filter that looks for accounts owned by our address. We can achieve this with the memcmp filter.

    memcmp

    The memcmp filter, or "memory comparison" filter, allows us to compare data at any field stored on our account. Specifically, we can query only for accounts that match a particular set of bytes at a particular position. memcmp requires two arguments:

    • offset: The position at which to begin comparing data. This position is measured in bytes and is expressed as an integer.
    • bytes: The data that should match the account's data. This is represented as a base-58 encoded string should be limited to less than 129 bytes.

    It's important to note that memcmp will only return results that are an exact match on bytes. Currently, it does not support comparisons for values that are less than or greater than the bytes we provide.

    In keeping with our Token Program example, we can amend our query to only return token accounts that are owned by our wallet address. When looking at a token account, we can see the first two fields stored on a token account are both pubkeys, and that each pubkey is 32 bytes in length. Given that owner is the second field, we should begin our memcmp at an offset of 32 bytes. From here, we\u2019ll be looking for accounts whose owner field matches our wallet address.

    Account Size

    We can invoke this query via the following example:

    ',9),Nn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as m,a as n,b as a,w as t,F as b,d as s,e as o}from"./app.55b1b60c.js";var k="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},h=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("An RPC method that returns all accounts owned by a program. Currently pagination is not supported. Requests to "),n("code",null,"getProgramAccounts"),s(" should include the "),n("code",null,"dataSlice"),s(" and/or "),n("code",null,"filters"),s(" parameters to improve response time and return only intended results.")],-1),_=n("h2",{id:"facts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#facts","aria-hidden":"true"},"#"),s(" Facts")],-1),y={class:"custom-container tip"},w=n("p",{class:"custom-container-title"},"Parameters",-1),A=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Pubkey of the program to query, provided as a base58 encoded string")],-1),T=s("(optional) "),C=n("code",null,"configOrCommitment",-1),S=s(": "),P=n("code",null,"object",-1),v=s(" - Configuration parameters containing the following optional fields: "),D=s("(optional) "),E=n("code",null,"commitment",-1),N=s(": "),M=n("code",null,"string",-1),R=s(" - "),B={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},K=s("State commitment"),G=s("(optional) "),L=n("code",null,"encoding",-1),x=s(": "),z=n("code",null,"string",-1),F=s(" - Encoding for account data, either: "),H=n("code",null,"base58",-1),W=s(", "),Z=n("code",null,"base64",-1),Q=s(", or "),U=n("code",null,"jsonParsed",-1),j=s(". Note, web3js users should instead use "),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},I=s("getParsedProgramAccounts"),O=o("
  • (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
  • (optional) filters: array - Filter results using the following filter objects:
    • memcmp: object - Match a series of bytes to account data:
      • offset: number - Number of bytes into account data to begin comparing
      • bytes: string - Data to match, as base58 encoded string limited to 129 bytes
    • dataSize: number - Compares the account data length with the provided data size
  • ",2),Y=s("(optional) "),J=n("code",null,"withContext",-1),X=s(": "),q=n("code",null,"boolean",-1),$=s(" - Wrap the result in an "),nn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},sn=s("RpcResponse JSON object"),an=o('
    Response

    By default getProgramAccounts will return an array of JSON objects with the following structure:

    • pubkey: string - The account pubkey as a base58 encoded string
    • account: object - a JSON object, with the following sub fields:
      • lamports: number, number of lamports assigned to the account
      • owner: string, The base58 encoded pubkey of the program the account has been assigned to
      • data: string | object - data associated with the account, either as encoded binary data or JSON format depending on the provided encoding parameter
      • executable: boolean, Indication if the account contains a program
      • rentEpoch: number, The epoch at which this account will next owe rent
    ',3),en=n("h2",{id:"deep-dive",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#deep-dive","aria-hidden":"true"},"#"),s(" Deep Dive")],-1),tn=n("p",null,[n("code",null,"getProgramAccounts"),s(" is a versatile RPC method that returns all accounts owned by a program. We can use "),n("code",null,"getProgramAccounts"),s(" for a number of useful queries, such as finding:")],-1),cn=n("li",null,"All token accounts for a particular wallet",-1),on=s("All token accounts for a particular mint (i.e. All "),ln={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},pn=s("SRM"),un=s(" holders)"),rn=s("All custom accounts for a particular program (i.e. All "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),kn=s(" users)"),dn=o("

    Despite its usefulness, getProgramAccounts is often misunderstood due to its current constraints. Many of the queries supported by getProgramAccounts require RPC nodes to scan large sets of data. These scans are both memory and resource intensive. As a result, calls that are too frequent or too large in scope can result in connection timeouts. Furthermore, at the time of this writing, the getProgramAccounts endpoint does not support pagination. If the results of a query are too large, the response will be truncated.

    To get around these current constraints, getProgramAccounts offers a number of useful parameters: namely, dataSlice and the filters options memcmp and dataSize. By providing combinations of these parameters, we can reduce the scope of our queries down to manageable and predictable sizes.

    ",2),fn=s("A common example of "),hn=n("code",null,"getProgramAccounts",-1),gn=s(" involves interacting with the "),_n={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("SPL-Token Program"),wn=s(". Requesting all accounts owned by the Token Program with a "),An=s("basic call"),Tn=s(" would involve an enormous amount of data. By providing parameters, however, we can efficiently request just the data we intend to use."),Cn=o('

    filters

    The most common parameter to use with getProgramAccounts is the filters array. This array accepts two types of filters,dataSize and memcmp. Before using either of these filters, we should be familiar with how the data we are requesting is laid out and serialized.

    dataSize

    ',3),Sn=s("In the case of the Token Program, we can see that "),Pn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},vn=s("token accounts are 165 bytes in length"),Dn=s(". Specifically, a token account has eight different fields, with each field requiring a predictable number of bytes. We can visualize how this data is laid out using the below illustration."),En=o('

    Account Size

    If we wanted to find all token accounts owned by our wallet address, we could add { dataSize: 165 } to our filters array to narrow the scope of our query to just accounts that are exactly 165 bytes in length. This alone, however, would be insufficient. We would also need to add a filter that looks for accounts owned by our address. We can achieve this with the memcmp filter.

    memcmp

    The memcmp filter, or "memory comparison" filter, allows us to compare data at any field stored on our account. Specifically, we can query only for accounts that match a particular set of bytes at a particular position. memcmp requires two arguments:

    • offset: The position at which to begin comparing data. This position is measured in bytes and is expressed as an integer.
    • bytes: The data that should match the account's data. This is represented as a base-58 encoded string should be limited to less than 129 bytes.

    It's important to note that memcmp will only return results that are an exact match on bytes. Currently, it does not support comparisons for values that are less than or greater than the bytes we provide.

    In keeping with our Token Program example, we can amend our query to only return token accounts that are owned by our wallet address. When looking at a token account, we can see the first two fields stored on a token account are both pubkeys, and that each pubkey is 32 bytes in length. Given that owner is the second field, we should begin our memcmp at an offset of 32 bytes. From here, we\u2019ll be looking for accounts whose owner field matches our wallet address.

    Account Size

    We can invoke this query via the following example:

    ',9),Nn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.ab253dc0.js b/docs/.vuepress/dist/assets/get-program-accounts.html.ab253dc0.js index 747c22ac2..df4583a2a 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.ab253dc0.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.ab253dc0.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,o as r,c as m,a as n,b as a,w as c,F as k,e,d as s}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const h={},g=e('

    \u0110\u1ECDc Program Account

    getProgramAccounts l\xE0 m\u1ED9t ph\u01B0\u01A1ng th\u1EE9c RPC gi\xFAp l\u1EA5y d\u1EEF li\u1EC7u c\u1EE7a t\u1EA5t c\u1EA3 c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi Program. L\u01B0u \xFD, ph\xE2n trang v\u1EABn ch\u01B0a \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3 t\u1EA1i th\u1EDDi \u0111i\u1EC3m hi\u1EC7n t\u1EA1i. Vi\u1EC7c g\u1ECDi getProgramAccounts n\xEAn c\xF3 th\xEAm c\xE1c tham s\u1ED1 dataSlice v\xE0/ho\u1EB7c filters \u0111\u1EC3 c\u1EA3i thi\u1EC7n th\u1EDDi gian tr\u1EA3 v\u1EC1 v\u1EDBi k\u1EBFt qu\u1EA3 mong mu\u1ED1n.

    C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt

    ',3),f={class:"custom-container tip"},_=n("p",{class:"custom-container-title"},"Tham s\u1ED1",-1),y=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Kho\xE1 c\xF4ng khai c\u1EE7a Program c\u1EA7n truy v\u1EA5n v\xE0 bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng base58")],-1),v=s("(Tu\u1EF3 ch\u1ECDn) "),A=n("code",null,"configOrCommitment",-1),w=s(": "),T=n("code",null,"object",-1),C=s(" - Tham s\u1ED1 c\xE0i \u0111\u1EB7t c\xF3 ch\u1EE9a c\xE1c tr\u01B0\u1EDDng tu\u1EF3 ch\u1ECDn sau: "),P=s("(Tu\u1EF3 ch\u1ECDn) "),S=n("code",null,"commitment",-1),D=s(": "),E=n("code",null,"string",-1),N=s(" - "),M={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},K=s("State commitment"),L=s("(Tu\u1EF3 ch\u1ECDn) "),R=n("code",null,"encoding",-1),B=s(": "),G=n("code",null,"string",-1),x=s(" - Ki\u1EC3u m\xE3 ho\xE1 d\u1EEF li\u1EC7u, m\u1ED9t trong c\xE1c ki\u1EC3u sau: "),z=n("code",null,"base58",-1),F=s(", "),H=n("code",null,"base64",-1),Z=s(", "),Q=n("code",null,"jsonParsed",-1),V=s(". L\u01B0u \xFD, ng\u01B0\u1EDDi d\xF9ng web3js n\xEAn s\u1EED d\u1EE5ng "),U={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},W=s("getParsedProgramAccounts"),j=e("
  • (Tu\u1EF3 ch\u1ECDn) dataSlice: object - Gi\u1EDBi h\u1EA1n c\xE1c Account tr\u1EA3 v\u1EC1 d\u1EF1a tr\xEAn:
    • offset: number - V\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u cho d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c tr\u1EA3 v\u1EC1 c\u1EE7a Account
    • length: number - \u0110\u1ED9 d\xE0i d\u1EEF li\u1EC7u c\u1EE7a Account c\u1EA7n tr\u1EA3 v\u1EC1 v\xE0 \u0111\u01B0\u1EE3c t\xEDnh t\u1EEB v\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u
  • (Tu\u1EF3 ch\u1ECDn) filters: array - L\u1ECDc c\xE1c k\u1EBFt qu\u1EA3 b\u1EB1ng c\xE1ch s\u1EED d\u1EE5ng c\xE1c b\u1ED9 l\u1ECDc sau:
    • memcmp: object - L\u1ECDc b\u1EB1ng c\xE1ch so s\xE1nh m\u1ED9t chu\u1ED7i d\u1EEF li\u1EC7u d\u01B0\u1EDBi d\u1EA1ng c\xE1c bytes v\u1EDBi d\u1EEF li\u1EC7u Account
      • offset: number - V\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u trong d\u1EEF li\u1EC7u Account d\xF9ng \u0111\u1EC3 so s\xE1nh
      • bytes: string - D\u1EEF li\u1EC7u c\u1EA7n so s\xE1nh, \u0111\u01B0\u1EE3c truy\u1EC1n v\xE0o d\u01B0\u1EDBi d\u1EA1ng base58 v\xE0 kh\xF4ng qu\xE1 129 bytes
    • dataSize: number - L\u1ECDc theo \u0111\u1ED9 l\u1EDBn c\u1EE7a d\u1EEF li\u1EC7u Account
  • ",2),Y=s("(Tu\u1EF3 ch\u1ECDn) "),J=n("code",null,"withContext",-1),X=s(": "),O=n("code",null,"boolean",-1),I=s(" - \u0110\xF3ng g\xF3i k\u1EBFt qu\u1EA3 v\xE0o m\u1ED9t \u0111\u1ED1i t\u01B0\u1EE3ng "),q={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},$=s("RpcResponse JSON"),nn=e('
    Tr\u1EA3 v\u1EC1

    M\u1EB7c \u0111\u1ECBnh getProgramAccounts s\u1EBD tr\u1EA3 v\u1EC1 m\u1ED9t m\u1EA3ng c\xE1c \u0111\u1ED1i t\u01B0\u1EE3ng JSON v\u1EDBi c\u1EA5u tr\xFAc nh\u01B0 sau:

    • pubkey: string - \u0110\u1ECBa ch\u1EC9 c\u1EE7a Account v\xE0 \u0111\u01B0\u1EE3c m\xE3 ho\xE1 base58
    • account: object - L\xE0 m\u1ED9t \u0111\u1ED1i t\u01B0\u1EE3ng JSON v\u1EDBi c\xE1c tr\u01B0\u1EDDng con nh\u01B0 sau:
      • lamports: number, s\u1ED1 d\u01B0 lamports c\u1EE7a Account
      • owner: string, \u0110\u1ECBa ch\u1EC9 c\u1EE7a Program s\u1EDF h\u1EEFu Account v\xE0 \u0111\u01B0\u1EE3c m\xE3 ho\xE1 base58
      • data: string | object - D\u1EEF li\u1EC7u c\u1EE7a Account v\xE0 \u0111\u01B0\u1EE3c bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng, ho\u1EB7c l\xE0 binary, ho\u1EB7c l\xE0 JSON, tu\u1EF3 v\xE0o tham s\u1ED1 encoding l\xFAc truy\u1EC1n v\xE0o
      • executable: boolean, Nh\xE3n \u0111\xE1nh d\u1EA5u n\u1EBFu Account n\xE0y ch\u1EE9a m\u1ED9t Program v\xE0 c\xF3 th\u1EC3 th\u1EF1c thi
      • rentEpoch: number, K\u1EF3 h\u1EA1n thu\xEA ti\u1EBFp theo c\u1EE7a Account
    ',3),sn=n("h2",{id:"chi-tiet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#chi-tiet","aria-hidden":"true"},"#"),s(" Chi ti\u1EBFt")],-1),an=n("p",null,[n("code",null,"getProgramAccounts"),s(" l\xE0 m\u1ED9t ph\u01B0\u01A1ng th\u1EE9c RPC r\u1EA5t linh ho\u1EA1t v\xE0 c\xF3 kh\u1EA3 n\u0103ng tr\u1EA3 v\u1EC1 t\u1EA5t c\u1EA3 c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi m\u1ED9t Program. Ch\xFAng ta c\xF3 th\u1EC3 s\u1EED d\u1EE5ng "),n("code",null,"getProgramAccounts"),s(" cho nhi\u1EC1u lo\u1EA1i truy v\u1EA5n kh\xE1c nhau, v\xED d\u1EE5 nh\u01B0:")],-1),tn=n("li",null,"T\u1EA5t c\u1EA3 c\xE1c Account c\u1EE7a m\u1ED9t v\xED c\u1EE5 th\u1EC3",-1),cn=s("T\u1EA5t c\u1EA3 c\xE1c Account cho m\u1ED9t mint (ho\u1EB7c th\u01B0\u1EDDng \u0111\u01B0\u1EE3c g\u1ECDi l\xE0 token \u0111\u1ED1i v\u1EDBi c\xE1c blockchain kh\xE1c) (i.e. T\u1EA5t c\u1EA3 ng\u01B0\u1EDDi gi\u1EEF token "),en={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},on=s("SRM"),ln=s(")"),pn=s("T\u1EA5t c\u1EA3 c\xE1c Account theo \xFD mu\u1ED1n c\u1EE7a m\u1ED9t Program c\u1EE5 th\u1EC3 (i.e. T\u1EA5t c\u1EA3 Account ng\u01B0\u1EDDi d\xF9ng c\u1EE7a \u1EE9ng d\u1EE5ng "),un={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},rn=s("Mango"),mn=s(")"),kn=e("

    M\u1EB7c d\xF9 h\u1EEFu d\u1EE5ng l\xE0 v\u1EADy, getProgramAccounts th\u01B0\u1EDDng b\u1ECB d\xF9ng sai v\xEC c\xE1c h\u1EA1n ch\u1EBF hi\u1EC7n t\u1EA1i. Nhi\u1EC1u c\xE2u truy v\u1EA5n \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3 b\u1EDFi getProgramAccounts y\xEAu c\u1EA7u c\xE1c n\u1ED1t RPC ph\u1EA3i qu\xE9t m\u1ED9t kh\u1ED1i l\u01B0\u1EE3ng r\u1EA5t l\u1EDBn c\xE1c d\u1EEF li\u1EC7u. Nh\u1EEFng c\xE2u truy v\u1EA5n nh\u01B0 v\u1EADy kh\xF4ng ch\u1EC9 l\u1EDBn v\u1EC1 dung l\u01B0\u1EE3ng d\u1EEF li\u1EC7u v\xE0 c\xF2n l\u1EDBn v\u1EC1 kh\u1ED1i l\u01B0\u1EE3ng t\xEDnh to\xE1n. T\u1EA5t y\u1EBFu, vi\u1EC7c g\u1ECDi qu\xE1 nhi\u1EC1u v\u1EC1 c\u1EA3 t\u1EA7n su\u1EA5t v\xE0 kh\u1ED1i l\u01B0\u1EE3ng d\u1EABn \u0111\u1EBFn k\u1EBFt n\u1ED1i s\u1EBD b\u1ECB ng\u1EAFt. Ngo\xE0i ra, t\u1EA1i th\u1EDDi \u0111i\u1EC3m cu\u1ED1n s\xE1ch \u0111\u01B0\u1EE3c vi\u1EBFt, getProgramAccounts v\u1EABn ch\u01B0a h\u1ED7 tr\u1EE3 ph\xE2n trang. N\u1EBFu k\u1EBFt qu\u1EA3 truy v\u1EA5n qu\xE1 l\u1EDBn, n\xF3 s\u1EBD \u0111\u01B0\u1EE3c c\u1EAFt b\u1ECF \u0111i.

    \u0110\u1EC3 tr\xE1nh c\xE1c h\u1EA1n ch\u1EBF n\xE0y, getProgramAccounts gi\u1EDBi thi\u1EC7u c\xE1c tham s\u1ED1 d\xF9ng cho vi\u1EC7c l\u1ECDc v\xE0 s\u01A1 ch\u1EBF k\u1EBFt qu\u1EA3, v\xED d\u1EE5 nh\u01B0: dataSlice, filters v\u1EDBi tu\u1EF3 ch\u1ECDn memcmp v\xE0 dataSize. B\u1EB1ng c\xE1ch k\u1EBFt h\u1EE3p c\xE1c tham s\u1ED1 tr\xEAn, ch\xFAng ta c\xF3 th\u1EC3 gi\u1EA3m thi\u1EC3u ph\u1EA1m vi truy v\u1EA5n v\u1EDBi k\xEDch th\u01B0\u1EDBc d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c ki\u1EC3m so\xE1t v\xE0 d\u1EC5 \u0111o\xE1n h\u01A1n.

    ",2),bn=s("M\u1ED9t v\xED d\u1EE5 th\u01B0\u1EDDng th\u1EA5y c\u1EE7a "),dn=n("code",null,"getProgramAccounts",-1),hn=s(" l\xE0 t\u01B0\u01A1ng t\xE1c v\u1EDBi "),gn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},fn=s("SPL-Token Program"),_n=s(". Truy v\u1EA5n t\u1EA5t c\u1EA3 c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi Token Program v\u1EDBi m\u1ED9t c\xE2u "),yn=s("truy v\u1EA5n thu\u1EA7n tu\xFD"),vn=s(" kh\xF4ng c\xF3 l\u1ECDc s\u1EBD d\u1EABn \u0111\u1EBFn m\u1ED9t s\u1ED1 l\u01B0\u1EE3ng d\u1EEF li\u1EC7u tr\u1EA3 v\u1EC1 kh\u1ED5ng l\u1ED3. Thay v\xE0o \u0111\xF3, b\u1EB1ng c\xE1ch b\u1ED5 sung c\xE1c tham s\u1ED1, ch\xFAng ta c\xF3 th\u1EC3 truy v\u1EA5n m\u1ED9t c\xE1ch hi\u1EC7u qu\u1EA3 ch\u1EC9 nh\u1EEFng d\u1EEF li\u1EC7u m\xECnh c\u1EA7n."),An=e('

    filters

    Tham s\u1ED1 ph\u1ED5 bi\u1EBFn nh\u1EA5t \u0111\u01B0\u1EE3c d\xF9ng k\xE8m v\u1EDBi getProgramAccounts ch\xEDnh l\xE0 m\u1EA3ng c\xE1c filters. M\u1EA3ng n\xE0y ch\u1EA5p nh\u1EADn 2 ki\u1EC3u l\u1ECDc l\xE0 dataSize v\xE0 memcmp. Tr\u01B0\u1EDBc khi s\u1EED d\u1EE5ng m\u1ED9t trong hai, ch\xFAng ta n\xEAn hi\u1EC3u \u0111\u01B0\u1EE3c d\u1EEF li\u1EC7u c\u1EA7n truy v\u1EA5n s\u1EBD c\xF3 ch\u1EE9a d\u1EEF li\u1EC7u g\xEC? h\xECnh th\xE1i ra sao? tu\u1EA7n t\u1EF1 ho\xE1 nh\u01B0 th\u1EBF n\xE0o?

    dataSize

    ',3),wn=s("Trong tr\u01B0\u1EDDng h\u1EE3p Token Program, ch\xFAng ta c\xF3 th\u1EC3 th\u1EA5y r\u1EB1ng "),Tn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Cn=s("\u0111\u1ED9 d\xE0i c\u1EE7a Token Account l\xE0 165 bytes"),Pn=s(". \u0110\u1EB7c bi\u1EC7t, m\u1ED9t Token Account c\xF3 8 tr\u01B0\u1EDDng con, v\u1EDBi m\u1ED7i tr\u01B0\u1EDDng c\xF3 \u0111\u1ED9 d\xE0i v\xF9ng nh\u1EDB bi\u1EBFt tr\u01B0\u1EDBc. Ch\xFAng ta c\xF3 th\u1EC3 m\u01B0\u1EDDng t\u01B0\u1EE3ng c\xE1ch d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c s\u1EAFp x\u1EBFp b\u1EB1ng minh ho\u1EA1 sau."),Sn=e('

    Account Size

    N\u1EBFu ch\xFAng ta mu\u1ED1n t\xECm t\u1EA5t c\u1EA3 Token Account s\u1EDF h\u1EEFu b\u1EDFi ch\u1EC9 ri\xEAng v\xED c\u1EE7a m\xECnh, ch\xFAng ta c\xF3 th\u1EC3 th\xEAm { dataSize: 165 } v\xE0 filters \u0111\u1EC3 thu h\u1EB9p pham vi c\xE2u truy v\u1EA5n v\xE0 ch\u1EC9 l\u1EA5y nh\u1EEFng Account c\xF3 \u0111\u1ED9 d\xE0i ch\xEDnh x\xE1c 165 bytes. Tuy v\u1EADy, n\xF3 v\u1EABn l\xE0 ch\u01B0a \u0111\u1EE7. Ch\xFAng ta c\u1EA7n th\xEAm m\u1ED9t \u0111i\u1EC1u ki\u1EC7n \u0111\u1EC3 ch\u1EC9 l\u1ECDc c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi v\xED c\u1EE7a m\xECnh. \u0110\u1EC3 l\xE0 \u0111\u01B0\u1EE3c \u0111i\u1EC1u \u0111\xF3, ch\xFAng ta ph\u1EA3i s\u1EED d\u1EE5ng memcmp.

    memcmp

    \u0110i\u1EC1u ki\u1EC7n l\u1ECDc memcmp, ho\u1EB7c "memory comparison" (ph\xE9p so s\xE1nh v\xF9ng nh\u1EDB), cho ph\xE9p ch\xFAng ta so s\xE1nh d\u1EEF li\u1EC7u truy\u1EC1n v\xE0o v\u1EDBi b\u1EA5t k\u1EF3 v\xF9ng nh\u1EDB n\xE0o \u0111\u01B0\u1EE3c l\u01B0u trong Account. \u0110\u1EB7c bi\u1EC7t, ch\xFAng ta c\xF3 th\u1EC3 truy v\u1EA5n ch\u1EC9 nh\u1EEFng Account m\xE0 kh\u1EDBp v\u1EDBi m\u1ED9t \u0111o\u1EA1n d\u1EEF li\u1EC7u t\u1EA1i m\u1ED9t v\u1ECB tr\xED c\u1EE5 th\u1EC3. memcmp y\xEAu c\u1EA7u 2 tham s\u1ED1:

    • offset: V\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u \u0111\u1EC3 so s\xE1nh d\u1EEF li\u1EC7u. V\u1ECB tr\xED n\xE0y th\u01B0\u1EDDng \u0111\u01B0\u1EE3c t\xEDnh theo bytes v\xE0 bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng s\u1ED1 nguy\xEAn.
    • bytes: D\u1EEF li\u1EC7u d\xF9ng \u0111\u1EC3 \u0111\u1ED1i chi\u1EBFu v\u1EDBi d\u1EEF li\u1EC7u trong Account. D\u1EEF li\u1EC7u n\xE0y n\xEAn \u0111\u01B0\u1EE3c bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng base58 v\xE0 kh\xF4ng qu\xE1 129 bytes.

    M\u1ED9t \u0111i\u1EC1u quan tr\u1ECDng c\u1EA7n l\u01B0u \xFD l\xE0 memcmp ch\u1EC9 tr\u1EA3 v\u1EC1 c\xE1c k\u1EBFt qu\u1EA3 kh\u1EDBp ch\xEDnh x\xE1c tr\xEAn t\u1EEBng bytes. V\xE0 hi\u1EC7n t\u1EA1i kh\xF4ng h\u1ED7 tr\u1EE3 c\xE1c ph\xE9p so s\xE1nh l\u1EDBn h\u01A1n ho\u1EB7c nh\u1ECF h\u01A1n cho bytes.

    S\u1EED d\u1EE5ng l\u1EA1i v\xED d\u1EE5 Token Program b\xEAn tr\xEAn, ch\xFAng ta \u0111i\u1EC1u ch\u1EC9nh c\xE2u truy v\u1EA5n ch\u1EC9 tr\u1EA3 v\u1EC1 nh\u1EEFng Token Account m\xE0 \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi ch\xEDnh m\xECnh. Khi nh\xECn v\xE0o m\u1ED9t Token Account, ch\xFAng ta bi\u1EBFt \u0111\u01B0\u1EE3c 2 tr\u01B0\u1EDDng \u0111\u1EA7u ti\xEAn l\u01B0u trong Token Account l\xE0 2 kho\xE1 c\xF4ng khai v\u1EDBi \u0111\u1ED9 d\xE0i l\xE0 32 bytes. Bi\u1EBFt r\u1EB1ng owner l\xE0 tr\u01B0\u1EDDng th\u1EE9 2, ch\xFAng ta n\xEAn kh\u1EDFi t\u1EA1o memcmp v\u1EDBi offset l\xE0 32. T\u1EEB \u0111\xF3, ch\xFAng ta s\u1EBD l\u1ECDc \u0111\u01B0\u1EE3c nh\u1EEFng Account c\u1EE7a m\xECnh b\u1EB1ng c\xE1ch truy\u1EC1n \u0111\u1ECBa ch\u1EC9 v\xED v\xE0o bytes.

    Account Size

    Ch\xFAng ta c\xF3 th\u1EC3 g\u1ECDi c\xE2u truy v\u1EA5n n\xE0y th\xF4ng qua v\xED d\u1EE5 sau:

    ',9),Dn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as m,a as n,b as a,w as c,F as k,e,d as s}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const h={},g=e('

    \u0110\u1ECDc Program Account

    getProgramAccounts l\xE0 m\u1ED9t ph\u01B0\u01A1ng th\u1EE9c RPC gi\xFAp l\u1EA5y d\u1EEF li\u1EC7u c\u1EE7a t\u1EA5t c\u1EA3 c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi Program. L\u01B0u \xFD, ph\xE2n trang v\u1EABn ch\u01B0a \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3 t\u1EA1i th\u1EDDi \u0111i\u1EC3m hi\u1EC7n t\u1EA1i. Vi\u1EC7c g\u1ECDi getProgramAccounts n\xEAn c\xF3 th\xEAm c\xE1c tham s\u1ED1 dataSlice v\xE0/ho\u1EB7c filters \u0111\u1EC3 c\u1EA3i thi\u1EC7n th\u1EDDi gian tr\u1EA3 v\u1EC1 v\u1EDBi k\u1EBFt qu\u1EA3 mong mu\u1ED1n.

    C\xF3 th\u1EC3 b\u1EA1n ch\u01B0a bi\u1EBFt

    ',3),f={class:"custom-container tip"},_=n("p",{class:"custom-container-title"},"Tham s\u1ED1",-1),y=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Kho\xE1 c\xF4ng khai c\u1EE7a Program c\u1EA7n truy v\u1EA5n v\xE0 bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng base58")],-1),v=s("(Tu\u1EF3 ch\u1ECDn) "),A=n("code",null,"configOrCommitment",-1),w=s(": "),T=n("code",null,"object",-1),C=s(" - Tham s\u1ED1 c\xE0i \u0111\u1EB7t c\xF3 ch\u1EE9a c\xE1c tr\u01B0\u1EDDng tu\u1EF3 ch\u1ECDn sau: "),P=s("(Tu\u1EF3 ch\u1ECDn) "),S=n("code",null,"commitment",-1),D=s(": "),E=n("code",null,"string",-1),N=s(" - "),M={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},K=s("State commitment"),L=s("(Tu\u1EF3 ch\u1ECDn) "),R=n("code",null,"encoding",-1),B=s(": "),G=n("code",null,"string",-1),x=s(" - Ki\u1EC3u m\xE3 ho\xE1 d\u1EEF li\u1EC7u, m\u1ED9t trong c\xE1c ki\u1EC3u sau: "),z=n("code",null,"base58",-1),F=s(", "),H=n("code",null,"base64",-1),Z=s(", "),Q=n("code",null,"jsonParsed",-1),V=s(". L\u01B0u \xFD, ng\u01B0\u1EDDi d\xF9ng web3js n\xEAn s\u1EED d\u1EE5ng "),U={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},W=s("getParsedProgramAccounts"),j=e("
  • (Tu\u1EF3 ch\u1ECDn) dataSlice: object - Gi\u1EDBi h\u1EA1n c\xE1c Account tr\u1EA3 v\u1EC1 d\u1EF1a tr\xEAn:
    • offset: number - V\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u cho d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c tr\u1EA3 v\u1EC1 c\u1EE7a Account
    • length: number - \u0110\u1ED9 d\xE0i d\u1EEF li\u1EC7u c\u1EE7a Account c\u1EA7n tr\u1EA3 v\u1EC1 v\xE0 \u0111\u01B0\u1EE3c t\xEDnh t\u1EEB v\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u
  • (Tu\u1EF3 ch\u1ECDn) filters: array - L\u1ECDc c\xE1c k\u1EBFt qu\u1EA3 b\u1EB1ng c\xE1ch s\u1EED d\u1EE5ng c\xE1c b\u1ED9 l\u1ECDc sau:
    • memcmp: object - L\u1ECDc b\u1EB1ng c\xE1ch so s\xE1nh m\u1ED9t chu\u1ED7i d\u1EEF li\u1EC7u d\u01B0\u1EDBi d\u1EA1ng c\xE1c bytes v\u1EDBi d\u1EEF li\u1EC7u Account
      • offset: number - V\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u trong d\u1EEF li\u1EC7u Account d\xF9ng \u0111\u1EC3 so s\xE1nh
      • bytes: string - D\u1EEF li\u1EC7u c\u1EA7n so s\xE1nh, \u0111\u01B0\u1EE3c truy\u1EC1n v\xE0o d\u01B0\u1EDBi d\u1EA1ng base58 v\xE0 kh\xF4ng qu\xE1 129 bytes
    • dataSize: number - L\u1ECDc theo \u0111\u1ED9 l\u1EDBn c\u1EE7a d\u1EEF li\u1EC7u Account
  • ",2),Y=s("(Tu\u1EF3 ch\u1ECDn) "),J=n("code",null,"withContext",-1),X=s(": "),O=n("code",null,"boolean",-1),I=s(" - \u0110\xF3ng g\xF3i k\u1EBFt qu\u1EA3 v\xE0o m\u1ED9t \u0111\u1ED1i t\u01B0\u1EE3ng "),q={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},$=s("RpcResponse JSON"),nn=e('
    Tr\u1EA3 v\u1EC1

    M\u1EB7c \u0111\u1ECBnh getProgramAccounts s\u1EBD tr\u1EA3 v\u1EC1 m\u1ED9t m\u1EA3ng c\xE1c \u0111\u1ED1i t\u01B0\u1EE3ng JSON v\u1EDBi c\u1EA5u tr\xFAc nh\u01B0 sau:

    • pubkey: string - \u0110\u1ECBa ch\u1EC9 c\u1EE7a Account v\xE0 \u0111\u01B0\u1EE3c m\xE3 ho\xE1 base58
    • account: object - L\xE0 m\u1ED9t \u0111\u1ED1i t\u01B0\u1EE3ng JSON v\u1EDBi c\xE1c tr\u01B0\u1EDDng con nh\u01B0 sau:
      • lamports: number, s\u1ED1 d\u01B0 lamports c\u1EE7a Account
      • owner: string, \u0110\u1ECBa ch\u1EC9 c\u1EE7a Program s\u1EDF h\u1EEFu Account v\xE0 \u0111\u01B0\u1EE3c m\xE3 ho\xE1 base58
      • data: string | object - D\u1EEF li\u1EC7u c\u1EE7a Account v\xE0 \u0111\u01B0\u1EE3c bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng, ho\u1EB7c l\xE0 binary, ho\u1EB7c l\xE0 JSON, tu\u1EF3 v\xE0o tham s\u1ED1 encoding l\xFAc truy\u1EC1n v\xE0o
      • executable: boolean, Nh\xE3n \u0111\xE1nh d\u1EA5u n\u1EBFu Account n\xE0y ch\u1EE9a m\u1ED9t Program v\xE0 c\xF3 th\u1EC3 th\u1EF1c thi
      • rentEpoch: number, K\u1EF3 h\u1EA1n thu\xEA ti\u1EBFp theo c\u1EE7a Account
    ',3),sn=n("h2",{id:"chi-tiet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#chi-tiet","aria-hidden":"true"},"#"),s(" Chi ti\u1EBFt")],-1),an=n("p",null,[n("code",null,"getProgramAccounts"),s(" l\xE0 m\u1ED9t ph\u01B0\u01A1ng th\u1EE9c RPC r\u1EA5t linh ho\u1EA1t v\xE0 c\xF3 kh\u1EA3 n\u0103ng tr\u1EA3 v\u1EC1 t\u1EA5t c\u1EA3 c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi m\u1ED9t Program. Ch\xFAng ta c\xF3 th\u1EC3 s\u1EED d\u1EE5ng "),n("code",null,"getProgramAccounts"),s(" cho nhi\u1EC1u lo\u1EA1i truy v\u1EA5n kh\xE1c nhau, v\xED d\u1EE5 nh\u01B0:")],-1),tn=n("li",null,"T\u1EA5t c\u1EA3 c\xE1c Account c\u1EE7a m\u1ED9t v\xED c\u1EE5 th\u1EC3",-1),cn=s("T\u1EA5t c\u1EA3 c\xE1c Account cho m\u1ED9t mint (ho\u1EB7c th\u01B0\u1EDDng \u0111\u01B0\u1EE3c g\u1ECDi l\xE0 token \u0111\u1ED1i v\u1EDBi c\xE1c blockchain kh\xE1c) (i.e. T\u1EA5t c\u1EA3 ng\u01B0\u1EDDi gi\u1EEF token "),en={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},on=s("SRM"),ln=s(")"),pn=s("T\u1EA5t c\u1EA3 c\xE1c Account theo \xFD mu\u1ED1n c\u1EE7a m\u1ED9t Program c\u1EE5 th\u1EC3 (i.e. T\u1EA5t c\u1EA3 Account ng\u01B0\u1EDDi d\xF9ng c\u1EE7a \u1EE9ng d\u1EE5ng "),un={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},rn=s("Mango"),mn=s(")"),kn=e("

    M\u1EB7c d\xF9 h\u1EEFu d\u1EE5ng l\xE0 v\u1EADy, getProgramAccounts th\u01B0\u1EDDng b\u1ECB d\xF9ng sai v\xEC c\xE1c h\u1EA1n ch\u1EBF hi\u1EC7n t\u1EA1i. Nhi\u1EC1u c\xE2u truy v\u1EA5n \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3 b\u1EDFi getProgramAccounts y\xEAu c\u1EA7u c\xE1c n\u1ED1t RPC ph\u1EA3i qu\xE9t m\u1ED9t kh\u1ED1i l\u01B0\u1EE3ng r\u1EA5t l\u1EDBn c\xE1c d\u1EEF li\u1EC7u. Nh\u1EEFng c\xE2u truy v\u1EA5n nh\u01B0 v\u1EADy kh\xF4ng ch\u1EC9 l\u1EDBn v\u1EC1 dung l\u01B0\u1EE3ng d\u1EEF li\u1EC7u v\xE0 c\xF2n l\u1EDBn v\u1EC1 kh\u1ED1i l\u01B0\u1EE3ng t\xEDnh to\xE1n. T\u1EA5t y\u1EBFu, vi\u1EC7c g\u1ECDi qu\xE1 nhi\u1EC1u v\u1EC1 c\u1EA3 t\u1EA7n su\u1EA5t v\xE0 kh\u1ED1i l\u01B0\u1EE3ng d\u1EABn \u0111\u1EBFn k\u1EBFt n\u1ED1i s\u1EBD b\u1ECB ng\u1EAFt. Ngo\xE0i ra, t\u1EA1i th\u1EDDi \u0111i\u1EC3m cu\u1ED1n s\xE1ch \u0111\u01B0\u1EE3c vi\u1EBFt, getProgramAccounts v\u1EABn ch\u01B0a h\u1ED7 tr\u1EE3 ph\xE2n trang. N\u1EBFu k\u1EBFt qu\u1EA3 truy v\u1EA5n qu\xE1 l\u1EDBn, n\xF3 s\u1EBD \u0111\u01B0\u1EE3c c\u1EAFt b\u1ECF \u0111i.

    \u0110\u1EC3 tr\xE1nh c\xE1c h\u1EA1n ch\u1EBF n\xE0y, getProgramAccounts gi\u1EDBi thi\u1EC7u c\xE1c tham s\u1ED1 d\xF9ng cho vi\u1EC7c l\u1ECDc v\xE0 s\u01A1 ch\u1EBF k\u1EBFt qu\u1EA3, v\xED d\u1EE5 nh\u01B0: dataSlice, filters v\u1EDBi tu\u1EF3 ch\u1ECDn memcmp v\xE0 dataSize. B\u1EB1ng c\xE1ch k\u1EBFt h\u1EE3p c\xE1c tham s\u1ED1 tr\xEAn, ch\xFAng ta c\xF3 th\u1EC3 gi\u1EA3m thi\u1EC3u ph\u1EA1m vi truy v\u1EA5n v\u1EDBi k\xEDch th\u01B0\u1EDBc d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c ki\u1EC3m so\xE1t v\xE0 d\u1EC5 \u0111o\xE1n h\u01A1n.

    ",2),bn=s("M\u1ED9t v\xED d\u1EE5 th\u01B0\u1EDDng th\u1EA5y c\u1EE7a "),dn=n("code",null,"getProgramAccounts",-1),hn=s(" l\xE0 t\u01B0\u01A1ng t\xE1c v\u1EDBi "),gn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},fn=s("SPL-Token Program"),_n=s(". Truy v\u1EA5n t\u1EA5t c\u1EA3 c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi Token Program v\u1EDBi m\u1ED9t c\xE2u "),yn=s("truy v\u1EA5n thu\u1EA7n tu\xFD"),vn=s(" kh\xF4ng c\xF3 l\u1ECDc s\u1EBD d\u1EABn \u0111\u1EBFn m\u1ED9t s\u1ED1 l\u01B0\u1EE3ng d\u1EEF li\u1EC7u tr\u1EA3 v\u1EC1 kh\u1ED5ng l\u1ED3. Thay v\xE0o \u0111\xF3, b\u1EB1ng c\xE1ch b\u1ED5 sung c\xE1c tham s\u1ED1, ch\xFAng ta c\xF3 th\u1EC3 truy v\u1EA5n m\u1ED9t c\xE1ch hi\u1EC7u qu\u1EA3 ch\u1EC9 nh\u1EEFng d\u1EEF li\u1EC7u m\xECnh c\u1EA7n."),An=e('

    filters

    Tham s\u1ED1 ph\u1ED5 bi\u1EBFn nh\u1EA5t \u0111\u01B0\u1EE3c d\xF9ng k\xE8m v\u1EDBi getProgramAccounts ch\xEDnh l\xE0 m\u1EA3ng c\xE1c filters. M\u1EA3ng n\xE0y ch\u1EA5p nh\u1EADn 2 ki\u1EC3u l\u1ECDc l\xE0 dataSize v\xE0 memcmp. Tr\u01B0\u1EDBc khi s\u1EED d\u1EE5ng m\u1ED9t trong hai, ch\xFAng ta n\xEAn hi\u1EC3u \u0111\u01B0\u1EE3c d\u1EEF li\u1EC7u c\u1EA7n truy v\u1EA5n s\u1EBD c\xF3 ch\u1EE9a d\u1EEF li\u1EC7u g\xEC? h\xECnh th\xE1i ra sao? tu\u1EA7n t\u1EF1 ho\xE1 nh\u01B0 th\u1EBF n\xE0o?

    dataSize

    ',3),wn=s("Trong tr\u01B0\u1EDDng h\u1EE3p Token Program, ch\xFAng ta c\xF3 th\u1EC3 th\u1EA5y r\u1EB1ng "),Tn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Cn=s("\u0111\u1ED9 d\xE0i c\u1EE7a Token Account l\xE0 165 bytes"),Pn=s(". \u0110\u1EB7c bi\u1EC7t, m\u1ED9t Token Account c\xF3 8 tr\u01B0\u1EDDng con, v\u1EDBi m\u1ED7i tr\u01B0\u1EDDng c\xF3 \u0111\u1ED9 d\xE0i v\xF9ng nh\u1EDB bi\u1EBFt tr\u01B0\u1EDBc. Ch\xFAng ta c\xF3 th\u1EC3 m\u01B0\u1EDDng t\u01B0\u1EE3ng c\xE1ch d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c s\u1EAFp x\u1EBFp b\u1EB1ng minh ho\u1EA1 sau."),Sn=e('

    Account Size

    N\u1EBFu ch\xFAng ta mu\u1ED1n t\xECm t\u1EA5t c\u1EA3 Token Account s\u1EDF h\u1EEFu b\u1EDFi ch\u1EC9 ri\xEAng v\xED c\u1EE7a m\xECnh, ch\xFAng ta c\xF3 th\u1EC3 th\xEAm { dataSize: 165 } v\xE0 filters \u0111\u1EC3 thu h\u1EB9p pham vi c\xE2u truy v\u1EA5n v\xE0 ch\u1EC9 l\u1EA5y nh\u1EEFng Account c\xF3 \u0111\u1ED9 d\xE0i ch\xEDnh x\xE1c 165 bytes. Tuy v\u1EADy, n\xF3 v\u1EABn l\xE0 ch\u01B0a \u0111\u1EE7. Ch\xFAng ta c\u1EA7n th\xEAm m\u1ED9t \u0111i\u1EC1u ki\u1EC7n \u0111\u1EC3 ch\u1EC9 l\u1ECDc c\xE1c Account \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi v\xED c\u1EE7a m\xECnh. \u0110\u1EC3 l\xE0 \u0111\u01B0\u1EE3c \u0111i\u1EC1u \u0111\xF3, ch\xFAng ta ph\u1EA3i s\u1EED d\u1EE5ng memcmp.

    memcmp

    \u0110i\u1EC1u ki\u1EC7n l\u1ECDc memcmp, ho\u1EB7c "memory comparison" (ph\xE9p so s\xE1nh v\xF9ng nh\u1EDB), cho ph\xE9p ch\xFAng ta so s\xE1nh d\u1EEF li\u1EC7u truy\u1EC1n v\xE0o v\u1EDBi b\u1EA5t k\u1EF3 v\xF9ng nh\u1EDB n\xE0o \u0111\u01B0\u1EE3c l\u01B0u trong Account. \u0110\u1EB7c bi\u1EC7t, ch\xFAng ta c\xF3 th\u1EC3 truy v\u1EA5n ch\u1EC9 nh\u1EEFng Account m\xE0 kh\u1EDBp v\u1EDBi m\u1ED9t \u0111o\u1EA1n d\u1EEF li\u1EC7u t\u1EA1i m\u1ED9t v\u1ECB tr\xED c\u1EE5 th\u1EC3. memcmp y\xEAu c\u1EA7u 2 tham s\u1ED1:

    • offset: V\u1ECB tr\xED b\u1EAFt \u0111\u1EA7u \u0111\u1EC3 so s\xE1nh d\u1EEF li\u1EC7u. V\u1ECB tr\xED n\xE0y th\u01B0\u1EDDng \u0111\u01B0\u1EE3c t\xEDnh theo bytes v\xE0 bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng s\u1ED1 nguy\xEAn.
    • bytes: D\u1EEF li\u1EC7u d\xF9ng \u0111\u1EC3 \u0111\u1ED1i chi\u1EBFu v\u1EDBi d\u1EEF li\u1EC7u trong Account. D\u1EEF li\u1EC7u n\xE0y n\xEAn \u0111\u01B0\u1EE3c bi\u1EC3u di\u1EC5n d\u01B0\u1EDBi d\u1EA1ng base58 v\xE0 kh\xF4ng qu\xE1 129 bytes.

    M\u1ED9t \u0111i\u1EC1u quan tr\u1ECDng c\u1EA7n l\u01B0u \xFD l\xE0 memcmp ch\u1EC9 tr\u1EA3 v\u1EC1 c\xE1c k\u1EBFt qu\u1EA3 kh\u1EDBp ch\xEDnh x\xE1c tr\xEAn t\u1EEBng bytes. V\xE0 hi\u1EC7n t\u1EA1i kh\xF4ng h\u1ED7 tr\u1EE3 c\xE1c ph\xE9p so s\xE1nh l\u1EDBn h\u01A1n ho\u1EB7c nh\u1ECF h\u01A1n cho bytes.

    S\u1EED d\u1EE5ng l\u1EA1i v\xED d\u1EE5 Token Program b\xEAn tr\xEAn, ch\xFAng ta \u0111i\u1EC1u ch\u1EC9nh c\xE2u truy v\u1EA5n ch\u1EC9 tr\u1EA3 v\u1EC1 nh\u1EEFng Token Account m\xE0 \u0111\u01B0\u1EE3c s\u1EDF h\u1EEFu b\u1EDFi ch\xEDnh m\xECnh. Khi nh\xECn v\xE0o m\u1ED9t Token Account, ch\xFAng ta bi\u1EBFt \u0111\u01B0\u1EE3c 2 tr\u01B0\u1EDDng \u0111\u1EA7u ti\xEAn l\u01B0u trong Token Account l\xE0 2 kho\xE1 c\xF4ng khai v\u1EDBi \u0111\u1ED9 d\xE0i l\xE0 32 bytes. Bi\u1EBFt r\u1EB1ng owner l\xE0 tr\u01B0\u1EDDng th\u1EE9 2, ch\xFAng ta n\xEAn kh\u1EDFi t\u1EA1o memcmp v\u1EDBi offset l\xE0 32. T\u1EEB \u0111\xF3, ch\xFAng ta s\u1EBD l\u1ECDc \u0111\u01B0\u1EE3c nh\u1EEFng Account c\u1EE7a m\xECnh b\u1EB1ng c\xE1ch truy\u1EC1n \u0111\u1ECBa ch\u1EC9 v\xED v\xE0o bytes.

    Account Size

    Ch\xFAng ta c\xF3 th\u1EC3 g\u1ECDi c\xE2u truy v\u1EA5n n\xE0y th\xF4ng qua v\xED d\u1EE5 sau:

    ',9),Dn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.ab992419.js b/docs/.vuepress/dist/assets/get-program-accounts.html.ab992419.js index 2963ad824..a0a9d7550 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.ab992419.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.ab992419.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,o as r,c as m,a as n,b as a,w as e,F as k,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const g={},f=n("h1",{id:"programmkonten-abfragen",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#programmkonten-abfragen","aria-hidden":"true"},"#"),s(" Programmkonten Abfragen")],-1),h=n("p",null,"Eine RPC-Methode, die alle Konten zur\xFCckgibt, die einem Programm geh\xF6ren. Paginierung wird derzeit nicht unterst\xFCtzt. Anfragen an \u201EgetProgramAccounts\u201C sollten die Parameter \u201EdataSlice\u201C und/oder \u201Efilters\u201C enthalten, um die Antwortzeit zu verbessern und nur beabsichtigte Ergebnisse zur\xFCckzugeben.",-1),_=n("h2",{id:"fakten",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#fakten","aria-hidden":"true"},"#"),s(" Fakten")],-1),y={class:"custom-container tip"},w=n("p",{class:"custom-container-title"},"Parameters",-1),A=n("li",null,"\u201EprogramId\u201C: \u201Estring\u201C \u2013 Pubkey des abzufragenden Programms, bereitgestellt als base58-codierter String",-1),z=s("(optional) "),D=n("code",null,"configOrCommitment",-1),P=s(": "),S=n("code",null,"object",-1),v=s(" - Konfigurationsparameter, die die folgenden optionalen Felder enthalten: "),K=s("(optional) "),T=n("code",null,"commitment",-1),C=s(": "),E=n("code",null,"string",-1),B=s(" - "),M={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},N=s("Staatliche Verpflichtung"),R=s("(optional) "),F=n("code",null,"encoding",-1),G=s(": "),L=n("code",null,"string",-1),x=s(" - Encoding f\xFCr Kontodaten, entweder: "),Z=n("code",null,"base58",-1),W=s(", "),H=n("code",null,"base64",-1),U=s(" oder "),Q=n("code",null,"jsonParsed",-1),j=s(". Beachten Sie, dass Benutzer von web3js stattdessen "),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},O=s("getParsedProgramAccounts"),I=s(" verwenden sollten."),Y=o("
  • (optional) dataSlice: object - Beschr\xE4nken Sie die zur\xFCckgegebenen Kontodaten basierend auf:
    • offset: number - Anzahl der Bytes in Kontodaten, um mit der R\xFCckgabe zu beginnen
    • length: number - Anzahl der zur\xFCckzugebenden Kontodaten-Bytes
  • (optional) filters: array - Filtern Sie die Ergebnisse mit den folgenden Filterobjekten:
    • memcmp: object - Passen Sie eine Reihe von Bytes an Kontodaten an:
      • offset: number - Anzahl der Bytes in den Kontodaten, um mit dem Vergleich zu beginnen
      • bytes: string - Zu vergleichende Daten, als Base58-codierter String, begrenzt auf 129 Bytes
    • dataSize: number - Vergleicht die Kontodatenl\xE4nge mit der bereitgestellten Datengr\xF6\xDFe
  • (optional) withContext: boolean - Das Ergebnis in ein [RpcResponse JSON-Objekt] einschlie\xDFen (https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure)
  • ",3),J=o('
    Antwort

    Standardm\xE4\xDFig gibt getProgramAccounts ein Array von JSON-Objekten mit der folgenden Struktur zur\xFCck:

    • pubkey: string - Der Konto-Pubkey als base58-codierter String
    • \u201Eaccount\u201C: \u201Eobject\u201C \u2013 ein JSON-Objekt mit den folgenden Unterfeldern:
      • lamports: number, Anzahl der dem Konto zugeordneten Lamports
      • owner: string, Der base58-kodierte Pubkey des Programms, dem das Konto zugewiesen wurde
      • \u201EDaten\u201C: \u201EZeichenfolge\u201C | \u201EObjekt\u201C \u2013 Daten, die dem Konto zugeordnet sind, entweder als codierte Bin\xE4rdaten oder im JSON-Format, abh\xE4ngig vom bereitgestellten Codierungsparameter
      • executable: boolean, Angabe ob das Konto ein Programm enth\xE4lt
      • rentEpoch: number, Die Epoche, in der dieses Konto das n\xE4chste mal Miete schuldet :::

    Deep Dive

    \u201EgetProgramAccounts\u201C ist eine vielseitige RPC-Methode, die alle Konten zur\xFCckgibt, die einem Programm geh\xF6ren. Wir k\xF6nnen "getProgramAccounts" f\xFCr eine Reihe n\xFCtzlicher Abfragen verwenden, z. B. um Folgendes zu finden:

    ',5),X=n("li",null,"Alle Token-Konten f\xFCr eine bestimmte Brieftasche",-1),q=s("Alle Token-Konten f\xFCr eine bestimmte Minze (d. h. alle "),$={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},nn=s("SRM"),sn=s("-Inhaber)"),an=s("Alle benutzerdefinierten Konten f\xFCr ein bestimmtes Programm (d. h. alle Benutzer von "),en={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},tn=s("Mango"),cn=s(")"),on=o("

    Trotz seiner N\xFCtzlichkeit wird getProgramAccounts aufgrund seiner derzeitigen Beschr\xE4nkungen oft missverstanden. Viele der von \u201EgetProgramAccounts\u201C unterst\xFCtzten Abfragen erfordern RPC-Knoten, um gro\xDFe Datens\xE4tze zu scannen. Diese Scans sind sowohl speicher- als auch ressourcenintensiv. Daher k\xF6nnen zu h\xE4ufige oder zu umfangreiche Aufrufe zu Verbindungszeit\xFCberschreitungen f\xFChren. Dar\xFCber hinaus unterst\xFCtzt der Endpunkt \u201EgetProgramAccounts\u201C zum Zeitpunkt der Erstellung dieses Dokuments keine Paginierung. Wenn die Ergebnisse einer Abfrage zu gro\xDF sind, wird die Antwort abgeschnitten.

    Um diese derzeitigen Beschr\xE4nkungen zu umgehen, bietet getProgramAccounts eine Reihe n\xFCtzlicher Parameter: n\xE4mlich dataSlice und die filters-Optionen memcmp und dataSize. Durch die Bereitstellung von Kombinationen dieser Parameter k\xF6nnen wir den Umfang unserer Abfragen auf \xFCberschaubare und vorhersehbare Gr\xF6\xDFen reduzieren.

    ",2),ln=s("Ein g\xE4ngiges Beispiel f\xFCr \u201EgetProgramAccounts\u201C ist die Interaktion mit dem [SPL-Token-Programm] (https://spl.solana.com/token). Das Anfordern aller Konten des Token-Programms mit einem "),pn=s("einfachen Aufruf"),un=s(" w\xFCrde eine enorme Datenmenge erfordern. Durch die Bereitstellung von Parametern k\xF6nnen wir jedoch effizient nur die Daten anfordern, die wir verwenden m\xF6chten."),rn=n("h3",{id:"filters",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#filters","aria-hidden":"true"},"#"),s(),n("code",null,"filters")],-1),mn=n("p",null,"Der h\xE4ufigste Parameter, der mit \u201EgetProgramAccounts\u201C verwendet wird, ist das \u201Efilters\u201C-Array. Dieses Array akzeptiert zwei Arten von Filtern, \u201EdataSize\u201C und \u201Ememcmp\u201C. Bevor Sie einen dieser Filter verwenden, sollten wir uns damit vertraut machen, wie die angeforderten Daten angeordnet und serialisiert sind.",-1),kn=n("h4",{id:"datasize",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#datasize","aria-hidden":"true"},"#"),s(),n("code",null,"dataSize")],-1),bn=s("Im Fall des Token-Programms k\xF6nnen wir sehen, dass "),dn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},gn=s("Token-Konten 165 Byte lang sind"),fn=s(". Insbesondere hat ein Token-Konto acht verschiedene Felder, wobei jedes Feld eine vorhersagbare Anzahl von Bytes erfordert. Wir k\xF6nnen anhand der folgenden Abbildung visualisieren, wie diese Daten angeordnet sind."),hn=o('

    Account Gr\xF6\xDFe

    Wenn wir alle Token-Konten finden m\xF6chten, die unserer Wallet-Adresse geh\xF6ren, k\xF6nnten wir \u201E{ dataSize: 165 }\u201C zu unserem \u201Efilters\u201C-Array hinzuf\xFCgen, um den Umfang unserer Abfrage auf nur Konten einzugrenzen, die genau 165 Byte lang sind. Dies allein w\xFCrde jedoch nicht ausreichen. Wir m\xFCssten auch einen Filter hinzuf\xFCgen, der nach Konten sucht, die unserer Adresse geh\xF6ren. Dies k\xF6nnen wir mit dem memcmp-Filter erreichen.

    memcmp

    Der memcmp-Filter oder "Speichervergleichsfilter" erm\xF6glicht es uns, Daten in jedem Feld zu vergleichen, das in unserem Konto gespeichert ist. Insbesondere k\xF6nnen wir nur nach Konten abfragen, die mit einem bestimmten Satz von Bytes an einer bestimmten Position \xFCbereinstimmen. memcmp erfordert zwei Argumente:

    • offset: Die Position, an der mit dem Datenvergleich begonnen werden soll. Diese Position wird in Bytes gemessen und als ganze Zahl ausgedr\xFCckt.
    • bytes: Die Daten, die mit den Daten des Kontos \xFCbereinstimmen sollen. Dies wird als Base-58-codierte Zeichenfolge dargestellt und sollte auf weniger als 129 Bytes begrenzt sein.

    Es ist wichtig zu beachten, dass "memcmp" nur Ergebnisse zur\xFCckgibt, die eine genaue \xDCbereinstimmung mit "Bytes" sind. Derzeit werden keine Vergleiche f\xFCr Werte unterst\xFCtzt, die kleiner oder gr\xF6\xDFer als die von uns bereitgestellten \u201EBytes\u201C sind.

    In \xDCbereinstimmung mit unserem Beispiel f\xFCr das Token-Programm k\xF6nnen wir unsere Abfrage so \xE4ndern, dass nur Token-Konten zur\xFCckgegeben werden, die unserer Wallet-Adresse geh\xF6ren. Wenn wir uns ein Token-Konto ansehen, k\xF6nnen wir sehen, dass die ersten beiden Felder, die auf einem Token-Konto gespeichert sind, beide Pubkeys sind und dass jeder Pubkey 32 Bytes lang ist. Da \u201EEigent\xFCmer\u201C das zweite Feld ist, sollten wir unser \u201Ememcmp\u201C bei einem \u201EOffset\u201C von 32 Bytes beginnen. Von hier aus suchen wir nach Konten, deren Eigent\xFCmerfeld mit unserer Brieftaschenadresse \xFCbereinstimmt.

    Account Gr\xF6\xDFe

    Wir k\xF6nnen diese Abfrage \xFCber das folgende Beispiel aufrufen:

    ',9),_n=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as m,a as n,b as a,w as e,F as k,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const g={},f=n("h1",{id:"programmkonten-abfragen",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#programmkonten-abfragen","aria-hidden":"true"},"#"),s(" Programmkonten Abfragen")],-1),h=n("p",null,"Eine RPC-Methode, die alle Konten zur\xFCckgibt, die einem Programm geh\xF6ren. Paginierung wird derzeit nicht unterst\xFCtzt. Anfragen an \u201EgetProgramAccounts\u201C sollten die Parameter \u201EdataSlice\u201C und/oder \u201Efilters\u201C enthalten, um die Antwortzeit zu verbessern und nur beabsichtigte Ergebnisse zur\xFCckzugeben.",-1),_=n("h2",{id:"fakten",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#fakten","aria-hidden":"true"},"#"),s(" Fakten")],-1),y={class:"custom-container tip"},w=n("p",{class:"custom-container-title"},"Parameters",-1),A=n("li",null,"\u201EprogramId\u201C: \u201Estring\u201C \u2013 Pubkey des abzufragenden Programms, bereitgestellt als base58-codierter String",-1),z=s("(optional) "),D=n("code",null,"configOrCommitment",-1),P=s(": "),S=n("code",null,"object",-1),v=s(" - Konfigurationsparameter, die die folgenden optionalen Felder enthalten: "),K=s("(optional) "),T=n("code",null,"commitment",-1),C=s(": "),E=n("code",null,"string",-1),B=s(" - "),M={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},N=s("Staatliche Verpflichtung"),R=s("(optional) "),F=n("code",null,"encoding",-1),G=s(": "),L=n("code",null,"string",-1),x=s(" - Encoding f\xFCr Kontodaten, entweder: "),Z=n("code",null,"base58",-1),W=s(", "),H=n("code",null,"base64",-1),U=s(" oder "),Q=n("code",null,"jsonParsed",-1),j=s(". Beachten Sie, dass Benutzer von web3js stattdessen "),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},O=s("getParsedProgramAccounts"),I=s(" verwenden sollten."),Y=o("
  • (optional) dataSlice: object - Beschr\xE4nken Sie die zur\xFCckgegebenen Kontodaten basierend auf:
    • offset: number - Anzahl der Bytes in Kontodaten, um mit der R\xFCckgabe zu beginnen
    • length: number - Anzahl der zur\xFCckzugebenden Kontodaten-Bytes
  • (optional) filters: array - Filtern Sie die Ergebnisse mit den folgenden Filterobjekten:
    • memcmp: object - Passen Sie eine Reihe von Bytes an Kontodaten an:
      • offset: number - Anzahl der Bytes in den Kontodaten, um mit dem Vergleich zu beginnen
      • bytes: string - Zu vergleichende Daten, als Base58-codierter String, begrenzt auf 129 Bytes
    • dataSize: number - Vergleicht die Kontodatenl\xE4nge mit der bereitgestellten Datengr\xF6\xDFe
  • (optional) withContext: boolean - Das Ergebnis in ein [RpcResponse JSON-Objekt] einschlie\xDFen (https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure)
  • ",3),J=o('
    Antwort

    Standardm\xE4\xDFig gibt getProgramAccounts ein Array von JSON-Objekten mit der folgenden Struktur zur\xFCck:

    • pubkey: string - Der Konto-Pubkey als base58-codierter String
    • \u201Eaccount\u201C: \u201Eobject\u201C \u2013 ein JSON-Objekt mit den folgenden Unterfeldern:
      • lamports: number, Anzahl der dem Konto zugeordneten Lamports
      • owner: string, Der base58-kodierte Pubkey des Programms, dem das Konto zugewiesen wurde
      • \u201EDaten\u201C: \u201EZeichenfolge\u201C | \u201EObjekt\u201C \u2013 Daten, die dem Konto zugeordnet sind, entweder als codierte Bin\xE4rdaten oder im JSON-Format, abh\xE4ngig vom bereitgestellten Codierungsparameter
      • executable: boolean, Angabe ob das Konto ein Programm enth\xE4lt
      • rentEpoch: number, Die Epoche, in der dieses Konto das n\xE4chste mal Miete schuldet :::

    Deep Dive

    \u201EgetProgramAccounts\u201C ist eine vielseitige RPC-Methode, die alle Konten zur\xFCckgibt, die einem Programm geh\xF6ren. Wir k\xF6nnen "getProgramAccounts" f\xFCr eine Reihe n\xFCtzlicher Abfragen verwenden, z. B. um Folgendes zu finden:

    ',5),X=n("li",null,"Alle Token-Konten f\xFCr eine bestimmte Brieftasche",-1),q=s("Alle Token-Konten f\xFCr eine bestimmte Minze (d. h. alle "),$={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},nn=s("SRM"),sn=s("-Inhaber)"),an=s("Alle benutzerdefinierten Konten f\xFCr ein bestimmtes Programm (d. h. alle Benutzer von "),en={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},tn=s("Mango"),cn=s(")"),on=o("

    Trotz seiner N\xFCtzlichkeit wird getProgramAccounts aufgrund seiner derzeitigen Beschr\xE4nkungen oft missverstanden. Viele der von \u201EgetProgramAccounts\u201C unterst\xFCtzten Abfragen erfordern RPC-Knoten, um gro\xDFe Datens\xE4tze zu scannen. Diese Scans sind sowohl speicher- als auch ressourcenintensiv. Daher k\xF6nnen zu h\xE4ufige oder zu umfangreiche Aufrufe zu Verbindungszeit\xFCberschreitungen f\xFChren. Dar\xFCber hinaus unterst\xFCtzt der Endpunkt \u201EgetProgramAccounts\u201C zum Zeitpunkt der Erstellung dieses Dokuments keine Paginierung. Wenn die Ergebnisse einer Abfrage zu gro\xDF sind, wird die Antwort abgeschnitten.

    Um diese derzeitigen Beschr\xE4nkungen zu umgehen, bietet getProgramAccounts eine Reihe n\xFCtzlicher Parameter: n\xE4mlich dataSlice und die filters-Optionen memcmp und dataSize. Durch die Bereitstellung von Kombinationen dieser Parameter k\xF6nnen wir den Umfang unserer Abfragen auf \xFCberschaubare und vorhersehbare Gr\xF6\xDFen reduzieren.

    ",2),ln=s("Ein g\xE4ngiges Beispiel f\xFCr \u201EgetProgramAccounts\u201C ist die Interaktion mit dem [SPL-Token-Programm] (https://spl.solana.com/token). Das Anfordern aller Konten des Token-Programms mit einem "),pn=s("einfachen Aufruf"),un=s(" w\xFCrde eine enorme Datenmenge erfordern. Durch die Bereitstellung von Parametern k\xF6nnen wir jedoch effizient nur die Daten anfordern, die wir verwenden m\xF6chten."),rn=n("h3",{id:"filters",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#filters","aria-hidden":"true"},"#"),s(),n("code",null,"filters")],-1),mn=n("p",null,"Der h\xE4ufigste Parameter, der mit \u201EgetProgramAccounts\u201C verwendet wird, ist das \u201Efilters\u201C-Array. Dieses Array akzeptiert zwei Arten von Filtern, \u201EdataSize\u201C und \u201Ememcmp\u201C. Bevor Sie einen dieser Filter verwenden, sollten wir uns damit vertraut machen, wie die angeforderten Daten angeordnet und serialisiert sind.",-1),kn=n("h4",{id:"datasize",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#datasize","aria-hidden":"true"},"#"),s(),n("code",null,"dataSize")],-1),bn=s("Im Fall des Token-Programms k\xF6nnen wir sehen, dass "),dn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},gn=s("Token-Konten 165 Byte lang sind"),fn=s(". Insbesondere hat ein Token-Konto acht verschiedene Felder, wobei jedes Feld eine vorhersagbare Anzahl von Bytes erfordert. Wir k\xF6nnen anhand der folgenden Abbildung visualisieren, wie diese Daten angeordnet sind."),hn=o('

    Account Gr\xF6\xDFe

    Wenn wir alle Token-Konten finden m\xF6chten, die unserer Wallet-Adresse geh\xF6ren, k\xF6nnten wir \u201E{ dataSize: 165 }\u201C zu unserem \u201Efilters\u201C-Array hinzuf\xFCgen, um den Umfang unserer Abfrage auf nur Konten einzugrenzen, die genau 165 Byte lang sind. Dies allein w\xFCrde jedoch nicht ausreichen. Wir m\xFCssten auch einen Filter hinzuf\xFCgen, der nach Konten sucht, die unserer Adresse geh\xF6ren. Dies k\xF6nnen wir mit dem memcmp-Filter erreichen.

    memcmp

    Der memcmp-Filter oder "Speichervergleichsfilter" erm\xF6glicht es uns, Daten in jedem Feld zu vergleichen, das in unserem Konto gespeichert ist. Insbesondere k\xF6nnen wir nur nach Konten abfragen, die mit einem bestimmten Satz von Bytes an einer bestimmten Position \xFCbereinstimmen. memcmp erfordert zwei Argumente:

    • offset: Die Position, an der mit dem Datenvergleich begonnen werden soll. Diese Position wird in Bytes gemessen und als ganze Zahl ausgedr\xFCckt.
    • bytes: Die Daten, die mit den Daten des Kontos \xFCbereinstimmen sollen. Dies wird als Base-58-codierte Zeichenfolge dargestellt und sollte auf weniger als 129 Bytes begrenzt sein.

    Es ist wichtig zu beachten, dass "memcmp" nur Ergebnisse zur\xFCckgibt, die eine genaue \xDCbereinstimmung mit "Bytes" sind. Derzeit werden keine Vergleiche f\xFCr Werte unterst\xFCtzt, die kleiner oder gr\xF6\xDFer als die von uns bereitgestellten \u201EBytes\u201C sind.

    In \xDCbereinstimmung mit unserem Beispiel f\xFCr das Token-Programm k\xF6nnen wir unsere Abfrage so \xE4ndern, dass nur Token-Konten zur\xFCckgegeben werden, die unserer Wallet-Adresse geh\xF6ren. Wenn wir uns ein Token-Konto ansehen, k\xF6nnen wir sehen, dass die ersten beiden Felder, die auf einem Token-Konto gespeichert sind, beide Pubkeys sind und dass jeder Pubkey 32 Bytes lang ist. Da \u201EEigent\xFCmer\u201C das zweite Feld ist, sollten wir unser \u201Ememcmp\u201C bei einem \u201EOffset\u201C von 32 Bytes beginnen. Von hier aus suchen wir nach Konten, deren Eigent\xFCmerfeld mit unserer Brieftaschenadresse \xFCbereinstimmt.

    Account Gr\xF6\xDFe

    Wir k\xF6nnen diese Abfrage \xFCber das folgende Beispiel aufrufen:

    ',9),_n=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.b4e0f4f3.js b/docs/.vuepress/dist/assets/get-program-accounts.html.b4e0f4f3.js index b895b6401..25e9e9142 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.b4e0f4f3.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.b4e0f4f3.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,o as r,c as k,a as n,b as a,w as t,F as m,e as c,d as s}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const g={},f=c('

    Mendapatkan Akun Program (getProgramAccounts)

    adalah sebuah metode RPC untuk mendapatkan semua akun yang dimiliki oleh suatu program. Saat ini pagination tidak didukung. Request ke getProgramAccounts harus menyertakan parameter dataSlice dan/atau filters untuk mempercepat waktu respon dan hanya mengembalikan hasil yang diinginkan.

    Fakta

    ',3),h={class:"custom-container tip"},_=n("p",{class:"custom-container-title"},"Parameter",-1),y=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Pubkey dari program yang akan diambil, disediakan sebagai string yang di encode menggunakan base58")],-1),w=s("(opsional) "),A=n("code",null,"configOrCommitment",-1),S=s(": "),P=n("code",null,"object",-1),C=s(" - Parameter konfigurasi yang berisi field opsional berikut: "),D=s("(opsional) "),T=n("code",null,"commitment",-1),E=s(": "),M=n("code",null,"string",-1),N=s(" - "),v={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},R=s("State commitment"),K=s("(opsional) "),j=n("code",null,"encoding",-1),B=s(": "),G=n("code",null,"string",-1),L=s(" - Encoding yang digunakan untuk data akun, baik: "),z=n("code",null,"base58",-1),x=s(", "),F=n("code",null,"base64",-1),H=s(", atau "),Z=n("code",null,"jsonParsed",-1),Q=s(". Catatan, pengguna web3js sebaiknya menggunakan "),U={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},W=s("getParsedProgramAccounts"),J=c("
  • (opsional) dataSlice: object - Membatasi jumlah data akun yang dikembalikan berdasarkan:
    • offset: number - Jumlah byte ke dalam data akun untuk mulai kembali
    • length: number - Jumlah byte data akun yang akan dikembalikan
  • (opsional) filters: array - Filter hasil menggunakan objek filter berikut:
    • memcmp: object - Untuk mencocokkan serangkaian byte dengan data akun:
      • offset: number - Posisi byte dalam data akun tempat dimulai perbandingannya
      • bytes: string - Data yang sedang dicocokkan berupa string yang di encode base58, dibatasi hingga 129 byte
    • dataSize: number - Membandingkan panjang data akun dengan ukuran data yang disediakan
  • ",2),V=s("(opsional) "),Y=n("code",null,"withContext",-1),X=s(": "),O=n("code",null,"boolean",-1),I=s(" - Untuk membungkus hasilnya dalam "),q={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},$=s("object RpcResponse JSON"),nn=c('
    Response

    Secara default getProgramAccounts akan mengembalikan array dari objek JSON dengan struktur berikut:

    • pubkey: string - Pubkey akun berupa string yang diencode base58
    • account: object - sebuah objek JSON, dengan sub-field berikut:
      • lamports: number, jumlah lamport yang dimiliki sebuah akun
      • owner: string, Pubkey dengan encode base58 dari program tempat akun tersebut dipasangkan
      • data: string | object - data yang terkait dengan akun, baik berupa data biner yang telah diencode atau format JSON tergantung pada parameter jenis encoding yang diberikan
      • executable: boolean, untuk mengindikasi jika akun tersebut berisi sebuah program
      • rentEpoch: number, Epoch di mana akun ini selanjutnya akan berutang sewa

    Memahami lebih dalam

    getProgramAccounts adalah metode RPC serbaguna yang mendapatkan semua akun yang dimiliki oleh suatu program. Kita dapat menggunakan getProgramAccounts untuk sejumlah query yang berguna, seperti menemukan:

    ',5),sn=n("li",null,"Semua akun token untuk wallet tertentu",-1),an=s("Semua akun token untuk mint tertentu (yaitu Semua pemegang "),en={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},tn=s("SRM"),cn=s(")"),on=s("Semua akun khusus untuk program tertentu (yaitu Semua pengguna "),ln={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},pn=s("Mango"),un=s(")"),rn=c("

    Terlepas dari kegunaannya, getProgramAccounts sering disalahpahami karena batasannya saat ini. Banyak query yang didukung oleh getProgramAccounts memerlukan node RPC untuk melakukan scan dari kumpulan data yang besar. Proses scan ini membutuhkan memori dan sumber daya yang intensif. Akibatnya, pemanggilan yang terlalu sering atau terlalu besar cakupannya dapat mengakibatkan connection timeout. Selanjutnya, pada saat penulisan ini, endpoint dari getProgramAccounts tidak mendukung pagination. Jika hasil query terlalu besar, respons akan dipecah (truncate).

    Untuk mengatasi kendala saat ini, getProgramAccounts menawarkan sejumlah parameter yang berguna: yaitu, dataSlice dan opsi dari filters yaitu memcmp dan dataSize. Dengan memberikan kombinasi parameter ini, kita dapat mengurangi cakupan query kita menjadi ukuran yang dapat dikelola dan diprediksi.

    ",2),kn=s("Contoh umum dari "),mn=n("code",null,"getProgramAccounts",-1),bn=s(" melibatkan interaksi dengan "),dn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},gn=s("Program Token SPL"),fn=s(". Meminta semua akun yang dimiliki oleh Program Token dengan sebuah "),hn=s("basic call"),_n=s(" akan melibatkan sejumlah data yang besar. Namun, dengan memberikan parameter, kita dapat meminta hanya data yang ingin kita gunakan secara efisien."),yn=c('

    filters

    Parameter yang paling umum digunakan dengan getProgramAccounts adalah array dari filters. Array ini menerima dua jenis filter, yaitu dataSize dan memcmp. Sebelum menggunakan salah satu dari filter ini, kita harus terbiasa dengan bagaimana data yang kita minta ditata dan diserialisasi.

    dataSize

    ',3),wn=s("Dalam kasus Program Token, kita dapat melihat bahwa "),An={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Sn=s("akun token memiliki panjang 165 byte"),Pn=s(". Secara khusus, akun token memiliki delapan field yang berbeda, dengan masing-masing field membutuhkan jumlah byte yang dapat diprediksi. Kita dapat memvisualisasikan bagaimana data ini ditata menggunakan ilustrasi di bawah ini."),Cn=c('

    Account Size

    Jika kita ingin menemukan semua akun token yang dimiliki oleh address wallet kita, kita dapat menambahkan { dataSize: 165 } ke dalam array filters kita untuk memperkecil cakupan query kita menjadi hanya akun yang panjangnya tepat 165 byte. Namun, ini saja tidak akan cukup. kita juga perlu menambahkan filter untuk yang mencari akun yang dimiliki oleh address kita. Kita bisa mendapatkan ini dengan filter memcmp.

    memcmp

    Filter memcmp, atau filter "memory comparison", memungkinkan kita untuk membandingkan data di field mana pun yang tersimpan di akun kita. Secara khusus, kita hanya dapat melakukan query untuk akun yang cocok dengan sekumpulan byte tertentu pada posisi tertentu. memcmp membutuhkan dua argumen:

    • offset: Posisi untuk mulai membandingkan data. Posisi ini diukur dalam byte dan dinyatakan sebagai bilangan bulat.
    • bytes: Data yang harus cocok dengan data akun. Ini direpresentasikan dengan string yang diencode menggunakan base-58 dan harus berukuran kurang dari 129 byte.

    Penting untuk diperhatikan bahwa memcmp hanya akan mengembalikan hasil yang bagian dari datanya sama persis dengan bytes. Saat ini, memcmp tidak mendukung perbandingan untuk data yang kurang dari atau lebih besar dari bytes yang kita berikan.

    Sesuai dengan contoh Program Token kita, kita dapat mengubah query kita untuk hanya mengembalikan akun token yang dimiliki oleh address wallet kita. Saat melihat akun token, kita dapat melihat dua field pertama yang disimpan di akun token adalah pubkey, dan masing-masing pubkey memiliki panjang 32 byte. Mengingat bahwa owner adalah field kedua, kita harus memulai memcmp kita pada offset 32 byte. Dari sini, kita akan mencari akun yang field ownernya cocok dengan address wallet kita.

    Account Size

    kita dapat memanggil query ini melalui contoh berikut:

    ',9),Dn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as k,a as n,b as a,w as t,F as m,e as c,d as s}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const g={},f=c('

    Mendapatkan Akun Program (getProgramAccounts)

    adalah sebuah metode RPC untuk mendapatkan semua akun yang dimiliki oleh suatu program. Saat ini pagination tidak didukung. Request ke getProgramAccounts harus menyertakan parameter dataSlice dan/atau filters untuk mempercepat waktu respon dan hanya mengembalikan hasil yang diinginkan.

    Fakta

    ',3),h={class:"custom-container tip"},_=n("p",{class:"custom-container-title"},"Parameter",-1),y=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - Pubkey dari program yang akan diambil, disediakan sebagai string yang di encode menggunakan base58")],-1),w=s("(opsional) "),A=n("code",null,"configOrCommitment",-1),S=s(": "),P=n("code",null,"object",-1),C=s(" - Parameter konfigurasi yang berisi field opsional berikut: "),D=s("(opsional) "),T=n("code",null,"commitment",-1),E=s(": "),M=n("code",null,"string",-1),N=s(" - "),v={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},R=s("State commitment"),K=s("(opsional) "),j=n("code",null,"encoding",-1),B=s(": "),G=n("code",null,"string",-1),L=s(" - Encoding yang digunakan untuk data akun, baik: "),z=n("code",null,"base58",-1),x=s(", "),F=n("code",null,"base64",-1),H=s(", atau "),Z=n("code",null,"jsonParsed",-1),Q=s(". Catatan, pengguna web3js sebaiknya menggunakan "),U={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},W=s("getParsedProgramAccounts"),J=c("
  • (opsional) dataSlice: object - Membatasi jumlah data akun yang dikembalikan berdasarkan:
    • offset: number - Jumlah byte ke dalam data akun untuk mulai kembali
    • length: number - Jumlah byte data akun yang akan dikembalikan
  • (opsional) filters: array - Filter hasil menggunakan objek filter berikut:
    • memcmp: object - Untuk mencocokkan serangkaian byte dengan data akun:
      • offset: number - Posisi byte dalam data akun tempat dimulai perbandingannya
      • bytes: string - Data yang sedang dicocokkan berupa string yang di encode base58, dibatasi hingga 129 byte
    • dataSize: number - Membandingkan panjang data akun dengan ukuran data yang disediakan
  • ",2),V=s("(opsional) "),Y=n("code",null,"withContext",-1),X=s(": "),O=n("code",null,"boolean",-1),I=s(" - Untuk membungkus hasilnya dalam "),q={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},$=s("object RpcResponse JSON"),nn=c('
    Response

    Secara default getProgramAccounts akan mengembalikan array dari objek JSON dengan struktur berikut:

    • pubkey: string - Pubkey akun berupa string yang diencode base58
    • account: object - sebuah objek JSON, dengan sub-field berikut:
      • lamports: number, jumlah lamport yang dimiliki sebuah akun
      • owner: string, Pubkey dengan encode base58 dari program tempat akun tersebut dipasangkan
      • data: string | object - data yang terkait dengan akun, baik berupa data biner yang telah diencode atau format JSON tergantung pada parameter jenis encoding yang diberikan
      • executable: boolean, untuk mengindikasi jika akun tersebut berisi sebuah program
      • rentEpoch: number, Epoch di mana akun ini selanjutnya akan berutang sewa

    Memahami lebih dalam

    getProgramAccounts adalah metode RPC serbaguna yang mendapatkan semua akun yang dimiliki oleh suatu program. Kita dapat menggunakan getProgramAccounts untuk sejumlah query yang berguna, seperti menemukan:

    ',5),sn=n("li",null,"Semua akun token untuk wallet tertentu",-1),an=s("Semua akun token untuk mint tertentu (yaitu Semua pemegang "),en={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},tn=s("SRM"),cn=s(")"),on=s("Semua akun khusus untuk program tertentu (yaitu Semua pengguna "),ln={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},pn=s("Mango"),un=s(")"),rn=c("

    Terlepas dari kegunaannya, getProgramAccounts sering disalahpahami karena batasannya saat ini. Banyak query yang didukung oleh getProgramAccounts memerlukan node RPC untuk melakukan scan dari kumpulan data yang besar. Proses scan ini membutuhkan memori dan sumber daya yang intensif. Akibatnya, pemanggilan yang terlalu sering atau terlalu besar cakupannya dapat mengakibatkan connection timeout. Selanjutnya, pada saat penulisan ini, endpoint dari getProgramAccounts tidak mendukung pagination. Jika hasil query terlalu besar, respons akan dipecah (truncate).

    Untuk mengatasi kendala saat ini, getProgramAccounts menawarkan sejumlah parameter yang berguna: yaitu, dataSlice dan opsi dari filters yaitu memcmp dan dataSize. Dengan memberikan kombinasi parameter ini, kita dapat mengurangi cakupan query kita menjadi ukuran yang dapat dikelola dan diprediksi.

    ",2),kn=s("Contoh umum dari "),mn=n("code",null,"getProgramAccounts",-1),bn=s(" melibatkan interaksi dengan "),dn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},gn=s("Program Token SPL"),fn=s(". Meminta semua akun yang dimiliki oleh Program Token dengan sebuah "),hn=s("basic call"),_n=s(" akan melibatkan sejumlah data yang besar. Namun, dengan memberikan parameter, kita dapat meminta hanya data yang ingin kita gunakan secara efisien."),yn=c('

    filters

    Parameter yang paling umum digunakan dengan getProgramAccounts adalah array dari filters. Array ini menerima dua jenis filter, yaitu dataSize dan memcmp. Sebelum menggunakan salah satu dari filter ini, kita harus terbiasa dengan bagaimana data yang kita minta ditata dan diserialisasi.

    dataSize

    ',3),wn=s("Dalam kasus Program Token, kita dapat melihat bahwa "),An={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Sn=s("akun token memiliki panjang 165 byte"),Pn=s(". Secara khusus, akun token memiliki delapan field yang berbeda, dengan masing-masing field membutuhkan jumlah byte yang dapat diprediksi. Kita dapat memvisualisasikan bagaimana data ini ditata menggunakan ilustrasi di bawah ini."),Cn=c('

    Account Size

    Jika kita ingin menemukan semua akun token yang dimiliki oleh address wallet kita, kita dapat menambahkan { dataSize: 165 } ke dalam array filters kita untuk memperkecil cakupan query kita menjadi hanya akun yang panjangnya tepat 165 byte. Namun, ini saja tidak akan cukup. kita juga perlu menambahkan filter untuk yang mencari akun yang dimiliki oleh address kita. Kita bisa mendapatkan ini dengan filter memcmp.

    memcmp

    Filter memcmp, atau filter "memory comparison", memungkinkan kita untuk membandingkan data di field mana pun yang tersimpan di akun kita. Secara khusus, kita hanya dapat melakukan query untuk akun yang cocok dengan sekumpulan byte tertentu pada posisi tertentu. memcmp membutuhkan dua argumen:

    • offset: Posisi untuk mulai membandingkan data. Posisi ini diukur dalam byte dan dinyatakan sebagai bilangan bulat.
    • bytes: Data yang harus cocok dengan data akun. Ini direpresentasikan dengan string yang diencode menggunakan base-58 dan harus berukuran kurang dari 129 byte.

    Penting untuk diperhatikan bahwa memcmp hanya akan mengembalikan hasil yang bagian dari datanya sama persis dengan bytes. Saat ini, memcmp tidak mendukung perbandingan untuk data yang kurang dari atau lebih besar dari bytes yang kita berikan.

    Sesuai dengan contoh Program Token kita, kita dapat mengubah query kita untuk hanya mengembalikan akun token yang dimiliki oleh address wallet kita. Saat melihat akun token, kita dapat melihat dua field pertama yang disimpan di akun token adalah pubkey, dan masing-masing pubkey memiliki panjang 32 byte. Mengingat bahwa owner adalah field kedua, kita harus memulai memcmp kita pada offset 32 byte. Dari sini, kita akan mencari akun yang field ownernya cocok dengan address wallet kita.

    Account Size

    kita dapat memanggil query ini melalui contoh berikut:

    ',9),Dn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.dfdd1137.js b/docs/.vuepress/dist/assets/get-program-accounts.html.dfdd1137.js index 6e50e788d..5e568c10e 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.dfdd1137.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.dfdd1137.js @@ -1,4 +1,4 @@ -import{_ as c,r as o,o as l,c as i,a as n,b as s,w as r,F as u,d as a,e as t}from"./app.55b1b60c.js";var d="/assets/account-size.398f17bf.png",k="/assets/memcmp.c5e1f050.png";const b={},m=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),a(" Get Program Accounts")],-1),g=n("p",null,"Bir program\u0131n sahip oldu\u011Fu t\xFCm account'lar\u0131 d\xF6nd\xFCren bir RPC y\xF6ntemidir. \u015Eu anda pagination desteklenmemektedir. getProgramAccounts requests, yan\u0131t s\xFCresini iyile\u015Ftirmek ve yaln\u0131zca ama\xE7lanan sonu\xE7lar\u0131 d\xF6nd\xFCrmek i\xE7in dataSlice ve/veya filters parametrelerini i\xE7ermelidir.",-1),h=n("h2",{id:"facts-ozet-bilgiler",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#facts-ozet-bilgiler","aria-hidden":"true"},"#"),a(" Facts (\xD6zet Bilgiler)")],-1),_=n("p",null,":::Parametreler",-1),y=n("li",null,[n("code",null,"programId"),a(": "),n("code",null,"string"),a(" - Sorgulanacak program\u0131n public key\u2019i, base58 kodlu bir string olarak sa\u011Flan\u0131r")],-1),f=a("(iste\u011Fe ba\u011Fl\u0131) "),z=n("code",null,"configOrCommitment",-1),v=a(": "),A=n("code",null,"object",-1),P=a(" - A\u015Fa\u011F\u0131daki iste\u011Fe ba\u011Fl\u0131 alanlar\u0131 i\xE7eren yap\u0131land\u0131rma parametreleri: "),w=a("(iste\u011Fe ba\u011Fl\u0131) "),S=n("code",null,"commitment",-1),q=a(": "),B=n("code",null,"string",-1),D=a(" - "),T={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},E=a("Durum Taahh\xFCd\xFC"),K=a("(iste\u011Fe ba\u011Fl\u0131) "),N=n("code",null,"encoding",-1),C=a(": "),x=n("code",null,"string",-1),R=a(" - Account verileri i\xE7in encode: base58, base64 veya jsonParsed\u2019d\u0131r. Web3js kullan\u0131c\u0131lar\u0131n\u0131n bunun yerine "),M={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},L=a("getParsedProgramAccounts"),G=a(" kullanmas\u0131 gerekti\u011Fini unutmay\u0131n."),O=t("
  • (iste\u011Fe ba\u011Fl\u0131) dataSlice: object - Geri d\xF6nd\xFCr\xFClen account verilerini a\u015Fa\u011F\u0131dakilere g\xF6re s\u0131n\u0131rlay\u0131n:
    • offset: number - Geri d\xF6nd\xFCrmeye ba\u015Flamak i\xE7in account verisindeki bayt say\u0131s\u0131
    • length: number - Geri d\xF6nd\xFCr\xFClecek account verilerinin bayt say\u0131s\u0131
  • (iste\u011Fe ba\u011Fl\u0131) filters: array - A\u015Fa\u011F\u0131daki filters nesnelerini kullanarak sonu\xE7lar\u0131 filtreleyin:
    • memcmp: object - Bir dizi bayt\u0131 account verileriyle e\u015Fle\u015Ftirin:
      • offset: number - Kar\u015F\u0131la\u015Ft\u0131rmaya ba\u015Flamak i\xE7in account verilerinin bayt say\u0131s\u0131
      • bytes: string - 129 bayt ile s\u0131n\u0131rl\u0131 base58 kodlu string olarak e\u015Fle\u015Fecek veriler
    • dataSize: number - Account data uzunlu\u011Funu sa\u011Flanan veri boyutuyla kar\u015F\u0131la\u015Ft\u0131r\u0131r
  • ",2),j=a("(iste\u011Fe ba\u011Fl\u0131) "),H=n("code",null,"withContext",-1),V=a(": "),Y=n("code",null,"boolean",-1),F=a(" - Sonucu bir "),U={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},I=a("RpcResponse JSON nesnesine sarmalay\u0131n"),W=t('
    Response

    Varsay\u0131lan olarak getProgramAccounts, a\u015Fa\u011F\u0131daki yap\u0131ya sahip bir dizi JSON nesnesi d\xF6nd\xFCr\xFCr:

    • pubkey: string - Base58 kodlu bir string olarak account'\u0131n pubkeyi
    • account: object - a\u015Fa\u011F\u0131daki alt alanlara sahip bir JSON nesnesi:
    • lamports: number, account'a atanan lamport say\u0131s\u0131
    • owner: string, Hesab\u0131n atand\u0131\u011F\u0131 program\u0131n base58 kodlu yay\u0131n anahtar\u0131
    • data: string | object - account'la ili\u015Fkili veriler, sa\u011Flanan kodlama parametresine ba\u011Fl\u0131 olarak kodlanm\u0131\u015F binary data veya JSON format\u0131d\u0131r
    • executable: boolean, Hesap bir program i\xE7erp i\xE7ermedi\u011Finin g\xF6stergesi
    • rentEpoch: number, Bu account'\u0131n bir sonraki rent borcunun olaca\u011F\u0131 epoch :::

    Deep Dive (Derinlemesine Bak\u0131\u015F)

    getProgramAccounts, bir program\u0131n sahip oldu\u011Fu t\xFCm account'lar\u0131 d\xF6nd\xFCren \xE7ok y\xF6nl\xFC bir RPC methodudur. getProgramAccounts'u a\u015Fa\u011F\u0131dakileri bulmak gibi bir dizi yararl\u0131 sorgu i\xE7in kullanabiliriz:

    ',5),Z=n("li",null,"Belirli bir c\xFCzdan i\xE7in t\xFCm token account'lar\u0131",-1),J=a("Belirli bir mint i\xE7in t\xFCm token account'lar\u0131 (t\xFCm "),$={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},Q=a("SRM"),X=a(" sahipleri)"),nn=a("Belirli bir program i\xE7in t\xFCm private account'lar (t\xFCm "),an={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},sn=a("Mango"),en=a(" kullan\u0131c\u0131lar\u0131)"),tn=t("

    Kullan\u0131\u015Fl\u0131l\u0131\u011F\u0131na ra\u011Fmen, getProgramAccounts, mevcut k\u0131s\u0131tlamalar\u0131 nedeniyle genellikle yanl\u0131\u015F anla\u015F\u0131l\u0131r. getProgramAccounts taraf\u0131ndan desteklenen sorgular\u0131n \xE7o\u011Fu, b\xFCy\xFCk veri k\xFCmelerini taramak i\xE7in RPC node\u2019lar\u0131n\u0131 gerektirir. Bu taramalar hem bellek hem de kaynak yo\u011Fundur. Sonu\xE7 olarak, \xE7ok s\u0131k veya \xE7ok geni\u015F kapsaml\u0131 \xE7a\u011Fr\u0131lar ba\u011Flant\u0131 zaman a\u015F\u0131mlar\u0131na neden olabilir. Ayr\u0131ca, bu yaz\u0131n\u0131n yaz\u0131ld\u0131\u011F\u0131 s\u0131rada getProgramAccounts u\xE7 noktas\u0131 sayfaland\u0131rmay\u0131 desteklemez. Bir sorgunun sonu\xE7lar\u0131 \xE7ok b\xFCy\xFCkse, yan\u0131t kesilecektir.

    Bu mevcut k\u0131s\u0131tlamalar\u0131 a\u015Fmak i\xE7in getProgramAccounts bir dizi faydal\u0131 parametre sunar: dataSlice, memcmp ve dataSize, filters se\xE7enekleri. Bu parametrelerin kombinasyonlar\u0131n\u0131 sa\u011Flayarak sorgular\u0131m\u0131z\u0131n kapsam\u0131n\u0131 y\xF6netilebilir ve \xF6ng\xF6r\xFClebilir boyutlara indirebiliriz.

    ",2),on=a("Yayg\u0131n bir "),pn=n("code",null,"getProgramAccounts",-1),cn=a(" \xF6rne\u011Fi, "),ln={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},rn=a("SPL-Token Program\u0131"),un=a(" ile etkile\u015Fimi i\xE7erir. Token Program\u0131n\u0131n sahip oldu\u011Fu t\xFCm account'lar\u0131 bir "),dn=a("basic call"),kn=a(" ile request etmek, \xE7ok b\xFCy\xFCk miktarda veri gerektirecektir. Ancak parametreleri sa\u011Flayarak, yaln\u0131zca kullanmay\u0131 d\xFC\u015F\xFCnd\xFC\u011F\xFCm\xFCz verileri verimli bir \u015Fekilde request edebiliriz."),bn=t('

    filters

    getProgramAccounts ile kullan\u0131lacak en yayg\u0131n parametre filters array\u2019idir. Bu array, dataSize ve memcmp olmak \xFCzere iki t\xFCr filtre kabul eder. Bu filtrelerden herhangi birini kullanmadan \xF6nce, request etti\u011Fimiz verilerin nas\u0131l d\xFCzenlendi\u011Fini ve serile\u015Ftirildi\u011Fini bilmeliyiz.

    dataSize

    ',3),mn=a("Token Program\u0131 i\xE7in, "),gn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},hn=a("token account'lar\u0131n\u0131n 165 bayt uzunlu\u011Funda"),_n=a(" oldu\u011Funu g\xF6rebiliriz. Spesifik olarak, bir belirte\xE7 account'\u0131n\u0131n her biri tahmin edilebilir say\u0131da bayt gerektiren sekiz farkl\u0131 alan\u0131 vard\u0131r. A\u015Fa\u011F\u0131daki \xE7izimi kullanarak bu verilerin nas\u0131l d\xFCzenlendi\u011Fini g\xF6rselle\u015Ftirebiliriz."),yn=t('

    Account Size

    C\xFCzdan adresimize ait t\xFCm token account'lar\u0131n\u0131 bulmak istiyorsak, sorgumuzun kapsam\u0131n\u0131 tam olarak 165 bayt uzunlu\u011Fundaki account'lara daraltmak i\xE7in filters dizimize { dataSize: 165 } ekleyebiliriz. Ancak bu tek ba\u015F\u0131na yetersiz olacakt\u0131r. Ayr\u0131ca adresimize ait account'lar\u0131 arayan bir filtre eklememiz gerekir. Bunu memcmp filtresiyle ba\u015Farabiliriz

    memcmp

    memcmp filtresi veya "bellek kar\u015F\u0131la\u015Ft\u0131rma" filtresi, account'\u0131m\u0131zda depolanan herhangi bir alandaki verileri kar\u015F\u0131la\u015Ft\u0131rmam\u0131za olanak tan\u0131r. Spesifik olarak, yaln\u0131zca belirli bir konumda belirli bir bayt k\xFCmesiyle e\u015Fle\u015Fen account'lar\u0131 sorgulayabiliriz. memcmp iki arg\xFCman gerektirir:

    • offset: Verileri kar\u015F\u0131la\u015Ft\u0131rmaya ba\u015Flayaca\u011F\u0131n\u0131z konum. Bu konum bayt cinsinden \xF6l\xE7\xFCl\xFCr ve bir tamsay\u0131 olarak ifade edilir.
    • bytes: Hesab\u0131n verileriyle e\u015Fle\u015Fmesi gereken veriler. Bu, base-58 kodlu bir string olarak temsil edilir, 129 bayttan daha az ile s\u0131n\u0131rland\u0131r\u0131lmal\u0131d\u0131r.

    Memcmp'nin yaln\u0131zca bytes ile tam olarak e\u015Fle\u015Fen sonu\xE7lar\u0131 d\xF6nd\xFCrece\u011Fini unutmamak \xF6nemlidir. \u015Eu anda, sa\u011Flad\u0131\u011F\u0131m\u0131z bytes\u2019dan daha k\xFC\xE7\xFCk veya daha b\xFCy\xFCk de\u011Ferler i\xE7in kar\u015F\u0131la\u015Ft\u0131rmalar\u0131 desteklememektedir.

    Token Program\u0131 \xF6rne\u011Fimize uygun olarak, sorgumuzu yaln\u0131zca c\xFCzdan adresimize ait olan token account'lar\u0131n\u0131 d\xF6nd\xFCrecek \u015Fekilde de\u011Fi\u015Ftirebiliriz. Bir belirte\xE7 account'\u0131na bakt\u0131\u011F\u0131m\u0131zda, bir belirte\xE7 account'\u0131nda depolanan ilk iki alan\u0131n her ikisinin de pubkey oldu\u011Funu ve her bir pubkey'nin 32 bayt uzunlu\u011Funda oldu\u011Funu g\xF6rebiliriz. Owner\u2019\u0131n ikinci alan oldu\u011Fu g\xF6z \xF6n\xFCne al\u0131nd\u0131\u011F\u0131nda, memcmp'mize 32 baytl\u0131k bir offset ile ba\u015Flamal\u0131y\u0131z. Buradan, owner alan\u0131 c\xFCzdan adresimizle e\u015Fle\u015Fen account'lar\u0131 arayaca\u011F\u0131z.

    Account Size

    Bu sorguyu a\u015Fa\u011F\u0131daki \xF6rnek \xFCzerinden \xE7a\u011F\u0131rabiliriz:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +import{_ as c,r as o,o as l,c as i,a as n,b as s,w as r,F as u,d as a,e as t}from"./app.55b1b60c.js";var d="/assets/account-size.398f17bf.png",k="/assets/memcmp.c5e1f050.png";const b={},m=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),a(" Get Program Accounts")],-1),g=n("p",null,"Bir program\u0131n sahip oldu\u011Fu t\xFCm account'lar\u0131 d\xF6nd\xFCren bir RPC y\xF6ntemidir. \u015Eu anda pagination desteklenmemektedir. getProgramAccounts requests, yan\u0131t s\xFCresini iyile\u015Ftirmek ve yaln\u0131zca ama\xE7lanan sonu\xE7lar\u0131 d\xF6nd\xFCrmek i\xE7in dataSlice ve/veya filters parametrelerini i\xE7ermelidir.",-1),h=n("h2",{id:"facts-ozet-bilgiler",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#facts-ozet-bilgiler","aria-hidden":"true"},"#"),a(" Facts (\xD6zet Bilgiler)")],-1),_=n("p",null,":::Parametreler",-1),y=n("li",null,[n("code",null,"programId"),a(": "),n("code",null,"string"),a(" - Sorgulanacak program\u0131n public key\u2019i, base58 kodlu bir string olarak sa\u011Flan\u0131r")],-1),f=a("(iste\u011Fe ba\u011Fl\u0131) "),z=n("code",null,"configOrCommitment",-1),v=a(": "),A=n("code",null,"object",-1),P=a(" - A\u015Fa\u011F\u0131daki iste\u011Fe ba\u011Fl\u0131 alanlar\u0131 i\xE7eren yap\u0131land\u0131rma parametreleri: "),w=a("(iste\u011Fe ba\u011Fl\u0131) "),S=n("code",null,"commitment",-1),q=a(": "),B=n("code",null,"string",-1),D=a(" - "),T={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},E=a("Durum Taahh\xFCd\xFC"),K=a("(iste\u011Fe ba\u011Fl\u0131) "),N=n("code",null,"encoding",-1),C=a(": "),x=n("code",null,"string",-1),R=a(" - Account verileri i\xE7in encode: base58, base64 veya jsonParsed\u2019d\u0131r. Web3js kullan\u0131c\u0131lar\u0131n\u0131n bunun yerine "),M={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},L=a("getParsedProgramAccounts"),G=a(" kullanmas\u0131 gerekti\u011Fini unutmay\u0131n."),O=t("
  • (iste\u011Fe ba\u011Fl\u0131) dataSlice: object - Geri d\xF6nd\xFCr\xFClen account verilerini a\u015Fa\u011F\u0131dakilere g\xF6re s\u0131n\u0131rlay\u0131n:
    • offset: number - Geri d\xF6nd\xFCrmeye ba\u015Flamak i\xE7in account verisindeki bayt say\u0131s\u0131
    • length: number - Geri d\xF6nd\xFCr\xFClecek account verilerinin bayt say\u0131s\u0131
  • (iste\u011Fe ba\u011Fl\u0131) filters: array - A\u015Fa\u011F\u0131daki filters nesnelerini kullanarak sonu\xE7lar\u0131 filtreleyin:
    • memcmp: object - Bir dizi bayt\u0131 account verileriyle e\u015Fle\u015Ftirin:
      • offset: number - Kar\u015F\u0131la\u015Ft\u0131rmaya ba\u015Flamak i\xE7in account verilerinin bayt say\u0131s\u0131
      • bytes: string - 129 bayt ile s\u0131n\u0131rl\u0131 base58 kodlu string olarak e\u015Fle\u015Fecek veriler
    • dataSize: number - Account data uzunlu\u011Funu sa\u011Flanan veri boyutuyla kar\u015F\u0131la\u015Ft\u0131r\u0131r
  • ",2),j=a("(iste\u011Fe ba\u011Fl\u0131) "),H=n("code",null,"withContext",-1),V=a(": "),Y=n("code",null,"boolean",-1),F=a(" - Sonucu bir "),U={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},I=a("RpcResponse JSON nesnesine sarmalay\u0131n"),W=t('
    Response

    Varsay\u0131lan olarak getProgramAccounts, a\u015Fa\u011F\u0131daki yap\u0131ya sahip bir dizi JSON nesnesi d\xF6nd\xFCr\xFCr:

    • pubkey: string - Base58 kodlu bir string olarak account'\u0131n pubkeyi
    • account: object - a\u015Fa\u011F\u0131daki alt alanlara sahip bir JSON nesnesi:
    • lamports: number, account'a atanan lamport say\u0131s\u0131
    • owner: string, Hesab\u0131n atand\u0131\u011F\u0131 program\u0131n base58 kodlu yay\u0131n anahtar\u0131
    • data: string | object - account'la ili\u015Fkili veriler, sa\u011Flanan kodlama parametresine ba\u011Fl\u0131 olarak kodlanm\u0131\u015F binary data veya JSON format\u0131d\u0131r
    • executable: boolean, Hesap bir program i\xE7erp i\xE7ermedi\u011Finin g\xF6stergesi
    • rentEpoch: number, Bu account'\u0131n bir sonraki rent borcunun olaca\u011F\u0131 epoch :::

    Deep Dive (Derinlemesine Bak\u0131\u015F)

    getProgramAccounts, bir program\u0131n sahip oldu\u011Fu t\xFCm account'lar\u0131 d\xF6nd\xFCren \xE7ok y\xF6nl\xFC bir RPC methodudur. getProgramAccounts'u a\u015Fa\u011F\u0131dakileri bulmak gibi bir dizi yararl\u0131 sorgu i\xE7in kullanabiliriz:

    ',5),Z=n("li",null,"Belirli bir c\xFCzdan i\xE7in t\xFCm token account'lar\u0131",-1),J=a("Belirli bir mint i\xE7in t\xFCm token account'lar\u0131 (t\xFCm "),$={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},Q=a("SRM"),X=a(" sahipleri)"),nn=a("Belirli bir program i\xE7in t\xFCm private account'lar (t\xFCm "),an={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},sn=a("Mango"),en=a(" kullan\u0131c\u0131lar\u0131)"),tn=t("

    Kullan\u0131\u015Fl\u0131l\u0131\u011F\u0131na ra\u011Fmen, getProgramAccounts, mevcut k\u0131s\u0131tlamalar\u0131 nedeniyle genellikle yanl\u0131\u015F anla\u015F\u0131l\u0131r. getProgramAccounts taraf\u0131ndan desteklenen sorgular\u0131n \xE7o\u011Fu, b\xFCy\xFCk veri k\xFCmelerini taramak i\xE7in RPC node\u2019lar\u0131n\u0131 gerektirir. Bu taramalar hem bellek hem de kaynak yo\u011Fundur. Sonu\xE7 olarak, \xE7ok s\u0131k veya \xE7ok geni\u015F kapsaml\u0131 \xE7a\u011Fr\u0131lar ba\u011Flant\u0131 zaman a\u015F\u0131mlar\u0131na neden olabilir. Ayr\u0131ca, bu yaz\u0131n\u0131n yaz\u0131ld\u0131\u011F\u0131 s\u0131rada getProgramAccounts u\xE7 noktas\u0131 sayfaland\u0131rmay\u0131 desteklemez. Bir sorgunun sonu\xE7lar\u0131 \xE7ok b\xFCy\xFCkse, yan\u0131t kesilecektir.

    Bu mevcut k\u0131s\u0131tlamalar\u0131 a\u015Fmak i\xE7in getProgramAccounts bir dizi faydal\u0131 parametre sunar: dataSlice, memcmp ve dataSize, filters se\xE7enekleri. Bu parametrelerin kombinasyonlar\u0131n\u0131 sa\u011Flayarak sorgular\u0131m\u0131z\u0131n kapsam\u0131n\u0131 y\xF6netilebilir ve \xF6ng\xF6r\xFClebilir boyutlara indirebiliriz.

    ",2),on=a("Yayg\u0131n bir "),pn=n("code",null,"getProgramAccounts",-1),cn=a(" \xF6rne\u011Fi, "),ln={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},rn=a("SPL-Token Program\u0131"),un=a(" ile etkile\u015Fimi i\xE7erir. Token Program\u0131n\u0131n sahip oldu\u011Fu t\xFCm account'lar\u0131 bir "),dn=a("basic call"),kn=a(" ile request etmek, \xE7ok b\xFCy\xFCk miktarda veri gerektirecektir. Ancak parametreleri sa\u011Flayarak, yaln\u0131zca kullanmay\u0131 d\xFC\u015F\xFCnd\xFC\u011F\xFCm\xFCz verileri verimli bir \u015Fekilde request edebiliriz."),bn=t('

    filters

    getProgramAccounts ile kullan\u0131lacak en yayg\u0131n parametre filters array\u2019idir. Bu array, dataSize ve memcmp olmak \xFCzere iki t\xFCr filtre kabul eder. Bu filtrelerden herhangi birini kullanmadan \xF6nce, request etti\u011Fimiz verilerin nas\u0131l d\xFCzenlendi\u011Fini ve serile\u015Ftirildi\u011Fini bilmeliyiz.

    dataSize

    ',3),mn=a("Token Program\u0131 i\xE7in, "),gn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},hn=a("token account'lar\u0131n\u0131n 165 bayt uzunlu\u011Funda"),_n=a(" oldu\u011Funu g\xF6rebiliriz. Spesifik olarak, bir belirte\xE7 account'\u0131n\u0131n her biri tahmin edilebilir say\u0131da bayt gerektiren sekiz farkl\u0131 alan\u0131 vard\u0131r. A\u015Fa\u011F\u0131daki \xE7izimi kullanarak bu verilerin nas\u0131l d\xFCzenlendi\u011Fini g\xF6rselle\u015Ftirebiliriz."),yn=t('

    Account Size

    C\xFCzdan adresimize ait t\xFCm token account'lar\u0131n\u0131 bulmak istiyorsak, sorgumuzun kapsam\u0131n\u0131 tam olarak 165 bayt uzunlu\u011Fundaki account'lara daraltmak i\xE7in filters dizimize { dataSize: 165 } ekleyebiliriz. Ancak bu tek ba\u015F\u0131na yetersiz olacakt\u0131r. Ayr\u0131ca adresimize ait account'lar\u0131 arayan bir filtre eklememiz gerekir. Bunu memcmp filtresiyle ba\u015Farabiliriz

    memcmp

    memcmp filtresi veya "bellek kar\u015F\u0131la\u015Ft\u0131rma" filtresi, account'\u0131m\u0131zda depolanan herhangi bir alandaki verileri kar\u015F\u0131la\u015Ft\u0131rmam\u0131za olanak tan\u0131r. Spesifik olarak, yaln\u0131zca belirli bir konumda belirli bir bayt k\xFCmesiyle e\u015Fle\u015Fen account'lar\u0131 sorgulayabiliriz. memcmp iki arg\xFCman gerektirir:

    • offset: Verileri kar\u015F\u0131la\u015Ft\u0131rmaya ba\u015Flayaca\u011F\u0131n\u0131z konum. Bu konum bayt cinsinden \xF6l\xE7\xFCl\xFCr ve bir tamsay\u0131 olarak ifade edilir.
    • bytes: Hesab\u0131n verileriyle e\u015Fle\u015Fmesi gereken veriler. Bu, base-58 kodlu bir string olarak temsil edilir, 129 bayttan daha az ile s\u0131n\u0131rland\u0131r\u0131lmal\u0131d\u0131r.

    Memcmp'nin yaln\u0131zca bytes ile tam olarak e\u015Fle\u015Fen sonu\xE7lar\u0131 d\xF6nd\xFCrece\u011Fini unutmamak \xF6nemlidir. \u015Eu anda, sa\u011Flad\u0131\u011F\u0131m\u0131z bytes\u2019dan daha k\xFC\xE7\xFCk veya daha b\xFCy\xFCk de\u011Ferler i\xE7in kar\u015F\u0131la\u015Ft\u0131rmalar\u0131 desteklememektedir.

    Token Program\u0131 \xF6rne\u011Fimize uygun olarak, sorgumuzu yaln\u0131zca c\xFCzdan adresimize ait olan token account'lar\u0131n\u0131 d\xF6nd\xFCrecek \u015Fekilde de\u011Fi\u015Ftirebiliriz. Bir belirte\xE7 account'\u0131na bakt\u0131\u011F\u0131m\u0131zda, bir belirte\xE7 account'\u0131nda depolanan ilk iki alan\u0131n her ikisinin de pubkey oldu\u011Funu ve her bir pubkey'nin 32 bayt uzunlu\u011Funda oldu\u011Funu g\xF6rebiliriz. Owner\u2019\u0131n ikinci alan oldu\u011Fu g\xF6z \xF6n\xFCne al\u0131nd\u0131\u011F\u0131nda, memcmp'mize 32 baytl\u0131k bir offset ile ba\u015Flamal\u0131y\u0131z. Buradan, owner alan\u0131 c\xFCzdan adresimizle e\u015Fle\u015Fen account'lar\u0131 arayaca\u011F\u0131z.

    Account Size

    Bu sorguyu a\u015Fa\u011F\u0131daki \xF6rnek \xFCzerinden \xE7a\u011F\u0131rabiliriz:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.f435a31f.js b/docs/.vuepress/dist/assets/get-program-accounts.html.f435a31f.js
    index fe6d07a86..71f181ac9 100644
    --- a/docs/.vuepress/dist/assets/get-program-accounts.html.f435a31f.js
    +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.f435a31f.js
    @@ -1,4 +1,4 @@
    -import{_ as i,r as l,o as r,c as m,a as n,b as a,w as t,F as k,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},_=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("\u30D7\u30ED\u30B0\u30E9\u30E0\u306B\u6240\u6709\u3055\u308C\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u3059\u3079\u3066\u3092\u8FD4\u3059RPC\u30E1\u30BD\u30C3\u30C9\u3002\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 \u30EC\u30B9\u30DD\u30F3\u30B9\u5411\u4E0A\u3092\u3057\u3064\u3064\u610F\u56F3\u3057\u305F\u7D50\u679C\u306E\u307F\u3092\u8FD4\u3059\u305F\u3081\u306B\u306F\u3001 "),n("code",null,"getProgramAccounts"),s(" \u306B\u306F"),n("code",null,"dataSlice"),s(" \u304B "),n("code",null,"filters"),s("\u3001\u3042\u308B\u3044\u306F\u305D\u306E\u4E21\u65B9\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002")],-1),h=n("h2",{id:"\u6982\u8981",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u6982\u8981","aria-hidden":"true"},"#"),s(" \u6982\u8981")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Parameters",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - base58 \u3067\u30A8\u30F3\u30B3\u30FC\u30C9\u3055\u308C\u305F\u6587\u5B57\u5217\u3068\u3057\u3066\u63D0\u4F9B\u3055\u308C\u308B\u3001\u30AF\u30A8\u30EA\u3059\u308B\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u516C\u958B\u9375")],-1),C=s("(optional) "),S=n("code",null,"configOrCommitment",-1),P=s(": "),T=n("code",null,"object",-1),D=s(" - \u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u542B\u3080\u8A2D\u5B9A\u30D1\u30E9\u30E1\u30FC\u30BF: "),E=s("(optional) "),N=n("code",null,"commitment",-1),v=s(": "),M=n("code",null,"string",-1),R=s(" - "),K={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},G=s("State commitment"),L=s("(optional) "),B=n("code",null,"encoding",-1),z=s(": "),x=n("code",null,"string",-1),F=s(" - \u30A2\u30AB\u30A6\u30F3\u30C8 \u30C7\u30FC\u30BF\u306E\u30A8\u30F3\u30B3\u30FC\u30C9: "),H=n("code",null,"base58",-1),Z=s("\u3001 "),Q=n("code",null,"base64",-1),U=s("\u3001 "),W=n("code",null,"jsonParsed",-1),j=s(" \u306E\u3044\u305A\u308C\u304B\u3002 \u203B web3js \u30E6\u30FC\u30B6\u30FC\u306F\u4EE3\u308F\u308A\u306B"),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},Y=s("getParsedProgramAccounts"),J=s("\u3092\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"),X=o("
  • (optional) dataSlice: object - \u4E0B\u8A18\u306B\u57FA\u3065\u304D\u3001\u8FD4\u5374\u3055\u308C\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u3092\u5236\u9650\u3057\u307E\u3059\u3002:
    • offset: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u8FD4\u5374\u958B\u59CB\u4F4D\u7F6E\u30D0\u30A4\u30C8\u6570
    • length: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u8FD4\u5374\u30D0\u30A4\u30C8\u6570
  • (optional) filters: array - \u6B21\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u4F7F\u7528\u3057\u3066\u7D50\u679C\u3092\u30D5\u30A3\u30EB\u30BF\u3057\u307E\u3059\u3002:
    • memcmp: object - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u3068\u7167\u5408\u3059\u308B\u9023\u7D9A\u30D0\u30A4\u30C8:
      • offset: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u6BD4\u8F03\u958B\u59CB\u4F4D\u7F6E\u30D0\u30A4\u30C8\u6570
      • bytes: string - \u7167\u5408\u306B\u4F7F\u7528\u3059\u308B129\u30D0\u30A4\u30C8\u5236\u9650\u306Ebase58\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217
    • dataSize: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u9577\u3055\u3068\u6BD4\u8F03\u3059\u308B\u6307\u5B9A\u6570
  • ",2),O=s("(optional) "),I=n("code",null,"withContext",-1),$=s(": "),q=n("code",null,"boolean",-1),nn=s(" - \u7D50\u679C\u3092"),sn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},an=s("RpcResponse JSON object"),en=s("\u306B\u30E9\u30C3\u30D7\u3059\u308B\u304B\u3069\u3046\u304B\u3002"),tn=o('
    Response

    \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001 getProgramAccounts \u306F\u6B21\u306E\u69CB\u9020\u3092\u6301\u3064 JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u914D\u5217\u3092\u8FD4\u3057\u307E\u3059\u3002:

    • pubkey: string - base58\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u516C\u958B\u9375
    • account: object - \u6B21\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u6301\u3064 JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8:
      • lamports: number, \u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u305Flamports \u306E\u6570
      • owner: string, \u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u308B\u30D7\u30ED\u30B0\u30E9\u30E0\u306Ebase58\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u516C\u958B\u9375
      • data: string | object - \u6307\u5B9A\u3055\u308C\u305F\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 \u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u5FDC\u3058\u3066\u30D0\u30A4\u30CA\u30EA \u30C7\u30FC\u30BF\u307E\u305F\u306F JSON \u5F62\u5F0F\u306B\u30A8\u30F3\u30B3\u30FC\u30C9\u3055\u308C\u305F\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u30C7\u30FC\u30BF
      • executable: boolean, \u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B
      • rentEpoch: number, \u3053\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u6B21\u306Brent\u3092\u652F\u6255\u3046\u3079\u304Depoch
    ',3),cn=n("h2",{id:"\u8A73\u7D30",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u8A73\u7D30","aria-hidden":"true"},"#"),s(" \u8A73\u7D30")],-1),on=n("p",null,[n("code",null,"getProgramAccounts"),s(" \u306F\u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u8FD4\u3059\u591A\u7528\u9014\u306E RPC \u30E1\u30BD\u30C3\u30C9\u3067\u3059\u3002\u4E0B\u8A18\u306E\u3088\u3046\u306A\u691C\u7D22\u306A\u3069\u3001\u591A\u304F\u306E\u30AF\u30A8\u30EA\u306B\u4F7F\u7528\u3067\u304D\u307E\u3059:")],-1),ln=n("li",null,"\u7279\u5B9A\u306E\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97",-1),pn=s("\u7279\u5B9A\u306Emint\u306E\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8 ( \u3064\u307E\u308A\u3001"),un={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},rn=s("SRM"),mn=s(" \u306E\u6240\u6709\u8005\u3059\u3079\u3066)"),kn=s("\u7279\u5B9A\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u3059\u3079\u3066\u306E\u30AB\u30B9\u30BF\u30E0 \u30A2\u30AB\u30A6\u30F3\u30C8 (\u3064\u307E\u308A\u3001"),bn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},dn=s("Mango"),fn=s(" \u30E6\u30FC\u30B6\u30FC\u5168\u54E1)"),_n=o("

    getProgramAccounts\u306F\u975E\u5E38\u306B\u4FBF\u5229\u3067\u3059\u304C\u3001\u73FE\u5728\u306E\u5236\u7D04\u306E\u305F\u3081\u306B\u3088\u304F\u8AA4\u89E3\u3055\u308C\u307E\u3059\u3002 \u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30AF\u30A8\u30EA\u306E\u591A\u304F\u306F\u3001\u5927\u91CF\u306E\u30C7\u30FC\u30BF \u30BB\u30C3\u30C8\u3092\u30B9\u30AD\u30E3\u30F3\u3059\u308B\u305F\u3081\u306BRPC \u30CE\u30FC\u30C9\u3092\u5FC5\u8981\u3068\u3057\u307E\u3059\u3002 \u3053\u308C\u3089\u306E\u30B9\u30AD\u30E3\u30F3\u306F\u3001\u30E1\u30E2\u30EA\u3068\u30EA\u30BD\u30FC\u30B9\u306E\u4E21\u65B9\u3092\u96C6\u4E2D\u7684\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u305D\u306E\u7D50\u679C\u3001\u547C\u3073\u51FA\u3057\u306E\u983B\u5EA6\u304C\u9AD8\u3059\u304E\u305F\u308A\u53D6\u5F97\u7BC4\u56F2\u304C\u5927\u304D\u3059\u304E\u305F\u308A\u3059\u308B\u3068\u3001 \u63A5\u7D9A\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u304C\u767A\u751F\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 \u3055\u3089\u306B\u3001\u3053\u306E\u8A18\u4E8B\u306E\u57F7\u7B46\u6642\u70B9\u3067\u306F\u3001getProgramAccounts\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306F\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 \u30AF\u30A8\u30EA\u306E\u7D50\u679C\u304C\u5927\u304D\u3059\u304E\u308B\u5834\u5408\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u306F\u7834\u68C4\u3055\u308C\u307E\u3059\u3002

    \u3053\u308C\u3089\u306E\u73FE\u5728\u306E\u5236\u7D04\u3092\u56DE\u907F\u3059\u308B\u305F\u3081\u306B\u3001dataSlice\u3001filters \u3001memcmp\u3001 dataSize\u306A\u3069\u306E\u6709\u7528\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u63D0\u4F9B\u3055\u308C\u3066\u3044\u307E\u3059\u3002 \u3053\u308C\u3089\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u7D44\u307F\u5408\u308F\u305B\u306B\u3088\u308A\u3001\u30AF\u30A8\u30EA\u306E\u7BC4\u56F2\u3092\u4E88\u6E2C\u53EF\u80FD\u306A\u30B5\u30A4\u30BA\u306B\u7E2E\u5C0F\u3067\u304D\u307E\u3059\u3002

    ",2),gn=n("code",null,"getProgramAccounts",-1),hn=s("\u306E\u4E00\u822C\u7684\u306A\u4F8B\u3068\u3057\u3066\u3001"),yn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},An=s("SPL-Token Program"),wn=s("\u3068\u306E\u5BFE\u8A71\u304C\u3042\u308A\u307E\u3059\u3002 "),Cn=s("basic call"),Sn=s("\u3067\u30C8\u30FC\u30AF\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u8981\u6C42\u3059\u308B\u3068\u3001\u81A8\u5927\u306A\u91CF\u306E\u30C7\u30FC\u30BF\u304C\u5FC5\u8981\u306B\u306A\u308A\u307E\u3059\u3002 \u305F\u3060\u3057\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3067\u3001\u4F7F\u7528\u3059\u308B\u30C7\u30FC\u30BF\u306E\u307F\u3092\u52B9\u7387\u7684\u306B\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002"),Pn=o('

    filters

    getProgramAccounts \u4F7F\u7528\u3059\u308B\u6700\u3082\u4E00\u822C\u7684\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306F\u3001 filters \u914D\u5217\u3067\u3059\u3002 dataSize \u3068 memcmp\u306E 2 \u7A2E\u985E\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002 \u3053\u308C\u3089\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u306E\u3044\u305A\u308C\u304B\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u3001\u8981\u6C42\u3057\u3066\u3044\u308B\u30C7\u30FC\u30BF\u304C\u3069\u306E\u3088\u3046\u306B\u914D\u7F6E\u3055\u308C\u3001\u30B7\u30EA\u30A2\u30EB\u5316\u3055\u308C\u308B\u304B\u3092\u7406\u89E3\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002

    dataSize

    ',3),Tn=s("\u30C8\u30FC\u30AF\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u5834\u5408\u3001"),Dn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},En=s("\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u9577\u3055\u306F 165 \u30D0\u30A4\u30C8"),Nn=s("\u3067\u3059\u3002 \u5177\u4F53\u7684\u306B\u306F\u3001\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u306F8\u3064\u306E\u7570\u306A\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u3001\u5404\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u4E88\u6E2C\u53EF\u80FD\u306A\u30D0\u30A4\u30C8\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002 \u4EE5\u4E0B\u306E\u56F3\u3092\u4F7F\u7528\u3057\u3066\u3001\u3053\u306E\u30C7\u30FC\u30BF\u304C\u3069\u306E\u3088\u3046\u306B\u914D\u7F6E\u3055\u308C\u3066\u3044\u308B\u304B\u3092\u8996\u899A\u5316\u3067\u304D\u307E\u3059\u3002"),vn=o('

    Account Size

    \u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C9\u30EC\u30B9\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u7D22\u3059\u308B\u5834\u5408\u306F\u3001filters\u306B { dataSize: 165 } \u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u3067\u3001\u30AF\u30A8\u30EA\u306E\u7BC4\u56F2\u3092\u6B63\u78BA\u306B165 \u30D0\u30A4\u30C8\u306E\u9577\u3055\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3060\u3051\u306B\u7D5E\u308A\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u305F\u3060\u3057\u3001\u3053\u308C\u3060\u3051\u3067\u306F\u4E0D\u5341\u5206\u3067\u3059\u3002 \u30A2\u30C9\u30EC\u30B9\u304C\u6240\u6709\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u7D22\u3059\u308B\u30D5\u30A3\u30EB\u30BF\u30FC\u3082\u8FFD\u52A0\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u308C\u306F memcmp \u30D5\u30A3\u30EB\u30BF\u30FC\u3067\u5B9F\u73FE\u3067\u304D\u307E\u3059\u3002

    memcmp

    memcmp\u3001\u307E\u305F\u306F "memory comparison"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u4EFB\u610F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30C7\u30FC\u30BF\u3092\u6BD4\u8F03\u3067\u304D\u307E\u3059\u3002 \u5177\u4F53\u7684\u306B\u306F\u3001\u7279\u5B9A\u306E\u4F4D\u7F6E\u306B\u3042\u308B\u7279\u5B9A\u306E\u30D0\u30A4\u30C8 \u30BB\u30C3\u30C8\u306B\u4E00\u81F4\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u307F\u3092\u7167\u4F1A\u3067\u304D\u307E\u3059\u3002 memcmp\u306B\u306F 2 \u3064\u306E\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059:

    • offset: \u30C7\u30FC\u30BF\u306E\u6BD4\u8F03\u3092\u958B\u59CB\u3059\u308B\u4F4D\u7F6E\u3002\u3053\u306E\u4F4D\u7F6E\u306F\u30D0\u30A4\u30C8\u5358\u4F4D\u3067\u6E2C\u5B9A\u3055\u308C\u3001\u6574\u6570\u3068\u3057\u3066\u8868\u3055\u308C\u307E\u3059\u3002
    • bytes: \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30C7\u30FC\u30BF\u3068\u4E00\u81F4\u3055\u305B\u308B\u30C7\u30FC\u30BF\u3002\u3053\u308C\u306F\u3001base-58\u30A8\u30F3\u30B3\u30FC\u30C9\u306E\u6587\u5B57\u5217\u3067\u3001129 \u30D0\u30A4\u30C8\u672A\u6E80\u306B\u5236\u9650\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002

    memcmp \u306F bytes\u304C\u5B8C\u5168\u306B\u4E00\u81F4\u3059\u308B\u7D50\u679C\u306E\u307F\u3092\u8FD4\u3059\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002 \u73FE\u5728\u306F\u3001\u6307\u5B9A\u3057\u305Fbytes\u3088\u308A\u5927\u304D\u3044\u3001\u307E\u305F\u306F\u5C0F\u3055\u3044\u5024\u306E\u6BD4\u8F03\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002

    \u30C8\u30FC\u30AF\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F8B\u306B\u6CBF\u3063\u3066\u3001\u30AF\u30A8\u30EA\u3092\u4FEE\u6B63\u3057\u3066\u3001\u30A6\u30A9\u30EC\u30C3\u30C8 \u30A2\u30C9\u30EC\u30B9\u304C\u6240\u6709\u3059\u308B\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u307F\u3092\u8FD4\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u898B\u308B\u3068\u3001\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u6700\u521D\u306E 2 \u3064\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u4E21\u65B9\u3068\u3082\u516C\u958B\u9375\u3067\u3042\u308A\u3001\u5404\u516C\u958B\u9375\u306E\u9577\u3055\u304C 32 \u30D0\u30A4\u30C8\u3067\u3042\u308B\u3053\u3068\u304C\u308F\u304B\u308A\u307E\u3059\u3002owner\u304C 2 \u756A\u76EE\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u3053\u3068\u3092\u8003\u3048\u308B\u3068\u3001 memcmp \u306F 32\u30D0\u30A4\u30C8\u306Eoffset\u3067\u958B\u59CB\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u3053\u304B\u3089\u3001\u6240\u6709\u8005\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u30A6\u30A9\u30EC\u30C3\u30C8 \u30A2\u30C9\u30EC\u30B9\u3068\u4E00\u81F4\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A2\u3057\u307E\u3059\u3002

    Account Size

    \u6B21\u306E\u4F8B\u3092\u4F7F\u7528\u3057\u3066\u3001\u3053\u306E\u30AF\u30A8\u30EA\u3092\u547C\u3073\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059:

    ',9),Mn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as m,a as n,b as a,w as t,F as k,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},_=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("\u30D7\u30ED\u30B0\u30E9\u30E0\u306B\u6240\u6709\u3055\u308C\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u3059\u3079\u3066\u3092\u8FD4\u3059RPC\u30E1\u30BD\u30C3\u30C9\u3002\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 \u30EC\u30B9\u30DD\u30F3\u30B9\u5411\u4E0A\u3092\u3057\u3064\u3064\u610F\u56F3\u3057\u305F\u7D50\u679C\u306E\u307F\u3092\u8FD4\u3059\u305F\u3081\u306B\u306F\u3001 "),n("code",null,"getProgramAccounts"),s(" \u306B\u306F"),n("code",null,"dataSlice"),s(" \u304B "),n("code",null,"filters"),s("\u3001\u3042\u308B\u3044\u306F\u305D\u306E\u4E21\u65B9\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002")],-1),h=n("h2",{id:"\u6982\u8981",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u6982\u8981","aria-hidden":"true"},"#"),s(" \u6982\u8981")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Parameters",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - base58 \u3067\u30A8\u30F3\u30B3\u30FC\u30C9\u3055\u308C\u305F\u6587\u5B57\u5217\u3068\u3057\u3066\u63D0\u4F9B\u3055\u308C\u308B\u3001\u30AF\u30A8\u30EA\u3059\u308B\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u516C\u958B\u9375")],-1),C=s("(optional) "),S=n("code",null,"configOrCommitment",-1),P=s(": "),T=n("code",null,"object",-1),D=s(" - \u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u542B\u3080\u8A2D\u5B9A\u30D1\u30E9\u30E1\u30FC\u30BF: "),E=s("(optional) "),N=n("code",null,"commitment",-1),v=s(": "),M=n("code",null,"string",-1),R=s(" - "),K={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},G=s("State commitment"),L=s("(optional) "),B=n("code",null,"encoding",-1),z=s(": "),x=n("code",null,"string",-1),F=s(" - \u30A2\u30AB\u30A6\u30F3\u30C8 \u30C7\u30FC\u30BF\u306E\u30A8\u30F3\u30B3\u30FC\u30C9: "),H=n("code",null,"base58",-1),Z=s("\u3001 "),Q=n("code",null,"base64",-1),U=s("\u3001 "),W=n("code",null,"jsonParsed",-1),j=s(" \u306E\u3044\u305A\u308C\u304B\u3002 \u203B web3js \u30E6\u30FC\u30B6\u30FC\u306F\u4EE3\u308F\u308A\u306B"),V={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},Y=s("getParsedProgramAccounts"),J=s("\u3092\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"),X=o("
  • (optional) dataSlice: object - \u4E0B\u8A18\u306B\u57FA\u3065\u304D\u3001\u8FD4\u5374\u3055\u308C\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u3092\u5236\u9650\u3057\u307E\u3059\u3002:
    • offset: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u8FD4\u5374\u958B\u59CB\u4F4D\u7F6E\u30D0\u30A4\u30C8\u6570
    • length: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u8FD4\u5374\u30D0\u30A4\u30C8\u6570
  • (optional) filters: array - \u6B21\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u4F7F\u7528\u3057\u3066\u7D50\u679C\u3092\u30D5\u30A3\u30EB\u30BF\u3057\u307E\u3059\u3002:
    • memcmp: object - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u3068\u7167\u5408\u3059\u308B\u9023\u7D9A\u30D0\u30A4\u30C8:
      • offset: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u6BD4\u8F03\u958B\u59CB\u4F4D\u7F6E\u30D0\u30A4\u30C8\u6570
      • bytes: string - \u7167\u5408\u306B\u4F7F\u7528\u3059\u308B129\u30D0\u30A4\u30C8\u5236\u9650\u306Ebase58\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217
    • dataSize: number - \u30A2\u30AB\u30A6\u30F3\u30C8\u30C7\u30FC\u30BF\u306E\u9577\u3055\u3068\u6BD4\u8F03\u3059\u308B\u6307\u5B9A\u6570
  • ",2),O=s("(optional) "),I=n("code",null,"withContext",-1),$=s(": "),q=n("code",null,"boolean",-1),nn=s(" - \u7D50\u679C\u3092"),sn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},an=s("RpcResponse JSON object"),en=s("\u306B\u30E9\u30C3\u30D7\u3059\u308B\u304B\u3069\u3046\u304B\u3002"),tn=o('
    Response

    \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001 getProgramAccounts \u306F\u6B21\u306E\u69CB\u9020\u3092\u6301\u3064 JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u914D\u5217\u3092\u8FD4\u3057\u307E\u3059\u3002:

    • pubkey: string - base58\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u516C\u958B\u9375
    • account: object - \u6B21\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u6301\u3064 JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8:
      • lamports: number, \u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u305Flamports \u306E\u6570
      • owner: string, \u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u308B\u30D7\u30ED\u30B0\u30E9\u30E0\u306Ebase58\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u516C\u958B\u9375
      • data: string | object - \u6307\u5B9A\u3055\u308C\u305F\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 \u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u5FDC\u3058\u3066\u30D0\u30A4\u30CA\u30EA \u30C7\u30FC\u30BF\u307E\u305F\u306F JSON \u5F62\u5F0F\u306B\u30A8\u30F3\u30B3\u30FC\u30C9\u3055\u308C\u305F\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u30C7\u30FC\u30BF
      • executable: boolean, \u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B
      • rentEpoch: number, \u3053\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u6B21\u306Brent\u3092\u652F\u6255\u3046\u3079\u304Depoch
    ',3),cn=n("h2",{id:"\u8A73\u7D30",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u8A73\u7D30","aria-hidden":"true"},"#"),s(" \u8A73\u7D30")],-1),on=n("p",null,[n("code",null,"getProgramAccounts"),s(" \u306F\u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u8FD4\u3059\u591A\u7528\u9014\u306E RPC \u30E1\u30BD\u30C3\u30C9\u3067\u3059\u3002\u4E0B\u8A18\u306E\u3088\u3046\u306A\u691C\u7D22\u306A\u3069\u3001\u591A\u304F\u306E\u30AF\u30A8\u30EA\u306B\u4F7F\u7528\u3067\u304D\u307E\u3059:")],-1),ln=n("li",null,"\u7279\u5B9A\u306E\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u53D6\u5F97",-1),pn=s("\u7279\u5B9A\u306Emint\u306E\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8 ( \u3064\u307E\u308A\u3001"),un={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},rn=s("SRM"),mn=s(" \u306E\u6240\u6709\u8005\u3059\u3079\u3066)"),kn=s("\u7279\u5B9A\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u3059\u3079\u3066\u306E\u30AB\u30B9\u30BF\u30E0 \u30A2\u30AB\u30A6\u30F3\u30C8 (\u3064\u307E\u308A\u3001"),bn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},dn=s("Mango"),fn=s(" \u30E6\u30FC\u30B6\u30FC\u5168\u54E1)"),_n=o("

    getProgramAccounts\u306F\u975E\u5E38\u306B\u4FBF\u5229\u3067\u3059\u304C\u3001\u73FE\u5728\u306E\u5236\u7D04\u306E\u305F\u3081\u306B\u3088\u304F\u8AA4\u89E3\u3055\u308C\u307E\u3059\u3002 \u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30AF\u30A8\u30EA\u306E\u591A\u304F\u306F\u3001\u5927\u91CF\u306E\u30C7\u30FC\u30BF \u30BB\u30C3\u30C8\u3092\u30B9\u30AD\u30E3\u30F3\u3059\u308B\u305F\u3081\u306BRPC \u30CE\u30FC\u30C9\u3092\u5FC5\u8981\u3068\u3057\u307E\u3059\u3002 \u3053\u308C\u3089\u306E\u30B9\u30AD\u30E3\u30F3\u306F\u3001\u30E1\u30E2\u30EA\u3068\u30EA\u30BD\u30FC\u30B9\u306E\u4E21\u65B9\u3092\u96C6\u4E2D\u7684\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u305D\u306E\u7D50\u679C\u3001\u547C\u3073\u51FA\u3057\u306E\u983B\u5EA6\u304C\u9AD8\u3059\u304E\u305F\u308A\u53D6\u5F97\u7BC4\u56F2\u304C\u5927\u304D\u3059\u304E\u305F\u308A\u3059\u308B\u3068\u3001 \u63A5\u7D9A\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u304C\u767A\u751F\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 \u3055\u3089\u306B\u3001\u3053\u306E\u8A18\u4E8B\u306E\u57F7\u7B46\u6642\u70B9\u3067\u306F\u3001getProgramAccounts\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306F\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 \u30AF\u30A8\u30EA\u306E\u7D50\u679C\u304C\u5927\u304D\u3059\u304E\u308B\u5834\u5408\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u306F\u7834\u68C4\u3055\u308C\u307E\u3059\u3002

    \u3053\u308C\u3089\u306E\u73FE\u5728\u306E\u5236\u7D04\u3092\u56DE\u907F\u3059\u308B\u305F\u3081\u306B\u3001dataSlice\u3001filters \u3001memcmp\u3001 dataSize\u306A\u3069\u306E\u6709\u7528\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u63D0\u4F9B\u3055\u308C\u3066\u3044\u307E\u3059\u3002 \u3053\u308C\u3089\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u7D44\u307F\u5408\u308F\u305B\u306B\u3088\u308A\u3001\u30AF\u30A8\u30EA\u306E\u7BC4\u56F2\u3092\u4E88\u6E2C\u53EF\u80FD\u306A\u30B5\u30A4\u30BA\u306B\u7E2E\u5C0F\u3067\u304D\u307E\u3059\u3002

    ",2),gn=n("code",null,"getProgramAccounts",-1),hn=s("\u306E\u4E00\u822C\u7684\u306A\u4F8B\u3068\u3057\u3066\u3001"),yn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},An=s("SPL-Token Program"),wn=s("\u3068\u306E\u5BFE\u8A71\u304C\u3042\u308A\u307E\u3059\u3002 "),Cn=s("basic call"),Sn=s("\u3067\u30C8\u30FC\u30AF\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u8981\u6C42\u3059\u308B\u3068\u3001\u81A8\u5927\u306A\u91CF\u306E\u30C7\u30FC\u30BF\u304C\u5FC5\u8981\u306B\u306A\u308A\u307E\u3059\u3002 \u305F\u3060\u3057\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3067\u3001\u4F7F\u7528\u3059\u308B\u30C7\u30FC\u30BF\u306E\u307F\u3092\u52B9\u7387\u7684\u306B\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002"),Pn=o('

    filters

    getProgramAccounts \u4F7F\u7528\u3059\u308B\u6700\u3082\u4E00\u822C\u7684\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306F\u3001 filters \u914D\u5217\u3067\u3059\u3002 dataSize \u3068 memcmp\u306E 2 \u7A2E\u985E\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002 \u3053\u308C\u3089\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u306E\u3044\u305A\u308C\u304B\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u3001\u8981\u6C42\u3057\u3066\u3044\u308B\u30C7\u30FC\u30BF\u304C\u3069\u306E\u3088\u3046\u306B\u914D\u7F6E\u3055\u308C\u3001\u30B7\u30EA\u30A2\u30EB\u5316\u3055\u308C\u308B\u304B\u3092\u7406\u89E3\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002

    dataSize

    ',3),Tn=s("\u30C8\u30FC\u30AF\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u5834\u5408\u3001"),Dn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},En=s("\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u9577\u3055\u306F 165 \u30D0\u30A4\u30C8"),Nn=s("\u3067\u3059\u3002 \u5177\u4F53\u7684\u306B\u306F\u3001\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u306F8\u3064\u306E\u7570\u306A\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u3001\u5404\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u4E88\u6E2C\u53EF\u80FD\u306A\u30D0\u30A4\u30C8\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002 \u4EE5\u4E0B\u306E\u56F3\u3092\u4F7F\u7528\u3057\u3066\u3001\u3053\u306E\u30C7\u30FC\u30BF\u304C\u3069\u306E\u3088\u3046\u306B\u914D\u7F6E\u3055\u308C\u3066\u3044\u308B\u304B\u3092\u8996\u899A\u5316\u3067\u304D\u307E\u3059\u3002"),vn=o('

    Account Size

    \u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C9\u30EC\u30B9\u304C\u6240\u6709\u3059\u308B\u3059\u3079\u3066\u306E\u30C8\u30FC\u30AF\u30F3\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u7D22\u3059\u308B\u5834\u5408\u306F\u3001filters\u306B { dataSize: 165 } \u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u3067\u3001\u30AF\u30A8\u30EA\u306E\u7BC4\u56F2\u3092\u6B63\u78BA\u306B165 \u30D0\u30A4\u30C8\u306E\u9577\u3055\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3060\u3051\u306B\u7D5E\u308A\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u305F\u3060\u3057\u3001\u3053\u308C\u3060\u3051\u3067\u306F\u4E0D\u5341\u5206\u3067\u3059\u3002 \u30A2\u30C9\u30EC\u30B9\u304C\u6240\u6709\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u691C\u7D22\u3059\u308B\u30D5\u30A3\u30EB\u30BF\u30FC\u3082\u8FFD\u52A0\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u308C\u306F memcmp \u30D5\u30A3\u30EB\u30BF\u30FC\u3067\u5B9F\u73FE\u3067\u304D\u307E\u3059\u3002

    memcmp

    memcmp\u3001\u307E\u305F\u306F "memory comparison"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u4EFB\u610F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30C7\u30FC\u30BF\u3092\u6BD4\u8F03\u3067\u304D\u307E\u3059\u3002 \u5177\u4F53\u7684\u306B\u306F\u3001\u7279\u5B9A\u306E\u4F4D\u7F6E\u306B\u3042\u308B\u7279\u5B9A\u306E\u30D0\u30A4\u30C8 \u30BB\u30C3\u30C8\u306B\u4E00\u81F4\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u307F\u3092\u7167\u4F1A\u3067\u304D\u307E\u3059\u3002 memcmp\u306B\u306F 2 \u3064\u306E\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059:

    • offset: \u30C7\u30FC\u30BF\u306E\u6BD4\u8F03\u3092\u958B\u59CB\u3059\u308B\u4F4D\u7F6E\u3002\u3053\u306E\u4F4D\u7F6E\u306F\u30D0\u30A4\u30C8\u5358\u4F4D\u3067\u6E2C\u5B9A\u3055\u308C\u3001\u6574\u6570\u3068\u3057\u3066\u8868\u3055\u308C\u307E\u3059\u3002
    • bytes: \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30C7\u30FC\u30BF\u3068\u4E00\u81F4\u3055\u305B\u308B\u30C7\u30FC\u30BF\u3002\u3053\u308C\u306F\u3001base-58\u30A8\u30F3\u30B3\u30FC\u30C9\u306E\u6587\u5B57\u5217\u3067\u3001129 \u30D0\u30A4\u30C8\u672A\u6E80\u306B\u5236\u9650\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002

    memcmp \u306F bytes\u304C\u5B8C\u5168\u306B\u4E00\u81F4\u3059\u308B\u7D50\u679C\u306E\u307F\u3092\u8FD4\u3059\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002 \u73FE\u5728\u306F\u3001\u6307\u5B9A\u3057\u305Fbytes\u3088\u308A\u5927\u304D\u3044\u3001\u307E\u305F\u306F\u5C0F\u3055\u3044\u5024\u306E\u6BD4\u8F03\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002

    \u30C8\u30FC\u30AF\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u4F8B\u306B\u6CBF\u3063\u3066\u3001\u30AF\u30A8\u30EA\u3092\u4FEE\u6B63\u3057\u3066\u3001\u30A6\u30A9\u30EC\u30C3\u30C8 \u30A2\u30C9\u30EC\u30B9\u304C\u6240\u6709\u3059\u308B\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u307F\u3092\u8FD4\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u898B\u308B\u3068\u3001\u30C8\u30FC\u30AF\u30F3 \u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u6700\u521D\u306E 2 \u3064\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u4E21\u65B9\u3068\u3082\u516C\u958B\u9375\u3067\u3042\u308A\u3001\u5404\u516C\u958B\u9375\u306E\u9577\u3055\u304C 32 \u30D0\u30A4\u30C8\u3067\u3042\u308B\u3053\u3068\u304C\u308F\u304B\u308A\u307E\u3059\u3002owner\u304C 2 \u756A\u76EE\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u3053\u3068\u3092\u8003\u3048\u308B\u3068\u3001 memcmp \u306F 32\u30D0\u30A4\u30C8\u306Eoffset\u3067\u958B\u59CB\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u3053\u304B\u3089\u3001\u6240\u6709\u8005\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u30A6\u30A9\u30EC\u30C3\u30C8 \u30A2\u30C9\u30EC\u30B9\u3068\u4E00\u81F4\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A2\u3057\u307E\u3059\u3002

    Account Size

    \u6B21\u306E\u4F8B\u3092\u4F7F\u7528\u3057\u3066\u3001\u3053\u306E\u30AF\u30A8\u30EA\u3092\u547C\u3073\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059:

    ',9),Mn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/get-program-accounts.html.fb8839ac.js b/docs/.vuepress/dist/assets/get-program-accounts.html.fb8839ac.js index 7ba10463a..f3f362cbc 100644 --- a/docs/.vuepress/dist/assets/get-program-accounts.html.fb8839ac.js +++ b/docs/.vuepress/dist/assets/get-program-accounts.html.fb8839ac.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,o as r,c as k,a as n,b as a,w as t,F as m,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},_=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("RPC method\uB294 \uD504\uB85C\uADF8\uB7A8\uC5D0 \uC758\uD574 \uC18C\uC720\uB41C \uBAA8\uB4E0 Account\uB4E4\uC744 \uBC18\uD658\uD55C\uB2E4. \uD604\uC7AC pagination\uC740 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. "),n("code",null,"getProgramAccounts"),s(" \uC694\uCCAD\uC740 \uC751\uB2F5 \uC2DC\uAC04\uC744 \uD5A5\uC0C1\uC2DC\uD0A4\uACE0 \uC758\uB3C4\uB41C \uACB0\uACFC\uB9CC\uC744 \uBC18\uD658\uD558\uAE30 \uC704\uD574 "),n("code",null,"dataSlice"),s(" \uADF8\uB9AC\uACE0/\uB610\uB294 "),n("code",null,"filters"),s(" \uD30C\uB77C\uBBF8\uD130\uB97C \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4.")],-1),h=n("h2",{id:"facts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#facts","aria-hidden":"true"},"#"),s(" Facts")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Parameters",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - \uC9C8\uC758\uD560 Program\uC758 Pubkey, base58 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4")],-1),P=s("(optional) "),T=n("code",null,"configOrCommitment",-1),C=s(": "),S=n("code",null,"object",-1),D=s(" - \uC544\uB798\uC758 optional field\uB4E4\uC744 \uD3EC\uD568\uD558\uB294 Configuration \uD30C\uB77C\uBBF8\uD130\uB4E4 "),E=s("(optional) "),N=n("code",null,"commitment",-1),v=s(": "),M=n("code",null,"string",-1),R=s(" - "),K={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},G=s("State commitment"),L=s("(optional) "),B=n("code",null,"encoding",-1),z=s(": "),x=n("code",null,"string",-1),F=s(" - Account Data\uC5D0 \uB300\uD55C \uC778\uCF54\uB529, either: "),H=n("code",null,"base58",-1),Z=s(", "),Q=n("code",null,"base64",-1),U=s(", or "),W=n("code",null,"jsonParsed",-1),V=s(". \uC8FC\uC758, web3js \uC0AC\uC6A9\uC790\uB294 "),j={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},Y=s("getParsedProgramAccounts"),J=s("\uB97C \uC0AC\uC6A9\uD574\uC57C \uD55C\uB2E4."),O=o("
  • (optional) dataSlice: object - \uBC18\uD658\uB418\uB294 Account Data\uC5D0 \uB300\uD55C \uC81C\uD55C \uC124\uC815
    • offset: number - \uBC18\uD658\uC744 \uC2DC\uC791\uD560 Account Data \uBC14\uC774\uD2B8 \uC22B\uC790
    • length: number - \uBC18\uD658\uD560 Account Data\uC758 \uBC14\uC774\uD2B8 \uC218
  • (optional) filters: array - \uC544\uB798\uC758 filter \uAC1D\uCCB4\uB4E4\uC744 \uC0AC\uC6A9\uD558\uB294 Filter \uACB0\uACFC\uB4E4
    • memcmp: object - \uC77C\uB828\uC758 \uBC14\uC774\uD2B8\uC640 Account Data\uC758 \uBE44\uAD50:
      • offset: number - \uBE44\uAD50\uB97C \uC2DC\uC791\uD560 Account Data \uBC14\uC774\uD2B8 \uC22B\uC790
      • bytes: string - \uBE44\uAD50\uD560 Data, 129 bytes \uC81C\uD55C\uB418\uBA70 base58 \uC778\uCF54\uB529 \uB41C \uBB38\uC790\uC5F4
    • dataSize: number - Account Data\uC758 \uAE38\uC774\uC640 \uB370\uC774\uD130 \uC0AC\uC774\uC988\uC758 \uBE44\uAD50
  • ",2),X=s("(optional) "),I=n("code",null,"withContext",-1),$=s(": "),q=n("code",null,"boolean",-1),nn=s(" - \uACB0\uACFC\uB97C \uD3EC\uC7A5\uD560 "),sn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},an=s("RpcResponse JSON object"),en=o('
    Response

    getProgramAccounts\uB294 \uAE30\uBCF8\uC801\uC73C\uB85C \uC544\uB798\uC758 \uAD6C\uC870\uB97C \uAC16\uB294 JSON \uAC1D\uCCB4\uB4E4\uC744 \uB2F4\uACE0 \uC788\uB294 \uBC30\uC5F4\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4.

    • pubkey: string - Account pubkey, base58 \uC778\uCF54\uB529 \uB41C \uBB38\uC790\uC5F4
    • account: object - \uC544\uB798\uC758 \uC11C\uBE0C \uC18D\uC131\uB4E4\uC744 \uAC16\uACE0 \uC788\uB294 JSON \uAC1D\uCCB4
      • lamports: number, Account\uC5D0 \uD560\uB2F9\uB41C lamports\uC758 \uC218
      • owner: string, base58 \uC778\uCF54\uB529 \uB418\uC5B4 Account\uC5D0 \uD560\uB2F9\uB41C Program\uC758 pubkey
      • data: string | object - Account\uC640 \uC5F0\uAD00\uB41C \uB370\uC774\uD130, \uC778\uCF54\uB529 \uD30C\uB77C\uBBF8\uD130\uB85C \uB118\uC5B4\uC628 \uAC12\uC5D0 \uB530\uB77C \uC778\uCF54\uB529 \uB41C binary data \uB610\uB294 JSON \uD615\uC2DD
      • executable: boolean, Account\uAC00 Program\uC744 \uD3EC\uD568\uD558\uB294\uC9C0\uC5D0 \uB300\uD55C \uD45C\uC2DC
      • rentEpoch: number, Account\uAC00 rent \uC9C0\uBD88\uD560 \uB2E4\uC74C epoch
    ',3),tn=n("h2",{id:"deep-dive",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#deep-dive","aria-hidden":"true"},"#"),s(" Deep Dive")],-1),cn=n("p",null,[n("code",null,"getProgramAccounts"),s("\uB294 Program\uC774 \uC18C\uC720\uD55C \uBAA8\uB4E0 Account\uB4E4\uC744 \uB9AC\uD134\uD558\uB294 \uB2E4\uC7AC\uB2E4\uB2A5\uD55C RPC method \uC785\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uC544\uB798\uC640 \uAC19\uC774 \uBA87 \uAC00\uC9C0 \uC720\uC6A9\uD55C \uCFFC\uB9AC\uB97C \uC704\uD574 "),n("code",null,"getProgramAccounts"),s("\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.")],-1),on=n("li",null,"\uD2B9\uC815 \uC9C0\uAC11\uC5D0 \uB300\uD55C \uBAA8\uB4E0 Token Account\uB4E4 \uC870\uD68C",-1),ln=s("\uD2B9\uC815 mint\uC5D0 \uB300\uD55C \uBAA8\uB4E0 Token Account\uB4E4 \uC870\uD68C (i.e. All "),pn={href:"https://www.projectserum.com/",target:"_blank",rel:"noopener noreferrer"},un=s("SRM"),rn=s(" holders)"),kn=s("\uD2B9\uC815 Program\uC5D0 \uB300\uD55C \uBAA8\uB4E0 custom Account\uB4E4 \uC870\uD68C (i.e. All "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),dn=s(" users)"),fn=o("

    \uC774\uB807\uAC8C \uC720\uC6A9\uD568\uC5D0\uB3C4 \uBD88\uAD6C\uD558\uACE0, getProgramAccounts\uB294 \uD604\uC7AC \uC81C\uC57D\uC0AC\uD56D\uB4E4 \uB54C\uBB38\uC5D0 \uC790\uC8FC \uC624\uD574\uBC1B\uC2B5\uB2C8\uB2E4. getProgramAccounts\uC5D0 \uC758\uD574 \uC9C0\uC6D0\uB418\uB294 \uB9CE\uC740 \uCFFC\uB9AC\uB4E4\uC740 \uB300\uB7C9\uC758 \uB370\uC774\uD130 \uC14B\uC744 \uC2A4\uCE94\uD558\uAE30 \uC704\uD574 RPC \uB178\uB4DC\uB4E4\uC744 \uC694\uAD6C\uD569\uB2C8\uB2E4. \uC774\uB7F0 \uC2A4\uCE94 \uC791\uC5C5\uB4E4\uC740 \uBA54\uBAA8\uB9AC\uC640 \uC790\uC6D0 \uC9D1\uC911\uC801\uC774\uB2E4. \uACB0\uACFC\uC801\uC73C\uB85C, \uB108\uBB34 \uC790\uC8FC \uD639\uC740 \uB108\uBB34 \uD06C\uAC8C \uD638\uCD9C\uD558\uB294 \uAC83\uC740 connection timeout\uC744 \uC57C\uAE30\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uBFD0\uB9CC \uC544\uB2C8\uB77C, \uC774 \uAE00\uC744 \uC4F0\uB294 \uC2DC\uC810\uC5D0\uB294, getProgramAccounts\uC758 endpoint\uB294 pagination\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB9CC\uC57D \uCFFC\uB9AC\uC758 \uACB0\uACFC\uAC00 \uB108\uBB34 \uD06C\uB2E4\uBA74, \uC751\uB2F5 \uAC12\uC740 \uC798\uB9B4 \uAC83\uC785\uB2C8\uB2E4.

    \uD604\uC7AC\uC758 \uC774\uB7F0 \uC81C\uC57D\uC0AC\uD56D\uB4E4\uC744 \uD53C\uD558\uAE30 \uC704\uD574\uC11C, getProgramAccounts\uB294 \uBA87 \uAC00\uC9C0 \uC720\uC6A9\uD55C \uD30C\uB77C\uBBF8\uD130\uB4E4\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4: dataSlice, filters, memcpm \uADF8\uB9AC\uACE0 dataSize. \uC774 \uD30C\uB77C\uBBF8\uD130\uB4E4\uC744 \uC870\uD569\uD574 \uC778\uC790\uB85C \uB118\uAE40\uC73C\uB85C\uC368, \uC6B0\uB9AC\uAC00 \uCFFC\uB9AC \uD560 \uC601\uC5ED\uC744 \uAD00\uB9AC \uAC00\uB2A5\uD558\uACE0 \uC608\uCE21 \uAC00\uB2A5\uD55C \uD06C\uAE30\uB85C \uC904\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.

    ",2),_n=n("code",null,"getProgramAccounts",-1),gn=s("\uC758 \uD754\uD55C \uC608\uC81C\uB294 "),hn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("SPL-Token Program"),An=s("\uACFC \uD1B5\uC2E0\uD558\uB294 \uAC83\uC785\uB2C8\uB2E4. "),wn=s("basic call"),Pn=s("\uC744 \uAC00\uC9C0\uACE0 Token Program\uC774 \uC18C\uC720\uD55C \uBAA8\uB4E0 Account\uB97C \uC694\uCCAD\uD558\uB294 \uAC83\uC740 \uB9C9\uB300\uD55C \uC591\uC758 \uB370\uC774\uD130\uB97C \uD638\uCD9C\uD558\uAC8C \uB420 \uAC83\uC785\uB2C8\uB2E4. \uADF8\uB7EC\uB098, \uD30C\uB77C\uBBF8\uD130\uB4E4\uC744 \uC774\uC6A9\uD568\uC73C\uB85C\uC368 \uC6B0\uB9AC\uB294 \uD6A8\uACFC\uC801\uC73C\uB85C \uC6B0\uB9AC\uAC00 \uC0AC\uC6A9\uD558\uACE0\uC790 \uD558\uB294 \uB370\uC774\uD130\uB9CC \uC694\uCCAD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Tn=o('

    filters

    getProgramAccounts\uB97C \uC0AC\uC6A9\uD558\uAE30 \uC704\uD55C \uAC00\uC7A5 \uD754\uD55C \uD30C\uB77C\uBBF8\uD130\uB294 filters array\uB2E4. \uC774 array\uC5D0\uB294 dataSize\uC640 memcmp \uB450 \uAC00\uC9C0 \uD0C0\uC785\uC758 \uD544\uD130\uAC00 \uB4E4\uC5B4\uAC08 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774 \uD544\uD130\uB4E4\uC744 \uC774\uC6A9\uD558\uAE30 \uC804\uC5D0, \uC6B0\uB9AC\uAC00 \uC694\uCCAD\uD558\uACE0 \uC788\uB294 \uB370\uC774\uD130\uB4E4\uC774 \uC5B4\uB5BB\uAC8C \uB193\uC5EC\uC788\uACE0 \uC9C1\uB82C\uD654\uB418\uB294\uC9C0\uC5D0 \uB300\uD574 \uC775\uC219\uD574\uC838\uC57C \uD569\uB2C8\uB2E4.

    dataSize

    ',3),Cn=s("Token Program\uC758 \uACBD\uC6B0, \uC6B0\uB9AC\uB294 "),Sn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Dn=s("Token Account\uAC00 165 bytes\uC758 \uAE38\uC774"),En=s("\uB97C \uAC00\uC9C4\uB2E4\uB294 \uAC83\uC744 \uC54C \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uAD6C\uCCB4\uC801\uC73C\uB85C, Token Account\uB294 \uAC01\uAC01 \uC608\uCE21 \uAC00\uB2A5\uD55C bytes \uC218\uB97C \uC694\uAD6C\uD558\uB294 8\uAC1C\uC758 \uB2E4\uB978 \uD544\uB4DC\uB4E4\uC744 \uAC00\uC9C0\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uC544\uB798\uC758 \uADF8\uB9BC\uC744 \uD1B5\uD574 \uC774 \uB370\uC774\uD130\uAC00 \uC5B4\uB5BB\uAC8C \uB193\uC5EC\uC788\uB294\uC9C0 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Nn=o('

    Account Size

    \uB9CC\uC57D \uC6B0\uB9AC\uAC00 \uC6B0\uB9AC\uC758 \uC9C0\uAC11 Address\uAC00 \uC18C\uC720\uD55C \uBAA8\uB4E0 Token Account\uB4E4\uC744 \uC54C\uACE0 \uC2F6\uB2E4\uBA74, \uC6B0\uB9AC\uB294 \uC815\uD655\uD788 165 bytes \uAE38\uC774\uC778 Account\uB4E4\uC5D0 \uB300\uD574 \uCFFC\uB9AC \uC601\uC5ED\uC744 \uC881\uAC8C \uB9CC\uB4DC\uB294 { dataSize: 165 }\uB97C filters array\uC5D0 \uCD94\uAC00\uD560 \uC218 \uC788\uC744 \uAC83\uC785\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uC774\uAC83\uB9CC\uC73C\uB85C\uB294 \uCDA9\uBD84\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uB610\uD55C \uC6B0\uB9AC\uC758 Addres\uAC00 \uC18C\uC720\uD55C Account\uB4E4\uC744 \uCC3E\uB294 \uD544\uD130\uB97C \uCD94\uAC00\uD560 \uD544\uC694\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uC774\uAC83\uC744 memcmp \uD544\uD130\uB97C \uD1B5\uD574 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.

    memcmp

    memcmp \uD544\uD130 \uD639\uC740 "\uBA54\uBAA8\uB9AC \uBE44\uAD50" \uD544\uD130\uB294 \uC6B0\uB9AC\uC758 Account\uC5D0 \uC800\uC7A5\uB41C \uC5B4\uB5A4 \uC18D\uC131\uC5D0 \uC788\uB294 \uB370\uC774\uD130\uB97C \uBE44\uAD50\uD560 \uC218 \uC788\uAC8C \uD574 \uC90D\uB2C8\uB2E4. \uAD6C\uCCB4\uC801\uC73C\uB85C, \uC6B0\uB9AC\uB294 \uD2B9\uC815 \uD3EC\uC9C0\uC158\uC5D0 \uC788\uB294 \uD2B9\uC815 bytes \uC9D1\uD569\uC5D0 \uB9DE\uCDB0 Account\uB4E4\uC744 \uC9C8\uC758\uD560 \uC218 \uC788\uB2E4. memcmp\uB294 \uB450 \uAC00\uC9C0 \uC778\uC790\uB97C \uC694\uAD6C\uD569\uB2C8\uB2E4:

    • offset: \uB370\uC774\uD130 \uBE44\uAD50\uB97C \uC2DC\uC791\uD560 \uC704\uCE58. \uC774 \uC704\uCE58\uB294 bytes\uB85C \uCE21\uC815\uB418\uBA70 integer\uB85C \uD45C\uD604\uB429\uB2C8\uB2E4.
    • bytes: Account\uC758 \uB370\uC774\uD130\uC640 \uB9E4\uCE6D \uB418\uC5B4\uC57C \uD558\uB294 \uB370\uC774\uD130. \uC774\uAC83\uC740 base-58\uB85C \uC778\uCF54\uB529 \uB41C \uBB38\uC790\uC5F4\uB85C \uD45C\uD604\uB418\uBA70 129 bytes \uC774\uD558\uB85C \uC81C\uD55C\uB429\uB2C8\uB2E4.

    memcmp\uB294 bytes\uAC00 \uC815\uD655\uD788 \uB9E4\uCE6D \uB41C \uACBD\uC6B0\uC5D0\uB9CC \uACB0\uACFC\uB97C \uBC18\uD658\uD55C\uB2E4\uB294 \uC0AC\uC2E4\uC744 \uC544\uB294 \uAC83\uC774 \uC911\uC694\uD569\uB2C8\uB2E4. \uD604\uC7AC, \uC6B0\uB9AC\uAC00 \uC81C\uACF5\uD560 bytes\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uC791\uC740 \uAC12\uC5D0 \uB300\uD55C \uBE44\uAD50\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.

    Token Program \uC608\uC81C\uC640 \uD568\uAED8 \uACC4\uC18D\uD574\uC11C, \uC6B0\uB9AC\uB294 \uC6B0\uB9AC\uC758 \uC9C0\uAC11 Address\uAC00 \uC18C\uC720\uD55C Token Account\uB4E4\uB9CC \uBC18\uD658\uD558\uB3C4\uB85D \uCFFC\uB9AC\uB97C \uACE0\uCE60 \uC218 \uC788\uC2B5\uB2C8\uB2E4. Token Account\uB97C \uBD24\uC744 \uB54C, \uC6B0\uB9AC\uB294 Token Account\uC5D0 \uC800\uC7A5\uB41C \uCC98\uC74C \uB450 \uD544\uB4DC\uAC00 \uBAA8\uB450 pubkey\uB77C\uB294 \uAC83\uACFC, \uAC01 pubkey\uB294 32 bytes \uAE38\uC774\uC778 \uAC83\uC744 \uC54C \uC218 \uC788\uC2B5\uB2C8\uB2E4. owner\uAC00 \uB450 \uBC88\uC9F8 \uD544\uB4DC\uC778 \uAC83\uC744 \uACE0\uB824\uD558\uBA74, \uC6B0\uB9AC\uB294 memcmp\uB97C offset 32 bytes\uC5D0\uC11C \uC2DC\uC791\uD574\uC57C\uD569\uB2C8\uB2E4. \uC5EC\uAE30\uC11C\uBD80\uD130, \uC6B0\uB9AC\uB294 owner \uD544\uB4DC\uAC00 \uC6B0\uB9AC\uC758 \uC9C0\uAC11 Address\uC640 \uB9E4\uCE6D\uB418\uB294 Account\uB4E4\uC744 \uCC3E\uC744 \uAC83\uC785\uB2C8\uB2E4.

    Account Size

    \uC6B0\uB9AC\uB294 \uC544\uB798\uC758 \uC608\uC81C\uB97C \uD1B5\uD574 \uC774 \uCFFC\uB9AC\uB97C \uD638\uCD9C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.

    ',9),vn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as i,r as l,o as r,c as k,a as n,b as a,w as t,F as m,d as s,e as o}from"./app.55b1b60c.js";var b="/assets/account-size.398f17bf.png",d="/assets/memcmp.c5e1f050.png";const f={},_=n("h1",{id:"get-program-accounts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#get-program-accounts","aria-hidden":"true"},"#"),s(" Get Program Accounts")],-1),g=n("p",null,[s("RPC method\uB294 \uD504\uB85C\uADF8\uB7A8\uC5D0 \uC758\uD574 \uC18C\uC720\uB41C \uBAA8\uB4E0 Account\uB4E4\uC744 \uBC18\uD658\uD55C\uB2E4. \uD604\uC7AC pagination\uC740 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. "),n("code",null,"getProgramAccounts"),s(" \uC694\uCCAD\uC740 \uC751\uB2F5 \uC2DC\uAC04\uC744 \uD5A5\uC0C1\uC2DC\uD0A4\uACE0 \uC758\uB3C4\uB41C \uACB0\uACFC\uB9CC\uC744 \uBC18\uD658\uD558\uAE30 \uC704\uD574 "),n("code",null,"dataSlice"),s(" \uADF8\uB9AC\uACE0/\uB610\uB294 "),n("code",null,"filters"),s(" \uD30C\uB77C\uBBF8\uD130\uB97C \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4.")],-1),h=n("h2",{id:"facts",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#facts","aria-hidden":"true"},"#"),s(" Facts")],-1),y={class:"custom-container tip"},A=n("p",{class:"custom-container-title"},"Parameters",-1),w=n("li",null,[n("code",null,"programId"),s(": "),n("code",null,"string"),s(" - \uC9C8\uC758\uD560 Program\uC758 Pubkey, base58 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4")],-1),P=s("(optional) "),T=n("code",null,"configOrCommitment",-1),C=s(": "),S=n("code",null,"object",-1),D=s(" - \uC544\uB798\uC758 optional field\uB4E4\uC744 \uD3EC\uD568\uD558\uB294 Configuration \uD30C\uB77C\uBBF8\uD130\uB4E4 "),E=s("(optional) "),N=n("code",null,"commitment",-1),v=s(": "),M=n("code",null,"string",-1),R=s(" - "),K={href:"https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment",target:"_blank",rel:"noopener noreferrer"},G=s("State commitment"),L=s("(optional) "),B=n("code",null,"encoding",-1),z=s(": "),x=n("code",null,"string",-1),F=s(" - Account Data\uC5D0 \uB300\uD55C \uC778\uCF54\uB529, either: "),H=n("code",null,"base58",-1),Z=s(", "),Q=n("code",null,"base64",-1),U=s(", or "),W=n("code",null,"jsonParsed",-1),V=s(". \uC8FC\uC758, web3js \uC0AC\uC6A9\uC790\uB294 "),j={href:"https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts",target:"_blank",rel:"noopener noreferrer"},Y=s("getParsedProgramAccounts"),J=s("\uB97C \uC0AC\uC6A9\uD574\uC57C \uD55C\uB2E4."),O=o("
  • (optional) dataSlice: object - \uBC18\uD658\uB418\uB294 Account Data\uC5D0 \uB300\uD55C \uC81C\uD55C \uC124\uC815
    • offset: number - \uBC18\uD658\uC744 \uC2DC\uC791\uD560 Account Data \uBC14\uC774\uD2B8 \uC22B\uC790
    • length: number - \uBC18\uD658\uD560 Account Data\uC758 \uBC14\uC774\uD2B8 \uC218
  • (optional) filters: array - \uC544\uB798\uC758 filter \uAC1D\uCCB4\uB4E4\uC744 \uC0AC\uC6A9\uD558\uB294 Filter \uACB0\uACFC\uB4E4
    • memcmp: object - \uC77C\uB828\uC758 \uBC14\uC774\uD2B8\uC640 Account Data\uC758 \uBE44\uAD50:
      • offset: number - \uBE44\uAD50\uB97C \uC2DC\uC791\uD560 Account Data \uBC14\uC774\uD2B8 \uC22B\uC790
      • bytes: string - \uBE44\uAD50\uD560 Data, 129 bytes \uC81C\uD55C\uB418\uBA70 base58 \uC778\uCF54\uB529 \uB41C \uBB38\uC790\uC5F4
    • dataSize: number - Account Data\uC758 \uAE38\uC774\uC640 \uB370\uC774\uD130 \uC0AC\uC774\uC988\uC758 \uBE44\uAD50
  • ",2),X=s("(optional) "),I=n("code",null,"withContext",-1),$=s(": "),q=n("code",null,"boolean",-1),nn=s(" - \uACB0\uACFC\uB97C \uD3EC\uC7A5\uD560 "),sn={href:"https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure",target:"_blank",rel:"noopener noreferrer"},an=s("RpcResponse JSON object"),en=o('
    Response

    getProgramAccounts\uB294 \uAE30\uBCF8\uC801\uC73C\uB85C \uC544\uB798\uC758 \uAD6C\uC870\uB97C \uAC16\uB294 JSON \uAC1D\uCCB4\uB4E4\uC744 \uB2F4\uACE0 \uC788\uB294 \uBC30\uC5F4\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4.

    • pubkey: string - Account pubkey, base58 \uC778\uCF54\uB529 \uB41C \uBB38\uC790\uC5F4
    • account: object - \uC544\uB798\uC758 \uC11C\uBE0C \uC18D\uC131\uB4E4\uC744 \uAC16\uACE0 \uC788\uB294 JSON \uAC1D\uCCB4
      • lamports: number, Account\uC5D0 \uD560\uB2F9\uB41C lamports\uC758 \uC218
      • owner: string, base58 \uC778\uCF54\uB529 \uB418\uC5B4 Account\uC5D0 \uD560\uB2F9\uB41C Program\uC758 pubkey
      • data: string | object - Account\uC640 \uC5F0\uAD00\uB41C \uB370\uC774\uD130, \uC778\uCF54\uB529 \uD30C\uB77C\uBBF8\uD130\uB85C \uB118\uC5B4\uC628 \uAC12\uC5D0 \uB530\uB77C \uC778\uCF54\uB529 \uB41C binary data \uB610\uB294 JSON \uD615\uC2DD
      • executable: boolean, Account\uAC00 Program\uC744 \uD3EC\uD568\uD558\uB294\uC9C0\uC5D0 \uB300\uD55C \uD45C\uC2DC
      • rentEpoch: number, Account\uAC00 rent \uC9C0\uBD88\uD560 \uB2E4\uC74C epoch
    ',3),tn=n("h2",{id:"deep-dive",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#deep-dive","aria-hidden":"true"},"#"),s(" Deep Dive")],-1),cn=n("p",null,[n("code",null,"getProgramAccounts"),s("\uB294 Program\uC774 \uC18C\uC720\uD55C \uBAA8\uB4E0 Account\uB4E4\uC744 \uB9AC\uD134\uD558\uB294 \uB2E4\uC7AC\uB2E4\uB2A5\uD55C RPC method \uC785\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uC544\uB798\uC640 \uAC19\uC774 \uBA87 \uAC00\uC9C0 \uC720\uC6A9\uD55C \uCFFC\uB9AC\uB97C \uC704\uD574 "),n("code",null,"getProgramAccounts"),s("\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.")],-1),on=n("li",null,"\uD2B9\uC815 \uC9C0\uAC11\uC5D0 \uB300\uD55C \uBAA8\uB4E0 Token Account\uB4E4 \uC870\uD68C",-1),ln=s("\uD2B9\uC815 mint\uC5D0 \uB300\uD55C \uBAA8\uB4E0 Token Account\uB4E4 \uC870\uD68C (i.e. All "),pn={href:"https://www.projectOpenBook.com/",target:"_blank",rel:"noopener noreferrer"},un=s("SRM"),rn=s(" holders)"),kn=s("\uD2B9\uC815 Program\uC5D0 \uB300\uD55C \uBAA8\uB4E0 custom Account\uB4E4 \uC870\uD68C (i.e. All "),mn={href:"https://mango.markets/",target:"_blank",rel:"noopener noreferrer"},bn=s("Mango"),dn=s(" users)"),fn=o("

    \uC774\uB807\uAC8C \uC720\uC6A9\uD568\uC5D0\uB3C4 \uBD88\uAD6C\uD558\uACE0, getProgramAccounts\uB294 \uD604\uC7AC \uC81C\uC57D\uC0AC\uD56D\uB4E4 \uB54C\uBB38\uC5D0 \uC790\uC8FC \uC624\uD574\uBC1B\uC2B5\uB2C8\uB2E4. getProgramAccounts\uC5D0 \uC758\uD574 \uC9C0\uC6D0\uB418\uB294 \uB9CE\uC740 \uCFFC\uB9AC\uB4E4\uC740 \uB300\uB7C9\uC758 \uB370\uC774\uD130 \uC14B\uC744 \uC2A4\uCE94\uD558\uAE30 \uC704\uD574 RPC \uB178\uB4DC\uB4E4\uC744 \uC694\uAD6C\uD569\uB2C8\uB2E4. \uC774\uB7F0 \uC2A4\uCE94 \uC791\uC5C5\uB4E4\uC740 \uBA54\uBAA8\uB9AC\uC640 \uC790\uC6D0 \uC9D1\uC911\uC801\uC774\uB2E4. \uACB0\uACFC\uC801\uC73C\uB85C, \uB108\uBB34 \uC790\uC8FC \uD639\uC740 \uB108\uBB34 \uD06C\uAC8C \uD638\uCD9C\uD558\uB294 \uAC83\uC740 connection timeout\uC744 \uC57C\uAE30\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uBFD0\uB9CC \uC544\uB2C8\uB77C, \uC774 \uAE00\uC744 \uC4F0\uB294 \uC2DC\uC810\uC5D0\uB294, getProgramAccounts\uC758 endpoint\uB294 pagination\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB9CC\uC57D \uCFFC\uB9AC\uC758 \uACB0\uACFC\uAC00 \uB108\uBB34 \uD06C\uB2E4\uBA74, \uC751\uB2F5 \uAC12\uC740 \uC798\uB9B4 \uAC83\uC785\uB2C8\uB2E4.

    \uD604\uC7AC\uC758 \uC774\uB7F0 \uC81C\uC57D\uC0AC\uD56D\uB4E4\uC744 \uD53C\uD558\uAE30 \uC704\uD574\uC11C, getProgramAccounts\uB294 \uBA87 \uAC00\uC9C0 \uC720\uC6A9\uD55C \uD30C\uB77C\uBBF8\uD130\uB4E4\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4: dataSlice, filters, memcpm \uADF8\uB9AC\uACE0 dataSize. \uC774 \uD30C\uB77C\uBBF8\uD130\uB4E4\uC744 \uC870\uD569\uD574 \uC778\uC790\uB85C \uB118\uAE40\uC73C\uB85C\uC368, \uC6B0\uB9AC\uAC00 \uCFFC\uB9AC \uD560 \uC601\uC5ED\uC744 \uAD00\uB9AC \uAC00\uB2A5\uD558\uACE0 \uC608\uCE21 \uAC00\uB2A5\uD55C \uD06C\uAE30\uB85C \uC904\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.

    ",2),_n=n("code",null,"getProgramAccounts",-1),gn=s("\uC758 \uD754\uD55C \uC608\uC81C\uB294 "),hn={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},yn=s("SPL-Token Program"),An=s("\uACFC \uD1B5\uC2E0\uD558\uB294 \uAC83\uC785\uB2C8\uB2E4. "),wn=s("basic call"),Pn=s("\uC744 \uAC00\uC9C0\uACE0 Token Program\uC774 \uC18C\uC720\uD55C \uBAA8\uB4E0 Account\uB97C \uC694\uCCAD\uD558\uB294 \uAC83\uC740 \uB9C9\uB300\uD55C \uC591\uC758 \uB370\uC774\uD130\uB97C \uD638\uCD9C\uD558\uAC8C \uB420 \uAC83\uC785\uB2C8\uB2E4. \uADF8\uB7EC\uB098, \uD30C\uB77C\uBBF8\uD130\uB4E4\uC744 \uC774\uC6A9\uD568\uC73C\uB85C\uC368 \uC6B0\uB9AC\uB294 \uD6A8\uACFC\uC801\uC73C\uB85C \uC6B0\uB9AC\uAC00 \uC0AC\uC6A9\uD558\uACE0\uC790 \uD558\uB294 \uB370\uC774\uD130\uB9CC \uC694\uCCAD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Tn=o('

    filters

    getProgramAccounts\uB97C \uC0AC\uC6A9\uD558\uAE30 \uC704\uD55C \uAC00\uC7A5 \uD754\uD55C \uD30C\uB77C\uBBF8\uD130\uB294 filters array\uB2E4. \uC774 array\uC5D0\uB294 dataSize\uC640 memcmp \uB450 \uAC00\uC9C0 \uD0C0\uC785\uC758 \uD544\uD130\uAC00 \uB4E4\uC5B4\uAC08 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774 \uD544\uD130\uB4E4\uC744 \uC774\uC6A9\uD558\uAE30 \uC804\uC5D0, \uC6B0\uB9AC\uAC00 \uC694\uCCAD\uD558\uACE0 \uC788\uB294 \uB370\uC774\uD130\uB4E4\uC774 \uC5B4\uB5BB\uAC8C \uB193\uC5EC\uC788\uACE0 \uC9C1\uB82C\uD654\uB418\uB294\uC9C0\uC5D0 \uB300\uD574 \uC775\uC219\uD574\uC838\uC57C \uD569\uB2C8\uB2E4.

    dataSize

    ',3),Cn=s("Token Program\uC758 \uACBD\uC6B0, \uC6B0\uB9AC\uB294 "),Sn={href:"https://github.com/solana-labs/solana-program-library/blob/08d9999f997a8bf38719679be9d572f119d0d960/token/program/src/state.rs#L86-L106",target:"_blank",rel:"noopener noreferrer"},Dn=s("Token Account\uAC00 165 bytes\uC758 \uAE38\uC774"),En=s("\uB97C \uAC00\uC9C4\uB2E4\uB294 \uAC83\uC744 \uC54C \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uAD6C\uCCB4\uC801\uC73C\uB85C, Token Account\uB294 \uAC01\uAC01 \uC608\uCE21 \uAC00\uB2A5\uD55C bytes \uC218\uB97C \uC694\uAD6C\uD558\uB294 8\uAC1C\uC758 \uB2E4\uB978 \uD544\uB4DC\uB4E4\uC744 \uAC00\uC9C0\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uC544\uB798\uC758 \uADF8\uB9BC\uC744 \uD1B5\uD574 \uC774 \uB370\uC774\uD130\uAC00 \uC5B4\uB5BB\uAC8C \uB193\uC5EC\uC788\uB294\uC9C0 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Nn=o('

    Account Size

    \uB9CC\uC57D \uC6B0\uB9AC\uAC00 \uC6B0\uB9AC\uC758 \uC9C0\uAC11 Address\uAC00 \uC18C\uC720\uD55C \uBAA8\uB4E0 Token Account\uB4E4\uC744 \uC54C\uACE0 \uC2F6\uB2E4\uBA74, \uC6B0\uB9AC\uB294 \uC815\uD655\uD788 165 bytes \uAE38\uC774\uC778 Account\uB4E4\uC5D0 \uB300\uD574 \uCFFC\uB9AC \uC601\uC5ED\uC744 \uC881\uAC8C \uB9CC\uB4DC\uB294 { dataSize: 165 }\uB97C filters array\uC5D0 \uCD94\uAC00\uD560 \uC218 \uC788\uC744 \uAC83\uC785\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uC774\uAC83\uB9CC\uC73C\uB85C\uB294 \uCDA9\uBD84\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uB610\uD55C \uC6B0\uB9AC\uC758 Addres\uAC00 \uC18C\uC720\uD55C Account\uB4E4\uC744 \uCC3E\uB294 \uD544\uD130\uB97C \uCD94\uAC00\uD560 \uD544\uC694\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uC6B0\uB9AC\uB294 \uC774\uAC83\uC744 memcmp \uD544\uD130\uB97C \uD1B5\uD574 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.

    memcmp

    memcmp \uD544\uD130 \uD639\uC740 "\uBA54\uBAA8\uB9AC \uBE44\uAD50" \uD544\uD130\uB294 \uC6B0\uB9AC\uC758 Account\uC5D0 \uC800\uC7A5\uB41C \uC5B4\uB5A4 \uC18D\uC131\uC5D0 \uC788\uB294 \uB370\uC774\uD130\uB97C \uBE44\uAD50\uD560 \uC218 \uC788\uAC8C \uD574 \uC90D\uB2C8\uB2E4. \uAD6C\uCCB4\uC801\uC73C\uB85C, \uC6B0\uB9AC\uB294 \uD2B9\uC815 \uD3EC\uC9C0\uC158\uC5D0 \uC788\uB294 \uD2B9\uC815 bytes \uC9D1\uD569\uC5D0 \uB9DE\uCDB0 Account\uB4E4\uC744 \uC9C8\uC758\uD560 \uC218 \uC788\uB2E4. memcmp\uB294 \uB450 \uAC00\uC9C0 \uC778\uC790\uB97C \uC694\uAD6C\uD569\uB2C8\uB2E4:

    • offset: \uB370\uC774\uD130 \uBE44\uAD50\uB97C \uC2DC\uC791\uD560 \uC704\uCE58. \uC774 \uC704\uCE58\uB294 bytes\uB85C \uCE21\uC815\uB418\uBA70 integer\uB85C \uD45C\uD604\uB429\uB2C8\uB2E4.
    • bytes: Account\uC758 \uB370\uC774\uD130\uC640 \uB9E4\uCE6D \uB418\uC5B4\uC57C \uD558\uB294 \uB370\uC774\uD130. \uC774\uAC83\uC740 base-58\uB85C \uC778\uCF54\uB529 \uB41C \uBB38\uC790\uC5F4\uB85C \uD45C\uD604\uB418\uBA70 129 bytes \uC774\uD558\uB85C \uC81C\uD55C\uB429\uB2C8\uB2E4.

    memcmp\uB294 bytes\uAC00 \uC815\uD655\uD788 \uB9E4\uCE6D \uB41C \uACBD\uC6B0\uC5D0\uB9CC \uACB0\uACFC\uB97C \uBC18\uD658\uD55C\uB2E4\uB294 \uC0AC\uC2E4\uC744 \uC544\uB294 \uAC83\uC774 \uC911\uC694\uD569\uB2C8\uB2E4. \uD604\uC7AC, \uC6B0\uB9AC\uAC00 \uC81C\uACF5\uD560 bytes\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uC791\uC740 \uAC12\uC5D0 \uB300\uD55C \uBE44\uAD50\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.

    Token Program \uC608\uC81C\uC640 \uD568\uAED8 \uACC4\uC18D\uD574\uC11C, \uC6B0\uB9AC\uB294 \uC6B0\uB9AC\uC758 \uC9C0\uAC11 Address\uAC00 \uC18C\uC720\uD55C Token Account\uB4E4\uB9CC \uBC18\uD658\uD558\uB3C4\uB85D \uCFFC\uB9AC\uB97C \uACE0\uCE60 \uC218 \uC788\uC2B5\uB2C8\uB2E4. Token Account\uB97C \uBD24\uC744 \uB54C, \uC6B0\uB9AC\uB294 Token Account\uC5D0 \uC800\uC7A5\uB41C \uCC98\uC74C \uB450 \uD544\uB4DC\uAC00 \uBAA8\uB450 pubkey\uB77C\uB294 \uAC83\uACFC, \uAC01 pubkey\uB294 32 bytes \uAE38\uC774\uC778 \uAC83\uC744 \uC54C \uC218 \uC788\uC2B5\uB2C8\uB2E4. owner\uAC00 \uB450 \uBC88\uC9F8 \uD544\uB4DC\uC778 \uAC83\uC744 \uACE0\uB824\uD558\uBA74, \uC6B0\uB9AC\uB294 memcmp\uB97C offset 32 bytes\uC5D0\uC11C \uC2DC\uC791\uD574\uC57C\uD569\uB2C8\uB2E4. \uC5EC\uAE30\uC11C\uBD80\uD130, \uC6B0\uB9AC\uB294 owner \uD544\uB4DC\uAC00 \uC6B0\uB9AC\uC758 \uC9C0\uAC11 Address\uC640 \uB9E4\uCE6D\uB418\uB294 Account\uB4E4\uC744 \uCC3E\uC744 \uAC83\uC785\uB2C8\uB2E4.

    Account Size

    \uC6B0\uB9AC\uB294 \uC544\uB798\uC758 \uC608\uC81C\uB97C \uD1B5\uD574 \uC774 \uCFFC\uB9AC\uB97C \uD638\uCD9C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.

    ',9),vn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"TOKEN_PROGRAM_ID"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" clusterApiUrl"),n("span",{class:"token punctuation"},","),s(" Connection "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.2c7ec669.js b/docs/.vuepress/dist/assets/jupiter.html.2c7ec669.js index 650d6d836..7500a697d 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.2c7ec669.js +++ b/docs/.vuepress/dist/assets/jupiter.html.2c7ec669.js @@ -229,7 +229,7 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),hn=n("h2",{id:"how-to-use-jupiter-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-use-jupiter-api","aria-hidden":"true"},"#"),s(" How to use Jupiter API")],-1),gn=n("p",null,"This is the easiest way to interact with jupiter programs to swap any 2 provided tokens.",-1),fn=n("h3",{id:"installation-2",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#installation-2","aria-hidden":"true"},"#"),s(" Installation")],-1),wn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("h3",{id:"getting-the-route-map",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#getting-the-route-map","aria-hidden":"true"},"#"),s(" Getting the Route Map")],-1),vn=n("p",null,[s("This API retrieves all the available tokens that can be swapped using the jupiter API. A list of all possible token routes is being fetched here and "),n("code",null,"allInputMints"),s(" contains the list of all possible Input Tokens by mint address and "),n("code",null,"swappableOutputForSol"),s(" contains all the possible tokens that can be swapped for SOL in this case.")],-1),Tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.4ca25825.js b/docs/.vuepress/dist/assets/jupiter.html.4ca25825.js index ee2a1b658..7f22e01ae 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.4ca25825.js +++ b/docs/.vuepress/dist/assets/jupiter.html.4ca25825.js @@ -229,7 +229,7 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),gn=n("h2",{id:"cara-menggunakan-jupiter-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-menggunakan-jupiter-api","aria-hidden":"true"},"#"),s(" Cara Menggunakan Jupiter API")],-1),yn=n("p",null,"Ini adalah cara termudah untuk berinteraksi dengan program jupiter untuk menukar 2 token yang disediakan.",-1),wn=n("h3",{id:"instalasi-1",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#instalasi-1","aria-hidden":"true"},"#"),s(" Instalasi")],-1),fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("h3",{id:"mendapatkan-route-map",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mendapatkan-route-map","aria-hidden":"true"},"#"),s(" Mendapatkan Route Map")],-1),vn=n("p",null,[s("API ini mengambil semua token yang tersedia yang dapat ditukar menggunakan API jupiter. Daftar semua kemungkinan rute token sedang diambil di sini dan "),n("code",null,"allInputMints"),s(" berisi daftar semua Token Input yang mungkin berdasarkan alamat mint dan "),n("code",null,"swappableOutputForSol"),s(" berisi semua kemungkinan token yang dapat ditukar dengan SOL dalam kasus ini.")],-1),Tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.53710d58.js b/docs/.vuepress/dist/assets/jupiter.html.53710d58.js index eb408029a..d8180c2e8 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.53710d58.js +++ b/docs/.vuepress/dist/assets/jupiter.html.53710d58.js @@ -229,7 +229,7 @@ import{_ as r,r as l,o as i,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as r,r as l,o as i,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),gn=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35-use-jupiter-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-use-jupiter-api","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 use Jupiter API")],-1),wn=n("p",null,"\u0E19\u0E35\u0E48\u0E04\u0E37\u0E2D\u0E27\u0E34\u0E18\u0E35\u0E17\u0E35\u0E48\u0E07\u0E48\u0E32\u0E22\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E17\u0E35\u0E48\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 jupiter programs \u0E40\u0E1E\u0E37\u0E48\u0E2D swap \u0E04\u0E39\u0E48 tokens \u0E43\u0E14\u0E46",-1),fn=n("h3",{id:"\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-1",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07-1","aria-hidden":"true"},"#"),s(" \u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07")],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("h3",{id:"\u0E2B\u0E32-route-map",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E2B\u0E32-route-map","aria-hidden":"true"},"#"),s(" \u0E2B\u0E32 Route Map")],-1),vn=n("p",null,[s("API \u0E08\u0E30\u0E2B\u0E32 tokens \u0E17\u0E35\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 swap \u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 the jupiter API. \u0E23\u0E32\u0E19\u0E01\u0E32\u0E23\u0E02\u0E2D\u0E07 token routes \u0E17\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21 fetch \u0E15\u0E23\u0E07\u0E08\u0E38\u0E14\u0E19\u0E35\u0E49 \u0E41\u0E25\u0E30 "),n("code",null,"allInputMints"),s(" \u0E08\u0E30\u0E21\u0E35\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E02\u0E2D\u0E07 Input Tokens mint address \u0E17\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E1B\u0E44\u0E14\u0E49 \u0E41\u0E25\u0E30 "),n("code",null,"swappableOutputForSol"),s(" \u0E08\u0E30\u0E21\u0E35\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E02\u0E2D\u0E07\u0E17\u0E38\u0E01 tokens \u0E17\u0E35\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 swapp \u0E40\u0E1B\u0E47\u0E19 SOL \u0E44\u0E14\u0E49\u0E43\u0E19\u0E01\u0E23\u0E13\u0E35\u0E19\u0E35\u0E49")],-1),Tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.74a079c6.js b/docs/.vuepress/dist/assets/jupiter.html.74a079c6.js index 1076fd8ed..806e27086 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.74a079c6.js +++ b/docs/.vuepress/dist/assets/jupiter.html.74a079c6.js @@ -229,7 +229,7 @@ import{_ as r,r as l,o as i,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as r,r as l,o as i,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),gn=n("h2",{id:"so-verwenden-sie-die-jupiter-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-verwenden-sie-die-jupiter-api","aria-hidden":"true"},"#"),s(" So verwenden Sie die Jupiter-API")],-1),fn=n("p",null,"Dies ist der einfachste Weg, mit Jupiter-Programmen zu interagieren, um zwei beliebige bereitgestellte Token auszutauschen.",-1),hn=n("h3",{id:"installation-2",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#installation-2","aria-hidden":"true"},"#"),s(" Installation")],-1),wn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("h3",{id:"abrufen-der-routenkarte",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#abrufen-der-routenkarte","aria-hidden":"true"},"#"),s(" Abrufen der Routenkarte")],-1),vn=n("p",null,"Diese API ruft alle verf\xFCgbaren Token ab, die mit der Jupiter-API ausgetauscht werden k\xF6nnen. Eine Liste aller m\xF6glichen Token-Routen wird hier abgerufen und \u201EallInputMints\u201C enth\xE4lt die Liste aller m\xF6glichen Input-Token nach Mint-Adresse und \u201EswappableOutputForSol\u201C enth\xE4lt alle m\xF6glichen Token, die in diesem Fall gegen SOL ausgetauscht werden k\xF6nnen.",-1),Tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.971e1dde.js b/docs/.vuepress/dist/assets/jupiter.html.971e1dde.js index 650d6d836..7500a697d 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.971e1dde.js +++ b/docs/.vuepress/dist/assets/jupiter.html.971e1dde.js @@ -229,7 +229,7 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),hn=n("h2",{id:"how-to-use-jupiter-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-use-jupiter-api","aria-hidden":"true"},"#"),s(" How to use Jupiter API")],-1),gn=n("p",null,"This is the easiest way to interact with jupiter programs to swap any 2 provided tokens.",-1),fn=n("h3",{id:"installation-2",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#installation-2","aria-hidden":"true"},"#"),s(" Installation")],-1),wn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("h3",{id:"getting-the-route-map",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#getting-the-route-map","aria-hidden":"true"},"#"),s(" Getting the Route Map")],-1),vn=n("p",null,[s("This API retrieves all the available tokens that can be swapped using the jupiter API. A list of all possible token routes is being fetched here and "),n("code",null,"allInputMints"),s(" contains the list of all possible Input Tokens by mint address and "),n("code",null,"swappableOutputForSol"),s(" contains all the possible tokens that can be swapped for SOL in this case.")],-1),Tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.a2626a25.js b/docs/.vuepress/dist/assets/jupiter.html.a2626a25.js index 5373f4761..0a878c02a 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.a2626a25.js +++ b/docs/.vuepress/dist/assets/jupiter.html.a2626a25.js @@ -229,7 +229,7 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),fn=n("h2",{id:"jupiter-api\u306E\u4F7F\u7528\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jupiter-api\u306E\u4F7F\u7528\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" Jupiter API\u306E\u4F7F\u7528\u65B9\u6CD5")],-1),yn=n("p",null,"\u3053\u308C\u306F\u3001 jupiter program\u3068\u3084\u308A\u53D6\u308A\u3057\u3066\u3001\u63D0\u4F9B\u3055\u308C\u305F2\u3064\u306E\u30C8\u30FC\u30AF\u30F3\u3092\u4EA4\u63DB\u3059\u308B\u6700\u3082\u7C21\u5358\u306A\u65B9\u6CD5\u3067\u3059\u3002",-1),wn=n("h3",{id:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB-1",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB-1","aria-hidden":"true"},"#"),s(" \u30A4\u30F3\u30B9\u30C8\u30FC\u30EB")],-1),hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),vn=n("h3",{id:"\u30EB\u30FC\u30C8\u30DE\u30C3\u30D5\u309A\u306E\u53D6\u5F97",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30EB\u30FC\u30C8\u30DE\u30C3\u30D5\u309A\u306E\u53D6\u5F97","aria-hidden":"true"},"#"),s(" \u30EB\u30FC\u30C8\u30DE\u30C3\u30D7\u306E\u53D6\u5F97")],-1),Tn=n("p",null,[s("\u3053\u306E API \u306F\u3001jupiter API \u3092\u4F7F\u7528\u3057\u3066\u30B9\u30EF\u30C3\u30D7\u3067\u304D\u308B\u3059\u3079\u3066\u306E\u5229\u7528\u53EF\u80FD\u306A\u30C8\u30FC\u30AF\u30F3\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u53EF\u80FD\u306A\u30C8\u30FC\u30AF\u30F3 \u30EB\u30FC\u30C8\u306E\u30EA\u30B9\u30C8\u304C\u3053\u3053\u3067\u53D6\u5F97\u3055\u308C\u307E\u3059\u3002"),n("code",null,"allInputMints"),s(" \u306B\u306F\u3001\u30DF\u30F3\u30C8 \u30A2\u30C9\u30EC\u30B9\u3054\u3068\u306E\u3059\u3079\u3066\u306E\u53EF\u80FD\u306A\u5165\u529B\u30C8\u30FC\u30AF\u30F3\u306E\u30EA\u30B9\u30C8\u304C\u542B\u307E\u308C\u3001"),n("code",null,"swappableOutputForSol"),s(" \u306B\u306F\u3001\u3053\u306E\u5834\u5408\u306BSOL\u306B\u30B9\u30EF\u30C3\u30D7\u3067\u304D\u308B\u3059\u3079\u3066\u306E\u53EF\u80FD\u306A\u30C8\u30FC\u30AF\u30F3\u304C\u542B\u307E\u308C\u307E\u3059\u3002")],-1),xn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/jupiter.html.e61c13e7.js b/docs/.vuepress/dist/assets/jupiter.html.e61c13e7.js index 44cffdef7..52c53c0a2 100644 --- a/docs/.vuepress/dist/assets/jupiter.html.e61c13e7.js +++ b/docs/.vuepress/dist/assets/jupiter.html.e61c13e7.js @@ -229,7 +229,7 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"["),s("network"),n("span",{class:"token punctuation"},"]"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` - `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectserum.com"'),n("span",{class:"token punctuation"},";"),s(` + `),n("span",{class:"token keyword"},"const"),s(" endpoint "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token string"},'"https://solana-api.projectOpenBook.com"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"return"),s(),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token operator"},"<"),s("ConnectionProvider endpoint"),n("span",{class:"token operator"},"="),n("span",{class:"token punctuation"},"{"),s("endpoint"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token operator"},">"),s(` @@ -481,11 +481,11 @@ import{_ as i,r as l,o as r,c as k,b as t,w as a,a as n,F as b,d as s}from"./app `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br")])],-1),gn=n("h2",{id:"comment-utiliser-l-api-de-jupiter",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-utiliser-l-api-de-jupiter","aria-hidden":"true"},"#"),s(" Comment utiliser l'API de Jupiter")],-1),fn=n("p",null,"C'est le moyen le plus simple d'interagir avec les programmes de jupiter pour \xE9changer deux jetons donn\xE9s.",-1),hn=n("h3",{id:"installation-2",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#installation-2","aria-hidden":"true"},"#"),s(" Installation")],-1),yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"yarn"),s(` i @solana/web3.js `),n("span",{class:"token function"},"yarn"),s(` i cross-fetch -`),n("span",{class:"token function"},"yarn"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"yarn"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"yarn"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),wn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token function"},"npm"),s(` i @solana/web3.js `),n("span",{class:"token function"},"npm"),s(` i cross-fetch -`),n("span",{class:"token function"},"npm"),s(` i @project-serum/anchor +`),n("span",{class:"token function"},"npm"),s(` i @project-OpenBook/anchor `),n("span",{class:"token function"},"npm"),s(` i bs58 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),_n=n("h3",{id:"obtention-du-chemin-d-acces",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#obtention-du-chemin-d-acces","aria-hidden":"true"},"#"),s(" Obtention du Chemin d'Acc\xE8s")],-1),vn=n("p",null,[s("Cette API r\xE9cup\xE8re tous les jetons disponibles qui peuvent \xEAtre \xE9chang\xE9s en utilisant l'API jupiter. Une liste de tous les chemins possibles est r\xE9cup\xE9r\xE9e ici et "),n("code",null,"allInputMints"),s(" contient la liste des adresses de mint de tous les jetons d'entr\xE9e possibles et "),n("code",null,"swappableOutputForSol"),s(" contient tous les jetons qu'il est possible d'\xE9changer contre des SOL.")],-1),Tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" routeMap "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),n("span",{class:"token punctuation"},"("),s(` `),n("span",{class:"token keyword"},"await"),s(),n("span",{class:"token function"},"fetch"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"https://quote-api.jup.ag/v1/route-map"'),n("span",{class:"token punctuation"},")"),s(` diff --git a/docs/.vuepress/dist/assets/local-development.html.4f85d321.js b/docs/.vuepress/dist/assets/local-development.html.4f85d321.js index b7e90d2c5..a33997c72 100644 --- a/docs/.vuepress/dist/assets/local-development.html.4f85d321.js +++ b/docs/.vuepress/dist/assets/local-development.html.4f85d321.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Nn=n("p",null,"Loading it to your localnet is then done by passing the account's file and destination address (on the local cluster) when starting the validator:",-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Xn=n("h3",{id:"how-to-load-programs-from-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-programs-from-mainnet","aria-hidden":"true"},"#"),s(" How to load programs from mainnet")],-1),Bn=n("p",null,"Similarly, it is possible to download the Serum Dex v3 program:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Fn=n("p",null,"Loading it to your localnet is then done by passing the program's file and destination address (on the local cluster) when starting the validator:",-1),zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Xn=n("h3",{id:"how-to-load-programs-from-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-programs-from-mainnet","aria-hidden":"true"},"#"),s(" How to load programs from mainnet")],-1),Bn=n("p",null,"Similarly, it is possible to download the OpenBook Dex v3 program:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Fn=n("p",null,"Loading it to your localnet is then done by passing the program's file and destination address (on the local cluster) when starting the validator:",-1),zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function Jn(Yn,$n){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[d,g,h,n("p",null,[_,t(p,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[y]),_:1}),w]),f,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[v]),preview:a(()=>[C]),_:1}),t(e,{title:"Python"},{default:a(()=>[x]),preview:a(()=>[S]),_:1}),t(e,{title:"C++"},{default:a(()=>[A]),preview:a(()=>[R]),_:1}),t(e,{title:"Rust"},{default:a(()=>[L]),preview:a(()=>[T]),_:1}),t(e,{title:"CLI"},{default:a(()=>[P]),preview:a(()=>[I]),_:1})]),_:1}),O,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[M]),preview:a(()=>[K]),_:1}),t(e,{title:"Python"},{default:a(()=>[E]),preview:a(()=>[U]),_:1}),t(e,{title:"C++"},{default:a(()=>[j]),preview:a(()=>[V]),_:1}),t(e,{title:"Rust"},{default:a(()=>[W]),preview:a(()=>[q]),_:1}),t(e,{title:"CLI"},{default:a(()=>[N]),preview:a(()=>[G]),_:1})]),_:1}),H,X,n("p",null,[B,n("a",D,[Z,t(c)]),F,z,Q,n("a",J,[Y,t(c)]),$]),n("p",null,[nn,sn,an,tn,en,on,cn,n("a",ln,[pn,t(c)]),un,n("a",rn,[kn,t(c)]),bn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[mn]),preview:a(()=>[dn]),_:1}),t(e,{title:"Python"},{default:a(()=>[gn]),preview:a(()=>[hn]),_:1}),t(e,{title:"C++"},{default:a(()=>[_n]),preview:a(()=>[yn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[wn]),preview:a(()=>[fn]),_:1})]),_:1}),vn,Cn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[xn]),preview:a(()=>[Sn]),_:1}),t(e,{title:"Python"},{default:a(()=>[An]),preview:a(()=>[Rn]),_:1}),t(e,{title:"C++"},{default:a(()=>[Ln]),preview:a(()=>[Tn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Pn]),preview:a(()=>[In]),_:1}),t(e,{title:"CLI"},{default:a(()=>[On]),preview:a(()=>[Mn]),_:1})]),_:1}),Kn,En,Un,jn,Vn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Wn]),preview:a(()=>[qn]),_:1})]),_:1}),Nn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Gn]),default:a(()=>[Hn]),_:1})]),_:1}),Xn,Bn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Dn]),preview:a(()=>[Zn]),_:1})]),_:1}),Fn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[zn]),default:a(()=>[Qn]),_:1})]),_:1})],64)}var ss=u(m,[["render",Jn]]);export{ss as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.7ea617a4.js b/docs/.vuepress/dist/assets/local-development.html.7ea617a4.js index 00d8201a9..7b55b9628 100644 --- a/docs/.vuepress/dist/assets/local-development.html.7ea617a4.js +++ b/docs/.vuepress/dist/assets/local-development.html.7ea617a4.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Hn=n("p",null,"Sau \u0111\xF3, c\xE0i \u0111\u1EB7t n\xF3 v\xE0o m\xF4i tr\u01B0\u1EDDng localnet c\u1EE7a b\u1EA1n b\u1EB1ng c\xE1ch truy\u1EC1n t\u1EADp tin \u1EDF tr\xEAn v\xE0 \u0111\u1ECBa ch\u1EC9 \u0111\xEDch (tr\xEAn m\xF4i tr\u01B0\u1EDDng \u0111\u1ECBa ph\u01B0\u01A1ng) khi b\u1EAFt \u0111\u1EA7u kh\u1EDFi ch\u1EA1y validator:",-1),Xn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("h3",{id:"lam-the-nao-\u0111e-cai-\u0111at-programs-tu-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#lam-the-nao-\u0111e-cai-\u0111at-programs-tu-mainnet","aria-hidden":"true"},"#"),s(" L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\u1EA3i \u0111\u1EB7t programs t\u1EEB mainnet")],-1),Fn=n("p",null,"T\u01B0\u01A1ng t\u1EF1, b\u1EA1n ph\u1EA3i t\u1EA3i xu\u1ED1ng program c\u1EE7a Serum Dex v3:",-1),zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Jn=n("p",null,"C\xE0i \u0111\u1EB7t n\xF3 v\xE0o localnet \u0111\u01B0\u1EE3c th\u1EF1c hi\u1EC7n b\u1EB1ng c\xE1ch truy\u1EC1n t\u1EADp tin program v\xE0 \u0111\u1ECBa ch\u1EC9 \u0111\xEDch (tr\xEAn m\xF4i tr\u01B0\u1EDDng \u0111\u1EA1i ph\u01B0\u01A1ng) khi b\u1EAFt \u0111\u1EA7u kh\u1EDFi ch\u1EA1y validator:",-1),Yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("h3",{id:"lam-the-nao-\u0111e-cai-\u0111at-programs-tu-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#lam-the-nao-\u0111e-cai-\u0111at-programs-tu-mainnet","aria-hidden":"true"},"#"),s(" L\xE0m th\u1EBF n\xE0o \u0111\u1EC3 c\u1EA3i \u0111\u1EB7t programs t\u1EEB mainnet")],-1),Fn=n("p",null,"T\u01B0\u01A1ng t\u1EF1, b\u1EA1n ph\u1EA3i t\u1EA3i xu\u1ED1ng program c\u1EE7a OpenBook Dex v3:",-1),zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Jn=n("p",null,"C\xE0i \u0111\u1EB7t n\xF3 v\xE0o localnet \u0111\u01B0\u1EE3c th\u1EF1c hi\u1EC7n b\u1EB1ng c\xE1ch truy\u1EC1n t\u1EADp tin program v\xE0 \u0111\u1ECBa ch\u1EC9 \u0111\xEDch (tr\xEAn m\xF4i tr\u01B0\u1EDDng \u0111\u1EA1i ph\u01B0\u01A1ng) khi b\u1EAFt \u0111\u1EA7u kh\u1EDFi ch\u1EA1y validator:",-1),Yn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),$n=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function ns(ss,as){const l=p("RouterLink"),e=p("SolanaCodeGroupItem"),o=p("SolanaCodeGroup"),c=p("ExternalLinkIcon");return i(),r(k,null,[d,h,g,n("p",null,[_,y,w,t(l,{to:"/vi/getting-started/installation.html#cai-%C4%91at-cli"},{default:a(()=>[f]),_:1}),v]),C,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[x]),preview:a(()=>[S]),_:1}),t(e,{title:"Python"},{default:a(()=>[A]),preview:a(()=>[R]),_:1}),t(e,{title:"C++"},{default:a(()=>[L]),preview:a(()=>[T]),_:1}),t(e,{title:"Rust"},{default:a(()=>[P]),preview:a(()=>[K]),_:1}),t(e,{title:"CLI"},{default:a(()=>[M]),preview:a(()=>[O]),_:1})]),_:1}),I,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[E]),preview:a(()=>[U]),_:1}),t(e,{title:"Python"},{default:a(()=>[V]),preview:a(()=>[j]),_:1}),t(e,{title:"C++"},{default:a(()=>[W]),preview:a(()=>[q]),_:1}),t(e,{title:"Rust"},{default:a(()=>[N]),preview:a(()=>[B]),_:1}),t(e,{title:"CLI"},{default:a(()=>[G]),preview:a(()=>[H]),_:1})]),_:1}),X,Z,n("p",null,[n("a",D,[F,t(c)]),z,Q,J,n("a",Y,[$,t(c)]),nn]),n("p",null,[sn,an,tn,en,on,cn,pn,ln,un,n("a",rn,[kn,t(c)]),bn,n("a",mn,[dn,t(c)]),hn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[gn]),preview:a(()=>[_n]),_:1}),t(e,{title:"Python"},{default:a(()=>[yn]),preview:a(()=>[wn]),_:1}),t(e,{title:"C++"},{default:a(()=>[fn]),preview:a(()=>[vn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Cn]),preview:a(()=>[xn]),_:1})]),_:1}),Sn,An,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[Rn]),preview:a(()=>[Ln]),_:1}),t(e,{title:"Python"},{default:a(()=>[Tn]),preview:a(()=>[Pn]),_:1}),t(e,{title:"C++"},{default:a(()=>[Kn]),preview:a(()=>[Mn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[On]),preview:a(()=>[In]),_:1}),t(e,{title:"CLI"},{default:a(()=>[En]),preview:a(()=>[Un]),_:1})]),_:1}),Vn,jn,Wn,qn,Nn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Bn]),preview:a(()=>[Gn]),_:1})]),_:1}),Hn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Xn]),default:a(()=>[Zn]),_:1})]),_:1}),Dn,Fn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[zn]),preview:a(()=>[Qn]),_:1})]),_:1}),Jn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Yn]),default:a(()=>[$n]),_:1})]),_:1})],64)}var es=u(m,[["render",ns]]);export{es as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.915be9fa.js b/docs/.vuepress/dist/assets/local-development.html.915be9fa.js index 5aa335375..7d8444ccb 100644 --- a/docs/.vuepress/dist/assets/local-development.html.915be9fa.js +++ b/docs/.vuepress/dist/assets/local-development.html.915be9fa.js @@ -315,10 +315,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Vn=n("p",null,"Das Laden in Ihr lokales Netz erfolgt dann, indem die Datei und die Zieladresse des Kontos (auf dem lokalen Cluster) beim Starten des Validators \xFCbergeben werden:",-1),On=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Un=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Wn=n("h3",{id:"so-laden-sie-programme-aus-dem-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-laden-sie-programme-aus-dem-mainnet","aria-hidden":"true"},"#"),s(" So laden Sie Programme aus dem Mainnet")],-1),zn=n("p",null,"Ebenso ist es m\xF6glich, das Programm Serum Dex v3 herunterzuladen:",-1),jn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Nn=n("p",null,"Das Laden in Ihr lokales Netz erfolgt dann, indem Sie beim Starten des Validators die Datei und die Zieladresse des Programms (auf dem lokalen Cluster) \xFCbergeben:",-1),qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Wn=n("h3",{id:"so-laden-sie-programme-aus-dem-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-laden-sie-programme-aus-dem-mainnet","aria-hidden":"true"},"#"),s(" So laden Sie Programme aus dem Mainnet")],-1),zn=n("p",null,"Ebenso ist es m\xF6glich, das Programm OpenBook Dex v3 herunterzuladen:",-1),jn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Nn=n("p",null,"Das Laden in Ihr lokales Netz erfolgt dann, indem Sie beim Starten des Validators die Datei und die Zieladresse des Programms (auf dem lokalen Cluster) \xFCbergeben:",-1),qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function Hn(Zn,Bn){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[d,g,h,n("p",null,[_,t(p,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[f]),_:1}),w]),y,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[v]),preview:a(()=>[C]),_:1}),t(e,{title:"Python"},{default:a(()=>[S]),preview:a(()=>[x]),_:1}),t(e,{title:"C++"},{default:a(()=>[A]),preview:a(()=>[R]),_:1}),t(e,{title:"Rust"},{default:a(()=>[L]),preview:a(()=>[P]),_:1}),t(e,{title:"CLI"},{default:a(()=>[T]),preview:a(()=>[K]),_:1})]),_:1}),I,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[E]),preview:a(()=>[M]),_:1}),t(e,{title:"Python"},{default:a(()=>[V]),preview:a(()=>[O]),_:1}),t(e,{title:"C++"},{default:a(()=>[U]),preview:a(()=>[W]),_:1}),t(e,{title:"Rust"},{default:a(()=>[z]),preview:a(()=>[j]),_:1}),t(e,{title:"CLI"},{default:a(()=>[D]),preview:a(()=>[N]),_:1})]),_:1}),q,G,n("p",null,[H,n("a",Z,[B,t(c)]),X,F,Q,n("a",J,[Y,t(c)]),$]),n("p",null,[nn,n("a",sn,[an,t(c)]),tn,n("a",en,[on,t(c)]),cn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[ln]),preview:a(()=>[pn]),_:1}),t(e,{title:"Python"},{default:a(()=>[un]),preview:a(()=>[rn]),_:1}),t(e,{title:"C++"},{default:a(()=>[kn]),preview:a(()=>[bn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[mn]),preview:a(()=>[dn]),_:1})]),_:1}),gn,hn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[_n]),preview:a(()=>[fn]),_:1}),t(e,{title:"Python"},{default:a(()=>[wn]),preview:a(()=>[yn]),_:1}),t(e,{title:"C++"},{default:a(()=>[vn]),preview:a(()=>[Cn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Sn]),preview:a(()=>[xn]),_:1}),t(e,{title:"CLI"},{default:a(()=>[An]),preview:a(()=>[Rn]),_:1})]),_:1}),Ln,Pn,Tn,Kn,In,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[En]),preview:a(()=>[Mn]),_:1})]),_:1}),Vn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[On]),default:a(()=>[Un]),_:1})]),_:1}),Wn,zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[jn]),preview:a(()=>[Dn]),_:1})]),_:1}),Nn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[qn]),default:a(()=>[Gn]),_:1})]),_:1})],64)}var Fn=u(m,[["render",Hn]]);export{Fn as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.a1aa3ed0.js b/docs/.vuepress/dist/assets/local-development.html.a1aa3ed0.js index 9869f80fb..7ac8028c6 100644 --- a/docs/.vuepress/dist/assets/local-development.html.a1aa3ed0.js +++ b/docs/.vuepress/dist/assets/local-development.html.a1aa3ed0.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Nn=n("p",null,"Luego, para cargarlo a la red local se debe pasar el archivo de la cuenta y la direcci\xF3n de destino (en el cl\xFAster local) al iniciar el validador:",-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Xn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),zn=n("h3",{id:"como-cargar-programas-de-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#como-cargar-programas-de-mainnet","aria-hidden":"true"},"#"),s(" C\xF3mo cargar programas de mainnet")],-1),Bn=n("p",null,"De igual forma, es posible descargar el programa Serum Dex v3:",-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"Luego, para cargarlo a la red local se debe pasar el archivo de la cuenta y la direcci\xF3n de destino (en el cl\xFAster local) al iniciar el validador:",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),zn=n("h3",{id:"como-cargar-programas-de-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#como-cargar-programas-de-mainnet","aria-hidden":"true"},"#"),s(" C\xF3mo cargar programas de mainnet")],-1),Bn=n("p",null,"De igual forma, es posible descargar el programa OpenBook Dex v3:",-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"Luego, para cargarlo a la red local se debe pasar el archivo de la cuenta y la direcci\xF3n de destino (en el cl\xFAster local) al iniciar el validador:",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function Jn(Yn,$n){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[m,g,h,n("p",null,[_,t(p,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[y]),_:1}),f]),w,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[v]),preview:a(()=>[C]),_:1}),t(e,{title:"Python"},{default:a(()=>[x]),preview:a(()=>[S]),_:1}),t(e,{title:"C++"},{default:a(()=>[A]),preview:a(()=>[R]),_:1}),t(e,{title:"Rust"},{default:a(()=>[L]),preview:a(()=>[P]),_:1}),t(e,{title:"CLI"},{default:a(()=>[T]),preview:a(()=>[I]),_:1})]),_:1}),O,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[E]),preview:a(()=>[j]),_:1}),t(e,{title:"Python"},{default:a(()=>[K]),preview:a(()=>[M]),_:1}),t(e,{title:"C++"},{default:a(()=>[U]),preview:a(()=>[V]),_:1}),t(e,{title:"Rust"},{default:a(()=>[q]),preview:a(()=>[W]),_:1}),t(e,{title:"CLI"},{default:a(()=>[N]),preview:a(()=>[G]),_:1})]),_:1}),X,z,n("p",null,[B,n("a",H,[D,t(c)]),Z,F,Q,n("a",J,[Y,t(c)]),$]),n("p",null,[nn,sn,an,tn,en,on,cn,n("a",ln,[pn,t(c)]),un,n("a",rn,[kn,t(c)]),bn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[dn]),preview:a(()=>[mn]),_:1}),t(e,{title:"Python"},{default:a(()=>[gn]),preview:a(()=>[hn]),_:1}),t(e,{title:"C++"},{default:a(()=>[_n]),preview:a(()=>[yn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[fn]),preview:a(()=>[wn]),_:1})]),_:1}),vn,Cn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[xn]),preview:a(()=>[Sn]),_:1}),t(e,{title:"Python"},{default:a(()=>[An]),preview:a(()=>[Rn]),_:1}),t(e,{title:"C++"},{default:a(()=>[Ln]),preview:a(()=>[Pn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Tn]),preview:a(()=>[In]),_:1}),t(e,{title:"CLI"},{default:a(()=>[On]),preview:a(()=>[En]),_:1})]),_:1}),jn,Kn,Mn,Un,Vn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[qn]),preview:a(()=>[Wn]),_:1})]),_:1}),Nn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Gn]),default:a(()=>[Xn]),_:1})]),_:1}),zn,Bn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Hn]),preview:a(()=>[Dn]),_:1})]),_:1}),Zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Fn]),default:a(()=>[Qn]),_:1})]),_:1})],64)}var ss=u(d,[["render",Jn]]);export{ss as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.a393140f.js b/docs/.vuepress/dist/assets/local-development.html.a393140f.js index c798bc3d7..ded02c44c 100644 --- a/docs/.vuepress/dist/assets/local-development.html.a393140f.js +++ b/docs/.vuepress/dist/assets/local-development.html.a393140f.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Wn=n("p",null,"Le chargement sur votre r\xE9seau local se fait ensuite en passant le fichier contenant les comptes et l'adresse de destination (sur le cluster local) lors du d\xE9marrage du validateur :",-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Nn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Xn=n("h3",{id:"comment-charger-des-programmes-depuis-le-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-charger-des-programmes-depuis-le-mainnet","aria-hidden":"true"},"#"),s(" Comment charger des programmes depuis le mainnet")],-1),Dn=n("p",null,"De m\xEAme, il est possible de t\xE9l\xE9charger le programme Serum Dex v3 :",-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"Le chargement sur votre r\xE9seau local se fait alors en passant le fichier du programme et l'adresse de destination (sur le cluster local) lors du d\xE9marrage du validateur :",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Xn=n("h3",{id:"comment-charger-des-programmes-depuis-le-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-charger-des-programmes-depuis-le-mainnet","aria-hidden":"true"},"#"),s(" Comment charger des programmes depuis le mainnet")],-1),Dn=n("p",null,"De m\xEAme, il est possible de t\xE9l\xE9charger le programme OpenBook Dex v3 :",-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"Le chargement sur votre r\xE9seau local se fait alors en passant le fichier du programme et l'adresse de destination (sur le cluster local) lors du d\xE9marrage du validateur :",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function Jn(Yn,$n){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[d,g,h,n("p",null,[_,t(p,{to:"/getting-started/installation.html#installer-cli"},{default:a(()=>[f]),_:1}),w]),y,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[v]),preview:a(()=>[C]),_:1}),t(e,{title:"Python"},{default:a(()=>[x]),preview:a(()=>[S]),_:1}),t(e,{title:"C++"},{default:a(()=>[L]),preview:a(()=>[A]),_:1}),t(e,{title:"Rust"},{default:a(()=>[R]),preview:a(()=>[P]),_:1}),t(e,{title:"CLI"},{default:a(()=>[T]),preview:a(()=>[q]),_:1})]),_:1}),I,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[O]),preview:a(()=>[M]),_:1}),t(e,{title:"Python"},{default:a(()=>[K]),preview:a(()=>[E]),_:1}),t(e,{title:"C++"},{default:a(()=>[j]),preview:a(()=>[U]),_:1}),t(e,{title:"Rust"},{default:a(()=>[V]),preview:a(()=>[z]),_:1}),t(e,{title:"CLI"},{default:a(()=>[W]),preview:a(()=>[G]),_:1})]),_:1}),N,X,n("p",null,[D,n("a",H,[B,t(c)]),Z,F,Q,n("a",J,[Y,t(c)]),$]),n("p",null,[nn,sn,an,tn,en,on,cn,n("a",ln,[pn,t(c)]),un,n("a",rn,[kn,t(c)]),mn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[bn]),preview:a(()=>[dn]),_:1}),t(e,{title:"Python"},{default:a(()=>[gn]),preview:a(()=>[hn]),_:1}),t(e,{title:"C++"},{default:a(()=>[_n]),preview:a(()=>[fn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[wn]),preview:a(()=>[yn]),_:1})]),_:1}),vn,Cn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[xn]),preview:a(()=>[Sn]),_:1}),t(e,{title:"Python"},{default:a(()=>[Ln]),preview:a(()=>[An]),_:1}),t(e,{title:"C++"},{default:a(()=>[Rn]),preview:a(()=>[Pn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Tn]),preview:a(()=>[qn]),_:1}),t(e,{title:"CLI"},{default:a(()=>[In]),preview:a(()=>[On]),_:1})]),_:1}),Mn,Kn,En,jn,Un,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Vn]),preview:a(()=>[zn]),_:1})]),_:1}),Wn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Gn]),default:a(()=>[Nn]),_:1})]),_:1}),Xn,Dn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Hn]),preview:a(()=>[Bn]),_:1})]),_:1}),Zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Fn]),default:a(()=>[Qn]),_:1})]),_:1})],64)}var ss=u(b,[["render",Jn]]);export{ss as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.a4b2de83.js b/docs/.vuepress/dist/assets/local-development.html.a4b2de83.js index 3a395f592..f2cd2660d 100644 --- a/docs/.vuepress/dist/assets/local-development.html.a4b2de83.js +++ b/docs/.vuepress/dist/assets/local-development.html.a4b2de83.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),qn=n("p",null,"\u0E01\u0E32\u0E23 load \u0E21\u0E32\u0E17\u0E35\u0E48 localnet \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E17\u0E33\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07 account's file \u0E41\u0E25\u0E30 address \u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22(\u0E44\u0E1B\u0E22\u0E31\u0E07 local cluster) \u0E15\u0E2D\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49 validator:",-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Nn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Xn=n("h3",{id:"\u0E27\u0E34\u0E18\u0E35-load-programs-from-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-load-programs-from-mainnet","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 load programs from mainnet")],-1),Hn=n("p",null,"\u0E41\u0E25\u0E30\u0E40\u0E0A\u0E48\u0E19\u0E01\u0E31\u0E19\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 download Serum Dex v3 program \u0E44\u0E14\u0E49:",-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"\u0E01\u0E32\u0E23 load \u0E21\u0E32\u0E17\u0E35\u0E48 localnet \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E17\u0E33\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07 account's file \u0E41\u0E25\u0E30 address \u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22(\u0E44\u0E1B\u0E22\u0E31\u0E07 local cluster) \u0E15\u0E2D\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49 validator:",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Xn=n("h3",{id:"\u0E27\u0E34\u0E18\u0E35-load-programs-from-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-load-programs-from-mainnet","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 load programs from mainnet")],-1),Hn=n("p",null,"\u0E41\u0E25\u0E30\u0E40\u0E0A\u0E48\u0E19\u0E01\u0E31\u0E19\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 download OpenBook Dex v3 program \u0E44\u0E14\u0E49:",-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"\u0E01\u0E32\u0E23 load \u0E21\u0E32\u0E17\u0E35\u0E48 localnet \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E17\u0E33\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07 account's file \u0E41\u0E25\u0E30 address \u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22(\u0E44\u0E1B\u0E22\u0E31\u0E07 local cluster) \u0E15\u0E2D\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49 validator:",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function Qn(Jn,Yn){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[d,g,h,n("p",null,[_,t(p,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[w]),_:1}),y]),f,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[v]),preview:a(()=>[C]),_:1}),t(e,{title:"Python"},{default:a(()=>[x]),preview:a(()=>[S]),_:1}),t(e,{title:"C++"},{default:a(()=>[A]),preview:a(()=>[R]),_:1}),t(e,{title:"Rust"},{default:a(()=>[L]),preview:a(()=>[P]),_:1}),t(e,{title:"CLI"},{default:a(()=>[T]),preview:a(()=>[I]),_:1})]),_:1}),M,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[O]),preview:a(()=>[K]),_:1}),t(e,{title:"Python"},{default:a(()=>[E]),preview:a(()=>[U]),_:1}),t(e,{title:"C++"},{default:a(()=>[j]),preview:a(()=>[V]),_:1}),t(e,{title:"Rust"},{default:a(()=>[W]),preview:a(()=>[q]),_:1}),t(e,{title:"CLI"},{default:a(()=>[G]),preview:a(()=>[N]),_:1})]),_:1}),X,H,n("p",null,[B,n("a",D,[Z,t(c)]),F,z,Q,n("a",J,[Y,t(c)]),$]),n("p",null,[nn,sn,an,tn,en,on,n("a",cn,[ln,t(c)]),pn,n("a",un,[rn,t(c)]),kn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[bn]),preview:a(()=>[mn]),_:1}),t(e,{title:"Python"},{default:a(()=>[dn]),preview:a(()=>[gn]),_:1}),t(e,{title:"C++"},{default:a(()=>[hn]),preview:a(()=>[_n]),_:1}),t(e,{title:"Rust"},{default:a(()=>[wn]),preview:a(()=>[yn]),_:1})]),_:1}),fn,vn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[Cn]),preview:a(()=>[xn]),_:1}),t(e,{title:"Python"},{default:a(()=>[Sn]),preview:a(()=>[An]),_:1}),t(e,{title:"C++"},{default:a(()=>[Rn]),preview:a(()=>[Ln]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Pn]),preview:a(()=>[Tn]),_:1}),t(e,{title:"CLI"},{default:a(()=>[In]),preview:a(()=>[Mn]),_:1})]),_:1}),On,Kn,En,Un,jn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Vn]),preview:a(()=>[Wn]),_:1})]),_:1}),qn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Gn]),default:a(()=>[Nn]),_:1})]),_:1}),Xn,Hn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Bn]),preview:a(()=>[Dn]),_:1})]),_:1}),Zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Fn]),default:a(()=>[zn]),_:1})]),_:1})],64)}var ns=u(m,[["render",Qn]]);export{ns as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.a4ff47a7.js b/docs/.vuepress/dist/assets/local-development.html.a4ff47a7.js index ad7aee5d1..0621bdb87 100644 --- a/docs/.vuepress/dist/assets/local-development.html.a4ff47a7.js +++ b/docs/.vuepress/dist/assets/local-development.html.a4ff47a7.js @@ -25,8 +25,8 @@ connection.o

    Do\u011Frulay\u0131c\u0131y\u0131 ba\u015Flat\u0131rken account'\u0131n dosya ve hedef adresini (yerel k\xFCmede) ileterek yerel a\u011F\u0131n\u0131za y\xFCkleme yap\u0131l\u0131r:

    solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     
    -

    How to load programs from mainnet (Programlar mainnet\u2019ten nas\u0131l y\xFCklenir)

    Benzer \u015Fekilde Serum Dex v3 program\u0131n\u0131 da indirmek m\xFCmk\xFCnd\xFCr:

    solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    +

    How to load programs from mainnet (Programlar mainnet\u2019ten nas\u0131l y\xFCklenir)

    Benzer \u015Fekilde OpenBook Dex v3 program\u0131n\u0131 da indirmek m\xFCmk\xFCnd\xFCr:

    solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
     
    -

    Yerel a\u011F\u0131n\u0131za y\xFCkleme, do\u011Frulay\u0131c\u0131y\u0131 ba\u015Flat\u0131rken program\u0131n dosya ve hedef adresini (yerel k\xFCmede) ileterek yap\u0131l\u0131r:

    solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    +

    Yerel a\u011F\u0131n\u0131za y\xFCkleme, do\u011Frulay\u0131c\u0131y\u0131 ba\u015Flat\u0131rken program\u0131n dosya ve hedef adresini (yerel k\xFCmede) ileterek yap\u0131l\u0131r:

    solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset
     
     
    `,17);function V(j,H){const l=t("RouterLink"),s=t("ExternalLinkIcon");return i(),c(u,null,[m,b,k,n("p",null,[e(l,{to:"/getting-started/installation.html#install-cli"},{default:p(()=>[g]),_:1}),h]),y,n("p",null,[v,n("a",_,[f,e(s)]),x,w,z,n("a",C,[A,e(s)]),S]),n("p",null,[q,n("a",P,[L,e(s)]),R,n("a",M,[E,e(s)]),T]),U],64)}var O=r(d,[["render",V]]);export{O as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.aaa13661.js b/docs/.vuepress/dist/assets/local-development.html.aaa13661.js index f697fffdb..80e2db0a5 100644 --- a/docs/.vuepress/dist/assets/local-development.html.aaa13661.js +++ b/docs/.vuepress/dist/assets/local-development.html.aaa13661.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Wn=n("p",null,"validator\uB97C \uC2DC\uC791\uD560 \uB54C \uC774 Account \uD30C\uC77C\uACFC \uBAA9\uC801\uC9C0 address (local cluster\uC5D0 \uC788\uB294)\uB97C \uB118\uAE40\uC73C\uB85C\uC368 \uB85C\uCEEC \uB137\uC5D0 \uC62C\uB9AC\uB294 \uAC83\uC774 \uAC00\uB2A5\uD569\uB2C8\uB2E4:",-1),qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Hn=n("h3",{id:"how-to-load-programs-from-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-programs-from-mainnet","aria-hidden":"true"},"#"),s(" How to load programs from mainnet")],-1),Nn=n("p",null,"\uBE44\uC2B7\uD558\uAC8C Serum Dex v3 \uD504\uB85C\uADF8\uB7A8\uC744 \uB2E4\uC6B4\uB85C\uB4DC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:",-1),Xn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"validator\uB97C \uC2DC\uC791\uD560 \uB54C Program \uD30C\uC77C\uACFC \uBAA9\uC801\uC9C0 Address (local cluster\uC5D0 \uC788\uB294)\uB97C \uB118\uAE40\uC73C\uB85C\uC368 \uB85C\uCEEC \uB137\uC5D0 \uC62C\uB9AC\uB294 \uAC83\uC774 \uAC00\uB2A5\uD569\uB2C8\uB2E4:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Hn=n("h3",{id:"how-to-load-programs-from-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-programs-from-mainnet","aria-hidden":"true"},"#"),s(" How to load programs from mainnet")],-1),Nn=n("p",null,"\uBE44\uC2B7\uD558\uAC8C OpenBook Dex v3 \uD504\uB85C\uADF8\uB7A8\uC744 \uB2E4\uC6B4\uB85C\uB4DC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:",-1),Xn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"validator\uB97C \uC2DC\uC791\uD560 \uB54C Program \uD30C\uC77C\uACFC \uBAA9\uC801\uC9C0 Address (local cluster\uC5D0 \uC788\uB294)\uB97C \uB118\uAE40\uC73C\uB85C\uC368 \uB85C\uCEEC \uB137\uC5D0 \uC62C\uB9AC\uB294 \uAC83\uC774 \uAC00\uB2A5\uD569\uB2C8\uB2E4:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function zn(Qn,Jn){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[d,g,h,n("p",null,[t(p,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[_]),_:1}),w]),f,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[y]),preview:a(()=>[v]),_:1}),t(e,{title:"Python"},{default:a(()=>[C]),preview:a(()=>[x]),_:1}),t(e,{title:"C++"},{default:a(()=>[S]),preview:a(()=>[A]),_:1}),t(e,{title:"Rust"},{default:a(()=>[R]),preview:a(()=>[L]),_:1}),t(e,{title:"CLI"},{default:a(()=>[P]),preview:a(()=>[T]),_:1})]),_:1}),I,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[O]),preview:a(()=>[K]),_:1}),t(e,{title:"Python"},{default:a(()=>[M]),preview:a(()=>[E]),_:1}),t(e,{title:"C++"},{default:a(()=>[U]),preview:a(()=>[j]),_:1}),t(e,{title:"Rust"},{default:a(()=>[V]),preview:a(()=>[W]),_:1}),t(e,{title:"CLI"},{default:a(()=>[q]),preview:a(()=>[G]),_:1})]),_:1}),H,N,n("p",null,[X,n("a",B,[Z,t(c)]),D,F,z,n("a",Q,[J,t(c)]),Y]),n("p",null,[$,nn,sn,an,tn,en,n("a",on,[cn,t(c)]),ln,n("a",pn,[un,t(c)]),rn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[kn]),preview:a(()=>[bn]),_:1}),t(e,{title:"Python"},{default:a(()=>[mn]),preview:a(()=>[dn]),_:1}),t(e,{title:"C++"},{default:a(()=>[gn]),preview:a(()=>[hn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[_n]),preview:a(()=>[wn]),_:1})]),_:1}),fn,yn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[vn]),preview:a(()=>[Cn]),_:1}),t(e,{title:"Python"},{default:a(()=>[xn]),preview:a(()=>[Sn]),_:1}),t(e,{title:"C++"},{default:a(()=>[An]),preview:a(()=>[Rn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Ln]),preview:a(()=>[Pn]),_:1}),t(e,{title:"CLI"},{default:a(()=>[Tn]),preview:a(()=>[In]),_:1})]),_:1}),On,Kn,Mn,En,Un,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[jn]),preview:a(()=>[Vn]),_:1})]),_:1}),Wn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[qn]),default:a(()=>[Gn]),_:1})]),_:1}),Hn,Nn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Xn]),preview:a(()=>[Bn]),_:1})]),_:1}),Zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Dn]),default:a(()=>[Fn]),_:1})]),_:1})],64)}var $n=u(m,[["render",zn]]);export{$n as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.bc2058e1.js b/docs/.vuepress/dist/assets/local-development.html.bc2058e1.js index 3a98f6147..61b09e864 100644 --- a/docs/.vuepress/dist/assets/local-development.html.bc2058e1.js +++ b/docs/.vuepress/dist/assets/local-development.html.bc2058e1.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Wn=n("p",null,"\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306E\u958B\u59CB\u6642\u306B\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u5B9B\u5148\u30A2\u30C9\u30EC\u30B9 (\u30ED\u30FC\u30AB\u30EB\u30AF\u30E9\u30B9\u30BF\u30FC\u4E0A\u306E\u3082\u306E)\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3067\u30ED\u30FC\u30AB\u30EB\u30CD\u30C3\u30C8\u3078\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059:",-1),qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Gn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Nn=n("h3",{id:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u30ED\u30FC\u30C9\u3059\u308B\u65B9\u6CD5")],-1),Xn=n("p",null,"\u540C\u69D8\u306B\u3001Serum Dex v3\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059:",-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306E\u958B\u59CB\u6642\u306B\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u5B9B\u5148\u30A2\u30C9\u30EC\u30B9 (\u30ED\u30FC\u30AB\u30EB\u30AF\u30E9\u30B9\u30BF\u30FC\u4E0A\u306E\u3082\u306E)\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3067\u30ED\u30FC\u30AB\u30EB\u30CD\u30C3\u30C8\u3078\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Nn=n("h3",{id:"\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D5\u309A\u30ED\u30AF\u3099\u30E9\u30E0\u3092\u30ED\u30FC\u30C8\u3099\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30E1\u30A4\u30F3\u30CD\u30C3\u30C8\u304B\u3089\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u30ED\u30FC\u30C9\u3059\u308B\u65B9\u6CD5")],-1),Xn=n("p",null,"\u540C\u69D8\u306B\u3001OpenBook Dex v3\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059:",-1),Hn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Bn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Zn=n("p",null,"\u30D0\u30EA\u30C7\u30FC\u30BF\u30FC\u306E\u958B\u59CB\u6642\u306B\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u5B9B\u5148\u30A2\u30C9\u30EC\u30B9 (\u30ED\u30FC\u30AB\u30EB\u30AF\u30E9\u30B9\u30BF\u30FC\u4E0A\u306E\u3082\u306E)\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3067\u30ED\u30FC\u30AB\u30EB\u30CD\u30C3\u30C8\u3078\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function zn(Qn,Jn){const l=p("RouterLink"),e=p("SolanaCodeGroupItem"),o=p("SolanaCodeGroup"),c=p("ExternalLinkIcon");return i(),r(k,null,[d,g,_,n("p",null,[t(l,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[h]),_:1}),w]),y,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[f]),preview:a(()=>[v]),_:1}),t(e,{title:"Python"},{default:a(()=>[C]),preview:a(()=>[x]),_:1}),t(e,{title:"C++"},{default:a(()=>[S]),preview:a(()=>[R]),_:1}),t(e,{title:"Rust"},{default:a(()=>[A]),preview:a(()=>[L]),_:1}),t(e,{title:"CLI"},{default:a(()=>[P]),preview:a(()=>[T]),_:1})]),_:1}),I,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[O]),preview:a(()=>[K]),_:1}),t(e,{title:"Python"},{default:a(()=>[M]),preview:a(()=>[E]),_:1}),t(e,{title:"C++"},{default:a(()=>[U]),preview:a(()=>[j]),_:1}),t(e,{title:"Rust"},{default:a(()=>[V]),preview:a(()=>[W]),_:1}),t(e,{title:"CLI"},{default:a(()=>[q]),preview:a(()=>[G]),_:1})]),_:1}),N,X,n("p",null,[H,n("a",B,[Z,t(c)]),D,F,z,n("a",Q,[J,t(c)]),Y]),n("p",null,[$,nn,sn,an,tn,en,n("a",on,[cn,t(c)]),pn,n("a",ln,[un,t(c)]),rn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[kn]),preview:a(()=>[bn]),_:1}),t(e,{title:"Python"},{default:a(()=>[mn]),preview:a(()=>[dn]),_:1}),t(e,{title:"C++"},{default:a(()=>[gn]),preview:a(()=>[_n]),_:1}),t(e,{title:"Rust"},{default:a(()=>[hn]),preview:a(()=>[wn]),_:1})]),_:1}),yn,fn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[vn]),preview:a(()=>[Cn]),_:1}),t(e,{title:"Python"},{default:a(()=>[xn]),preview:a(()=>[Sn]),_:1}),t(e,{title:"C++"},{default:a(()=>[Rn]),preview:a(()=>[An]),_:1}),t(e,{title:"Rust"},{default:a(()=>[Ln]),preview:a(()=>[Pn]),_:1}),t(e,{title:"CLI"},{default:a(()=>[Tn]),preview:a(()=>[In]),_:1})]),_:1}),On,Kn,Mn,En,Un,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[jn]),preview:a(()=>[Vn]),_:1})]),_:1}),Wn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[qn]),default:a(()=>[Gn]),_:1})]),_:1}),Nn,Xn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Hn]),preview:a(()=>[Bn]),_:1})]),_:1}),Zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Dn]),default:a(()=>[Fn]),_:1})]),_:1})],64)}var $n=u(m,[["render",zn]]);export{$n as default}; diff --git a/docs/.vuepress/dist/assets/local-development.html.f9c91566.js b/docs/.vuepress/dist/assets/local-development.html.f9c91566.js index 694919a4b..a6cb922c8 100644 --- a/docs/.vuepress/dist/assets/local-development.html.f9c91566.js +++ b/docs/.vuepress/dist/assets/local-development.html.f9c91566.js @@ -316,10 +316,10 @@ solana account -u m --output json-compact --output-file SRM_token.json SRMuApVNd `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Gn=n("p",null,"Memuatnya ke localnet anda kemudian dilakukan dengan meneruskan file akun dan alamat ujuan (pada cluster lokal) saat memulai validator:",-1),Nn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Xn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --account
    --reset"),s(` solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Hn=n("h3",{id:"cara-memuat-program-dari-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-memuat-program-dari-mainnet","aria-hidden":"true"},"#"),s(" Cara memuat program dari mainnet")],-1),Bn=n("p",null,"Demikian pula, dimungkinkan untuk mengunduh program Serum Dex v3:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),zn=n("p",null,"Memuatnya ke localnet anda kemudian dilakukan dengan meneruskan file program dan alamat tujuan (pada cluster lokal) saat memulai validator:",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Hn=n("h3",{id:"cara-memuat-program-dari-mainnet",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-memuat-program-dari-mainnet","aria-hidden":"true"},"#"),s(" Cara memuat program dari mainnet")],-1),Bn=n("p",null,"Demikian pula, dimungkinkan untuk mengunduh program OpenBook Dex v3:",-1),Dn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana program dump -u
    "),s(` +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),Zn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),zn=n("p",null,"Memuatnya ke localnet anda kemudian dilakukan dengan meneruskan file program dan alamat tujuan (pada cluster lokal) saat memulai validator:",-1),Fn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,`solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),Qn=n("div",{class:"language-bash ext-sh line-numbers-mode"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token comment"},"# solana-test-validator --bpf-program
    --reset"),s(` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1);function Jn(Yn,$n){const p=l("RouterLink"),e=l("SolanaCodeGroupItem"),o=l("SolanaCodeGroup"),c=l("ExternalLinkIcon");return i(),r(k,null,[d,g,h,n("p",null,[_,t(p,{to:"/getting-started/installation.html#install-cli"},{default:a(()=>[y]),_:1}),w]),f,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[v]),preview:a(()=>[C]),_:1}),t(e,{title:"Python"},{default:a(()=>[x]),preview:a(()=>[S]),_:1}),t(e,{title:"C++"},{default:a(()=>[A]),preview:a(()=>[R]),_:1}),t(e,{title:"Rust"},{default:a(()=>[L]),preview:a(()=>[P]),_:1}),t(e,{title:"CLI"},{default:a(()=>[j]),preview:a(()=>[M]),_:1})]),_:1}),T,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[K]),preview:a(()=>[I]),_:1}),t(e,{title:"Python"},{default:a(()=>[O]),preview:a(()=>[E]),_:1}),t(e,{title:"C++"},{default:a(()=>[U]),preview:a(()=>[V]),_:1}),t(e,{title:"Rust"},{default:a(()=>[W]),preview:a(()=>[q]),_:1}),t(e,{title:"CLI"},{default:a(()=>[G]),preview:a(()=>[N]),_:1})]),_:1}),X,H,n("p",null,[B,n("a",D,[Z,t(c)]),z,F,Q,n("a",J,[Y,t(c)]),$]),n("p",null,[nn,sn,an,tn,en,on,cn,n("a",ln,[pn,t(c)]),un,n("a",rn,[kn,t(c)]),bn]),t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[mn]),preview:a(()=>[dn]),_:1}),t(e,{title:"Python"},{default:a(()=>[gn]),preview:a(()=>[hn]),_:1}),t(e,{title:"C++"},{default:a(()=>[_n]),preview:a(()=>[yn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[wn]),preview:a(()=>[fn]),_:1})]),_:1}),vn,Cn,t(o,null,{default:a(()=>[t(e,{title:"TS",active:""},{default:a(()=>[xn]),preview:a(()=>[Sn]),_:1}),t(e,{title:"Python"},{default:a(()=>[An]),preview:a(()=>[Rn]),_:1}),t(e,{title:"C++"},{default:a(()=>[Ln]),preview:a(()=>[Pn]),_:1}),t(e,{title:"Rust"},{default:a(()=>[jn]),preview:a(()=>[Mn]),_:1}),t(e,{title:"CLI"},{default:a(()=>[Tn]),preview:a(()=>[Kn]),_:1})]),_:1}),In,On,En,Un,Vn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Wn]),preview:a(()=>[qn]),_:1})]),_:1}),Gn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Nn]),default:a(()=>[Xn]),_:1})]),_:1}),Hn,Bn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{default:a(()=>[Dn]),preview:a(()=>[Zn]),_:1})]),_:1}),zn,t(o,null,{default:a(()=>[t(e,{title:"CLI"},{preview:a(()=>[Fn]),default:a(()=>[Qn]),_:1})]),_:1})],64)}var ss=u(m,[["render",Jn]]);export{ss as default}; diff --git a/docs/.vuepress/dist/assets/mango.html.16fd6de6.js b/docs/.vuepress/dist/assets/mango.html.16fd6de6.js index 84985a3db..5e5814764 100644 --- a/docs/.vuepress/dist/assets/mango.html.16fd6de6.js +++ b/docs/.vuepress/dist/assets/mango.html.16fd6de6.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),w=n("p",null,"Mango provides a single venue to lend, borrow, swap, and leverage trade cryptoassets through an on-chain risk engine. You can connect to Mango's on-chain program using the Client API libraries. You'll also need the Solana javascript API library.",-1),y=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, serum dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("here"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, OpenBook dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("here"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),L=n("h2",{id:"how-to-place-a-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-place-a-spot-order","aria-hidden":"true"},"#"),s(" How to place a spot order")],-1),R=s("Mango interacts with Serum Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function "),V={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},q=s("here"),F=s(". Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it "),z={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("here"),J=s(". We use information from that file to find the right group and market."),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),L=n("h2",{id:"how-to-place-a-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-place-a-spot-order","aria-hidden":"true"},"#"),s(" How to place a spot order")],-1),R=s("Mango interacts with OpenBook Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function "),V={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},q=s("here"),F=s(". Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it "),z={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("here"),J=s(". We use information from that file to find the right group and market."),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"how-to-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-bids","aria-hidden":"true"},"#"),s(" How to load bids")],-1),nn=s("Mango uses the market information from Serum Protocol to load bids. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets "),sn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},an=s("here"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"how-to-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-bids","aria-hidden":"true"},"#"),s(" How to load bids")],-1),nn=s("Mango uses the market information from OpenBook Protocol to load bids. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets "),sn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},an=s("here"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),on=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"how-to-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-asks","aria-hidden":"true"},"#"),s(" How to load asks")],-1),cn=s("Mango uses the market information from Serum Protocol to load asks. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets "),pn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},ln=s("here"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"how-to-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-asks","aria-hidden":"true"},"#"),s(" How to load asks")],-1),cn=s("Mango uses the market information from OpenBook Protocol to load asks. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets "),pn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},ln=s("here"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/mango.html.22eca321.js b/docs/.vuepress/dist/assets/mango.html.22eca321.js index 1b70053af..18e7cbd9e 100644 --- a/docs/.vuepress/dist/assets/mango.html.22eca321.js +++ b/docs/.vuepress/dist/assets/mango.html.22eca321.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),y=n("p",null,"Mango offre un lieu unique pour pr\xEAter, emprunter, \xE9changer et n\xE9gocier des crypto-actifs par le biais d'un m\xE9canisme de gestion des risques on-chain. Vous pouvez vous connecter au programme de Mango \xE0 l'aide des biblioth\xE8ques API Client. Vous aurez \xE9galement besoin de la biblioth\xE8que API javascript de Solana.",-1),w=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    Comment r\xE9cup\xE9rer un Groupe Mango

    Un groupe Mango est un panier de jetons \xE0 marges crois\xE9es. Il contient des informations g\xE9n\xE9rales sur le march\xE9 des jetons, les dex de Serum, les march\xE9s perp, les oracles, les fonds d'assurance et les vaults de frais. Chaque version de Mango Markets utilise un groupe Mango diff\xE9rent contenant des jetons diff\xE9rents. Le groupe v3 actuel mainnet.1. Voici un tableau pr\xE9sentant les diff\xE9rents groupes :

    GroupeVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Remarque",-1),v=s("Si vous souhaitez utiliser les groupes v2, vous devrez utiliser la biblioth\xE8que client v2. Vous pouvez la trouver "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("ici"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    Comment r\xE9cup\xE9rer un Groupe Mango

    Un groupe Mango est un panier de jetons \xE0 marges crois\xE9es. Il contient des informations g\xE9n\xE9rales sur le march\xE9 des jetons, les dex de OpenBook, les march\xE9s perp, les oracles, les fonds d'assurance et les vaults de frais. Chaque version de Mango Markets utilise un groupe Mango diff\xE9rent contenant des jetons diff\xE9rents. Le groupe v3 actuel mainnet.1. Voici un tableau pr\xE9sentant les diff\xE9rents groupes :

    GroupeVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Remarque",-1),v=s("Si vous souhaitez utiliser les groupes v2, vous devrez utiliser la biblioth\xE8que client v2. Vous pouvez la trouver "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("ici"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),N=n("h2",{id:"comment-placer-un-ordre-spot",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-placer-un-ordre-spot","aria-hidden":"true"},"#"),s(" Comment placer un ordre spot")],-1),R=s("Mango interagit avec le Protocole Serum pour placer des ordres spot sur les march\xE9s. Vous pouvez passer un ordre spot en proc\xE9dant ainsi. Vous pouvez trouver la r\xE9f\xE9rence de la fonction placeSpotOrder "),L={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},F=s("ici"),H=s(". Mango poss\xE8de un fichier de configuration qui contient des informations sur les groupes, les march\xE9s, les jetons et les oracles que vous pouvez trouver "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("ici"),J=s(". Nous utilisons les informations de ce dossier pour trouver le bon groupe et le bon march\xE9."),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),N=n("h2",{id:"comment-placer-un-ordre-spot",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-placer-un-ordre-spot","aria-hidden":"true"},"#"),s(" Comment placer un ordre spot")],-1),R=s("Mango interagit avec le Protocole OpenBook pour placer des ordres spot sur les march\xE9s. Vous pouvez passer un ordre spot en proc\xE9dant ainsi. Vous pouvez trouver la r\xE9f\xE9rence de la fonction placeSpotOrder "),L={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},F=s("ici"),H=s(". Mango poss\xE8de un fichier de configuration qui contient des informations sur les groupes, les march\xE9s, les jetons et les oracles que vous pouvez trouver "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("ici"),J=s(". Nous utilisons les informations de ce dossier pour trouver le bon groupe et le bon march\xE9."),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"comment-charger-les-offres",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-charger-les-offres","aria-hidden":"true"},"#"),s(" Comment charger les offres")],-1),nn=s("Mango utilise les informations de march\xE9 du Protocole Serum pour charger les offres. Vous pouvez les charger directement depuis Serum pour travailler avec sur Mango. Vous pouvez en savoir plus sur les march\xE9s de Serum "),sn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},an=s("ici"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"comment-charger-les-offres",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-charger-les-offres","aria-hidden":"true"},"#"),s(" Comment charger les offres")],-1),nn=s("Mango utilise les informations de march\xE9 du Protocole OpenBook pour charger les offres. Vous pouvez les charger directement depuis OpenBook pour travailler avec sur Mango. Vous pouvez en savoir plus sur les march\xE9s de OpenBook "),sn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},an=s("ici"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),on=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"comment-charger-les-demandes",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-charger-les-demandes","aria-hidden":"true"},"#"),s(" Comment charger les demandes")],-1),cn=s("Mango utilise les informations de march\xE9 du Protocole Serum pour charger les demandes. Vous pouvez les charger directement depuis Serum pour travailler avec sur Mango. Vous pouvez en savoir plus sur les march\xE9s de Serum "),pn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},ln=s("ici"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"comment-charger-les-demandes",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-charger-les-demandes","aria-hidden":"true"},"#"),s(" Comment charger les demandes")],-1),cn=s("Mango utilise les informations de march\xE9 du Protocole OpenBook pour charger les demandes. Vous pouvez les charger directement depuis OpenBook pour travailler avec sur Mango. Vous pouvez en savoir plus sur les march\xE9s de OpenBook "),pn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},ln=s("ici"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/mango.html.235ca792.js b/docs/.vuepress/dist/assets/mango.html.235ca792.js index 84985a3db..5e5814764 100644 --- a/docs/.vuepress/dist/assets/mango.html.235ca792.js +++ b/docs/.vuepress/dist/assets/mango.html.235ca792.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),w=n("p",null,"Mango provides a single venue to lend, borrow, swap, and leverage trade cryptoassets through an on-chain risk engine. You can connect to Mango's on-chain program using the Client API libraries. You'll also need the Solana javascript API library.",-1),y=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, serum dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("here"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, OpenBook dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("here"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),L=n("h2",{id:"how-to-place-a-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-place-a-spot-order","aria-hidden":"true"},"#"),s(" How to place a spot order")],-1),R=s("Mango interacts with Serum Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function "),V={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},q=s("here"),F=s(". Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it "),z={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("here"),J=s(". We use information from that file to find the right group and market."),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),L=n("h2",{id:"how-to-place-a-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-place-a-spot-order","aria-hidden":"true"},"#"),s(" How to place a spot order")],-1),R=s("Mango interacts with OpenBook Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function "),V={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},q=s("here"),F=s(". Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it "),z={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("here"),J=s(". We use information from that file to find the right group and market."),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"how-to-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-bids","aria-hidden":"true"},"#"),s(" How to load bids")],-1),nn=s("Mango uses the market information from Serum Protocol to load bids. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets "),sn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},an=s("here"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"how-to-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-bids","aria-hidden":"true"},"#"),s(" How to load bids")],-1),nn=s("Mango uses the market information from OpenBook Protocol to load bids. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets "),sn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},an=s("here"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),on=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"how-to-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-asks","aria-hidden":"true"},"#"),s(" How to load asks")],-1),cn=s("Mango uses the market information from Serum Protocol to load asks. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets "),pn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},ln=s("here"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"how-to-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-asks","aria-hidden":"true"},"#"),s(" How to load asks")],-1),cn=s("Mango uses the market information from OpenBook Protocol to load asks. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets "),pn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},ln=s("here"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/mango.html.4038697b.js b/docs/.vuepress/dist/assets/mango.html.4038697b.js index 0ce3525b4..ed090049b 100644 --- a/docs/.vuepress/dist/assets/mango.html.4038697b.js +++ b/docs/.vuepress/dist/assets/mango.html.4038697b.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),y=n("p",null,"Mango menyediakan satu tempat untuk meminjamkan, meminjam, menukar, dan memanfaatkan memperdagangkan aset kripto melalui mesin risiko on-chain.",-1),w=n("p",null,"Anda dapat terhubung ke program on-chain Mango menggunakan librari Client API. Anda juga memerlukan librari Solana javascript API.",-1),f=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),_=m('

    Cara Mendapatkan Mango Group

    A mango group adalah basket dari cross-margined tokens. Ini menyimpan info pasar yang luas tentang token, pasar dex serum, pasar pelaku, oracles, dana asuransi, dan brankas biaya. Setiap versi market Manggo menggunakan Grup Manggo yang berbeda yang mengandung token. Grup v3 saat ini adalah mainnet.1. Berikut tabel yang menunjukkan berbagai grup:

    GrupVersiKluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),h={class:"custom-container tip"},C=n("p",{class:"custom-container-title"},"Catatan",-1),v=s("Jika Anda ingin menggunakan grup v2, Anda harus menggunakan librari klien v2. Kamu bisa menemukannya "),S={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},I=s("disini"),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),_=m('

    Cara Mendapatkan Mango Group

    A mango group adalah basket dari cross-margined tokens. Ini menyimpan info pasar yang luas tentang token, pasar dex OpenBook, pasar pelaku, oracles, dana asuransi, dan brankas biaya. Setiap versi market Manggo menggunakan Grup Manggo yang berbeda yang mengandung token. Grup v3 saat ini adalah mainnet.1. Berikut tabel yang menunjukkan berbagai grup:

    GrupVersiKluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),h={class:"custom-container tip"},C=n("p",{class:"custom-container-title"},"Catatan",-1),v=s("Jika Anda ingin menggunakan grup v2, Anda harus menggunakan librari klien v2. Kamu bisa menemukannya "),S={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},I=s("disini"),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),q=n("h2",{id:"cara-menempatkan-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-menempatkan-spot-order","aria-hidden":"true"},"#"),s(" Cara Menempatkan Spot Order")],-1),F=s("Mango berinteraksi dengan Serum Protocol untuk menempatkan spot orders di markets. Anda dapat menempatkan spot order dengan melakukan ini. Anda dapat menemukan referensi untuk fungsi placeSpotOrder "),z={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},H=s("disini"),J=s("."),Y=s("Mango memiliki file konfigurasi yang mengandung informasi tentang groups, markets, tokens dan oracles, Bisa ditemukan "),Z={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Q=s("disini"),X=s(". Kami menggunakan informasi dari file tersebut untuk menemukan group dan market yang tepat."),$=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),q=n("h2",{id:"cara-menempatkan-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-menempatkan-spot-order","aria-hidden":"true"},"#"),s(" Cara Menempatkan Spot Order")],-1),F=s("Mango berinteraksi dengan OpenBook Protocol untuk menempatkan spot orders di markets. Anda dapat menempatkan spot order dengan melakukan ini. Anda dapat menemukan referensi untuk fungsi placeSpotOrder "),z={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},H=s("disini"),J=s("."),Y=s("Mango memiliki file konfigurasi yang mengandung informasi tentang groups, markets, tokens dan oracles, Bisa ditemukan "),Z={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Q=s("disini"),X=s(". Kami menggunakan informasi dari file tersebut untuk menemukan group dan market yang tepat."),$=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),sn=n("h2",{id:"cara-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-load-bids","aria-hidden":"true"},"#"),s(" Cara Load Bids")],-1),an=s("Mango menggunakan informasi markets dari Serum Protocol untuk load bids. Anda bisa me-load langsung dari Serum untuk bisa bekerja dengan Mango. Temukan lebih lanjut perihal Serum Markets "),tn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},on=s("disini"),en=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),sn=n("h2",{id:"cara-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-load-bids","aria-hidden":"true"},"#"),s(" Cara Load Bids")],-1),an=s("Mango menggunakan informasi markets dari OpenBook Protocol untuk load bids. Anda bisa me-load langsung dari OpenBook untuk bisa bekerja dengan Mango. Temukan lebih lanjut perihal OpenBook Markets "),tn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},on=s("disini"),en=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),cn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),pn=n("h2",{id:"cara-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-load-asks","aria-hidden":"true"},"#"),s(" Cara Load Asks")],-1),ln=s("Mango menggunakan informasi market dariSerum Protocol untuk load asks. Kamu bisa load langsung dari Serum untuk bisa bekerja dengan Mango. Temukan lebih lanjut tentang Serum Markets "),un={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},rn=s("disini"),kn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),pn=n("h2",{id:"cara-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-load-asks","aria-hidden":"true"},"#"),s(" Cara Load Asks")],-1),ln=s("Mango menggunakan informasi market dariOpenBook Protocol untuk load asks. Kamu bisa load langsung dari OpenBook untuk bisa bekerja dengan Mango. Temukan lebih lanjut tentang OpenBook Markets "),un={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},rn=s("disini"),kn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/mango.html.c9da188d.js b/docs/.vuepress/dist/assets/mango.html.c9da188d.js index a583dbf8c..449ca02ca 100644 --- a/docs/.vuepress/dist/assets/mango.html.c9da188d.js +++ b/docs/.vuepress/dist/assets/mango.html.c9da188d.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),y=n("p",null,"Mango \u0E23\u0E27\u0E21 lend, borrow, swap, \u0E41\u0E25\u0E30 leverage trade crypto assets \u0E44\u0E27\u0E49\u0E17\u0E35\u0E48\u0E40\u0E14\u0E35\u0E22\u0E27\u0E1A\u0E19 on-chain risk engine. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A Mango's on-chain program \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 Client API libraries. \u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 Solana javascript API library \u0E14\u0E49\u0E27\u0E22",-1),w=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Mango Group

    mango group \u0E04\u0E37\u0E2D\u0E15\u0E30\u0E01\u0E23\u0E49\u0E32 (basket) \u0E02\u0E2D\u0E07 cross-margined tokens. \u0E21\u0E31\u0E19\u0E08\u0E30\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E01\u0E27\u0E49\u0E32\u0E07\u0E46 \u0E02\u0E2D\u0E07 market \u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A tokens, serum dex markets, perp markets, oracles, insurance fund \u0E41\u0E25\u0E30 fees vaults. \u0E41\u0E15\u0E48\u0E25\u0E30 version \u0E02\u0E2D\u0E07 Mango Markets \u0E43\u0E0A\u0E49 Mango Group \u0E17\u0E35\u0E48\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E01\u0E31\u0E19 \u0E41\u0E25\u0E30\u0E21\u0E35 tokens \u0E17\u0E35\u0E48\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E01\u0E31\u0E19 \u0E43\u0E19 v3 \u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E19\u0E31\u0E49\u0E19\u0E21\u0E35\u0E0A\u0E37\u0E48\u0E2D group \u0E04\u0E37\u0E2D mainnet.1 \u0E19\u0E35\u0E48\u0E04\u0E37\u0E2D\u0E15\u0E32\u0E23\u0E32\u0E07 table \u0E17\u0E35\u0E48\u0E41\u0E2A\u0E14\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E01\u0E25\u0E38\u0E48\u0E21\u0E15\u0E48\u0E32\u0E07\u0E46:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 v2 groups \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 v2 client library \u0E0B\u0E36\u0E48\u0E07\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2B\u0E32\u0E21\u0E31\u0E19\u0E44\u0E14\u0E49 "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Mango Group

    mango group \u0E04\u0E37\u0E2D\u0E15\u0E30\u0E01\u0E23\u0E49\u0E32 (basket) \u0E02\u0E2D\u0E07 cross-margined tokens. \u0E21\u0E31\u0E19\u0E08\u0E30\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E01\u0E27\u0E49\u0E32\u0E07\u0E46 \u0E02\u0E2D\u0E07 market \u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A tokens, OpenBook dex markets, perp markets, oracles, insurance fund \u0E41\u0E25\u0E30 fees vaults. \u0E41\u0E15\u0E48\u0E25\u0E30 version \u0E02\u0E2D\u0E07 Mango Markets \u0E43\u0E0A\u0E49 Mango Group \u0E17\u0E35\u0E48\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E01\u0E31\u0E19 \u0E41\u0E25\u0E30\u0E21\u0E35 tokens \u0E17\u0E35\u0E48\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E01\u0E31\u0E19 \u0E43\u0E19 v3 \u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E19\u0E31\u0E49\u0E19\u0E21\u0E35\u0E0A\u0E37\u0E48\u0E2D group \u0E04\u0E37\u0E2D mainnet.1 \u0E19\u0E35\u0E48\u0E04\u0E37\u0E2D\u0E15\u0E32\u0E23\u0E32\u0E07 table \u0E17\u0E35\u0E48\u0E41\u0E2A\u0E14\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E01\u0E25\u0E38\u0E48\u0E21\u0E15\u0E48\u0E32\u0E07\u0E46:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 v2 groups \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 v2 client library \u0E0B\u0E36\u0E48\u0E07\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2B\u0E32\u0E21\u0E31\u0E19\u0E44\u0E14\u0E49 "),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),I=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),V=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-spot-order","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07 spot order")],-1),q=s("Mango \u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A Serum Protocol \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E27\u0E32\u0E07 spot orders \u0E1A\u0E19 markets \u0E40\u0E23\u0E32\u0E08\u0E30\u0E27\u0E32\u0E07 spot order \u0E44\u0E14\u0E49\u0E16\u0E49\u0E32\u0E17\u0E33\u0E15\u0E32\u0E21\u0E19\u0E35\u0E49 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07\u0E02\u0E2D\u0E07 placeSpotOrder function \u0E44\u0E14\u0E49 "),F={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},z=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),H=s(". Mango \u0E21\u0E35 config file \u0E17\u0E35\u0E48\u0E21\u0E35\u0E48\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E01\u0E35\u0E48\u0E0D\u0E0B\u0E01\u0E31\u0E1A groups, markets, tokens \u0E41\u0E25\u0E30 oracles, \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2B\u0E32\u0E08\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E14\u0E49 "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),J=s(". \u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E32\u0E01 file \u0E19\u0E31\u0E49\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2B\u0E32 group \u0E41\u0E25\u0E30 market \u0E17\u0E35\u0E48\u0E16\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49"),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),V=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07-spot-order","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E15\u0E31\u0E49\u0E07 spot order")],-1),q=s("Mango \u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E1A OpenBook Protocol \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E27\u0E32\u0E07 spot orders \u0E1A\u0E19 markets \u0E40\u0E23\u0E32\u0E08\u0E30\u0E27\u0E32\u0E07 spot order \u0E44\u0E14\u0E49\u0E16\u0E49\u0E32\u0E17\u0E33\u0E15\u0E32\u0E21\u0E19\u0E35\u0E49 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07\u0E02\u0E2D\u0E07 placeSpotOrder function \u0E44\u0E14\u0E49 "),F={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},z=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),H=s(". Mango \u0E21\u0E35 config file \u0E17\u0E35\u0E48\u0E21\u0E35\u0E48\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E01\u0E35\u0E48\u0E0D\u0E0B\u0E01\u0E31\u0E1A groups, markets, tokens \u0E41\u0E25\u0E30 oracles, \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2B\u0E32\u0E08\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E14\u0E49 "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),J=s(". \u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E32\u0E01 file \u0E19\u0E31\u0E49\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2B\u0E32 group \u0E41\u0E25\u0E30 market \u0E17\u0E35\u0E48\u0E16\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49"),Q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-load-bids","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 load bids")],-1),nn=s("Mango uses the market information from Serum Protocol to load bids. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 load them directly from Serum to work with on Mango. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 find out more about Serum's markets "),sn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},an=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),$=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35-load-bids",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-load-bids","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 load bids")],-1),nn=s("Mango uses the market information from OpenBook Protocol to load bids. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 load them directly from OpenBook to work with on Mango. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16 find out more about OpenBook's markets "),sn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},an=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),on=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22-asks","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22 (asks)")],-1),cn=s("Mango \u0E43\u0E0A\u0E49\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 market \u0E08\u0E32\u0E01 Serum Protocol \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22 asks. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E08\u0E32\u0E01 Serum \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E33\u0E07\u0E32\u0E19\u0E1A\u0E19 Mango \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2D\u0E48\u0E32\u0E19\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A Serum's markets \u0E44\u0E14\u0E49 "),pn={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},ln=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),en=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22-asks","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22 (asks)")],-1),cn=s("Mango \u0E43\u0E0A\u0E49\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 market \u0E08\u0E32\u0E01 OpenBook Protocol \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E23\u0E32\u0E04\u0E32\u0E02\u0E32\u0E22 asks. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E08\u0E32\u0E01 OpenBook \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E33\u0E07\u0E32\u0E19\u0E1A\u0E19 Mango \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2D\u0E48\u0E32\u0E19\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A OpenBook's markets \u0E44\u0E14\u0E49 "),pn={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},ln=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),un=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/mango.html.d738a7f1.js b/docs/.vuepress/dist/assets/mango.html.d738a7f1.js index 192a558ea..7dd122ebc 100644 --- a/docs/.vuepress/dist/assets/mango.html.d738a7f1.js +++ b/docs/.vuepress/dist/assets/mango.html.d738a7f1.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),y=n("p",null,"Mango\u306F\u3001\u30AA\u30F3\u30C1\u30A7\u30FC\u30F3\u30EA\u30B9\u30AF \u30A8\u30F3\u30B8\u30F3\u3092\u4ECB\u3057\u3066\u3001\u53D6\u5F15\u6697\u53F7\u8CC7\u7523\u3092\u8CB8\u4E0E\u3001\u501F\u5165\u3001\u4EA4\u63DB\u3001\u304A\u3088\u3073\u6D3B\u7528\u3059\u308B\u305F\u3081\u306E\u5358\u4E00\u306E\u5834\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002 \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8API\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u4F7F\u7528\u3057\u3066\u3001Mango\u306E\u30AA\u30F3\u30C1\u30A7\u30FC\u30F3\u30D7\u30ED\u30B0\u30E9\u30E0\u306B\u63A5\u7D9A\u3067\u304D\u307E\u3059\u3002Solana JavaScript API\u30E9\u30A4\u30D6\u30E9\u30EA\u3082\u5FC5\u8981\u3067\u3059\u3002",-1),w=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),_=m('

    Mango Group\u306E\u53D6\u5F97\u65B9\u6CD5

    Mango group\u306F\u30AF\u30ED\u30B9\u30DE\u30FC\u30B8\u30F3\u30C8\u30FC\u30AF\u30F3\u306E\u30D0\u30B9\u30B1\u30C3\u30C8\u3067\u3001\u30C8\u30FC\u30AF\u30F3\u3001Serum dex market\u3001perp market\u3001Oracle\u3001Insurance fund\u3001Fees vault\u306B\u95A2\u3059\u308B\u5E45\u5E83\u3044\u5E02\u5834\u60C5\u5831\u3092\u4FDD\u6301\u3057\u3066\u3044\u307E\u3059\u3002 Mango Markets \u306E\u5404\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u7570\u306A\u308B\u30C8\u30FC\u30AF\u30F3\u3092\u542B\u3080\u7570\u306A\u308B Mango Group \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u73FE\u5728\u306E v3 \u30B0\u30EB\u30FC\u30D7\u306Fmainnet.1 \u3067\u3059\u3002\u3055\u307E\u3056\u307E\u306A\u30B0\u30EB\u30FC\u30D7\u3092\u793A\u3059\u8868\u3092\u6B21\u306B\u793A\u3057\u307E\u3059:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),f={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("v2 \u30B0\u30EB\u30FC\u30D7\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F\u3001v2 \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 \u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("\u3053\u3053"),I=s("\u3067\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059"),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),_=m('

    Mango Group\u306E\u53D6\u5F97\u65B9\u6CD5

    Mango group\u306F\u30AF\u30ED\u30B9\u30DE\u30FC\u30B8\u30F3\u30C8\u30FC\u30AF\u30F3\u306E\u30D0\u30B9\u30B1\u30C3\u30C8\u3067\u3001\u30C8\u30FC\u30AF\u30F3\u3001OpenBook dex market\u3001perp market\u3001Oracle\u3001Insurance fund\u3001Fees vault\u306B\u95A2\u3059\u308B\u5E45\u5E83\u3044\u5E02\u5834\u60C5\u5831\u3092\u4FDD\u6301\u3057\u3066\u3044\u307E\u3059\u3002 Mango Markets \u306E\u5404\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u7570\u306A\u308B\u30C8\u30FC\u30AF\u30F3\u3092\u542B\u3080\u7570\u306A\u308B Mango Group \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u73FE\u5728\u306E v3 \u30B0\u30EB\u30FC\u30D7\u306Fmainnet.1 \u3067\u3059\u3002\u3055\u307E\u3056\u307E\u306A\u30B0\u30EB\u30FC\u30D7\u3092\u793A\u3059\u8868\u3092\u6B21\u306B\u793A\u3057\u307E\u3059:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),f={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("v2 \u30B0\u30EB\u30FC\u30D7\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F\u3001v2 \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 \u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"),C={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},S=s("\u3053\u3053"),I=s("\u3067\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059"),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),V=n("h2",{id:"\u30B9\u30DB\u309A\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30B9\u30DB\u309A\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5")],-1),q=s("Mango\u306FSerum Protocol\u3068\u5BFE\u8A71\u3057\u3001\u5E02\u5834\u3067\u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u3092\u51FA\u3057\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u308A\u3001\u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u3092\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002placeSpotOrder\u95A2\u6570\u306E\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u306F"),z={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},H=s("\u3053\u3061\u3089"),J=s("\u3002 Mango\u306B\u306F\u3001\u30B0\u30EB\u30FC\u30D7\u3001\u30DE\u30FC\u30B1\u30C3\u30C8\u3001\u30C8\u30FC\u30AF\u30F3\u3001\u304A\u3088\u3073Oracle\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u542B\u3080\u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u3059\u3002 "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("\u3053\u3053"),Q=s("\u3067\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u305D\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u60C5\u5831\u3092\u4F7F\u7528\u3057\u3066\u3001\u9069\u5207\u306A\u30B0\u30EB\u30FC\u30D7\u3068\u5E02\u5834\u3092\u898B\u3064\u3051\u307E\u3059\u3002"),X=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),V=n("h2",{id:"\u30B9\u30DB\u309A\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30B9\u30DB\u309A\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u306E\u65B9\u6CD5")],-1),q=s("Mango\u306FOpenBook Protocol\u3068\u5BFE\u8A71\u3057\u3001\u5E02\u5834\u3067\u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u3092\u51FA\u3057\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u308A\u3001\u30B9\u30DD\u30C3\u30C8\u6CE8\u6587\u3092\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002placeSpotOrder\u95A2\u6570\u306E\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u306F"),z={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},H=s("\u3053\u3061\u3089"),J=s("\u3002 Mango\u306B\u306F\u3001\u30B0\u30EB\u30FC\u30D7\u3001\u30DE\u30FC\u30B1\u30C3\u30C8\u3001\u30C8\u30FC\u30AF\u30F3\u3001\u304A\u3088\u3073Oracle\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u542B\u3080\u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u3059\u3002 "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("\u3053\u3053"),Q=s("\u3067\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u305D\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u60C5\u5831\u3092\u4F7F\u7528\u3057\u3066\u3001\u9069\u5207\u306A\u30B0\u30EB\u30FC\u30D7\u3068\u5E02\u5834\u3092\u898B\u3064\u3051\u307E\u3059\u3002"),X=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),nn=n("h2",{id:"\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5")],-1),sn=s("Mango\u306FSerum Protocol\u304B\u3089\u5F97\u305F\u5E02\u5834\u60C5\u5831\u3092\u4F7F\u7528\u3057\u3066\u58F2\u5024\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002Serum\u304B\u3089\u76F4\u63A5\u8AAD\u307F\u8FBC\u307F\u3001Mango\u3067\u64CD\u4F5C\u3067\u304D\u307E\u3059\u3002Serum\u306E\u5E02\u5834\u306B\u95A2\u3057\u3066\u306E \u3088\u308A\u8A73\u3057\u3044\u60C5\u5831\u306F"),an={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},tn=s("\u3053\u3061\u3089"),on=s("\u3002"),en=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),nn=n("h2",{id:"\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u58F2\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5")],-1),sn=s("Mango\u306FOpenBook Protocol\u304B\u3089\u5F97\u305F\u5E02\u5834\u60C5\u5831\u3092\u4F7F\u7528\u3057\u3066\u58F2\u5024\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002OpenBook\u304B\u3089\u76F4\u63A5\u8AAD\u307F\u8FBC\u307F\u3001Mango\u3067\u64CD\u4F5C\u3067\u304D\u307E\u3059\u3002OpenBook\u306E\u5E02\u5834\u306B\u95A2\u3057\u3066\u306E \u3088\u308A\u8A73\u3057\u3044\u60C5\u5831\u306F"),an={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},tn=s("\u3053\u3061\u3089"),on=s("\u3002"),en=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),cn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),pn=n("h2",{id:"\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5")],-1),ln=s("Mango\u306FSerum Protocol\u304B\u3089\u5F97\u305F\u5E02\u5834\u60C5\u5831\u3092\u4F7F\u7528\u3057\u3066\u8CB7\u5024\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002 Serum\u304B\u3089\u76F4\u63A5\u8AAD\u307F\u8FBC\u307F\u3001Mango\u3067\u64CD\u4F5C\u3067\u304D\u307E\u3059\u3002Serum\u306E\u5E02\u5834\u306E\u8A73\u3057\u3044\u60C5\u5831\u306F"),un={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},rn=s("\u3053\u3061\u3089"),kn=s("\u3002"),bn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),pn=n("h2",{id:"\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u8CB7\u5024\u306E\u8AAD\u8FBC\u65B9\u6CD5")],-1),ln=s("Mango\u306FOpenBook Protocol\u304B\u3089\u5F97\u305F\u5E02\u5834\u60C5\u5831\u3092\u4F7F\u7528\u3057\u3066\u8CB7\u5024\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002 OpenBook\u304B\u3089\u76F4\u63A5\u8AAD\u307F\u8FBC\u307F\u3001Mango\u3067\u64CD\u4F5C\u3067\u304D\u307E\u3059\u3002OpenBook\u306E\u5E02\u5834\u306E\u8A73\u3057\u3044\u60C5\u5831\u306F"),un={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},rn=s("\u3053\u3061\u3089"),kn=s("\u3002"),bn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/mango.html.dfb33f17.js b/docs/.vuepress/dist/assets/mango.html.dfb33f17.js index 23c47a00e..808940726 100644 --- a/docs/.vuepress/dist/assets/mango.html.dfb33f17.js +++ b/docs/.vuepress/dist/assets/mango.html.dfb33f17.js @@ -1,6 +1,6 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}from"./app.55b1b60c.js";const d={},g=n("h1",{id:"mango-markets",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mango-markets","aria-hidden":"true"},"#"),s(" Mango Markets")],-1),y=n("p",null,"Mango bietet einen einzigen Ort um Kryptoassets \xFCber eine On-Chain-Risiko-Engine zum Verleihen, Leihen, Tauschen und Leverage Handeln. Sie k\xF6nnen sich \xFCber die Client-API-Bibliotheken mit dem On-Chain-Programm von Mango verbinden. Sie ben\xF6tigen au\xDFerdem die Solana-Javascript-API-Bibliothek.",-1),w=n("div",{class:"language-text ext-text line-numbers-mode"},[n("pre",{class:"language-text"},[n("code",null,`"@blockworks-foundation/mango-client": "^3.3.27", "@solana/web3.js": "^1.37.0" -`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    So erhalten Sie eine Mango-Gruppe

    Eine Mangogruppe ist ein Korb mit querrandigen Spielmarken. Es enth\xE4lt umfassende Marktinformationen \xFCber Token, Serum-Dex-M\xE4rkte, T\xE4term\xE4rkte, Orakel, Versicherungsfonds und Geb\xFChrentresore. Jede Version von Mango Markets verwendet eine andere Mango-Gruppe, die andere enth\xE4lt Token. Die aktuelle v3-Gruppe ist \u201Emainnet.1\u201C. Hier ist eine Tabelle mit den verschiedenen Gruppen:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("Wenn Sie die v2-Gruppen verwenden m\xF6chten, m\xFCssen Sie die v2-Clientbibliothek verwenden. Du kannst es "),S={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},C=s("hier"),G=s(" finden"),M=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`)]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),f=m('

    So erhalten Sie eine Mango-Gruppe

    Eine Mangogruppe ist ein Korb mit querrandigen Spielmarken. Es enth\xE4lt umfassende Marktinformationen \xFCber Token, OpenBook-Dex-M\xE4rkte, T\xE4term\xE4rkte, Orakel, Versicherungsfonds und Geb\xFChrentresore. Jede Version von Mango Markets verwendet eine andere Mango-Gruppe, die andere enth\xE4lt Token. Die aktuelle v3-Gruppe ist \u201Emainnet.1\u201C. Hier ist eine Tabelle mit den verschiedenen Gruppen:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet
    ',3),_={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"Note",-1),v=s("Wenn Sie die v2-Gruppen verwenden m\xF6chten, m\xFCssen Sie die v2-Clientbibliothek verwenden. Du kannst es "),S={href:"https://github.com/blockworks-foundation/mango-client-ts",target:"_blank",rel:"noopener noreferrer"},C=s("hier"),G=s(" finden"),M=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -211,9 +211,9 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro tokenAccount`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token function"},"Number"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"4"),n("span",{class:"token punctuation"},")"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),V=n("h2",{id:"so-platzieren-sie-eine-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-platzieren-sie-eine-spot-order","aria-hidden":"true"},"#"),s(" So platzieren Sie eine Spot-Order")],-1),H=s("Mango interagiert mit dem Serum Protocol, um Spot-Orders auf den M\xE4rkten zu platzieren. Sie k\xF6nnen eine Spot Order bestellen, indem Sie dies tun. Die Referenz f\xFCr die placeSpotOrder-Funktion finden Sie "),q={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},F=s("hier"),J=s(". Mango hat eine Konfigurationsdatei, die Informationen zu Gruppen, M\xE4rkten, Token und Orakeln enth\xE4lt. Sie finden es "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("hier"),Q=s(". Wir verwenden Informationen aus dieser Datei, um die richtige Gruppe und den richtigen Markt zu finden."),X=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),V=n("h2",{id:"so-platzieren-sie-eine-spot-order",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-platzieren-sie-eine-spot-order","aria-hidden":"true"},"#"),s(" So platzieren Sie eine Spot-Order")],-1),H=s("Mango interagiert mit dem OpenBook Protocol, um Spot-Orders auf den M\xE4rkten zu platzieren. Sie k\xF6nnen eine Spot Order bestellen, indem Sie dies tun. Die Referenz f\xFCr die placeSpotOrder-Funktion finden Sie "),q={href:"https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder",target:"_blank",rel:"noopener noreferrer"},F=s("hier"),J=s(". Mango hat eine Konfigurationsdatei, die Informationen zu Gruppen, M\xE4rkten, Token und Orakeln enth\xE4lt. Sie finden es "),Y={href:"https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json",target:"_blank",rel:"noopener noreferrer"},Z=s("hier"),Q=s(". Wir verwenden Informationen aus dieser Datei, um die richtige Gruppe und den richtigen Markt zu finden."),X=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" useWallet "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/wallet-adapter-react"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -253,7 +253,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"await"),s(" client"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"placeSpotOrder"),n("span",{class:"token punctuation"},"("),s(` mangoGroup`),n("span",{class:"token punctuation"},","),s(` @@ -276,8 +276,8 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro `),n("span",{class:"token number"},"3"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token number"},"3.5"),s(` `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),nn=n("h2",{id:"so-laden-sie-gebote",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-laden-sie-gebote","aria-hidden":"true"},"#"),s(" So laden Sie Gebote")],-1),sn=s("Mango verwendet die Marktinformationen von Serum Protocol, um Gebote zu laden. Sie k\xF6nnen sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie k\xF6nnen "),an={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},tn=s("hier"),en=s(" mehr \xFCber Serum M\xE4rkte erfahren"),on=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),nn=n("h2",{id:"so-laden-sie-gebote",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-laden-sie-gebote","aria-hidden":"true"},"#"),s(" So laden Sie Gebote")],-1),sn=s("Mango verwendet die Marktinformationen von OpenBook Protocol, um Gebote zu laden. Sie k\xF6nnen sie direkt aus OpenBook laden, um mit Mango zu arbeiten. Sie k\xF6nnen "),an={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},tn=s("hier"),en=s(" mehr \xFCber OpenBook M\xE4rkte erfahren"),on=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` Config`),n("span",{class:"token punctuation"},","),s(` @@ -301,13 +301,13 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br")])],-1),cn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" bids "),n("span",{class:"token operator"},"="),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),pn=n("h2",{id:"how-to-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-asks","aria-hidden":"true"},"#"),s(" How to load asks")],-1),ln=s("Mango verwendet die Marktinformationen von Serum Protocol, um Anfragen zu laden. Sie k\xF6nnen sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie k\xF6nnen "),un={href:"https://github.com/project-serum/serum-ts/tree/master/packages/serum",target:"_blank",rel:"noopener noreferrer"},rn=s("hier"),kn=s(" mehr \xFCber die M\xE4rkte von Serum erfahren"),bn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),pn=n("h2",{id:"how-to-load-asks",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-load-asks","aria-hidden":"true"},"#"),s(" How to load asks")],-1),ln=s("Mango verwendet die Marktinformationen von OpenBook Protocol, um Anfragen zu laden. Sie k\xF6nnen sie direkt aus OpenBook laden, um mit Mango zu arbeiten. Sie k\xF6nnen "),un={href:"https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook",target:"_blank",rel:"noopener noreferrer"},rn=s("hier"),kn=s(" mehr \xFCber die M\xE4rkte von OpenBook erfahren"),bn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token constant"},"IDS"),n("span",{class:"token punctuation"},","),s(` MangoClient`),n("span",{class:"token punctuation"},","),s(` @@ -332,7 +332,7 @@ import{_ as r,r as p,o as i,c as k,b as a,w as t,a as n,F as b,d as s,e as m}fro connection`),n("span",{class:"token punctuation"},","),s(` marketConfig`),n("span",{class:"token punctuation"},"."),s("publicKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(` - groupConfig`),n("span",{class:"token punctuation"},"."),s(`serumProgramId + groupConfig`),n("span",{class:"token punctuation"},"."),s(`OpenBookProgramId `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" asks "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"loadBids"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/programs.html.7ee31ce3.js b/docs/.vuepress/dist/assets/programs.html.7ee31ce3.js index a928c6969..294975961 100644 --- a/docs/.vuepress/dist/assets/programs.html.7ee31ce3.js +++ b/docs/.vuepress/dist/assets/programs.html.7ee31ce3.js @@ -1,2 +1,2 @@ -import{_ as d,r as s,o as i,c as l,a as t,b as o,w as c,F as _,d as e,e as r}from"./app.55b1b60c.js";const h={},p=t("h1",{id:"\u7A0B\u5E8F",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u7A0B\u5E8F","aria-hidden":"true"},"#"),e(" \u7A0B\u5E8F")],-1),u=t("p",null,"\u4EFB\u4F55\u5F00\u53D1\u8005\u90FD\u53EF\u4EE5\u5728Solana\u94FE\u4E0A\u7F16\u5199\u4EE5\u53CA\u90E8\u7F72\u7A0B\u5E8F\u3002Solana\u7A0B\u5E8F\uFF08\u5728\u5176\u4ED6\u94FE\u4E0A\u53EB\u505A\u667A\u80FD\u5408\u7EA6\uFF09\uFF0C\u662F\u6240\u6709\u94FE\u4E0A\u6D3B\u52A8\u7684\u57FA\u7840\u3002 \u94FE\u4E0A\u7684\u4E00\u5207\u6D3B\u52A8\uFF0C\u4ECE\u53BB\u4E2D\u5FC3\u5316\u91D1\u878D\uFF08DeFi\uFF09\uFF0C\u5230\u975E\u540C\u8D28\u5316\u4EE3\u5E01\uFF08NFT\uFF09\uFF0C\u518D\u5230\u793E\u4EA4\u5A92\u4F53\uFF0C\u94FE\u4E0A\u6E38\u620F\uFF0C\u90FD\u7531Solana\u7A0B\u5E8F\u6240\u9A71\u52A8\u3002",-1),g=t("h2",{id:"\u7EFC\u8FF0",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u7EFC\u8FF0","aria-hidden":"true"},"#"),e(" \u7EFC\u8FF0")],-1),b={class:"custom-container tip"},m=t("p",{class:"custom-container-title"},"\u8981\u70B9",-1),f=t("li",null,[e("\u7A0B\u5E8F\u53EF\u4EE5\u5904\u7406\u6765\u81EA\u7528\u6237\u548C\u5176\u4ED6\u7A0B\u5E8F\u7684"),t("a",{href:"./transactions"},"\u6307\u4EE4")],-1),k=e("\u6240\u6709\u7684\u7A0B\u5E8F\u90FD\u662F"),S=t("strong",null,"\u65E0\u72B6\u6001",-1),P=e("\u7684\uFF1A\u6240\u6709\u7684\u548C\u7A0B\u5E8F\u4EA4\u4E92\u7684\u6570\u636E\u90FD\u662F\u5B58\u50A8\u5728\u72EC\u7ACB\u7684"),y=e("\u8D26\u6237"),L=e("\u4E2D\u3002\u6267\u884C\u65F6\uFF0C\u8FD9\u4E9B\u8D26\u6237\u501F\u7531\u6307\u4EE4\u4F20\u5165\u7A0B\u5E8F"),v=t("li",null,[e("\u7A0B\u5E8F\u672C\u8EAB\u5B58\u50A8\u5728\u6807\u8BB0\u4E3A"),t("code",null,"executable"),e("\uFF08\u53EF\u6267\u884C\uFF09\u7684\u8D26\u6237\u4E2D\u3002")],-1),x=e("\u4EFB\u4F55\u7A0B\u5E8F\u7684\u6240\u6709\u8005\u90FD\u662F"),F={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},B=e("BPF Loader"),R=e(" and executed by the "),A={href:"https://docs.solana.com/developing/programming-model/runtime",target:"_blank",rel:"noopener noreferrer"},w=e("Solana Runtime"),E=e("\u5F00\u53D1\u8005\u901A\u5E38\u4F7F\u7528Rust\u6216C++\u6765\u7F16\u5199\u7A0B\u5E8F\uFF0C\u4E5F\u53EF\u4EE5\u91C7\u7528\u4EFB\u4F55\u5176\u4ED6\u53EF\u4EE5\u7F16\u8BD1\u4E3A"),T={href:"https://llvm.org/",target:"_blank",rel:"noopener noreferrer"},V=e("LLVM"),C=e("\u7684"),I={href:"https://en.wikipedia.org/wiki/Berkeley_Packet_Filter",target:"_blank",rel:"noopener noreferrer"},M=e("BPF"),N=e("\u540E\u7AEF\u7684\u8BED\u8A00"),D=r("
  • \u6240\u6709\u7684\u7A0B\u5E8F\u90FD\u6709\u4E00\u4E2A\u5355\u72EC\u7684\u5165\u53E3\u70B9\uFF0C\u6307\u4EE4\u7684\u6267\u884C\u5C31\u662F\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\uFF08\u4EA6\u5373process_instruction\uFF09\u3002\u53C2\u6570\u987B\u5305\u62EC\uFF1A
    • program_id: pubkey \uFF08\u516C\u94A5\uFF09
    • accounts: array \uFF08\u6570\u7EC4\uFF09
    • instruction_data: byte array \uFF08\u5B57\u8282\u6570\u7EC4\uFF09
  • ",1),j=t("h2",{id:"\u6DF1\u5165",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u6DF1\u5165","aria-hidden":"true"},"#"),e(" \u6DF1\u5165")],-1),U=t("p",null,'\u4E0E\u5176\u4ED6\u94FE\u4E0D\u540C\uFF0CSolana\u5C06\u4EE3\u7801\u4E0E\u6570\u636E\u5B8C\u5168\u5206\u5F00\u3002 \u7A0B\u5E8F\u9700\u8981\u8BBF\u95EE\u7684\u5168\u90E8\u6570\u636E\u90FD\u5B58\u50A8\u5728\u72EC\u7ACB\u7684\u8D26\u6237\u4E2D\uFF0C\u5728\u6307\u4EE4\u4E2D\u8FD9\u4E9B\u8D26\u6237\u9700\u8981\u4EE5\u5F15\u7528\u7684\u65B9\u5F0F\u4F20\u5165\u3002 \u8FD9\u79CD\u6A21\u5F0F\u4F7F\u5F97\u4E00\u4E2A\u901A\u7528\u7684\u7A0B\u5E8F\u53EF\u4EE5\u5728\u4E0D\u540C\u7684\u8D26\u6237\u4E0A\u8FD0\u884C\uFF0C\u800C\u4E0D\u7528\u4E3A\u6B64\u989D\u5916\u90E8\u7F72\u7A0B\u5E8F\u3002 \u8FD9\u79CD\u6A21\u5F0F\u7684\u4F8B\u5B50\u5F88\u5E38\u89C1\uFF0C\u5305\u62EC\u4E86"\u539F\u751F\u7A0B\u5E8F"\u4EE5\u53CA"SPL\u7A0B\u5E8F"\u7B49\u3002',-1),H=t("h3",{id:"\u539F\u751F\u7A0B\u5E8F\u548Csolana\u7A0B\u5E8F\u5E93-spl",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u539F\u751F\u7A0B\u5E8F\u548Csolana\u7A0B\u5E8F\u5E93-spl","aria-hidden":"true"},"#"),e(" \u539F\u751F\u7A0B\u5E8F\u548CSolana\u7A0B\u5E8F\u5E93\uFF08SPL\uFF09")],-1),O=e("Solana\u81EA\u5E26\u4E00\u7CFB\u5217\u7A0B\u5E8F\uFF0C\u8FD9\u4E9B\u7A0B\u5E8F\u662F\u94FE\u4E0A\u4EA4\u4E92\u7684\u6838\u5FC3\u6784\u6210\u8981\u7D20\u3002 \u8FD9\u4E9B\u7A0B\u5E8F\u5206\u4E3A"),z={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},G=e("\u539F\u751F\u7A0B\u5E8F"),J=e(" \u548C"),K={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},q=e("Solana\u7A0B\u5E8F\u5E93\uFF08SPL\u7A0B\u5E8F\uFF09"),Q=e("\u539F\u751F\u7A0B\u5E8F\u63D0\u4F9B\u4E86\u8FD0\u884C\u9A8C\u8BC1\u8282\u70B9\uFF08validator\uFF09\u6240\u9700\u7684\u529F\u80FD\u3002\u539F\u751F\u7A0B\u5E8F\u4E2D\u6700\u5E7F\u4E3A\u4EBA\u77E5\u7684\u662F"),W={href:"https://docs.solana.com/developing/runtime-facilities/programs#system-program",target:"_blank",rel:"noopener noreferrer"},X=e("System Program"),Y=e("\u3002 \u8FD9\u4E2A\u7A0B\u5E8F\u8D1F\u8D23\u7BA1\u7406\u5EFA\u7ACB\u65B0\u8D26\u6237\u4EE5\u53CA\u5728\u4E24\u4E2A\u8D26\u6237\u4E4B\u95F4\u8F6C\u8D26SOL\u3002"),Z=e("SPL\u7A0B\u5E8F\u5B9A\u4E49\u4E86\u4E00\u7CFB\u5217\u7684\u94FE\u4E0A\u6D3B\u52A8\uFF0C\u5176\u4E2D\u5305\u62EC\u9488\u5BF9\u4EE3\u5E01\u7684\u521B\u5EFA\uFF0C\u4EA4\u6362\uFF0C\u501F\u8D37\uFF0C\u4EE5\u53CA\u521B\u5EFA\u8D28\u62BC\u6C60\uFF0C\u7EF4\u62A4\u94FE\u4E0A\u57DF\u540D\u89E3\u6790\u670D\u52A1\u7B49\u3002 "),$={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},tt=e("SPL Token Program\uFF08SPL\u4EE3\u5E01\u7A0B\u5E8F\uFF09"),et=e("\u53EF\u4EE5\u76F4\u63A5\u5728\u547D\u4EE4\u884C\u8C03\u7528\uFF0C\u5176\u4ED6\u7684\u4E00\u4E9B\uFF0C\u5982 "),ot={href:"https://spl.solana.com/associated-token-account",target:"_blank",rel:"noopener noreferrer"},nt=e("Associated Token Account Program\uFF08\u5173\u8054\u4EE3\u5E01\u8D26\u6237\u7A0B\u5E8F\uFF09"),rt=e("\uFF0C \u5219\u5E38\u88AB\u7528\u4E8E\u7F16\u5199\u5176\u4ED6\u5B9A\u5236\u7A0B\u5E8F\u3002"),st=t("h3",{id:"\u7F16\u5199\u7A0B\u5E8F",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u7F16\u5199\u7A0B\u5E8F","aria-hidden":"true"},"#"),e(" \u7F16\u5199\u7A0B\u5E8F")],-1),at=e("\u7F16\u5199Solana\u7A0B\u5E8F\u5E38\u7528\u7684\u662FRust\u548CC++\uFF0C\u4F46\u662F\u4E5F\u53EF\u4EE5\u4F7F\u7528\u5176\u4ED6\u53EF\u4EE5\u7F16\u8BD1\u4E3ALLVM\u7684BPF\u540E\u7AEF\u7684\u8BED\u8A00\u3002 \u6700\u8FD1"),dt={href:"https://neon-labs.org/",target:"_blank",rel:"noopener noreferrer"},it=e("Neon Labs"),lt=e("\u548C"),ct={href:"https://solang.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"},_t=e("Solang"),ht=e("\u53D1\u8D77\u4E86\u4E00\u4E2A\u9879\u76EE\uFF0C \u65E8\u5728\u5EFA\u7ACBSolana\u7684"),pt={href:"https://ethereum.org/en/developers/docs/evm/",target:"_blank",rel:"noopener noreferrer"},ut=e("EVM"),gt=e("\u517C\u5BB9\u6027\uFF0C\u8FDB\u800C\u8BA9\u5F00\u53D1\u8005\u53EF\u4EE5\u4F7F\u7528Solidity\u7F16\u5199\u7A0B\u5E8F\u3002"),bt=r("

    \u5927\u90E8\u5206Rust\u7F16\u5199\u7684\u7A0B\u5E8F\u9075\u5FAA\u4EE5\u4E0B\u67B6\u6784\uFF1A

    \u6587\u4EF6\u63CF\u8FF0
    lib.rs\u6CE8\u518C\u6A21\u5757
    entrypoint.rs\u7A0B\u5E8F\u7684\u5165\u53E3\u70B9
    instruction.rs\u7A0B\u5E8F\u7684API, \u5BF9\u6307\u4EE4\u7684\u6570\u636E\u8FDB\u884C\u5E8F\u5217\u5316\u4E0E\u53CD\u5E8F\u5217\u5316
    processor.rs\u7A0B\u5E8F\u7684\u4E1A\u52A1\u903B\u8F91
    state.rs\u7A0B\u5E8F\u5BF9\u8C61\uFF0C\u5BF9\u72B6\u6001\u8FDB\u884C\u53CD\u5E8F\u5217\u5316
    error.rs\u7A0B\u5E8F\u4E2D\u5236\u5B9A\u7684\u9519\u8BEF
    ",2),mt=e("\u6700\u8FD1\uFF0C"),ft={href:"https://project-serum.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},kt=e("Anchor"),St=e("\u9010\u6E10\u6210\u4E3A\u4E86\u4E00\u4E2A\u5E7F\u53D7\u6B22\u8FCE\u7684Solana\u7A0B\u5E8F\u5F00\u53D1\u6846\u67B6\u3002 Anchor\u662F\u4E00\u4E2A\u6709\u6001\u5EA6\u7684\u6846\u67B6\uFF0C\u4E0ERuby on Rails\u76F8\u4F3C\uFF0C\u8FD9\u4E2A\u6846\u67B6\u65E8\u5728\u51CF\u5C11\u6A21\u5F0F\u5316\u7684\u4EE3\u7801\uFF0C\u5C06Rust\u5F00\u53D1\u6D41\u7A0B\u4E2D\u7684\u5E8F\u5217\u5316\u4E0E\u53CD\u5E8F\u5217\u5316\u8FC7\u7A0B\u6D41\u6C34\u7EBF\u5316\u3002"),Pt=r("

    \u5728\u90E8\u7F72\u5230Testnet\uFF08\u6D4B\u8BD5\u7F51\uFF09\u548CMainnet\uFF08\u4E3B\u7F51\uFF09\u4E4B\u524D\uFF0C\u7A0B\u5E8F\u5728\u5F00\u53D1\u548C\u6D4B\u8BD5\u9636\u6BB5\u7ECF\u5E38\u4F7F\u7528Localhost\u548CDevnet\uFF08\u5F00\u53D1\u7F51\uFF09\u73AF\u5883\u3002 Solana\u652F\u6301\u4EE5\u4E0B\u7684\u51E0\u4E2A\u73AF\u5883\uFF1A

    \u96C6\u7FA4\u73AF\u5883RPC\u8FDE\u63A5URL
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    Localhost\u9ED8\u8BA4\u7AEF\u53E3\uFF1A8899\uFF08\u4F8B\u5982\uFF0Chttp://localhost:8899\uFF0Chttp://192.168.1.88:8899\uFF09
    ",2),yt=e("\u90E8\u7F72\u5230\u4E00\u4E2A\u73AF\u5883\u4E4B\u540E\uFF0C\u5BA2\u6237\u7AEF\u5C31\u53EF\u4EE5\u901A\u8FC7\u5BF9\u5E94\u96C6\u7FA4\u7684"),Lt={href:"https://docs.solana.com/developing/clients/jsonrpc-api",target:"_blank",rel:"noopener noreferrer"},vt=e("RPC\u8FDE\u63A5"),xt=e("\u4E0E\u94FE\u4E0A\u7A0B\u5E8F\u8FDB\u884C\u4EA4\u4E92\u3002"),Ft=t("h3",{id:"\u90E8\u7F72\u7A0B\u5E8F",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u90E8\u7F72\u7A0B\u5E8F","aria-hidden":"true"},"#"),e(" \u90E8\u7F72\u7A0B\u5E8F")],-1),Bt=e("\u5F00\u53D1\u8005\u53EF\u4EE5\u4F7F\u7528"),Rt={href:"https://docs.solana.com/cli/deploy-a-program",target:"_blank",rel:"noopener noreferrer"},At=e("\u547D\u4EE4\u884C"),wt=e("\u90E8\u7F72\u7A0B\u5E8F\uFF1A"),Et=r(`
    solana program deploy <PROGRAM_FILEPATH>
    -
    `,1),Tt=e("\u90E8\u7F72\u7A0B\u5E8F\u7684\u65F6\u5019\uFF0C\u7A0B\u5E8F\u4F1A\u88AB\u7F16\u8BD1\u4E3A\u5305\u542BBPF\u5B57\u8282\u7801\u7684"),Vt={href:"https://en.wikipedia.org/wiki/Executable_and_Linkable_Format",target:"_blank",rel:"noopener noreferrer"},Ct=e("ELF\u5171\u4EAB\u5BF9\u8C61"),It=e("\uFF0C\u5E76\u4E0A\u4F20\u5230Solana\u96C6\u7FA4\u4E0A\u3002 \u548CSolana\u4E0A\u5176\u4ED6\u7684\u4EFB\u4F55\u4E1C\u897F\u4E00\u6837\uFF0C\u7A0B\u5E8F\u50A8\u5B58\u5728\u8D26\u6237\u5F53\u4E2D\u3002\u552F\u4E00\u7684\u7279\u6B8A\u4E4B\u5904\u662F\uFF0C\u8FD9\u4E9B\u8D26\u6237\u6807\u8BB0\u4E3A"),Mt=t("code",null,"executable",-1),Nt=e('\uFF08\u53EF\u6267\u884C\uFF09\uFF0C\u5E76\u4E14\u5176\u6240\u6709\u8005\u662F"BPF Loader\uFF08BPF\u52A0\u8F7D\u5668\uFF09"\u3002 \u8FD9\u4E2A\u8D26\u6237\u7684\u5730\u5740\u88AB\u79F0\u4E3A'),Dt=t("code",null,"program_id",-1),jt=e("\uFF0C\u5728\u540E\u9762\u7684\u4E00\u5207\u4EA4\u6613\u5F53\u4E2D\uFF0C\u7528\u4E8E\u6307\u4EE3\u8FD9\u4E2A\u7A0B\u5E8F\u3002"),Ut=e("Solana\u652F\u6301\u591A\u79CDBPF\u52A0\u8F7D\u5668\uFF0C\u6700\u65B0\u7684\u662F"),Ht={href:"https://explorer.solana.com/address/BPFLoaderUpgradeab1e11111111111111111111111",target:"_blank",rel:"noopener noreferrer"},Ot=e("Upgradable BPF Loader"),zt=e("\u3002 BPF\u52A0\u8F7D\u5668\u8D1F\u8D23\u7BA1\u7406\u7A0B\u5E8F\u8D26\u6237\uFF0C\u8BA9\u5BA2\u6237\u7AEF\u53EF\u4EE5\u901A\u8FC7\u5176"),Gt=t("code",null,"program_id",-1),Jt=e("\u5BF9\u7A0B\u5E8F\u8FDB\u884C\u8BBF\u95EE\u3002\u6BCF\u4E2A\u7A0B\u5E8F\u90FD\u53EA\u6709\u4E00\u4E2A\u5165\u53E3\u70B9\uFF0C\u8FD9\u91CC\u5BF9\u6307\u4EE4\u8FDB\u884C\u5904\u7406\u3002\u8FD9\u91CC\u7684\u53C2\u6570\u987B\u5305\u62EC\uFF1A"),Kt=r('
    • program_id: pubkey\uFF08\u516C\u94A5\uFF09
    • accounts: array\uFF08\u6570\u7EC4\uFF09
    • instruction_data: byte array\uFF08\u5B57\u8282\u6570\u7EC4\uFF09

    \u5F53\u7A0B\u5E8F\u88AB\u8C03\u7528\u65F6\uFF0C\u4F1A\u5728Solana\u8FD0\u884C\u5E93\u4E2D\u88AB\u6267\u884C\u3002

    \u5176\u4ED6\u8D44\u6599

    ',3),qt={href:"https://docs.solana.com/developing/on-chain-programs/overview",target:"_blank",rel:"noopener noreferrer"},Qt=e("\u5B98\u65B9\u6587\u6863"),Wt={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},Xt=e("SPL\u6587\u6863"),Yt={href:"https://jstarry.notion.site/Program-deploys-29780c48794c47308d5f138074dd9838",target:"_blank",rel:"noopener noreferrer"},Zt=e("Program Deploys by Justin Starry"),$t={href:"https://hackmd.io/@ironaddicteddog/solana-starter-kit",target:"_blank",rel:"noopener noreferrer"},te=e("Solana Starter Kit by Iron Addicted Dog"),ee={href:"https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/",target:"_blank",rel:"noopener noreferrer"},oe=e("Programming on Solana by Paulx"),ne={href:"https://2501babe.github.io/posts/solana101.html",target:"_blank",rel:"noopener noreferrer"},re=e("An Introduction to the Solana Blockchain by Hana"),se={href:"https://project-serum.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},ae=e("Anchor");function de(ie,le){const a=s("RouterLink"),n=s("ExternalLinkIcon");return i(),l(_,null,[p,u,g,t("div",b,[m,t("ul",null,[f,t("li",null,[k,S,P,o(a,{to:"/zh/core-concepts/accounts.html"},{default:c(()=>[y]),_:1}),L]),v,t("li",null,[x,t("a",F,[B,o(n)]),R,t("a",A,[w,o(n)])]),t("li",null,[E,t("a",T,[V,o(n)]),C,t("a",I,[M,o(n)]),N]),D])]),j,U,H,t("p",null,[O,t("a",z,[G,o(n)]),J,t("a",K,[q,o(n)])]),t("p",null,[Q,t("a",W,[X,o(n)]),Y]),t("p",null,[Z,t("a",$,[tt,o(n)]),et,t("a",ot,[nt,o(n)]),rt]),st,t("p",null,[at,t("a",dt,[it,o(n)]),lt,t("a",ct,[_t,o(n)]),ht,t("a",pt,[ut,o(n)]),gt]),bt,t("p",null,[mt,t("a",ft,[kt,o(n)]),St]),Pt,t("p",null,[yt,t("a",Lt,[vt,o(n)]),xt]),Ft,t("p",null,[Bt,t("a",Rt,[At,o(n)]),wt]),Et,t("p",null,[Tt,t("a",Vt,[Ct,o(n)]),It,Mt,Nt,Dt,jt]),t("p",null,[Ut,t("a",Ht,[Ot,o(n)]),zt,Gt,Jt]),Kt,t("ul",null,[t("li",null,[t("a",qt,[Qt,o(n)])]),t("li",null,[t("a",Wt,[Xt,o(n)])]),t("li",null,[t("a",Yt,[Zt,o(n)])]),t("li",null,[t("a",$t,[te,o(n)])]),t("li",null,[t("a",ee,[oe,o(n)])]),t("li",null,[t("a",ne,[re,o(n)])]),t("li",null,[t("a",se,[ae,o(n)])])])],64)}var _e=d(h,[["render",de]]);export{_e as default}; +import{_ as d,r as s,o as i,c as l,a as t,b as o,w as c,F as _,d as e,e as r}from"./app.55b1b60c.js";const h={},p=t("h1",{id:"\u7A0B\u5E8F",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u7A0B\u5E8F","aria-hidden":"true"},"#"),e(" \u7A0B\u5E8F")],-1),u=t("p",null,"\u4EFB\u4F55\u5F00\u53D1\u8005\u90FD\u53EF\u4EE5\u5728Solana\u94FE\u4E0A\u7F16\u5199\u4EE5\u53CA\u90E8\u7F72\u7A0B\u5E8F\u3002Solana\u7A0B\u5E8F\uFF08\u5728\u5176\u4ED6\u94FE\u4E0A\u53EB\u505A\u667A\u80FD\u5408\u7EA6\uFF09\uFF0C\u662F\u6240\u6709\u94FE\u4E0A\u6D3B\u52A8\u7684\u57FA\u7840\u3002 \u94FE\u4E0A\u7684\u4E00\u5207\u6D3B\u52A8\uFF0C\u4ECE\u53BB\u4E2D\u5FC3\u5316\u91D1\u878D\uFF08DeFi\uFF09\uFF0C\u5230\u975E\u540C\u8D28\u5316\u4EE3\u5E01\uFF08NFT\uFF09\uFF0C\u518D\u5230\u793E\u4EA4\u5A92\u4F53\uFF0C\u94FE\u4E0A\u6E38\u620F\uFF0C\u90FD\u7531Solana\u7A0B\u5E8F\u6240\u9A71\u52A8\u3002",-1),g=t("h2",{id:"\u7EFC\u8FF0",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u7EFC\u8FF0","aria-hidden":"true"},"#"),e(" \u7EFC\u8FF0")],-1),b={class:"custom-container tip"},m=t("p",{class:"custom-container-title"},"\u8981\u70B9",-1),f=t("li",null,[e("\u7A0B\u5E8F\u53EF\u4EE5\u5904\u7406\u6765\u81EA\u7528\u6237\u548C\u5176\u4ED6\u7A0B\u5E8F\u7684"),t("a",{href:"./transactions"},"\u6307\u4EE4")],-1),k=e("\u6240\u6709\u7684\u7A0B\u5E8F\u90FD\u662F"),S=t("strong",null,"\u65E0\u72B6\u6001",-1),P=e("\u7684\uFF1A\u6240\u6709\u7684\u548C\u7A0B\u5E8F\u4EA4\u4E92\u7684\u6570\u636E\u90FD\u662F\u5B58\u50A8\u5728\u72EC\u7ACB\u7684"),y=e("\u8D26\u6237"),L=e("\u4E2D\u3002\u6267\u884C\u65F6\uFF0C\u8FD9\u4E9B\u8D26\u6237\u501F\u7531\u6307\u4EE4\u4F20\u5165\u7A0B\u5E8F"),v=t("li",null,[e("\u7A0B\u5E8F\u672C\u8EAB\u5B58\u50A8\u5728\u6807\u8BB0\u4E3A"),t("code",null,"executable"),e("\uFF08\u53EF\u6267\u884C\uFF09\u7684\u8D26\u6237\u4E2D\u3002")],-1),x=e("\u4EFB\u4F55\u7A0B\u5E8F\u7684\u6240\u6709\u8005\u90FD\u662F"),F={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},B=e("BPF Loader"),R=e(" and executed by the "),A={href:"https://docs.solana.com/developing/programming-model/runtime",target:"_blank",rel:"noopener noreferrer"},w=e("Solana Runtime"),E=e("\u5F00\u53D1\u8005\u901A\u5E38\u4F7F\u7528Rust\u6216C++\u6765\u7F16\u5199\u7A0B\u5E8F\uFF0C\u4E5F\u53EF\u4EE5\u91C7\u7528\u4EFB\u4F55\u5176\u4ED6\u53EF\u4EE5\u7F16\u8BD1\u4E3A"),T={href:"https://llvm.org/",target:"_blank",rel:"noopener noreferrer"},V=e("LLVM"),C=e("\u7684"),I={href:"https://en.wikipedia.org/wiki/Berkeley_Packet_Filter",target:"_blank",rel:"noopener noreferrer"},M=e("BPF"),N=e("\u540E\u7AEF\u7684\u8BED\u8A00"),D=r("
  • \u6240\u6709\u7684\u7A0B\u5E8F\u90FD\u6709\u4E00\u4E2A\u5355\u72EC\u7684\u5165\u53E3\u70B9\uFF0C\u6307\u4EE4\u7684\u6267\u884C\u5C31\u662F\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\uFF08\u4EA6\u5373process_instruction\uFF09\u3002\u53C2\u6570\u987B\u5305\u62EC\uFF1A
    • program_id: pubkey \uFF08\u516C\u94A5\uFF09
    • accounts: array \uFF08\u6570\u7EC4\uFF09
    • instruction_data: byte array \uFF08\u5B57\u8282\u6570\u7EC4\uFF09
  • ",1),j=t("h2",{id:"\u6DF1\u5165",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u6DF1\u5165","aria-hidden":"true"},"#"),e(" \u6DF1\u5165")],-1),U=t("p",null,'\u4E0E\u5176\u4ED6\u94FE\u4E0D\u540C\uFF0CSolana\u5C06\u4EE3\u7801\u4E0E\u6570\u636E\u5B8C\u5168\u5206\u5F00\u3002 \u7A0B\u5E8F\u9700\u8981\u8BBF\u95EE\u7684\u5168\u90E8\u6570\u636E\u90FD\u5B58\u50A8\u5728\u72EC\u7ACB\u7684\u8D26\u6237\u4E2D\uFF0C\u5728\u6307\u4EE4\u4E2D\u8FD9\u4E9B\u8D26\u6237\u9700\u8981\u4EE5\u5F15\u7528\u7684\u65B9\u5F0F\u4F20\u5165\u3002 \u8FD9\u79CD\u6A21\u5F0F\u4F7F\u5F97\u4E00\u4E2A\u901A\u7528\u7684\u7A0B\u5E8F\u53EF\u4EE5\u5728\u4E0D\u540C\u7684\u8D26\u6237\u4E0A\u8FD0\u884C\uFF0C\u800C\u4E0D\u7528\u4E3A\u6B64\u989D\u5916\u90E8\u7F72\u7A0B\u5E8F\u3002 \u8FD9\u79CD\u6A21\u5F0F\u7684\u4F8B\u5B50\u5F88\u5E38\u89C1\uFF0C\u5305\u62EC\u4E86"\u539F\u751F\u7A0B\u5E8F"\u4EE5\u53CA"SPL\u7A0B\u5E8F"\u7B49\u3002',-1),H=t("h3",{id:"\u539F\u751F\u7A0B\u5E8F\u548Csolana\u7A0B\u5E8F\u5E93-spl",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u539F\u751F\u7A0B\u5E8F\u548Csolana\u7A0B\u5E8F\u5E93-spl","aria-hidden":"true"},"#"),e(" \u539F\u751F\u7A0B\u5E8F\u548CSolana\u7A0B\u5E8F\u5E93\uFF08SPL\uFF09")],-1),O=e("Solana\u81EA\u5E26\u4E00\u7CFB\u5217\u7A0B\u5E8F\uFF0C\u8FD9\u4E9B\u7A0B\u5E8F\u662F\u94FE\u4E0A\u4EA4\u4E92\u7684\u6838\u5FC3\u6784\u6210\u8981\u7D20\u3002 \u8FD9\u4E9B\u7A0B\u5E8F\u5206\u4E3A"),z={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},G=e("\u539F\u751F\u7A0B\u5E8F"),J=e(" \u548C"),K={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},q=e("Solana\u7A0B\u5E8F\u5E93\uFF08SPL\u7A0B\u5E8F\uFF09"),Q=e("\u539F\u751F\u7A0B\u5E8F\u63D0\u4F9B\u4E86\u8FD0\u884C\u9A8C\u8BC1\u8282\u70B9\uFF08validator\uFF09\u6240\u9700\u7684\u529F\u80FD\u3002\u539F\u751F\u7A0B\u5E8F\u4E2D\u6700\u5E7F\u4E3A\u4EBA\u77E5\u7684\u662F"),W={href:"https://docs.solana.com/developing/runtime-facilities/programs#system-program",target:"_blank",rel:"noopener noreferrer"},X=e("System Program"),Y=e("\u3002 \u8FD9\u4E2A\u7A0B\u5E8F\u8D1F\u8D23\u7BA1\u7406\u5EFA\u7ACB\u65B0\u8D26\u6237\u4EE5\u53CA\u5728\u4E24\u4E2A\u8D26\u6237\u4E4B\u95F4\u8F6C\u8D26SOL\u3002"),Z=e("SPL\u7A0B\u5E8F\u5B9A\u4E49\u4E86\u4E00\u7CFB\u5217\u7684\u94FE\u4E0A\u6D3B\u52A8\uFF0C\u5176\u4E2D\u5305\u62EC\u9488\u5BF9\u4EE3\u5E01\u7684\u521B\u5EFA\uFF0C\u4EA4\u6362\uFF0C\u501F\u8D37\uFF0C\u4EE5\u53CA\u521B\u5EFA\u8D28\u62BC\u6C60\uFF0C\u7EF4\u62A4\u94FE\u4E0A\u57DF\u540D\u89E3\u6790\u670D\u52A1\u7B49\u3002 "),$={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},tt=e("SPL Token Program\uFF08SPL\u4EE3\u5E01\u7A0B\u5E8F\uFF09"),et=e("\u53EF\u4EE5\u76F4\u63A5\u5728\u547D\u4EE4\u884C\u8C03\u7528\uFF0C\u5176\u4ED6\u7684\u4E00\u4E9B\uFF0C\u5982 "),ot={href:"https://spl.solana.com/associated-token-account",target:"_blank",rel:"noopener noreferrer"},nt=e("Associated Token Account Program\uFF08\u5173\u8054\u4EE3\u5E01\u8D26\u6237\u7A0B\u5E8F\uFF09"),rt=e("\uFF0C \u5219\u5E38\u88AB\u7528\u4E8E\u7F16\u5199\u5176\u4ED6\u5B9A\u5236\u7A0B\u5E8F\u3002"),st=t("h3",{id:"\u7F16\u5199\u7A0B\u5E8F",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u7F16\u5199\u7A0B\u5E8F","aria-hidden":"true"},"#"),e(" \u7F16\u5199\u7A0B\u5E8F")],-1),at=e("\u7F16\u5199Solana\u7A0B\u5E8F\u5E38\u7528\u7684\u662FRust\u548CC++\uFF0C\u4F46\u662F\u4E5F\u53EF\u4EE5\u4F7F\u7528\u5176\u4ED6\u53EF\u4EE5\u7F16\u8BD1\u4E3ALLVM\u7684BPF\u540E\u7AEF\u7684\u8BED\u8A00\u3002 \u6700\u8FD1"),dt={href:"https://neon-labs.org/",target:"_blank",rel:"noopener noreferrer"},it=e("Neon Labs"),lt=e("\u548C"),ct={href:"https://solang.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"},_t=e("Solang"),ht=e("\u53D1\u8D77\u4E86\u4E00\u4E2A\u9879\u76EE\uFF0C \u65E8\u5728\u5EFA\u7ACBSolana\u7684"),pt={href:"https://ethereum.org/en/developers/docs/evm/",target:"_blank",rel:"noopener noreferrer"},ut=e("EVM"),gt=e("\u517C\u5BB9\u6027\uFF0C\u8FDB\u800C\u8BA9\u5F00\u53D1\u8005\u53EF\u4EE5\u4F7F\u7528Solidity\u7F16\u5199\u7A0B\u5E8F\u3002"),bt=r("

    \u5927\u90E8\u5206Rust\u7F16\u5199\u7684\u7A0B\u5E8F\u9075\u5FAA\u4EE5\u4E0B\u67B6\u6784\uFF1A

    \u6587\u4EF6\u63CF\u8FF0
    lib.rs\u6CE8\u518C\u6A21\u5757
    entrypoint.rs\u7A0B\u5E8F\u7684\u5165\u53E3\u70B9
    instruction.rs\u7A0B\u5E8F\u7684API, \u5BF9\u6307\u4EE4\u7684\u6570\u636E\u8FDB\u884C\u5E8F\u5217\u5316\u4E0E\u53CD\u5E8F\u5217\u5316
    processor.rs\u7A0B\u5E8F\u7684\u4E1A\u52A1\u903B\u8F91
    state.rs\u7A0B\u5E8F\u5BF9\u8C61\uFF0C\u5BF9\u72B6\u6001\u8FDB\u884C\u53CD\u5E8F\u5217\u5316
    error.rs\u7A0B\u5E8F\u4E2D\u5236\u5B9A\u7684\u9519\u8BEF
    ",2),mt=e("\u6700\u8FD1\uFF0C"),ft={href:"https://project-OpenBook.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},kt=e("Anchor"),St=e("\u9010\u6E10\u6210\u4E3A\u4E86\u4E00\u4E2A\u5E7F\u53D7\u6B22\u8FCE\u7684Solana\u7A0B\u5E8F\u5F00\u53D1\u6846\u67B6\u3002 Anchor\u662F\u4E00\u4E2A\u6709\u6001\u5EA6\u7684\u6846\u67B6\uFF0C\u4E0ERuby on Rails\u76F8\u4F3C\uFF0C\u8FD9\u4E2A\u6846\u67B6\u65E8\u5728\u51CF\u5C11\u6A21\u5F0F\u5316\u7684\u4EE3\u7801\uFF0C\u5C06Rust\u5F00\u53D1\u6D41\u7A0B\u4E2D\u7684\u5E8F\u5217\u5316\u4E0E\u53CD\u5E8F\u5217\u5316\u8FC7\u7A0B\u6D41\u6C34\u7EBF\u5316\u3002"),Pt=r("

    \u5728\u90E8\u7F72\u5230Testnet\uFF08\u6D4B\u8BD5\u7F51\uFF09\u548CMainnet\uFF08\u4E3B\u7F51\uFF09\u4E4B\u524D\uFF0C\u7A0B\u5E8F\u5728\u5F00\u53D1\u548C\u6D4B\u8BD5\u9636\u6BB5\u7ECF\u5E38\u4F7F\u7528Localhost\u548CDevnet\uFF08\u5F00\u53D1\u7F51\uFF09\u73AF\u5883\u3002 Solana\u652F\u6301\u4EE5\u4E0B\u7684\u51E0\u4E2A\u73AF\u5883\uFF1A

    \u96C6\u7FA4\u73AF\u5883RPC\u8FDE\u63A5URL
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    Localhost\u9ED8\u8BA4\u7AEF\u53E3\uFF1A8899\uFF08\u4F8B\u5982\uFF0Chttp://localhost:8899\uFF0Chttp://192.168.1.88:8899\uFF09
    ",2),yt=e("\u90E8\u7F72\u5230\u4E00\u4E2A\u73AF\u5883\u4E4B\u540E\uFF0C\u5BA2\u6237\u7AEF\u5C31\u53EF\u4EE5\u901A\u8FC7\u5BF9\u5E94\u96C6\u7FA4\u7684"),Lt={href:"https://docs.solana.com/developing/clients/jsonrpc-api",target:"_blank",rel:"noopener noreferrer"},vt=e("RPC\u8FDE\u63A5"),xt=e("\u4E0E\u94FE\u4E0A\u7A0B\u5E8F\u8FDB\u884C\u4EA4\u4E92\u3002"),Ft=t("h3",{id:"\u90E8\u7F72\u7A0B\u5E8F",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#\u90E8\u7F72\u7A0B\u5E8F","aria-hidden":"true"},"#"),e(" \u90E8\u7F72\u7A0B\u5E8F")],-1),Bt=e("\u5F00\u53D1\u8005\u53EF\u4EE5\u4F7F\u7528"),Rt={href:"https://docs.solana.com/cli/deploy-a-program",target:"_blank",rel:"noopener noreferrer"},At=e("\u547D\u4EE4\u884C"),wt=e("\u90E8\u7F72\u7A0B\u5E8F\uFF1A"),Et=r(`
    solana program deploy <PROGRAM_FILEPATH>
    +
    `,1),Tt=e("\u90E8\u7F72\u7A0B\u5E8F\u7684\u65F6\u5019\uFF0C\u7A0B\u5E8F\u4F1A\u88AB\u7F16\u8BD1\u4E3A\u5305\u542BBPF\u5B57\u8282\u7801\u7684"),Vt={href:"https://en.wikipedia.org/wiki/Executable_and_Linkable_Format",target:"_blank",rel:"noopener noreferrer"},Ct=e("ELF\u5171\u4EAB\u5BF9\u8C61"),It=e("\uFF0C\u5E76\u4E0A\u4F20\u5230Solana\u96C6\u7FA4\u4E0A\u3002 \u548CSolana\u4E0A\u5176\u4ED6\u7684\u4EFB\u4F55\u4E1C\u897F\u4E00\u6837\uFF0C\u7A0B\u5E8F\u50A8\u5B58\u5728\u8D26\u6237\u5F53\u4E2D\u3002\u552F\u4E00\u7684\u7279\u6B8A\u4E4B\u5904\u662F\uFF0C\u8FD9\u4E9B\u8D26\u6237\u6807\u8BB0\u4E3A"),Mt=t("code",null,"executable",-1),Nt=e('\uFF08\u53EF\u6267\u884C\uFF09\uFF0C\u5E76\u4E14\u5176\u6240\u6709\u8005\u662F"BPF Loader\uFF08BPF\u52A0\u8F7D\u5668\uFF09"\u3002 \u8FD9\u4E2A\u8D26\u6237\u7684\u5730\u5740\u88AB\u79F0\u4E3A'),Dt=t("code",null,"program_id",-1),jt=e("\uFF0C\u5728\u540E\u9762\u7684\u4E00\u5207\u4EA4\u6613\u5F53\u4E2D\uFF0C\u7528\u4E8E\u6307\u4EE3\u8FD9\u4E2A\u7A0B\u5E8F\u3002"),Ut=e("Solana\u652F\u6301\u591A\u79CDBPF\u52A0\u8F7D\u5668\uFF0C\u6700\u65B0\u7684\u662F"),Ht={href:"https://explorer.solana.com/address/BPFLoaderUpgradeab1e11111111111111111111111",target:"_blank",rel:"noopener noreferrer"},Ot=e("Upgradable BPF Loader"),zt=e("\u3002 BPF\u52A0\u8F7D\u5668\u8D1F\u8D23\u7BA1\u7406\u7A0B\u5E8F\u8D26\u6237\uFF0C\u8BA9\u5BA2\u6237\u7AEF\u53EF\u4EE5\u901A\u8FC7\u5176"),Gt=t("code",null,"program_id",-1),Jt=e("\u5BF9\u7A0B\u5E8F\u8FDB\u884C\u8BBF\u95EE\u3002\u6BCF\u4E2A\u7A0B\u5E8F\u90FD\u53EA\u6709\u4E00\u4E2A\u5165\u53E3\u70B9\uFF0C\u8FD9\u91CC\u5BF9\u6307\u4EE4\u8FDB\u884C\u5904\u7406\u3002\u8FD9\u91CC\u7684\u53C2\u6570\u987B\u5305\u62EC\uFF1A"),Kt=r('
    • program_id: pubkey\uFF08\u516C\u94A5\uFF09
    • accounts: array\uFF08\u6570\u7EC4\uFF09
    • instruction_data: byte array\uFF08\u5B57\u8282\u6570\u7EC4\uFF09

    \u5F53\u7A0B\u5E8F\u88AB\u8C03\u7528\u65F6\uFF0C\u4F1A\u5728Solana\u8FD0\u884C\u5E93\u4E2D\u88AB\u6267\u884C\u3002

    \u5176\u4ED6\u8D44\u6599

    ',3),qt={href:"https://docs.solana.com/developing/on-chain-programs/overview",target:"_blank",rel:"noopener noreferrer"},Qt=e("\u5B98\u65B9\u6587\u6863"),Wt={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},Xt=e("SPL\u6587\u6863"),Yt={href:"https://jstarry.notion.site/Program-deploys-29780c48794c47308d5f138074dd9838",target:"_blank",rel:"noopener noreferrer"},Zt=e("Program Deploys by Justin Starry"),$t={href:"https://hackmd.io/@ironaddicteddog/solana-starter-kit",target:"_blank",rel:"noopener noreferrer"},te=e("Solana Starter Kit by Iron Addicted Dog"),ee={href:"https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/",target:"_blank",rel:"noopener noreferrer"},oe=e("Programming on Solana by Paulx"),ne={href:"https://2501babe.github.io/posts/solana101.html",target:"_blank",rel:"noopener noreferrer"},re=e("An Introduction to the Solana Blockchain by Hana"),se={href:"https://project-OpenBook.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},ae=e("Anchor");function de(ie,le){const a=s("RouterLink"),n=s("ExternalLinkIcon");return i(),l(_,null,[p,u,g,t("div",b,[m,t("ul",null,[f,t("li",null,[k,S,P,o(a,{to:"/zh/core-concepts/accounts.html"},{default:c(()=>[y]),_:1}),L]),v,t("li",null,[x,t("a",F,[B,o(n)]),R,t("a",A,[w,o(n)])]),t("li",null,[E,t("a",T,[V,o(n)]),C,t("a",I,[M,o(n)]),N]),D])]),j,U,H,t("p",null,[O,t("a",z,[G,o(n)]),J,t("a",K,[q,o(n)])]),t("p",null,[Q,t("a",W,[X,o(n)]),Y]),t("p",null,[Z,t("a",$,[tt,o(n)]),et,t("a",ot,[nt,o(n)]),rt]),st,t("p",null,[at,t("a",dt,[it,o(n)]),lt,t("a",ct,[_t,o(n)]),ht,t("a",pt,[ut,o(n)]),gt]),bt,t("p",null,[mt,t("a",ft,[kt,o(n)]),St]),Pt,t("p",null,[yt,t("a",Lt,[vt,o(n)]),xt]),Ft,t("p",null,[Bt,t("a",Rt,[At,o(n)]),wt]),Et,t("p",null,[Tt,t("a",Vt,[Ct,o(n)]),It,Mt,Nt,Dt,jt]),t("p",null,[Ut,t("a",Ht,[Ot,o(n)]),zt,Gt,Jt]),Kt,t("ul",null,[t("li",null,[t("a",qt,[Qt,o(n)])]),t("li",null,[t("a",Wt,[Xt,o(n)])]),t("li",null,[t("a",Yt,[Zt,o(n)])]),t("li",null,[t("a",$t,[te,o(n)])]),t("li",null,[t("a",ee,[oe,o(n)])]),t("li",null,[t("a",ne,[re,o(n)])]),t("li",null,[t("a",se,[ae,o(n)])])])],64)}var _e=d(h,[["render",de]]);export{_e as default}; diff --git a/docs/.vuepress/dist/assets/programs.html.f8f8f4bb.js b/docs/.vuepress/dist/assets/programs.html.f8f8f4bb.js index 0a3e473e5..daa393f48 100644 --- a/docs/.vuepress/dist/assets/programs.html.f8f8f4bb.js +++ b/docs/.vuepress/dist/assets/programs.html.f8f8f4bb.js @@ -1,2 +1,2 @@ -import{_ as d,r as t,o as i,c as l,a as e,b as a,w as c,F as p,d as o,e as r}from"./app.55b1b60c.js";const _={},h=e("h1",{id:"programas",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#programas","aria-hidden":"true"},"#"),o(" Programas")],-1),u=e("p",null,"Cualquier desarrollador puede escribir e implementar programas en la cadena de bloques de Solana. Los programas (conocidos como contratos inteligentes en otros protocolos) sirven como base para la actividad dentro de la cadena de bloques, potenciando desde DeFi y NFTs hasta redes sociales y juegos.",-1),m=e("h2",{id:"hechos",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hechos","aria-hidden":"true"},"#"),o(" Hechos")],-1),g={class:"custom-container tip"},b=e("p",{class:"custom-container-title"},"Hoja de hechos",-1),f=e("li",null,[o("Los programas procesan "),e("a",{href:"./transactions"},"instrucciones"),o(" de otros programas y de usuarios finales")],-1),k=o("Todos los programas son "),v=e("em",null,"stateless",-1),y=o(" (sin estado): Los datos con los que interact\xFAan son almacenados en "),L=o("cuentas"),P=o(" que son enviadas al programa en instrucciones"),q=e("li",null,[o("Los mismos programas son almacenadas en cuentas marcadas como "),e("code",null,"executable"),o(" (ejecutables)")],-1),x=o("El due\xF1o de todos los programas es "),S={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},F=o("BPF Loader"),E=o(" y es ejectuado por el "),R={href:"https://docs.solana.com/developing/programming-model/runtime",target:"_blank",rel:"noopener noreferrer"},j=o("Runtime de Solana"),B=o("Los programadores comunmente utilizan Rust y C++ para escribir programas, pero pueden elegir cualquier lenguaje que compile con el backend de "),C={href:"https://en.wikipedia.org/wiki/Berkeley_Packet_Filter",target:"_blank",rel:"noopener noreferrer"},T=o("BPF"),z=o(" para "),A={href:"https://llvm.org/",target:"_blank",rel:"noopener noreferrer"},D=o("LLVM"),w=r("
  • Todos los programas tienen un punto \xFAnico de entrada donde se procesan las instrucciones (i.e. process_instruction); los par\xE1metros siempre incluyen:
    • program_id: pubkey
    • accounts: array,
    • instruction_data: byte array
  • ",1),I=e("h2",{id:"un-vistazo-mas-profundo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#un-vistazo-mas-profundo","aria-hidden":"true"},"#"),o(" Un vistazo m\xE1s profundo")],-1),U=e("p",null,"A diferencia de la mayor\xEDa de cadenas de bloques, Solana separa completamente el c\xF3digo de los datos. Todos los datos con los que interact\xFAan los programas se almacenan en cuentas separadas y se env\xEDan a trav\xE9s de instrucciones. Este modelo permite que un \xFAnico programa gen\xE9rico funcione en varias cuentas sin necesidad de implementaciones adicionales. Se ven ejemplos comunes de este patr\xF3n en los programas nativos y SPL.",-1),V=e("h3",{id:"programas-nativos-la-libreria-de-programas-de-solana-spl",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#programas-nativos-la-libreria-de-programas-de-solana-spl","aria-hidden":"true"},"#"),o(" Programas nativos & La librer\xEDa de Programas de Solana (SPL)")],-1),M=o("Solana viene equipado con programas que sirven como bloques de construcci\xF3n para interactuar con la cadena de bloques. Estos programas est\xE1n dividos en "),N={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},H=o("Programas nativos"),O=o(" y "),G={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},J=o("Programas de la librer\xEDa de programas (SPL)"),K=o("."),Q=o("Los programas nativos brindan la funcionalidad base que es requerida para operar validadores. Entre estos programas el m\xE1s conocido es el "),W={href:"https://docs.solana.com/developing/runtime-facilities/programs#system-program",target:"_blank",rel:"noopener noreferrer"},X=o("Programa del sistema (System Program)"),Y=o(" que es responsable de administrar las cuentas y transferir SOL."),Z=o("Los programas de la librer\xEDa de programas soportan otras actividades dentro de la cadena de bloques como crear tokens, intercambiarlos, prestar tokens, as\xED como generar pools de staking y mantener el servicio de nombres dentro de la cadena de bloques. El "),$={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},ee=o("Programa de Token (SPL Token Program)"),oe=o(" puede ser invocado directamente desde el CLI (Command Line Interface), mientras que otros como el "),ae={href:"https://spl.solana.com/associated-token-account",target:"_blank",rel:"noopener noreferrer"},se=o("Programa de cuentas asociadas a token (Associated Token Account Program)"),re=o(" son usados dentro de otros programas."),te=e("h3",{id:"escribiendo-programas",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#escribiendo-programas","aria-hidden":"true"},"#"),o(" Escribiendo programas")],-1),ne=o("Los Programas est\xE1n escritos comunmente en Rust o C++, pero pueden ser desarrollado con cualquier lenguaje que compile al backend BPF de LLVM. Iniciativas recientes de "),de={href:"https://neon-labs.org/",target:"_blank",rel:"noopener noreferrer"},ie=o("Neon Labs"),le=o(" y "),ce={href:"https://solang.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"},pe=o("Solang"),_e=o(" habilitan la compatibilidad con "),he={href:"https://ethereum.org/en/developers/docs/evm/",target:"_blank",rel:"noopener noreferrer"},ue=o("EVM"),me=o(" para permitir a desarrolladores escribir programas con Solidity."),ge=r("

    La mayor\xEDa de programas de Rust siguen la siguiente arquitectura:

    ArcguviDescripci\xF3n
    lib.rsRegistro de m\xF3dulos
    entrypoint.rsPunto de entrada para el programa
    instruction.rsAPI del programa, deserializa las instrucciones
    processor.rsL\xF3gica del programa
    state.rsObjetos del programa, deserializa el estado
    error.rsErrores espec\xEDficos del programa
    ",2),be=o("Recientemente, "),fe={href:"https://project-serum.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},ke=o("Anchor"),ve=o(" se ha convertido en el framework m\xE1s popular para desarrollar programas. Anchor es un framework que reduce el boilerplate y facilita la deserializaci\xF3n para los programas desarrollados en Rust."),ye=r("

    Los programas normalmente son desarrollados y testeados en los entornos Localhost y Devnet antes de ser desplegados a Testnet y Mainnet. Solana soporta los siguientes entornos:

    Entorno del clusterURL de conexi\xF3n RPC
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    LocalhostDefault port: 8899 (e.g. http://localhost:8899, http://192.168.1.88:8899)
    ",2),Le=o("Una vez desplegado a un entorno, los clientes pueden interactuar con el programa dentro de la cadena de bloques utilizando "),Pe={href:"https://docs.solana.com/developing/clients/jsonrpc-api",target:"_blank",rel:"noopener noreferrer"},qe=o("Conexiones RPC"),xe=o(" apuntando al cluster correspondiente."),Se=e("h3",{id:"desplegando-programas",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#desplegando-programas","aria-hidden":"true"},"#"),o(" Desplegando Programas")],-1),Fe=o("Los desarrolladores pueden desplegar sus programas utilizando el "),Ee={href:"https://docs.solana.com/cli/deploy-a-program",target:"_blank",rel:"noopener noreferrer"},Re=o("CLI"),je=o(":"),Be=r(`
    solana program deploy <PROGRAM_FILEPATH>
    -
    `,1),Ce=o("Cuando un programa es desplegado, es compilado a un "),Te={href:"https://en.wikipedia.org/wiki/Executable_and_Linkable_Format",target:"_blank",rel:"noopener noreferrer"},ze=o("ELF shared object"),Ae=o(" (conteniendo el bytecode de BPF) y subido al cluster de Solana. Los Programas viven en cuentas (como casi todo en Solana), con la excepci\xF3n de aquellas marcadas como "),De=e("code",null,"executable",-1),we=o(" y asignadas al BPF Loader. La direcci\xF3n del programa desplegada se llama "),Ie=e("code",null,"program_id",-1),Ue=o(" y es usada para llamar al programa."),Ve=o("Solana soporta m\xFAltiples BPF Loaders, siendo el \xFAltimo el "),Me={href:"https://explorer.solana.com/address/BPFLoaderUpgradeab1e11111111111111111111111",target:"_blank",rel:"noopener noreferrer"},Ne=o("Upgradable BPF Loader"),He=o(". El BPF Loader es responsable de administrar las cuentas del programa y hacerlas accesibles a los clientes a trav\xE9s del "),Oe=e("code",null,"program_id",-1),Ge=o(". Todos los programas tienen un \xFAnico punto de entrada donde se procesan las instrucciones (i.e. "),Je=e("code",null,"process_instruction",-1),Ke=o(") y los par\xE1metros siempre incluyen:"),Qe=r('
    • program_id: pubkey
    • accounts: array,
    • instruction_data: byte array

    Una vez llamado, los Programas son ejecutados por el Runtime de Solana.

    Other Resources

    ',3),We={href:"https://docs.solana.com/developing/on-chain-programs/overview",target:"_blank",rel:"noopener noreferrer"},Xe=o("Documentaci\xF3n oficial"),Ye={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},Ze=o("Documentaci\xF3n de SPL"),$e={href:"https://jstarry.notion.site/Program-deploys-29780c48794c47308d5f138074dd9838",target:"_blank",rel:"noopener noreferrer"},eo=o("Despliegue de Programas por Justin Starry"),oo={href:"https://book.solmeet.dev/notes/solana-starter-kit",target:"_blank",rel:"noopener noreferrer"},ao=o("Kit de inicio de Solana por Iron Addicted Dog"),so={href:"https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/",target:"_blank",rel:"noopener noreferrer"},ro=o("Programando en Solana por Paulx"),to={href:"https://2501babe.github.io/posts/solana101.html",target:"_blank",rel:"noopener noreferrer"},no=o("Una introducci\xF3n a la cadena de bloques por Hana"),io={href:"https://project-serum.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},lo=o("Anchor");function co(po,_o){const n=t("RouterLink"),s=t("ExternalLinkIcon");return i(),l(p,null,[h,u,m,e("div",g,[b,e("ul",null,[f,e("li",null,[k,v,y,a(n,{to:"/es/core-concepts/accounts.html"},{default:c(()=>[L]),_:1}),P]),q,e("li",null,[x,e("a",S,[F,a(s)]),E,e("a",R,[j,a(s)])]),e("li",null,[B,e("a",C,[T,a(s)]),z,e("a",A,[D,a(s)])]),w])]),I,U,V,e("p",null,[M,e("a",N,[H,a(s)]),O,e("a",G,[J,a(s)]),K]),e("p",null,[Q,e("a",W,[X,a(s)]),Y]),e("p",null,[Z,e("a",$,[ee,a(s)]),oe,e("a",ae,[se,a(s)]),re]),te,e("p",null,[ne,e("a",de,[ie,a(s)]),le,e("a",ce,[pe,a(s)]),_e,e("a",he,[ue,a(s)]),me]),ge,e("p",null,[be,e("a",fe,[ke,a(s)]),ve]),ye,e("p",null,[Le,e("a",Pe,[qe,a(s)]),xe]),Se,e("p",null,[Fe,e("a",Ee,[Re,a(s)]),je]),Be,e("p",null,[Ce,e("a",Te,[ze,a(s)]),Ae,De,we,Ie,Ue]),e("p",null,[Ve,e("a",Me,[Ne,a(s)]),He,Oe,Ge,Je,Ke]),Qe,e("ul",null,[e("li",null,[e("a",We,[Xe,a(s)])]),e("li",null,[e("a",Ye,[Ze,a(s)])]),e("li",null,[e("a",$e,[eo,a(s)])]),e("li",null,[e("a",oo,[ao,a(s)])]),e("li",null,[e("a",so,[ro,a(s)])]),e("li",null,[e("a",to,[no,a(s)])]),e("li",null,[e("a",io,[lo,a(s)])])])],64)}var uo=d(_,[["render",co]]);export{uo as default}; +import{_ as d,r as t,o as i,c as l,a as e,b as a,w as c,F as p,d as o,e as r}from"./app.55b1b60c.js";const _={},h=e("h1",{id:"programas",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#programas","aria-hidden":"true"},"#"),o(" Programas")],-1),u=e("p",null,"Cualquier desarrollador puede escribir e implementar programas en la cadena de bloques de Solana. Los programas (conocidos como contratos inteligentes en otros protocolos) sirven como base para la actividad dentro de la cadena de bloques, potenciando desde DeFi y NFTs hasta redes sociales y juegos.",-1),m=e("h2",{id:"hechos",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hechos","aria-hidden":"true"},"#"),o(" Hechos")],-1),g={class:"custom-container tip"},b=e("p",{class:"custom-container-title"},"Hoja de hechos",-1),f=e("li",null,[o("Los programas procesan "),e("a",{href:"./transactions"},"instrucciones"),o(" de otros programas y de usuarios finales")],-1),k=o("Todos los programas son "),v=e("em",null,"stateless",-1),y=o(" (sin estado): Los datos con los que interact\xFAan son almacenados en "),L=o("cuentas"),P=o(" que son enviadas al programa en instrucciones"),q=e("li",null,[o("Los mismos programas son almacenadas en cuentas marcadas como "),e("code",null,"executable"),o(" (ejecutables)")],-1),x=o("El due\xF1o de todos los programas es "),S={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},F=o("BPF Loader"),E=o(" y es ejectuado por el "),R={href:"https://docs.solana.com/developing/programming-model/runtime",target:"_blank",rel:"noopener noreferrer"},j=o("Runtime de Solana"),B=o("Los programadores comunmente utilizan Rust y C++ para escribir programas, pero pueden elegir cualquier lenguaje que compile con el backend de "),C={href:"https://en.wikipedia.org/wiki/Berkeley_Packet_Filter",target:"_blank",rel:"noopener noreferrer"},T=o("BPF"),z=o(" para "),A={href:"https://llvm.org/",target:"_blank",rel:"noopener noreferrer"},D=o("LLVM"),w=r("
  • Todos los programas tienen un punto \xFAnico de entrada donde se procesan las instrucciones (i.e. process_instruction); los par\xE1metros siempre incluyen:
    • program_id: pubkey
    • accounts: array,
    • instruction_data: byte array
  • ",1),I=e("h2",{id:"un-vistazo-mas-profundo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#un-vistazo-mas-profundo","aria-hidden":"true"},"#"),o(" Un vistazo m\xE1s profundo")],-1),U=e("p",null,"A diferencia de la mayor\xEDa de cadenas de bloques, Solana separa completamente el c\xF3digo de los datos. Todos los datos con los que interact\xFAan los programas se almacenan en cuentas separadas y se env\xEDan a trav\xE9s de instrucciones. Este modelo permite que un \xFAnico programa gen\xE9rico funcione en varias cuentas sin necesidad de implementaciones adicionales. Se ven ejemplos comunes de este patr\xF3n en los programas nativos y SPL.",-1),V=e("h3",{id:"programas-nativos-la-libreria-de-programas-de-solana-spl",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#programas-nativos-la-libreria-de-programas-de-solana-spl","aria-hidden":"true"},"#"),o(" Programas nativos & La librer\xEDa de Programas de Solana (SPL)")],-1),M=o("Solana viene equipado con programas que sirven como bloques de construcci\xF3n para interactuar con la cadena de bloques. Estos programas est\xE1n dividos en "),N={href:"https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader",target:"_blank",rel:"noopener noreferrer"},H=o("Programas nativos"),O=o(" y "),G={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},J=o("Programas de la librer\xEDa de programas (SPL)"),K=o("."),Q=o("Los programas nativos brindan la funcionalidad base que es requerida para operar validadores. Entre estos programas el m\xE1s conocido es el "),W={href:"https://docs.solana.com/developing/runtime-facilities/programs#system-program",target:"_blank",rel:"noopener noreferrer"},X=o("Programa del sistema (System Program)"),Y=o(" que es responsable de administrar las cuentas y transferir SOL."),Z=o("Los programas de la librer\xEDa de programas soportan otras actividades dentro de la cadena de bloques como crear tokens, intercambiarlos, prestar tokens, as\xED como generar pools de staking y mantener el servicio de nombres dentro de la cadena de bloques. El "),$={href:"https://spl.solana.com/token",target:"_blank",rel:"noopener noreferrer"},ee=o("Programa de Token (SPL Token Program)"),oe=o(" puede ser invocado directamente desde el CLI (Command Line Interface), mientras que otros como el "),ae={href:"https://spl.solana.com/associated-token-account",target:"_blank",rel:"noopener noreferrer"},se=o("Programa de cuentas asociadas a token (Associated Token Account Program)"),re=o(" son usados dentro de otros programas."),te=e("h3",{id:"escribiendo-programas",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#escribiendo-programas","aria-hidden":"true"},"#"),o(" Escribiendo programas")],-1),ne=o("Los Programas est\xE1n escritos comunmente en Rust o C++, pero pueden ser desarrollado con cualquier lenguaje que compile al backend BPF de LLVM. Iniciativas recientes de "),de={href:"https://neon-labs.org/",target:"_blank",rel:"noopener noreferrer"},ie=o("Neon Labs"),le=o(" y "),ce={href:"https://solang.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"},pe=o("Solang"),_e=o(" habilitan la compatibilidad con "),he={href:"https://ethereum.org/en/developers/docs/evm/",target:"_blank",rel:"noopener noreferrer"},ue=o("EVM"),me=o(" para permitir a desarrolladores escribir programas con Solidity."),ge=r("

    La mayor\xEDa de programas de Rust siguen la siguiente arquitectura:

    ArcguviDescripci\xF3n
    lib.rsRegistro de m\xF3dulos
    entrypoint.rsPunto de entrada para el programa
    instruction.rsAPI del programa, deserializa las instrucciones
    processor.rsL\xF3gica del programa
    state.rsObjetos del programa, deserializa el estado
    error.rsErrores espec\xEDficos del programa
    ",2),be=o("Recientemente, "),fe={href:"https://project-OpenBook.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},ke=o("Anchor"),ve=o(" se ha convertido en el framework m\xE1s popular para desarrollar programas. Anchor es un framework que reduce el boilerplate y facilita la deserializaci\xF3n para los programas desarrollados en Rust."),ye=r("

    Los programas normalmente son desarrollados y testeados en los entornos Localhost y Devnet antes de ser desplegados a Testnet y Mainnet. Solana soporta los siguientes entornos:

    Entorno del clusterURL de conexi\xF3n RPC
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    LocalhostDefault port: 8899 (e.g. http://localhost:8899, http://192.168.1.88:8899)
    ",2),Le=o("Una vez desplegado a un entorno, los clientes pueden interactuar con el programa dentro de la cadena de bloques utilizando "),Pe={href:"https://docs.solana.com/developing/clients/jsonrpc-api",target:"_blank",rel:"noopener noreferrer"},qe=o("Conexiones RPC"),xe=o(" apuntando al cluster correspondiente."),Se=e("h3",{id:"desplegando-programas",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#desplegando-programas","aria-hidden":"true"},"#"),o(" Desplegando Programas")],-1),Fe=o("Los desarrolladores pueden desplegar sus programas utilizando el "),Ee={href:"https://docs.solana.com/cli/deploy-a-program",target:"_blank",rel:"noopener noreferrer"},Re=o("CLI"),je=o(":"),Be=r(`
    solana program deploy <PROGRAM_FILEPATH>
    +
    `,1),Ce=o("Cuando un programa es desplegado, es compilado a un "),Te={href:"https://en.wikipedia.org/wiki/Executable_and_Linkable_Format",target:"_blank",rel:"noopener noreferrer"},ze=o("ELF shared object"),Ae=o(" (conteniendo el bytecode de BPF) y subido al cluster de Solana. Los Programas viven en cuentas (como casi todo en Solana), con la excepci\xF3n de aquellas marcadas como "),De=e("code",null,"executable",-1),we=o(" y asignadas al BPF Loader. La direcci\xF3n del programa desplegada se llama "),Ie=e("code",null,"program_id",-1),Ue=o(" y es usada para llamar al programa."),Ve=o("Solana soporta m\xFAltiples BPF Loaders, siendo el \xFAltimo el "),Me={href:"https://explorer.solana.com/address/BPFLoaderUpgradeab1e11111111111111111111111",target:"_blank",rel:"noopener noreferrer"},Ne=o("Upgradable BPF Loader"),He=o(". El BPF Loader es responsable de administrar las cuentas del programa y hacerlas accesibles a los clientes a trav\xE9s del "),Oe=e("code",null,"program_id",-1),Ge=o(". Todos los programas tienen un \xFAnico punto de entrada donde se procesan las instrucciones (i.e. "),Je=e("code",null,"process_instruction",-1),Ke=o(") y los par\xE1metros siempre incluyen:"),Qe=r('
    • program_id: pubkey
    • accounts: array,
    • instruction_data: byte array

    Una vez llamado, los Programas son ejecutados por el Runtime de Solana.

    Other Resources

    ',3),We={href:"https://docs.solana.com/developing/on-chain-programs/overview",target:"_blank",rel:"noopener noreferrer"},Xe=o("Documentaci\xF3n oficial"),Ye={href:"https://spl.solana.com/",target:"_blank",rel:"noopener noreferrer"},Ze=o("Documentaci\xF3n de SPL"),$e={href:"https://jstarry.notion.site/Program-deploys-29780c48794c47308d5f138074dd9838",target:"_blank",rel:"noopener noreferrer"},eo=o("Despliegue de Programas por Justin Starry"),oo={href:"https://book.solmeet.dev/notes/solana-starter-kit",target:"_blank",rel:"noopener noreferrer"},ao=o("Kit de inicio de Solana por Iron Addicted Dog"),so={href:"https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/",target:"_blank",rel:"noopener noreferrer"},ro=o("Programando en Solana por Paulx"),to={href:"https://2501babe.github.io/posts/solana101.html",target:"_blank",rel:"noopener noreferrer"},no=o("Una introducci\xF3n a la cadena de bloques por Hana"),io={href:"https://project-OpenBook.github.io/anchor/getting-started/introduction.html",target:"_blank",rel:"noopener noreferrer"},lo=o("Anchor");function co(po,_o){const n=t("RouterLink"),s=t("ExternalLinkIcon");return i(),l(p,null,[h,u,m,e("div",g,[b,e("ul",null,[f,e("li",null,[k,v,y,a(n,{to:"/es/core-concepts/accounts.html"},{default:c(()=>[L]),_:1}),P]),q,e("li",null,[x,e("a",S,[F,a(s)]),E,e("a",R,[j,a(s)])]),e("li",null,[B,e("a",C,[T,a(s)]),z,e("a",A,[D,a(s)])]),w])]),I,U,V,e("p",null,[M,e("a",N,[H,a(s)]),O,e("a",G,[J,a(s)]),K]),e("p",null,[Q,e("a",W,[X,a(s)]),Y]),e("p",null,[Z,e("a",$,[ee,a(s)]),oe,e("a",ae,[se,a(s)]),re]),te,e("p",null,[ne,e("a",de,[ie,a(s)]),le,e("a",ce,[pe,a(s)]),_e,e("a",he,[ue,a(s)]),me]),ge,e("p",null,[be,e("a",fe,[ke,a(s)]),ve]),ye,e("p",null,[Le,e("a",Pe,[qe,a(s)]),xe]),Se,e("p",null,[Fe,e("a",Ee,[Re,a(s)]),je]),Be,e("p",null,[Ce,e("a",Te,[ze,a(s)]),Ae,De,we,Ie,Ue]),e("p",null,[Ve,e("a",Me,[Ne,a(s)]),He,Oe,Ge,Je,Ke]),Qe,e("ul",null,[e("li",null,[e("a",We,[Xe,a(s)])]),e("li",null,[e("a",Ye,[Ze,a(s)])]),e("li",null,[e("a",$e,[eo,a(s)])]),e("li",null,[e("a",oo,[ao,a(s)])]),e("li",null,[e("a",so,[ro,a(s)])]),e("li",null,[e("a",to,[no,a(s)])]),e("li",null,[e("a",io,[lo,a(s)])])])],64)}var uo=d(_,[["render",co]]);export{uo as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.31cc5468.js b/docs/.vuepress/dist/assets/pyth.html.31cc5468.js index 9b33f926c..512ae7eb1 100644 --- a/docs/.vuepress/dist/assets/pyth.html.31cc5468.js +++ b/docs/.vuepress/dist/assets/pyth.html.31cc5468.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),$=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"other-resources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#other-resources","aria-hidden":"true"},"#"),s(" Other Resources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),E={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},T=s("JS Example Code"),F={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},L=s("Rust Example Code"),R={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},j=s("Anchor Example Code");function G(I,O){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),v,x,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[P]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[T,a(o)])]),n("li",null,[n("a",F,[L,a(o)])]),n("li",null,[n("a",R,[j,a(o)])])])],64)}var K=l(k,[["render",G]]);export{K as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"other-resources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#other-resources","aria-hidden":"true"},"#"),s(" Other Resources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),E={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},T=s("JS Example Code"),F={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},L=s("Rust Example Code"),R={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},j=s("Anchor Example Code");function G(I,O){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),v,x,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[P]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[T,a(o)])]),n("li",null,[n("a",F,[L,a(o)])]),n("li",null,[n("a",R,[j,a(o)])])])],64)}var K=l(k,[["render",G]]);export{K as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.4f0841c0.js b/docs/.vuepress/dist/assets/pyth.html.4f0841c0.js index 8c09fc06f..df6f4d030 100644 --- a/docs/.vuepress/dist/assets/pyth.html.4f0841c0.js +++ b/docs/.vuepress/dist/assets/pyth.html.4f0841c0.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),$=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19","aria-hidden":"true"},"#"),s(" \u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),E={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},F=s("JS Example Code"),T={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},j=s("Rust Example Code"),G={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},I=s("Anchor Example Code");function L(R,J){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),x,v,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[P]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[F,a(o)])]),n("li",null,[n("a",T,[j,a(o)])]),n("li",null,[n("a",G,[I,a(o)])])])],64)}var N=l(k,[["render",L]]);export{N as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19","aria-hidden":"true"},"#"),s(" \u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E37\u0E48\u0E19")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),E={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},F=s("JS Example Code"),T={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},j=s("Rust Example Code"),G={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},I=s("Anchor Example Code");function L(R,J){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),x,v,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[P]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[F,a(o)])]),n("li",null,[n("a",T,[j,a(o)])]),n("li",null,[n("a",G,[I,a(o)])])])],64)}var N=l(k,[["render",L]]);export{N as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.509b01aa.js b/docs/.vuepress/dist/assets/pyth.html.509b01aa.js index 2725a53c0..0197d5671 100644 --- a/docs/.vuepress/dist/assets/pyth.html.509b01aa.js +++ b/docs/.vuepress/dist/assets/pyth.html.509b01aa.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),S=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),$=n("h2",{id:"sumber-lainnya",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#sumber-lainnya","aria-hidden":"true"},"#"),s(" Sumber Lainnya")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),j={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},E=s("JS Example Code"),L={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},F=s("Rust Example Code"),T={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},G=s("Anchor Example Code");function I(R,J){const e=o("ExternalLinkIcon"),c=o("SolanaCodeGroupItem"),p=o("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",g,[f,a(e)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),x,P,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[v]),preview:t(()=>[S]),_:1})]),_:1}),$,n("ul",null,[n("li",null,[n("a",A,[B,a(e)])]),n("li",null,[n("a",j,[E,a(e)])]),n("li",null,[n("a",L,[F,a(e)])]),n("li",null,[n("a",T,[G,a(e)])])])],64)}var N=l(k,[["render",I]]);export{N as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),$=n("h2",{id:"sumber-lainnya",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#sumber-lainnya","aria-hidden":"true"},"#"),s(" Sumber Lainnya")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),j={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},E=s("JS Example Code"),L={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},F=s("Rust Example Code"),T={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},G=s("Anchor Example Code");function I(R,J){const e=o("ExternalLinkIcon"),c=o("SolanaCodeGroupItem"),p=o("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",g,[f,a(e)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),x,P,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[v]),preview:t(()=>[S]),_:1})]),_:1}),$,n("ul",null,[n("li",null,[n("a",A,[B,a(e)])]),n("li",null,[n("a",j,[E,a(e)])]),n("li",null,[n("a",L,[F,a(e)])]),n("li",null,[n("a",T,[G,a(e)])])])],64)}var N=l(k,[["render",I]]);export{N as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.5f59a477.js b/docs/.vuepress/dist/assets/pyth.html.5f59a477.js index 0fdc514c3..bb90d72d9 100644 --- a/docs/.vuepress/dist/assets/pyth.html.5f59a477.js +++ b/docs/.vuepress/dist/assets/pyth.html.5f59a477.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),$=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"autres-ressources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#autres-ressources","aria-hidden":"true"},"#"),s(" Autres Ressources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Biblioth\xE8ques du Client"),j={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},E=s("Exemple de code JS"),F={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},R=s("Exemple de code Rust"),T={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},q=s("Exemple de code Anchor");function G(I,L){const e=o("ExternalLinkIcon"),c=o("SolanaCodeGroupItem"),p=o("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(e)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[x]),_:1})]),_:1}),C,P,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[v]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(e)])]),n("li",null,[n("a",j,[E,a(e)])]),n("li",null,[n("a",F,[R,a(e)])]),n("li",null,[n("a",T,[q,a(e)])])])],64)}var K=l(k,[["render",G]]);export{K as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"autres-ressources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#autres-ressources","aria-hidden":"true"},"#"),s(" Autres Ressources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Biblioth\xE8ques du Client"),j={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},E=s("Exemple de code JS"),F={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},R=s("Exemple de code Rust"),T={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},q=s("Exemple de code Anchor");function G(I,L){const e=o("ExternalLinkIcon"),c=o("SolanaCodeGroupItem"),p=o("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(e)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[x]),_:1})]),_:1}),C,P,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[v]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(e)])]),n("li",null,[n("a",j,[E,a(e)])]),n("li",null,[n("a",F,[R,a(e)])]),n("li",null,[n("a",T,[q,a(e)])])])],64)}var K=l(k,[["render",G]]);export{K as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.a56d75c5.js b/docs/.vuepress/dist/assets/pyth.html.a56d75c5.js index 9b33f926c..512ae7eb1 100644 --- a/docs/.vuepress/dist/assets/pyth.html.a56d75c5.js +++ b/docs/.vuepress/dist/assets/pyth.html.a56d75c5.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),$=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"other-resources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#other-resources","aria-hidden":"true"},"#"),s(" Other Resources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),E={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},T=s("JS Example Code"),F={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},L=s("Rust Example Code"),R={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},j=s("Anchor Example Code");function G(I,O){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),v,x,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[P]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[T,a(o)])]),n("li",null,[n("a",F,[L,a(o)])]),n("li",null,[n("a",R,[j,a(o)])])])],64)}var K=l(k,[["render",G]]);export{K as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),S=n("h2",{id:"other-resources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#other-resources","aria-hidden":"true"},"#"),s(" Other Resources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),E={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},T=s("JS Example Code"),F={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},L=s("Rust Example Code"),R={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},j=s("Anchor Example Code");function G(I,O){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",f,[g,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[C]),_:1})]),_:1}),v,x,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[P]),preview:t(()=>[$]),_:1})]),_:1}),S,n("ul",null,[n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[T,a(o)])]),n("li",null,[n("a",F,[L,a(o)])]),n("li",null,[n("a",R,[j,a(o)])])])],64)}var K=l(k,[["render",G]]);export{K as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.c0775995.js b/docs/.vuepress/dist/assets/pyth.html.c0775995.js index 793800115..d7dd2298d 100644 --- a/docs/.vuepress/dist/assets/pyth.html.c0775995.js +++ b/docs/.vuepress/dist/assets/pyth.html.c0775995.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),S=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),$=n("h2",{id:"other-resources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#other-resources","aria-hidden":"true"},"#"),s(" Other Resources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),O={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},z=s("JS Example Code"),E={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},F=s("Rust Example Code"),V={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},K=s("Anchor Example Code");function L(R,T){const e=o("ExternalLinkIcon"),c=o("SolanaCodeGroupItem"),p=o("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",g,[f,a(e)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[v]),_:1})]),_:1}),C,P,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[x]),preview:t(()=>[S]),_:1})]),_:1}),$,n("ul",null,[n("li",null,[n("a",A,[B,a(e)])]),n("li",null,[n("a",O,[z,a(e)])]),n("li",null,[n("a",E,[F,a(e)])]),n("li",null,[n("a",V,[K,a(e)])])])],64)}var D=l(k,[["render",L]]);export{D as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),$=n("h2",{id:"other-resources",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#other-resources","aria-hidden":"true"},"#"),s(" Other Resources")],-1),A={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},B=s("Client Libraries"),O={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},z=s("JS Example Code"),E={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},F=s("Rust Example Code"),V={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},K=s("Anchor Example Code");function L(R,T){const e=o("ExternalLinkIcon"),c=o("SolanaCodeGroupItem"),p=o("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,y,_,n("a",g,[f,a(e)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[w]),preview:t(()=>[v]),_:1})]),_:1}),C,P,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[x]),preview:t(()=>[S]),_:1})]),_:1}),$,n("ul",null,[n("li",null,[n("a",A,[B,a(e)])]),n("li",null,[n("a",O,[z,a(e)])]),n("li",null,[n("a",E,[F,a(e)])]),n("li",null,[n("a",V,[K,a(e)])])])],64)}var D=l(k,[["render",L]]);export{D as default}; diff --git a/docs/.vuepress/dist/assets/pyth.html.d4d12cb2.js b/docs/.vuepress/dist/assets/pyth.html.d4d12cb2.js index 9e05848c6..09b06fd71 100644 --- a/docs/.vuepress/dist/assets/pyth.html.d4d12cb2.js +++ b/docs/.vuepress/dist/assets/pyth.html.d4d12cb2.js @@ -73,4 +73,4 @@ pythConnection`),n("span",{class:"token punctuation"},"."),n("span",{class:"toke `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br"),n("span",{class:"line-number"},"23"),n("br"),n("span",{class:"line-number"},"24"),n("br"),n("span",{class:"line-number"},"25"),n("br"),n("span",{class:"line-number"},"26"),n("br"),n("span",{class:"line-number"},"27"),n("br"),n("span",{class:"line-number"},"28"),n("br"),n("span",{class:"line-number"},"29"),n("br"),n("span",{class:"line-number"},"30"),n("br")])],-1),v=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" pyth_price_info "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("ctx"),n("span",{class:"token punctuation"},"."),s("accounts"),n("span",{class:"token punctuation"},"."),s("pyth_account"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" pyth_price_data "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"&"),s("pyth_price_info"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_borrow_data"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" price_account"),n("span",{class:"token punctuation"},":"),s(),n("span",{class:"token class-name"},"Price"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token operator"},"*"),n("span",{class:"token function"},"load_price"),n("span",{class:"token punctuation"},"("),s("pyth_price_data"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"unwrap"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),P=n("h2",{id:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599","aria-hidden":"true"},"#"),s(" \u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599")],-1),$={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},S=s("Client Libraries"),A={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},B=s("JS Example Code"),E={href:"https://github.com/project-serum/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},F=s("Rust Example Code"),T={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},j=s("Anchor Example Code");function G(I,L){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,n("a",y,[_,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[g]),preview:t(()=>[f]),_:1})]),_:1}),w,x,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[C]),preview:t(()=>[v]),_:1})]),_:1}),P,n("ul",null,[n("li",null,[n("a",$,[S,a(o)])]),n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[F,a(o)])]),n("li",null,[n("a",T,[j,a(o)])])])],64)}var J=l(k,[["render",G]]);export{J as default}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br")])],-1),P=n("h2",{id:"\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599","aria-hidden":"true"},"#"),s(" \u305D\u306E\u4ED6\u53C2\u8003\u8CC7\u6599")],-1),$={href:"https://docs.pyth.network/consumers/client-libraries",target:"_blank",rel:"noopener noreferrer"},S=s("Client Libraries"),A={href:"https://github.dev/solana-labs/solana/tree/master/web3.js/examples",target:"_blank",rel:"noopener noreferrer"},B=s("JS Example Code"),E={href:"https://github.com/project-OpenBook/anchor/tree/master/tests/pyth",target:"_blank",rel:"noopener noreferrer"},F=s("Rust Example Code"),T={href:"https://github.com/0xPratik/pyth-anchor-example",target:"_blank",rel:"noopener noreferrer"},j=s("Anchor Example Code");function G(I,L){const o=e("ExternalLinkIcon"),c=e("SolanaCodeGroupItem"),p=e("SolanaCodeGroup");return u(),i(r,null,[b,m,d,n("p",null,[h,n("a",y,[_,a(o)])]),a(p,null,{default:t(()=>[a(c,{title:"TS",active:""},{default:t(()=>[g]),preview:t(()=>[f]),_:1})]),_:1}),w,x,a(p,null,{default:t(()=>[a(c,{title:"Anchor",active:""},{default:t(()=>[C]),preview:t(()=>[v]),_:1})]),_:1}),P,n("ul",null,[n("li",null,[n("a",$,[S,a(o)])]),n("li",null,[n("a",A,[B,a(o)])]),n("li",null,[n("a",E,[F,a(o)])]),n("li",null,[n("a",T,[j,a(o)])])])],64)}var J=l(k,[["render",G]]);export{J as default}; diff --git a/docs/.vuepress/dist/assets/serum.html.117a0127.js b/docs/.vuepress/dist/assets/serum.html.117a0127.js index 5710f4fda..885583bae 100644 --- a/docs/.vuepress/dist/assets/serum.html.117a0127.js +++ b/docs/.vuepress/dist/assets/serum.html.117a0127.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as e,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum","aria-hidden":"true"},"#"),s(" Serum")],-1),d=n("p",null,"Serum ist ein auf Solana basierendes Protokoll f\xFCr den dezentralisierten Austausch. Du kannst Serum verwenden, um neue M\xE4rkte zu schaffen, Auftragsb\xFCcher zu erhalten, Handel zu treiben und vieles mehr.",-1),b=n("h2",{id:"so-erhalten-sie-einen-serummarkt",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erhalten-sie-einen-serummarkt","aria-hidden":"true"},"#"),s(" So erhalten Sie einen Serummarkt")],-1),m=n("p",null,"Ein Markt auf Serum enth\xE4lt alle Bestellungen und M\xF6glichkeiten, um Bestellungen zu t\xE4tigen auf Serum. F\xFCr alles, was Sie mit Serum tun, m\xFCssen Sie den Markt kennen arbeiten mit.",-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as e,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook","aria-hidden":"true"},"#"),s(" OpenBook")],-1),d=n("p",null,"OpenBook ist ein auf Solana basierendes Protokoll f\xFCr den dezentralisierten Austausch. Du kannst OpenBook verwenden, um neue M\xE4rkte zu schaffen, Auftragsb\xFCcher zu erhalten, Handel zu treiben und vieles mehr.",-1),b=n("h2",{id:"so-erhalten-sie-einen-OpenBookmarkt",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erhalten-sie-einen-OpenBookmarkt","aria-hidden":"true"},"#"),s(" So erhalten Sie einen OpenBookmarkt")],-1),m=n("p",null,"Ein Markt auf OpenBook enth\xE4lt alle Bestellungen und M\xF6glichkeiten, um Bestellungen zu t\xE4tigen auf OpenBook. F\xFCr alles, was Sie mit OpenBook tun, m\xFCssen Sie den Markt kennen arbeiten mit.",-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as e,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),f=n("h2",{id:"so-erhalten-sie-serum-bestellbucher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erhalten-sie-serum-bestellbucher","aria-hidden":"true"},"#"),s(" So erhalten Sie Serum-Bestellb\xFCcher")],-1),h=n("p",null,"Serum-M\xE4rkte bestehen aus Orderb\xFCchern mit Geboten und Nachfragen. Du kannst Fragen Sie diese Informationen ab, damit Sie sehen k\xF6nnen, was auf dem Markt vor sich geht und handle entsprechend.",-1),g=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),f=n("h2",{id:"so-erhalten-sie-OpenBook-bestellbucher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erhalten-sie-OpenBook-bestellbucher","aria-hidden":"true"},"#"),s(" So erhalten Sie OpenBook-Bestellb\xFCcher")],-1),h=n("p",null,"OpenBook-M\xE4rkte bestehen aus Orderb\xFCchern mit Geboten und Nachfragen. Du kannst Fragen Sie diese Informationen ab, damit Sie sehen k\xF6nnen, was auf dem Markt vor sich geht und handle entsprechend.",-1),g=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as e,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),S=n("h2",{id:"so-erhalten-sie-aktuelle-offene-bestellungen",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erhalten-sie-aktuelle-offene-bestellungen","aria-hidden":"true"},"#"),s(" So erhalten Sie aktuelle offene Bestellungen")],-1),v=n("p",null,"Als Trader werden Sie wissen wollen, welche aktuellen offenen Orders Sie auf einem Markt haben, k\xF6nnen Sie Ihre oder die offenen Orders anderer Personen auf einem Markt mit Serum abfragen.",-1),x=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),S=n("h2",{id:"so-erhalten-sie-aktuelle-offene-bestellungen",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erhalten-sie-aktuelle-offene-bestellungen","aria-hidden":"true"},"#"),s(" So erhalten Sie aktuelle offene Bestellungen")],-1),v=n("p",null,"Als Trader werden Sie wissen wollen, welche aktuellen offenen Orders Sie auf einem Markt haben, k\xF6nnen Sie Ihre oder die offenen Orders anderer Personen auf einem Markt mit OpenBook abfragen.",-1),x=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/serum.html.247b2421.js b/docs/.vuepress/dist/assets/serum.html.247b2421.js index f76999e64..0904ffe18 100644 --- a/docs/.vuepress/dist/assets/serum.html.247b2421.js +++ b/docs/.vuepress/dist/assets/serum.html.247b2421.js @@ -1 +1 @@ -const e={key:"v-5522fd47",path:"/fr/integrations/serum.html",title:"Serum",lang:"fr-FR",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"Solana Cookbook | D\xE9velopper avec Serum"}],["meta",{name:"og:title",content:"Solana Cookbook | D\xE9velopper avec Serum"}],["meta",{name:"description",content:"Serum est un CLOB innovant sur Solana. Apprenez \xE0 utiliser et \xE0 construire par-dessus Serum."}],["meta",{name:"og:description",content:"Serum est un CLOB innovant sur Solana. Apprenez \xE0 utiliser et \xE0 construire par-dessus Serum."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"Comment obtenir un march\xE9 de Serum",slug:"comment-obtenir-un-marche-de-serum",children:[]},{level:2,title:"Comment obtenir les carnets d'ordres de Serum",slug:"comment-obtenir-les-carnets-d-ordres-de-serum",children:[]},{level:2,title:"Comment obtenir les ordres ouverts actuels",slug:"comment-obtenir-les-ordres-ouverts-actuels",children:[]}],git:{updatedTime:1664978942e3,contributors:[{name:"cryptoloutre",email:"35653371+cryptoloutre@users.noreply.github.com",commits:1}]},filePathRelative:"fr/integrations/serum.md"};export{e as data}; +const e={key:"v-5522fd47",path:"/fr/integrations/OpenBook.html",title:"OpenBook",lang:"fr-FR",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"Solana Cookbook | D\xE9velopper avec OpenBook"}],["meta",{name:"og:title",content:"Solana Cookbook | D\xE9velopper avec OpenBook"}],["meta",{name:"description",content:"OpenBook est un CLOB innovant sur Solana. Apprenez \xE0 utiliser et \xE0 construire par-dessus OpenBook."}],["meta",{name:"og:description",content:"OpenBook est un CLOB innovant sur Solana. Apprenez \xE0 utiliser et \xE0 construire par-dessus OpenBook."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"Comment obtenir un march\xE9 de OpenBook",slug:"comment-obtenir-un-marche-de-OpenBook",children:[]},{level:2,title:"Comment obtenir les carnets d'ordres de OpenBook",slug:"comment-obtenir-les-carnets-d-ordres-de-OpenBook",children:[]},{level:2,title:"Comment obtenir les ordres ouverts actuels",slug:"comment-obtenir-les-ordres-ouverts-actuels",children:[]}],git:{updatedTime:1664978942e3,contributors:[{name:"cryptoloutre",email:"35653371+cryptoloutre@users.noreply.github.com",commits:1}]},filePathRelative:"fr/integrations/OpenBook.md"};export{e as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.4533f845.js b/docs/.vuepress/dist/assets/serum.html.4533f845.js index b2041ccf1..00dde41a6 100644 --- a/docs/.vuepress/dist/assets/serum.html.4533f845.js +++ b/docs/.vuepress/dist/assets/serum.html.4533f845.js @@ -1 +1 @@ -const e={key:"v-ca072408",path:"/de/integrations/serum.html",title:"Serum",lang:"de-DE",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"Solana Kochbuch | Building on Serum"}],["meta",{name:"og:title",content:"Solana Kochbuch | Building on Serum"}],["meta",{name:"description",content:"Serum ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie Serum verwenden und darauf aufbauen."}],["meta",{name:"og:description",content:"Serum ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie Serum verwenden und darauf aufbauen."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"So erhalten Sie einen Serummarkt",slug:"so-erhalten-sie-einen-serummarkt",children:[]},{level:2,title:"So erhalten Sie Serum-Bestellb\xFCcher",slug:"so-erhalten-sie-serum-bestellbucher",children:[]},{level:2,title:"So erhalten Sie aktuelle offene Bestellungen",slug:"so-erhalten-sie-aktuelle-offene-bestellungen",children:[]}],git:{updatedTime:1672345621e3,contributors:[{name:"nyk",email:"93952610+0xNyk@users.noreply.github.com",commits:1}]},filePathRelative:"de/integrations/serum.md"};export{e as data}; +const e={key:"v-ca072408",path:"/de/integrations/OpenBook.html",title:"OpenBook",lang:"de-DE",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"Solana Kochbuch | Building on OpenBook"}],["meta",{name:"og:title",content:"Solana Kochbuch | Building on OpenBook"}],["meta",{name:"description",content:"OpenBook ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie OpenBook verwenden und darauf aufbauen."}],["meta",{name:"og:description",content:"OpenBook ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie OpenBook verwenden und darauf aufbauen."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"So erhalten Sie einen OpenBookmarkt",slug:"so-erhalten-sie-einen-OpenBookmarkt",children:[]},{level:2,title:"So erhalten Sie OpenBook-Bestellb\xFCcher",slug:"so-erhalten-sie-OpenBook-bestellbucher",children:[]},{level:2,title:"So erhalten Sie aktuelle offene Bestellungen",slug:"so-erhalten-sie-aktuelle-offene-bestellungen",children:[]}],git:{updatedTime:1672345621e3,contributors:[{name:"nyk",email:"93952610+0xNyk@users.noreply.github.com",commits:1}]},filePathRelative:"de/integrations/OpenBook.md"};export{e as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.58b69860.js b/docs/.vuepress/dist/assets/serum.html.58b69860.js index 1975fcf10..0f20eb2a0 100644 --- a/docs/.vuepress/dist/assets/serum.html.58b69860.js +++ b/docs/.vuepress/dist/assets/serum.html.58b69860.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum","aria-hidden":"true"},"#"),s(" Serum")],-1),d=n("p",null,"Serum\u306F\u3001Solana \u4E0A\u306B\u69CB\u7BC9\u3055\u308C\u305F\u5206\u6563\u578B\u53D6\u5F15\u6240\u306E\u30D7\u30ED\u30C8\u30B3\u30EB\u3067\u3059\u3002 Serum\u3092\u4F7F\u7528\u3057\u3066\u3001\u65B0\u3057\u3044\u5E02\u5834\u306E\u4F5C\u6210\u3001\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u53D6\u5F97\u3001\u53D6\u5F15\u306A\u3069\u3092\u884C\u3046\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002",-1),b=n("h2",{id:"serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" Serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5")],-1),m=n("p",null,"Serum\u306E\u30DE\u30FC\u30B1\u30C3\u30C8\u306B\u306F\u3001Serum\u3067\u6CE8\u6587\u3059\u308B\u305F\u3081\u306E\u3059\u3079\u3066\u306E\u6CE8\u6587\u3068\u6A5F\u80FD\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 Serum\u3067\u884C\u3046\u3059\u3079\u3066\u306E\u3053\u3068\u306B\u3064\u3044\u3066\u3001\u4F5C\u696D\u3057\u3066\u3044\u308B\u30DE\u30FC\u30B1\u30C3\u30C8\u3092\u77E5\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook","aria-hidden":"true"},"#"),s(" OpenBook")],-1),d=n("p",null,"OpenBook\u306F\u3001Solana \u4E0A\u306B\u69CB\u7BC9\u3055\u308C\u305F\u5206\u6563\u578B\u53D6\u5F15\u6240\u306E\u30D7\u30ED\u30C8\u30B3\u30EB\u3067\u3059\u3002 OpenBook\u3092\u4F7F\u7528\u3057\u3066\u3001\u65B0\u3057\u3044\u5E02\u5834\u306E\u4F5C\u6210\u3001\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u53D6\u5F97\u3001\u53D6\u5F15\u306A\u3069\u3092\u884C\u3046\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002",-1),b=n("h2",{id:"OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5")],-1),m=n("p",null,"OpenBook\u306E\u30DE\u30FC\u30B1\u30C3\u30C8\u306B\u306F\u3001OpenBook\u3067\u6CE8\u6587\u3059\u308B\u305F\u3081\u306E\u3059\u3079\u3066\u306E\u6CE8\u6587\u3068\u6A5F\u80FD\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 OpenBook\u3067\u884C\u3046\u3059\u3079\u3066\u306E\u3053\u3068\u306B\u3064\u3044\u3066\u3001\u4F5C\u696D\u3057\u3066\u3044\u308B\u30DE\u30FC\u30B1\u30C3\u30C8\u3092\u77E5\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"serum\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" Serum\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5")],-1),f=n("p",null,"Serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u3001\u30D3\u30C3\u30C9\u3068\u30A2\u30B9\u30AF\u3092\u542B\u3080\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u3092\u7167\u4F1A\u3057\u3066\u3001\u5E02\u5834\u3067\u4F55\u304C\u8D77\u3053\u3063\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3001\u305D\u308C\u306B\u5FDC\u3058\u3066\u884C\u52D5\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002",-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"OpenBook\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" OpenBook\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5")],-1),f=n("p",null,"OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u3001\u30D3\u30C3\u30C9\u3068\u30A2\u30B9\u30AF\u3092\u542B\u3080\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u3092\u7167\u4F1A\u3057\u3066\u3001\u5E02\u5834\u3067\u4F55\u304C\u8D77\u3053\u3063\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3001\u305D\u308C\u306B\u5FDC\u3058\u3066\u884C\u52D5\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002",-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u73FE\u5728\u306E\u30AA\u30FC\u30D7\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5")],-1),x=n("p",null,"\u30C8\u30EC\u30FC\u30C0\u30FC\u3068\u3057\u3066\u3001\u5E02\u5834\u3067\u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u6CE8\u6587\u3092\u77E5\u308A\u305F\u3044\u3068\u601D\u3046\u3067\u3057\u3087\u3046\u3002Serum\u3092\u4F7F\u7528\u3057\u3066\u3001\u5E02\u5834\u3067\u306E\u81EA\u5206\u307E\u305F\u306F\u4ED6\u306E\u8AB0\u304B\u306E\u30AA\u30FC\u30D7\u30F3\u6CE8\u6587\u3092\u7167\u4F1A\u3067\u304D\u307E\u3059\u3002",-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u73FE\u5728\u306E\u30AA\u30FC\u30D7\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5")],-1),x=n("p",null,"\u30C8\u30EC\u30FC\u30C0\u30FC\u3068\u3057\u3066\u3001\u5E02\u5834\u3067\u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u6CE8\u6587\u3092\u77E5\u308A\u305F\u3044\u3068\u601D\u3046\u3067\u3057\u3087\u3046\u3002OpenBook\u3092\u4F7F\u7528\u3057\u3066\u3001\u5E02\u5834\u3067\u306E\u81EA\u5206\u307E\u305F\u306F\u4ED6\u306E\u8AB0\u304B\u306E\u30AA\u30FC\u30D7\u30F3\u6CE8\u6587\u3092\u7167\u4F1A\u3067\u304D\u307E\u3059\u3002",-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/serum.html.5b7d1540.js b/docs/.vuepress/dist/assets/serum.html.5b7d1540.js index 8c7e85e1d..55c3afd2c 100644 --- a/docs/.vuepress/dist/assets/serum.html.5b7d1540.js +++ b/docs/.vuepress/dist/assets/serum.html.5b7d1540.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum","aria-hidden":"true"},"#"),s(" Serum")],-1),d=n("p",null,"Serum \u0E04\u0E37\u0E2D protocol \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A decentralized exchanges \u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E1A\u0E19 Solana. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49 Serum \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E23\u0E49\u0E32\u0E07 markets, get order books, trade, \u0E41\u0E25\u0E30\u0E2D\u0E37\u0E48\u0E19\u0E46 \u0E2D\u0E35\u0E01\u0E21\u0E32\u0E01\u0E21\u0E32\u0E22",-1),b=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-market",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-market","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Serum market")],-1),m=n("p",null,"market \u0E1A\u0E19 Serum \u0E08\u0E30\u0E21\u0E35 orders \u0E41\u0E25\u0E30\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 orders \u0E1A\u0E19 Serum \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E08\u0E30\u0E17\u0E33\u0E2D\u0E30\u0E44\u0E23\u0E1A\u0E19 Serum \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E27\u0E48\u0E32 market \u0E44\u0E2B\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E14\u0E49\u0E27\u0E22",-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook","aria-hidden":"true"},"#"),s(" OpenBook")],-1),d=n("p",null,"OpenBook \u0E04\u0E37\u0E2D protocol \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A decentralized exchanges \u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E1A\u0E19 Solana. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49 OpenBook \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E23\u0E49\u0E32\u0E07 markets, get order books, trade, \u0E41\u0E25\u0E30\u0E2D\u0E37\u0E48\u0E19\u0E46 \u0E2D\u0E35\u0E01\u0E21\u0E32\u0E01\u0E21\u0E32\u0E22",-1),b=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-market",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-market","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 OpenBook market")],-1),m=n("p",null,"market \u0E1A\u0E19 OpenBook \u0E08\u0E30\u0E21\u0E35 orders \u0E41\u0E25\u0E30\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 orders \u0E1A\u0E19 OpenBook \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E08\u0E30\u0E17\u0E33\u0E2D\u0E30\u0E44\u0E23\u0E1A\u0E19 OpenBook \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E27\u0E48\u0E32 market \u0E44\u0E2B\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E14\u0E49\u0E27\u0E22",-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-order-books","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Serum order books")],-1),f=n("p",null,"Serum markets \u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22 order books \u0E17\u0E35\u0E48\u0E21\u0E35 bids \u0E41\u0E25\u0E30 asks. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E1E\u0E27\u0E01\u0E19\u0E35\u0E49\u0E44\u0E14\u0E49\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E23\u0E39\u0E49\u0E27\u0E48\u0E32 market \u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E22\u0E31\u0E07\u0E44\u0E07 \u0E41\u0E25\u0E30\u0E15\u0E31\u0E14\u0E2A\u0E34\u0E19\u0E43\u0E08\u0E27\u0E48\u0E32\u0E08\u0E30\u0E17\u0E33\u0E2D\u0E30\u0E44\u0E23\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E44\u0E14\u0E49",-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-order-books","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 OpenBook order books")],-1),f=n("p",null,"OpenBook markets \u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22 order books \u0E17\u0E35\u0E48\u0E21\u0E35 bids \u0E41\u0E25\u0E30 asks. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E1E\u0E27\u0E01\u0E19\u0E35\u0E49\u0E44\u0E14\u0E49\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E23\u0E39\u0E49\u0E27\u0E48\u0E32 market \u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E22\u0E31\u0E07\u0E44\u0E07 \u0E41\u0E25\u0E30\u0E15\u0E31\u0E14\u0E2A\u0E34\u0E19\u0E43\u0E08\u0E27\u0E48\u0E32\u0E08\u0E30\u0E17\u0E33\u0E2D\u0E30\u0E44\u0E23\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E44\u0E14\u0E49",-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 open orders \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19")],-1),x=n("p",null,"\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E02\u0E2D\u0E07 trader \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E23\u0E39\u0E49 open orders \u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E1A\u0E19 market. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E04\u0E49\u0E19\u0E2B\u0E32 open orders \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E2D\u0E07 \u0E2B\u0E23\u0E37\u0E2D\u0E02\u0E2D\u0E07\u0E04\u0E19\u0E2D\u0E37\u0E48\u0E19\u0E46 \u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22 Serum.",-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 open orders \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19")],-1),x=n("p",null,"\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E02\u0E2D\u0E07 trader \u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E23\u0E39\u0E49 open orders \u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E1A\u0E19 market. \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E04\u0E49\u0E19\u0E2B\u0E32 open orders \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E2D\u0E07 \u0E2B\u0E23\u0E37\u0E2D\u0E02\u0E2D\u0E07\u0E04\u0E19\u0E2D\u0E37\u0E48\u0E19\u0E46 \u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22 OpenBook.",-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/serum.html.80bfdb16.js b/docs/.vuepress/dist/assets/serum.html.80bfdb16.js index 323932b06..160a8b708 100644 --- a/docs/.vuepress/dist/assets/serum.html.80bfdb16.js +++ b/docs/.vuepress/dist/assets/serum.html.80bfdb16.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,e as i,a as n,d as s}from"./app.55b1b60c.js";const k={},d=i('

    Serum

    Serum adalah protokol untuk pertukaran terdesentralisasi yang dibangun di atas Solana. Anda dapat menggunakan Serum untuk menciptakan pasar baru (new market), mendapatkan buku pesanan (orderbooks), berdagang (trades), dan banyak lagi.

    Cara Mendapatkan Serum Market

    Market di Serum berisi semua pesanan dan kemampuan untuk membuat pesanan pada Serum. Untuk semua yang Anda lakukan di Serum, Anda perlu mengetahui market yang Anda sedang kerjakan.

    ',4),b=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,e as i,a as n,d as s}from"./app.55b1b60c.js";const k={},d=i('

    OpenBook

    OpenBook adalah protokol untuk pertukaran terdesentralisasi yang dibangun di atas Solana. Anda dapat menggunakan OpenBook untuk menciptakan pasar baru (new market), mendapatkan buku pesanan (orderbooks), berdagang (trades), dan banyak lagi.

    Cara Mendapatkan OpenBook Market

    Market di OpenBook berisi semua pesanan dan kemampuan untuk membuat pesanan pada OpenBook. Untuk semua yang Anda lakukan di OpenBook, Anda perlu mengetahui market yang Anda sedang kerjakan.

    ',4),b=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,e as i,a as n,d as s}fro `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),m=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),y=n("h2",{id:"mendapatkan-serum-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mendapatkan-serum-order-books","aria-hidden":"true"},"#"),s(" Mendapatkan Serum Order Books")],-1),w=n("p",null,"Serum markets terdiri dari orderbooks yang memiliki bids dan asks. Anda bisa menanyakan informasi ini sehingga Anda dapat melihat apa yang terjadi di pasar dan bertindak sesuai yang Anda butuhkan",-1),g=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),y=n("h2",{id:"mendapatkan-OpenBook-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#mendapatkan-OpenBook-order-books","aria-hidden":"true"},"#"),s(" Mendapatkan OpenBook Order Books")],-1),w=n("p",null,"OpenBook markets terdiri dari orderbooks yang memiliki bids dan asks. Anda bisa menanyakan informasi ini sehingga Anda dapat melihat apa yang terjadi di pasar dan bertindak sesuai yang Anda butuhkan",-1),g=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,e as i,a as n,d as s}fro `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),h=n("h2",{id:"cara-mendapatkan-open-orders",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-mendapatkan-open-orders","aria-hidden":"true"},"#"),s(" Cara Mendapatkan Open Orders")],-1),_=n("p",null,"Sebagai seorang trader, Anda pasti ingin tahu Open Orders aktif apa yang Anda miliki saat ini di sebuah market. Anda dapat menanyakan Open Orders Anda atau orang lain di market dengan Serum.",-1),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),h=n("h2",{id:"cara-mendapatkan-open-orders",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-mendapatkan-open-orders","aria-hidden":"true"},"#"),s(" Cara Mendapatkan Open Orders")],-1),_=n("p",null,"Sebagai seorang trader, Anda pasti ingin tahu Open Orders aktif apa yang Anda miliki saat ini di sebuah market. Anda dapat menanyakan Open Orders Anda atau orang lain di market dengan OpenBook.",-1),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/serum.html.80ffe6cc.js b/docs/.vuepress/dist/assets/serum.html.80ffe6cc.js index 31d441e44..00f986521 100644 --- a/docs/.vuepress/dist/assets/serum.html.80ffe6cc.js +++ b/docs/.vuepress/dist/assets/serum.html.80ffe6cc.js @@ -1 +1 @@ -const e={key:"v-d559a69c",path:"/ja/integrations/serum.html",title:"Serum",lang:"ja-JP",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"Solana Cookbook | Building on Serum"}],["meta",{name:"og:title",content:"Solana Cookbook | Building on Serum"}],["meta",{name:"description",content:"Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum."}],["meta",{name:"og:description",content:"Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"Serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"serum\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"Serum\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",slug:"serum\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",children:[]},{level:2,title:"\u73FE\u5728\u306E\u30AA\u30FC\u30D7\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],git:{updatedTime:1682188031e3,contributors:[{name:"PokoPoko2ry",email:"40916036+PokoPoko2ry@users.noreply.github.com",commits:1}]},filePathRelative:"ja/integrations/serum.md"};export{e as data}; +const e={key:"v-d559a69c",path:"/ja/integrations/OpenBook.html",title:"OpenBook",lang:"ja-JP",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"Solana Cookbook | Building on OpenBook"}],["meta",{name:"og:title",content:"Solana Cookbook | Building on OpenBook"}],["meta",{name:"description",content:"OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook."}],["meta",{name:"og:description",content:"OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",slug:"OpenBook\u30DE\u30FC\u30B1\u30C3\u30C8\u306E\u53D6\u5F97\u65B9\u6CD5",children:[]},{level:2,title:"OpenBook\u30AA\u30FC\u30C0\u30FC\u30D6\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",slug:"OpenBook\u30AA\u30FC\u30BF\u3099\u30FC\u30D5\u3099\u30C3\u30AF\u306E\u5165\u624B\u65B9\u6CD5",children:[]},{level:2,title:"\u73FE\u5728\u306E\u30AA\u30FC\u30D7\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",slug:"\u73FE\u5728\u306E\u30AA\u30FC\u30D5\u309A\u30F3\u306E\u6CE8\u6587\u3092\u53D6\u5F97\u3059\u308B\u65B9\u6CD5",children:[]}],git:{updatedTime:1682188031e3,contributors:[{name:"PokoPoko2ry",email:"40916036+PokoPoko2ry@users.noreply.github.com",commits:1}]},filePathRelative:"ja/integrations/OpenBook.md"};export{e as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.94e5f7c6.js b/docs/.vuepress/dist/assets/serum.html.94e5f7c6.js index 37a25fd50..4bfb3db31 100644 --- a/docs/.vuepress/dist/assets/serum.html.94e5f7c6.js +++ b/docs/.vuepress/dist/assets/serum.html.94e5f7c6.js @@ -1 +1 @@ -const a={key:"v-200ac096",path:"/id/integrations/serum.html",title:"Serum",lang:"id-ID",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"Buku Panduan Solana | Membangun di Serum"}],["meta",{name:"og:title",content:"Buku Panduan Solana | Membangun di Serum"}],["meta",{name:"description",content:"Serum adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas Serum."}],["meta",{name:"og:description",content:"Serum adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas Serum."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"Cara Mendapatkan Serum Market",slug:"cara-mendapatkan-serum-market",children:[]},{level:2,title:"Mendapatkan Serum Order Books",slug:"mendapatkan-serum-order-books",children:[]},{level:2,title:"Cara Mendapatkan Open Orders",slug:"cara-mendapatkan-open-orders",children:[]}],git:{updatedTime:1663636948e3,contributors:[{name:"akangaziz",email:"aziz@okadoc.com",commits:1}]},filePathRelative:"id/integrations/serum.md"};export{a as data}; +const a={key:"v-200ac096",path:"/id/integrations/OpenBook.html",title:"OpenBook",lang:"id-ID",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"Buku Panduan Solana | Membangun di OpenBook"}],["meta",{name:"og:title",content:"Buku Panduan Solana | Membangun di OpenBook"}],["meta",{name:"description",content:"OpenBook adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas OpenBook."}],["meta",{name:"og:description",content:"OpenBook adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas OpenBook."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"Cara Mendapatkan OpenBook Market",slug:"cara-mendapatkan-OpenBook-market",children:[]},{level:2,title:"Mendapatkan OpenBook Order Books",slug:"mendapatkan-OpenBook-order-books",children:[]},{level:2,title:"Cara Mendapatkan Open Orders",slug:"cara-mendapatkan-open-orders",children:[]}],git:{updatedTime:1663636948e3,contributors:[{name:"akangaziz",email:"aziz@okadoc.com",commits:1}]},filePathRelative:"id/integrations/OpenBook.md"};export{a as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.9e977ae7.js b/docs/.vuepress/dist/assets/serum.html.9e977ae7.js index ce14ac898..2040d43a1 100644 --- a/docs/.vuepress/dist/assets/serum.html.9e977ae7.js +++ b/docs/.vuepress/dist/assets/serum.html.9e977ae7.js @@ -1 +1 @@ -const e={key:"v-452286ef",path:"/th/integrations/serum.html",title:"Serum",lang:"th-TH",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D Solana | \u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E01\u0E31\u0E1A Serum"}],["meta",{name:"og:title",content:"\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D Solana | \u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E01\u0E31\u0E1A Serum"}],["meta",{name:"description",content:"Serum \u0E40\u0E1B\u0E47\u0E19\u0E19\u0E27\u0E31\u0E15\u0E01\u0E23\u0E23\u0E21 CLOB \u0E1A\u0E19 Solana. \u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 \u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E19 Serum"}],["meta",{name:"og:description",content:"Serum \u0E40\u0E1B\u0E47\u0E19\u0E19\u0E27\u0E31\u0E15\u0E01\u0E23\u0E23\u0E21 CLOB \u0E1A\u0E19 Solana. \u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 \u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E19 Serum"}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Serum market",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-market",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 Serum order books",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-serum-order-books",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 open orders \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",children:[]}],git:{updatedTime:1660787553e3,contributors:[{name:"Todsaporn Banjerdkit",email:"katopz@gmail.com",commits:1}]},filePathRelative:"th/integrations/serum.md"};export{e as data}; +const e={key:"v-452286ef",path:"/th/integrations/OpenBook.html",title:"OpenBook",lang:"th-TH",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D Solana | \u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E01\u0E31\u0E1A OpenBook"}],["meta",{name:"og:title",content:"\u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D Solana | \u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E01\u0E31\u0E1A OpenBook"}],["meta",{name:"description",content:"OpenBook \u0E40\u0E1B\u0E47\u0E19\u0E19\u0E27\u0E31\u0E15\u0E01\u0E23\u0E23\u0E21 CLOB \u0E1A\u0E19 Solana. \u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 \u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E19 OpenBook"}],["meta",{name:"og:description",content:"OpenBook \u0E40\u0E1B\u0E47\u0E19\u0E19\u0E27\u0E31\u0E15\u0E01\u0E23\u0E23\u0E21 CLOB \u0E1A\u0E19 Solana. \u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E27\u0E34\u0E18\u0E35\u0E43\u0E0A\u0E49 \u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E19 OpenBook"}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 OpenBook market",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-market",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 OpenBook order books",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-OpenBook-order-books",children:[]},{level:2,title:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 open orders \u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",slug:"\u0E27\u0E34\u0E18\u0E35\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25-open-orders-\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19",children:[]}],git:{updatedTime:1660787553e3,contributors:[{name:"Todsaporn Banjerdkit",email:"katopz@gmail.com",commits:1}]},filePathRelative:"th/integrations/OpenBook.md"};export{e as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.a80dd7c1.js b/docs/.vuepress/dist/assets/serum.html.a80dd7c1.js index 1ab869196..6237c98bc 100644 --- a/docs/.vuepress/dist/assets/serum.html.a80dd7c1.js +++ b/docs/.vuepress/dist/assets/serum.html.a80dd7c1.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum","aria-hidden":"true"},"#"),s(" Serum")],-1),d=n("p",null,"Serum is a protocol for decentralized exchanges built on Solana. You can use Serum to create new markets, get order books, trade, and more.",-1),b=n("h2",{id:"how-to-get-a-serum-market",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-a-serum-market","aria-hidden":"true"},"#"),s(" How to get a Serum market")],-1),m=n("p",null,"A market on Serum contains all the orders and capabilities to make orders on Serum. For everything you do on Serum you need to know the market you are working with.",-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook","aria-hidden":"true"},"#"),s(" OpenBook")],-1),d=n("p",null,"OpenBook is a protocol for decentralized exchanges built on Solana. You can use OpenBook to create new markets, get order books, trade, and more.",-1),b=n("h2",{id:"how-to-get-a-OpenBook-market",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-a-OpenBook-market","aria-hidden":"true"},"#"),s(" How to get a OpenBook market")],-1),m=n("p",null,"A market on OpenBook contains all the orders and capabilities to make orders on OpenBook. For everything you do on OpenBook you need to know the market you are working with.",-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"how-to-get-serum-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-serum-order-books","aria-hidden":"true"},"#"),s(" How to get Serum order books")],-1),h=n("p",null,"Serum markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.",-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"how-to-get-OpenBook-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-OpenBook-order-books","aria-hidden":"true"},"#"),s(" How to get OpenBook order books")],-1),h=n("p",null,"OpenBook markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.",-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"how-to-get-current-open-orders",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-current-open-orders","aria-hidden":"true"},"#"),s(" How to get current open orders")],-1),x=n("p",null,"As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with Serum.",-1),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"how-to-get-current-open-orders",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-current-open-orders","aria-hidden":"true"},"#"),s(" How to get current open orders")],-1),x=n("p",null,"As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with OpenBook.",-1),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/serum.html.b6233283.js b/docs/.vuepress/dist/assets/serum.html.b6233283.js index 92c363109..6941a02bc 100644 --- a/docs/.vuepress/dist/assets/serum.html.b6233283.js +++ b/docs/.vuepress/dist/assets/serum.html.b6233283.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum","aria-hidden":"true"},"#"),s(" Serum")],-1),d=n("p",null,"Serum est un protocole pour les \xE9changes d\xE9centralis\xE9s construit sur Solana. Vous pouvez utiliser Serum pour cr\xE9er de nouveaux march\xE9s, obtenir des carnets d'ordres, trade, etc.",-1),b=n("h2",{id:"comment-obtenir-un-marche-de-serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-obtenir-un-marche-de-serum","aria-hidden":"true"},"#"),s(" Comment obtenir un march\xE9 de Serum")],-1),m=n("p",null,"Un march\xE9 sur Serum contient tous les ordres et les fonctionnalit\xE9s permettant de passer des ordres sur Serum. Pour tout ce que vous faites sur Serum, vous devez conna\xEEtre le march\xE9 avec lequel vous travaillez.",-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook","aria-hidden":"true"},"#"),s(" OpenBook")],-1),d=n("p",null,"OpenBook est un protocole pour les \xE9changes d\xE9centralis\xE9s construit sur Solana. Vous pouvez utiliser OpenBook pour cr\xE9er de nouveaux march\xE9s, obtenir des carnets d'ordres, trade, etc.",-1),b=n("h2",{id:"comment-obtenir-un-marche-de-OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-obtenir-un-marche-de-OpenBook","aria-hidden":"true"},"#"),s(" Comment obtenir un march\xE9 de OpenBook")],-1),m=n("p",null,"Un march\xE9 sur OpenBook contient tous les ordres et les fonctionnalit\xE9s permettant de passer des ordres sur OpenBook. Pour tout ce que vous faites sur OpenBook, vous devez conna\xEEtre le march\xE9 avec lequel vous travaillez.",-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"comment-obtenir-les-carnets-d-ordres-de-serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-obtenir-les-carnets-d-ordres-de-serum","aria-hidden":"true"},"#"),s(" Comment obtenir les carnets d'ordres de Serum")],-1),f=n("p",null,"Les march\xE9s de Serum sont constitu\xE9s de carnets d'ordres qui comportent les offres et les demandes. Vous pouvez interroger ces informations afin de voir ce qui se passe sur le march\xE9 et agir en cons\xE9quence.",-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"comment-obtenir-les-carnets-d-ordres-de-OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-obtenir-les-carnets-d-ordres-de-OpenBook","aria-hidden":"true"},"#"),s(" Comment obtenir les carnets d'ordres de OpenBook")],-1),f=n("p",null,"Les march\xE9s de OpenBook sont constitu\xE9s de carnets d'ordres qui comportent les offres et les demandes. Vous pouvez interroger ces informations afin de voir ce qui se passe sur le march\xE9 et agir en cons\xE9quence.",-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"comment-obtenir-les-ordres-ouverts-actuels",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-obtenir-les-ordres-ouverts-actuels","aria-hidden":"true"},"#"),s(" Comment obtenir les ordres ouverts actuels")],-1),x=n("p",null,"En tant que trader, vous souhaitez conna\xEEtre les ordres ouverts en cours sur un march\xE9. Avec Serum, il est possible d'interroger vos ordres ouverts ou ceux de n'importe qui d'autre sur un march\xE9.",-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"comment-obtenir-les-ordres-ouverts-actuels",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-obtenir-les-ordres-ouverts-actuels","aria-hidden":"true"},"#"),s(" Comment obtenir les ordres ouverts actuels")],-1),x=n("p",null,"En tant que trader, vous souhaitez conna\xEEtre les ordres ouverts en cours sur un march\xE9. Avec OpenBook, il est possible d'interroger vos ordres ouverts ou ceux de n'importe qui d'autre sur un march\xE9.",-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/serum.html.d513a959.js b/docs/.vuepress/dist/assets/serum.html.d513a959.js index fe85b6089..fd1ec4cc6 100644 --- a/docs/.vuepress/dist/assets/serum.html.d513a959.js +++ b/docs/.vuepress/dist/assets/serum.html.d513a959.js @@ -1 +1 @@ -const e={key:"v-0a8f60b8",path:"/integrations/serum.html",title:"Serum",lang:"en-US",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"Solana Cookbook | Building on Serum"}],["meta",{name:"og:title",content:"Solana Cookbook | Building on Serum"}],["meta",{name:"description",content:"Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum."}],["meta",{name:"og:description",content:"Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"How to get a Serum market",slug:"how-to-get-a-serum-market",children:[]},{level:2,title:"How to get Serum order books",slug:"how-to-get-serum-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],git:{updatedTime:1646365808e3,contributors:[{name:"Jacob Creech",email:"82475023+jacobcreech@users.noreply.github.com",commits:1}]},filePathRelative:"integrations/serum.md"};export{e as data}; +const e={key:"v-0a8f60b8",path:"/integrations/OpenBook.html",title:"OpenBook",lang:"en-US",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"Solana Cookbook | Building on OpenBook"}],["meta",{name:"og:title",content:"Solana Cookbook | Building on OpenBook"}],["meta",{name:"description",content:"OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook."}],["meta",{name:"og:description",content:"OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"How to get a OpenBook market",slug:"how-to-get-a-OpenBook-market",children:[]},{level:2,title:"How to get OpenBook order books",slug:"how-to-get-OpenBook-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],git:{updatedTime:1646365808e3,contributors:[{name:"Jacob Creech",email:"82475023+jacobcreech@users.noreply.github.com",commits:1}]},filePathRelative:"integrations/OpenBook.md"};export{e as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.e7981cfb.js b/docs/.vuepress/dist/assets/serum.html.e7981cfb.js index 65623c42a..a2cc03cb6 100644 --- a/docs/.vuepress/dist/assets/serum.html.e7981cfb.js +++ b/docs/.vuepress/dist/assets/serum.html.e7981cfb.js @@ -1 +1 @@ -const e={key:"v-65f50ba4",path:"/vi/integrations/serum.html",title:"Serum",lang:"vi-VN",frontmatter:{title:"Serum",head:[["meta",{name:"title",content:"Solana Cookbook | Building on Serum"}],["meta",{name:"og:title",content:"Solana Cookbook | Building on Serum"}],["meta",{name:"description",content:"Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum."}],["meta",{name:"og:description",content:"Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"How to get a Serum market",slug:"how-to-get-a-serum-market",children:[]},{level:2,title:"How to get Serum order books",slug:"how-to-get-serum-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],git:{updatedTime:1658783638e3,contributors:[{name:"tuphan-dn",email:"71456318+tuphan-dn@users.noreply.github.com",commits:1}]},filePathRelative:"vi/integrations/serum.md"};export{e as data}; +const e={key:"v-65f50ba4",path:"/vi/integrations/OpenBook.html",title:"OpenBook",lang:"vi-VN",frontmatter:{title:"OpenBook",head:[["meta",{name:"title",content:"Solana Cookbook | Building on OpenBook"}],["meta",{name:"og:title",content:"Solana Cookbook | Building on OpenBook"}],["meta",{name:"description",content:"OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook."}],["meta",{name:"og:description",content:"OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook."}],["meta",{name:"og:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"og:image:alt",content:"Solana splash card"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:site",content:"@solanacookbook"}],["meta",{name:"twitter:image",content:"https://solanacookbook.com/cookbook-sharing-card.png"}],["meta",{name:"robots",content:"index,follow,noodp"}],["meta",{name:"googlebot",content:"index,follow"}]]},excerpt:"",headers:[{level:2,title:"How to get a OpenBook market",slug:"how-to-get-a-OpenBook-market",children:[]},{level:2,title:"How to get OpenBook order books",slug:"how-to-get-OpenBook-order-books",children:[]},{level:2,title:"How to get current open orders",slug:"how-to-get-current-open-orders",children:[]}],git:{updatedTime:1658783638e3,contributors:[{name:"tuphan-dn",email:"71456318+tuphan-dn@users.noreply.github.com",commits:1}]},filePathRelative:"vi/integrations/OpenBook.md"};export{e as data}; diff --git a/docs/.vuepress/dist/assets/serum.html.fa2c5d2c.js b/docs/.vuepress/dist/assets/serum.html.fa2c5d2c.js index 1ab869196..6237c98bc 100644 --- a/docs/.vuepress/dist/assets/serum.html.fa2c5d2c.js +++ b/docs/.vuepress/dist/assets/serum.html.fa2c5d2c.js @@ -1,5 +1,5 @@ -import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"serum",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#serum","aria-hidden":"true"},"#"),s(" Serum")],-1),d=n("p",null,"Serum is a protocol for decentralized exchanges built on Solana. You can use Serum to create new markets, get order books, trade, and more.",-1),b=n("h2",{id:"how-to-get-a-serum-market",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-a-serum-market","aria-hidden":"true"},"#"),s(" How to get a Serum market")],-1),m=n("p",null,"A market on Serum contains all the orders and capabilities to make orders on Serum. For everything you do on Serum you need to know the market you are working with.",-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app.55b1b60c.js";const i={},k=n("h1",{id:"OpenBook",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#OpenBook","aria-hidden":"true"},"#"),s(" OpenBook")],-1),d=n("p",null,"OpenBook is a protocol for decentralized exchanges built on Solana. You can use OpenBook to create new markets, get order books, trade, and more.",-1),b=n("h2",{id:"how-to-get-a-OpenBook-market",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-a-OpenBook-market","aria-hidden":"true"},"#"),s(" How to get a OpenBook market")],-1),m=n("p",null,"A market on OpenBook contains all the orders and capabilities to make orders on OpenBook. For everything you do on OpenBook you need to know the market you are working with.",-1),w=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -21,8 +21,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br"),n("span",{class:"line-number"},"18"),n("br"),n("span",{class:"line-number"},"19"),n("br"),n("span",{class:"line-number"},"20"),n("br"),n("span",{class:"line-number"},"21"),n("br"),n("span",{class:"line-number"},"22"),n("br")])],-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"const"),s(" market "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" Market"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"load"),n("span",{class:"token punctuation"},"("),s("connection"),n("span",{class:"token punctuation"},","),s(" marketAddress"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},","),s(" programAddress"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"how-to-get-serum-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-serum-order-books","aria-hidden":"true"},"#"),s(" How to get Serum order books")],-1),h=n("p",null,"Serum markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.",-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br")])],-1),g=n("h2",{id:"how-to-get-OpenBook-order-books",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-OpenBook-order-books","aria-hidden":"true"},"#"),s(" How to get OpenBook order books")],-1),h=n("p",null,"OpenBook markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.",-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" marketAddress "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),s(` @@ -54,8 +54,8 @@ import{_ as p,r as c,o as l,c as u,b as t,w as a,F as r,a as n,d as s}from"./app `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"let"),s(),n("span",{class:"token punctuation"},"["),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token keyword"},"of"),s(" asks"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getL2"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"20"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token builtin"},"console"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),s("price"),n("span",{class:"token punctuation"},","),s(" size"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"}"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"how-to-get-current-open-orders",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-current-open-orders","aria-hidden":"true"},"#"),s(" How to get current open orders")],-1),x=n("p",null,"As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with Serum.",-1),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/serum"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br")])],-1),v=n("h2",{id:"how-to-get-current-open-orders",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-get-current-open-orders","aria-hidden":"true"},"#"),s(" How to get current open orders")],-1),x=n("p",null,"As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with OpenBook.",-1),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Connection"),n("span",{class:"token punctuation"},","),s(" PublicKey "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Market "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/OpenBook"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"let"),s(" trader "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"new"),s(),n("span",{class:"token class-name"},"PublicKey"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.12bbf620.js b/docs/.vuepress/dist/assets/strata.html.12bbf620.js index 763b63dbd..9848a8814 100644 --- a/docs/.vuepress/dist/assets/strata.html.12bbf620.js +++ b/docs/.vuepress/dist/assets/strata.html.12bbf620.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),y=n("h2",{id:"how-to-buy-and-sell-a-token",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-buy-and-sell-a-token","aria-hidden":"true"},"#"),s(" How to buy and sell a token")],-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),v=n("h2",{id:"how-to-bootstrap-liquidity",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-bootstrap-liquidity","aria-hidden":"true"},"#"),s(" How to bootstrap liquidity")],-1),S=s("Strata can also sell tokens where you would like to manually manage the supply. This can be useful for liquidity bootstrapping before listing your token on a dex. You can read more about these "),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},x=s("here"),T=s(" or launch your own at "),M=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),P=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.28c4c18a.js b/docs/.vuepress/dist/assets/strata.html.28c4c18a.js index e2e82c1b7..a95e16017 100644 --- a/docs/.vuepress/dist/assets/strata.html.28c4c18a.js +++ b/docs/.vuepress/dist/assets/strata.html.28c4c18a.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),y=n("h2",{id:"cara-beli-dan-jual-token",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-beli-dan-jual-token","aria-hidden":"true"},"#"),s(" Cara beli dan jual token")],-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),v=n("h2",{id:"cara-bootstrap-liquidity",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-bootstrap-liquidity","aria-hidden":"true"},"#"),s(" Cara bootstrap liquidity")],-1),S=s("Strata juga dapat menjual token di mana Anda ingin mengelola persediaan secara manual. Ini dapat berguna untuk bootstrap likuiditas sebelum mendaftarkan token Anda pada sebuah dex. Anda dapat membaca lebih lanjut tentang ini "),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},T=s("disini"),M=s(" atau launch punya anda sendiri di "),x=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),P=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.4608aeed.js b/docs/.vuepress/dist/assets/strata.html.4608aeed.js index 4772b2342..b0ad6fe03 100644 --- a/docs/.vuepress/dist/assets/strata.html.4608aeed.js +++ b/docs/.vuepress/dist/assets/strata.html.4608aeed.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),y=n("h2",{id:"\u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30C8\u30FC\u30AF\u30F3\u306E\u58F2\u8CB7\u65B9\u6CD5")],-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),v=n("h2",{id:"\u6D41\u52D5\u6027\u306E\u30D5\u3099\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D5\u309A\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u6D41\u52D5\u6027\u306E\u30D5\u3099\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D5\u309A\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u6D41\u52D5\u6027\u306E\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u65B9\u6CD5")],-1),S=s("Strata \u306F\u3001\u4F9B\u7D66\u3092\u624B\u52D5\u3067\u7BA1\u7406\u3057\u305F\u3044\u5834\u5408\u306B\u30C8\u30FC\u30AF\u30F3\u3092\u8CA9\u58F2\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u30C8\u30FC\u30AF\u30F3\u3092dex\u306B\u30EA\u30B9\u30C8\u3059\u308B\u524D\u306E\u6D41\u52D5\u6027\u306E\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3053\u308C\u3089\u306E\u8A73\u7D30\u306B\u3064\u3044\u3066\u306F\u3001"),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},M=s("\u3053\u3061\u3089"),x=s("\u3092\u78BA\u8A8D\u3059\u308B\u304B\u3001"),T=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),P=s("\u3067\u72EC\u81EA\u306E\u3082\u306E\u3092\u30ED\u30FC\u30F3\u30C1\u3067\u304D\u307E\u3059\u3002"),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.6ce60e71.js b/docs/.vuepress/dist/assets/strata.html.6ce60e71.js index b6cad7de2..11c1c4924 100644 --- a/docs/.vuepress/dist/assets/strata.html.6ce60e71.js +++ b/docs/.vuepress/dist/assets/strata.html.6ce60e71.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),y=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35-buy-\u0E41\u0E25\u0E30-sell-a-token",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-buy-\u0E41\u0E25\u0E30-sell-a-token","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 buy \u0E41\u0E25\u0E30 sell a token")],-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),v=n("h2",{id:"\u0E27\u0E34\u0E18\u0E35-bootstrap-liquidity",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35-bootstrap-liquidity","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35 bootstrap liquidity")],-1),S=s("Strata \u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E02\u0E32\u0E22 tokens \u0E42\u0E14\u0E22\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E04\u0E27\u0E1A\u0E04\u0E38\u0E21 supply \u0E40\u0E2D\u0E07\u0E44\u0E14\u0E49 \u0E0B\u0E36\u0E48\u0E07\u0E21\u0E31\u0E19\u0E08\u0E30\u0E21\u0E35\u0E1B\u0E23\u0E30\u0E42\u0E22\u0E0A\u0E19\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E17\u0E33 liquidity bootstrapping \u0E01\u0E48\u0E2D\u0E19\u0E08\u0E30 list token \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E1A\u0E19 dex \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2D\u0E48\u0E32\u0E19\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21\u0E44\u0E14\u0E49 "),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},x=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),M=s(" \u0E2B\u0E23\u0E37\u0E2D\u0E1B\u0E25\u0E48\u0E2D\u0E22 token \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E2D\u0E07\u0E44\u0E14\u0E49\u0E17\u0E35\u0E48 "),T=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),P=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.97a02aa1.js b/docs/.vuepress/dist/assets/strata.html.97a02aa1.js index ec3dff21a..e3cc1202b 100644 --- a/docs/.vuepress/dist/assets/strata.html.97a02aa1.js +++ b/docs/.vuepress/dist/assets/strata.html.97a02aa1.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),h=n("h2",{id:"wie-man-einen-token-kauft-und-verkauft",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#wie-man-einen-token-kauft-und-verkauft","aria-hidden":"true"},"#"),s(" Wie man einen Token kauft und verkauft")],-1),y=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),_=n("h2",{id:"wie-man-liquiditat-aufbaut",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#wie-man-liquiditat-aufbaut","aria-hidden":"true"},"#"),s(" Wie man Liquidit\xE4t aufbaut")],-1),S=s("Strata kann auch Token verkaufen, wenn Sie den Vorrat manuell verwalten m\xF6chten. Dies kann f\xFCr das Liquidit\xE4ts-Bootstrapping n\xFCtzlich sein, bevor Sie Ihren Token auf einem Dex auflisten. Sie k\xF6nnen "),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},T=s("hier"),M=s(" mehr dar\xFCber lesen oder Ihre eigenen unter "),x=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),P=s(" starten."),A=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.c693a7c8.js b/docs/.vuepress/dist/assets/strata.html.c693a7c8.js index 763b63dbd..9848a8814 100644 --- a/docs/.vuepress/dist/assets/strata.html.c693a7c8.js +++ b/docs/.vuepress/dist/assets/strata.html.c693a7c8.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),y=n("h2",{id:"how-to-buy-and-sell-a-token",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-buy-and-sell-a-token","aria-hidden":"true"},"#"),s(" How to buy and sell a token")],-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),v=n("h2",{id:"how-to-bootstrap-liquidity",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-bootstrap-liquidity","aria-hidden":"true"},"#"),s(" How to bootstrap liquidity")],-1),S=s("Strata can also sell tokens where you would like to manually manage the supply. This can be useful for liquidity bootstrapping before listing your token on a dex. You can read more about these "),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},x=s("here"),T=s(" or launch your own at "),M=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),P=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/strata.html.d1c97a7c.js b/docs/.vuepress/dist/assets/strata.html.d1c97a7c.js index a7968f596..633f6ecc1 100644 --- a/docs/.vuepress/dist/assets/strata.html.d1c97a7c.js +++ b/docs/.vuepress/dist/assets/strata.html.d1c97a7c.js @@ -2,7 +2,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro SplTokenBonding`),n("span",{class:"token punctuation"},","),s(` ExponentialCurveConfig`),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(),n("span",{class:"token constant"},"NATIVE_MINT"),s(),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/spl-token"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` @@ -48,7 +48,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro buyTargetRoyaltyPercentage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"5"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br")])],-1),y=n("h2",{id:"comment-acheter-et-vendre-un-jeton",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-acheter-et-vendre-un-jeton","aria-hidden":"true"},"#"),s(" Comment acheter et vendre un jeton")],-1),h=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -75,7 +75,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br")])],-1),f=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" SplTokenBonding "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/spl-token-bonding"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` @@ -92,7 +92,7 @@ import{_ as l,r as p,o as u,c as r,b as t,w as a,a as n,F as i,e as k,d as s}fro slippage`),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"0.05"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br")])],-1),v=n("h2",{id:"comment-initier-la-liquidite",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-initier-la-liquidite","aria-hidden":"true"},"#"),s(" Comment initier la liquidit\xE9")],-1),S=s("Strata peut \xE9galement vendre des jetons lorsque vous souhaitez g\xE9rer manuellement son offre. Cela peut \xEAtre utile pour l'initiation de la liquidit\xE9 avant de lister votre jeton sur un dex. Vous pouvez en savoir plus \xE0 ce sujet "),B={href:"https://docs.strataprotocol.com/marketplace/lbc",target:"_blank",rel:"noopener noreferrer"},x=s("ici"),M=s(" ou lancez v\xF4tre jeton sur "),T=n("a",{href:"app.strataprotocol.com"},"Strata Launchpad",-1),j=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" MarketplaceSdk "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@strata-foundation/marketplace-sdk"'),n("span",{class:"token punctuation"},";"),s(` -`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token operator"},"=>"),s(),n("span",{class:"token punctuation"},"{"),s(` `),n("span",{class:"token keyword"},"const"),s(" provider "),n("span",{class:"token operator"},"="),s(" anchor"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getProvider"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.012baeb5.js b/docs/.vuepress/dist/assets/switchboard.html.012baeb5.js index 4ecda975a..dbbd999c3 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.012baeb5.js +++ b/docs/.vuepress/dist/assets/switchboard.html.012baeb5.js @@ -37,7 +37,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"create-a-new-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-new-aggregator-feed","aria-hidden":"true"},"#"),s(" Create a new aggregator feed")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"create-a-new-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-new-aggregator-feed","aria-hidden":"true"},"#"),s(" Create a new aggregator feed")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"how-to-create-a-feed-from-the-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-create-a-feed-from-the-publisher","aria-hidden":"true"},"#"),s(" How to Create a Feed from the Publisher")],-1),j=s("The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out "),U={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},z=s("here"),F=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"Switchboard's unique feature is that it allows you to create your own oracle and run it locally.",-1),J=n("h3",{id:"create-an-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-an-oracle","aria-hidden":"true"},"#"),s(" Create an oracle")],-1),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"how-to-create-a-feed-from-the-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-create-a-feed-from-the-publisher","aria-hidden":"true"},"#"),s(" How to Create a Feed from the Publisher")],-1),j=s("The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out "),U={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},z=s("here"),F=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"Switchboard's unique feature is that it allows you to create your own oracle and run it locally.",-1),J=n("h3",{id:"create-an-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-an-oracle","aria-hidden":"true"},"#"),s(" Create an oracle")],-1),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),on=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creating-a-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creating-a-vrf-account","aria-hidden":"true"},"#"),s(" Creating a VRF account")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creating-a-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creating-a-vrf-account","aria-hidden":"true"},"#"),s(" Creating a VRF account")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"request-randomness-from-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#request-randomness-from-vrf-account","aria-hidden":"true"},"#"),s(" Request Randomness from vrf account")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"request-randomness-from-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#request-randomness-from-vrf-account","aria-hidden":"true"},"#"),s(" Request Randomness from vrf account")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.4ee40e9f.js b/docs/.vuepress/dist/assets/switchboard.html.4ee40e9f.js index 4bbfa6474..f018cd52b 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.4ee40e9f.js +++ b/docs/.vuepress/dist/assets/switchboard.html.4ee40e9f.js @@ -37,7 +37,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"create-a-new-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-new-aggregator-feed","aria-hidden":"true"},"#"),s(" Create a new aggregator feed")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"create-a-new-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-new-aggregator-feed","aria-hidden":"true"},"#"),s(" Create a new aggregator feed")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-feed-\u0E08\u0E32\u0E01-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-feed-\u0E08\u0E32\u0E01-publisher","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Feed \u0E08\u0E32\u0E01 Publisher")],-1),j=s("\u0E43\u0E19 Switchboard documentation \u0E08\u0E30\u0E21\u0E35\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 feed \u0E08\u0E32\u0E01 publisher \u0E2D\u0E22\u0E48\u0E32\u0E07\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14 \u0E25\u0E2D\u0E07\u0E44\u0E1B\u0E14\u0E39\u0E44\u0E14\u0E49 "),U={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},z=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),F=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"\u0E04\u0E38\u0E13\u0E2A\u0E21\u0E1A\u0E31\u0E15\u0E34\u0E1E\u0E34\u0E40\u0E28\u0E29\u0E02\u0E2D\u0E07 Switchboard \u0E04\u0E37\u0E2D\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2A\u0E23\u0E49\u0E32\u0E07 oracle \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E2D\u0E07\u0E44\u0E14\u0E49\u0E17\u0E35\u0E48 local",-1),J=n("h3",{id:"\u0E2A\u0E23\u0E49\u0E32\u0E07-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E2A\u0E23\u0E49\u0E32\u0E07-oracle","aria-hidden":"true"},"#"),s(" \u0E2A\u0E23\u0E49\u0E32\u0E07 oracle")],-1),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-feed-\u0E08\u0E32\u0E01-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07-feed-\u0E08\u0E32\u0E01-publisher","aria-hidden":"true"},"#"),s(" \u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 Feed \u0E08\u0E32\u0E01 Publisher")],-1),j=s("\u0E43\u0E19 Switchboard documentation \u0E08\u0E30\u0E21\u0E35\u0E27\u0E34\u0E18\u0E35\u0E2A\u0E23\u0E49\u0E32\u0E07 feed \u0E08\u0E32\u0E01 publisher \u0E2D\u0E22\u0E48\u0E32\u0E07\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14 \u0E25\u0E2D\u0E07\u0E44\u0E1B\u0E14\u0E39\u0E44\u0E14\u0E49 "),U={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},z=s("\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48"),F=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"\u0E04\u0E38\u0E13\u0E2A\u0E21\u0E1A\u0E31\u0E15\u0E34\u0E1E\u0E34\u0E40\u0E28\u0E29\u0E02\u0E2D\u0E07 Switchboard \u0E04\u0E37\u0E2D\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2A\u0E23\u0E49\u0E32\u0E07 oracle \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E2D\u0E07\u0E44\u0E14\u0E49\u0E17\u0E35\u0E48 local",-1),J=n("h3",{id:"\u0E2A\u0E23\u0E49\u0E32\u0E07-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E2A\u0E23\u0E49\u0E32\u0E07-oracle","aria-hidden":"true"},"#"),s(" \u0E2A\u0E23\u0E49\u0E32\u0E07 oracle")],-1),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Run the container \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) \u0E04\u0E37\u0E2D pseudorandom function \u0E43\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E38\u0E48\u0E21 public-key \u0E17\u0E35\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1E\u0E34\u0E2A\u0E39\u0E08\u0E19\u0E4C\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32 outputs \u0E19\u0E31\u0E49\u0E19\u0E1C\u0E48\u0E32\u0E19\u0E01\u0E32\u0E23\u0E04\u0E33\u0E19\u0E27\u0E13\u0E21\u0E32\u0E2D\u0E1A\u0E48\u0E32\u0E07\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07

    \u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19 VRF account

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Run the container \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) \u0E04\u0E37\u0E2D pseudorandom function \u0E43\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E38\u0E48\u0E21 public-key \u0E17\u0E35\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1E\u0E34\u0E2A\u0E39\u0E08\u0E19\u0E4C\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32 outputs \u0E19\u0E31\u0E49\u0E19\u0E1C\u0E48\u0E32\u0E19\u0E01\u0E32\u0E23\u0E04\u0E33\u0E19\u0E27\u0E13\u0E21\u0E32\u0E2D\u0E1A\u0E48\u0E32\u0E07\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07

    \u0E01\u0E32\u0E23\u0E2D\u0E48\u0E32\u0E19 VRF account

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),on=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creating-a-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creating-a-vrf-account","aria-hidden":"true"},"#"),s(" Creating a VRF account")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creating-a-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creating-a-vrf-account","aria-hidden":"true"},"#"),s(" Creating a VRF account")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"\u0E02\u0E2D-randomness-\u0E08\u0E32\u0E01-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E02\u0E2D-randomness-\u0E08\u0E32\u0E01-vrf-account","aria-hidden":"true"},"#"),s(" \u0E02\u0E2D Randomness \u0E08\u0E32\u0E01 vrf account")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"\u0E02\u0E2D-randomness-\u0E08\u0E32\u0E01-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u0E02\u0E2D-randomness-\u0E08\u0E32\u0E01-vrf-account","aria-hidden":"true"},"#"),s(" \u0E02\u0E2D Randomness \u0E08\u0E32\u0E01 vrf account")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.8803939a.js b/docs/.vuepress/dist/assets/switchboard.html.8803939a.js index 85b8c8b13..0a3e25931 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.8803939a.js +++ b/docs/.vuepress/dist/assets/switchboard.html.8803939a.js @@ -37,7 +37,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B","aria-hidden":"true"},"#"),s(" \u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30A2\u30AF\u3099\u30EA\u30B1\u3099\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B","aria-hidden":"true"},"#"),s(" \u30A2\u30B0\u30EA\u30B2\u30FC\u30BF\u30FC\u30D5\u30A3\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),j=n("h3",{id:"\u30CF\u309A\u30D5\u3099\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30CF\u309A\u30D5\u3099\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30D1\u30D6\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C9\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5")],-1),U=s("\u516C\u5F0F\u306E Switchboard \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u30D1\u30D6\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C9\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5\u306E\u8A73\u7D30\u306A\u30A6\u30A9\u30FC\u30AF\u30B9\u30EB\u30FC\u304C\u3042\u308A\u307E\u3059\u3002"),z={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},F=s("\u3053\u3061\u3089"),B=s("\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002"),N=n("h2",{id:"oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracle","aria-hidden":"true"},"#"),s(" Oracle")],-1),J=n("p",null,"Switchboard\u306E\u30E6\u30CB\u30FC\u30AF\u306A\u6A5F\u80FD\u306F\u3001\u72EC\u81EA\u306EOracle\u3092\u4F5C\u6210\u3057\u3066\u30ED\u30FC\u30AB\u30EB\u3067\u5B9F\u884C\u3067\u304D\u308B\u3053\u3068\u3067\u3059\u3002",-1),G=n("h3",{id:"oracle\u3092\u4F5C\u6210",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracle\u3092\u4F5C\u6210","aria-hidden":"true"},"#"),s(" Oracle\u3092\u4F5C\u6210")],-1),M=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),j=n("h3",{id:"\u30CF\u309A\u30D5\u3099\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u30CF\u309A\u30D5\u3099\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C8\u3099\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5","aria-hidden":"true"},"#"),s(" \u30D1\u30D6\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C9\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5")],-1),U=s("\u516C\u5F0F\u306E Switchboard \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u30D1\u30D6\u30EA\u30C3\u30B7\u30E3\u30FC\u304B\u3089\u30D5\u30A3\u30FC\u30C9\u3092\u4F5C\u6210\u3059\u308B\u65B9\u6CD5\u306E\u8A73\u7D30\u306A\u30A6\u30A9\u30FC\u30AF\u30B9\u30EB\u30FC\u304C\u3042\u308A\u307E\u3059\u3002"),z={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},F=s("\u3053\u3061\u3089"),B=s("\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002"),N=n("h2",{id:"oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracle","aria-hidden":"true"},"#"),s(" Oracle")],-1),J=n("p",null,"Switchboard\u306E\u30E6\u30CB\u30FC\u30AF\u306A\u6A5F\u80FD\u306F\u3001\u72EC\u81EA\u306EOracle\u3092\u4F5C\u6210\u3057\u3066\u30ED\u30FC\u30AB\u30EB\u3067\u5B9F\u884C\u3067\u304D\u308B\u3053\u3068\u3067\u3059\u3002",-1),G=n("h3",{id:"oracle\u3092\u4F5C\u6210",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracle\u3092\u4F5C\u6210","aria-hidden":"true"},"#"),s(" Oracle\u3092\u4F5C\u6210")],-1),M=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),an=b('

    docker-compose up\u3092\u4F7F\u7528\u3057\u3066\u30B3\u30F3\u30C6\u30CA\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Oracle\u30AD\u30E5\u30FC\u3092\u4F7F\u7528\u3059\u308B\u6A29\u9650\u3092\u4ED8\u4E0E\u3055\u308C\u305FOracle\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u516C\u958B\u9375
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Oracle \u30CF\u30FC\u30C8\u30D3\u30FC\u30C8\u9593\u306E\u79D2\u6570\u3002\u30AD\u30E5\u30FC\u306B\u306F\u3001\u7570\u306A\u308BOracle\u30CF\u30FC\u30C8\u30D3\u30FC\u30C8\u8981\u4EF6\u304C\u3042\u308A\u307E\u3059\u3002\u63A8\u5968\u5024\u306F15\u3067\u3059
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - \u73FE\u5728\u306E\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067 configs.json \u3092\u63A2\u3057\u307E\u3059\u3002\u898B\u3064\u304B\u3089\u306A\u3044\u5834\u5408\u3001\u69CB\u6210\u306F\u30ED\u30FC\u30C9\u3055\u308C\u307E\u305B\u3093\u3002
    Description - \u30D7\u30E9\u30A4\u30D9\u30FC\u30C8API\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306EAPI\u30AD\u30FC\u3092\u542B\u3080
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - unwrap stake action\u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B Solana \u306E\u6B8B\u9AD8\u3002Oracle\u306ESolana \u6B8B\u9AD8\u304C\u8A2D\u5B9A\u3055\u308C\u305F\u3057\u304D\u3044\u5024\u3092\u4E0B\u56DE\u308B\u3068\u3001\u30CE\u30FC\u30C9\u306F\u81EA\u52D5\u7684\u306B\u30AA\u30E9\u30AF\u30EB\u306E\u30B9\u30C6\u30FC\u30AD\u30F3\u30B0\u30A6\u30A9\u30EC\u30C3\u30C8\u304B\u3089\u8CC7\u91D1\u3092\u30A2\u30F3\u30E9\u30C3\u30D7\u3057\u3001\u5C11\u306A\u304F\u3068\u30820.1 wSOL \u307E\u305F\u306F\u30AD\u30E5\u30FC\u306E\u6700\u5C0F\u30B9\u30C6\u30FC\u30AF\u8981\u4EF6\u3088\u308A10%\u591A\u3044\u91D1\u984D\u3092\u6B8B\u3057\u307E\u3059\u3002

    \u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570(VRF)

    \u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570(Verifiable Random Function/VRF)\u51FA\u529B\u304C\u6B63\u3057\u304F\u8A08\u7B97\u3055\u308C\u305F\u3053\u3068\u3092\u8A3C\u660E\u3059\u308B\u516C\u958B\u9375\u7591\u4F3C\u4E71\u6570\u95A2\u6570\u3067\u3059\u3002

    VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u53D6\u308A

    ',6),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),an=b('

    docker-compose up\u3092\u4F7F\u7528\u3057\u3066\u30B3\u30F3\u30C6\u30CA\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Oracle\u30AD\u30E5\u30FC\u3092\u4F7F\u7528\u3059\u308B\u6A29\u9650\u3092\u4ED8\u4E0E\u3055\u308C\u305FOracle\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u516C\u958B\u9375
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Oracle \u30CF\u30FC\u30C8\u30D3\u30FC\u30C8\u9593\u306E\u79D2\u6570\u3002\u30AD\u30E5\u30FC\u306B\u306F\u3001\u7570\u306A\u308BOracle\u30CF\u30FC\u30C8\u30D3\u30FC\u30C8\u8981\u4EF6\u304C\u3042\u308A\u307E\u3059\u3002\u63A8\u5968\u5024\u306F15\u3067\u3059
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - \u73FE\u5728\u306E\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067 configs.json \u3092\u63A2\u3057\u307E\u3059\u3002\u898B\u3064\u304B\u3089\u306A\u3044\u5834\u5408\u3001\u69CB\u6210\u306F\u30ED\u30FC\u30C9\u3055\u308C\u307E\u305B\u3093\u3002
    Description - \u30D7\u30E9\u30A4\u30D9\u30FC\u30C8API\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306EAPI\u30AD\u30FC\u3092\u542B\u3080
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - unwrap stake action\u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B Solana \u306E\u6B8B\u9AD8\u3002Oracle\u306ESolana \u6B8B\u9AD8\u304C\u8A2D\u5B9A\u3055\u308C\u305F\u3057\u304D\u3044\u5024\u3092\u4E0B\u56DE\u308B\u3068\u3001\u30CE\u30FC\u30C9\u306F\u81EA\u52D5\u7684\u306B\u30AA\u30E9\u30AF\u30EB\u306E\u30B9\u30C6\u30FC\u30AD\u30F3\u30B0\u30A6\u30A9\u30EC\u30C3\u30C8\u304B\u3089\u8CC7\u91D1\u3092\u30A2\u30F3\u30E9\u30C3\u30D7\u3057\u3001\u5C11\u306A\u304F\u3068\u30820.1 wSOL \u307E\u305F\u306F\u30AD\u30E5\u30FC\u306E\u6700\u5C0F\u30B9\u30C6\u30FC\u30AF\u8981\u4EF6\u3088\u308A10%\u591A\u3044\u91D1\u984D\u3092\u6B8B\u3057\u307E\u3059\u3002

    \u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570(VRF)

    \u691C\u8A3C\u53EF\u80FD\u306A\u78BA\u7387\u95A2\u6570(Verifiable Random Function/VRF)\u51FA\u529B\u304C\u6B63\u3057\u304F\u8A08\u7B97\u3055\u308C\u305F\u3053\u3068\u3092\u8A3C\u660E\u3059\u308B\u516C\u958B\u9375\u7591\u4F3C\u4E71\u6570\u95A2\u6570\u3067\u3059\u3002

    VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u8AAD\u307F\u53D6\u308A

    ',6),tn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),cn=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),pn=n("h3",{id:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210","aria-hidden":"true"},"#"),s(" VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210")],-1),ln=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),pn=n("h3",{id:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210","aria-hidden":"true"},"#"),s(" VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4F5C\u6210")],-1),ln=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),rn=n("h3",{id:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089randomness\u3092\u8981\u6C42\u3059\u308B",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089randomness\u3092\u8981\u6C42\u3059\u308B","aria-hidden":"true"},"#"),s(" VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089Randomness\u3092\u8981\u6C42\u3059\u308B")],-1),kn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),rn=n("h3",{id:"vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089randomness\u3092\u8981\u6C42\u3059\u308B",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#vrf\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089randomness\u3092\u8981\u6C42\u3059\u308B","aria-hidden":"true"},"#"),s(" VRF\u30A2\u30AB\u30A6\u30F3\u30C8\u304B\u3089Randomness\u3092\u8981\u6C42\u3059\u308B")],-1),kn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.9ffe2598.js b/docs/.vuepress/dist/assets/switchboard.html.9ffe2598.js index 4ecda975a..dbbd999c3 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.9ffe2598.js +++ b/docs/.vuepress/dist/assets/switchboard.html.9ffe2598.js @@ -37,7 +37,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"create-a-new-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-new-aggregator-feed","aria-hidden":"true"},"#"),s(" Create a new aggregator feed")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"create-a-new-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-new-aggregator-feed","aria-hidden":"true"},"#"),s(" Create a new aggregator feed")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"how-to-create-a-feed-from-the-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-create-a-feed-from-the-publisher","aria-hidden":"true"},"#"),s(" How to Create a Feed from the Publisher")],-1),j=s("The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out "),U={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},z=s("here"),F=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"Switchboard's unique feature is that it allows you to create your own oracle and run it locally.",-1),J=n("h3",{id:"create-an-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-an-oracle","aria-hidden":"true"},"#"),s(" Create an oracle")],-1),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"how-to-create-a-feed-from-the-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#how-to-create-a-feed-from-the-publisher","aria-hidden":"true"},"#"),s(" How to Create a Feed from the Publisher")],-1),j=s("The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out "),U={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},z=s("here"),F=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"Switchboard's unique feature is that it allows you to create your own oracle and run it locally.",-1),J=n("h3",{id:"create-an-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-an-oracle","aria-hidden":"true"},"#"),s(" Create an oracle")],-1),G=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),on=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creating-a-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creating-a-vrf-account","aria-hidden":"true"},"#"),s(" Creating a VRF account")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creating-a-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creating-a-vrf-account","aria-hidden":"true"},"#"),s(" Creating a VRF account")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"request-randomness-from-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#request-randomness-from-vrf-account","aria-hidden":"true"},"#"),s(" Request Randomness from vrf account")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"request-randomness-from-vrf-account",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#request-randomness-from-vrf-account","aria-hidden":"true"},"#"),s(" Request Randomness from vrf account")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.ced137c3.js b/docs/.vuepress/dist/assets/switchboard.html.ced137c3.js index 675aaf5a4..6a728a764 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.ced137c3.js +++ b/docs/.vuepress/dist/assets/switchboard.html.ced137c3.js @@ -37,7 +37,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"membuat-aggregator-feed-baru",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#membuat-aggregator-feed-baru","aria-hidden":"true"},"#"),s(" Membuat Aggregator Feed Baru")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),S=n("h3",{id:"membuat-aggregator-feed-baru",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#membuat-aggregator-feed-baru","aria-hidden":"true"},"#"),s(" Membuat Aggregator Feed Baru")],-1),q=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),V=n("h3",{id:"cara-membuat-a-feeds-dari-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-membuat-a-feeds-dari-publisher","aria-hidden":"true"},"#"),s(" Cara Membuat a Feeds Dari Publisher")],-1),I=s("Dokumentasi Switchboard resmi memiliki panduan mendalam tentang cara membuat feeds dari penerbit. Cek lebih lanjut "),F={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},U=s("here"),z=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),M=n("p",null,"Fitur unik Switchboard adalah memungkinkan Anda membuat oracle Anda sendiri dan menjalankannya secara lokal.",-1),N=n("h3",{id:"create-an-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-an-oracle","aria-hidden":"true"},"#"),s(" Create an oracle")],-1),J=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),V=n("h3",{id:"cara-membuat-a-feeds-dari-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#cara-membuat-a-feeds-dari-publisher","aria-hidden":"true"},"#"),s(" Cara Membuat a Feeds Dari Publisher")],-1),I=s("Dokumentasi Switchboard resmi memiliki panduan mendalam tentang cara membuat feeds dari penerbit. Cek lebih lanjut "),F={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},U=s("here"),z=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),M=n("p",null,"Fitur unik Switchboard adalah memungkinkan Anda membuat oracle Anda sendiri dan menjalankannya secara lokal.",-1),N=n("h3",{id:"create-an-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-an-oracle","aria-hidden":"true"},"#"),s(" Create an oracle")],-1),J=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Jalankan container dengan docker-compose up

    Konfigurasi Oracle

    Env VariableDefinisi
    ORACLE_KEYDibutuhkan
    Tipe - Public Key
    Deskripsi - Public key dari sebuah oracle account yang sudah mendapatkan izin untuk menggunakan oracle queue
    HEARTBEAT_INTERVALOpsional
    Tipe - Number (detik)
    Default - 30
    Deskripsi - detik antara oracle heartbeats. Queues bisa memiliki oracle heartbeat yang berbeda. Nilai yang direkomendasikan adalah 15
    GCP_CONFIG_BUCKETOpsional
    Tipe - GCP Resource Path
    Default - Cari file configs.json di folder, jika tidak ditemukan maka tidak ada config yang di load.
    Deskripsi - Mengandung API keys untuk private API endpoints
    UNWRAP_STAKE_THRESHOLDOptsonal
    Tipe - Number (jumlah SOL, Contoh. 1.55)
    Default - 0, disabled.
    Deskripsi - Jumlah saldo Solana untuk memicu tindakan pasak yang dibuka (_unwrap stake action_). Ketika balance Solana oracle turun di bawah ambang batas yang ditetapkan, node akan secara otomatis membuka dana dari dompet staking oracle, menyisakan setidaknya 0,1 wSOL atau 10% lebih banyak dari persyaratan stake minimum antrian.

    Fungsi Random yang Terverifikasi - Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) adalah fungsi pseudorandom dari public-key yang menyediakan bukti bahwa output telah di kalkukasi secara benar.

    Membaca akun VRF

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Jalankan container dengan docker-compose up

    Konfigurasi Oracle

    Env VariableDefinisi
    ORACLE_KEYDibutuhkan
    Tipe - Public Key
    Deskripsi - Public key dari sebuah oracle account yang sudah mendapatkan izin untuk menggunakan oracle queue
    HEARTBEAT_INTERVALOpsional
    Tipe - Number (detik)
    Default - 30
    Deskripsi - detik antara oracle heartbeats. Queues bisa memiliki oracle heartbeat yang berbeda. Nilai yang direkomendasikan adalah 15
    GCP_CONFIG_BUCKETOpsional
    Tipe - GCP Resource Path
    Default - Cari file configs.json di folder, jika tidak ditemukan maka tidak ada config yang di load.
    Deskripsi - Mengandung API keys untuk private API endpoints
    UNWRAP_STAKE_THRESHOLDOptsonal
    Tipe - Number (jumlah SOL, Contoh. 1.55)
    Default - 0, disabled.
    Deskripsi - Jumlah saldo Solana untuk memicu tindakan pasak yang dibuka (_unwrap stake action_). Ketika balance Solana oracle turun di bawah ambang batas yang ditetapkan, node akan secara otomatis membuka dana dari dompet staking oracle, menyisakan setidaknya 0,1 wSOL atau 10% lebih banyak dari persyaratan stake minimum antrian.

    Fungsi Random yang Terverifikasi - Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) adalah fungsi pseudorandom dari public-key yang menyediakan bukti bahwa output telah di kalkukasi secara benar.

    Membaca akun VRF

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),on=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"membuat-sebuah-akun-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#membuat-sebuah-akun-vrf","aria-hidden":"true"},"#"),s(" Membuat Sebuah Akun VRF")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"membuat-sebuah-akun-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#membuat-sebuah-akun-vrf","aria-hidden":"true"},"#"),s(" Membuat Sebuah Akun VRF")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),ln=n("h3",{id:"request-randomness-dari-akun-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#request-randomness-dari-akun-vrf","aria-hidden":"true"},"#"),s(" Request Randomness dari akun vrf")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),ln=n("h3",{id:"request-randomness-dari-akun-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#request-randomness-dari-akun-vrf","aria-hidden":"true"},"#"),s(" Request Randomness dari akun vrf")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.e9fb6fa3.js b/docs/.vuepress/dist/assets/switchboard.html.e9fb6fa3.js index 0d92ead48..378146eaa 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.e9fb6fa3.js +++ b/docs/.vuepress/dist/assets/switchboard.html.e9fb6fa3.js @@ -37,7 +37,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),R=n("h3",{id:"creer-un-nouveau-flux-d-agregation",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creer-un-nouveau-flux-d-agregation","aria-hidden":"true"},"#"),s(" Cr\xE9er un nouveau flux d'agr\xE9gation")],-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),R=n("h3",{id:"creer-un-nouveau-flux-d-agregation",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creer-un-nouveau-flux-d-agregation","aria-hidden":"true"},"#"),s(" Cr\xE9er un nouveau flux d'agr\xE9gation")],-1),S=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"comment-creer-un-flux-a-partir-du-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-creer-un-flux-a-partir-du-publisher","aria-hidden":"true"},"#"),s(" Comment Cr\xE9er un Flux \xE0 partir du Publisher")],-1),j=s("La documentation officielle de Switchboard explique en d\xE9tail comment cr\xE9er un flux \xE0 partir du Publisher. D\xE9couvrez-la "),z={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},F=s("ici"),U=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"La caract\xE9ristique unique de Switchboard est qu'il vous permet de cr\xE9er votre propre oracle et de l'ex\xE9cuter localement.",-1),G=n("h3",{id:"creer-un-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creer-un-oracle","aria-hidden":"true"},"#"),s(" Cr\xE9er un oracle")],-1),J=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),I=n("h3",{id:"comment-creer-un-flux-a-partir-du-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#comment-creer-un-flux-a-partir-du-publisher","aria-hidden":"true"},"#"),s(" Comment Cr\xE9er un Flux \xE0 partir du Publisher")],-1),j=s("La documentation officielle de Switchboard explique en d\xE9tail comment cr\xE9er un flux \xE0 partir du Publisher. D\xE9couvrez-la "),z={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},F=s("ici"),U=s("."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"La caract\xE9ristique unique de Switchboard est qu'il vous permet de cr\xE9er votre propre oracle et de l'ex\xE9cuter localement.",-1),G=n("h3",{id:"creer-un-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creer-un-oracle","aria-hidden":"true"},"#"),s(" Cr\xE9er un oracle")],-1),J=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Ex\xE9cutez le conteneur en utilisant docker-compose up

    Configuration de l'Oracle

    Variable EnvD\xE9finition
    ORACLE_KEYObligatoire
    Type - Cl\xE9 Publique
    Description - Cl\xE9 publique du compte de l'oracle qui a re\xE7u les permissions d'utiliser une file d'attente oracle
    HEARTBEAT_INTERVALFacultatif
    Type - Nombre (secondes)
    Par D\xE9faut - 30
    Description - Secondes entre les battements de c\u0153ur de l'oracle. Les files d'attente ont diff\xE9rentes exigences en mati\xE8re de battement de c\u0153ur de l'oracle. La valeur recommand\xE9e est de 15
    GCP_CONFIG_BUCKETFacultatif
    Type - GCP Resource Path
    Par D\xE9faut - Recherche le fichier configs.json dans le r\xE9pertoire de travail actuel. Si elle n'est pas trouv\xE9e, aucune configuration n'est charg\xE9e.
    Description - Contient les cl\xE9s API pour les points de terminaison API priv\xE9s
    UNWRAP_STAKE_THRESHOLDFacultatif
    Type - Nombre (montant de SOL amount, Ex. 1.55)
    Par D\xE9faut - 0, d\xE9sactiv\xE9.
    Description - Le montant de la balance Solana pour d\xE9clencher une action de d\xE9blocage de la mise. Lorsque le solde de Solana d'un oracle tombe sous le seuil fix\xE9, le n\u0153ud d\xE9bloque automatiquement les fonds du portefeuille de staking de l'oracle, laissant au moins 0,1 wSOL ou 10 % de plus que l'exigence de mise minimale de la file.

    Fonction Al\xE9atoire V\xE9rifiable(VRF)

    Une Fonction Al\xE9atoire V\xE9rifiable (VRF) est une fonction pseudo-al\xE9atoire \xE0 cl\xE9 publique qui fournit des preuves que ses sorties ont \xE9t\xE9 calcul\xE9es correctement.

    Lire un compte VRF

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    Ex\xE9cutez le conteneur en utilisant docker-compose up

    Configuration de l'Oracle

    Variable EnvD\xE9finition
    ORACLE_KEYObligatoire
    Type - Cl\xE9 Publique
    Description - Cl\xE9 publique du compte de l'oracle qui a re\xE7u les permissions d'utiliser une file d'attente oracle
    HEARTBEAT_INTERVALFacultatif
    Type - Nombre (secondes)
    Par D\xE9faut - 30
    Description - Secondes entre les battements de c\u0153ur de l'oracle. Les files d'attente ont diff\xE9rentes exigences en mati\xE8re de battement de c\u0153ur de l'oracle. La valeur recommand\xE9e est de 15
    GCP_CONFIG_BUCKETFacultatif
    Type - GCP Resource Path
    Par D\xE9faut - Recherche le fichier configs.json dans le r\xE9pertoire de travail actuel. Si elle n'est pas trouv\xE9e, aucune configuration n'est charg\xE9e.
    Description - Contient les cl\xE9s API pour les points de terminaison API priv\xE9s
    UNWRAP_STAKE_THRESHOLDFacultatif
    Type - Nombre (montant de SOL amount, Ex. 1.55)
    Par D\xE9faut - 0, d\xE9sactiv\xE9.
    Description - Le montant de la balance Solana pour d\xE9clencher une action de d\xE9blocage de la mise. Lorsque le solde de Solana d'un oracle tombe sous le seuil fix\xE9, le n\u0153ud d\xE9bloque automatiquement les fonds du portefeuille de staking de l'oracle, laissant au moins 0,1 wSOL ou 10 % de plus que l'exigence de mise minimale de la file.

    Fonction Al\xE9atoire V\xE9rifiable(VRF)

    Une Fonction Al\xE9atoire V\xE9rifiable (VRF) est une fonction pseudo-al\xE9atoire \xE0 cl\xE9 publique qui fournit des preuves que ses sorties ont \xE9t\xE9 calcul\xE9es correctement.

    Lire un compte VRF

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),on=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creer-un-compte-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creer-un-compte-vrf","aria-hidden":"true"},"#"),s(" Cr\xE9er un compte VRF")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"creer-un-compte-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#creer-un-compte-vrf","aria-hidden":"true"},"#"),s(" Cr\xE9er un compte VRF")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as l,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),ln=n("h3",{id:"demande-de-hasard-a-partir-d-un-compte-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#demande-de-hasard-a-partir-d-un-compte-vrf","aria-hidden":"true"},"#"),s(" Demande de Hasard \xE0 partir d'un compte VRF")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),ln=n("h3",{id:"demande-de-hasard-a-partir-d-un-compte-vrf",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#demande-de-hasard-a-partir-d-un-compte-vrf","aria-hidden":"true"},"#"),s(" Demande de Hasard \xE0 partir d'un compte VRF")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/assets/switchboard.html.ff653a7d.js b/docs/.vuepress/dist/assets/switchboard.html.ff653a7d.js index 70e9e61c5..ea32e5163 100644 --- a/docs/.vuepress/dist/assets/switchboard.html.ff653a7d.js +++ b/docs/.vuepress/dist/assets/switchboard.html.ff653a7d.js @@ -37,7 +37,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro publicKey`),n("span",{class:"token operator"},":"),s(" aggregatorKey"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"const"),s(" result"),n("span",{class:"token operator"},":"),s(),n("span",{class:"token builtin"},"any"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"await"),s(" aggregatorAccount"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"getLatestValue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),R=n("h3",{id:"erstellen-eines-neuen-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#erstellen-eines-neuen-aggregator-feed","aria-hidden":"true"},"#"),s(" Erstellen eines neuen Aggregator-Feed")],-1),P=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br")])],-1),R=n("h3",{id:"erstellen-eines-neuen-aggregator-feed",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#erstellen-eines-neuen-aggregator-feed","aria-hidden":"true"},"#"),s(" Erstellen eines neuen Aggregator-Feed")],-1),P=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` AggregatorAccount`),n("span",{class:"token punctuation"},","),s(` @@ -161,7 +161,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" val"),n("span",{class:"token punctuation"},":"),n("span",{class:"token keyword"},"f64"),s(),n("span",{class:"token operator"},"="),s(` aggregator `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),s(` `),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"try_into"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),L=n("h3",{id:"so-erstellen-sie-einen-feed-vom-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erstellen-sie-einen-feed-vom-publisher","aria-hidden":"true"},"#"),s(" So erstellen Sie einen Feed vom Publisher")],-1),V=s("Die offizielle Switchboard-Dokumentation enth\xE4lt eine ausf\xFChrliche Anleitung zum Erstellen eines Feeds vom Herausgeber. Sehen Sie es sich "),j={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},F=s("hier"),U=s(" an ."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"Die einzigartige Funktion von Switchboard besteht darin, dass Sie Ihr eigenes Orakel erstellen und lokal ausf\xFChren k\xF6nnen.",-1),G=n("h3",{id:"erstelen-eines-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#erstelen-eines-oracle","aria-hidden":"true"},"#"),s(" Erstelen eines Oracle")],-1),J=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br")])],-1),L=n("h3",{id:"so-erstellen-sie-einen-feed-vom-publisher",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#so-erstellen-sie-einen-feed-vom-publisher","aria-hidden":"true"},"#"),s(" So erstellen Sie einen Feed vom Publisher")],-1),V=s("Die offizielle Switchboard-Dokumentation enth\xE4lt eine ausf\xFChrliche Anleitung zum Erstellen eines Feeds vom Herausgeber. Sehen Sie es sich "),j={href:"https://docs.switchboard.xyz/feed/publisher",target:"_blank",rel:"noopener noreferrer"},F=s("hier"),U=s(" an ."),B=n("h2",{id:"oracles",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#oracles","aria-hidden":"true"},"#"),s(" Oracles")],-1),N=n("p",null,"Die einzigartige Funktion von Switchboard besteht darin, dass Sie Ihr eigenes Orakel erstellen und lokal ausf\xFChren k\xF6nnen.",-1),G=n("h3",{id:"erstelen-eines-oracle",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#erstelen-eines-oracle","aria-hidden":"true"},"#"),s(" Erstelen eines Oracle")],-1),J=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -226,7 +226,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token key atrule"},"secrets"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"PAYER_SECRETS"),n("span",{class:"token punctuation"},":"),s(` `),n("span",{class:"token key atrule"},"file"),n("span",{class:"token punctuation"},":"),s(` /filesystem/path/to/keypair.json -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    F\xFChren Sie den Container mit \u201Edocker-compose up\u201C aus

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifizierbare Zufallsfunktion (VRF)

    Eine verifizierbare Zufallsfunktion (VRF) ist eine Pseudozufallsfunktion mit \xF6ffentlichem Schl\xFCssel, die beweist, dass ihre Ausgaben korrekt berechnet wurden

    Lesen eines VRF-Kontos

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br"),n("span",{class:"line-number"},"12"),n("br"),n("span",{class:"line-number"},"13"),n("br"),n("span",{class:"line-number"},"14"),n("br"),n("span",{class:"line-number"},"15"),n("br"),n("span",{class:"line-number"},"16"),n("br"),n("span",{class:"line-number"},"17"),n("br")])],-1),sn=b('

    F\xFChren Sie den Container mit \u201Edocker-compose up\u201C aus

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifizierbare Zufallsfunktion (VRF)

    Eine verifizierbare Zufallsfunktion (VRF) ist eine Pseudozufallsfunktion mit \xF6ffentlichem Schl\xFCssel, die beweist, dass ihre Ausgaben korrekt berechnet wurden

    Lesen eines VRF-Kontos

    ',6),an=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -261,7 +261,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro `),n("span",{class:"token keyword"},"let"),s(" result "),n("span",{class:"token operator"},"="),s(" value"),n("span",{class:"token punctuation"},"["),n("span",{class:"token number"},"0"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"%"),s(),n("span",{class:"token number"},"256000"),s(),n("span",{class:"token keyword"},"as"),s(),n("span",{class:"token keyword"},"u128"),n("span",{class:"token punctuation"},";"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br"),n("span",{class:"line-number"},"7"),n("br"),n("span",{class:"line-number"},"8"),n("br"),n("span",{class:"line-number"},"9"),n("br"),n("span",{class:"line-number"},"10"),n("br"),n("span",{class:"line-number"},"11"),n("br")])],-1),on=n("div",{class:"language-rust ext-rs line-numbers-mode"},[n("pre",{class:"language-rust"},[n("code",null,[n("span",{class:"token keyword"},"let"),s(" vrf "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token class-name"},"VrfAccountData"),n("span",{class:"token punctuation"},"::"),n("span",{class:"token function"},"new"),n("span",{class:"token punctuation"},"("),s("vrf_account_info"),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"let"),s(" result_buffer "),n("span",{class:"token operator"},"="),s(" vrf"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"get_result"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token operator"},"?"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"erstellen-eines-vrf-kontos",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#erstellen-eines-vrf-kontos","aria-hidden":"true"},"#"),s(" Erstellen eines VRF-Kontos")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br")])],-1),cn=n("h3",{id:"erstellen-eines-vrf-kontos",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#erstellen-eines-vrf-kontos","aria-hidden":"true"},"#"),s(" Erstellen eines VRF-Kontos")],-1),pn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` @@ -320,7 +320,7 @@ import{_ as u,r as p,o as r,c as i,a as n,b as a,w as t,F as k,d as s,e as b}fro authority`),n("span",{class:"token operator"},":"),s(" vrfClientKey"),n("span",{class:"token punctuation"},","),s(),n("span",{class:"token comment"},"// vrf authority"),s(` keypair`),n("span",{class:"token operator"},":"),s(" vrfSecret"),n("span",{class:"token punctuation"},","),s(` `),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},";"),s(` -`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"fordern-von-zufalligkeit-vom-vrf-konto",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#fordern-von-zufalligkeit-vom-vrf-konto","aria-hidden":"true"},"#"),s(" Fordern von Zuf\xE4lligkeit vom vrf-Konto")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-serum/anchor"'),n("span",{class:"token punctuation"},";"),s(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("span",{class:"line-number"},"1"),n("br"),n("span",{class:"line-number"},"2"),n("br"),n("span",{class:"line-number"},"3"),n("br"),n("span",{class:"line-number"},"4"),n("br"),n("span",{class:"line-number"},"5"),n("br"),n("span",{class:"line-number"},"6"),n("br")])],-1),un=n("h3",{id:"fordern-von-zufalligkeit-vom-vrf-konto",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#fordern-von-zufalligkeit-vom-vrf-konto","aria-hidden":"true"},"#"),s(" Fordern von Zuf\xE4lligkeit vom vrf-Konto")],-1),rn=n("div",{class:"language-typescript ext-ts line-numbers-mode"},[n("pre",{class:"language-typescript"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token operator"},"*"),s(),n("span",{class:"token keyword"},"as"),s(" anchor "),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@project-OpenBook/anchor"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(" Keypair "),n("span",{class:"token punctuation"},"}"),s(),n("span",{class:"token keyword"},"from"),s(),n("span",{class:"token string"},'"@solana/web3.js"'),n("span",{class:"token punctuation"},";"),s(` `),n("span",{class:"token keyword"},"import"),s(),n("span",{class:"token punctuation"},"{"),s(` loadSwitchboardProgram`),n("span",{class:"token punctuation"},","),s(` diff --git a/docs/.vuepress/dist/de/guides/account-maps.html b/docs/.vuepress/dist/de/guides/account-maps.html index 4cd3b1e60..34c6abe0c 100644 --- a/docs/.vuepress/dist/de/guides/account-maps.html +++ b/docs/.vuepress/dist/de/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    Auf der Client-Seite können Sie „PublicKey.findProgramAddress()“ verwenden, um die erforderliche „Blog“- und „Post“-Kontoadresse zu erhalten, die Sie an „connection.getAccountInfo()“ übergeben können, um die Kontodaten abzurufen. Ein Beispiel ist unten gezeigt,

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    Auf der Client-Seite können Sie „PublicKey.findProgramAddress()“ verwenden, um die erforderliche „Blog“- und „Post“-Kontoadresse zu erhalten, die Sie an „connection.getAccountInfo()“ übergeben können, um die Kontodaten abzurufen. Ein Beispiel ist unten gezeigt,

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/de/guides/get-program-accounts.html b/docs/.vuepress/dist/de/guides/get-program-accounts.html
    index aa20fa3f8..8b6e601d2 100644
    --- a/docs/.vuepress/dist/de/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/de/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Programmkonten Abfragen

    Eine RPC-Methode, die alle Konten zurückgibt, die einem Programm gehören. Paginierung wird derzeit nicht unterstützt. Anfragen an „getProgramAccounts“ sollten die Parameter „dataSlice“ und/oder „filters“ enthalten, um die Antwortzeit zu verbessern und nur beabsichtigte Ergebnisse zurückzugeben.

    Fakten

    Parameters

    • „programId“: „string“ – Pubkey des abzufragenden Programms, bereitgestellt als base58-codierter String
    • (optional) configOrCommitment: object - Konfigurationsparameter, die die folgenden optionalen Felder enthalten:
      • (optional) commitment: string - Staatliche Verpflichtungopen in new window
      • (optional) encoding: string - Encoding für Kontodaten, entweder: base58, base64 oder jsonParsed. Beachten Sie, dass Benutzer von web3js stattdessen getParsedProgramAccountsopen in new window verwenden sollten.
      • (optional) dataSlice: object - Beschränken Sie die zurückgegebenen Kontodaten basierend auf:
        • offset: number - Anzahl der Bytes in Kontodaten, um mit der Rückgabe zu beginnen
        • length: number - Anzahl der zurückzugebenden Kontodaten-Bytes
      • (optional) filters: array - Filtern Sie die Ergebnisse mit den folgenden Filterobjekten:
        • memcmp: object - Passen Sie eine Reihe von Bytes an Kontodaten an:
          • offset: number - Anzahl der Bytes in den Kontodaten, um mit dem Vergleich zu beginnen
          • bytes: string - Zu vergleichende Daten, als Base58-codierter String, begrenzt auf 129 Bytes
        • dataSize: number - Vergleicht die Kontodatenlänge mit der bereitgestellten Datengröße
      • (optional) withContext: boolean - Das Ergebnis in ein [RpcResponse JSON-Objekt] einschließen (https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure)
    Antwort

    Standardmäßig gibt getProgramAccounts ein Array von JSON-Objekten mit der folgenden Struktur zurück:

    • pubkey: string - Der Konto-Pubkey als base58-codierter String
    • „account“: „object“ – ein JSON-Objekt mit den folgenden Unterfeldern:
      • lamports: number, Anzahl der dem Konto zugeordneten Lamports
      • owner: string, Der base58-kodierte Pubkey des Programms, dem das Konto zugewiesen wurde
      • „Daten“: „Zeichenfolge“ | „Objekt“ – Daten, die dem Konto zugeordnet sind, entweder als codierte Binärdaten oder im JSON-Format, abhängig vom bereitgestellten Codierungsparameter
      • executable: boolean, Angabe ob das Konto ein Programm enthält
      • rentEpoch: number, Die Epoche, in der dieses Konto das nächste mal Miete schuldet :::

    Deep Dive

    „getProgramAccounts“ ist eine vielseitige RPC-Methode, die alle Konten zurückgibt, die einem Programm gehören. Wir können "getProgramAccounts" für eine Reihe nützlicher Abfragen verwenden, z. B. um Folgendes zu finden:

    • Alle Token-Konten für eine bestimmte Brieftasche
    • Alle Token-Konten für eine bestimmte Minze (d. h. alle SRMopen in new window-Inhaber)
    • Alle benutzerdefinierten Konten für ein bestimmtes Programm (d. h. alle Benutzer von Mangoopen in new window)

    Trotz seiner Nützlichkeit wird getProgramAccounts aufgrund seiner derzeitigen Beschränkungen oft missverstanden. Viele der von „getProgramAccounts“ unterstützten Abfragen erfordern RPC-Knoten, um große Datensätze zu scannen. Diese Scans sind sowohl speicher- als auch ressourcenintensiv. Daher können zu häufige oder zu umfangreiche Aufrufe zu Verbindungszeitüberschreitungen führen. Darüber hinaus unterstützt der Endpunkt „getProgramAccounts“ zum Zeitpunkt der Erstellung dieses Dokuments keine Paginierung. Wenn die Ergebnisse einer Abfrage zu groß sind, wird die Antwort abgeschnitten.

    Um diese derzeitigen Beschränkungen zu umgehen, bietet getProgramAccounts eine Reihe nützlicher Parameter: nämlich dataSlice und die filters-Optionen memcmp und dataSize. Durch die Bereitstellung von Kombinationen dieser Parameter können wir den Umfang unserer Abfragen auf überschaubare und vorhersehbare Größen reduzieren.

    Ein gängiges Beispiel für „getProgramAccounts“ ist die Interaktion mit dem [SPL-Token-Programm] (https://spl.solana.com/token). Das Anfordern aller Konten des Token-Programms mit einem einfachen Aufruf würde eine enorme Datenmenge erfordern. Durch die Bereitstellung von Parametern können wir jedoch effizient nur die Daten anfordern, die wir verwenden möchten.

    filters

    Der häufigste Parameter, der mit „getProgramAccounts“ verwendet wird, ist das „filters“-Array. Dieses Array akzeptiert zwei Arten von Filtern, „dataSize“ und „memcmp“. Bevor Sie einen dieser Filter verwenden, sollten wir uns damit vertraut machen, wie die angeforderten Daten angeordnet und serialisiert sind.

    dataSize

    Im Fall des Token-Programms können wir sehen, dass Token-Konten 165 Byte lang sindopen in new window. Insbesondere hat ein Token-Konto acht verschiedene Felder, wobei jedes Feld eine vorhersagbare Anzahl von Bytes erfordert. Wir können anhand der folgenden Abbildung visualisieren, wie diese Daten angeordnet sind.

    Account Größe

    Wenn wir alle Token-Konten finden möchten, die unserer Wallet-Adresse gehören, könnten wir „{ dataSize: 165 }“ zu unserem „filters“-Array hinzufügen, um den Umfang unserer Abfrage auf nur Konten einzugrenzen, die genau 165 Byte lang sind. Dies allein würde jedoch nicht ausreichen. Wir müssten auch einen Filter hinzufügen, der nach Konten sucht, die unserer Adresse gehören. Dies können wir mit dem memcmp-Filter erreichen.

    memcmp

    Der memcmp-Filter oder "Speichervergleichsfilter" ermöglicht es uns, Daten in jedem Feld zu vergleichen, das in unserem Konto gespeichert ist. Insbesondere können wir nur nach Konten abfragen, die mit einem bestimmten Satz von Bytes an einer bestimmten Position übereinstimmen. memcmp erfordert zwei Argumente:

    • offset: Die Position, an der mit dem Datenvergleich begonnen werden soll. Diese Position wird in Bytes gemessen und als ganze Zahl ausgedrückt.
    • bytes: Die Daten, die mit den Daten des Kontos übereinstimmen sollen. Dies wird als Base-58-codierte Zeichenfolge dargestellt und sollte auf weniger als 129 Bytes begrenzt sein.

    Es ist wichtig zu beachten, dass "memcmp" nur Ergebnisse zurückgibt, die eine genaue Übereinstimmung mit "Bytes" sind. Derzeit werden keine Vergleiche für Werte unterstützt, die kleiner oder größer als die von uns bereitgestellten „Bytes“ sind.

    In Übereinstimmung mit unserem Beispiel für das Token-Programm können wir unsere Abfrage so ändern, dass nur Token-Konten zurückgegeben werden, die unserer Wallet-Adresse gehören. Wenn wir uns ein Token-Konto ansehen, können wir sehen, dass die ersten beiden Felder, die auf einem Token-Konto gespeichert sind, beide Pubkeys sind und dass jeder Pubkey 32 Bytes lang ist. Da „Eigentümer“ das zweite Feld ist, sollten wir unser „memcmp“ bei einem „Offset“ von 32 Bytes beginnen. Von hier aus suchen wir nach Konten, deren Eigentümerfeld mit unserer Brieftaschenadresse übereinstimmt.

    Account Größe

    Wir können diese Abfrage über das folgende Beispiel aufrufen:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Programmkonten Abfragen

    Eine RPC-Methode, die alle Konten zurückgibt, die einem Programm gehören. Paginierung wird derzeit nicht unterstützt. Anfragen an „getProgramAccounts“ sollten die Parameter „dataSlice“ und/oder „filters“ enthalten, um die Antwortzeit zu verbessern und nur beabsichtigte Ergebnisse zurückzugeben.

    Fakten

    Parameters

    • „programId“: „string“ – Pubkey des abzufragenden Programms, bereitgestellt als base58-codierter String
    • (optional) configOrCommitment: object - Konfigurationsparameter, die die folgenden optionalen Felder enthalten:
      • (optional) commitment: string - Staatliche Verpflichtungopen in new window
      • (optional) encoding: string - Encoding für Kontodaten, entweder: base58, base64 oder jsonParsed. Beachten Sie, dass Benutzer von web3js stattdessen getParsedProgramAccountsopen in new window verwenden sollten.
      • (optional) dataSlice: object - Beschränken Sie die zurückgegebenen Kontodaten basierend auf:
        • offset: number - Anzahl der Bytes in Kontodaten, um mit der Rückgabe zu beginnen
        • length: number - Anzahl der zurückzugebenden Kontodaten-Bytes
      • (optional) filters: array - Filtern Sie die Ergebnisse mit den folgenden Filterobjekten:
        • memcmp: object - Passen Sie eine Reihe von Bytes an Kontodaten an:
          • offset: number - Anzahl der Bytes in den Kontodaten, um mit dem Vergleich zu beginnen
          • bytes: string - Zu vergleichende Daten, als Base58-codierter String, begrenzt auf 129 Bytes
        • dataSize: number - Vergleicht die Kontodatenlänge mit der bereitgestellten Datengröße
      • (optional) withContext: boolean - Das Ergebnis in ein [RpcResponse JSON-Objekt] einschließen (https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure)
    Antwort

    Standardmäßig gibt getProgramAccounts ein Array von JSON-Objekten mit der folgenden Struktur zurück:

    • pubkey: string - Der Konto-Pubkey als base58-codierter String
    • „account“: „object“ – ein JSON-Objekt mit den folgenden Unterfeldern:
      • lamports: number, Anzahl der dem Konto zugeordneten Lamports
      • owner: string, Der base58-kodierte Pubkey des Programms, dem das Konto zugewiesen wurde
      • „Daten“: „Zeichenfolge“ | „Objekt“ – Daten, die dem Konto zugeordnet sind, entweder als codierte Binärdaten oder im JSON-Format, abhängig vom bereitgestellten Codierungsparameter
      • executable: boolean, Angabe ob das Konto ein Programm enthält
      • rentEpoch: number, Die Epoche, in der dieses Konto das nächste mal Miete schuldet :::

    Deep Dive

    „getProgramAccounts“ ist eine vielseitige RPC-Methode, die alle Konten zurückgibt, die einem Programm gehören. Wir können "getProgramAccounts" für eine Reihe nützlicher Abfragen verwenden, z. B. um Folgendes zu finden:

    • Alle Token-Konten für eine bestimmte Brieftasche
    • Alle Token-Konten für eine bestimmte Minze (d. h. alle SRMopen in new window-Inhaber)
    • Alle benutzerdefinierten Konten für ein bestimmtes Programm (d. h. alle Benutzer von Mangoopen in new window)

    Trotz seiner Nützlichkeit wird getProgramAccounts aufgrund seiner derzeitigen Beschränkungen oft missverstanden. Viele der von „getProgramAccounts“ unterstützten Abfragen erfordern RPC-Knoten, um große Datensätze zu scannen. Diese Scans sind sowohl speicher- als auch ressourcenintensiv. Daher können zu häufige oder zu umfangreiche Aufrufe zu Verbindungszeitüberschreitungen führen. Darüber hinaus unterstützt der Endpunkt „getProgramAccounts“ zum Zeitpunkt der Erstellung dieses Dokuments keine Paginierung. Wenn die Ergebnisse einer Abfrage zu groß sind, wird die Antwort abgeschnitten.

    Um diese derzeitigen Beschränkungen zu umgehen, bietet getProgramAccounts eine Reihe nützlicher Parameter: nämlich dataSlice und die filters-Optionen memcmp und dataSize. Durch die Bereitstellung von Kombinationen dieser Parameter können wir den Umfang unserer Abfragen auf überschaubare und vorhersehbare Größen reduzieren.

    Ein gängiges Beispiel für „getProgramAccounts“ ist die Interaktion mit dem [SPL-Token-Programm] (https://spl.solana.com/token). Das Anfordern aller Konten des Token-Programms mit einem einfachen Aufruf würde eine enorme Datenmenge erfordern. Durch die Bereitstellung von Parametern können wir jedoch effizient nur die Daten anfordern, die wir verwenden möchten.

    filters

    Der häufigste Parameter, der mit „getProgramAccounts“ verwendet wird, ist das „filters“-Array. Dieses Array akzeptiert zwei Arten von Filtern, „dataSize“ und „memcmp“. Bevor Sie einen dieser Filter verwenden, sollten wir uns damit vertraut machen, wie die angeforderten Daten angeordnet und serialisiert sind.

    dataSize

    Im Fall des Token-Programms können wir sehen, dass Token-Konten 165 Byte lang sindopen in new window. Insbesondere hat ein Token-Konto acht verschiedene Felder, wobei jedes Feld eine vorhersagbare Anzahl von Bytes erfordert. Wir können anhand der folgenden Abbildung visualisieren, wie diese Daten angeordnet sind.

    Account Größe

    Wenn wir alle Token-Konten finden möchten, die unserer Wallet-Adresse gehören, könnten wir „{ dataSize: 165 }“ zu unserem „filters“-Array hinzufügen, um den Umfang unserer Abfrage auf nur Konten einzugrenzen, die genau 165 Byte lang sind. Dies allein würde jedoch nicht ausreichen. Wir müssten auch einen Filter hinzufügen, der nach Konten sucht, die unserer Adresse gehören. Dies können wir mit dem memcmp-Filter erreichen.

    memcmp

    Der memcmp-Filter oder "Speichervergleichsfilter" ermöglicht es uns, Daten in jedem Feld zu vergleichen, das in unserem Konto gespeichert ist. Insbesondere können wir nur nach Konten abfragen, die mit einem bestimmten Satz von Bytes an einer bestimmten Position übereinstimmen. memcmp erfordert zwei Argumente:

    • offset: Die Position, an der mit dem Datenvergleich begonnen werden soll. Diese Position wird in Bytes gemessen und als ganze Zahl ausgedrückt.
    • bytes: Die Daten, die mit den Daten des Kontos übereinstimmen sollen. Dies wird als Base-58-codierte Zeichenfolge dargestellt und sollte auf weniger als 129 Bytes begrenzt sein.

    Es ist wichtig zu beachten, dass "memcmp" nur Ergebnisse zurückgibt, die eine genaue Übereinstimmung mit "Bytes" sind. Derzeit werden keine Vergleiche für Werte unterstützt, die kleiner oder größer als die von uns bereitgestellten „Bytes“ sind.

    In Übereinstimmung mit unserem Beispiel für das Token-Programm können wir unsere Abfrage so ändern, dass nur Token-Konten zurückgegeben werden, die unserer Wallet-Adresse gehören. Wenn wir uns ein Token-Konto ansehen, können wir sehen, dass die ersten beiden Felder, die auf einem Token-Konto gespeichert sind, beide Pubkeys sind und dass jeder Pubkey 32 Bytes lang ist. Da „Eigentümer“ das zweite Feld ist, sollten wir unser „memcmp“ bei einem „Offset“ von 32 Bytes beginnen. Von hier aus suchen wir nach Konten, deren Eigentümerfeld mit unserer Brieftaschenadresse übereinstimmt.

    Account Größe

    Wir können diese Abfrage über das folgende Beispiel aufrufen:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/de/integrations/index.html b/docs/.vuepress/dist/de/integrations/index.html
    index 310320c35..fceb5a134 100644
    --- a/docs/.vuepress/dist/de/integrations/index.html
    +++ b/docs/.vuepress/dist/de/integrations/index.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Getting Started with Integrations

    The Solana Cookbook integrations provides a set of examples and references for anyone to build on top of other protocols on Solana.

    The power of Solana comes from the ability to integrate with other protocols, building on top of existing infrastructure to make something better.

    Composability is Key

    Making your program easy to use and extend will grow both your program and the entire Solana ecosystem. Don't reinvent the wheel, build on top of existing protocols and bootstrap your userbase.

    Adapt and build on top of other programs or libraries and unlock new capabilities for Solana.

    Contributing

    If you are interested in contributing to integrations, please checkout the contribution guidelinesopen in new window.

    Last Updated:
    Contributors: nyk
    +

    Getting Started with Integrations

    The Solana Cookbook integrations provides a set of examples and references for anyone to build on top of other protocols on Solana.

    The power of Solana comes from the ability to integrate with other protocols, building on top of existing infrastructure to make something better.

    Composability is Key

    Making your program easy to use and extend will grow both your program and the entire Solana ecosystem. Don't reinvent the wheel, build on top of existing protocols and bootstrap your userbase.

    Adapt and build on top of other programs or libraries and unlock new capabilities for Solana.

    Contributing

    If you are interested in contributing to integrations, please checkout the contribution guidelinesopen in new window.

    Last Updated:
    Contributors: nyk
    diff --git a/docs/.vuepress/dist/de/integrations/jupiter.html b/docs/.vuepress/dist/de/integrations/jupiter.html index bfafc8b9d..184d99060 100644 --- a/docs/.vuepress/dist/de/integrations/jupiter.html +++ b/docs/.vuepress/dist/de/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    Jupiter ist der wichtigste Liquiditätsaggregator für Solana und bietet die größte Auswahl an Token und die beste Route Discovery zwischen allen Token-Paaren.

    Installation

    @jup-ag/core ist das Core-Paket, das verwendet wird, um mit Jupiter-On-Chain-Programmen zu interagieren, um Swaps zwischen zwei möglichen Token-Paaren durchzuführen.

    yarn add @jup-ag/core
    +    

    Jupiter

    Jupiter ist der wichtigste Liquiditätsaggregator für Solana und bietet die größte Auswahl an Token und die beste Route Discovery zwischen allen Token-Paaren.

    Installation

    @jup-ag/core ist das Core-Paket, das verwendet wird, um mit Jupiter-On-Chain-Programmen zu interagieren, um Swaps zwischen zwei möglichen Token-Paaren durchzuführen.

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    Abrufen der Token-Liste von Jupiter

    Alle möglichen Token, die mit Jupiter für ein bestimmtes Netzwerk ausgetauscht werden können, werden abgerufen.

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    So verwenden Sie die Jupiter-API

    Dies ist der einfachste Weg, mit Jupiter-Programmen zu interagieren, um zwei beliebige bereitgestellte Token auszutauschen.

    Installation

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    Abrufen der Routenkarte

    Diese API ruft alle verfügbaren Token ab, die mit der Jupiter-API ausgetauscht werden können. Eine Liste aller möglichen Token-Routen wird hier abgerufen und „allInputMints“ enthält die Liste aller möglichen Input-Token nach Mint-Adresse und „swappableOutputForSol“ enthält alle möglichen Token, die in diesem Fall gegen SOL ausgetauscht werden können.

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/de/integrations/mango.html b/docs/.vuepress/dist/de/integrations/mango.html
    index 6d69924a5..8ee9ad93f 100644
    --- a/docs/.vuepress/dist/de/integrations/mango.html
    +++ b/docs/.vuepress/dist/de/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mango bietet einen einzigen Ort um Kryptoassets über eine On-Chain-Risiko-Engine zum Verleihen, Leihen, Tauschen und Leverage Handeln. Sie können sich über die Client-API-Bibliotheken mit dem On-Chain-Programm von Mango verbinden. Sie benötigen außerdem die Solana-Javascript-API-Bibliothek.

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mango bietet einen einzigen Ort um Kryptoassets über eine On-Chain-Risiko-Engine zum Verleihen, Leihen, Tauschen und Leverage Handeln. Sie können sich über die Client-API-Bibliotheken mit dem On-Chain-Programm von Mango verbinden. Sie benötigen außerdem die Solana-Javascript-API-Bibliothek.

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    So erhalten Sie eine Mango-Gruppe

    Eine Mangogruppe ist ein Korb mit querrandigen Spielmarken. Es enthält umfassende Marktinformationen über Token, Serum-Dex-Märkte, Tätermärkte, Orakel, Versicherungsfonds und Gebührentresore. Jede Version von Mango Markets verwendet eine andere Mango-Gruppe, die andere enthält Token. Die aktuelle v3-Gruppe ist „mainnet.1“. Hier ist eine Tabelle mit den verschiedenen Gruppen:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    Wenn Sie die v2-Gruppen verwenden möchten, müssen Sie die v2-Clientbibliothek verwenden. Du kannst es hieropen in new window finden

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    So erhalten Sie eine Mango-Gruppe

    Eine Mangogruppe ist ein Korb mit querrandigen Spielmarken. Es enthält umfassende Marktinformationen über Token, OpenBook-Dex-Märkte, Tätermärkte, Orakel, Versicherungsfonds und Gebührentresore. Jede Version von Mango Markets verwendet eine andere Mango-Gruppe, die andere enthält Token. Die aktuelle v3-Gruppe ist „mainnet.1“. Hier ist eine Tabelle mit den verschiedenen Gruppen:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    Wenn Sie die v2-Gruppen verwenden möchten, müssen Sie die v2-Clientbibliothek verwenden. Du kannst es hieropen in new window finden

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    So platzieren Sie eine Spot-Order

    Mango interagiert mit dem Serum Protocol, um Spot-Orders auf den Märkten zu platzieren. Sie können eine Spot Order bestellen, indem Sie dies tun. Die Referenz für die placeSpotOrder-Funktion finden Sie hieropen in new window. Mango hat eine Konfigurationsdatei, die Informationen zu Gruppen, Märkten, Token und Orakeln enthält. Sie finden es hieropen in new window. Wir verwenden Informationen aus dieser Datei, um die richtige Gruppe und den richtigen Markt zu finden.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    So platzieren Sie eine Spot-Order

    Mango interagiert mit dem OpenBook Protocol, um Spot-Orders auf den Märkten zu platzieren. Sie können eine Spot Order bestellen, indem Sie dies tun. Die Referenz für die placeSpotOrder-Funktion finden Sie hieropen in new window. Mango hat eine Konfigurationsdatei, die Informationen zu Gruppen, Märkten, Token und Orakeln enthält. Sie finden es hieropen in new window. Wir verwenden Informationen aus dieser Datei, um die richtige Gruppe und den richtigen Markt zu finden.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    So laden Sie Gebote

    Mango verwendet die Marktinformationen von Serum Protocol, um Gebote zu laden. Sie können sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie können hieropen in new window mehr über Serum Märkte erfahren

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    So laden Sie Gebote

    Mango verwendet die Marktinformationen von OpenBook Protocol, um Gebote zu laden. Sie können sie direkt aus OpenBook laden, um mit Mango zu arbeiten. Sie können hieropen in new window mehr über OpenBook Märkte erfahren

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    How to load asks

    Mango verwendet die Marktinformationen von Serum Protocol, um Anfragen zu laden. Sie können sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie können hieropen in new window mehr über die Märkte von Serum erfahren

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to load asks

    Mango verwendet die Marktinformationen von OpenBook Protocol, um Anfragen zu laden. Sie können sie direkt aus OpenBook laden, um mit Mango zu arbeiten. Sie können hieropen in new window mehr über die Märkte von OpenBook erfahren

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/de/integrations/pyth.html b/docs/.vuepress/dist/de/integrations/pyth.html
    index bd2bc900c..98b0d393f 100644
    --- a/docs/.vuepress/dist/de/integrations/pyth.html
    +++ b/docs/.vuepress/dist/de/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pyth ist ein Oracle, mit dem reale Finanz- und Kryptomarktdaten abgerufen werden. Pyth Oracle kann von On-Chain-Programmen zum Konsumieren von Daten für eine Vielzahl von Anwendungsfällen verwendet werden.

    Verwendung von Pyth im Client

    Pyth stellt eine JavaScript/TypeScript-Bibliothek namens @pythnetwork/client bereit. Diese Bibliothek kann zum Lesen von On-Chain-Pyth-Daten für Off-Chain-Anwendungen verwendet werden, z. B. zum Anzeigen des Pyth-Preises auf einer Website. Erfahren Sie mehr darüber hieropen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pyth ist ein Oracle, mit dem reale Finanz- und Kryptomarktdaten abgerufen werden. Pyth Oracle kann von On-Chain-Programmen zum Konsumieren von Daten für eine Vielzahl von Anwendungsfällen verwendet werden.

    Verwendung von Pyth im Client

    Pyth stellt eine JavaScript/TypeScript-Bibliothek namens @pythnetwork/client bereit. Diese Bibliothek kann zum Lesen von On-Chain-Pyth-Daten für Off-Chain-Anwendungen verwendet werden, z. B. zum Anzeigen des Pyth-Preises auf einer Website. Erfahren Sie mehr darüber hieropen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    Other Resources

    Last Updated:
    Contributors: nyk
    +

    Other Resources

    Last Updated:
    Contributors: nyk
    diff --git a/docs/.vuepress/dist/de/integrations/react-native.html b/docs/.vuepress/dist/de/integrations/react-native.html index 2da47ff6e..db4f6a808 100644 --- a/docs/.vuepress/dist/de/integrations/react-native.html +++ b/docs/.vuepress/dist/de/integrations/react-native.html @@ -27,7 +27,7 @@ -

    React Native und Solana

    React Native ist ein Open-Source-UI-Software-Framework, das zur Entwicklung von Mobil-, Web- und Desktop-Anwendungen verwendet wird, indem es Entwicklern ermöglicht, das React-Framework zusammen mit nativen Plattformfunktionen zu verwenden. Mit dem Solana SDK ausgestattet, ist dies eine großartige Plattform, um schnell leistungsstarke native Crypto-Apps zu erstellen.

    Der schnellste Weg, um mit React Native und Solana zu beginnen, ist die Verwendung des Solana DApp Scaffold for React Native.

    How to use @solana/web3.js in a React Native app

    In diesem Tutorial erfahren Sie, wie Sie eine neue React Native-App erstellen und das SDK „@solana/web3.js“ und seine Abhängigkeiten installieren und konfigurieren.

    Wenn Sie bereits über eine vorhandene App verfügen, fahren Sie mit Installation der Abhängigkeiten fort.

    Erstellen Sie eine neue Anwendung

    Wir starten eine neue React Native-Anwendung, die TypeScript verwendet, dann cd in das Projektverzeichnis, wo wir den Rest der Befehle ausführen werden.

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
    +    

    React Native und Solana

    React Native ist ein Open-Source-UI-Software-Framework, das zur Entwicklung von Mobil-, Web- und Desktop-Anwendungen verwendet wird, indem es Entwicklern ermöglicht, das React-Framework zusammen mit nativen Plattformfunktionen zu verwenden. Mit dem Solana SDK ausgestattet, ist dies eine großartige Plattform, um schnell leistungsstarke native Crypto-Apps zu erstellen.

    Der schnellste Weg, um mit React Native und Solana zu beginnen, ist die Verwendung des Solana DApp Scaffold for React Native.

    How to use @solana/web3.js in a React Native app

    In diesem Tutorial erfahren Sie, wie Sie eine neue React Native-App erstellen und das SDK „@solana/web3.js“ und seine Abhängigkeiten installieren und konfigurieren.

    Wenn Sie bereits über eine vorhandene App verfügen, fahren Sie mit Installation der Abhängigkeiten fort.

    Erstellen Sie eine neue Anwendung

    Wir starten eine neue React Native-Anwendung, die TypeScript verwendet, dann cd in das Projektverzeichnis, wo wir den Rest der Befehle ausführen werden.

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
     cd SolanaReactNative
     

    Abhängigkeiten installieren

    Als nächstes installieren wir die Abhängigkeiten. Das Solana JavaScript SDK, ein Paket zum Patchen des React Native Build-Systems (Metro), ein sicherer Zufallszahlengenerator und ein Fix zum Patchen der fehlenden „URL“-Klasse von React Native.

    yarn add \
       @solana/web3.js \
    diff --git a/docs/.vuepress/dist/de/integrations/serum.html b/docs/.vuepress/dist/de/integrations/serum.html
    index 9b6062eda..8d5526ea8 100644
    --- a/docs/.vuepress/dist/de/integrations/serum.html
    +++ b/docs/.vuepress/dist/de/integrations/serum.html
    @@ -22,13 +22,13 @@
     				document.documentElement.classList.toggle('dark', true);
     			}
         
    -    Serum | Solana Cookbook
    -    
    +    OpenBook | Solana Cookbook
    +    
         
       
       
    -    

    Serum

    Serum ist ein auf Solana basierendes Protokoll für den dezentralisierten Austausch. Du kannst Serum verwenden, um neue Märkte zu schaffen, Auftragsbücher zu erhalten, Handel zu treiben und vieles mehr.

    So erhalten Sie einen Serummarkt

    Ein Markt auf Serum enthält alle Bestellungen und Möglichkeiten, um Bestellungen zu tätigen auf Serum. Für alles, was Sie mit Serum tun, müssen Sie den Markt kennen arbeiten mit.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBook ist ein auf Solana basierendes Protokoll für den dezentralisierten Austausch. Du kannst OpenBook verwenden, um neue Märkte zu schaffen, Auftragsbücher zu erhalten, Handel zu treiben und vieles mehr.

    So erhalten Sie einen OpenBookmarkt

    Ein Markt auf OpenBook enthält alle Bestellungen und Möglichkeiten, um Bestellungen zu tätigen auf OpenBook. Für alles, was Sie mit OpenBook tun, müssen Sie den Markt kennen arbeiten mit.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    So erhalten Sie Serum-Bestellbücher

    Serum-Märkte bestehen aus Orderbüchern mit Geboten und Nachfragen. Du kannst Fragen Sie diese Informationen ab, damit Sie sehen können, was auf dem Markt vor sich geht und handle entsprechend.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    So erhalten Sie OpenBook-Bestellbücher

    OpenBook-Märkte bestehen aus Orderbüchern mit Geboten und Nachfragen. Du kannst Fragen Sie diese Informationen ab, damit Sie sehen können, was auf dem Markt vor sich geht und handle entsprechend.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    So erhalten Sie aktuelle offene Bestellungen

    Als Trader werden Sie wissen wollen, welche aktuellen offenen Orders Sie auf einem Markt haben, können Sie Ihre oder die offenen Orders anderer Personen auf einem Markt mit Serum abfragen.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    So erhalten Sie aktuelle offene Bestellungen

    Als Trader werden Sie wissen wollen, welche aktuellen offenen Orders Sie auf einem Markt haben, können Sie Ihre oder die offenen Orders anderer Personen auf einem Markt mit OpenBook abfragen.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/de/integrations/strata.html b/docs/.vuepress/dist/de/integrations/strata.html
    index a3624e537..463d64929 100644
    --- a/docs/.vuepress/dist/de/integrations/strata.html
    +++ b/docs/.vuepress/dist/de/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strata ist ein Protokoll zum Starten von Token, das auf Solana basiert. Sie können Strata verwenden, um jede Art von fungiblen Token zu starten, von sozialen Token bis hin zu Dao- und Gamefi-Token. Sie können auch Schichten mit allem zusammenstellen, das Festpreismechanismen verwendet, um dynamische Preismechanismen wie z. B. die Metaplex CandyMachine zu erhalten.

    Ausführlichere Dokumente sind hier verfügbar . Sie können auch die GUI unter Strata Launchpad verwenden.

    So erstellen Sie ein vollständig verwaltetes Token

    Ein vollständig verwalteter Strata-Token ist ein Token, bei dem die Liquidität durch das Protokoll verwaltet wird. Das Ergebnis ist, dass Sie sofort einen handelbaren Token erhalten, ohne dass Pools oder Liquiditätsanbieter erforderlich sind. Ein vollständig verwaltetes Token ist ein normales spl-Token mit Metaplex-Token-Metadaten und einer zugehörigen Bindungskurve. Die Bindungskurve verwaltet die Liquidität, die Preisgestaltung und das Angebot dieses Tokens.

    Press </> button to view full source
    import {
    +    

    Strata

    Strata ist ein Protokoll zum Starten von Token, das auf Solana basiert. Sie können Strata verwenden, um jede Art von fungiblen Token zu starten, von sozialen Token bis hin zu Dao- und Gamefi-Token. Sie können auch Schichten mit allem zusammenstellen, das Festpreismechanismen verwendet, um dynamische Preismechanismen wie z. B. die Metaplex CandyMachine zu erhalten.

    Ausführlichere Dokumente sind hier verfügbar . Sie können auch die GUI unter Strata Launchpad verwenden.

    So erstellen Sie ein vollständig verwaltetes Token

    Ein vollständig verwalteter Strata-Token ist ein Token, bei dem die Liquidität durch das Protokoll verwaltet wird. Das Ergebnis ist, dass Sie sofort einen handelbaren Token erhalten, ohne dass Pools oder Liquiditätsanbieter erforderlich sind. Ein vollständig verwaltetes Token ist ein normales spl-Token mit Metaplex-Token-Metadaten und einer zugehörigen Bindungskurve. Die Bindungskurve verwaltet die Liquidität, die Preisgestaltung und das Angebot dieses Tokens.

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    Wie man einen Token kauft und verkauft

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    Wie man Liquidität aufbaut

    Strata kann auch Token verkaufen, wenn Sie den Vorrat manuell verwalten möchten. Dies kann für das Liquiditäts-Bootstrapping nützlich sein, bevor Sie Ihren Token auf einem Dex auflisten. Sie können hieropen in new window mehr darüber lesen oder Ihre eigenen unter Strata Launchpad starten.

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/de/integrations/switchboard.html b/docs/.vuepress/dist/de/integrations/switchboard.html
    index 6d39316a4..632b1c263 100644
    --- a/docs/.vuepress/dist/de/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/de/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboard ist ein Oracle-Protokoll, das es Entwicklern ermöglicht, Daten für eine Vielzahl von Anwendungsfällen wie Preis-Feeds, NFT-Mindestpreise, Sportstatistiken oder sogar überprüfbare Zufälligkeiten on-chain zu beziehen. Im Allgemeinen ist Switchboard eine Off-Chain-Ressource, auf die sich Entwickler berufen können, um hochintegrierte Daten on-Chain zu überbrücken und die nächste Generation von Web3 und DeFi voranzutreiben.

    Daten Feeds

    Switchboard bietet eine JavaScript/TypeScript-Bibliothek namens @switchboard-xyz/switchboard-v2 . Diese Bibliothek kann verwendet werden, um On-Chain-Daten aus vorhandenen Datenfeeds zu erreichen oder Ihre eigenen benutzerdefinierten Feeds zu veröffentlichen. Erfahren Sie mehr darüber hieropen in new window

    Daten aus einem Aggregator-Feed lesen

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboard ist ein Oracle-Protokoll, das es Entwicklern ermöglicht, Daten für eine Vielzahl von Anwendungsfällen wie Preis-Feeds, NFT-Mindestpreise, Sportstatistiken oder sogar überprüfbare Zufälligkeiten on-chain zu beziehen. Im Allgemeinen ist Switchboard eine Off-Chain-Ressource, auf die sich Entwickler berufen können, um hochintegrierte Daten on-Chain zu überbrücken und die nächste Generation von Web3 und DeFi voranzutreiben.

    Daten Feeds

    Switchboard bietet eine JavaScript/TypeScript-Bibliothek namens @switchboard-xyz/switchboard-v2 . Diese Bibliothek kann verwendet werden, um On-Chain-Daten aus vorhandenen Datenfeeds zu erreichen oder Ihre eigenen benutzerdefinierten Feeds zu veröffentlichen. Erfahren Sie mehr darüber hieropen in new window

    Daten aus einem Aggregator-Feed lesen

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    Erstellen eines neuen Aggregator-Feed

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Erstellen eines neuen Aggregator-Feed

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    So erstellen Sie einen Feed vom Publisher

    Die offizielle Switchboard-Dokumentation enthält eine ausführliche Anleitung zum Erstellen eines Feeds vom Herausgeber. Sehen Sie es sich hieropen in new window an .

    Oracles

    Die einzigartige Funktion von Switchboard besteht darin, dass Sie Ihr eigenes Orakel erstellen und lokal ausführen können.

    Erstelen eines Oracle

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    So erstellen Sie einen Feed vom Publisher

    Die offizielle Switchboard-Dokumentation enthält eine ausführliche Anleitung zum Erstellen eines Feeds vom Herausgeber. Sehen Sie es sich hieropen in new window an .

    Oracles

    Die einzigartige Funktion von Switchboard besteht darin, dass Sie Ihr eigenes Orakel erstellen und lokal ausführen können.

    Erstelen eines Oracle

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    Führen Sie den Container mit „docker-compose up“ aus

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifizierbare Zufallsfunktion (VRF)

    Eine verifizierbare Zufallsfunktion (VRF) ist eine Pseudozufallsfunktion mit öffentlichem Schlüssel, die beweist, dass ihre Ausgaben korrekt berechnet wurden

    Lesen eines VRF-Kontos

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Führen Sie den Container mit „docker-compose up“ aus

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifizierbare Zufallsfunktion (VRF)

    Eine verifizierbare Zufallsfunktion (VRF) ist eine Pseudozufallsfunktion mit öffentlichem Schlüssel, die beweist, dass ihre Ausgaben korrekt berechnet wurden

    Lesen eines VRF-Kontos

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    Erstellen eines VRF-Kontos

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Erstellen eines VRF-Kontos

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    Fordern von Zufälligkeit vom vrf-Konto

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Fordern von Zufälligkeit vom vrf-Konto

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/de/integrations/web3auth.html b/docs/.vuepress/dist/de/integrations/web3auth.html
    index b020b8ca6..f343143e7 100644
    --- a/docs/.vuepress/dist/de/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/de/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Wallet

    Was ist eine Brieftasche?

    Eine Krypto-Wallet ist eine digitale Geldbörse, die zur Interaktion mit der Blockchain verwendet wird. Es ermöglicht Ihnen, Transaktionen zu signieren, zu verifizieren und zu senden. Es gibt viele Krypto-Wallet-Lösungen auf dem Markt, die von einfach zu bedienenden Web-Apps bis hin zu komplexeren Hardware-Sicherheitslösungen reichen.

    Soziale Logins auf Solana

    Web3Authopen in new window ermöglicht es Benutzern, sich mit ihren bestehenden Web2-OAuth-Anbietern (Facebook, Google, Twitter usw.) bei Web3-Dapps anzumelden. Es bietet einen benutzerfreundlichen und nicht verwahrungsfreienopen in new window Ansatz zur Verwaltung von Vermögenswerten und Identität. Es beseitigt technische Barrieren und reduziert die Lernkurve für den digitalen Besitz für alle Benutzer, indem es einen Wrapper für die Verwaltung privater Schlüssel bereitstellt.

    Integrationsleitfaden

    Dieses Tutorial führt Sie durch ein einfaches Beispiel zur Integration von Social Logins in Ihre DApp.

    Abhängigkeiten installieren

    Um die Brieftasche mit einer DApp zu verwenden, können Sie @toruslabs/solana-embed installieren. Sie können gängige Paketmanager wie Garn und npm verwenden, um sie herunterzuladen.

    yarn add @toruslabs/solana-embed
    +    

    Wallet

    Was ist eine Brieftasche?

    Eine Krypto-Wallet ist eine digitale Geldbörse, die zur Interaktion mit der Blockchain verwendet wird. Es ermöglicht Ihnen, Transaktionen zu signieren, zu verifizieren und zu senden. Es gibt viele Krypto-Wallet-Lösungen auf dem Markt, die von einfach zu bedienenden Web-Apps bis hin zu komplexeren Hardware-Sicherheitslösungen reichen.

    Soziale Logins auf Solana

    Web3Authopen in new window ermöglicht es Benutzern, sich mit ihren bestehenden Web2-OAuth-Anbietern (Facebook, Google, Twitter usw.) bei Web3-Dapps anzumelden. Es bietet einen benutzerfreundlichen und nicht verwahrungsfreienopen in new window Ansatz zur Verwaltung von Vermögenswerten und Identität. Es beseitigt technische Barrieren und reduziert die Lernkurve für den digitalen Besitz für alle Benutzer, indem es einen Wrapper für die Verwaltung privater Schlüssel bereitstellt.

    Integrationsleitfaden

    Dieses Tutorial führt Sie durch ein einfaches Beispiel zur Integration von Social Logins in Ihre DApp.

    Abhängigkeiten installieren

    Um die Brieftasche mit einer DApp zu verwenden, können Sie @toruslabs/solana-embed installieren. Sie können gängige Paketmanager wie Garn und npm verwenden, um sie herunterzuladen.

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    Importieren Sie das SDK und initialisieren Sie es

    Im folgenden Codeausschnitt erstellen wir eine Instanz von solana-embed und initialisieren sie dann mit einer Testumgebung, die solana testnet verwendet. Sie können andere Konfigurationsoptionen übergeben, während Sie die Wallet-Schnittstelle initialisieren. Weitere Informationen dazu finden Sie unter solana-embed api-referenceopen in new window.

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/de/references/basic-transactions.html b/docs/.vuepress/dist/de/references/basic-transactions.html
    index 48187c681..e9dac8672 100644
    --- a/docs/.vuepress/dist/de/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/de/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    So ändern Sie das Computing-Budget, die Gebühr & Priorität für eine Transaktion

    Die Transaktionspriorität (TX) wird zusätzlich zur Grundgebühr durch die Zahlung einer Priorisierungsgebühr erreicht. Standardmäßig ist das Rechenbudget das Produkt von 200.000 Compute Units (CU) * Anzahl der Anweisungen, mit einem Maximum von 1,4 Mio. CU. Die Grundgebühr beträgt 5.000 Lamports. Ein microLamport ist 0,000001 Lamport.

    Das Gesamtrechenbudget oder die Priorisierungsgebühr für eine einzelne TX kann umgeändert werden. Hinzufügen von Anweisungen aus dem ComputeBudgetProgram.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: Zahl }) wird eine Priorisierungsgebühr über der Grundgebühr (5.000 Lamports) hinzugefügt. Um das zu bestimmen Der Wert der Priorisierungsgebühr in Lamports die in microLamports bereitgestellt werden, werden mit dem CU-Budget multipliziert. Wenn Ihr CU-Budget beispielsweise 1 Mio. CU beträgt, und Sie Fügen Sie 1 microLamport/CU hinzu, beträgt die Priorisierungsgebühr 1 Lamport (1M * 0,000001). Die Gesamtgebühr beträgt dann 5001 Lamports.

    Verwenden Sie zum Festlegen „ComputeBudgetProgram.setComputeUnitLimit({units: number})“. das neue Compute-Budget. Der angegebene Wert ersetzt den Standardwert. Transaktionen sollten die erforderliche Mindestmenge an CU anfordern Ausführung, um den Durchsatz zu maximieren oder Gebühren zu minimieren.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    So ändern Sie das Computing-Budget, die Gebühr & Priorität für eine Transaktion

    Die Transaktionspriorität (TX) wird zusätzlich zur Grundgebühr durch die Zahlung einer Priorisierungsgebühr erreicht. Standardmäßig ist das Rechenbudget das Produkt von 200.000 Compute Units (CU) * Anzahl der Anweisungen, mit einem Maximum von 1,4 Mio. CU. Die Grundgebühr beträgt 5.000 Lamports. Ein microLamport ist 0,000001 Lamport.

    Das Gesamtrechenbudget oder die Priorisierungsgebühr für eine einzelne TX kann umgeändert werden. Hinzufügen von Anweisungen aus dem ComputeBudgetProgram.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: Zahl }) wird eine Priorisierungsgebühr über der Grundgebühr (5.000 Lamports) hinzugefügt. Um das zu bestimmen Der Wert der Priorisierungsgebühr in Lamports die in microLamports bereitgestellt werden, werden mit dem CU-Budget multipliziert. Wenn Ihr CU-Budget beispielsweise 1 Mio. CU beträgt, und Sie Fügen Sie 1 microLamport/CU hinzu, beträgt die Priorisierungsgebühr 1 Lamport (1M * 0,000001). Die Gesamtgebühr beträgt dann 5001 Lamports.

    Verwenden Sie zum Festlegen „ComputeBudgetProgram.setComputeUnitLimit({units: number})“. das neue Compute-Budget. Der angegebene Wert ersetzt den Standardwert. Transaktionen sollten die erforderliche Mindestmenge an CU anfordern Ausführung, um den Durchsatz zu maximieren oder Gebühren zu minimieren.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/de/references/local-development.html b/docs/.vuepress/dist/de/references/local-development.html
    index c01fcfdc1..7c1c7f8ad 100644
    --- a/docs/.vuepress/dist/de/references/local-development.html
    +++ b/docs/.vuepress/dist/de/references/local-development.html
    @@ -354,12 +354,12 @@
     

    Das Laden in Ihr lokales Netz erfolgt dann, indem die Datei und die Zieladresse des Kontos (auf dem lokalen Cluster) beim Starten des Validators übergeben werden:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    So laden Sie Programme aus dem Mainnet

    Ebenso ist es möglich, das Programm Serum Dex v3 herunterzuladen:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    So laden Sie Programme aus dem Mainnet

    Ebenso ist es möglich, das Programm OpenBook Dex v3 herunterzuladen:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    Das Laden in Ihr lokales Netz erfolgt dann, indem Sie beim Starten des Validators die Datei und die Zieladresse des Programms (auf dem lokalen Cluster) übergeben:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Partially Sorted, nyk
    diff --git a/docs/.vuepress/dist/es/core-concepts/programs.html b/docs/.vuepress/dist/es/core-concepts/programs.html index 48c376686..cda201426 100644 --- a/docs/.vuepress/dist/es/core-concepts/programs.html +++ b/docs/.vuepress/dist/es/core-concepts/programs.html @@ -27,8 +27,8 @@ -

    Programas

    Cualquier desarrollador puede escribir e implementar programas en la cadena de bloques de Solana. Los programas (conocidos como contratos inteligentes en otros protocolos) sirven como base para la actividad dentro de la cadena de bloques, potenciando desde DeFi y NFTs hasta redes sociales y juegos.

    Hechos

    Hoja de hechos

    • Los programas procesan instrucciones de otros programas y de usuarios finales
    • Todos los programas son stateless (sin estado): Los datos con los que interactúan son almacenados en cuentas que son enviadas al programa en instrucciones
    • Los mismos programas son almacenadas en cuentas marcadas como executable (ejecutables)
    • El dueño de todos los programas es BPF Loaderopen in new window y es ejectuado por el Runtime de Solanaopen in new window
    • Los programadores comunmente utilizan Rust y C++ para escribir programas, pero pueden elegir cualquier lenguaje que compile con el backend de BPFopen in new window para LLVMopen in new window
    • Todos los programas tienen un punto único de entrada donde se procesan las instrucciones (i.e. process_instruction); los parámetros siempre incluyen:
      • program_id: pubkey
      • accounts: array,
      • instruction_data: byte array

    Un vistazo más profundo

    A diferencia de la mayoría de cadenas de bloques, Solana separa completamente el código de los datos. Todos los datos con los que interactúan los programas se almacenan en cuentas separadas y se envían a través de instrucciones. Este modelo permite que un único programa genérico funcione en varias cuentas sin necesidad de implementaciones adicionales. Se ven ejemplos comunes de este patrón en los programas nativos y SPL.

    Programas nativos & La librería de Programas de Solana (SPL)

    Solana viene equipado con programas que sirven como bloques de construcción para interactuar con la cadena de bloques. Estos programas están dividos en Programas nativosopen in new window y Programas de la librería de programas (SPL)open in new window.

    Los programas nativos brindan la funcionalidad base que es requerida para operar validadores. Entre estos programas el más conocido es el Programa del sistema (System Program)open in new window que es responsable de administrar las cuentas y transferir SOL.

    Los programas de la librería de programas soportan otras actividades dentro de la cadena de bloques como crear tokens, intercambiarlos, prestar tokens, así como generar pools de staking y mantener el servicio de nombres dentro de la cadena de bloques. El Programa de Token (SPL Token Program)open in new window puede ser invocado directamente desde el CLI (Command Line Interface), mientras que otros como el Programa de cuentas asociadas a token (Associated Token Account Program)open in new window son usados dentro de otros programas.

    Escribiendo programas

    Los Programas están escritos comunmente en Rust o C++, pero pueden ser desarrollado con cualquier lenguaje que compile al backend BPF de LLVM. Iniciativas recientes de Neon Labsopen in new window y Solangopen in new window habilitan la compatibilidad con EVMopen in new window para permitir a desarrolladores escribir programas con Solidity.

    La mayoría de programas de Rust siguen la siguiente arquitectura:

    ArcguviDescripción
    lib.rsRegistro de módulos
    entrypoint.rsPunto de entrada para el programa
    instruction.rsAPI del programa, deserializa las instrucciones
    processor.rsLógica del programa
    state.rsObjetos del programa, deserializa el estado
    error.rsErrores específicos del programa

    Recientemente, Anchoropen in new window se ha convertido en el framework más popular para desarrollar programas. Anchor es un framework que reduce el boilerplate y facilita la deserialización para los programas desarrollados en Rust.

    Los programas normalmente son desarrollados y testeados en los entornos Localhost y Devnet antes de ser desplegados a Testnet y Mainnet. Solana soporta los siguientes entornos:

    Entorno del clusterURL de conexión RPC
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    LocalhostDefault port: 8899 (e.g. http://localhost:8899, http://192.168.1.88:8899)

    Una vez desplegado a un entorno, los clientes pueden interactuar con el programa dentro de la cadena de bloques utilizando Conexiones RPCopen in new window apuntando al cluster correspondiente.

    Desplegando Programas

    Los desarrolladores pueden desplegar sus programas utilizando el CLIopen in new window:

    solana program deploy <PROGRAM_FILEPATH>
    -

    Cuando un programa es desplegado, es compilado a un ELF shared objectopen in new window (conteniendo el bytecode de BPF) y subido al cluster de Solana. Los Programas viven en cuentas (como casi todo en Solana), con la excepción de aquellas marcadas como executable y asignadas al BPF Loader. La dirección del programa desplegada se llama program_id y es usada para llamar al programa.

    Solana soporta múltiples BPF Loaders, siendo el último el Upgradable BPF Loaderopen in new window. El BPF Loader es responsable de administrar las cuentas del programa y hacerlas accesibles a los clientes a través del program_id. Todos los programas tienen un único punto de entrada donde se procesan las instrucciones (i.e. process_instruction) y los parámetros siempre incluyen:

    • program_id: pubkey
    • accounts: array,
    • instruction_data: byte array

    Una vez llamado, los Programas son ejecutados por el Runtime de Solana.

    Other Resources

    Last Updated:
    Contributors: Marco Ordonez
    +

    Programas

    Cualquier desarrollador puede escribir e implementar programas en la cadena de bloques de Solana. Los programas (conocidos como contratos inteligentes en otros protocolos) sirven como base para la actividad dentro de la cadena de bloques, potenciando desde DeFi y NFTs hasta redes sociales y juegos.

    Hechos

    Hoja de hechos

    • Los programas procesan instrucciones de otros programas y de usuarios finales
    • Todos los programas son stateless (sin estado): Los datos con los que interactúan son almacenados en cuentas que son enviadas al programa en instrucciones
    • Los mismos programas son almacenadas en cuentas marcadas como executable (ejecutables)
    • El dueño de todos los programas es BPF Loaderopen in new window y es ejectuado por el Runtime de Solanaopen in new window
    • Los programadores comunmente utilizan Rust y C++ para escribir programas, pero pueden elegir cualquier lenguaje que compile con el backend de BPFopen in new window para LLVMopen in new window
    • Todos los programas tienen un punto único de entrada donde se procesan las instrucciones (i.e. process_instruction); los parámetros siempre incluyen:
      • program_id: pubkey
      • accounts: array,
      • instruction_data: byte array

    Un vistazo más profundo

    A diferencia de la mayoría de cadenas de bloques, Solana separa completamente el código de los datos. Todos los datos con los que interactúan los programas se almacenan en cuentas separadas y se envían a través de instrucciones. Este modelo permite que un único programa genérico funcione en varias cuentas sin necesidad de implementaciones adicionales. Se ven ejemplos comunes de este patrón en los programas nativos y SPL.

    Programas nativos & La librería de Programas de Solana (SPL)

    Solana viene equipado con programas que sirven como bloques de construcción para interactuar con la cadena de bloques. Estos programas están dividos en Programas nativosopen in new window y Programas de la librería de programas (SPL)open in new window.

    Los programas nativos brindan la funcionalidad base que es requerida para operar validadores. Entre estos programas el más conocido es el Programa del sistema (System Program)open in new window que es responsable de administrar las cuentas y transferir SOL.

    Los programas de la librería de programas soportan otras actividades dentro de la cadena de bloques como crear tokens, intercambiarlos, prestar tokens, así como generar pools de staking y mantener el servicio de nombres dentro de la cadena de bloques. El Programa de Token (SPL Token Program)open in new window puede ser invocado directamente desde el CLI (Command Line Interface), mientras que otros como el Programa de cuentas asociadas a token (Associated Token Account Program)open in new window son usados dentro de otros programas.

    Escribiendo programas

    Los Programas están escritos comunmente en Rust o C++, pero pueden ser desarrollado con cualquier lenguaje que compile al backend BPF de LLVM. Iniciativas recientes de Neon Labsopen in new window y Solangopen in new window habilitan la compatibilidad con EVMopen in new window para permitir a desarrolladores escribir programas con Solidity.

    La mayoría de programas de Rust siguen la siguiente arquitectura:

    ArcguviDescripción
    lib.rsRegistro de módulos
    entrypoint.rsPunto de entrada para el programa
    instruction.rsAPI del programa, deserializa las instrucciones
    processor.rsLógica del programa
    state.rsObjetos del programa, deserializa el estado
    error.rsErrores específicos del programa

    Recientemente, Anchoropen in new window se ha convertido en el framework más popular para desarrollar programas. Anchor es un framework que reduce el boilerplate y facilita la deserialización para los programas desarrollados en Rust.

    Los programas normalmente son desarrollados y testeados en los entornos Localhost y Devnet antes de ser desplegados a Testnet y Mainnet. Solana soporta los siguientes entornos:

    Entorno del clusterURL de conexión RPC
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    LocalhostDefault port: 8899 (e.g. http://localhost:8899, http://192.168.1.88:8899)

    Una vez desplegado a un entorno, los clientes pueden interactuar con el programa dentro de la cadena de bloques utilizando Conexiones RPCopen in new window apuntando al cluster correspondiente.

    Desplegando Programas

    Los desarrolladores pueden desplegar sus programas utilizando el CLIopen in new window:

    solana program deploy <PROGRAM_FILEPATH>
    +

    Cuando un programa es desplegado, es compilado a un ELF shared objectopen in new window (conteniendo el bytecode de BPF) y subido al cluster de Solana. Los Programas viven en cuentas (como casi todo en Solana), con la excepción de aquellas marcadas como executable y asignadas al BPF Loader. La dirección del programa desplegada se llama program_id y es usada para llamar al programa.

    Solana soporta múltiples BPF Loaders, siendo el último el Upgradable BPF Loaderopen in new window. El BPF Loader es responsable de administrar las cuentas del programa y hacerlas accesibles a los clientes a través del program_id. Todos los programas tienen un único punto de entrada donde se procesan las instrucciones (i.e. process_instruction) y los parámetros siempre incluyen:

    • program_id: pubkey
    • accounts: array,
    • instruction_data: byte array

    Una vez llamado, los Programas son ejecutados por el Runtime de Solana.

    Other Resources

    Last Updated:
    Contributors: Marco Ordonez
    diff --git a/docs/.vuepress/dist/es/guides/account-maps.html b/docs/.vuepress/dist/es/guides/account-maps.html index 8f4f40c65..a1f205830 100644 --- a/docs/.vuepress/dist/es/guides/account-maps.html +++ b/docs/.vuepress/dist/es/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    En el lado del cliente, puede usar PublicKey.findProgramAddress() para obtener la dirección de cuenta requerida Blog y Post, que puede pasar a connection.getAccountInfo() para obtener los datos de la cuenta. A continuación se muestra un ejemplo,

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    En el lado del cliente, puede usar PublicKey.findProgramAddress() para obtener la dirección de cuenta requerida Blog y Post, que puede pasar a connection.getAccountInfo() para obtener los datos de la cuenta. A continuación se muestra un ejemplo,

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/es/guides/get-program-accounts.html b/docs/.vuepress/dist/es/guides/get-program-accounts.html
    index 4f5e3cf46..04393c769 100644
    --- a/docs/.vuepress/dist/es/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/es/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Obtener cuentas de programa

    Existe un método RPC que devuelve todas las cuentas que son propiedad de un programa. Actualmente no se admite la paginación. Las solicitudes a getProgramAccounts deben incluir los parámetros dataSlice y/o filters para mejorar el tiempo de respuesta y devolver solo los resultados que se necesitan.

    Hechos

    Parámetros

    • programId: string - Llave pública del programa a consultar, codificada en base58
    • (optional) configOrCommitment: object - Parámetros de configuración que contienen los siguientes campos opcionales:
      • (optional) commitment: string - Compromiso del estado (state commitment)open in new window
      • (optional) encoding: string - La codificación para los datos de la cuenta, puede ser: base58, base64, or jsonParsed. Los usuarios de web3js deben usar getParsedProgramAccountsopen in new window
      • (optional) dataSlice: object - Configuración para limitar los datos que se retornan:
        • offset: number - Número de bytes en los datos de la cuenta donde iniciar
        • length: number - Número de bytes de datos de la cuenta a devolver
      • (optional) filters: array - Configuración para filtrar los resultados:
        • memcmp: object - Coincidencia de bytes con los datos de la cuenta:
          • offset: number - Número de bytes en los datos de la cuenta donde empezar a comparar
          • bytes: string - Datos a comparar, como cadena codificada en base58 limitada a 129 bytes
        • dataSize: number - Compara la longitud de los datos de la cuenta con el tamaño de datos proporcionado
      • (optional) withContext: boolean - Envuelve el resultado en un Objeto JSON RpcResponseopen in new window
    Respuesta

    Por defecto getProgramAccounts devolverá una matriz de objetos JSON con la siguiente estructura:

    • pubkey: string - La clave pública de la cuenta codificada en base58
    • account: object - un objeto JSON, con los siguientes subcampos:
      • lamports: number - número de lamports asignado a la cuenta
      • owner: string - La clave pública del programa al que se ha asignado la cuenta codificada en base58
      • data: string | object - datos asociados con la cuenta, ya sea como datos binarios o en formato JSON según el parámetro de codificación proporcionado
      • executable: boolean - Indicación si la cuenta contiene un programa
      • rentEpoch: number - La época en la que esta cuenta adeudará alquiler

    Un vistazo más profundo

    getProgramAccounts es un método RPC versátil que devuelve todas las cuentas propiedad de un programa. Podemos usar getProgramAccounts para una serie de consultas útiles, como encontrar:

    • Todas las cuentas de token para una billetera en particular
    • Todas las cuentas para un mint en particular (ej. Todos los titulares (holders) de SRMopen in new window)
    • Todas las cuentas para un programa en particular (ej. Todos los usuarios de Mangoopen in new window)

    A pesar de su utilidad, getProgramAccounts a menudo se malinterpreta debido a sus limitaciones actuales. Muchas de las consultas admitidas por getProgramAccounts requieren nodos RPC para escanear grandes conjuntos de datos. Estos escaneos consumen muchos recursos y memoria. Como resultado, las llamadas que son demasiado frecuentes o de un alcance demasiado grande pueden provocar tiempos de espera mayores al permitido (timeouts). Además, en el momento de escribir este artículo, el extremo getProgramAccounts no admite la paginación. Si los resultados de una consulta son demasiado grandes, la respuesta se truncará.

    Para resolver temporalmente estas restricciones, getProgramAccounts ofrece una serie de parámetros útiles: por ejemplo, dataSlice y las opciones de filtros memcmp y dataSize. Al proporcionar combinaciones de estos parámetros, podemos reducir el alcance de nuestras consultas a tamaños manejables y predecibles.

    Un ejemplo común de getProgramAccounts consiste en interactuar con el Programa de tokens SPLopen in new window. Solicitar todas las cuentas propiedad del Programa Token con una llamada básica implicaría una enorme cantidad de datos. Sin embargo, al proporcionar parámetros, podemos solicitar de manera eficiente solo los datos que pretendemos utilizar.

    filters

    El parámetro más común para usar con getProgramAccounts es la matriz filters. Esta matriz acepta dos tipos de filtros, dataSize y memcmp. Antes de usar cualquiera de estos filtros, debemos estar familiarizados con la forma en que se distribuyen y serializan los datos que solicitamos.

    dataSize

    En el caso del Programa Token (Token Program), podemos ver que las cuentas de token tienen una longitud de 165 bytesopen in new window. Específicamente, una cuenta de token tiene ocho campos diferentes, y cada campo requiere una cantidad predecible de bytes. Podemos visualizar cómo se distribuyen estos datos usando la siguiente ilustración.

    Tamaño de la cuenta

    Si quisiéramos encontrar todas las cuentas de token que pertenecen a nuestra dirección de billetera, podríamos agregar { dataSize: 165 } a nuestra matriz de filtros para limitar el alcance de nuestra consulta a solo cuentas que tengan exactamente 165 bytes de longitud. Esto solo, sin embargo, sería insuficiente. También necesitaríamos agregar un filtro que busque cuentas propiedad de nuestra dirección. Podemos lograr esto con el filtro memcmp.

    memcmp

    El filtro memcmp, o filtro de "comparación de memoria", nos permite comparar datos en cualquier campo almacenado en nuestra cuenta. Específicamente, solo podemos consultar cuentas que coincidan con un conjunto de bytes en una posición específica. memcmp requiere dos argumentos:

    • offset: La posición para comenzar a comparar datos. Esta posición se mide en bytes y se expresa como un número entero.
    • bytes: Los datos que deben coincidir con los datos de la cuenta. Esto se representa como una cadena codificada en base 58 que debe limitarse a menos de 129 bytes.

    Es importante tener en cuenta que memcmp solo devolverá resultados que coincidan exactamente en bytes. Actualmente, no admite comparaciones de valores menores o mayores que los "bytes" que proporcionamos.

    De acuerdo con nuestro ejemplo del Programa de tokens, podemos modificar nuestra consulta para que solo devuelva las cuentas de tokens que pertenecen a nuestra dirección de billetera. Al observar una cuenta de token, podemos ver que los dos primeros campos almacenados en una cuenta de token son claves públicas y que cada clave pública tiene una longitud de 32 bytes. Dado que owner es el segundo campo, deberíamos comenzar nuestro memcmp en un offset de 32 bytes. A partir de aquí, buscaremos cuentas cuyo campo de propietario coincida con la dirección de nuestra billetera.

    Tamaño de la cuenta

    Podemos hacer esta búsqueda utilizando el siguiente ejemplo:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Obtener cuentas de programa

    Existe un método RPC que devuelve todas las cuentas que son propiedad de un programa. Actualmente no se admite la paginación. Las solicitudes a getProgramAccounts deben incluir los parámetros dataSlice y/o filters para mejorar el tiempo de respuesta y devolver solo los resultados que se necesitan.

    Hechos

    Parámetros

    • programId: string - Llave pública del programa a consultar, codificada en base58
    • (optional) configOrCommitment: object - Parámetros de configuración que contienen los siguientes campos opcionales:
      • (optional) commitment: string - Compromiso del estado (state commitment)open in new window
      • (optional) encoding: string - La codificación para los datos de la cuenta, puede ser: base58, base64, or jsonParsed. Los usuarios de web3js deben usar getParsedProgramAccountsopen in new window
      • (optional) dataSlice: object - Configuración para limitar los datos que se retornan:
        • offset: number - Número de bytes en los datos de la cuenta donde iniciar
        • length: number - Número de bytes de datos de la cuenta a devolver
      • (optional) filters: array - Configuración para filtrar los resultados:
        • memcmp: object - Coincidencia de bytes con los datos de la cuenta:
          • offset: number - Número de bytes en los datos de la cuenta donde empezar a comparar
          • bytes: string - Datos a comparar, como cadena codificada en base58 limitada a 129 bytes
        • dataSize: number - Compara la longitud de los datos de la cuenta con el tamaño de datos proporcionado
      • (optional) withContext: boolean - Envuelve el resultado en un Objeto JSON RpcResponseopen in new window
    Respuesta

    Por defecto getProgramAccounts devolverá una matriz de objetos JSON con la siguiente estructura:

    • pubkey: string - La clave pública de la cuenta codificada en base58
    • account: object - un objeto JSON, con los siguientes subcampos:
      • lamports: number - número de lamports asignado a la cuenta
      • owner: string - La clave pública del programa al que se ha asignado la cuenta codificada en base58
      • data: string | object - datos asociados con la cuenta, ya sea como datos binarios o en formato JSON según el parámetro de codificación proporcionado
      • executable: boolean - Indicación si la cuenta contiene un programa
      • rentEpoch: number - La época en la que esta cuenta adeudará alquiler

    Un vistazo más profundo

    getProgramAccounts es un método RPC versátil que devuelve todas las cuentas propiedad de un programa. Podemos usar getProgramAccounts para una serie de consultas útiles, como encontrar:

    • Todas las cuentas de token para una billetera en particular
    • Todas las cuentas para un mint en particular (ej. Todos los titulares (holders) de SRMopen in new window)
    • Todas las cuentas para un programa en particular (ej. Todos los usuarios de Mangoopen in new window)

    A pesar de su utilidad, getProgramAccounts a menudo se malinterpreta debido a sus limitaciones actuales. Muchas de las consultas admitidas por getProgramAccounts requieren nodos RPC para escanear grandes conjuntos de datos. Estos escaneos consumen muchos recursos y memoria. Como resultado, las llamadas que son demasiado frecuentes o de un alcance demasiado grande pueden provocar tiempos de espera mayores al permitido (timeouts). Además, en el momento de escribir este artículo, el extremo getProgramAccounts no admite la paginación. Si los resultados de una consulta son demasiado grandes, la respuesta se truncará.

    Para resolver temporalmente estas restricciones, getProgramAccounts ofrece una serie de parámetros útiles: por ejemplo, dataSlice y las opciones de filtros memcmp y dataSize. Al proporcionar combinaciones de estos parámetros, podemos reducir el alcance de nuestras consultas a tamaños manejables y predecibles.

    Un ejemplo común de getProgramAccounts consiste en interactuar con el Programa de tokens SPLopen in new window. Solicitar todas las cuentas propiedad del Programa Token con una llamada básica implicaría una enorme cantidad de datos. Sin embargo, al proporcionar parámetros, podemos solicitar de manera eficiente solo los datos que pretendemos utilizar.

    filters

    El parámetro más común para usar con getProgramAccounts es la matriz filters. Esta matriz acepta dos tipos de filtros, dataSize y memcmp. Antes de usar cualquiera de estos filtros, debemos estar familiarizados con la forma en que se distribuyen y serializan los datos que solicitamos.

    dataSize

    En el caso del Programa Token (Token Program), podemos ver que las cuentas de token tienen una longitud de 165 bytesopen in new window. Específicamente, una cuenta de token tiene ocho campos diferentes, y cada campo requiere una cantidad predecible de bytes. Podemos visualizar cómo se distribuyen estos datos usando la siguiente ilustración.

    Tamaño de la cuenta

    Si quisiéramos encontrar todas las cuentas de token que pertenecen a nuestra dirección de billetera, podríamos agregar { dataSize: 165 } a nuestra matriz de filtros para limitar el alcance de nuestra consulta a solo cuentas que tengan exactamente 165 bytes de longitud. Esto solo, sin embargo, sería insuficiente. También necesitaríamos agregar un filtro que busque cuentas propiedad de nuestra dirección. Podemos lograr esto con el filtro memcmp.

    memcmp

    El filtro memcmp, o filtro de "comparación de memoria", nos permite comparar datos en cualquier campo almacenado en nuestra cuenta. Específicamente, solo podemos consultar cuentas que coincidan con un conjunto de bytes en una posición específica. memcmp requiere dos argumentos:

    • offset: La posición para comenzar a comparar datos. Esta posición se mide en bytes y se expresa como un número entero.
    • bytes: Los datos que deben coincidir con los datos de la cuenta. Esto se representa como una cadena codificada en base 58 que debe limitarse a menos de 129 bytes.

    Es importante tener en cuenta que memcmp solo devolverá resultados que coincidan exactamente en bytes. Actualmente, no admite comparaciones de valores menores o mayores que los "bytes" que proporcionamos.

    De acuerdo con nuestro ejemplo del Programa de tokens, podemos modificar nuestra consulta para que solo devuelva las cuentas de tokens que pertenecen a nuestra dirección de billetera. Al observar una cuenta de token, podemos ver que los dos primeros campos almacenados en una cuenta de token son claves públicas y que cada clave pública tiene una longitud de 32 bytes. Dado que owner es el segundo campo, deberíamos comenzar nuestro memcmp en un offset de 32 bytes. A partir de aquí, buscaremos cuentas cuyo campo de propietario coincida con la dirección de nuestra billetera.

    Tamaño de la cuenta

    Podemos hacer esta búsqueda utilizando el siguiente ejemplo:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/es/references/basic-transactions.html b/docs/.vuepress/dist/es/references/basic-transactions.html
    index a466096dc..e090e1ab2 100644
    --- a/docs/.vuepress/dist/es/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/es/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    Cómo cambiar el presupuesto de cómputo para una transacción

    El presupuesto de cómputo para una sola transacción se puede cambiar agregando una instrucción que llame al Compute Budget Program. De forma predeterminada, el presupuesto de cómputo se establece como la multiplicación de 200k unidades de cómputo por el número de instrucciones, con un máximo de 1,4 millones de unidades de cómputo. Cuanto menos cómputo utilice, menores serán los costos de transacción.

    Nota: Para cambiar el presupuesto de cómputo de una transacción, debes incluir esa transacción cómo una de las primeras tres en la transacción.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    Cómo cambiar el presupuesto de cómputo para una transacción

    El presupuesto de cómputo para una sola transacción se puede cambiar agregando una instrucción que llame al Compute Budget Program. De forma predeterminada, el presupuesto de cómputo se establece como la multiplicación de 200k unidades de cómputo por el número de instrucciones, con un máximo de 1,4 millones de unidades de cómputo. Cuanto menos cómputo utilice, menores serán los costos de transacción.

    Nota: Para cambiar el presupuesto de cómputo de una transacción, debes incluir esa transacción cómo una de las primeras tres en la transacción.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/es/references/local-development.html b/docs/.vuepress/dist/es/references/local-development.html
    index a2074f07f..11f5e4248 100644
    --- a/docs/.vuepress/dist/es/references/local-development.html
    +++ b/docs/.vuepress/dist/es/references/local-development.html
    @@ -345,12 +345,12 @@
     

    Luego, para cargarlo a la red local se debe pasar el archivo de la cuenta y la dirección de destino (en el clúster local) al iniciar el validador:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    Cómo cargar programas de mainnet

    De igual forma, es posible descargar el programa Serum Dex v3:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    Cómo cargar programas de mainnet

    De igual forma, es posible descargar el programa OpenBook Dex v3:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    Luego, para cargarlo a la red local se debe pasar el archivo de la cuenta y la dirección de destino (en el clúster local) al iniciar el validador:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Marco Ordonez, Partially Sorted
    diff --git a/docs/.vuepress/dist/fr/guides/account-maps.html b/docs/.vuepress/dist/fr/guides/account-maps.html index 838e7f35b..d69207d76 100644 --- a/docs/.vuepress/dist/fr/guides/account-maps.html +++ b/docs/.vuepress/dist/fr/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    Côté client, vous pouvez utiliser PublicKey.findProgramAddress() pour obtenir les adresses de compte Blog et Post nécessaires, que vous pouvez ensuite passer dans connection.getAccountInfo() pour récupérer les données du compte. Un exemple est présenté ci-dessous :

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    Côté client, vous pouvez utiliser PublicKey.findProgramAddress() pour obtenir les adresses de compte Blog et Post nécessaires, que vous pouvez ensuite passer dans connection.getAccountInfo() pour récupérer les données du compte. Un exemple est présenté ci-dessous :

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/fr/guides/get-program-accounts.html b/docs/.vuepress/dist/fr/guides/get-program-accounts.html
    index 1b6ff0e56..e7a5fe29c 100644
    --- a/docs/.vuepress/dist/fr/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/fr/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Obtenir les comptes d'un programme

    Il existe une méthode RPC qui renvoie tous les comptes appartenant à un programme. Actuellement, la pagination n'est pas prise en charge. Les requêtes à getProgramAccounts devraient inclure les paramètres dataSlice et/ou filters afin d'améliorer le temps de réponse et retourner uniquement les résultats voulus.

    Faits

    Paramètres

    • programId: string - Clé publique du programme à interroger, fournie sous forme de chaîne de caractères codée en base58
    • (optionnel) configOrCommitment: object - Paramètres de configuration contenant les champs facultatifs suivants :
      • (optionnel) commitment: string - Engagement de l'État (State commitment)open in new window
      • (optionnel) encoding: string - L'encodage des données du compte, peut être: base58, base64, ou jsonParsed. Remarque : les utilisateurs de web3js doivent plutôt utiliser getParsedProgramAccountsopen in new window
      • (optionnel) dataSlice: object - Paramètres permettant de limiter les données à renvoyer :
        • offset: number - Nombre de bytes dans les données du compte à partir desquels il faut commencer à retourner
        • length: number - Nombre de bytes de données du compte à retourner
      • (optionnel) filters: array - Paramètres pour filtrer les résultats :
        • memcmp: object - Correspondance d'une série de bytes avec les données du compte :
          • offset: number - Nombre de bytes dans les données du compte à partir desquels il faut commencer à comparer
          • bytes: string - Données à comparer, sous la forme d'une chaîne de caractères codée en base58 limitée à 129 bytes
        • dataSize: number - Compare la longueur des données du compte avec la taille des données fournies
      • (optionnel) withContext: boolean - Enveloppe le résultat dans un objet JSON RpcResponseopen in new window
    Réponse

    Par défaut, getProgramAccounts retournera un tableau d'objets JSON avec la structure suivante :

    • pubkey: string - La clé publique du compte sous la forme d'une chaîne de caractères encodée en base58
    • account: object - un objet JSON, avec les sous-champs suivants :
      • lamports: number, nombre de lamports alloués au compte
      • owner: string, La clé publique du programme auquel le compte a été attribué, encodée en base58
      • data: string | object - les données associées au compte, soit sous forme de données binaires, soit au format JSON, conformément au paramètre d'encodage fourni
      • executable: boolean, Indique si le compte contient un programme
      • rentEpoch: number, L'époque à laquelle ce compte devra payer sa prochaine rente

    Examen plus approfondi

    getProgramAccounts est une méthode RPC polyvalente qui renvoie tous les comptes appartenant à un programme. Nous pouvons utiliser getProgramAccounts pour un certain nombre de requêtes utiles, telles que la recherche de :

    • Tous les comptes de jetons pour un portefeuille en particulier
    • Tous les comptes de jetons pour un mint en particulier (par exemple, tous les propriétaires (holders) de SRMopen in new window)
    • Tous les comptes pour un programme en particulier (par exemple, tous les utilisateurs de Mangoopen in new window)

    Malgré son utilité, getProgramAccounts est souvent mal compris en raison de ses limites actuelles. La plupart des requêtes supportées par getProgramAccounts nécessitent des nœuds RPC pour analyser de grands ensembles de données. Ces analyses sont à la fois gourmandes en mémoire et en ressources. Par conséquent, les appels trop fréquents ou de trop grande envergure peuvent entraîner des interruptions de connexion. De plus, au moment où nous écrivons ces lignes, le point de terminaison getProgramAccounts ne prend pas en charge la pagination. Si les résultats d'une requête sont trop volumineux, la réponse sera tronquée.

    Pour contourner ces contraintes actuelles, getProgramAccounts offre un certain nombre de paramètres utiles : à savoir, dataSlice et les options de filters memcmp et dataSize. En fournissant des combinaisons de ces paramètres, nous pouvons réduire la portée de nos requêtes à des tailles gérables et prévisibles.

    Un exemple courant de getProgramAccounts consiste à interagir avec le Programme de Jetons SPLopen in new window. Demander tous les comptes détenus par le programme de Jetons avec un appel de base impliquerait une énorme quantité de données. Cependant, en fournissant des paramètres, nous pouvons efficacement demander uniquement les données que nous avons l'intention d'utiliser.

    filters

    Le paramètre le plus commun à utiliser avec getProgramAccounts est le tableau filters. Ce tableau accepte deux types de filtres, dataSize et memcmp. Avant d'utiliser l'un de ces filtres, nous devons nous familiariser avec la manière dont les données que nous demandons sont organisées et sérialisées.

    dataSize

    Dans le cas du Programme de Jetons, nous pouvons constater que les comptes de jetons ont une taille de 165 bytesopen in new window. Plus précisément, un compte de jeton comporte huit champs différents, chaque champ ayant un nombre prédéfini de bytes. Nous pouvons visualiser comment ces données sont organisées à l'aide de l'illustration ci-dessous.

    Taille des comptes

    Si nous voulions trouver tous les comptes de jetons appartenant à notre adresse de portefeuille, nous pourrions ajouter { dataSize: 165 } à notre tableau filters pour limiter notre requête aux seuls comptes qui font exactement 165 bytes de long. Toutefois, cela ne suffirait pas. Nous devrions également ajouter un filtre qui recherche les comptes appartenant à notre adresse. Nous pouvons réaliser cela avec le filtre memcmp.

    memcmp

    Le filtre memcmp, ou filtre "comparaison de mémoire", nous permet de comparer des données à n'importe quel champ stocké sur notre compte. Plus précisément, nous pouvons rechercher uniquement les comptes qui possèdent un certain ensemble de bytes à une position précise. memcmp nécessite deux arguments :

    • offset: La position à partir de laquelle il faut commencer à comparer les données. Cette position est mesurée en bytes et est exprimée sous la forme d'un nombre entier.
    • bytes: Les données qui doivent correspondre aux données du compte. Elles sont représentées sous la forme d'une chaîne de caractères codées en base 58 qui doit être limitée à moins de 129 bytes.

    Il est important de noter que memcmp ne retournera que les résultats qui correspondent exactement aux bytes. Actuellement, il ne supporte pas les comparaisons pour les valeurs inférieures ou supérieures aux bytes que nous fournissons.

    Pour rester dans notre exemple du Programme de Jetons, nous pouvons modifier notre requête pour ne renvoyer que les comptes de jetons qui appartiennent à notre adresse de portefeuille. En examinant un compte de jetons, on constate que les deux premiers champs stockés sur un compte de jetons sont tous deux des clés publiques, et que chaque clé publique a une longueur de 32 octets. Étant donné que owner est le deuxième champ, nous devrions commencer notre memcmp à un offset de 32 bytes. A partir de là, nous allons rechercher les comptes dont le champ propriétaire (owner) correspond à l'adresse de notre portefeuille.

    Taille des comptes

    Nous pouvons faire appel à cette requête via l'exemple suivant :

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Obtenir les comptes d'un programme

    Il existe une méthode RPC qui renvoie tous les comptes appartenant à un programme. Actuellement, la pagination n'est pas prise en charge. Les requêtes à getProgramAccounts devraient inclure les paramètres dataSlice et/ou filters afin d'améliorer le temps de réponse et retourner uniquement les résultats voulus.

    Faits

    Paramètres

    • programId: string - Clé publique du programme à interroger, fournie sous forme de chaîne de caractères codée en base58
    • (optionnel) configOrCommitment: object - Paramètres de configuration contenant les champs facultatifs suivants :
      • (optionnel) commitment: string - Engagement de l'État (State commitment)open in new window
      • (optionnel) encoding: string - L'encodage des données du compte, peut être: base58, base64, ou jsonParsed. Remarque : les utilisateurs de web3js doivent plutôt utiliser getParsedProgramAccountsopen in new window
      • (optionnel) dataSlice: object - Paramètres permettant de limiter les données à renvoyer :
        • offset: number - Nombre de bytes dans les données du compte à partir desquels il faut commencer à retourner
        • length: number - Nombre de bytes de données du compte à retourner
      • (optionnel) filters: array - Paramètres pour filtrer les résultats :
        • memcmp: object - Correspondance d'une série de bytes avec les données du compte :
          • offset: number - Nombre de bytes dans les données du compte à partir desquels il faut commencer à comparer
          • bytes: string - Données à comparer, sous la forme d'une chaîne de caractères codée en base58 limitée à 129 bytes
        • dataSize: number - Compare la longueur des données du compte avec la taille des données fournies
      • (optionnel) withContext: boolean - Enveloppe le résultat dans un objet JSON RpcResponseopen in new window
    Réponse

    Par défaut, getProgramAccounts retournera un tableau d'objets JSON avec la structure suivante :

    • pubkey: string - La clé publique du compte sous la forme d'une chaîne de caractères encodée en base58
    • account: object - un objet JSON, avec les sous-champs suivants :
      • lamports: number, nombre de lamports alloués au compte
      • owner: string, La clé publique du programme auquel le compte a été attribué, encodée en base58
      • data: string | object - les données associées au compte, soit sous forme de données binaires, soit au format JSON, conformément au paramètre d'encodage fourni
      • executable: boolean, Indique si le compte contient un programme
      • rentEpoch: number, L'époque à laquelle ce compte devra payer sa prochaine rente

    Examen plus approfondi

    getProgramAccounts est une méthode RPC polyvalente qui renvoie tous les comptes appartenant à un programme. Nous pouvons utiliser getProgramAccounts pour un certain nombre de requêtes utiles, telles que la recherche de :

    • Tous les comptes de jetons pour un portefeuille en particulier
    • Tous les comptes de jetons pour un mint en particulier (par exemple, tous les propriétaires (holders) de SRMopen in new window)
    • Tous les comptes pour un programme en particulier (par exemple, tous les utilisateurs de Mangoopen in new window)

    Malgré son utilité, getProgramAccounts est souvent mal compris en raison de ses limites actuelles. La plupart des requêtes supportées par getProgramAccounts nécessitent des nœuds RPC pour analyser de grands ensembles de données. Ces analyses sont à la fois gourmandes en mémoire et en ressources. Par conséquent, les appels trop fréquents ou de trop grande envergure peuvent entraîner des interruptions de connexion. De plus, au moment où nous écrivons ces lignes, le point de terminaison getProgramAccounts ne prend pas en charge la pagination. Si les résultats d'une requête sont trop volumineux, la réponse sera tronquée.

    Pour contourner ces contraintes actuelles, getProgramAccounts offre un certain nombre de paramètres utiles : à savoir, dataSlice et les options de filters memcmp et dataSize. En fournissant des combinaisons de ces paramètres, nous pouvons réduire la portée de nos requêtes à des tailles gérables et prévisibles.

    Un exemple courant de getProgramAccounts consiste à interagir avec le Programme de Jetons SPLopen in new window. Demander tous les comptes détenus par le programme de Jetons avec un appel de base impliquerait une énorme quantité de données. Cependant, en fournissant des paramètres, nous pouvons efficacement demander uniquement les données que nous avons l'intention d'utiliser.

    filters

    Le paramètre le plus commun à utiliser avec getProgramAccounts est le tableau filters. Ce tableau accepte deux types de filtres, dataSize et memcmp. Avant d'utiliser l'un de ces filtres, nous devons nous familiariser avec la manière dont les données que nous demandons sont organisées et sérialisées.

    dataSize

    Dans le cas du Programme de Jetons, nous pouvons constater que les comptes de jetons ont une taille de 165 bytesopen in new window. Plus précisément, un compte de jeton comporte huit champs différents, chaque champ ayant un nombre prédéfini de bytes. Nous pouvons visualiser comment ces données sont organisées à l'aide de l'illustration ci-dessous.

    Taille des comptes

    Si nous voulions trouver tous les comptes de jetons appartenant à notre adresse de portefeuille, nous pourrions ajouter { dataSize: 165 } à notre tableau filters pour limiter notre requête aux seuls comptes qui font exactement 165 bytes de long. Toutefois, cela ne suffirait pas. Nous devrions également ajouter un filtre qui recherche les comptes appartenant à notre adresse. Nous pouvons réaliser cela avec le filtre memcmp.

    memcmp

    Le filtre memcmp, ou filtre "comparaison de mémoire", nous permet de comparer des données à n'importe quel champ stocké sur notre compte. Plus précisément, nous pouvons rechercher uniquement les comptes qui possèdent un certain ensemble de bytes à une position précise. memcmp nécessite deux arguments :

    • offset: La position à partir de laquelle il faut commencer à comparer les données. Cette position est mesurée en bytes et est exprimée sous la forme d'un nombre entier.
    • bytes: Les données qui doivent correspondre aux données du compte. Elles sont représentées sous la forme d'une chaîne de caractères codées en base 58 qui doit être limitée à moins de 129 bytes.

    Il est important de noter que memcmp ne retournera que les résultats qui correspondent exactement aux bytes. Actuellement, il ne supporte pas les comparaisons pour les valeurs inférieures ou supérieures aux bytes que nous fournissons.

    Pour rester dans notre exemple du Programme de Jetons, nous pouvons modifier notre requête pour ne renvoyer que les comptes de jetons qui appartiennent à notre adresse de portefeuille. En examinant un compte de jetons, on constate que les deux premiers champs stockés sur un compte de jetons sont tous deux des clés publiques, et que chaque clé publique a une longueur de 32 octets. Étant donné que owner est le deuxième champ, nous devrions commencer notre memcmp à un offset de 32 bytes. A partir de là, nous allons rechercher les comptes dont le champ propriétaire (owner) correspond à l'adresse de notre portefeuille.

    Taille des comptes

    Nous pouvons faire appel à cette requête via l'exemple suivant :

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/fr/integrations/index.html b/docs/.vuepress/dist/fr/integrations/index.html
    index b878e2855..da6de2569 100644
    --- a/docs/.vuepress/dist/fr/integrations/index.html
    +++ b/docs/.vuepress/dist/fr/integrations/index.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Démarrer avec les Intégrations

    Les intégrations du Solana Cookbook propose un ensemble d'exemples et de références permettant à quiconque de s'appuyer sur d'autres protocoles pour développer sur Solana.

    La puissance de Solana provient de sa capacité à intégrer d'autres protocoles, en s'appuyant sur l'infrastructure existante pour améliorer les choses.

    La composabilité est Essentielle

    En rendant votre programme facile à utiliser et à étendre, vous développerez à la fois votre programme et l'ensemble de l'écosystème Solana. Ne réinventez pas la roue, fondez-vous sur les protocoles existants et créez votre propre base d'utilisateurs.

    Adaptez et construisez sur d'autres programmes ou bibliothèques et débloquez de nouvelles capacités pour Solana.

    Contribution

    Si vous souhaitez contribuer aux intégrations, veuillez consulter les lignes directrices pour les contributionsopen in new window.

    Last Updated:
    Contributors: cryptoloutre
    +

    Démarrer avec les Intégrations

    Les intégrations du Solana Cookbook propose un ensemble d'exemples et de références permettant à quiconque de s'appuyer sur d'autres protocoles pour développer sur Solana.

    La puissance de Solana provient de sa capacité à intégrer d'autres protocoles, en s'appuyant sur l'infrastructure existante pour améliorer les choses.

    La composabilité est Essentielle

    En rendant votre programme facile à utiliser et à étendre, vous développerez à la fois votre programme et l'ensemble de l'écosystème Solana. Ne réinventez pas la roue, fondez-vous sur les protocoles existants et créez votre propre base d'utilisateurs.

    Adaptez et construisez sur d'autres programmes ou bibliothèques et débloquez de nouvelles capacités pour Solana.

    Contribution

    Si vous souhaitez contribuer aux intégrations, veuillez consulter les lignes directrices pour les contributionsopen in new window.

    Last Updated:
    Contributors: cryptoloutre
    diff --git a/docs/.vuepress/dist/fr/integrations/jupiter.html b/docs/.vuepress/dist/fr/integrations/jupiter.html index 2920385f4..57a99c1a7 100644 --- a/docs/.vuepress/dist/fr/integrations/jupiter.html +++ b/docs/.vuepress/dist/fr/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    Jupiter est le principal agrégateur de liquidités pour Solana, offrant la plus large gamme de jetons et la meilleure recherche de route entre n'importe quelle paire de jetons.

    Installation

    @jup-ag/core est le paquet de base (Core package) utilisé pour interagir avec les programmes on-chain de jupiter afin d'effectuer des échanges entre deux paires de jetons possibles.

    yarn add @jup-ag/core
    +    

    Jupiter

    Jupiter est le principal agrégateur de liquidités pour Solana, offrant la plus large gamme de jetons et la meilleure recherche de route entre n'importe quelle paire de jetons.

    Installation

    @jup-ag/core est le paquet de base (Core package) utilisé pour interagir avec les programmes on-chain de jupiter afin d'effectuer des échanges entre deux paires de jetons possibles.

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    Récupération de la liste des jetons depuis Jupiter

    Tous les jetons possibles qui peuvent être échangés avec Jupiter pour un réseau donné sont récupérés comme cela :

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    Comment utiliser l'API de Jupiter

    C'est le moyen le plus simple d'interagir avec les programmes de jupiter pour échanger deux jetons donnés.

    Installation

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    Obtention du Chemin d'Accès

    Cette API récupère tous les jetons disponibles qui peuvent être échangés en utilisant l'API jupiter. Une liste de tous les chemins possibles est récupérée ici et allInputMints contient la liste des adresses de mint de tous les jetons d'entrée possibles et swappableOutputForSol contient tous les jetons qu'il est possible d'échanger contre des SOL.

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/fr/integrations/mango.html b/docs/.vuepress/dist/fr/integrations/mango.html
    index 051dadb66..eb74b54ec 100644
    --- a/docs/.vuepress/dist/fr/integrations/mango.html
    +++ b/docs/.vuepress/dist/fr/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mango offre un lieu unique pour prêter, emprunter, échanger et négocier des crypto-actifs par le biais d'un mécanisme de gestion des risques on-chain. Vous pouvez vous connecter au programme de Mango à l'aide des bibliothèques API Client. Vous aurez également besoin de la bibliothèque API javascript de Solana.

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mango offre un lieu unique pour prêter, emprunter, échanger et négocier des crypto-actifs par le biais d'un mécanisme de gestion des risques on-chain. Vous pouvez vous connecter au programme de Mango à l'aide des bibliothèques API Client. Vous aurez également besoin de la bibliothèque API javascript de Solana.

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    Comment récupérer un Groupe Mango

    Un groupe Mango est un panier de jetons à marges croisées. Il contient des informations générales sur le marché des jetons, les dex de Serum, les marchés perp, les oracles, les fonds d'assurance et les vaults de frais. Chaque version de Mango Markets utilise un groupe Mango différent contenant des jetons différents. Le groupe v3 actuel mainnet.1. Voici un tableau présentant les différents groupes :

    GroupeVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Remarque

    Si vous souhaitez utiliser les groupes v2, vous devrez utiliser la bibliothèque client v2. Vous pouvez la trouver iciopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    Comment récupérer un Groupe Mango

    Un groupe Mango est un panier de jetons à marges croisées. Il contient des informations générales sur le marché des jetons, les dex de OpenBook, les marchés perp, les oracles, les fonds d'assurance et les vaults de frais. Chaque version de Mango Markets utilise un groupe Mango différent contenant des jetons différents. Le groupe v3 actuel mainnet.1. Voici un tableau présentant les différents groupes :

    GroupeVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Remarque

    Si vous souhaitez utiliser les groupes v2, vous devrez utiliser la bibliothèque client v2. Vous pouvez la trouver iciopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    Comment placer un ordre spot

    Mango interagit avec le Protocole Serum pour placer des ordres spot sur les marchés. Vous pouvez passer un ordre spot en procédant ainsi. Vous pouvez trouver la référence de la fonction placeSpotOrder iciopen in new window. Mango possède un fichier de configuration qui contient des informations sur les groupes, les marchés, les jetons et les oracles que vous pouvez trouver iciopen in new window. Nous utilisons les informations de ce dossier pour trouver le bon groupe et le bon marché.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    Comment placer un ordre spot

    Mango interagit avec le Protocole OpenBook pour placer des ordres spot sur les marchés. Vous pouvez passer un ordre spot en procédant ainsi. Vous pouvez trouver la référence de la fonction placeSpotOrder iciopen in new window. Mango possède un fichier de configuration qui contient des informations sur les groupes, les marchés, les jetons et les oracles que vous pouvez trouver iciopen in new window. Nous utilisons les informations de ce dossier pour trouver le bon groupe et le bon marché.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    Comment charger les offres

    Mango utilise les informations de marché du Protocole Serum pour charger les offres. Vous pouvez les charger directement depuis Serum pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de Serum iciopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Comment charger les offres

    Mango utilise les informations de marché du Protocole OpenBook pour charger les offres. Vous pouvez les charger directement depuis OpenBook pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de OpenBook iciopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    Comment charger les demandes

    Mango utilise les informations de marché du Protocole Serum pour charger les demandes. Vous pouvez les charger directement depuis Serum pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de Serum iciopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Comment charger les demandes

    Mango utilise les informations de marché du Protocole OpenBook pour charger les demandes. Vous pouvez les charger directement depuis OpenBook pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de OpenBook iciopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/fr/integrations/pyth.html b/docs/.vuepress/dist/fr/integrations/pyth.html
    index fbf403acf..a0955e2a1 100644
    --- a/docs/.vuepress/dist/fr/integrations/pyth.html
    +++ b/docs/.vuepress/dist/fr/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pyth est un Oracle utilisé pour obtenir des données financières et des données sur le marché des crypto-monnaies dans le monde réel. L'Oracle de Pyth peut être utilisé par les programmes on-chain afin d'utiliser des données dans divers cas d'utilisation.

    Comment utiliser Pyth dans le Client

    Pyth fournit une bibliothèque JavaScript/TypeScript appelée @pythnetwork/client. Cette bibliothèque peut être utilisée pour lire les données on-chain de Pyth pour des applications off-chain, comme l'affichage du prix du jeton Pyth sur un site web. Plus d'informations à ce sujet iciopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pyth est un Oracle utilisé pour obtenir des données financières et des données sur le marché des crypto-monnaies dans le monde réel. L'Oracle de Pyth peut être utilisé par les programmes on-chain afin d'utiliser des données dans divers cas d'utilisation.

    Comment utiliser Pyth dans le Client

    Pyth fournit une bibliothèque JavaScript/TypeScript appelée @pythnetwork/client. Cette bibliothèque peut être utilisée pour lire les données on-chain de Pyth pour des applications off-chain, comme l'affichage du prix du jeton Pyth sur un site web. Plus d'informations à ce sujet iciopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    Autres Ressources

    Last Updated:
    Contributors: cryptoloutre
    +

    Autres Ressources

    Last Updated:
    Contributors: cryptoloutre
    diff --git a/docs/.vuepress/dist/fr/integrations/react-native.html b/docs/.vuepress/dist/fr/integrations/react-native.html index b4bd52f25..dc4f6270a 100644 --- a/docs/.vuepress/dist/fr/integrations/react-native.html +++ b/docs/.vuepress/dist/fr/integrations/react-native.html @@ -27,7 +27,7 @@ -

    React Native et Solana

    React Native est un framework UI open-source utilisé pour développer des applications mobiles, web et de bureau permettant aux développeurs d'utiliser le framework React avec les fonctionnalités natives de ces plateformes. Grâce à Solana SDK, il s'agit d'une excellente plateforme pour créer rapidement des applications Crypto natives performantes.

    La façon la plus rapide de commencer avec React Native et Solana est d'utiliser le Solana DApp Scaffold for React Native.

    Comment utiliser @solana/web3.js dans une application React Native

    Dans ce tutoriel, vous apprendrez à créer une nouvelle application React Native et à installer et configurer le SDK @solana/web3.js, ainsi que ses dépendances.

    Si vous avez déjà une application existante, passez directement à l'installation des dépendances.

    Créer une nouvelle application

    Nous démarrons une nouvelle application React Native qui utilise TypeScript, puis exécutons la commande cd vers le répertoire du projet où nous allons exécuter le reste des commandes.

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
    +    

    React Native et Solana

    React Native est un framework UI open-source utilisé pour développer des applications mobiles, web et de bureau permettant aux développeurs d'utiliser le framework React avec les fonctionnalités natives de ces plateformes. Grâce à Solana SDK, il s'agit d'une excellente plateforme pour créer rapidement des applications Crypto natives performantes.

    La façon la plus rapide de commencer avec React Native et Solana est d'utiliser le Solana DApp Scaffold for React Native.

    Comment utiliser @solana/web3.js dans une application React Native

    Dans ce tutoriel, vous apprendrez à créer une nouvelle application React Native et à installer et configurer le SDK @solana/web3.js, ainsi que ses dépendances.

    Si vous avez déjà une application existante, passez directement à l'installation des dépendances.

    Créer une nouvelle application

    Nous démarrons une nouvelle application React Native qui utilise TypeScript, puis exécutons la commande cd vers le répertoire du projet où nous allons exécuter le reste des commandes.

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
     cd SolanaReactNative
     

    Installer les dépendances

    Ensuite, nous installons les dépendances. À savoir, le SDK JavaScript de Solana, un paquet pour corriger le système de compilation de React Native (Metro), un générateur de nombres aléatoires sécurisé, et un correctif pour corriger la classe URL manquante de React Native.

    yarn add \
       @solana/web3.js \
    diff --git a/docs/.vuepress/dist/fr/integrations/serum.html b/docs/.vuepress/dist/fr/integrations/serum.html
    index 564b0b817..d6cf101bb 100644
    --- a/docs/.vuepress/dist/fr/integrations/serum.html
    +++ b/docs/.vuepress/dist/fr/integrations/serum.html
    @@ -22,13 +22,13 @@
     				document.documentElement.classList.toggle('dark', true);
     			}
         
    -    Serum | Solana Cookbook
    -    
    +    OpenBook | Solana Cookbook
    +    
         
       
       
    -    

    Serum

    Serum est un protocole pour les échanges décentralisés construit sur Solana. Vous pouvez utiliser Serum pour créer de nouveaux marchés, obtenir des carnets d'ordres, trade, etc.

    Comment obtenir un marché de Serum

    Un marché sur Serum contient tous les ordres et les fonctionnalités permettant de passer des ordres sur Serum. Pour tout ce que vous faites sur Serum, vous devez connaître le marché avec lequel vous travaillez.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBook est un protocole pour les échanges décentralisés construit sur Solana. Vous pouvez utiliser OpenBook pour créer de nouveaux marchés, obtenir des carnets d'ordres, trade, etc.

    Comment obtenir un marché de OpenBook

    Un marché sur OpenBook contient tous les ordres et les fonctionnalités permettant de passer des ordres sur OpenBook. Pour tout ce que vous faites sur OpenBook, vous devez connaître le marché avec lequel vous travaillez.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    Comment obtenir les carnets d'ordres de Serum

    Les marchés de Serum sont constitués de carnets d'ordres qui comportent les offres et les demandes. Vous pouvez interroger ces informations afin de voir ce qui se passe sur le marché et agir en conséquence.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Comment obtenir les carnets d'ordres de OpenBook

    Les marchés de OpenBook sont constitués de carnets d'ordres qui comportent les offres et les demandes. Vous pouvez interroger ces informations afin de voir ce qui se passe sur le marché et agir en conséquence.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    Comment obtenir les ordres ouverts actuels

    En tant que trader, vous souhaitez connaître les ordres ouverts en cours sur un marché. Avec Serum, il est possible d'interroger vos ordres ouverts ou ceux de n'importe qui d'autre sur un marché.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Comment obtenir les ordres ouverts actuels

    En tant que trader, vous souhaitez connaître les ordres ouverts en cours sur un marché. Avec OpenBook, il est possible d'interroger vos ordres ouverts ou ceux de n'importe qui d'autre sur un marché.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/fr/integrations/strata.html b/docs/.vuepress/dist/fr/integrations/strata.html
    index c44ee5fbb..402cac270 100644
    --- a/docs/.vuepress/dist/fr/integrations/strata.html
    +++ b/docs/.vuepress/dist/fr/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strata est un protocole permettant de lancer des jetons construit sur Solana. Vous pouvez utiliser Strata pour lancer tout type de jeton fongible, allant des jetons sociaux aux jetons dao et gamefi. Vous pouvez également utiliser Strata avec n'importe quel mécanisme de prix fixe pour obtenir un mécanisme de prix dynamique, comme par exemple la CandyMachine de Metaplex.

    Des documents plus détaillés sont disponibles ici. Vous pouvez également utiliser l'interface graphique (GUI) de Strata Launchpad

    Comment créer un jeton entièrement géré

    Un jeton Strata entièrement géré est un jeton dont la liquidité est gérée par le protocole. Le résultat est que vous obtenez immédiatement un jeton tradable, sans avoir besoin de pools ou de fournisseurs de liquidités. Un jeton entièrement géré est un jeton spl classique avec des métadonnées de jeton Metaplex et une courbe de liaison (bonding curve) associée. La courbe de liaison gère la liquidité, le prix et l'offre de ce jeton.

    Press </> button to view full source
    import {
    +    

    Strata

    Strata est un protocole permettant de lancer des jetons construit sur Solana. Vous pouvez utiliser Strata pour lancer tout type de jeton fongible, allant des jetons sociaux aux jetons dao et gamefi. Vous pouvez également utiliser Strata avec n'importe quel mécanisme de prix fixe pour obtenir un mécanisme de prix dynamique, comme par exemple la CandyMachine de Metaplex.

    Des documents plus détaillés sont disponibles ici. Vous pouvez également utiliser l'interface graphique (GUI) de Strata Launchpad

    Comment créer un jeton entièrement géré

    Un jeton Strata entièrement géré est un jeton dont la liquidité est gérée par le protocole. Le résultat est que vous obtenez immédiatement un jeton tradable, sans avoir besoin de pools ou de fournisseurs de liquidités. Un jeton entièrement géré est un jeton spl classique avec des métadonnées de jeton Metaplex et une courbe de liaison (bonding curve) associée. La courbe de liaison gère la liquidité, le prix et l'offre de ce jeton.

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    Comment acheter et vendre un jeton

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    Comment initier la liquidité

    Strata peut également vendre des jetons lorsque vous souhaitez gérer manuellement son offre. Cela peut être utile pour l'initiation de la liquidité avant de lister votre jeton sur un dex. Vous pouvez en savoir plus à ce sujet iciopen in new window ou lancez vôtre jeton sur Strata Launchpad

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/fr/integrations/switchboard.html b/docs/.vuepress/dist/fr/integrations/switchboard.html
    index 41537fd39..982fe58de 100644
    --- a/docs/.vuepress/dist/fr/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/fr/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboard est un Oracle qui permet aux développeurs de s'approvisionner en données on-chain pour une variété de cas d'utilisation tels que l'obtention du prix de jetons, le prix plancher (floor price) de NFTs, les statistiques sportives ou même le caractère vérifiable du hasard. D'une manière générale, Switchboard est une ressource hors chaîne que les développeurs peuvent utiliser pour relier des données on-chain de haute qualité et alimenter la prochaine génération du Web3 et de la DeFi.

    Flux de Données

    Switchboard fournit une bibliothèque JavaScript/TypeScript appelée @switchboard-xyz/switchboard-v2. Cette bibliothèque peut être utilisée pour accéder aux données On-chain à partir de flux de données existants ou pour publier vos propres flux personnalisés. Plus d'informations à ce sujet iciopen in new window

    Lire les données d'un flux d'agrégation

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboard est un Oracle qui permet aux développeurs de s'approvisionner en données on-chain pour une variété de cas d'utilisation tels que l'obtention du prix de jetons, le prix plancher (floor price) de NFTs, les statistiques sportives ou même le caractère vérifiable du hasard. D'une manière générale, Switchboard est une ressource hors chaîne que les développeurs peuvent utiliser pour relier des données on-chain de haute qualité et alimenter la prochaine génération du Web3 et de la DeFi.

    Flux de Données

    Switchboard fournit une bibliothèque JavaScript/TypeScript appelée @switchboard-xyz/switchboard-v2. Cette bibliothèque peut être utilisée pour accéder aux données On-chain à partir de flux de données existants ou pour publier vos propres flux personnalisés. Plus d'informations à ce sujet iciopen in new window

    Lire les données d'un flux d'agrégation

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    Créer un nouveau flux d'agrégation

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Créer un nouveau flux d'agrégation

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    Comment Créer un Flux à partir du Publisher

    La documentation officielle de Switchboard explique en détail comment créer un flux à partir du Publisher. Découvrez-la iciopen in new window.

    Oracles

    La caractéristique unique de Switchboard est qu'il vous permet de créer votre propre oracle et de l'exécuter localement.

    Créer un oracle

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Comment Créer un Flux à partir du Publisher

    La documentation officielle de Switchboard explique en détail comment créer un flux à partir du Publisher. Découvrez-la iciopen in new window.

    Oracles

    La caractéristique unique de Switchboard est qu'il vous permet de créer votre propre oracle et de l'exécuter localement.

    Créer un oracle

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    Exécutez le conteneur en utilisant docker-compose up

    Configuration de l'Oracle

    Variable EnvDéfinition
    ORACLE_KEYObligatoire
    Type - Clé Publique
    Description - Clé publique du compte de l'oracle qui a reçu les permissions d'utiliser une file d'attente oracle
    HEARTBEAT_INTERVALFacultatif
    Type - Nombre (secondes)
    Par Défaut - 30
    Description - Secondes entre les battements de cœur de l'oracle. Les files d'attente ont différentes exigences en matière de battement de cœur de l'oracle. La valeur recommandée est de 15
    GCP_CONFIG_BUCKETFacultatif
    Type - GCP Resource Path
    Par Défaut - Recherche le fichier configs.json dans le répertoire de travail actuel. Si elle n'est pas trouvée, aucune configuration n'est chargée.
    Description - Contient les clés API pour les points de terminaison API privés
    UNWRAP_STAKE_THRESHOLDFacultatif
    Type - Nombre (montant de SOL amount, Ex. 1.55)
    Par Défaut - 0, désactivé.
    Description - Le montant de la balance Solana pour déclencher une action de déblocage de la mise. Lorsque le solde de Solana d'un oracle tombe sous le seuil fixé, le nœud débloque automatiquement les fonds du portefeuille de staking de l'oracle, laissant au moins 0,1 wSOL ou 10 % de plus que l'exigence de mise minimale de la file.

    Fonction Aléatoire Vérifiable(VRF)

    Une Fonction Aléatoire Vérifiable (VRF) est une fonction pseudo-aléatoire à clé publique qui fournit des preuves que ses sorties ont été calculées correctement.

    Lire un compte VRF

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Exécutez le conteneur en utilisant docker-compose up

    Configuration de l'Oracle

    Variable EnvDéfinition
    ORACLE_KEYObligatoire
    Type - Clé Publique
    Description - Clé publique du compte de l'oracle qui a reçu les permissions d'utiliser une file d'attente oracle
    HEARTBEAT_INTERVALFacultatif
    Type - Nombre (secondes)
    Par Défaut - 30
    Description - Secondes entre les battements de cœur de l'oracle. Les files d'attente ont différentes exigences en matière de battement de cœur de l'oracle. La valeur recommandée est de 15
    GCP_CONFIG_BUCKETFacultatif
    Type - GCP Resource Path
    Par Défaut - Recherche le fichier configs.json dans le répertoire de travail actuel. Si elle n'est pas trouvée, aucune configuration n'est chargée.
    Description - Contient les clés API pour les points de terminaison API privés
    UNWRAP_STAKE_THRESHOLDFacultatif
    Type - Nombre (montant de SOL amount, Ex. 1.55)
    Par Défaut - 0, désactivé.
    Description - Le montant de la balance Solana pour déclencher une action de déblocage de la mise. Lorsque le solde de Solana d'un oracle tombe sous le seuil fixé, le nœud débloque automatiquement les fonds du portefeuille de staking de l'oracle, laissant au moins 0,1 wSOL ou 10 % de plus que l'exigence de mise minimale de la file.

    Fonction Aléatoire Vérifiable(VRF)

    Une Fonction Aléatoire Vérifiable (VRF) est une fonction pseudo-aléatoire à clé publique qui fournit des preuves que ses sorties ont été calculées correctement.

    Lire un compte VRF

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    Créer un compte VRF

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Créer un compte VRF

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    Demande de Hasard à partir d'un compte VRF

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Demande de Hasard à partir d'un compte VRF

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/fr/integrations/web3auth.html b/docs/.vuepress/dist/fr/integrations/web3auth.html
    index 5ffe10cf4..e5cb2f7d8 100644
    --- a/docs/.vuepress/dist/fr/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/fr/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Portefeuille

    Qu'est-ce qu'un portefeuille ?

    Un portefeuille de crypto-monnaie est un portefeuille numérique utilisé pour interagir avec la blockchain. Il vous permet de signer, de vérifier et d'envoyer des transactions. Il existe de nombreuses solutions de portefeuille de crypto-monnaies sur le marché, allant des applications web simples à utiliser aux solutions de sécurité matérielle plus complexes.

    Connexions Sociales sur Solana

    Web3Authopen in new window permet aux utilisateurs de se connecter en utilisant leurs fournisseurs Web2 OAuth existants (Facebook, Google, Twitter, etc.) dans des applications Web3. Il offre une approche facile à utiliser et non-custodialopen in new window de la gestion des actifs et de l'identité. Il supprime les obstacles techniques et réduit la courbe d'apprentissage de la propriété numérique pour tous les utilisateurs en fournissant un cadre à la gestion des clés privées.

    Guide d'Intégration

    Ce tutoriel vous guidera à travers un exemple de base pour intégrer les connexions sociales dans votre application.

    Installation des Dépendances

    Pour commencer à utiliser le portefeuille avec une dapp, vous pouvez installer @toruslabs/solana-embed. Vous pouvez utiliser des gestionnaires de paquets connus comme yarn et npm pour les télécharger.

    yarn add @toruslabs/solana-embed
    +    

    Portefeuille

    Qu'est-ce qu'un portefeuille ?

    Un portefeuille de crypto-monnaie est un portefeuille numérique utilisé pour interagir avec la blockchain. Il vous permet de signer, de vérifier et d'envoyer des transactions. Il existe de nombreuses solutions de portefeuille de crypto-monnaies sur le marché, allant des applications web simples à utiliser aux solutions de sécurité matérielle plus complexes.

    Connexions Sociales sur Solana

    Web3Authopen in new window permet aux utilisateurs de se connecter en utilisant leurs fournisseurs Web2 OAuth existants (Facebook, Google, Twitter, etc.) dans des applications Web3. Il offre une approche facile à utiliser et non-custodialopen in new window de la gestion des actifs et de l'identité. Il supprime les obstacles techniques et réduit la courbe d'apprentissage de la propriété numérique pour tous les utilisateurs en fournissant un cadre à la gestion des clés privées.

    Guide d'Intégration

    Ce tutoriel vous guidera à travers un exemple de base pour intégrer les connexions sociales dans votre application.

    Installation des Dépendances

    Pour commencer à utiliser le portefeuille avec une dapp, vous pouvez installer @toruslabs/solana-embed. Vous pouvez utiliser des gestionnaires de paquets connus comme yarn et npm pour les télécharger.

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    Importer le SDK et l'initialiser

    Dans l'extrait de code ci-dessous, nous créons une instance de solana-embed et l'initialisons avec l'environnement de test qui utilise le tesnet de Solana. Vous pouvez passer d'autres options de configuration lors de l'initialisation de l'interface du portefeuille. Vous pouvez vous référer à solana-embed api-referenceopen in new window pour en savoir plus.

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/fr/references/basic-transactions.html b/docs/.vuepress/dist/fr/references/basic-transactions.html
    index 1a2858363..eed2325ec 100644
    --- a/docs/.vuepress/dist/fr/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/fr/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    Comment changer le budget de calcul, les frais, & la priorisation d'une transaction

    La priorisation d'une transaction (TX) est obtenue en payant des Frais de Priorisation en plus des Frais de Base. Par défaut, le budget de calcul est le produit de 200 000 unités de calcul (UC) * le nombre d'instructions, avec un maximum de 1,4 million d'UC. Les Frais de Base sont de 5 000 Lamports. Un microLamport est 0.000001 Lamports.

    Le budget total de calcul ou les Frais de Priorisation pour une seule TX peuvent être modifiés en ajoutant des instructions du programme ComputeBudgetProgram.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number }) ajoutera des Frais de Priorisation en plus des Frais de Base (5 000 Lamports). La valeur fournie en microLamports sera multipliée par le budget de l'UC pour déterminer les Frais de Priorisation en Lamports. Par exemple, si votre budget de l'UC est de 1M d'UC, et que vous ajoutez 1 microLamport/UC, les Frais de Priorisation seront de 1 Lamport (1M * 0,000001). Les frais totaux seront alors de 5001 Lamports.

    Utilisez ComputeBudgetProgram.setComputeUnitLimit({ units: number }) pour définir le nouveau budget de calcul. La valeur fournie remplacera la valeur par défaut. Les transactions doivent demander la quantité minimale d'UC nécessaire à l'exécution afin de maximiser le débit ou de minimiser les frais.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    Comment changer le budget de calcul, les frais, & la priorisation d'une transaction

    La priorisation d'une transaction (TX) est obtenue en payant des Frais de Priorisation en plus des Frais de Base. Par défaut, le budget de calcul est le produit de 200 000 unités de calcul (UC) * le nombre d'instructions, avec un maximum de 1,4 million d'UC. Les Frais de Base sont de 5 000 Lamports. Un microLamport est 0.000001 Lamports.

    Le budget total de calcul ou les Frais de Priorisation pour une seule TX peuvent être modifiés en ajoutant des instructions du programme ComputeBudgetProgram.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number }) ajoutera des Frais de Priorisation en plus des Frais de Base (5 000 Lamports). La valeur fournie en microLamports sera multipliée par le budget de l'UC pour déterminer les Frais de Priorisation en Lamports. Par exemple, si votre budget de l'UC est de 1M d'UC, et que vous ajoutez 1 microLamport/UC, les Frais de Priorisation seront de 1 Lamport (1M * 0,000001). Les frais totaux seront alors de 5001 Lamports.

    Utilisez ComputeBudgetProgram.setComputeUnitLimit({ units: number }) pour définir le nouveau budget de calcul. La valeur fournie remplacera la valeur par défaut. Les transactions doivent demander la quantité minimale d'UC nécessaire à l'exécution afin de maximiser le débit ou de minimiser les frais.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/fr/references/local-development.html b/docs/.vuepress/dist/fr/references/local-development.html
    index de88fd16f..d2ccc48ad 100644
    --- a/docs/.vuepress/dist/fr/references/local-development.html
    +++ b/docs/.vuepress/dist/fr/references/local-development.html
    @@ -345,12 +345,12 @@
     

    Le chargement sur votre réseau local se fait ensuite en passant le fichier contenant les comptes et l'adresse de destination (sur le cluster local) lors du démarrage du validateur :

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    Comment charger des programmes depuis le mainnet

    De même, il est possible de télécharger le programme Serum Dex v3 :

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    Comment charger des programmes depuis le mainnet

    De même, il est possible de télécharger le programme OpenBook Dex v3 :

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    Le chargement sur votre réseau local se fait alors en passant le fichier du programme et l'adresse de destination (sur le cluster local) lors du démarrage du validateur :

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Partially Sorted, cryptoloutre
    diff --git a/docs/.vuepress/dist/guides/account-maps.html b/docs/.vuepress/dist/guides/account-maps.html index 69f7b3fa5..d5308561c 100644 --- a/docs/.vuepress/dist/guides/account-maps.html +++ b/docs/.vuepress/dist/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    On the client-side, you can use PublicKey.findProgramAddress() to obtain the required Blog and Post account address, which you can pass into connection.getAccountInfo() to fetch the account data. An example is shown below,

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    On the client-side, you can use PublicKey.findProgramAddress() to obtain the required Blog and Post account address, which you can pass into connection.getAccountInfo() to fetch the account data. An example is shown below,

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/guides/get-program-accounts.html b/docs/.vuepress/dist/guides/get-program-accounts.html
    index 1b97c446b..5483069cd 100644
    --- a/docs/.vuepress/dist/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Get Program Accounts

    An RPC method that returns all accounts owned by a program. Currently pagination is not supported. Requests to getProgramAccounts should include the dataSlice and/or filters parameters to improve response time and return only intended results.

    Facts

    Parameters

    • programId: string - Pubkey of the program to query, provided as a base58 encoded string
    • (optional) configOrCommitment: object - Configuration parameters containing the following optional fields:
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - Encoding for account data, either: base58, base64, or jsonParsed. Note, web3js users should instead use getParsedProgramAccountsopen in new window
      • (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
      • (optional) filters: array - Filter results using the following filter objects:
        • memcmp: object - Match a series of bytes to account data:
          • offset: number - Number of bytes into account data to begin comparing
          • bytes: string - Data to match, as base58 encoded string limited to 129 bytes
        • dataSize: number - Compares the account data length with the provided data size
      • (optional) withContext: boolean - Wrap the result in an RpcResponse JSON objectopen in new window
    Response

    By default getProgramAccounts will return an array of JSON objects with the following structure:

    • pubkey: string - The account pubkey as a base58 encoded string
    • account: object - a JSON object, with the following sub fields:
      • lamports: number, number of lamports assigned to the account
      • owner: string, The base58 encoded pubkey of the program the account has been assigned to
      • data: string | object - data associated with the account, either as encoded binary data or JSON format depending on the provided encoding parameter
      • executable: boolean, Indication if the account contains a program
      • rentEpoch: number, The epoch at which this account will next owe rent

    Deep Dive

    getProgramAccounts is a versatile RPC method that returns all accounts owned by a program. We can use getProgramAccounts for a number of useful queries, such as finding:

    Despite its usefulness, getProgramAccounts is often misunderstood due to its current constraints. Many of the queries supported by getProgramAccounts require RPC nodes to scan large sets of data. These scans are both memory and resource intensive. As a result, calls that are too frequent or too large in scope can result in connection timeouts. Furthermore, at the time of this writing, the getProgramAccounts endpoint does not support pagination. If the results of a query are too large, the response will be truncated.

    To get around these current constraints, getProgramAccounts offers a number of useful parameters: namely, dataSlice and the filters options memcmp and dataSize. By providing combinations of these parameters, we can reduce the scope of our queries down to manageable and predictable sizes.

    A common example of getProgramAccounts involves interacting with the SPL-Token Programopen in new window. Requesting all accounts owned by the Token Program with a basic call would involve an enormous amount of data. By providing parameters, however, we can efficiently request just the data we intend to use.

    filters

    The most common parameter to use with getProgramAccounts is the filters array. This array accepts two types of filters,dataSize and memcmp. Before using either of these filters, we should be familiar with how the data we are requesting is laid out and serialized.

    dataSize

    In the case of the Token Program, we can see that token accounts are 165 bytes in lengthopen in new window. Specifically, a token account has eight different fields, with each field requiring a predictable number of bytes. We can visualize how this data is laid out using the below illustration.

    Account Size

    If we wanted to find all token accounts owned by our wallet address, we could add { dataSize: 165 } to our filters array to narrow the scope of our query to just accounts that are exactly 165 bytes in length. This alone, however, would be insufficient. We would also need to add a filter that looks for accounts owned by our address. We can achieve this with the memcmp filter.

    memcmp

    The memcmp filter, or "memory comparison" filter, allows us to compare data at any field stored on our account. Specifically, we can query only for accounts that match a particular set of bytes at a particular position. memcmp requires two arguments:

    • offset: The position at which to begin comparing data. This position is measured in bytes and is expressed as an integer.
    • bytes: The data that should match the account's data. This is represented as a base-58 encoded string should be limited to less than 129 bytes.

    It's important to note that memcmp will only return results that are an exact match on bytes. Currently, it does not support comparisons for values that are less than or greater than the bytes we provide.

    In keeping with our Token Program example, we can amend our query to only return token accounts that are owned by our wallet address. When looking at a token account, we can see the first two fields stored on a token account are both pubkeys, and that each pubkey is 32 bytes in length. Given that owner is the second field, we should begin our memcmp at an offset of 32 bytes. From here, we’ll be looking for accounts whose owner field matches our wallet address.

    Account Size

    We can invoke this query via the following example:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Get Program Accounts

    An RPC method that returns all accounts owned by a program. Currently pagination is not supported. Requests to getProgramAccounts should include the dataSlice and/or filters parameters to improve response time and return only intended results.

    Facts

    Parameters

    • programId: string - Pubkey of the program to query, provided as a base58 encoded string
    • (optional) configOrCommitment: object - Configuration parameters containing the following optional fields:
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - Encoding for account data, either: base58, base64, or jsonParsed. Note, web3js users should instead use getParsedProgramAccountsopen in new window
      • (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
      • (optional) filters: array - Filter results using the following filter objects:
        • memcmp: object - Match a series of bytes to account data:
          • offset: number - Number of bytes into account data to begin comparing
          • bytes: string - Data to match, as base58 encoded string limited to 129 bytes
        • dataSize: number - Compares the account data length with the provided data size
      • (optional) withContext: boolean - Wrap the result in an RpcResponse JSON objectopen in new window
    Response

    By default getProgramAccounts will return an array of JSON objects with the following structure:

    • pubkey: string - The account pubkey as a base58 encoded string
    • account: object - a JSON object, with the following sub fields:
      • lamports: number, number of lamports assigned to the account
      • owner: string, The base58 encoded pubkey of the program the account has been assigned to
      • data: string | object - data associated with the account, either as encoded binary data or JSON format depending on the provided encoding parameter
      • executable: boolean, Indication if the account contains a program
      • rentEpoch: number, The epoch at which this account will next owe rent

    Deep Dive

    getProgramAccounts is a versatile RPC method that returns all accounts owned by a program. We can use getProgramAccounts for a number of useful queries, such as finding:

    Despite its usefulness, getProgramAccounts is often misunderstood due to its current constraints. Many of the queries supported by getProgramAccounts require RPC nodes to scan large sets of data. These scans are both memory and resource intensive. As a result, calls that are too frequent or too large in scope can result in connection timeouts. Furthermore, at the time of this writing, the getProgramAccounts endpoint does not support pagination. If the results of a query are too large, the response will be truncated.

    To get around these current constraints, getProgramAccounts offers a number of useful parameters: namely, dataSlice and the filters options memcmp and dataSize. By providing combinations of these parameters, we can reduce the scope of our queries down to manageable and predictable sizes.

    A common example of getProgramAccounts involves interacting with the SPL-Token Programopen in new window. Requesting all accounts owned by the Token Program with a basic call would involve an enormous amount of data. By providing parameters, however, we can efficiently request just the data we intend to use.

    filters

    The most common parameter to use with getProgramAccounts is the filters array. This array accepts two types of filters,dataSize and memcmp. Before using either of these filters, we should be familiar with how the data we are requesting is laid out and serialized.

    dataSize

    In the case of the Token Program, we can see that token accounts are 165 bytes in lengthopen in new window. Specifically, a token account has eight different fields, with each field requiring a predictable number of bytes. We can visualize how this data is laid out using the below illustration.

    Account Size

    If we wanted to find all token accounts owned by our wallet address, we could add { dataSize: 165 } to our filters array to narrow the scope of our query to just accounts that are exactly 165 bytes in length. This alone, however, would be insufficient. We would also need to add a filter that looks for accounts owned by our address. We can achieve this with the memcmp filter.

    memcmp

    The memcmp filter, or "memory comparison" filter, allows us to compare data at any field stored on our account. Specifically, we can query only for accounts that match a particular set of bytes at a particular position. memcmp requires two arguments:

    • offset: The position at which to begin comparing data. This position is measured in bytes and is expressed as an integer.
    • bytes: The data that should match the account's data. This is represented as a base-58 encoded string should be limited to less than 129 bytes.

    It's important to note that memcmp will only return results that are an exact match on bytes. Currently, it does not support comparisons for values that are less than or greater than the bytes we provide.

    In keeping with our Token Program example, we can amend our query to only return token accounts that are owned by our wallet address. When looking at a token account, we can see the first two fields stored on a token account are both pubkeys, and that each pubkey is 32 bytes in length. Given that owner is the second field, we should begin our memcmp at an offset of 32 bytes. From here, we’ll be looking for accounts whose owner field matches our wallet address.

    Account Size

    We can invoke this query via the following example:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/id/guides/account-maps.html b/docs/.vuepress/dist/id/guides/account-maps.html
    index 4532edceb..44e76ae92 100644
    --- a/docs/.vuepress/dist/id/guides/account-maps.html
    +++ b/docs/.vuepress/dist/id/guides/account-maps.html
    @@ -593,7 +593,7 @@
     
         Ok(())
     }
    -

    Di sisi klien, Anda dapat menggunakan PublicKey.findProgramAddress() untuk memperoleh alamat akun Blog dan Artikel yang diperlukan, yang dapat Anda teruskan ke connection.getAccountInfo() untuk mengambil data akun. Contoh ditunjukkan di bawah ini,

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    Di sisi klien, Anda dapat menggunakan PublicKey.findProgramAddress() untuk memperoleh alamat akun Blog dan Artikel yang diperlukan, yang dapat Anda teruskan ke connection.getAccountInfo() untuk mengambil data akun. Contoh ditunjukkan di bawah ini,

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/id/guides/get-program-accounts.html b/docs/.vuepress/dist/id/guides/get-program-accounts.html
    index 0cd025aa6..55e69ce87 100644
    --- a/docs/.vuepress/dist/id/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/id/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Mendapatkan Akun Program (getProgramAccounts)

    adalah sebuah metode RPC untuk mendapatkan semua akun yang dimiliki oleh suatu program. Saat ini pagination tidak didukung. Request ke getProgramAccounts harus menyertakan parameter dataSlice dan/atau filters untuk mempercepat waktu respon dan hanya mengembalikan hasil yang diinginkan.

    Fakta

    Parameter

    • programId: string - Pubkey dari program yang akan diambil, disediakan sebagai string yang di encode menggunakan base58
    • (opsional) configOrCommitment: object - Parameter konfigurasi yang berisi field opsional berikut:
      • (opsional) commitment: string - State commitmentopen in new window
      • (opsional) encoding: string - Encoding yang digunakan untuk data akun, baik: base58, base64, atau jsonParsed. Catatan, pengguna web3js sebaiknya menggunakan getParsedProgramAccountsopen in new window
      • (opsional) dataSlice: object - Membatasi jumlah data akun yang dikembalikan berdasarkan:
        • offset: number - Jumlah byte ke dalam data akun untuk mulai kembali
        • length: number - Jumlah byte data akun yang akan dikembalikan
      • (opsional) filters: array - Filter hasil menggunakan objek filter berikut:
        • memcmp: object - Untuk mencocokkan serangkaian byte dengan data akun:
          • offset: number - Posisi byte dalam data akun tempat dimulai perbandingannya
          • bytes: string - Data yang sedang dicocokkan berupa string yang di encode base58, dibatasi hingga 129 byte
        • dataSize: number - Membandingkan panjang data akun dengan ukuran data yang disediakan
      • (opsional) withContext: boolean - Untuk membungkus hasilnya dalam object RpcResponse JSONopen in new window
    Response

    Secara default getProgramAccounts akan mengembalikan array dari objek JSON dengan struktur berikut:

    • pubkey: string - Pubkey akun berupa string yang diencode base58
    • account: object - sebuah objek JSON, dengan sub-field berikut:
      • lamports: number, jumlah lamport yang dimiliki sebuah akun
      • owner: string, Pubkey dengan encode base58 dari program tempat akun tersebut dipasangkan
      • data: string | object - data yang terkait dengan akun, baik berupa data biner yang telah diencode atau format JSON tergantung pada parameter jenis encoding yang diberikan
      • executable: boolean, untuk mengindikasi jika akun tersebut berisi sebuah program
      • rentEpoch: number, Epoch di mana akun ini selanjutnya akan berutang sewa

    Memahami lebih dalam

    getProgramAccounts adalah metode RPC serbaguna yang mendapatkan semua akun yang dimiliki oleh suatu program. Kita dapat menggunakan getProgramAccounts untuk sejumlah query yang berguna, seperti menemukan:

    Terlepas dari kegunaannya, getProgramAccounts sering disalahpahami karena batasannya saat ini. Banyak query yang didukung oleh getProgramAccounts memerlukan node RPC untuk melakukan scan dari kumpulan data yang besar. Proses scan ini membutuhkan memori dan sumber daya yang intensif. Akibatnya, pemanggilan yang terlalu sering atau terlalu besar cakupannya dapat mengakibatkan connection timeout. Selanjutnya, pada saat penulisan ini, endpoint dari getProgramAccounts tidak mendukung pagination. Jika hasil query terlalu besar, respons akan dipecah (truncate).

    Untuk mengatasi kendala saat ini, getProgramAccounts menawarkan sejumlah parameter yang berguna: yaitu, dataSlice dan opsi dari filters yaitu memcmp dan dataSize. Dengan memberikan kombinasi parameter ini, kita dapat mengurangi cakupan query kita menjadi ukuran yang dapat dikelola dan diprediksi.

    Contoh umum dari getProgramAccounts melibatkan interaksi dengan Program Token SPLopen in new window. Meminta semua akun yang dimiliki oleh Program Token dengan sebuah basic call akan melibatkan sejumlah data yang besar. Namun, dengan memberikan parameter, kita dapat meminta hanya data yang ingin kita gunakan secara efisien.

    filters

    Parameter yang paling umum digunakan dengan getProgramAccounts adalah array dari filters. Array ini menerima dua jenis filter, yaitu dataSize dan memcmp. Sebelum menggunakan salah satu dari filter ini, kita harus terbiasa dengan bagaimana data yang kita minta ditata dan diserialisasi.

    dataSize

    Dalam kasus Program Token, kita dapat melihat bahwa akun token memiliki panjang 165 byteopen in new window. Secara khusus, akun token memiliki delapan field yang berbeda, dengan masing-masing field membutuhkan jumlah byte yang dapat diprediksi. Kita dapat memvisualisasikan bagaimana data ini ditata menggunakan ilustrasi di bawah ini.

    Account Size

    Jika kita ingin menemukan semua akun token yang dimiliki oleh address wallet kita, kita dapat menambahkan { dataSize: 165 } ke dalam array filters kita untuk memperkecil cakupan query kita menjadi hanya akun yang panjangnya tepat 165 byte. Namun, ini saja tidak akan cukup. kita juga perlu menambahkan filter untuk yang mencari akun yang dimiliki oleh address kita. Kita bisa mendapatkan ini dengan filter memcmp.

    memcmp

    Filter memcmp, atau filter "memory comparison", memungkinkan kita untuk membandingkan data di field mana pun yang tersimpan di akun kita. Secara khusus, kita hanya dapat melakukan query untuk akun yang cocok dengan sekumpulan byte tertentu pada posisi tertentu. memcmp membutuhkan dua argumen:

    • offset: Posisi untuk mulai membandingkan data. Posisi ini diukur dalam byte dan dinyatakan sebagai bilangan bulat.
    • bytes: Data yang harus cocok dengan data akun. Ini direpresentasikan dengan string yang diencode menggunakan base-58 dan harus berukuran kurang dari 129 byte.

    Penting untuk diperhatikan bahwa memcmp hanya akan mengembalikan hasil yang bagian dari datanya sama persis dengan bytes. Saat ini, memcmp tidak mendukung perbandingan untuk data yang kurang dari atau lebih besar dari bytes yang kita berikan.

    Sesuai dengan contoh Program Token kita, kita dapat mengubah query kita untuk hanya mengembalikan akun token yang dimiliki oleh address wallet kita. Saat melihat akun token, kita dapat melihat dua field pertama yang disimpan di akun token adalah pubkey, dan masing-masing pubkey memiliki panjang 32 byte. Mengingat bahwa owner adalah field kedua, kita harus memulai memcmp kita pada offset 32 byte. Dari sini, kita akan mencari akun yang field ownernya cocok dengan address wallet kita.

    Account Size

    kita dapat memanggil query ini melalui contoh berikut:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Mendapatkan Akun Program (getProgramAccounts)

    adalah sebuah metode RPC untuk mendapatkan semua akun yang dimiliki oleh suatu program. Saat ini pagination tidak didukung. Request ke getProgramAccounts harus menyertakan parameter dataSlice dan/atau filters untuk mempercepat waktu respon dan hanya mengembalikan hasil yang diinginkan.

    Fakta

    Parameter

    • programId: string - Pubkey dari program yang akan diambil, disediakan sebagai string yang di encode menggunakan base58
    • (opsional) configOrCommitment: object - Parameter konfigurasi yang berisi field opsional berikut:
      • (opsional) commitment: string - State commitmentopen in new window
      • (opsional) encoding: string - Encoding yang digunakan untuk data akun, baik: base58, base64, atau jsonParsed. Catatan, pengguna web3js sebaiknya menggunakan getParsedProgramAccountsopen in new window
      • (opsional) dataSlice: object - Membatasi jumlah data akun yang dikembalikan berdasarkan:
        • offset: number - Jumlah byte ke dalam data akun untuk mulai kembali
        • length: number - Jumlah byte data akun yang akan dikembalikan
      • (opsional) filters: array - Filter hasil menggunakan objek filter berikut:
        • memcmp: object - Untuk mencocokkan serangkaian byte dengan data akun:
          • offset: number - Posisi byte dalam data akun tempat dimulai perbandingannya
          • bytes: string - Data yang sedang dicocokkan berupa string yang di encode base58, dibatasi hingga 129 byte
        • dataSize: number - Membandingkan panjang data akun dengan ukuran data yang disediakan
      • (opsional) withContext: boolean - Untuk membungkus hasilnya dalam object RpcResponse JSONopen in new window
    Response

    Secara default getProgramAccounts akan mengembalikan array dari objek JSON dengan struktur berikut:

    • pubkey: string - Pubkey akun berupa string yang diencode base58
    • account: object - sebuah objek JSON, dengan sub-field berikut:
      • lamports: number, jumlah lamport yang dimiliki sebuah akun
      • owner: string, Pubkey dengan encode base58 dari program tempat akun tersebut dipasangkan
      • data: string | object - data yang terkait dengan akun, baik berupa data biner yang telah diencode atau format JSON tergantung pada parameter jenis encoding yang diberikan
      • executable: boolean, untuk mengindikasi jika akun tersebut berisi sebuah program
      • rentEpoch: number, Epoch di mana akun ini selanjutnya akan berutang sewa

    Memahami lebih dalam

    getProgramAccounts adalah metode RPC serbaguna yang mendapatkan semua akun yang dimiliki oleh suatu program. Kita dapat menggunakan getProgramAccounts untuk sejumlah query yang berguna, seperti menemukan:

    Terlepas dari kegunaannya, getProgramAccounts sering disalahpahami karena batasannya saat ini. Banyak query yang didukung oleh getProgramAccounts memerlukan node RPC untuk melakukan scan dari kumpulan data yang besar. Proses scan ini membutuhkan memori dan sumber daya yang intensif. Akibatnya, pemanggilan yang terlalu sering atau terlalu besar cakupannya dapat mengakibatkan connection timeout. Selanjutnya, pada saat penulisan ini, endpoint dari getProgramAccounts tidak mendukung pagination. Jika hasil query terlalu besar, respons akan dipecah (truncate).

    Untuk mengatasi kendala saat ini, getProgramAccounts menawarkan sejumlah parameter yang berguna: yaitu, dataSlice dan opsi dari filters yaitu memcmp dan dataSize. Dengan memberikan kombinasi parameter ini, kita dapat mengurangi cakupan query kita menjadi ukuran yang dapat dikelola dan diprediksi.

    Contoh umum dari getProgramAccounts melibatkan interaksi dengan Program Token SPLopen in new window. Meminta semua akun yang dimiliki oleh Program Token dengan sebuah basic call akan melibatkan sejumlah data yang besar. Namun, dengan memberikan parameter, kita dapat meminta hanya data yang ingin kita gunakan secara efisien.

    filters

    Parameter yang paling umum digunakan dengan getProgramAccounts adalah array dari filters. Array ini menerima dua jenis filter, yaitu dataSize dan memcmp. Sebelum menggunakan salah satu dari filter ini, kita harus terbiasa dengan bagaimana data yang kita minta ditata dan diserialisasi.

    dataSize

    Dalam kasus Program Token, kita dapat melihat bahwa akun token memiliki panjang 165 byteopen in new window. Secara khusus, akun token memiliki delapan field yang berbeda, dengan masing-masing field membutuhkan jumlah byte yang dapat diprediksi. Kita dapat memvisualisasikan bagaimana data ini ditata menggunakan ilustrasi di bawah ini.

    Account Size

    Jika kita ingin menemukan semua akun token yang dimiliki oleh address wallet kita, kita dapat menambahkan { dataSize: 165 } ke dalam array filters kita untuk memperkecil cakupan query kita menjadi hanya akun yang panjangnya tepat 165 byte. Namun, ini saja tidak akan cukup. kita juga perlu menambahkan filter untuk yang mencari akun yang dimiliki oleh address kita. Kita bisa mendapatkan ini dengan filter memcmp.

    memcmp

    Filter memcmp, atau filter "memory comparison", memungkinkan kita untuk membandingkan data di field mana pun yang tersimpan di akun kita. Secara khusus, kita hanya dapat melakukan query untuk akun yang cocok dengan sekumpulan byte tertentu pada posisi tertentu. memcmp membutuhkan dua argumen:

    • offset: Posisi untuk mulai membandingkan data. Posisi ini diukur dalam byte dan dinyatakan sebagai bilangan bulat.
    • bytes: Data yang harus cocok dengan data akun. Ini direpresentasikan dengan string yang diencode menggunakan base-58 dan harus berukuran kurang dari 129 byte.

    Penting untuk diperhatikan bahwa memcmp hanya akan mengembalikan hasil yang bagian dari datanya sama persis dengan bytes. Saat ini, memcmp tidak mendukung perbandingan untuk data yang kurang dari atau lebih besar dari bytes yang kita berikan.

    Sesuai dengan contoh Program Token kita, kita dapat mengubah query kita untuk hanya mengembalikan akun token yang dimiliki oleh address wallet kita. Saat melihat akun token, kita dapat melihat dua field pertama yang disimpan di akun token adalah pubkey, dan masing-masing pubkey memiliki panjang 32 byte. Mengingat bahwa owner adalah field kedua, kita harus memulai memcmp kita pada offset 32 byte. Dari sini, kita akan mencari akun yang field ownernya cocok dengan address wallet kita.

    Account Size

    kita dapat memanggil query ini melalui contoh berikut:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/id/integrations/index.html b/docs/.vuepress/dist/id/integrations/index.html
    index caddadcdf..d87b1f3ba 100644
    --- a/docs/.vuepress/dist/id/integrations/index.html
    +++ b/docs/.vuepress/dist/id/integrations/index.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Memulai dengan Integrasi

    Buku Panduan Solana bagian Integrasi menyediakan contoh dan referensi untuk siapapun membangun aplikasi di atas protokol lain yang berjalan di Solana.

    Kekuatan Solana berasal dari kemampuan untuk berintegrasi dengan protokol lain, membangun di atas infrastruktur yang ada untuk membuat sesuatu yang lebih baik.

    Composability Adalah Kunci

    Membuat program Anda mudah digunakan dan diperluas akan menumbuhkan program Anda dan seluruh ekosistem Solana. Jangan mengulang kembali apa yang sudah ada dari awal, bangun di atas protokol yang ada dan bootstrap basis pengguna Anda.

    Beradaptasi dan bangun di atas program atau librari lain dan buka kemampuan baru untuk Solana.

    Kontribusi

    Jika Anda tertarik untuk berkontribusi pada integrasi, silakan periksa contribution guidelinesopen in new window.

    Last Updated:
    Contributors: akangaziz
    +

    Memulai dengan Integrasi

    Buku Panduan Solana bagian Integrasi menyediakan contoh dan referensi untuk siapapun membangun aplikasi di atas protokol lain yang berjalan di Solana.

    Kekuatan Solana berasal dari kemampuan untuk berintegrasi dengan protokol lain, membangun di atas infrastruktur yang ada untuk membuat sesuatu yang lebih baik.

    Composability Adalah Kunci

    Membuat program Anda mudah digunakan dan diperluas akan menumbuhkan program Anda dan seluruh ekosistem Solana. Jangan mengulang kembali apa yang sudah ada dari awal, bangun di atas protokol yang ada dan bootstrap basis pengguna Anda.

    Beradaptasi dan bangun di atas program atau librari lain dan buka kemampuan baru untuk Solana.

    Kontribusi

    Jika Anda tertarik untuk berkontribusi pada integrasi, silakan periksa contribution guidelinesopen in new window.

    Last Updated:
    Contributors: akangaziz
    diff --git a/docs/.vuepress/dist/id/integrations/jupiter.html b/docs/.vuepress/dist/id/integrations/jupiter.html index ccc5e4071..ffcb7694c 100644 --- a/docs/.vuepress/dist/id/integrations/jupiter.html +++ b/docs/.vuepress/dist/id/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    Jupiter adalah agregator likuiditas utama untuk Solana, menawarkan rentang token terluas dan penemuan rute terbaik di antara pasangan token mana pun.

    Instalasi

    @jup-ag/core adalah paket Core yang digunakan untuk berinteraksi dengan program on-chain jupiter untuk melakukan swap antara dua kemungkinan pasangan token.

    yarn add @jup-ag/core
    +    

    Jupiter

    Jupiter adalah agregator likuiditas utama untuk Solana, menawarkan rentang token terluas dan penemuan rute terbaik di antara pasangan token mana pun.

    Instalasi

    @jup-ag/core adalah paket Core yang digunakan untuk berinteraksi dengan program on-chain jupiter untuk melakukan swap antara dua kemungkinan pasangan token.

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    Mengambil List Token dari Jupiter

    Semua kemungkinan token yang dapat ditukar dengan jupiter untuk jaringan tertentu sedang diambil.

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    Cara Menggunakan Jupiter API

    Ini adalah cara termudah untuk berinteraksi dengan program jupiter untuk menukar 2 token yang disediakan.

    Instalasi

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    Mendapatkan Route Map

    API ini mengambil semua token yang tersedia yang dapat ditukar menggunakan API jupiter. Daftar semua kemungkinan rute token sedang diambil di sini dan allInputMints berisi daftar semua Token Input yang mungkin berdasarkan alamat mint dan swappableOutputForSol berisi semua kemungkinan token yang dapat ditukar dengan SOL dalam kasus ini.

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/id/integrations/mango.html b/docs/.vuepress/dist/id/integrations/mango.html
    index 142b8b1df..594a0f8e8 100644
    --- a/docs/.vuepress/dist/id/integrations/mango.html
    +++ b/docs/.vuepress/dist/id/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mango menyediakan satu tempat untuk meminjamkan, meminjam, menukar, dan memanfaatkan memperdagangkan aset kripto melalui mesin risiko on-chain.

    Anda dapat terhubung ke program on-chain Mango menggunakan librari Client API. Anda juga memerlukan librari Solana javascript API.

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mango menyediakan satu tempat untuk meminjamkan, meminjam, menukar, dan memanfaatkan memperdagangkan aset kripto melalui mesin risiko on-chain.

    Anda dapat terhubung ke program on-chain Mango menggunakan librari Client API. Anda juga memerlukan librari Solana javascript API.

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    Cara Mendapatkan Mango Group

    A mango group adalah basket dari cross-margined tokens. Ini menyimpan info pasar yang luas tentang token, pasar dex serum, pasar pelaku, oracles, dana asuransi, dan brankas biaya. Setiap versi market Manggo menggunakan Grup Manggo yang berbeda yang mengandung token. Grup v3 saat ini adalah mainnet.1. Berikut tabel yang menunjukkan berbagai grup:

    GrupVersiKluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Catatan

    Jika Anda ingin menggunakan grup v2, Anda harus menggunakan librari klien v2. Kamu bisa menemukannya disiniopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    Cara Mendapatkan Mango Group

    A mango group adalah basket dari cross-margined tokens. Ini menyimpan info pasar yang luas tentang token, pasar dex OpenBook, pasar pelaku, oracles, dana asuransi, dan brankas biaya. Setiap versi market Manggo menggunakan Grup Manggo yang berbeda yang mengandung token. Grup v3 saat ini adalah mainnet.1. Berikut tabel yang menunjukkan berbagai grup:

    GrupVersiKluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Catatan

    Jika Anda ingin menggunakan grup v2, Anda harus menggunakan librari klien v2. Kamu bisa menemukannya disiniopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    Cara Menempatkan Spot Order

    Mango berinteraksi dengan Serum Protocol untuk menempatkan spot orders di markets. Anda dapat menempatkan spot order dengan melakukan ini. Anda dapat menemukan referensi untuk fungsi placeSpotOrder disiniopen in new window.

    Mango memiliki file konfigurasi yang mengandung informasi tentang groups, markets, tokens dan oracles, Bisa ditemukan disiniopen in new window. Kami menggunakan informasi dari file tersebut untuk menemukan group dan market yang tepat.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    Cara Menempatkan Spot Order

    Mango berinteraksi dengan OpenBook Protocol untuk menempatkan spot orders di markets. Anda dapat menempatkan spot order dengan melakukan ini. Anda dapat menemukan referensi untuk fungsi placeSpotOrder disiniopen in new window.

    Mango memiliki file konfigurasi yang mengandung informasi tentang groups, markets, tokens dan oracles, Bisa ditemukan disiniopen in new window. Kami menggunakan informasi dari file tersebut untuk menemukan group dan market yang tepat.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    Cara Load Bids

    Mango menggunakan informasi markets dari Serum Protocol untuk load bids. Anda bisa me-load langsung dari Serum untuk bisa bekerja dengan Mango. Temukan lebih lanjut perihal Serum Markets disiniopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Cara Load Bids

    Mango menggunakan informasi markets dari OpenBook Protocol untuk load bids. Anda bisa me-load langsung dari OpenBook untuk bisa bekerja dengan Mango. Temukan lebih lanjut perihal OpenBook Markets disiniopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    Cara Load Asks

    Mango menggunakan informasi market dariSerum Protocol untuk load asks. Kamu bisa load langsung dari Serum untuk bisa bekerja dengan Mango. Temukan lebih lanjut tentang Serum Markets disiniopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Cara Load Asks

    Mango menggunakan informasi market dariOpenBook Protocol untuk load asks. Kamu bisa load langsung dari OpenBook untuk bisa bekerja dengan Mango. Temukan lebih lanjut tentang OpenBook Markets disiniopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/id/integrations/pyth.html b/docs/.vuepress/dist/id/integrations/pyth.html
    index 30d4f375d..7d8150189 100644
    --- a/docs/.vuepress/dist/id/integrations/pyth.html
    +++ b/docs/.vuepress/dist/id/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pyth adalah Oracle yang digunakan untuk mendapatkan data pasar keuangan dan kripto. Pyth Oracle dapat digunakan oleh program on-chain dalam mengkonsumsi data untuk berbagai kasus penggunaan.

    Cara Menggunakan Pyth di Client

    Pyth menyediakan a JavaScript/TypeScript library yang disebut @pythnetwork/client. Librari ini bisa digunakan untuk membaca data on-chain untuk aplikasi off-chain, seperti menampilan harga Pyth di website. Pelajari lebih lanjut hereopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pyth adalah Oracle yang digunakan untuk mendapatkan data pasar keuangan dan kripto. Pyth Oracle dapat digunakan oleh program on-chain dalam mengkonsumsi data untuk berbagai kasus penggunaan.

    Cara Menggunakan Pyth di Client

    Pyth menyediakan a JavaScript/TypeScript library yang disebut @pythnetwork/client. Librari ini bisa digunakan untuk membaca data on-chain untuk aplikasi off-chain, seperti menampilan harga Pyth di website. Pelajari lebih lanjut hereopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    Sumber Lainnya

    Last Updated:
    Contributors: akangaziz
    +

    Sumber Lainnya

    Last Updated:
    Contributors: akangaziz
    diff --git a/docs/.vuepress/dist/id/integrations/react-native.html b/docs/.vuepress/dist/id/integrations/react-native.html index 441809cb6..61686e225 100644 --- a/docs/.vuepress/dist/id/integrations/react-native.html +++ b/docs/.vuepress/dist/id/integrations/react-native.html @@ -27,7 +27,7 @@ -

    React Native dan Solana

    React Native adalah kerangka kerja perangkat lunak UI sumber terbuka yang digunakan untuk mengembangkan aplikasi mobile, web, dan desktop dengan memungkinkan pengembang menggunakan kerangka kerja React bersama dengan kemampuan platform native. Didukung dengan Solana SDK, ini adalah platform hebat untuk dengan cepat membangun aplikasi Crypto native yang berkinerja baik.

    Cara tercepat untuk memulai dengan React Native dan Solana adalah dengan menggunakan Solana DApp Scaffold untuk React Native.

    Cara Pakai @solana/web3.js di React Native app

    Dalam tutorial ini Anda akan belajar cara membuat aplikasi React Native baru dan menginstal dan mengonfigurasi SDK @solana/web3.js, dan dependensinya.

    Jika Anda sudah memiliki aplikasi, lewati ke instalasi dependensi.

    Buat aplikasi baru

    Kita memulai aplikasi React Native baru yang menggunakan TypeScript, lalu cd ke direktori proyek, di mana kita akan mengeksekusi sisa perintah.

    npx react-native init SolanaReactNative --template react-native-template-typescript
    +    

    React Native dan Solana

    React Native adalah kerangka kerja perangkat lunak UI sumber terbuka yang digunakan untuk mengembangkan aplikasi mobile, web, dan desktop dengan memungkinkan pengembang menggunakan kerangka kerja React bersama dengan kemampuan platform native. Didukung dengan Solana SDK, ini adalah platform hebat untuk dengan cepat membangun aplikasi Crypto native yang berkinerja baik.

    Cara tercepat untuk memulai dengan React Native dan Solana adalah dengan menggunakan Solana DApp Scaffold untuk React Native.

    Cara Pakai @solana/web3.js di React Native app

    Dalam tutorial ini Anda akan belajar cara membuat aplikasi React Native baru dan menginstal dan mengonfigurasi SDK @solana/web3.js, dan dependensinya.

    Jika Anda sudah memiliki aplikasi, lewati ke instalasi dependensi.

    Buat aplikasi baru

    Kita memulai aplikasi React Native baru yang menggunakan TypeScript, lalu cd ke direktori proyek, di mana kita akan mengeksekusi sisa perintah.

    npx react-native init SolanaReactNative --template react-native-template-typescript
     cd SolanaReactNative
     

    Install dependensi

    Selanjutnya, kita menginstal dependensi. kita menginstal Solana SDK, dan sebagai tambahan kita menginstal sebuah paket untuk menambal konfigurasi metro, dan dua polyfill yang menambal lingkungan React Native.

    yarn add @solana/web3.js metro-config react-native-get-random-values react-native-url-polyfill
     

    Update index.js

    Untuk load polyfills, kita buka file index.js di root proyek dan tambahkan 2 baris berikut di bagian paling atas file:

    import 'react-native-get-random-values';
    diff --git a/docs/.vuepress/dist/id/integrations/serum.html b/docs/.vuepress/dist/id/integrations/serum.html
    index 40508da6c..3a1e37655 100644
    --- a/docs/.vuepress/dist/id/integrations/serum.html
    +++ b/docs/.vuepress/dist/id/integrations/serum.html
    @@ -22,13 +22,13 @@
     				document.documentElement.classList.toggle('dark', true);
     			}
         
    -    Serum | Buku Panduan Solana
    -    
    +    OpenBook | Buku Panduan Solana
    +    
         
       
       
    -    

    Serum

    Serum adalah protokol untuk pertukaran terdesentralisasi yang dibangun di atas Solana. Anda dapat menggunakan Serum untuk menciptakan pasar baru (new market), mendapatkan buku pesanan (orderbooks), berdagang (trades), dan banyak lagi.

    Cara Mendapatkan Serum Market

    Market di Serum berisi semua pesanan dan kemampuan untuk membuat pesanan pada Serum. Untuk semua yang Anda lakukan di Serum, Anda perlu mengetahui market yang Anda sedang kerjakan.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBook adalah protokol untuk pertukaran terdesentralisasi yang dibangun di atas Solana. Anda dapat menggunakan OpenBook untuk menciptakan pasar baru (new market), mendapatkan buku pesanan (orderbooks), berdagang (trades), dan banyak lagi.

    Cara Mendapatkan OpenBook Market

    Market di OpenBook berisi semua pesanan dan kemampuan untuk membuat pesanan pada OpenBook. Untuk semua yang Anda lakukan di OpenBook, Anda perlu mengetahui market yang Anda sedang kerjakan.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    Mendapatkan Serum Order Books

    Serum markets terdiri dari orderbooks yang memiliki bids dan asks. Anda bisa menanyakan informasi ini sehingga Anda dapat melihat apa yang terjadi di pasar dan bertindak sesuai yang Anda butuhkan

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Mendapatkan OpenBook Order Books

    OpenBook markets terdiri dari orderbooks yang memiliki bids dan asks. Anda bisa menanyakan informasi ini sehingga Anda dapat melihat apa yang terjadi di pasar dan bertindak sesuai yang Anda butuhkan

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    Cara Mendapatkan Open Orders

    Sebagai seorang trader, Anda pasti ingin tahu Open Orders aktif apa yang Anda miliki saat ini di sebuah market. Anda dapat menanyakan Open Orders Anda atau orang lain di market dengan Serum.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    Cara Mendapatkan Open Orders

    Sebagai seorang trader, Anda pasti ingin tahu Open Orders aktif apa yang Anda miliki saat ini di sebuah market. Anda dapat menanyakan Open Orders Anda atau orang lain di market dengan OpenBook.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/id/integrations/strata.html b/docs/.vuepress/dist/id/integrations/strata.html
    index e756223c4..4efa1f93d 100644
    --- a/docs/.vuepress/dist/id/integrations/strata.html
    +++ b/docs/.vuepress/dist/id/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strata adalah protokol untuk launching token di Solana. Kamu bisa pakai Strata untuk membuat semua jenis fungible token, mulai dari social tokens sampai dao dan gamefi token. Kamu bisa juga compose strata dengan apapun yang menggabungkan mekanisme harga tetap (_fixed price) untuk mendapatkan harga yang dinamis, sebagai contohnya adalah Metaplex CandyMachine.

    Dokumen lebih detail ada disini. Bisa juga gunakan GUI di Strata Launchpad

    Cara Membuat Token Yang Dikendalikan Penuh

    Token Yang Dikendalikan Penuh (fully-managed Strata token) adalah a token dimana liquidity dikendalikan oleh protokol. Hasilnya adalah Anda segera mendapatkan tradeable token, tanpa perlu pool atau penyedia likuiditas. Token yang dikelola sepenuhnya adalah token spl normal dengan metadata token metaplex dan kurva ikatan terkait. Kurva ikatan mengelola likuiditas, harga, dan pasokan token itu.

    Press </> button to view full source
    import {
    +    

    Strata

    Strata adalah protokol untuk launching token di Solana. Kamu bisa pakai Strata untuk membuat semua jenis fungible token, mulai dari social tokens sampai dao dan gamefi token. Kamu bisa juga compose strata dengan apapun yang menggabungkan mekanisme harga tetap (_fixed price) untuk mendapatkan harga yang dinamis, sebagai contohnya adalah Metaplex CandyMachine.

    Dokumen lebih detail ada disini. Bisa juga gunakan GUI di Strata Launchpad

    Cara Membuat Token Yang Dikendalikan Penuh

    Token Yang Dikendalikan Penuh (fully-managed Strata token) adalah a token dimana liquidity dikendalikan oleh protokol. Hasilnya adalah Anda segera mendapatkan tradeable token, tanpa perlu pool atau penyedia likuiditas. Token yang dikelola sepenuhnya adalah token spl normal dengan metadata token metaplex dan kurva ikatan terkait. Kurva ikatan mengelola likuiditas, harga, dan pasokan token itu.

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    Cara beli dan jual token

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    Cara bootstrap liquidity

    Strata juga dapat menjual token di mana Anda ingin mengelola persediaan secara manual. Ini dapat berguna untuk bootstrap likuiditas sebelum mendaftarkan token Anda pada sebuah dex. Anda dapat membaca lebih lanjut tentang ini disiniopen in new window atau launch punya anda sendiri di Strata Launchpad

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/id/integrations/switchboard.html b/docs/.vuepress/dist/id/integrations/switchboard.html
    index f9ae35736..6fc258127 100644
    --- a/docs/.vuepress/dist/id/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/id/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboard adalah protokol Oracle yang memungkinkan pengembang untuk menarik data on-chain untuk berbagai kasus penggunaan seperti feed harga, harga dasar NFT, statistik olahraga, atau bahkan keacakan yang dapat diverifikasi. Secara umum, Switchboard adalah sumber daya off-chain yang dapat digunakan untuk menjembatani data dengan integritas tinggi secara on-chain dan memberi daya pada web3 dan DeFi.

    Data Feeds

    Switchboard menyediakan librari JavaScript/TypeScript yang disebut @switchboard-xyz/switchboard-v2 . Librari ini bisa digunakan untuk mendapatkan on-chain data dari feeds yang sudah ada atau bisa juga untuk mempublikasikan feeds kustom. Pelajari lebih lanjut hereopen in new window

    Cara Baca Data Dari Aggregator Feeds

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboard adalah protokol Oracle yang memungkinkan pengembang untuk menarik data on-chain untuk berbagai kasus penggunaan seperti feed harga, harga dasar NFT, statistik olahraga, atau bahkan keacakan yang dapat diverifikasi. Secara umum, Switchboard adalah sumber daya off-chain yang dapat digunakan untuk menjembatani data dengan integritas tinggi secara on-chain dan memberi daya pada web3 dan DeFi.

    Data Feeds

    Switchboard menyediakan librari JavaScript/TypeScript yang disebut @switchboard-xyz/switchboard-v2 . Librari ini bisa digunakan untuk mendapatkan on-chain data dari feeds yang sudah ada atau bisa juga untuk mempublikasikan feeds kustom. Pelajari lebih lanjut hereopen in new window

    Cara Baca Data Dari Aggregator Feeds

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    Membuat Aggregator Feed Baru

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Membuat Aggregator Feed Baru

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    Cara Membuat a Feeds Dari Publisher

    Dokumentasi Switchboard resmi memiliki panduan mendalam tentang cara membuat feeds dari penerbit. Cek lebih lanjut hereopen in new window.

    Oracles

    Fitur unik Switchboard adalah memungkinkan Anda membuat oracle Anda sendiri dan menjalankannya secara lokal.

    Create an oracle

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Cara Membuat a Feeds Dari Publisher

    Dokumentasi Switchboard resmi memiliki panduan mendalam tentang cara membuat feeds dari penerbit. Cek lebih lanjut hereopen in new window.

    Oracles

    Fitur unik Switchboard adalah memungkinkan Anda membuat oracle Anda sendiri dan menjalankannya secara lokal.

    Create an oracle

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    Jalankan container dengan docker-compose up

    Konfigurasi Oracle

    Env VariableDefinisi
    ORACLE_KEYDibutuhkan
    Tipe - Public Key
    Deskripsi - Public key dari sebuah oracle account yang sudah mendapatkan izin untuk menggunakan oracle queue
    HEARTBEAT_INTERVALOpsional
    Tipe - Number (detik)
    Default - 30
    Deskripsi - detik antara oracle heartbeats. Queues bisa memiliki oracle heartbeat yang berbeda. Nilai yang direkomendasikan adalah 15
    GCP_CONFIG_BUCKETOpsional
    Tipe - GCP Resource Path
    Default - Cari file configs.json di folder, jika tidak ditemukan maka tidak ada config yang di load.
    Deskripsi - Mengandung API keys untuk private API endpoints
    UNWRAP_STAKE_THRESHOLDOptsonal
    Tipe - Number (jumlah SOL, Contoh. 1.55)
    Default - 0, disabled.
    Deskripsi - Jumlah saldo Solana untuk memicu tindakan pasak yang dibuka (_unwrap stake action_). Ketika balance Solana oracle turun di bawah ambang batas yang ditetapkan, node akan secara otomatis membuka dana dari dompet staking oracle, menyisakan setidaknya 0,1 wSOL atau 10% lebih banyak dari persyaratan stake minimum antrian.

    Fungsi Random yang Terverifikasi - Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) adalah fungsi pseudorandom dari public-key yang menyediakan bukti bahwa output telah di kalkukasi secara benar.

    Membaca akun VRF

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Jalankan container dengan docker-compose up

    Konfigurasi Oracle

    Env VariableDefinisi
    ORACLE_KEYDibutuhkan
    Tipe - Public Key
    Deskripsi - Public key dari sebuah oracle account yang sudah mendapatkan izin untuk menggunakan oracle queue
    HEARTBEAT_INTERVALOpsional
    Tipe - Number (detik)
    Default - 30
    Deskripsi - detik antara oracle heartbeats. Queues bisa memiliki oracle heartbeat yang berbeda. Nilai yang direkomendasikan adalah 15
    GCP_CONFIG_BUCKETOpsional
    Tipe - GCP Resource Path
    Default - Cari file configs.json di folder, jika tidak ditemukan maka tidak ada config yang di load.
    Deskripsi - Mengandung API keys untuk private API endpoints
    UNWRAP_STAKE_THRESHOLDOptsonal
    Tipe - Number (jumlah SOL, Contoh. 1.55)
    Default - 0, disabled.
    Deskripsi - Jumlah saldo Solana untuk memicu tindakan pasak yang dibuka (_unwrap stake action_). Ketika balance Solana oracle turun di bawah ambang batas yang ditetapkan, node akan secara otomatis membuka dana dari dompet staking oracle, menyisakan setidaknya 0,1 wSOL atau 10% lebih banyak dari persyaratan stake minimum antrian.

    Fungsi Random yang Terverifikasi - Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) adalah fungsi pseudorandom dari public-key yang menyediakan bukti bahwa output telah di kalkukasi secara benar.

    Membaca akun VRF

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    Membuat Sebuah Akun VRF

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Membuat Sebuah Akun VRF

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    Request Randomness dari akun vrf

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Request Randomness dari akun vrf

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/id/integrations/web3auth.html b/docs/.vuepress/dist/id/integrations/web3auth.html
    index 1a17b6fb9..8f54d922c 100644
    --- a/docs/.vuepress/dist/id/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/id/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Wallet

    Apakah itu wallet?

    Dompet kripto (wallet) adalah dompet digital yang digunakan untuk berinteraksi dengan blockchain. Ini memungkinkan Anda untuk menandatangani, memverifikasi, dan mengirim transaksi. Ada banyak solusi wallet kripto yang ada di pasaran, mulai dari aplikasi web yang mudah digunakan hingga solusi keamanan perangkat keras yang lebih kompleks.

    Social Login di Solana

    Web3Authopen in new window mengizinkan pengguna untuk sign in menggunakan akun yang sudah ada dari Web2 OAuth Providers (Facebook, Google, Twitter, dan lainnya.) ke dalam aplikasi Web3. Ini menyediakan interface dan flow yang sangat memudahkan untuk user overviewopen in new window dengan pendekatkan untuk mengelola asset dan identitas user. Ini menghilangkan hambatan teknis dan mengurangi kurva pembelajaran untuk kepemilikan digital untuk semua pengguna dengan menyediakan pembungkus di sekitar manajemen kunci pribadi.

    Panduan Integrasi

    Tutorial ini akan memandu Anda tentang contoh dasar untuk mengintegrasikan social login di dapp Anda.

    Instal Dependensi

    Untuk mulai menggunakan wallet dengan dapp, Anda dapat menginstal @toruslabs/solana-embed.Anda dapat menggunakan pengelola paket populer seperti yarn dan npm untuk mengunduhnya.

    yarn add @toruslabs/solana-embed
    +    

    Wallet

    Apakah itu wallet?

    Dompet kripto (wallet) adalah dompet digital yang digunakan untuk berinteraksi dengan blockchain. Ini memungkinkan Anda untuk menandatangani, memverifikasi, dan mengirim transaksi. Ada banyak solusi wallet kripto yang ada di pasaran, mulai dari aplikasi web yang mudah digunakan hingga solusi keamanan perangkat keras yang lebih kompleks.

    Social Login di Solana

    Web3Authopen in new window mengizinkan pengguna untuk sign in menggunakan akun yang sudah ada dari Web2 OAuth Providers (Facebook, Google, Twitter, dan lainnya.) ke dalam aplikasi Web3. Ini menyediakan interface dan flow yang sangat memudahkan untuk user overviewopen in new window dengan pendekatkan untuk mengelola asset dan identitas user. Ini menghilangkan hambatan teknis dan mengurangi kurva pembelajaran untuk kepemilikan digital untuk semua pengguna dengan menyediakan pembungkus di sekitar manajemen kunci pribadi.

    Panduan Integrasi

    Tutorial ini akan memandu Anda tentang contoh dasar untuk mengintegrasikan social login di dapp Anda.

    Instal Dependensi

    Untuk mulai menggunakan wallet dengan dapp, Anda dapat menginstal @toruslabs/solana-embed.Anda dapat menggunakan pengelola paket populer seperti yarn dan npm untuk mengunduhnya.

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    Import SDK dan initialize

    Dalam cuplikan kode di bawah ini, kami membuat instance dari solana-embed dan kemudian menginisialisasinya dengan lingkungan pengujian yang menggunakan solana testnet. Anda dapat melewati opsi konfigurasi lain saat menginisialisasi antarmuka wallet. Anda dapat merujuk ke solana-embed.

    Rerensi untuk solana-embed api-referenceopen in new window untuk membaca lebih lanjut.

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/id/references/basic-transactions.html b/docs/.vuepress/dist/id/references/basic-transactions.html
    index e13b529b2..49e3bbd4b 100644
    --- a/docs/.vuepress/dist/id/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/id/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    Bagaimana cara merubah perhitungan budget untuk sebuah transaksi

    Perhitungan budget untuk sebuah single transaksi dapat dirubah dengan menambahkan sebuah panggilan instruksi ke Compute Budget Program. Secara default, perhitungan budget diset dari 200k compute units * jumlah instruksi-instruksi, dengan maksimal1.4M compute units. Semakin sedikit perhitungan yang digunakan, semakin kecil biaya transaksi.

    Note: Untuk merubah perhitungan budget sebuah transaksi, anda harus membuat instruksi pertama dari tiga instruksi pertama sebuah transaksi yang membuat budget.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    Bagaimana cara merubah perhitungan budget untuk sebuah transaksi

    Perhitungan budget untuk sebuah single transaksi dapat dirubah dengan menambahkan sebuah panggilan instruksi ke Compute Budget Program. Secara default, perhitungan budget diset dari 200k compute units * jumlah instruksi-instruksi, dengan maksimal1.4M compute units. Semakin sedikit perhitungan yang digunakan, semakin kecil biaya transaksi.

    Note: Untuk merubah perhitungan budget sebuah transaksi, anda harus membuat instruksi pertama dari tiga instruksi pertama sebuah transaksi yang membuat budget.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/id/references/local-development.html b/docs/.vuepress/dist/id/references/local-development.html
    index e13ab4da2..7025615ed 100644
    --- a/docs/.vuepress/dist/id/references/local-development.html
    +++ b/docs/.vuepress/dist/id/references/local-development.html
    @@ -345,12 +345,12 @@
     

    Memuatnya ke localnet anda kemudian dilakukan dengan meneruskan file akun dan alamat ujuan (pada cluster lokal) saat memulai validator:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    Cara memuat program dari mainnet

    Demikian pula, dimungkinkan untuk mengunduh program Serum Dex v3:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    Cara memuat program dari mainnet

    Demikian pula, dimungkinkan untuk mengunduh program OpenBook Dex v3:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    Memuatnya ke localnet anda kemudian dilakukan dengan meneruskan file program dan alamat tujuan (pada cluster lokal) saat memulai validator:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Partially Sorted, akangaziz
    diff --git a/docs/.vuepress/dist/integrations/index.html b/docs/.vuepress/dist/integrations/index.html index a1178f140..ca3d26c46 100644 --- a/docs/.vuepress/dist/integrations/index.html +++ b/docs/.vuepress/dist/integrations/index.html @@ -27,7 +27,7 @@ -

    Getting Started with Integrations

    The Solana Cookbook integrations provides a set of examples and references for anyone to build on top of other protocols on Solana.

    The power of Solana comes from the ability to integrate with other protocols, building on top of existing infrastructure to make something better.

    Composability is Key

    Making your program easy to use and extend will grow both your program and the entire Solana ecosystem. Don't reinvent the wheel, build on top of existing protocols and bootstrap your userbase.

    Adapt and build on top of other programs or libraries and unlock new capabilities for Solana.

    Contributing

    If you are interested in contributing to integrations, please checkout the contribution guidelinesopen in new window.

    Last Updated:
    Contributors: Jacob Creech, DonnySolana, Noah Prince
    +

    Getting Started with Integrations

    The Solana Cookbook integrations provides a set of examples and references for anyone to build on top of other protocols on Solana.

    The power of Solana comes from the ability to integrate with other protocols, building on top of existing infrastructure to make something better.

    Composability is Key

    Making your program easy to use and extend will grow both your program and the entire Solana ecosystem. Don't reinvent the wheel, build on top of existing protocols and bootstrap your userbase.

    Adapt and build on top of other programs or libraries and unlock new capabilities for Solana.

    Contributing

    If you are interested in contributing to integrations, please checkout the contribution guidelinesopen in new window.

    Last Updated:
    Contributors: Jacob Creech, DonnySolana, Noah Prince
    diff --git a/docs/.vuepress/dist/integrations/jupiter.html b/docs/.vuepress/dist/integrations/jupiter.html index e181443e1..053d0db3e 100644 --- a/docs/.vuepress/dist/integrations/jupiter.html +++ b/docs/.vuepress/dist/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    Jupiter is the key liquidity aggregator for Solana, offering the widest range of tokens and best route discovery between any token pair.

    Installation

    @jup-ag/core is the Core package used to interact with jupiter on-chain programs to perform swaps between two possible token pairs.

    yarn add @jup-ag/core
    +    

    Jupiter

    Jupiter is the key liquidity aggregator for Solana, offering the widest range of tokens and best route discovery between any token pair.

    Installation

    @jup-ag/core is the Core package used to interact with jupiter on-chain programs to perform swaps between two possible token pairs.

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    Fetching Token list from Jupiter

    All the possible tokens that can be swapped with jupiter for a given network is being fetched.

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    How to use Jupiter API

    This is the easiest way to interact with jupiter programs to swap any 2 provided tokens.

    Installation

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    Getting the Route Map

    This API retrieves all the available tokens that can be swapped using the jupiter API. A list of all possible token routes is being fetched here and allInputMints contains the list of all possible Input Tokens by mint address and swappableOutputForSol contains all the possible tokens that can be swapped for SOL in this case.

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/integrations/mango.html b/docs/.vuepress/dist/integrations/mango.html
    index 8c7482e3d..db9f891f2 100644
    --- a/docs/.vuepress/dist/integrations/mango.html
    +++ b/docs/.vuepress/dist/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mango provides a single venue to lend, borrow, swap, and leverage trade cryptoassets through an on-chain risk engine. You can connect to Mango's on-chain program using the Client API libraries. You'll also need the Solana javascript API library.

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mango provides a single venue to lend, borrow, swap, and leverage trade cryptoassets through an on-chain risk engine. You can connect to Mango's on-chain program using the Client API libraries. You'll also need the Solana javascript API library.

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, serum dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, OpenBook dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    How to place a spot order

    Mango interacts with Serum Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function hereopen in new window. Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it hereopen in new window. We use information from that file to find the right group and market.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    How to place a spot order

    Mango interacts with OpenBook Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function hereopen in new window. Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it hereopen in new window. We use information from that file to find the right group and market.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    How to load bids

    Mango uses the market information from Serum Protocol to load bids. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to load bids

    Mango uses the market information from OpenBook Protocol to load bids. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    How to load asks

    Mango uses the market information from Serum Protocol to load asks. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to load asks

    Mango uses the market information from OpenBook Protocol to load asks. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/integrations/pyth.html b/docs/.vuepress/dist/integrations/pyth.html
    index 526a4c3c9..5b7df760f 100644
    --- a/docs/.vuepress/dist/integrations/pyth.html
    +++ b/docs/.vuepress/dist/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pyth is an Oracle used to get real-world financial and crypto market data. Pyth Oracle can be used by on-chain programs in consuming data for a variety of use cases.

    How to use Pyth in Client

    Pyth provides a JavaScript/TypeScript library called @pythnetwork/client. This library can be used to read on-chain Pyth Data for off-chain applications, such as displaying the Pyth price on a website. Learn more about this hereopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pyth is an Oracle used to get real-world financial and crypto market data. Pyth Oracle can be used by on-chain programs in consuming data for a variety of use cases.

    How to use Pyth in Client

    Pyth provides a JavaScript/TypeScript library called @pythnetwork/client. This library can be used to read on-chain Pyth Data for off-chain applications, such as displaying the Pyth price on a website. Learn more about this hereopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    Other Resources

    Last Updated:
    Contributors: Pratik Saria
    +

    Other Resources

    Last Updated:
    Contributors: Pratik Saria
    diff --git a/docs/.vuepress/dist/integrations/react-native.html b/docs/.vuepress/dist/integrations/react-native.html index 0c45473cc..e8346ccf3 100644 --- a/docs/.vuepress/dist/integrations/react-native.html +++ b/docs/.vuepress/dist/integrations/react-native.html @@ -27,7 +27,7 @@ -

    React Native and Solana

    React Native is an open-source UI software framework used to develop mobile, web and desktop applications by enabling developers to use the React framework along with native platform capabilities. Powered with the Solana SDK, this is a great platform to quickly build performant native Crypto apps.

    The fastest way to start with React Native and Solana is by using the Solana DApp Scaffold for React Native.

    How to use @solana/web3.js in a React Native app

    In this tutorial you will learn how to create a new React Native app and install and configure the @solana/web3.js SDK, and its dependencies.

    If you already have an existing app, skip to installing the dependencies.

    Create a new app

    We start a new React Native application that uses TypeScript, then cd into the project directory, where we will execute the rest of the commands.

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
    +    

    React Native and Solana

    React Native is an open-source UI software framework used to develop mobile, web and desktop applications by enabling developers to use the React framework along with native platform capabilities. Powered with the Solana SDK, this is a great platform to quickly build performant native Crypto apps.

    The fastest way to start with React Native and Solana is by using the Solana DApp Scaffold for React Native.

    How to use @solana/web3.js in a React Native app

    In this tutorial you will learn how to create a new React Native app and install and configure the @solana/web3.js SDK, and its dependencies.

    If you already have an existing app, skip to installing the dependencies.

    Create a new app

    We start a new React Native application that uses TypeScript, then cd into the project directory, where we will execute the rest of the commands.

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
     cd SolanaReactNative
     

    Install dependencies

    Next, we install the dependencies. The Solana JavaScript SDK, a package to patch the React Native build system (Metro), a secure random number generator, and a fix to patch React Native's missing URL class.

    yarn add \
       @solana/web3.js \
    diff --git a/docs/.vuepress/dist/integrations/serum.html b/docs/.vuepress/dist/integrations/serum.html
    index a843083a2..7359b6985 100644
    --- a/docs/.vuepress/dist/integrations/serum.html
    +++ b/docs/.vuepress/dist/integrations/serum.html
    @@ -22,13 +22,13 @@
     				document.documentElement.classList.toggle('dark', true);
     			}
         
    -    Serum | Solana Cookbook
    -    
    +    OpenBook | Solana Cookbook
    +    
         
       
       
    -    

    Serum

    Serum is a protocol for decentralized exchanges built on Solana. You can use Serum to create new markets, get order books, trade, and more.

    How to get a Serum market

    A market on Serum contains all the orders and capabilities to make orders on Serum. For everything you do on Serum you need to know the market you are working with.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBook is a protocol for decentralized exchanges built on Solana. You can use OpenBook to create new markets, get order books, trade, and more.

    How to get a OpenBook market

    A market on OpenBook contains all the orders and capabilities to make orders on OpenBook. For everything you do on OpenBook you need to know the market you are working with.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    How to get Serum order books

    Serum markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to get OpenBook order books

    OpenBook markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    How to get current open orders

    As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with Serum.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to get current open orders

    As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with OpenBook.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/integrations/strata.html b/docs/.vuepress/dist/integrations/strata.html
    index 1944183f1..d7acfe871 100644
    --- a/docs/.vuepress/dist/integrations/strata.html
    +++ b/docs/.vuepress/dist/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strata is a protocol for launching tokens built on Solana. You can use Strata to launch any kind of fungible token, ranging from social tokens to dao and gamefi tokens. You can also compose strata with anything that uses fixed price mechanics to get dynamic pricing mechanics, for example the Metaplex CandyMachine.

    More in-depth docs are available here. You can also use the gui at Strata Launchpad

    How to create a fully managed token

    A fully-managed Strata token is a token where the liquidity is managed by the protocol. The upshot is that you immediately get a tradeable token, with no need for pools or liquidity providers. A fully-managed token is a normal spl token with metaplex token metadata and an associated bonding curve. The bonding curve manages the liquidity, pricing, and supply of that token.

    Press </> button to view full source
    import {
    +    

    Strata

    Strata is a protocol for launching tokens built on Solana. You can use Strata to launch any kind of fungible token, ranging from social tokens to dao and gamefi tokens. You can also compose strata with anything that uses fixed price mechanics to get dynamic pricing mechanics, for example the Metaplex CandyMachine.

    More in-depth docs are available here. You can also use the gui at Strata Launchpad

    How to create a fully managed token

    A fully-managed Strata token is a token where the liquidity is managed by the protocol. The upshot is that you immediately get a tradeable token, with no need for pools or liquidity providers. A fully-managed token is a normal spl token with metaplex token metadata and an associated bonding curve. The bonding curve manages the liquidity, pricing, and supply of that token.

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    How to buy and sell a token

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    How to bootstrap liquidity

    Strata can also sell tokens where you would like to manually manage the supply. This can be useful for liquidity bootstrapping before listing your token on a dex. You can read more about these hereopen in new window or launch your own at Strata Launchpad

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/integrations/switchboard.html b/docs/.vuepress/dist/integrations/switchboard.html
    index f37ec541d..9f90cf8e7 100644
    --- a/docs/.vuepress/dist/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboard is an Oracle protocol that enables developers to source data on-chain for a variety of use cases such as price feeds, NFT floor prices, sport statistics, or even verifiable randomness. In a general sense, Switchboard is an off-chain resource developers can invoke to bridge high integrity data on-chain and power the next generation of web3 and DeFi.

    Data Feeds

    Switchboard provides a JavaScript/TypeScript library called @switchboard-xyz/switchboard-v2 . This library can be used to reach On-chain data from existing data feeds or publish your own custom feeds. Learn more about this hereopen in new window

    Read data from an aggregator feed

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboard is an Oracle protocol that enables developers to source data on-chain for a variety of use cases such as price feeds, NFT floor prices, sport statistics, or even verifiable randomness. In a general sense, Switchboard is an off-chain resource developers can invoke to bridge high integrity data on-chain and power the next generation of web3 and DeFi.

    Data Feeds

    Switchboard provides a JavaScript/TypeScript library called @switchboard-xyz/switchboard-v2 . This library can be used to reach On-chain data from existing data feeds or publish your own custom feeds. Learn more about this hereopen in new window

    Read data from an aggregator feed

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    Create a new aggregator feed

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Create a new aggregator feed

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    How to Create a Feed from the Publisher

    The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out hereopen in new window.

    Oracles

    Switchboard's unique feature is that it allows you to create your own oracle and run it locally.

    Create an oracle

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    How to Create a Feed from the Publisher

    The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out hereopen in new window.

    Oracles

    Switchboard's unique feature is that it allows you to create your own oracle and run it locally.

    Create an oracle

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    Creating a VRF account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Creating a VRF account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    Request Randomness from vrf account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Request Randomness from vrf account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/integrations/web3auth.html b/docs/.vuepress/dist/integrations/web3auth.html
    index 97058e04d..322be2d0b 100644
    --- a/docs/.vuepress/dist/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Wallet

    What is a wallet?

    A crypto wallet is a digital wallet used to interact with the blockchain. It allows you to sign, verify, and send transactions. There are many crypto wallet solutions present on the market, ranging from simple-to-use web apps to more complex hardware security solutions.

    Social Logins on Solana

    Web3Authopen in new window allows users to sign in using their existing Web2 OAuth Providers(Facebook, Google, Twitter etc.) into Web3 dapps. It provides a user-friendly and non-custodialopen in new window approach to managing assets and identity. It removes technical barriers and reduces the learning curve for digital ownership for all users by providing a wrapper around private key management.

    Integration Guide

    This tutorial will guide you over a basic example to integrate social logins in your dapp.

    Installing Dependencies

    To start using the wallet with a dapp, you can install @toruslabs/solana-embed. You can use popular package managers like yarn and npm to download them.

    yarn add @toruslabs/solana-embed
    +    

    Wallet

    What is a wallet?

    A crypto wallet is a digital wallet used to interact with the blockchain. It allows you to sign, verify, and send transactions. There are many crypto wallet solutions present on the market, ranging from simple-to-use web apps to more complex hardware security solutions.

    Social Logins on Solana

    Web3Authopen in new window allows users to sign in using their existing Web2 OAuth Providers(Facebook, Google, Twitter etc.) into Web3 dapps. It provides a user-friendly and non-custodialopen in new window approach to managing assets and identity. It removes technical barriers and reduces the learning curve for digital ownership for all users by providing a wrapper around private key management.

    Integration Guide

    This tutorial will guide you over a basic example to integrate social logins in your dapp.

    Installing Dependencies

    To start using the wallet with a dapp, you can install @toruslabs/solana-embed. You can use popular package managers like yarn and npm to download them.

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    Import the SDK and initialize

    In the code snippet below, we are creating an instance of solana-embed and then initializing it with testing environment which uses solana testnet. You can pass other configuration options while initializing the wallet interface. You can refer to solana-embed api-referenceopen in new window to know more on that.

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/ja/guides/account-maps.html b/docs/.vuepress/dist/ja/guides/account-maps.html
    index a8c728c48..e1d2de2b8 100644
    --- a/docs/.vuepress/dist/ja/guides/account-maps.html
    +++ b/docs/.vuepress/dist/ja/guides/account-maps.html
    @@ -593,7 +593,7 @@
     
         Ok(())
     }
    -

    クライアント側では、 PublicKey.findProgramAddress() を使用して必要なblogpostのアカウント アドレスを取得できます。これを connection.getAccountInfo() に渡してアカウント データを取得できます。以下に例を示します。

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    クライアント側では、 PublicKey.findProgramAddress() を使用して必要なblogpostのアカウント アドレスを取得できます。これを connection.getAccountInfo() に渡してアカウント データを取得できます。以下に例を示します。

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/ja/guides/get-program-accounts.html b/docs/.vuepress/dist/ja/guides/get-program-accounts.html
    index 8fcc60e6c..cd66591ee 100644
    --- a/docs/.vuepress/dist/ja/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/ja/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Get Program Accounts

    プログラムに所有されるアカウントすべてを返すRPCメソッド。ページネーションはサポートしていません。 レスポンス向上をしつつ意図した結果のみを返すためには、 getProgramAccounts にはdataSlicefilters、あるいはその両方をパラメータに含める必要があります。

    概要

    Parameters

    • programId: string - base58 でエンコードされた文字列として提供される、クエリするプログラムの公開鍵
    • (optional) configOrCommitment: object - 次のオプションフィールドを含む設定パラメータ:
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - アカウント データのエンコード: base58base64jsonParsed のいずれか。 ※ web3js ユーザーは代わりにgetParsedProgramAccountsopen in new windowを使用する必要があります。
      • (optional) dataSlice: object - 下記に基づき、返却されるアカウントデータを制限します。:
        • offset: number - アカウントデータの返却開始位置バイト数
        • length: number - アカウントデータの返却バイト数
      • (optional) filters: array - 次のフィルターオブジェクトを使用して結果をフィルタします。:
        • memcmp: object - アカウントデータと照合する連続バイト:
          • offset: number - アカウントデータの比較開始位置バイト数
          • bytes: string - 照合に使用する129バイト制限のbase58エンコード文字列
        • dataSize: number - アカウントデータの長さと比較する指定数
      • (optional) withContext: boolean - 結果をRpcResponse JSON objectopen in new windowにラップするかどうか。
    Response

    デフォルトでは、 getProgramAccounts は次の構造を持つ JSON オブジェクトの配列を返します。:

    • pubkey: string - base58エンコード文字列のアカウント公開鍵
    • account: object - 次のサブフィールドを持つ JSON オブジェクト:
      • lamports: number, アカウントに割り当てられたlamports の数
      • owner: string, アカウントが割り当てられているプログラムのbase58エンコード文字列のアカウント公開鍵
      • data: string | object - 指定されたエンコーディング パラメータに応じてバイナリ データまたは JSON 形式にエンコードされたアカウントに関連付けられたデータ
      • executable: boolean, アカウントにプログラムが含まれているかどうか
      • rentEpoch: number, このアカウントが次にrentを支払うべきepoch

    詳細

    getProgramAccounts はプログラムが所有するすべてのアカウントを返す多用途の RPC メソッドです。下記のような検索など、多くのクエリに使用できます:

    • 特定のウォレットのすべてのトークン アカウントの取得
    • 特定のmintのすべてのトークン アカウント ( つまり、SRMopen in new window の所有者すべて)
    • 特定のプログラムのすべてのカスタム アカウント (つまり、Mangoopen in new window ユーザー全員)

    getProgramAccountsは非常に便利ですが、現在の制約のためによく誤解されます。 サポートされているクエリの多くは、大量のデータ セットをスキャンするためにRPC ノードを必要とします。 これらのスキャンは、メモリとリソースの両方を集中的に使用します。その結果、呼び出しの頻度が高すぎたり取得範囲が大きすぎたりすると、 接続タイムアウトが発生する可能性があります。 さらに、この記事の執筆時点では、getProgramAccountsエンドポイントはページネーションをサポートしていません。 クエリの結果が大きすぎる場合、レスポンスは破棄されます。

    これらの現在の制約を回避するために、dataSlicefiltersmemcmpdataSizeなどの有用なパラメータが提供されています。 これらのパラメーターの組み合わせにより、クエリの範囲を予測可能なサイズに縮小できます。

    getProgramAccountsの一般的な例として、SPL-Token Programopen in new windowとの対話があります。 basic callでトークン プログラムが所有するすべてのアカウントを要求すると、膨大な量のデータが必要になります。 ただし、パラメーターを指定することで、使用するデータのみを効率的に取得できます。

    filters

    getProgramAccounts 使用する最も一般的なパラメーターは、 filters 配列です。 dataSizememcmpの 2 種類のフィルターを受け入れます。 これらのフィルターのいずれかを使用する前に、要求しているデータがどのように配置され、シリアル化されるかを理解する必要があります。

    dataSize

    トークン プログラムの場合、トークン アカウントの長さは 165 バイトopen in new windowです。 具体的には、トークンアカウントには8つの異なるフィールドがあり、各フィールドには予測可能なバイト数が必要です。 以下の図を使用して、このデータがどのように配置されているかを視覚化できます。

    Account Size

    ウォレットアドレスが所有するすべてのトークンアカウントを検索する場合は、filters{ dataSize: 165 } を追加することで、クエリの範囲を正確に165 バイトの長さのアカウントだけに絞り込むことができます。ただし、これだけでは不十分です。 アドレスが所有するアカウントを検索するフィルターも追加する必要があります。これは memcmp フィルターで実現できます。

    memcmp

    memcmp、または "memory comparison"フィルターを使用すると、アカウントに保存されている任意のフィールドのデータを比較できます。 具体的には、特定の位置にある特定のバイト セットに一致するアカウントのみを照会できます。 memcmpには 2 つの引数が必要です:

    • offset: データの比較を開始する位置。この位置はバイト単位で測定され、整数として表されます。
    • bytes: アカウントのデータと一致させるデータ。これは、base-58エンコードの文字列で、129 バイト未満に制限する必要があります。

    memcmpbytesが完全に一致する結果のみを返すことに注意してください。 現在は、指定したbytesより大きい、または小さい値の比較はサポートされていません。

    トークン プログラムの例に沿って、クエリを修正して、ウォレット アドレスが所有するトークン アカウントのみを返すことができます。トークン アカウントを見ると、トークン アカウントに保存されている最初の 2 つのフィールドが両方とも公開鍵であり、各公開鍵の長さが 32 バイトであることがわかります。ownerが 2 番目のフィールドであることを考えると、 memcmp は 32バイトのoffsetで開始する必要があります。ここから、所有者フィールドがウォレット アドレスと一致するアカウントを探します。

    Account Size

    次の例を使用して、このクエリを呼び出すことができます:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Get Program Accounts

    プログラムに所有されるアカウントすべてを返すRPCメソッド。ページネーションはサポートしていません。 レスポンス向上をしつつ意図した結果のみを返すためには、 getProgramAccounts にはdataSlicefilters、あるいはその両方をパラメータに含める必要があります。

    概要

    Parameters

    • programId: string - base58 でエンコードされた文字列として提供される、クエリするプログラムの公開鍵
    • (optional) configOrCommitment: object - 次のオプションフィールドを含む設定パラメータ:
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - アカウント データのエンコード: base58base64jsonParsed のいずれか。 ※ web3js ユーザーは代わりにgetParsedProgramAccountsopen in new windowを使用する必要があります。
      • (optional) dataSlice: object - 下記に基づき、返却されるアカウントデータを制限します。:
        • offset: number - アカウントデータの返却開始位置バイト数
        • length: number - アカウントデータの返却バイト数
      • (optional) filters: array - 次のフィルターオブジェクトを使用して結果をフィルタします。:
        • memcmp: object - アカウントデータと照合する連続バイト:
          • offset: number - アカウントデータの比較開始位置バイト数
          • bytes: string - 照合に使用する129バイト制限のbase58エンコード文字列
        • dataSize: number - アカウントデータの長さと比較する指定数
      • (optional) withContext: boolean - 結果をRpcResponse JSON objectopen in new windowにラップするかどうか。
    Response

    デフォルトでは、 getProgramAccounts は次の構造を持つ JSON オブジェクトの配列を返します。:

    • pubkey: string - base58エンコード文字列のアカウント公開鍵
    • account: object - 次のサブフィールドを持つ JSON オブジェクト:
      • lamports: number, アカウントに割り当てられたlamports の数
      • owner: string, アカウントが割り当てられているプログラムのbase58エンコード文字列のアカウント公開鍵
      • data: string | object - 指定されたエンコーディング パラメータに応じてバイナリ データまたは JSON 形式にエンコードされたアカウントに関連付けられたデータ
      • executable: boolean, アカウントにプログラムが含まれているかどうか
      • rentEpoch: number, このアカウントが次にrentを支払うべきepoch

    詳細

    getProgramAccounts はプログラムが所有するすべてのアカウントを返す多用途の RPC メソッドです。下記のような検索など、多くのクエリに使用できます:

    • 特定のウォレットのすべてのトークン アカウントの取得
    • 特定のmintのすべてのトークン アカウント ( つまり、SRMopen in new window の所有者すべて)
    • 特定のプログラムのすべてのカスタム アカウント (つまり、Mangoopen in new window ユーザー全員)

    getProgramAccountsは非常に便利ですが、現在の制約のためによく誤解されます。 サポートされているクエリの多くは、大量のデータ セットをスキャンするためにRPC ノードを必要とします。 これらのスキャンは、メモリとリソースの両方を集中的に使用します。その結果、呼び出しの頻度が高すぎたり取得範囲が大きすぎたりすると、 接続タイムアウトが発生する可能性があります。 さらに、この記事の執筆時点では、getProgramAccountsエンドポイントはページネーションをサポートしていません。 クエリの結果が大きすぎる場合、レスポンスは破棄されます。

    これらの現在の制約を回避するために、dataSlicefiltersmemcmpdataSizeなどの有用なパラメータが提供されています。 これらのパラメーターの組み合わせにより、クエリの範囲を予測可能なサイズに縮小できます。

    getProgramAccountsの一般的な例として、SPL-Token Programopen in new windowとの対話があります。 basic callでトークン プログラムが所有するすべてのアカウントを要求すると、膨大な量のデータが必要になります。 ただし、パラメーターを指定することで、使用するデータのみを効率的に取得できます。

    filters

    getProgramAccounts 使用する最も一般的なパラメーターは、 filters 配列です。 dataSizememcmpの 2 種類のフィルターを受け入れます。 これらのフィルターのいずれかを使用する前に、要求しているデータがどのように配置され、シリアル化されるかを理解する必要があります。

    dataSize

    トークン プログラムの場合、トークン アカウントの長さは 165 バイトopen in new windowです。 具体的には、トークンアカウントには8つの異なるフィールドがあり、各フィールドには予測可能なバイト数が必要です。 以下の図を使用して、このデータがどのように配置されているかを視覚化できます。

    Account Size

    ウォレットアドレスが所有するすべてのトークンアカウントを検索する場合は、filters{ dataSize: 165 } を追加することで、クエリの範囲を正確に165 バイトの長さのアカウントだけに絞り込むことができます。ただし、これだけでは不十分です。 アドレスが所有するアカウントを検索するフィルターも追加する必要があります。これは memcmp フィルターで実現できます。

    memcmp

    memcmp、または "memory comparison"フィルターを使用すると、アカウントに保存されている任意のフィールドのデータを比較できます。 具体的には、特定の位置にある特定のバイト セットに一致するアカウントのみを照会できます。 memcmpには 2 つの引数が必要です:

    • offset: データの比較を開始する位置。この位置はバイト単位で測定され、整数として表されます。
    • bytes: アカウントのデータと一致させるデータ。これは、base-58エンコードの文字列で、129 バイト未満に制限する必要があります。

    memcmpbytesが完全に一致する結果のみを返すことに注意してください。 現在は、指定したbytesより大きい、または小さい値の比較はサポートされていません。

    トークン プログラムの例に沿って、クエリを修正して、ウォレット アドレスが所有するトークン アカウントのみを返すことができます。トークン アカウントを見ると、トークン アカウントに保存されている最初の 2 つのフィールドが両方とも公開鍵であり、各公開鍵の長さが 32 バイトであることがわかります。ownerが 2 番目のフィールドであることを考えると、 memcmp は 32バイトのoffsetで開始する必要があります。ここから、所有者フィールドがウォレット アドレスと一致するアカウントを探します。

    Account Size

    次の例を使用して、このクエリを呼び出すことができます:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/ja/integrations/index.html b/docs/.vuepress/dist/ja/integrations/index.html
    index 1416ff5c1..19fa69604 100644
    --- a/docs/.vuepress/dist/ja/integrations/index.html
    +++ b/docs/.vuepress/dist/ja/integrations/index.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    インテグレーションの開始

    Solana Cookbookインテグレーションは、誰もが Solana の他のプロトコルの上に構築するための一連の例とリファレンスを提供します。

    Solanaの力は、何かをより良くするために他のプロトコルと統合し、既存のインフラストラクチャの上に構築することにより引き出されます。

    構成可能性が鍵

    プログラムを使いやすく拡張しやすくすることで、プログラムと Solana エコシステム全体の両方が成長します。一からやり直すのではなく、既存のプロトコルの上に構築し、ユーザーベースをブートストラップしましょう。

    他のプログラムやライブラリの上に適応して構築し、Solanaの新しい機能を解き放ちましょう。

    コントリビューション

    インテグレーションへのコントリビューションに関心がある場合は、contribution guidelinesopen in new windowをご確認ください。

    Last Updated:
    Contributors: PokoPoko2ry
    +

    インテグレーションの開始

    Solana Cookbookインテグレーションは、誰もが Solana の他のプロトコルの上に構築するための一連の例とリファレンスを提供します。

    Solanaの力は、何かをより良くするために他のプロトコルと統合し、既存のインフラストラクチャの上に構築することにより引き出されます。

    構成可能性が鍵

    プログラムを使いやすく拡張しやすくすることで、プログラムと Solana エコシステム全体の両方が成長します。一からやり直すのではなく、既存のプロトコルの上に構築し、ユーザーベースをブートストラップしましょう。

    他のプログラムやライブラリの上に適応して構築し、Solanaの新しい機能を解き放ちましょう。

    コントリビューション

    インテグレーションへのコントリビューションに関心がある場合は、contribution guidelinesopen in new windowをご確認ください。

    Last Updated:
    Contributors: PokoPoko2ry
    diff --git a/docs/.vuepress/dist/ja/integrations/jupiter.html b/docs/.vuepress/dist/ja/integrations/jupiter.html index 4895194c2..c5979f761 100644 --- a/docs/.vuepress/dist/ja/integrations/jupiter.html +++ b/docs/.vuepress/dist/ja/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    JupiterはSolanaの主要な流動性アグリゲーターであり、幅広いトークンとあらゆるトークンペア間の最適なルート発見を提供します。

    Installation

    @jup-ag/core は、jupiterオンチェーンプログラムと対話し、2つの可能なトークンペア間のスワップを実行するために使用されるコアパッケージです。

    yarn add @jup-ag/core
    +    

    Jupiter

    JupiterはSolanaの主要な流動性アグリゲーターであり、幅広いトークンとあらゆるトークンペア間の最適なルート発見を提供します。

    Installation

    @jup-ag/core は、jupiterオンチェーンプログラムと対話し、2つの可能なトークンペア間のスワップを実行するために使用されるコアパッケージです。

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    Jupiterからのトークンリストの取得

    特定のネットワークでJupiterとSwapできるすべての可能なトークンが取得されます。

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    Jupiter APIの使用方法

    これは、 jupiter programとやり取りして、提供された2つのトークンを交換する最も簡単な方法です。

    インストール

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    ルートマップの取得

    この API は、jupiter API を使用してスワップできるすべての利用可能なトークンを取得します。すべての可能なトークン ルートのリストがここで取得されます。allInputMints には、ミント アドレスごとのすべての可能な入力トークンのリストが含まれ、swappableOutputForSol には、この場合にSOLにスワップできるすべての可能なトークンが含まれます。

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/ja/integrations/mango.html b/docs/.vuepress/dist/ja/integrations/mango.html
    index 1dedba7fb..b5e53319b 100644
    --- a/docs/.vuepress/dist/ja/integrations/mango.html
    +++ b/docs/.vuepress/dist/ja/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mangoは、オンチェーンリスク エンジンを介して、取引暗号資産を貸与、借入、交換、および活用するための単一の場を提供します。 クライアントAPIライブラリを使用して、Mangoのオンチェーンプログラムに接続できます。Solana JavaScript APIライブラリも必要です。

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mangoは、オンチェーンリスク エンジンを介して、取引暗号資産を貸与、借入、交換、および活用するための単一の場を提供します。 クライアントAPIライブラリを使用して、Mangoのオンチェーンプログラムに接続できます。Solana JavaScript APIライブラリも必要です。

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    Mango Groupの取得方法

    Mango groupはクロスマージントークンのバスケットで、トークン、Serum dex market、perp market、Oracle、Insurance fund、Fees vaultに関する幅広い市場情報を保持しています。 Mango Markets の各バージョンは、異なるトークンを含む異なる Mango Group を使用します。現在の v3 グループはmainnet.1 です。さまざまなグループを示す表を次に示します:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    v2 グループを使用する場合は、v2 クライアント ライブラリを使用する必要があります。ここopen in new windowで見つけることができます

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    Mango Groupの取得方法

    Mango groupはクロスマージントークンのバスケットで、トークン、OpenBook dex market、perp market、Oracle、Insurance fund、Fees vaultに関する幅広い市場情報を保持しています。 Mango Markets の各バージョンは、異なるトークンを含む異なる Mango Group を使用します。現在の v3 グループはmainnet.1 です。さまざまなグループを示す表を次に示します:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    v2 グループを使用する場合は、v2 クライアント ライブラリを使用する必要があります。ここopen in new windowで見つけることができます

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    スポット注文の方法

    MangoはSerum Protocolと対話し、市場でスポット注文を出します。これにより、スポット注文を出すことができます。placeSpotOrder関数のリファレンスはこちらopen in new window。 Mangoには、グループ、マーケット、トークン、およびOracleに関する情報を含む構成ファイルがあります。 ここopen in new windowで見つけることができます。そのファイルの情報を使用して、適切なグループと市場を見つけます。

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    スポット注文の方法

    MangoはOpenBook Protocolと対話し、市場でスポット注文を出します。これにより、スポット注文を出すことができます。placeSpotOrder関数のリファレンスはこちらopen in new window。 Mangoには、グループ、マーケット、トークン、およびOracleに関する情報を含む構成ファイルがあります。 ここopen in new windowで見つけることができます。そのファイルの情報を使用して、適切なグループと市場を見つけます。

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    売値の読込方法

    MangoはSerum Protocolから得た市場情報を使用して売値を読み込みます。Serumから直接読み込み、Mangoで操作できます。Serumの市場に関しての より詳しい情報はこちらopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    売値の読込方法

    MangoはOpenBook Protocolから得た市場情報を使用して売値を読み込みます。OpenBookから直接読み込み、Mangoで操作できます。OpenBookの市場に関しての より詳しい情報はこちらopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    買値の読込方法

    MangoはSerum Protocolから得た市場情報を使用して買値を読み込みます。 Serumから直接読み込み、Mangoで操作できます。Serumの市場の詳しい情報はこちらopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    買値の読込方法

    MangoはOpenBook Protocolから得た市場情報を使用して買値を読み込みます。 OpenBookから直接読み込み、Mangoで操作できます。OpenBookの市場の詳しい情報はこちらopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/ja/integrations/orao-vrf.html b/docs/.vuepress/dist/ja/integrations/orao-vrf.html
    index 3c380a749..9ccea745e 100644
    --- a/docs/.vuepress/dist/ja/integrations/orao-vrf.html
    +++ b/docs/.vuepress/dist/ja/integrations/orao-vrf.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    ORAO VRF

    ORAO VRF is a multi-party verifiable random function oracle based on EDDSA. It is able to provide 64 bytes of verifiable randomness in response to a randomness request.

    Basic usage scenario

    1. Create a new randomness request.
      • This operation requires a unique seed to be given by the client. This seed is used for randomness verification.
    2. Use generated randomness as soon as request is fulfilled.
      • Oracle will fulfill new requests as soon as possible, this procedure includes the verification step, so no unverified randomness should appear on-chain.
    3. (Optional) Verify generated randomness off-chain.

    SDKs

    There are two SDKs available:

    1. The orao-solana-vrfopen in new window crate – the code bellow is based on this Rust SDK.
    2. The JS SDK – JavaScript SDK, as well as the source code of the Rust SDK, is available in the public repository on GitHub solana-vrfopen in new window. All tests within this repo are based on the JavaScript SDK.

    Anatomy of a randomness request

    The RandomnessRequestopen in new window structure is used to store the requested randomness:

    • seed field – stores the request seed
    • randomness field – this is the field of interest, that stores the fulfilled randomness. It will be zeroed until the randomness request is fulfilled.
    • responses field – you may look at this field in case you are willing to perform off-chain verification (there are helpers for this in both SDKs)

    Anatomy of a VRF configuration

    The NetworkStateopen in new window structure holds the on-chain VRF data. Here we'll talk about its config, field, that stores the NetworkConfigurationopen in new window. The field that may be interesting to you are:

    • request_fee – randomness request will cost this many lamports
    • fulfillment_authorities – public keys of fulfillment authorities
    • token_fee_cofig - if defined, then it's possible to pay fees in SPL instead of SOL

    Rust-native example

    This section will illustrate the off-chain usage (full code is available on GitHubopen in new window)

    1. Setup the connection

    Rust SDK is based on the anchor-clientopen in new window library, so you'll need to acquire the Program instance to use it:

    let payer: Keypair = ..; // get this from the solana configuration
    +    

    ORAO VRF

    ORAO VRF is a multi-party verifiable random function oracle based on EDDSA. It is able to provide 64 bytes of verifiable randomness in response to a randomness request.

    Basic usage scenario

    1. Create a new randomness request.
      • This operation requires a unique seed to be given by the client. This seed is used for randomness verification.
    2. Use generated randomness as soon as request is fulfilled.
      • Oracle will fulfill new requests as soon as possible, this procedure includes the verification step, so no unverified randomness should appear on-chain.
    3. (Optional) Verify generated randomness off-chain.

    SDKs

    There are two SDKs available:

    1. The orao-solana-vrfopen in new window crate – the code bellow is based on this Rust SDK.
    2. The JS SDK – JavaScript SDK, as well as the source code of the Rust SDK, is available in the public repository on GitHub solana-vrfopen in new window. All tests within this repo are based on the JavaScript SDK.

    Anatomy of a randomness request

    The RandomnessRequestopen in new window structure is used to store the requested randomness:

    • seed field – stores the request seed
    • randomness field – this is the field of interest, that stores the fulfilled randomness. It will be zeroed until the randomness request is fulfilled.
    • responses field – you may look at this field in case you are willing to perform off-chain verification (there are helpers for this in both SDKs)

    Anatomy of a VRF configuration

    The NetworkStateopen in new window structure holds the on-chain VRF data. Here we'll talk about its config, field, that stores the NetworkConfigurationopen in new window. The field that may be interesting to you are:

    • request_fee – randomness request will cost this many lamports
    • fulfillment_authorities – public keys of fulfillment authorities
    • token_fee_cofig - if defined, then it's possible to pay fees in SPL instead of SOL

    Rust-native example

    This section will illustrate the off-chain usage (full code is available on GitHubopen in new window)

    1. Setup the connection

    Rust SDK is based on the anchor-clientopen in new window library, so you'll need to acquire the Program instance to use it:

    let payer: Keypair = ..; // get this from the solana configuration
     let client = Client::new_with_options(Cluster::Devnet, Rc::new(payer), CommitmentConfig::finalized());
     let program = client.program(orao_solana_vrf::id());
     

    2. Create a request

    There is a convenient RequestBuilderopen in new window for this purpose:

    let seed = rand::random();
    diff --git a/docs/.vuepress/dist/ja/integrations/pyth.html b/docs/.vuepress/dist/ja/integrations/pyth.html
    index 25704c57b..550dc9bc5 100644
    --- a/docs/.vuepress/dist/ja/integrations/pyth.html
    +++ b/docs/.vuepress/dist/ja/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pythは、現実世界の金融および暗号市場データを取得するために使用されるOracleです。Pyth Oracleは、さまざまなユースケースでデータを消費する際にオンチェーンプログラムで使用できます。

    クライアントでPythを使用する方法

    Pythは**@pythnetwork/client**として呼び出されるJavaScript/TypeScriptライブラリを提供します。このライブラリを使用して、ウェブサイトでのPyth価格の表示などといった、オフチェーンアプリケーションに使用するオンチェーンPyth データを読み取ることができます。詳細はこちらopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pythは、現実世界の金融および暗号市場データを取得するために使用されるOracleです。Pyth Oracleは、さまざまなユースケースでデータを消費する際にオンチェーンプログラムで使用できます。

    クライアントでPythを使用する方法

    Pythは**@pythnetwork/client**として呼び出されるJavaScript/TypeScriptライブラリを提供します。このライブラリを使用して、ウェブサイトでのPyth価格の表示などといった、オフチェーンアプリケーションに使用するオンチェーンPyth データを読み取ることができます。詳細はこちらopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    その他参考資料

    Last Updated:
    Contributors: PokoPoko2ry
    +

    その他参考資料

    Last Updated:
    Contributors: PokoPoko2ry
    diff --git a/docs/.vuepress/dist/ja/integrations/react-native.html b/docs/.vuepress/dist/ja/integrations/react-native.html index 744f8fcc5..d9df63f21 100644 --- a/docs/.vuepress/dist/ja/integrations/react-native.html +++ b/docs/.vuepress/dist/ja/integrations/react-native.html @@ -27,7 +27,7 @@ -

    React NativeとSolana

    React Nativeは、開発者がネイティブプラットフォーム機能と共にReactフレームワークを使用できるようにすることで、モバイル、Web、およびデスクトップアプリケーションの開発に使用されるオープンソースのUIソフトウェア フレームワークです。Solana SDKを搭載したこれは、パフォーマンスの高いネイティブCryptoアプリをすばやく構築するための優れたプラットフォームです。

    React NativeとSolanaを開始する最も速い方法は、Solana DApp Scaffold for React Nativeを使用することです。

    React Nativeアプリで@solana/web3.jsを使用する方法

    このチュートリアルでは、新しいReact Nativeアプリを作成し、@solana/web3.jsSDKとその依存関係をインストールして構成する方法を学習します。

    既存のアプリが既にある場合は、依存関係のインストールに進みます。

    新しいアプリを作成する

    TypeScriptを使用する新しいReact Nativeアプリケーションを開始し、プロジェクト ディレクトリにcdして、残りのコマンドを実行します。

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
    +    

    React NativeとSolana

    React Nativeは、開発者がネイティブプラットフォーム機能と共にReactフレームワークを使用できるようにすることで、モバイル、Web、およびデスクトップアプリケーションの開発に使用されるオープンソースのUIソフトウェア フレームワークです。Solana SDKを搭載したこれは、パフォーマンスの高いネイティブCryptoアプリをすばやく構築するための優れたプラットフォームです。

    React NativeとSolanaを開始する最も速い方法は、Solana DApp Scaffold for React Nativeを使用することです。

    React Nativeアプリで@solana/web3.jsを使用する方法

    このチュートリアルでは、新しいReact Nativeアプリを作成し、@solana/web3.jsSDKとその依存関係をインストールして構成する方法を学習します。

    既存のアプリが既にある場合は、依存関係のインストールに進みます。

    新しいアプリを作成する

    TypeScriptを使用する新しいReact Nativeアプリケーションを開始し、プロジェクト ディレクトリにcdして、残りのコマンドを実行します。

    npx react-native@0.70.0 init SolanaReactNative --template react-native-template-typescript
     cd SolanaReactNative
     

    依存関係をインストールする

    次に、依存関係をインストールします。Solana JavaScript SDK、React Nativeのビルドシステム(Metro)にパッチを当てるパッケージ、安全な乱数生成器、React NativeのURLクラスの欠落にパッチを当てる修正プログラムです。

    yarn add \
       @solana/web3.js \
    diff --git a/docs/.vuepress/dist/ja/integrations/serum.html b/docs/.vuepress/dist/ja/integrations/serum.html
    index f3740def4..dfa5c4db3 100644
    --- a/docs/.vuepress/dist/ja/integrations/serum.html
    +++ b/docs/.vuepress/dist/ja/integrations/serum.html
    @@ -22,13 +22,13 @@
     				document.documentElement.classList.toggle('dark', true);
     			}
         
    -    Serum | Solana Cookbook
    -    
    +    OpenBook | Solana Cookbook
    +    
         
       
       
    -    

    Serum

    Serumは、Solana 上に構築された分散型取引所のプロトコルです。 Serumを使用して、新しい市場の作成、オーダーブックの取得、取引などを行うことができます。

    Serumマーケットの取得方法

    Serumのマーケットには、Serumで注文するためのすべての注文と機能が含まれています。 Serumで行うすべてのことについて、作業しているマーケットを知る必要があります。

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBookは、Solana 上に構築された分散型取引所のプロトコルです。 OpenBookを使用して、新しい市場の作成、オーダーブックの取得、取引などを行うことができます。

    OpenBookマーケットの取得方法

    OpenBookのマーケットには、OpenBookで注文するためのすべての注文と機能が含まれています。 OpenBookで行うすべてのことについて、作業しているマーケットを知る必要があります。

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    Serumオーダーブックの入手方法

    Serumマーケットは、ビッドとアスクを含むオーダーブックで構成されています。この情報を照会して、市場で何が起こっているかを確認し、それに応じて行動することができます。

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    OpenBookオーダーブックの入手方法

    OpenBookマーケットは、ビッドとアスクを含むオーダーブックで構成されています。この情報を照会して、市場で何が起こっているかを確認し、それに応じて行動することができます。

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    現在のオープンの注文を取得する方法

    トレーダーとして、市場で現在開いている注文を知りたいと思うでしょう。Serumを使用して、市場での自分または他の誰かのオープン注文を照会できます。

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    現在のオープンの注文を取得する方法

    トレーダーとして、市場で現在開いている注文を知りたいと思うでしょう。OpenBookを使用して、市場での自分または他の誰かのオープン注文を照会できます。

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/ja/integrations/strata.html b/docs/.vuepress/dist/ja/integrations/strata.html
    index 81cbf4011..15c74ce3d 100644
    --- a/docs/.vuepress/dist/ja/integrations/strata.html
    +++ b/docs/.vuepress/dist/ja/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strataは、Solana 上に構築されたトークンをローンチするためのプロトコルです。 Strata を使用して、ソーシャルトークンから daoおよびgamefiトークンに至るまで、あらゆる種類の代替可能トークンをローンチできます。 また、固定価格制の仕組みを採用しているものとStrataの組み合わせにより、Metaplex CandyMachineのような動的な価格設定の仕組みを構築できます。

    より詳細なドキュメントはこちらから入手できます。Strata LaunchpadでGUIの使用も可能です。

    フルマネージドトークンの作成方法

    フルマネージドStrataトークンは、流動性がプロトコルによって管理されるトークンです。その結果、プールや流動性プロバイダーを必要とせずに、すぐに取引可能なトークンを取得できます。 フルマネージドトークンは、metaplexトークンのメタデータと関連するボンディングカーブを、持つ通常のsplトークンです。 ボンディングカーブは、そのトークンの流動性、価格設定、および供給を管理します。

    Press </> button to view full source
    import {
    +    

    Strata

    Strataは、Solana 上に構築されたトークンをローンチするためのプロトコルです。 Strata を使用して、ソーシャルトークンから daoおよびgamefiトークンに至るまで、あらゆる種類の代替可能トークンをローンチできます。 また、固定価格制の仕組みを採用しているものとStrataの組み合わせにより、Metaplex CandyMachineのような動的な価格設定の仕組みを構築できます。

    より詳細なドキュメントはこちらから入手できます。Strata LaunchpadでGUIの使用も可能です。

    フルマネージドトークンの作成方法

    フルマネージドStrataトークンは、流動性がプロトコルによって管理されるトークンです。その結果、プールや流動性プロバイダーを必要とせずに、すぐに取引可能なトークンを取得できます。 フルマネージドトークンは、metaplexトークンのメタデータと関連するボンディングカーブを、持つ通常のsplトークンです。 ボンディングカーブは、そのトークンの流動性、価格設定、および供給を管理します。

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    トークンの売買方法

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    流動性のブートストラップ方法

    Strata は、供給を手動で管理したい場合にトークンを販売することもできます。これは、トークンをdexにリストする前の流動性のブートストラップに役立ちますこれらの詳細については、こちらopen in new windowを確認するか、Strata Launchpadで独自のものをローンチできます。

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/ja/integrations/switchboard.html b/docs/.vuepress/dist/ja/integrations/switchboard.html
    index 4c89a0335..53203b152 100644
    --- a/docs/.vuepress/dist/ja/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/ja/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboardは、開発者が価格フィード、NFT 最低価格、スポーツ統計、さらには検証可能なランダム性など、さまざまなユースケースのためにチェーン上でデータを調達できるようにする Oracle プロトコルです。 一般的な意味で、Switchboardはオフチェーンのリソースであり、開発者はチェーン上で整合性の高いデータを橋渡しし、次世代の web3とDeFiを強化するために呼び出すことができます。

    Data Feeds

    Switchboardは @switchboard-xyz/switchboard-v2 として呼び出されるJavaScript/TypeScriptライブラリです。このライブラリを使用して、既存のデータフィードからオンチェーン データにアクセスしたり、独自のカスタムフィードを公開したりできます。詳細はこちらopen in new window

    アグリゲーターフィードからデータを読み取る

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboardは、開発者が価格フィード、NFT 最低価格、スポーツ統計、さらには検証可能なランダム性など、さまざまなユースケースのためにチェーン上でデータを調達できるようにする Oracle プロトコルです。 一般的な意味で、Switchboardはオフチェーンのリソースであり、開発者はチェーン上で整合性の高いデータを橋渡しし、次世代の web3とDeFiを強化するために呼び出すことができます。

    Data Feeds

    Switchboardは @switchboard-xyz/switchboard-v2 として呼び出されるJavaScript/TypeScriptライブラリです。このライブラリを使用して、既存のデータフィードからオンチェーン データにアクセスしたり、独自のカスタムフィードを公開したりできます。詳細はこちらopen in new window

    アグリゲーターフィードからデータを読み取る

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    アグリゲーターフィードを新規作成する

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    アグリゲーターフィードを新規作成する

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    パブリッシャーからフィードを作成する方法

    公式の Switchboard ドキュメントには、パブリッシャーからフィードを作成する方法の詳細なウォークスルーがあります。こちらopen in new windowをチェックしてください。

    Oracle

    Switchboardのユニークな機能は、独自のOracleを作成してローカルで実行できることです。

    Oracleを作成

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    パブリッシャーからフィードを作成する方法

    公式の Switchboard ドキュメントには、パブリッシャーからフィードを作成する方法の詳細なウォークスルーがあります。こちらopen in new windowをチェックしてください。

    Oracle

    Switchboardのユニークな機能は、独自のOracleを作成してローカルで実行できることです。

    Oracleを作成

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    docker-compose upを使用してコンテナを実行します。

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Oracleキューを使用する権限を付与されたOracleアカウントの公開鍵
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Oracle ハートビート間の秒数。キューには、異なるOracleハートビート要件があります。推奨値は15です
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - 現在の作業ディレクトリで configs.json を探します。見つからない場合、構成はロードされません。
    Description - プライベートAPIエンドポイントのAPIキーを含む
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - unwrap stake actionをトリガーする Solana の残高。OracleのSolana 残高が設定されたしきい値を下回ると、ノードは自動的にオラクルのステーキングウォレットから資金をアンラップし、少なくとも0.1 wSOL またはキューの最小ステーク要件より10%多い金額を残します。

    検証可能な確率関数(VRF)

    検証可能な確率関数(Verifiable Random Function/VRF)出力が正しく計算されたことを証明する公開鍵疑似乱数関数です。

    VRFアカウントの読み取り

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    docker-compose upを使用してコンテナを実行します。

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Oracleキューを使用する権限を付与されたOracleアカウントの公開鍵
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Oracle ハートビート間の秒数。キューには、異なるOracleハートビート要件があります。推奨値は15です
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - 現在の作業ディレクトリで configs.json を探します。見つからない場合、構成はロードされません。
    Description - プライベートAPIエンドポイントのAPIキーを含む
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - unwrap stake actionをトリガーする Solana の残高。OracleのSolana 残高が設定されたしきい値を下回ると、ノードは自動的にオラクルのステーキングウォレットから資金をアンラップし、少なくとも0.1 wSOL またはキューの最小ステーク要件より10%多い金額を残します。

    検証可能な確率関数(VRF)

    検証可能な確率関数(Verifiable Random Function/VRF)出力が正しく計算されたことを証明する公開鍵疑似乱数関数です。

    VRFアカウントの読み取り

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    VRFアカウントの作成

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    VRFアカウントの作成

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    VRFアカウントからRandomnessを要求する

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    VRFアカウントからRandomnessを要求する

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/ja/integrations/web3auth.html b/docs/.vuepress/dist/ja/integrations/web3auth.html
    index 1e2749cce..a9bc33797 100644
    --- a/docs/.vuepress/dist/ja/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/ja/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    ウォレット

    ウォレットとは?

    クリプト ウォレットは、ブロックチェーンとやり取りするために使用されるデジタル ウォレットです。これにより、トランザクションに署名、検証、および送信できます。マーケットには、使いやすいWebアプリからより複雑なハードウェアセキュリティソリューションに至るまで、多くのクリプトウォレットソリューションが存在します。

    Solanaのソーシャルログイン

    Web3Authopen in new windowを使用すると、ユーザーは既存のWeb2 OAuthプロバイダー(Facebook, Google, Twitter etc.)を使用してWeb3 dappsにサインインできます。これは資産とIDを管理するための、ユーザーフレンドリーで非管理的open in new windowなアプローチを提供します。 秘密鍵管理のラッパーを提供することで、技術的な障壁を取り除き、すべてのユーザーのデジタル所有権の学習曲線を短縮します。

    インテグレーションガイド

    このチュートリアルでは、ソーシャルログインをdappに統合するための基本的な例について説明します。

    依存関係のインストール

    dappでウォレットの使用を開始するには、@toruslabs/solana-embedをインストールします。yarnやnpmなどの一般的なパッケージマネージャーを使用してダウンロードできます。

    yarn add @toruslabs/solana-embed
    +    

    ウォレット

    ウォレットとは?

    クリプト ウォレットは、ブロックチェーンとやり取りするために使用されるデジタル ウォレットです。これにより、トランザクションに署名、検証、および送信できます。マーケットには、使いやすいWebアプリからより複雑なハードウェアセキュリティソリューションに至るまで、多くのクリプトウォレットソリューションが存在します。

    Solanaのソーシャルログイン

    Web3Authopen in new windowを使用すると、ユーザーは既存のWeb2 OAuthプロバイダー(Facebook, Google, Twitter etc.)を使用してWeb3 dappsにサインインできます。これは資産とIDを管理するための、ユーザーフレンドリーで非管理的open in new windowなアプローチを提供します。 秘密鍵管理のラッパーを提供することで、技術的な障壁を取り除き、すべてのユーザーのデジタル所有権の学習曲線を短縮します。

    インテグレーションガイド

    このチュートリアルでは、ソーシャルログインをdappに統合するための基本的な例について説明します。

    依存関係のインストール

    dappでウォレットの使用を開始するには、@toruslabs/solana-embedをインストールします。yarnやnpmなどの一般的なパッケージマネージャーを使用してダウンロードできます。

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    SDKをインポートして初期化する

    以下のコード スニペットでは、solana-embed のインスタンスを作成し、それをsolana testnetを使用するテスト環境で初期化しています。ウォレット インターフェイスの初期化中に、他の構成オプションを渡すことができます。詳細については、api-referenceopen in new windowを参照してください。

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/ja/references/basic-transactions.html b/docs/.vuepress/dist/ja/references/basic-transactions.html
    index 73c601a99..0ff5b4c8b 100644
    --- a/docs/.vuepress/dist/ja/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/ja/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    トランザクションの計算予算、料金、および優先度を変更する方法

    トランザクション (TX) の優先順位は、基本手数料に加えて優先手数料を支払うことによって達成されます。デフォルトでは、コンピューティング予算は 200,000 コンピューティング ユニット (CU) * 命令数の積であり、最大 1.4M CU です。基本料金は 5,000 lamportです。 microLamport は 0.000001 lamportです。

    1つの TX の合計コンピューティング予算または優先順位付け料金は、ComputeBudgetProgram からの命令を追加することで変更できます。

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number }) は、基本料金 (5,000 lamport) の上に優先料金を追加します。 microLamportsで提供される値にCU予算を掛けて、Lamports の優先料金を決定します。 たとえば、CU 予算が 100 万 CU で、1 つの microLamport/CU を追加する場合、優先料金は 1 lamport (1M * 0.000001) になります。合計料金は 5001 lamport になります。

    ComputeBudgetProgram.setComputeUnitLimit({ units: number }) 使用して、新しいコンピューティング予算を設定します。 指定された値は、デフォルト値を置き換えます。 トランザクションは、スループットを最大化する、または手数料を最小化するために、実行に必要な最小量の CU を要求する必要があります。

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    トランザクションの計算予算、料金、および優先度を変更する方法

    トランザクション (TX) の優先順位は、基本手数料に加えて優先手数料を支払うことによって達成されます。デフォルトでは、コンピューティング予算は 200,000 コンピューティング ユニット (CU) * 命令数の積であり、最大 1.4M CU です。基本料金は 5,000 lamportです。 microLamport は 0.000001 lamportです。

    1つの TX の合計コンピューティング予算または優先順位付け料金は、ComputeBudgetProgram からの命令を追加することで変更できます。

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number }) は、基本料金 (5,000 lamport) の上に優先料金を追加します。 microLamportsで提供される値にCU予算を掛けて、Lamports の優先料金を決定します。 たとえば、CU 予算が 100 万 CU で、1 つの microLamport/CU を追加する場合、優先料金は 1 lamport (1M * 0.000001) になります。合計料金は 5001 lamport になります。

    ComputeBudgetProgram.setComputeUnitLimit({ units: number }) 使用して、新しいコンピューティング予算を設定します。 指定された値は、デフォルト値を置き換えます。 トランザクションは、スループットを最大化する、または手数料を最小化するために、実行に必要な最小量の CU を要求する必要があります。

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/ja/references/local-development.html b/docs/.vuepress/dist/ja/references/local-development.html
    index 5bace1618..9bea44518 100644
    --- a/docs/.vuepress/dist/ja/references/local-development.html
    +++ b/docs/.vuepress/dist/ja/references/local-development.html
    @@ -345,12 +345,12 @@
     

    バリデーターの開始時にアカウントのファイルと宛先アドレス (ローカルクラスター上のもの)を指定することでローカルネットへロードされます:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    メインネットからプログラムをロードする方法

    同様に、Serum Dex v3プログラムをダウンロードすることもできます:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    メインネットからプログラムをロードする方法

    同様に、OpenBook Dex v3プログラムをダウンロードすることもできます:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    バリデーターの開始時にアカウントのファイルと宛先アドレス (ローカルクラスター上のもの)を指定することでローカルネットへロードされます:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: PokoPoko2ry
    diff --git a/docs/.vuepress/dist/kr/guides/account-maps.html b/docs/.vuepress/dist/kr/guides/account-maps.html index 049ebea7f..3a6967943 100644 --- a/docs/.vuepress/dist/kr/guides/account-maps.html +++ b/docs/.vuepress/dist/kr/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    Client 영역에서, 당신은 BlogPost Account address를 얻기 위해 PublicKey.findProgramAddress()를 사용할 수 있습니다. 당신은 Account Data를 가져오기 위해 이 Address를 connection.getAccountInfo()로 넘길 수 있습니다. 아래는 그 예제입니다.

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    Client 영역에서, 당신은 BlogPost Account address를 얻기 위해 PublicKey.findProgramAddress()를 사용할 수 있습니다. 당신은 Account Data를 가져오기 위해 이 Address를 connection.getAccountInfo()로 넘길 수 있습니다. 아래는 그 예제입니다.

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/kr/guides/get-program-accounts.html b/docs/.vuepress/dist/kr/guides/get-program-accounts.html
    index 8d38d6633..51bff2c65 100644
    --- a/docs/.vuepress/dist/kr/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/kr/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Get Program Accounts

    RPC method는 프로그램에 의해 소유된 모든 Account들을 반환한다. 현재 pagination은 지원하지 않습니다. getProgramAccounts 요청은 응답 시간을 향상시키고 의도된 결과만을 반환하기 위해 dataSlice 그리고/또는 filters 파라미터를 포함해야 합니다.

    Facts

    Parameters

    • programId: string - 질의할 Program의 Pubkey, base58 인코딩 문자열
    • (optional) configOrCommitment: object - 아래의 optional field들을 포함하는 Configuration 파라미터들
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - Account Data에 대한 인코딩, either: base58, base64, or jsonParsed. 주의, web3js 사용자는 getParsedProgramAccountsopen in new window를 사용해야 한다.
      • (optional) dataSlice: object - 반환되는 Account Data에 대한 제한 설정
        • offset: number - 반환을 시작할 Account Data 바이트 숫자
        • length: number - 반환할 Account Data의 바이트 수
      • (optional) filters: array - 아래의 filter 객체들을 사용하는 Filter 결과들
        • memcmp: object - 일련의 바이트와 Account Data의 비교:
          • offset: number - 비교를 시작할 Account Data 바이트 숫자
          • bytes: string - 비교할 Data, 129 bytes 제한되며 base58 인코딩 된 문자열
        • dataSize: number - Account Data의 길이와 데이터 사이즈의 비교
      • (optional) withContext: boolean - 결과를 포장할 RpcResponse JSON objectopen in new window
    Response

    getProgramAccounts는 기본적으로 아래의 구조를 갖는 JSON 객체들을 담고 있는 배열을 반환합니다.

    • pubkey: string - Account pubkey, base58 인코딩 된 문자열
    • account: object - 아래의 서브 속성들을 갖고 있는 JSON 객체
      • lamports: number, Account에 할당된 lamports의 수
      • owner: string, base58 인코딩 되어 Account에 할당된 Program의 pubkey
      • data: string | object - Account와 연관된 데이터, 인코딩 파라미터로 넘어온 값에 따라 인코딩 된 binary data 또는 JSON 형식
      • executable: boolean, Account가 Program을 포함하는지에 대한 표시
      • rentEpoch: number, Account가 rent 지불할 다음 epoch

    Deep Dive

    getProgramAccounts는 Program이 소유한 모든 Account들을 리턴하는 다재다능한 RPC method 입니다. 우리는 아래와 같이 몇 가지 유용한 쿼리를 위해 getProgramAccounts를 사용할 수 있습니다.

    • 특정 지갑에 대한 모든 Token Account들 조회
    • 특정 mint에 대한 모든 Token Account들 조회 (i.e. All SRMopen in new window holders)
    • 특정 Program에 대한 모든 custom Account들 조회 (i.e. All Mangoopen in new window users)

    이렇게 유용함에도 불구하고, getProgramAccounts는 현재 제약사항들 때문에 자주 오해받습니다. getProgramAccounts에 의해 지원되는 많은 쿼리들은 대량의 데이터 셋을 스캔하기 위해 RPC 노드들을 요구합니다. 이런 스캔 작업들은 메모리와 자원 집중적이다. 결과적으로, 너무 자주 혹은 너무 크게 호출하는 것은 connection timeout을 야기할 수 있습니다. 뿐만 아니라, 이 글을 쓰는 시점에는, getProgramAccounts의 endpoint는 pagination을 지원하지 않습니다. 만약 쿼리의 결과가 너무 크다면, 응답 값은 잘릴 것입니다.

    현재의 이런 제약사항들을 피하기 위해서, getProgramAccounts는 몇 가지 유용한 파라미터들을 제공합니다: dataSlice, filters, memcpm 그리고 dataSize. 이 파라미터들을 조합해 인자로 넘김으로써, 우리가 쿼리 할 영역을 관리 가능하고 예측 가능한 크기로 줄일 수 있습니다.

    getProgramAccounts의 흔한 예제는 SPL-Token Programopen in new window과 통신하는 것입니다. basic call을 가지고 Token Program이 소유한 모든 Account를 요청하는 것은 막대한 양의 데이터를 호출하게 될 것입니다. 그러나, 파라미터들을 이용함으로써 우리는 효과적으로 우리가 사용하고자 하는 데이터만 요청할 수 있습니다.

    filters

    getProgramAccounts를 사용하기 위한 가장 흔한 파라미터는 filters array다. 이 array에는 dataSizememcmp 두 가지 타입의 필터가 들어갈 수 있습니다. 이 필터들을 이용하기 전에, 우리가 요청하고 있는 데이터들이 어떻게 놓여있고 직렬화되는지에 대해 익숙해져야 합니다.

    dataSize

    Token Program의 경우, 우리는 Token Account가 165 bytes의 길이open in new window를 가진다는 것을 알 수 있습니다. 구체적으로, Token Account는 각각 예측 가능한 bytes 수를 요구하는 8개의 다른 필드들을 가지고 있습니다. 우리는 아래의 그림을 통해 이 데이터가 어떻게 놓여있는지 확인할 수 있습니다.

    Account Size

    만약 우리가 우리의 지갑 Address가 소유한 모든 Token Account들을 알고 싶다면, 우리는 정확히 165 bytes 길이인 Account들에 대해 쿼리 영역을 좁게 만드는 { dataSize: 165 }filters array에 추가할 수 있을 것입니다. 그러나 이것만으로는 충분하지 않습니다. 우리는 또한 우리의 Addres가 소유한 Account들을 찾는 필터를 추가할 필요가 있습니다. 우리는 이것을 memcmp 필터를 통해 할 수 있습니다.

    memcmp

    memcmp 필터 혹은 "메모리 비교" 필터는 우리의 Account에 저장된 어떤 속성에 있는 데이터를 비교할 수 있게 해 줍니다. 구체적으로, 우리는 특정 포지션에 있는 특정 bytes 집합에 맞춰 Account들을 질의할 수 있다. memcmp는 두 가지 인자를 요구합니다:

    • offset: 데이터 비교를 시작할 위치. 이 위치는 bytes로 측정되며 integer로 표현됩니다.
    • bytes: Account의 데이터와 매칭 되어야 하는 데이터. 이것은 base-58로 인코딩 된 문자열로 표현되며 129 bytes 이하로 제한됩니다.

    memcmpbytes가 정확히 매칭 된 경우에만 결과를 반환한다는 사실을 아는 것이 중요합니다. 현재, 우리가 제공할 bytes보다 크거나 작은 값에 대한 비교는 지원하지 않습니다.

    Token Program 예제와 함께 계속해서, 우리는 우리의 지갑 Address가 소유한 Token Account들만 반환하도록 쿼리를 고칠 수 있습니다. Token Account를 봤을 때, 우리는 Token Account에 저장된 처음 두 필드가 모두 pubkey라는 것과, 각 pubkey는 32 bytes 길이인 것을 알 수 있습니다. owner가 두 번째 필드인 것을 고려하면, 우리는 memcmpoffset 32 bytes에서 시작해야합니다. 여기서부터, 우리는 owner 필드가 우리의 지갑 Address와 매칭되는 Account들을 찾을 것입니다.

    Account Size

    우리는 아래의 예제를 통해 이 쿼리를 호출할 수 있습니다.

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Get Program Accounts

    RPC method는 프로그램에 의해 소유된 모든 Account들을 반환한다. 현재 pagination은 지원하지 않습니다. getProgramAccounts 요청은 응답 시간을 향상시키고 의도된 결과만을 반환하기 위해 dataSlice 그리고/또는 filters 파라미터를 포함해야 합니다.

    Facts

    Parameters

    • programId: string - 질의할 Program의 Pubkey, base58 인코딩 문자열
    • (optional) configOrCommitment: object - 아래의 optional field들을 포함하는 Configuration 파라미터들
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - Account Data에 대한 인코딩, either: base58, base64, or jsonParsed. 주의, web3js 사용자는 getParsedProgramAccountsopen in new window를 사용해야 한다.
      • (optional) dataSlice: object - 반환되는 Account Data에 대한 제한 설정
        • offset: number - 반환을 시작할 Account Data 바이트 숫자
        • length: number - 반환할 Account Data의 바이트 수
      • (optional) filters: array - 아래의 filter 객체들을 사용하는 Filter 결과들
        • memcmp: object - 일련의 바이트와 Account Data의 비교:
          • offset: number - 비교를 시작할 Account Data 바이트 숫자
          • bytes: string - 비교할 Data, 129 bytes 제한되며 base58 인코딩 된 문자열
        • dataSize: number - Account Data의 길이와 데이터 사이즈의 비교
      • (optional) withContext: boolean - 결과를 포장할 RpcResponse JSON objectopen in new window
    Response

    getProgramAccounts는 기본적으로 아래의 구조를 갖는 JSON 객체들을 담고 있는 배열을 반환합니다.

    • pubkey: string - Account pubkey, base58 인코딩 된 문자열
    • account: object - 아래의 서브 속성들을 갖고 있는 JSON 객체
      • lamports: number, Account에 할당된 lamports의 수
      • owner: string, base58 인코딩 되어 Account에 할당된 Program의 pubkey
      • data: string | object - Account와 연관된 데이터, 인코딩 파라미터로 넘어온 값에 따라 인코딩 된 binary data 또는 JSON 형식
      • executable: boolean, Account가 Program을 포함하는지에 대한 표시
      • rentEpoch: number, Account가 rent 지불할 다음 epoch

    Deep Dive

    getProgramAccounts는 Program이 소유한 모든 Account들을 리턴하는 다재다능한 RPC method 입니다. 우리는 아래와 같이 몇 가지 유용한 쿼리를 위해 getProgramAccounts를 사용할 수 있습니다.

    • 특정 지갑에 대한 모든 Token Account들 조회
    • 특정 mint에 대한 모든 Token Account들 조회 (i.e. All SRMopen in new window holders)
    • 특정 Program에 대한 모든 custom Account들 조회 (i.e. All Mangoopen in new window users)

    이렇게 유용함에도 불구하고, getProgramAccounts는 현재 제약사항들 때문에 자주 오해받습니다. getProgramAccounts에 의해 지원되는 많은 쿼리들은 대량의 데이터 셋을 스캔하기 위해 RPC 노드들을 요구합니다. 이런 스캔 작업들은 메모리와 자원 집중적이다. 결과적으로, 너무 자주 혹은 너무 크게 호출하는 것은 connection timeout을 야기할 수 있습니다. 뿐만 아니라, 이 글을 쓰는 시점에는, getProgramAccounts의 endpoint는 pagination을 지원하지 않습니다. 만약 쿼리의 결과가 너무 크다면, 응답 값은 잘릴 것입니다.

    현재의 이런 제약사항들을 피하기 위해서, getProgramAccounts는 몇 가지 유용한 파라미터들을 제공합니다: dataSlice, filters, memcpm 그리고 dataSize. 이 파라미터들을 조합해 인자로 넘김으로써, 우리가 쿼리 할 영역을 관리 가능하고 예측 가능한 크기로 줄일 수 있습니다.

    getProgramAccounts의 흔한 예제는 SPL-Token Programopen in new window과 통신하는 것입니다. basic call을 가지고 Token Program이 소유한 모든 Account를 요청하는 것은 막대한 양의 데이터를 호출하게 될 것입니다. 그러나, 파라미터들을 이용함으로써 우리는 효과적으로 우리가 사용하고자 하는 데이터만 요청할 수 있습니다.

    filters

    getProgramAccounts를 사용하기 위한 가장 흔한 파라미터는 filters array다. 이 array에는 dataSizememcmp 두 가지 타입의 필터가 들어갈 수 있습니다. 이 필터들을 이용하기 전에, 우리가 요청하고 있는 데이터들이 어떻게 놓여있고 직렬화되는지에 대해 익숙해져야 합니다.

    dataSize

    Token Program의 경우, 우리는 Token Account가 165 bytes의 길이open in new window를 가진다는 것을 알 수 있습니다. 구체적으로, Token Account는 각각 예측 가능한 bytes 수를 요구하는 8개의 다른 필드들을 가지고 있습니다. 우리는 아래의 그림을 통해 이 데이터가 어떻게 놓여있는지 확인할 수 있습니다.

    Account Size

    만약 우리가 우리의 지갑 Address가 소유한 모든 Token Account들을 알고 싶다면, 우리는 정확히 165 bytes 길이인 Account들에 대해 쿼리 영역을 좁게 만드는 { dataSize: 165 }filters array에 추가할 수 있을 것입니다. 그러나 이것만으로는 충분하지 않습니다. 우리는 또한 우리의 Addres가 소유한 Account들을 찾는 필터를 추가할 필요가 있습니다. 우리는 이것을 memcmp 필터를 통해 할 수 있습니다.

    memcmp

    memcmp 필터 혹은 "메모리 비교" 필터는 우리의 Account에 저장된 어떤 속성에 있는 데이터를 비교할 수 있게 해 줍니다. 구체적으로, 우리는 특정 포지션에 있는 특정 bytes 집합에 맞춰 Account들을 질의할 수 있다. memcmp는 두 가지 인자를 요구합니다:

    • offset: 데이터 비교를 시작할 위치. 이 위치는 bytes로 측정되며 integer로 표현됩니다.
    • bytes: Account의 데이터와 매칭 되어야 하는 데이터. 이것은 base-58로 인코딩 된 문자열로 표현되며 129 bytes 이하로 제한됩니다.

    memcmpbytes가 정확히 매칭 된 경우에만 결과를 반환한다는 사실을 아는 것이 중요합니다. 현재, 우리가 제공할 bytes보다 크거나 작은 값에 대한 비교는 지원하지 않습니다.

    Token Program 예제와 함께 계속해서, 우리는 우리의 지갑 Address가 소유한 Token Account들만 반환하도록 쿼리를 고칠 수 있습니다. Token Account를 봤을 때, 우리는 Token Account에 저장된 처음 두 필드가 모두 pubkey라는 것과, 각 pubkey는 32 bytes 길이인 것을 알 수 있습니다. owner가 두 번째 필드인 것을 고려하면, 우리는 memcmpoffset 32 bytes에서 시작해야합니다. 여기서부터, 우리는 owner 필드가 우리의 지갑 Address와 매칭되는 Account들을 찾을 것입니다.

    Account Size

    우리는 아래의 예제를 통해 이 쿼리를 호출할 수 있습니다.

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/kr/references/basic-transactions.html b/docs/.vuepress/dist/kr/references/basic-transactions.html
    index e458dc327..4b1bdcebb 100644
    --- a/docs/.vuepress/dist/kr/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/kr/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    How to change compute budget, fee, & priority for a transaction

    Transaction (TX) 우선순위는 기본요금에 우선순위 요금을 추가해 지불함으로써 얻어집니다. 기본적으로 Compute budget은 200,000 Compute Units (CU) 입니다. * 최대 1.4M CU를 가진 Instruction의 수. 기본요금은 5,000 Lamports 입니다. microLamport는 0.000001 Lamports입니다.

    전체 Compute budget 또는 단일 TX를 위한 우선순위 요금은 ComputeBudgetProgram으로부터 추가된 Instruction들에 의해 바뀔 수 있습니다.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })은 기본요금 (5,000 Lamports) 위에 우선순위 요금을 추가할 것입니다. microLamports에서 제공된 값은 Lamports로 우선순위 요금을 결정짓기 위해 CU budget에 의해 곱해질 것입니다. 예를 들어, 만약 당신의 CU budget이 1M CU이고 1 microLamport/CU를 더한다면, 우선순위 요금은 1 Lamport (1M * 0.000001) 이 될 것입니다. 그러면 전체 요금은 5001 Lamports가 될 것입니다.

    새로운 compute budget을 설정하기 위해서는 ComputeBudgetProgram.setComputeUnitLimit({ units: number }) 사용하세요. 제공된 값은 기본 값을 대체할 것입니다. Transaction들은 처리량을 극대화하고 요금을 최소화하기 위해 실행을 위해 요구되는 최소 양의 CU를 요청해야 합니다.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    How to change compute budget, fee, & priority for a transaction

    Transaction (TX) 우선순위는 기본요금에 우선순위 요금을 추가해 지불함으로써 얻어집니다. 기본적으로 Compute budget은 200,000 Compute Units (CU) 입니다. * 최대 1.4M CU를 가진 Instruction의 수. 기본요금은 5,000 Lamports 입니다. microLamport는 0.000001 Lamports입니다.

    전체 Compute budget 또는 단일 TX를 위한 우선순위 요금은 ComputeBudgetProgram으로부터 추가된 Instruction들에 의해 바뀔 수 있습니다.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number })은 기본요금 (5,000 Lamports) 위에 우선순위 요금을 추가할 것입니다. microLamports에서 제공된 값은 Lamports로 우선순위 요금을 결정짓기 위해 CU budget에 의해 곱해질 것입니다. 예를 들어, 만약 당신의 CU budget이 1M CU이고 1 microLamport/CU를 더한다면, 우선순위 요금은 1 Lamport (1M * 0.000001) 이 될 것입니다. 그러면 전체 요금은 5001 Lamports가 될 것입니다.

    새로운 compute budget을 설정하기 위해서는 ComputeBudgetProgram.setComputeUnitLimit({ units: number }) 사용하세요. 제공된 값은 기본 값을 대체할 것입니다. Transaction들은 처리량을 극대화하고 요금을 최소화하기 위해 실행을 위해 요구되는 최소 양의 CU를 요청해야 합니다.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/kr/references/local-development.html b/docs/.vuepress/dist/kr/references/local-development.html
    index cc1e17c3d..027c2d698 100644
    --- a/docs/.vuepress/dist/kr/references/local-development.html
    +++ b/docs/.vuepress/dist/kr/references/local-development.html
    @@ -345,12 +345,12 @@
     

    validator를 시작할 때 이 Account 파일과 목적지 address (local cluster에 있는)를 넘김으로써 로컬 넷에 올리는 것이 가능합니다:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    How to load programs from mainnet

    비슷하게 Serum Dex v3 프로그램을 다운로드할 수 있습니다:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    How to load programs from mainnet

    비슷하게 OpenBook Dex v3 프로그램을 다운로드할 수 있습니다:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    validator를 시작할 때 Program 파일과 목적지 Address (local cluster에 있는)를 넘김으로써 로컬 넷에 올리는 것이 가능합니다:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Partially Sorted, TaeGit
    diff --git a/docs/.vuepress/dist/references/basic-transactions.html b/docs/.vuepress/dist/references/basic-transactions.html index 0ae058649..6f0006a16 100644 --- a/docs/.vuepress/dist/references/basic-transactions.html +++ b/docs/.vuepress/dist/references/basic-transactions.html @@ -588,7 +588,7 @@ await connection.confirmTransaction(signature, "processed");
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    How to change compute budget, fee, & priority for a transaction

    Transaction (TX) priority is achieved by paying a Prioritization Fee in addition to the Base Fee. By default the compute budget is the product of 200,000 Compute Units (CU) * number of instructions, with a max of 1.4M CU. The Base Fee is 5,000 Lamports. A microLamport is 0.000001 Lamports.

    The total compute budget or Prioritization Fee for a single TX can be changed by adding instructions from the ComputeBudgetProgram.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number }) will add a Prioritization Fee above the Base Fee (5,000 Lamports). The value provided in microLamports will be multiplied by the CU budget to determine the Prioritization Fee in Lamports. For example, if your CU budget is 1M CU, and you add 1 microLamport/CU, the Prioritization Fee will be 1 Lamport (1M * 0.000001). The total fee will then be 5001 Lamports.

    Use ComputeBudgetProgram.setComputeUnitLimit({ units: number }) to set the new compute budget. The value provided will replace the default value. Transactions should request the minimum amount of CU required for execution to maximize throughput, or minimize fees.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    How to change compute budget, fee, & priority for a transaction

    Transaction (TX) priority is achieved by paying a Prioritization Fee in addition to the Base Fee. By default the compute budget is the product of 200,000 Compute Units (CU) * number of instructions, with a max of 1.4M CU. The Base Fee is 5,000 Lamports. A microLamport is 0.000001 Lamports.

    The total compute budget or Prioritization Fee for a single TX can be changed by adding instructions from the ComputeBudgetProgram.

    ComputeBudgetProgram.setComputeUnitPrice({ microLamports: number }) will add a Prioritization Fee above the Base Fee (5,000 Lamports). The value provided in microLamports will be multiplied by the CU budget to determine the Prioritization Fee in Lamports. For example, if your CU budget is 1M CU, and you add 1 microLamport/CU, the Prioritization Fee will be 1 Lamport (1M * 0.000001). The total fee will then be 5001 Lamports.

    Use ComputeBudgetProgram.setComputeUnitLimit({ units: number }) to set the new compute budget. The value provided will replace the default value. Transactions should request the minimum amount of CU required for execution to maximize throughput, or minimize fees.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/references/local-development.html b/docs/.vuepress/dist/references/local-development.html
    index f9e1c6677..dff3f1f60 100644
    --- a/docs/.vuepress/dist/references/local-development.html
    +++ b/docs/.vuepress/dist/references/local-development.html
    @@ -345,12 +345,12 @@
     

    Loading it to your localnet is then done by passing the account's file and destination address (on the local cluster) when starting the validator:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    How to load programs from mainnet

    Similarly, it is possible to download the Serum Dex v3 program:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    How to load programs from mainnet

    Similarly, it is possible to download the OpenBook Dex v3 program:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    Loading it to your localnet is then done by passing the program's file and destination address (on the local cluster) when starting the validator:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Jacob Creech, AndyNft, Braden Keith, Jacob Creech, Partially Sorted, dtlehrer, man0s
    diff --git a/docs/.vuepress/dist/th/guides/account-maps.html b/docs/.vuepress/dist/th/guides/account-maps.html index cfa046f6a..35792247f 100644 --- a/docs/.vuepress/dist/th/guides/account-maps.html +++ b/docs/.vuepress/dist/th/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    ในฝั่ง client เราสามารถใช้ PublicKey.findProgramAddress() เพื่อหา Blog และ Post account address เอาไปเรียก connection.getAccountInfo() เพื่อดึงข้อมูล account data ตามตัวอย่างด้านล่าง

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    ในฝั่ง client เราสามารถใช้ PublicKey.findProgramAddress() เพื่อหา Blog และ Post account address เอาไปเรียก connection.getAccountInfo() เพื่อดึงข้อมูล account data ตามตัวอย่างด้านล่าง

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/th/guides/get-program-accounts.html b/docs/.vuepress/dist/th/guides/get-program-accounts.html
    index 394bdfdad..6c9c132a0 100644
    --- a/docs/.vuepress/dist/th/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/th/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Get Program Accounts

    นี่ตือ RPC method ที่จะคืนค่า accounts ที่ program เป็นเจ้าของ. ในตอนนี้ยังไม่สนับสนุน pagination. การ requests ไปที่ getProgramAccounts จะต้องส่ง parameters dataSlice และ/หรือ filters ไปด้วยเพื่อลด response time และจะได้ส่งกลับมาเฉพาะผลลัพท์ที่ต้องการ.

    เรื่องน่ารู้

    Parameters

    • programId: string - Pubkey ของ program ที่จะ query, เตรียมในรูปแบบ base58 encoded string
    • (optional) configOrCommitment: object - Configuration parameters ที่มี optional fields ตามนี้:
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - Encoding สำหรับ account data, ทั้ง: base58, base64, หรือ jsonParsed. Note, web3js ต้องใช้ getParsedProgramAccountsopen in new window แทน
      • (optional) dataSlice: object - จำกัดผลลัพท์ account data โดยขึ้นอยู่กับ:
        • offset: number - จำนวนของ bytes เริ่มต้นของ account data ที่จะเริ่มคืนค่ามา
        • length: number - จำนวนของ bytes ของ account data ที่จะส่งกลับมา
      • (optional) filters: array - คัดกรอง results โดยใช้ filter objects ข้างล่าง:
        • memcmp: object - ตรงกับ series ของ bytes ของ account data:
          • offset: number - จำนวนของ bytes เริ่มต้นของ account data ที่จะเทียบ
          • bytes: string - Data ที่จะเทียบด้วย, ในรูปแบบ base58 encoded string จำกัดที่ 129 bytes
        • dataSize: number - เทียบ account data length ด้วย data size ที่ระบุไว้
      • (optional) withContext: boolean - ครอบ (wrap)​ ผลลัพท์ในรูปแบบ RpcResponse JSON objectopen in new window
    Response

    ตามปกติแล้ว getProgramAccounts จะคืนค่า array ของ JSON objects ที่มีโครงสร้างตามนี้:

    • pubkey: string - account pubkey ในรูปแบบของ base58 encoded string
    • account: object - JSON object ที่มี fields:
      • lamports: number, ตัวเลขของ lamports ที่มีใน account
      • owner: string, base58 encoded pubkey ของ program ที่ account ได้ assigned ไว้
      • data: string | object - data ที่เกี่ยวข้องกับ account อาจจะเป็นได้ทั้ง encoded binary data หรือ JSON format ขึ้นอยู่กับ encoding parameter
      • executable: boolean, ตัวบ่งชี้ว่า account นี้มี program
      • rentEpoch: number, epoch ที่ account นี้จะต้องจ่าย rent

    ลงลึก

    getProgramAccounts คือ RPC method ที่จะคืนค่าทุก accounts ที่ program เป็นเจ้าของ. เราสามารถใช้ getProgramAccounts สำหรับดึงข้อมูลได้หลายแบบ เช่น:

    • หาทุกๆ token accounts ของ wallet
    • หาทุกๆ token accounts ที่มี mint เดียวกัน(เช่น ทุกๆ คนที่ถือ token SRMopen in new window ไว้)
    • หาทุกๆ custom accounts ที่ใช้ program นี้(เช่น ทุกๆ คนที่ใช้ Mangoopen in new window)

    นอกจากจะมีประโยชน์แล้ว, getProgramAccounts ยังถูกเข้าใจผิดอยู่บ้าง เพราะด้วยข้อจำกัดของมัน การดึงข้อมูลที่ใช้ getProgramAccounts จะทำให้ RPC nodes ค้นหา data ขนาดใหญ่. การค้นหานั้นกินทั้ง memory และ resource มากๆ. ผลที่เกิดขึ้นคือถ้าเรียกใช้บ่อยเกินไป หรือใหญ่เกินไปจะทำให้เกิด connection timeouts ได้. ในตอนนี้ getProgramAccounts endpoint ยังไม่สนับสนุน pagination. ถ้าผลการค้นหาใหญ่เกินไปผลลัพท์จะถูกตัดทิ้ง.

    เพื่อหลีกหนีข้อจำกัดนี้, getProgramAccounts เลยมี parameters ให้ใช้: ชื่อ, dataSlice และ filters options memcmp และ dataSize. ถ้าใช้ parameters เหล่านี้, เราจะสามารถลดขอบเขตของการค้นหาให้แคบลงเพื่อควบคุม และประมาณขนาดของผลลัพท์ได้.

    ตัวอย่างทั่วไปของ getProgramAccounts ที่เกี่ยวข้องกับ SPL-Token Programopen in new window เช่น การค้นหาทุกๆ accounts ที่ Token Program เป็นเจ้าของโดยใช้ การค้นหาแบบปกติ จะทำให้ต้องไปค้นหาข้อมูลมากมาย แต่ถ้าเราใส่ parameters เข้าไปด้วยเราจะสามารถ request ได้อย่างประสิทธิภาพ และได้ data เฉพาะที่เราจะใช้.

    filters

    parameter ที่ใช้บ่อยๆ สำหรับ getProgramAccounts คือ filters array. ซึ่ง array นี้จะรับ filters 2 แบบคือ dataSize และ memcmp ก่อนที่จะใช้ filters นี้เราต้องรู้ก่อนว่า data ที่เราจะร้องขอมีรูปแบบยังไง และจัดเรียงไว้ยังไง.

    dataSize

    ในกรณีของ Token Program, เราจะเห็นว่า token accounts มีขนาด 165 bytesopen in new window. และ token account จะมี 8 fields ที่แตกต่างกันโดยแต่ละ field จะมีขนาด bytes ที่แน่นอน เราสามารถแสดง visualize ว่า data มีการวางรูปแบบยังไงโดยใช้รูปด้านล่าง.

    Account Size

    ถ้าเราต้องการหาทุกๆ token accounts โดยมี wallet address ของเราเป็นเจ้าของ, เราสามารถใส่ { dataSize: 165 } ใน filters เพื่อลดขอบเขตการค้นหาของเราให้เหลือเฉพาะ accounts ที่ขนาด 165 bytes เท่านั้น แต่เท่านี้ก็ยังไม่ดีพอ เราต้องต้องใส่ filter เข้าไปด้วยว่าเราเป็นเจ้าของ (owner) มันด้วย เราสามารถทำได้ด้วยการเพิ่ม memcmp filter เข้าไป.

    memcmp

    memcmp filter หรือ "memory comparison" filter, จะทำให้เราสามารถเปรียบเทียบ data ใน field ไหนก็ได้ที่เก็บอยู่ใน​ account ของเรา. โดยเฉพาะเราสามารถค้นหาเฉพาะ accounts ที่ตรงกับ bytes ที่ตำแหน่งใดๆ. memcmp ต้องการ 2 arguments:

    • offset: ตำแหน่งที่จะเริ่มเทียบ data มีขนาดเป็น bytes และแสดงเป็นจำนวนเต็ม.
    • bytes: คือ data ตรงกับ account's data. จะใช้ base-58 encoded string ขนาดไม่เกิน 129 bytes.

    แต่ต้องระวังไว้ว่า memcmp จะคืนค่ามาก็ต่อเมื่อเจอ bytes ตรงกันเท่านั้น ซึ่งในตอนนี้เรายังไม่สามารถเทียบหาค่าที่น้อยกว่า หรือมากกว่า bytes ที่เราใส่ไปได้

    ในตัวอย่าง Token Program อันต่อไป, เราสามารถกำหนดการค้นหาให้คืนค่ามาเฉพาะ token account ที่ตรงกับ wallet address ของเรา ถ้าเราลองดูที่ token account จะเห็นว่า 2 fields แรกบน token account คือ pubkeys, และแต่ละ pubkey จะมีขนาด 32 bytes โดยที่ owner จะอยู่ที่ field ที่ 2 เราจึงสามารถเริ่ม memcmp ที่ offset ที่ 32 bytes จากตรงนั้นเราก็สามารถมองหา account ที่ ower ตรงกับ wallet address ของเรา

    Account Size

    เราสามารถลอง query ได้ด้วยตัวอย่างด้านล่าง:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Get Program Accounts

    นี่ตือ RPC method ที่จะคืนค่า accounts ที่ program เป็นเจ้าของ. ในตอนนี้ยังไม่สนับสนุน pagination. การ requests ไปที่ getProgramAccounts จะต้องส่ง parameters dataSlice และ/หรือ filters ไปด้วยเพื่อลด response time และจะได้ส่งกลับมาเฉพาะผลลัพท์ที่ต้องการ.

    เรื่องน่ารู้

    Parameters

    • programId: string - Pubkey ของ program ที่จะ query, เตรียมในรูปแบบ base58 encoded string
    • (optional) configOrCommitment: object - Configuration parameters ที่มี optional fields ตามนี้:
      • (optional) commitment: string - State commitmentopen in new window
      • (optional) encoding: string - Encoding สำหรับ account data, ทั้ง: base58, base64, หรือ jsonParsed. Note, web3js ต้องใช้ getParsedProgramAccountsopen in new window แทน
      • (optional) dataSlice: object - จำกัดผลลัพท์ account data โดยขึ้นอยู่กับ:
        • offset: number - จำนวนของ bytes เริ่มต้นของ account data ที่จะเริ่มคืนค่ามา
        • length: number - จำนวนของ bytes ของ account data ที่จะส่งกลับมา
      • (optional) filters: array - คัดกรอง results โดยใช้ filter objects ข้างล่าง:
        • memcmp: object - ตรงกับ series ของ bytes ของ account data:
          • offset: number - จำนวนของ bytes เริ่มต้นของ account data ที่จะเทียบ
          • bytes: string - Data ที่จะเทียบด้วย, ในรูปแบบ base58 encoded string จำกัดที่ 129 bytes
        • dataSize: number - เทียบ account data length ด้วย data size ที่ระบุไว้
      • (optional) withContext: boolean - ครอบ (wrap)​ ผลลัพท์ในรูปแบบ RpcResponse JSON objectopen in new window
    Response

    ตามปกติแล้ว getProgramAccounts จะคืนค่า array ของ JSON objects ที่มีโครงสร้างตามนี้:

    • pubkey: string - account pubkey ในรูปแบบของ base58 encoded string
    • account: object - JSON object ที่มี fields:
      • lamports: number, ตัวเลขของ lamports ที่มีใน account
      • owner: string, base58 encoded pubkey ของ program ที่ account ได้ assigned ไว้
      • data: string | object - data ที่เกี่ยวข้องกับ account อาจจะเป็นได้ทั้ง encoded binary data หรือ JSON format ขึ้นอยู่กับ encoding parameter
      • executable: boolean, ตัวบ่งชี้ว่า account นี้มี program
      • rentEpoch: number, epoch ที่ account นี้จะต้องจ่าย rent

    ลงลึก

    getProgramAccounts คือ RPC method ที่จะคืนค่าทุก accounts ที่ program เป็นเจ้าของ. เราสามารถใช้ getProgramAccounts สำหรับดึงข้อมูลได้หลายแบบ เช่น:

    • หาทุกๆ token accounts ของ wallet
    • หาทุกๆ token accounts ที่มี mint เดียวกัน(เช่น ทุกๆ คนที่ถือ token SRMopen in new window ไว้)
    • หาทุกๆ custom accounts ที่ใช้ program นี้(เช่น ทุกๆ คนที่ใช้ Mangoopen in new window)

    นอกจากจะมีประโยชน์แล้ว, getProgramAccounts ยังถูกเข้าใจผิดอยู่บ้าง เพราะด้วยข้อจำกัดของมัน การดึงข้อมูลที่ใช้ getProgramAccounts จะทำให้ RPC nodes ค้นหา data ขนาดใหญ่. การค้นหานั้นกินทั้ง memory และ resource มากๆ. ผลที่เกิดขึ้นคือถ้าเรียกใช้บ่อยเกินไป หรือใหญ่เกินไปจะทำให้เกิด connection timeouts ได้. ในตอนนี้ getProgramAccounts endpoint ยังไม่สนับสนุน pagination. ถ้าผลการค้นหาใหญ่เกินไปผลลัพท์จะถูกตัดทิ้ง.

    เพื่อหลีกหนีข้อจำกัดนี้, getProgramAccounts เลยมี parameters ให้ใช้: ชื่อ, dataSlice และ filters options memcmp และ dataSize. ถ้าใช้ parameters เหล่านี้, เราจะสามารถลดขอบเขตของการค้นหาให้แคบลงเพื่อควบคุม และประมาณขนาดของผลลัพท์ได้.

    ตัวอย่างทั่วไปของ getProgramAccounts ที่เกี่ยวข้องกับ SPL-Token Programopen in new window เช่น การค้นหาทุกๆ accounts ที่ Token Program เป็นเจ้าของโดยใช้ การค้นหาแบบปกติ จะทำให้ต้องไปค้นหาข้อมูลมากมาย แต่ถ้าเราใส่ parameters เข้าไปด้วยเราจะสามารถ request ได้อย่างประสิทธิภาพ และได้ data เฉพาะที่เราจะใช้.

    filters

    parameter ที่ใช้บ่อยๆ สำหรับ getProgramAccounts คือ filters array. ซึ่ง array นี้จะรับ filters 2 แบบคือ dataSize และ memcmp ก่อนที่จะใช้ filters นี้เราต้องรู้ก่อนว่า data ที่เราจะร้องขอมีรูปแบบยังไง และจัดเรียงไว้ยังไง.

    dataSize

    ในกรณีของ Token Program, เราจะเห็นว่า token accounts มีขนาด 165 bytesopen in new window. และ token account จะมี 8 fields ที่แตกต่างกันโดยแต่ละ field จะมีขนาด bytes ที่แน่นอน เราสามารถแสดง visualize ว่า data มีการวางรูปแบบยังไงโดยใช้รูปด้านล่าง.

    Account Size

    ถ้าเราต้องการหาทุกๆ token accounts โดยมี wallet address ของเราเป็นเจ้าของ, เราสามารถใส่ { dataSize: 165 } ใน filters เพื่อลดขอบเขตการค้นหาของเราให้เหลือเฉพาะ accounts ที่ขนาด 165 bytes เท่านั้น แต่เท่านี้ก็ยังไม่ดีพอ เราต้องต้องใส่ filter เข้าไปด้วยว่าเราเป็นเจ้าของ (owner) มันด้วย เราสามารถทำได้ด้วยการเพิ่ม memcmp filter เข้าไป.

    memcmp

    memcmp filter หรือ "memory comparison" filter, จะทำให้เราสามารถเปรียบเทียบ data ใน field ไหนก็ได้ที่เก็บอยู่ใน​ account ของเรา. โดยเฉพาะเราสามารถค้นหาเฉพาะ accounts ที่ตรงกับ bytes ที่ตำแหน่งใดๆ. memcmp ต้องการ 2 arguments:

    • offset: ตำแหน่งที่จะเริ่มเทียบ data มีขนาดเป็น bytes และแสดงเป็นจำนวนเต็ม.
    • bytes: คือ data ตรงกับ account's data. จะใช้ base-58 encoded string ขนาดไม่เกิน 129 bytes.

    แต่ต้องระวังไว้ว่า memcmp จะคืนค่ามาก็ต่อเมื่อเจอ bytes ตรงกันเท่านั้น ซึ่งในตอนนี้เรายังไม่สามารถเทียบหาค่าที่น้อยกว่า หรือมากกว่า bytes ที่เราใส่ไปได้

    ในตัวอย่าง Token Program อันต่อไป, เราสามารถกำหนดการค้นหาให้คืนค่ามาเฉพาะ token account ที่ตรงกับ wallet address ของเรา ถ้าเราลองดูที่ token account จะเห็นว่า 2 fields แรกบน token account คือ pubkeys, และแต่ละ pubkey จะมีขนาด 32 bytes โดยที่ owner จะอยู่ที่ field ที่ 2 เราจึงสามารถเริ่ม memcmp ที่ offset ที่ 32 bytes จากตรงนั้นเราก็สามารถมองหา account ที่ ower ตรงกับ wallet address ของเรา

    Account Size

    เราสามารถลอง query ได้ด้วยตัวอย่างด้านล่าง:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/th/integrations/index.html b/docs/.vuepress/dist/th/integrations/index.html
    index cbf1ad8d7..2e08e25c3 100644
    --- a/docs/.vuepress/dist/th/integrations/index.html
    +++ b/docs/.vuepress/dist/th/integrations/index.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    เริ่มต้นการใช้งาน (Integrations)

    คู่มือ Solana integrations จะมีตัวอย่าง และข้อมูลอ้างอิงที่จะใช้ในการพัฒนา protocols บน Solana

    ข้อดีของ Solana มาจากการที่มันสามารถ integrate กับ protocols อื่นๆ ได้บน infrastructure ที่มีอยู่แล้วเพื่อสิ่งที่ดีกว่า

    Composability คือหัวใจ

    การสร้าง program ให้ใช้งานง่าย และขยายตามความต้องการได้จะทำให้ทั้ง program และ Solana ecosystem โตขึ้น อย่าหาทำอะไรที่มันใช้ได้ดีอยู่แล้ว มาพัฒนาบน protocols ที่มีอยู่แล้วเพื่อขยายฐานผู้ใช้ของเรากันดีกว่า

    ดัดแปลง และสร้างบน programs อื่นๆ หรือบน libraries ร่วมกันปลดปล่อยความสามารถใหม่ๆ เพื่อ Solana กันดีกว่า

    Contributing

    ถ้าสนใจที่จะช่วยกันทำ integrations ให้ลองไปดูที่ contribution guidelinesopen in new window.

    Last Updated:
    Contributors: Todsaporn Banjerdkit
    +

    เริ่มต้นการใช้งาน (Integrations)

    คู่มือ Solana integrations จะมีตัวอย่าง และข้อมูลอ้างอิงที่จะใช้ในการพัฒนา protocols บน Solana

    ข้อดีของ Solana มาจากการที่มันสามารถ integrate กับ protocols อื่นๆ ได้บน infrastructure ที่มีอยู่แล้วเพื่อสิ่งที่ดีกว่า

    Composability คือหัวใจ

    การสร้าง program ให้ใช้งานง่าย และขยายตามความต้องการได้จะทำให้ทั้ง program และ Solana ecosystem โตขึ้น อย่าหาทำอะไรที่มันใช้ได้ดีอยู่แล้ว มาพัฒนาบน protocols ที่มีอยู่แล้วเพื่อขยายฐานผู้ใช้ของเรากันดีกว่า

    ดัดแปลง และสร้างบน programs อื่นๆ หรือบน libraries ร่วมกันปลดปล่อยความสามารถใหม่ๆ เพื่อ Solana กันดีกว่า

    Contributing

    ถ้าสนใจที่จะช่วยกันทำ integrations ให้ลองไปดูที่ contribution guidelinesopen in new window.

    Last Updated:
    Contributors: Todsaporn Banjerdkit
    diff --git a/docs/.vuepress/dist/th/integrations/jupiter.html b/docs/.vuepress/dist/th/integrations/jupiter.html index 79ef307bd..4212a06db 100644 --- a/docs/.vuepress/dist/th/integrations/jupiter.html +++ b/docs/.vuepress/dist/th/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    Jupiter คือ liquidity aggregator หลักของ Solana, สนับสนุน tokens มากมาย และมี route discovery ระหว่าง token pair ที่ดีที่สุดให้ด้วย

    การติดตั้ง

    @jup-ag/core คือ Core package เอาไว้ใช้ติดต่อกับ jupiter on-chain programs เพื่อทำการ swaps ระหว่าง token pairs ที่เป็นไปได้

    yarn add @jup-ag/core
    +    

    Jupiter

    Jupiter คือ liquidity aggregator หลักของ Solana, สนับสนุน tokens มากมาย และมี route discovery ระหว่าง token pair ที่ดีที่สุดให้ด้วย

    การติดตั้ง

    @jup-ag/core คือ Core package เอาไว้ใช้ติดต่อกับ jupiter on-chain programs เพื่อทำการ swaps ระหว่าง token pairs ที่เป็นไปได้

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    ดึงข้อมูลรายการ Token จาก Jupiter

    ดึงข้อมูลทุก tokens ที่สามารถ swap ด้วย jupiter สำหรับ network ใดๆ

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    วิธี use Jupiter API

    นี่คือวิธีที่ง่ายที่สุดที่จะใช้งาน jupiter programs เพื่อ swap คู่ tokens ใดๆ

    การติดตั้ง

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    หา Route Map

    API จะหา tokens ที่สามารถ swap ได้โดยใช้ the jupiter API. รานการของ token routes ที่เป็นไปได้จะเริ่ม fetch ตรงจุดนี้ และ allInputMints จะมีรายการของ Input Tokens mint address ที่เป็นไปได้ และ swappableOutputForSol จะมีรายการของทุก tokens ที่สามารถ swapp เป็น SOL ได้ในกรณีนี้

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/th/integrations/mango.html b/docs/.vuepress/dist/th/integrations/mango.html
    index 6adc83b69..ac09fe0f6 100644
    --- a/docs/.vuepress/dist/th/integrations/mango.html
    +++ b/docs/.vuepress/dist/th/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mango รวม lend, borrow, swap, และ leverage trade crypto assets ไว้ที่เดียวบน on-chain risk engine. เราสามารถต่อกับ Mango's on-chain program โดยใช้ Client API libraries. เรายังต้องการ Solana javascript API library ด้วย

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mango รวม lend, borrow, swap, และ leverage trade crypto assets ไว้ที่เดียวบน on-chain risk engine. เราสามารถต่อกับ Mango's on-chain program โดยใช้ Client API libraries. เรายังต้องการ Solana javascript API library ด้วย

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    วิธีดึงข้อมูล Mango Group

    mango group คือตะกร้า (basket) ของ cross-margined tokens. มันจะมีข้อมูลกว้างๆ ของ market เกี่ยวกับ tokens, serum dex markets, perp markets, oracles, insurance fund และ fees vaults. แต่ละ version ของ Mango Markets ใช้ Mango Group ที่แตกต่างกัน และมี tokens ที่แตกต่างกัน ใน v3 ปัจจุบันนั้นมีชื่อ group คือ mainnet.1 นี่คือตาราง table ที่แสดงข้อมูลกลุ่มต่างๆ:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    ถ้าเราต้องการใช้ v2 groups เราต้องใช้ v2 client library ซึ่งเราสามารถหามันได้ ที่นี่open in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    วิธีดึงข้อมูล Mango Group

    mango group คือตะกร้า (basket) ของ cross-margined tokens. มันจะมีข้อมูลกว้างๆ ของ market เกี่ยวกับ tokens, OpenBook dex markets, perp markets, oracles, insurance fund และ fees vaults. แต่ละ version ของ Mango Markets ใช้ Mango Group ที่แตกต่างกัน และมี tokens ที่แตกต่างกัน ใน v3 ปัจจุบันนั้นมีชื่อ group คือ mainnet.1 นี่คือตาราง table ที่แสดงข้อมูลกลุ่มต่างๆ:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    ถ้าเราต้องการใช้ v2 groups เราต้องใช้ v2 client library ซึ่งเราสามารถหามันได้ ที่นี่open in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    วิธีตั้ง spot order

    Mango ติดต่อกับ Serum Protocol เพื่อวาง spot orders บน markets เราจะวาง spot order ได้ถ้าทำตามนี้ เราสามารถหาข้ออมูลอ้างอิงของ placeSpotOrder function ได้ ที่นี่open in new window. Mango มี config file ที่มี่ข้อมูลเกี่ญซกับ groups, markets, tokens และ oracles, เราสามารถหาจ้อมูลได้ ที่นี่open in new window. เราได้ข้อมูลจาก file นั้นเพื่อหา group และ market ที่ถต้องการได้

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    วิธีตั้ง spot order

    Mango ติดต่อกับ OpenBook Protocol เพื่อวาง spot orders บน markets เราจะวาง spot order ได้ถ้าทำตามนี้ เราสามารถหาข้ออมูลอ้างอิงของ placeSpotOrder function ได้ ที่นี่open in new window. Mango มี config file ที่มี่ข้อมูลเกี่ญซกับ groups, markets, tokens และ oracles, เราสามารถหาจ้อมูลได้ ที่นี่open in new window. เราได้ข้อมูลจาก file นั้นเพื่อหา group และ market ที่ถต้องการได้

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    วิธี load bids

    Mango uses the market information from Serum Protocol to load bids. เราสามารถ load them directly from Serum to work with on Mango. เราสามารถ find out more about Serum's markets ที่นี่open in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    วิธี load bids

    Mango uses the market information from OpenBook Protocol to load bids. เราสามารถ load them directly from OpenBook to work with on Mango. เราสามารถ find out more about OpenBook's markets ที่นี่open in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    วิธีดึงข้อมูลราคาขาย (asks)

    Mango ใช้ข้อมูล market จาก Serum Protocol เพื่อดึงข้อมูลราคาขาย asks. เราสามารถดึงข้อมูลได้โดยตรงจาก Serum เพื่อทำงานบน Mango เราสามารถอ่านรายละเอียดเพิ่มเกี่ยวกับ Serum's markets ได้ ที่นี่open in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    วิธีดึงข้อมูลราคาขาย (asks)

    Mango ใช้ข้อมูล market จาก OpenBook Protocol เพื่อดึงข้อมูลราคาขาย asks. เราสามารถดึงข้อมูลได้โดยตรงจาก OpenBook เพื่อทำงานบน Mango เราสามารถอ่านรายละเอียดเพิ่มเกี่ยวกับ OpenBook's markets ได้ ที่นี่open in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/th/integrations/pyth.html b/docs/.vuepress/dist/th/integrations/pyth.html
    index 9150a1d8d..0ca3d379e 100644
    --- a/docs/.vuepress/dist/th/integrations/pyth.html
    +++ b/docs/.vuepress/dist/th/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pyth เป็น Oracle ที่เอาไว้ดึงข้อมูล financial และ crypto market โดย Pyth Oracle สามารถ ใช้ดึงข้อมูลได้ on-chain programs เพื่อการใช้งานที่หลากหลาย

    วิธีใช้ Pyth จาก Client

    Pyth มี JavaScript/TypeScript library เรียกว่า @pythnetwork/client ซึ่ง library นี้สามารถใช้อ่าน on-chain Pyth Data สำหรับ off-chain app, เช่นการแสดง Pyth price บน website. เรียนรู้เพิ่มเติมได้ ที่นี่open in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pyth เป็น Oracle ที่เอาไว้ดึงข้อมูล financial และ crypto market โดย Pyth Oracle สามารถ ใช้ดึงข้อมูลได้ on-chain programs เพื่อการใช้งานที่หลากหลาย

    วิธีใช้ Pyth จาก Client

    Pyth มี JavaScript/TypeScript library เรียกว่า @pythnetwork/client ซึ่ง library นี้สามารถใช้อ่าน on-chain Pyth Data สำหรับ off-chain app, เช่นการแสดง Pyth price บน website. เรียนรู้เพิ่มเติมได้ ที่นี่open in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    แหล่งข้อมูลอื่น

    Last Updated:
    Contributors: Todsaporn Banjerdkit
    +

    แหล่งข้อมูลอื่น

    Last Updated:
    Contributors: Todsaporn Banjerdkit
    diff --git a/docs/.vuepress/dist/th/integrations/react-native.html b/docs/.vuepress/dist/th/integrations/react-native.html index e16394d1e..975002bde 100644 --- a/docs/.vuepress/dist/th/integrations/react-native.html +++ b/docs/.vuepress/dist/th/integrations/react-native.html @@ -27,7 +27,7 @@ -

    React Native และ Solana

    React Native เป็น open-source UI software framework ใช้สำหรับ dev mobile, web และ desktop applications โดยนักพัฒนาจะสามารถใช้ React framework กับ native platform capabilities ได้ และการใช้กับ Solana SDK จะเป็น platform ที่ดีในการสร้าง native Crypto apps.

    ทางที่เร็วที่สุดในการที่จะเริ่มต้นกับ React Native และ Solana คือการใช้ Solana DApp Scaffold สำหรับ React Native.

    วิธีใช้ @solana/web3.js ใน React Native app

    ในตัวอย่างนี้เราจะได้เรียนรู้วิธีการสร้าง React Native app, การติดตั้ง และ configure @solana/web3.js SDK, และ dependencies ต่างๆ

    ถ้าเรามี app แล้วให้ข้ามไปที่ การติดตั้ง dependencies.

    สร้าง app ใหม่

    เราจะเริ่มจากการสร้าง React Native app โดยใช้ TypeScript, แล้ว cd เข้าไปใน project directory, ที่ที่เราจะ execute commands ต่างๆ.

    npx react-native init SolanaReactNative --template react-native-template-typescript
    +    

    React Native และ Solana

    React Native เป็น open-source UI software framework ใช้สำหรับ dev mobile, web และ desktop applications โดยนักพัฒนาจะสามารถใช้ React framework กับ native platform capabilities ได้ และการใช้กับ Solana SDK จะเป็น platform ที่ดีในการสร้าง native Crypto apps.

    ทางที่เร็วที่สุดในการที่จะเริ่มต้นกับ React Native และ Solana คือการใช้ Solana DApp Scaffold สำหรับ React Native.

    วิธีใช้ @solana/web3.js ใน React Native app

    ในตัวอย่างนี้เราจะได้เรียนรู้วิธีการสร้าง React Native app, การติดตั้ง และ configure @solana/web3.js SDK, และ dependencies ต่างๆ

    ถ้าเรามี app แล้วให้ข้ามไปที่ การติดตั้ง dependencies.

    สร้าง app ใหม่

    เราจะเริ่มจากการสร้าง React Native app โดยใช้ TypeScript, แล้ว cd เข้าไปใน project directory, ที่ที่เราจะ execute commands ต่างๆ.

    npx react-native init SolanaReactNative --template react-native-template-typescript
     cd SolanaReactNative
     

    ติดตั้ง dependencies

    ต่อไปเราจะติดตั้ง dependencies. เมื่อเราติดตั้ง Solana SDK, และนอกจากน้ีเรายังจะติดตั้ง package เพื่อ patch metro configuration, และ polyfills 2 ตัวที่เอาไว้ patch ในส่วนของ React Native environment.

    yarn add @solana/web3.js metro-config react-native-get-random-values react-native-url-polyfill
     

    Update index.js

    เพื่อ load polyfills, เราจะเปิด file index.js ที่ root ของ project และเพิ่ม 2 บรรทัดนี้เข้าไปที่ 2 บรรทัดแรกของ file:

    import 'react-native-get-random-values';
    diff --git a/docs/.vuepress/dist/th/integrations/serum.html b/docs/.vuepress/dist/th/integrations/serum.html
    index 005113856..c231972aa 100644
    --- a/docs/.vuepress/dist/th/integrations/serum.html
    +++ b/docs/.vuepress/dist/th/integrations/serum.html
    @@ -22,13 +22,13 @@
     				document.documentElement.classList.toggle('dark', true);
     			}
         
    -    Serum | คู่มือ Solana
    -    
    +    OpenBook | คู่มือ Solana
    +    
         
       
       
    -    

    Serum

    Serum คือ protocol สำหรับ decentralized exchanges สร้างอยู่บน Solana. เราสามารถใช้ Serum เพื่อสร้าง markets, get order books, trade, และอื่นๆ อีกมากมาย

    วิธีดึงข้อมูล Serum market

    market บน Serum จะมี orders และความสามารถในการสร้าง orders บน Serum สำหรับการจะทำอะไรบน Serum เราต้องรู้ว่า market ไหนที่เราใช้งานอยู่ด้วย

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBook คือ protocol สำหรับ decentralized exchanges สร้างอยู่บน Solana. เราสามารถใช้ OpenBook เพื่อสร้าง markets, get order books, trade, และอื่นๆ อีกมากมาย

    วิธีดึงข้อมูล OpenBook market

    market บน OpenBook จะมี orders และความสามารถในการสร้าง orders บน OpenBook สำหรับการจะทำอะไรบน OpenBook เราต้องรู้ว่า market ไหนที่เราใช้งานอยู่ด้วย

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    วิธีดึงข้อมูล Serum order books

    Serum markets ประกอบด้วย order books ที่มี bids และ asks. เราสามารค้นหาข้อมูลพวกนี้ได้ทำให้เรารู้ว่า market ตอนนี้เป็นยังไง และตัดสินใจว่าจะทำอะไรต่อไปได้

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    วิธีดึงข้อมูล OpenBook order books

    OpenBook markets ประกอบด้วย order books ที่มี bids และ asks. เราสามารค้นหาข้อมูลพวกนี้ได้ทำให้เรารู้ว่า market ตอนนี้เป็นยังไง และตัดสินใจว่าจะทำอะไรต่อไปได้

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    วิธีดึงข้อมูล open orders ในปัจจุบัน

    ในมุมมองของ trader เราต้องการรู้ open orders ปัจจุบันของเราบน market. เราสามารถค้นหา open orders ของเราเอง หรือของคนอื่นๆ ได้ด้วย Serum.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    วิธีดึงข้อมูล open orders ในปัจจุบัน

    ในมุมมองของ trader เราต้องการรู้ open orders ปัจจุบันของเราบน market. เราสามารถค้นหา open orders ของเราเอง หรือของคนอื่นๆ ได้ด้วย OpenBook.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/th/integrations/strata.html b/docs/.vuepress/dist/th/integrations/strata.html
    index 8982392c0..cbede946d 100644
    --- a/docs/.vuepress/dist/th/integrations/strata.html
    +++ b/docs/.vuepress/dist/th/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strata คือ protocol สำหรับปล่อยขาย tokens บน Solana. เราสามารถใช้ Strata เพื่อปล่อยขาย fungible token ใดๆ ไม่ว่าจะเป็น social tokens หรือ dao และ gamefi tokens. เราสามารถใช้ strata ร่วมกับอะไรก็ตามที่มีการคิดราคาแบบ fixed price mechanics เพื่อให้ได้ dynamic pricing mechanics ตัวอย่างเช่น Metaplex CandyMachine.

    สำหรับข้อมูลเชิงลึกไปดูได้ ที่นี่. และเราสามารถ ใช้ gui ได้ที่ Strata Launchpad

    วิธีสร้าง fully managed token

    fully-managed Strata token คือ token ที่มีการจัดการ liquidity โดย protocol ข้อได้เปรียบคือเราสามารถเปิดการ trade token ได้ในทันทีโดยไม่ต้องมี pools หรือ liquidity providers. โดยที่ fully-managed token นั้นก็คือ spl token ทั่วไปกับ metaplex token metadata และ associated bonding curve. ซึ่ง bonding curve จะจัดการเรื่อง liquidity, pricing, และ supply ของ token นั้น

    Press </> button to view full source
    import {
    +    

    Strata

    Strata คือ protocol สำหรับปล่อยขาย tokens บน Solana. เราสามารถใช้ Strata เพื่อปล่อยขาย fungible token ใดๆ ไม่ว่าจะเป็น social tokens หรือ dao และ gamefi tokens. เราสามารถใช้ strata ร่วมกับอะไรก็ตามที่มีการคิดราคาแบบ fixed price mechanics เพื่อให้ได้ dynamic pricing mechanics ตัวอย่างเช่น Metaplex CandyMachine.

    สำหรับข้อมูลเชิงลึกไปดูได้ ที่นี่. และเราสามารถ ใช้ gui ได้ที่ Strata Launchpad

    วิธีสร้าง fully managed token

    fully-managed Strata token คือ token ที่มีการจัดการ liquidity โดย protocol ข้อได้เปรียบคือเราสามารถเปิดการ trade token ได้ในทันทีโดยไม่ต้องมี pools หรือ liquidity providers. โดยที่ fully-managed token นั้นก็คือ spl token ทั่วไปกับ metaplex token metadata และ associated bonding curve. ซึ่ง bonding curve จะจัดการเรื่อง liquidity, pricing, และ supply ของ token นั้น

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    วิธี buy และ sell a token

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    วิธี bootstrap liquidity

    Strata สามารถขาย tokens โดยที่เราสามารถควบคุม supply เองได้ ซึ่งมันจะมีประโยชน์สำหรับการทำ liquidity bootstrapping ก่อนจะ list token ของเราบน dex เราสามารถอ่านเพิ่มเติมได้ ที่นี่open in new window หรือปล่อย token ของเราเองได้ที่ Strata Launchpad

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/th/integrations/switchboard.html b/docs/.vuepress/dist/th/integrations/switchboard.html
    index a33d79274..362e0667a 100644
    --- a/docs/.vuepress/dist/th/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/th/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboard เป็น Oracle protocol ที่ทำให้นักพัฒนาสามารถเพิ่มแหล่งข้อมูล on-chain สำหรับการใช้งานที่หลากหลาย เช่น price feeds, NFT floor prices, sport statistics, หรือแม้แต่การสุ่มที่ตรวจสอบได้ (verifiable randomness) ในกรณีทั่วไป Switchboard ก็คือแหล่งข้อมูล off-chain ที่นักพัฒนาสามารถเรียกใช้เพื่อเชื่อมโยงข้อมูลที่เชื่อถือได้บน on-chain และเพื่อเป็นกำลังสำคัญของ web3 และ DeFi ในยุคถัดไป

    Data Feeds

    Switchboard มี JavaScript/TypeScript library เรียกว่า @switchboard-xyz/switchboard-v2 . โดย library นี้สามารถใช้ในการเข้าถึง On-chain data จาก data feeds ที่มีอยู่แล้ว หรือ publish feeds ที่เราเลือกมาเองได้ เรียนรู้เพิ่มเติมได้ ที่นี่open in new window

    การอ่านข้อมูลจาก aggregator feed

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboard เป็น Oracle protocol ที่ทำให้นักพัฒนาสามารถเพิ่มแหล่งข้อมูล on-chain สำหรับการใช้งานที่หลากหลาย เช่น price feeds, NFT floor prices, sport statistics, หรือแม้แต่การสุ่มที่ตรวจสอบได้ (verifiable randomness) ในกรณีทั่วไป Switchboard ก็คือแหล่งข้อมูล off-chain ที่นักพัฒนาสามารถเรียกใช้เพื่อเชื่อมโยงข้อมูลที่เชื่อถือได้บน on-chain และเพื่อเป็นกำลังสำคัญของ web3 และ DeFi ในยุคถัดไป

    Data Feeds

    Switchboard มี JavaScript/TypeScript library เรียกว่า @switchboard-xyz/switchboard-v2 . โดย library นี้สามารถใช้ในการเข้าถึง On-chain data จาก data feeds ที่มีอยู่แล้ว หรือ publish feeds ที่เราเลือกมาเองได้ เรียนรู้เพิ่มเติมได้ ที่นี่open in new window

    การอ่านข้อมูลจาก aggregator feed

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    Create a new aggregator feed

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Create a new aggregator feed

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    วิธีสร้าง Feed จาก Publisher

    ใน Switchboard documentation จะมีวิธีสร้าง feed จาก publisher อย่างละเอียด ลองไปดูได้ ที่นี่open in new window.

    Oracles

    คุณสมบัติพิเศษของ Switchboard คือเราสามารถสร้าง oracle ของเราเองได้ที่ local

    สร้าง oracle

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    วิธีสร้าง Feed จาก Publisher

    ใน Switchboard documentation จะมีวิธีสร้าง feed จาก publisher อย่างละเอียด ลองไปดูได้ ที่นี่open in new window.

    Oracles

    คุณสมบัติพิเศษของ Switchboard คือเราสามารถสร้าง oracle ของเราเองได้ที่ local

    สร้าง oracle

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    Run the container โดยใช้ docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) คือ pseudorandom function ในการสุ่ม public-key ที่สามารถพิสูจน์ได้ว่า outputs นั้นผ่านการคำนวณมาอบ่างถูกต้อง

    การอ่าน VRF account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Run the container โดยใช้ docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    Verifiable Random Function (VRF) คือ pseudorandom function ในการสุ่ม public-key ที่สามารถพิสูจน์ได้ว่า outputs นั้นผ่านการคำนวณมาอบ่างถูกต้อง

    การอ่าน VRF account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    Creating a VRF account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Creating a VRF account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    ขอ Randomness จาก vrf account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    ขอ Randomness จาก vrf account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/th/integrations/web3auth.html b/docs/.vuepress/dist/th/integrations/web3auth.html
    index 76d9b0287..e86732ca2 100644
    --- a/docs/.vuepress/dist/th/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/th/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Wallet

    wallet คืออะไร?

    crypto wallet คือ digital wallet ที่ใช้ติดต่อกับ blockchain เพื่อ sign, verify, และส่ง transactions ในปัจจุบันมี crypto wallet solutions มากมายในตลาด, ตั้งแต่ simple-to-use web apps จนไปถึง hardware security solutions ที่ซับซ้อน.

    Social Logins บน Solana

    Web3Authopen in new window ทำให้ users สามารถ sign in โดยใช้ Web2 OAuth Providers(Facebook, Google, Twitter etc.) ที่มีอยู่แล้วไปยัง Web3 dapps. มันจะใช้งายง่าย และใช้วิธี non-custodialopen in new window เพื่อจัดการ assets และ identity. มันทำให้ technical barriers ลดลง และลดการเรียนรู้เรื่อง digital ownership สำหรับ users ทุกคนโดยซ่อนการจัดการ private key ไว้

    แนวทางการ Integration

    ในตัวอย่างนี้จะเป็นแนวทางง่ายๆ ในการ integrate social logins เข้าไปใน dapp ของเรา

    การติดตั้ง Dependencies

    เริ่มโดยใช้ wallet ที่มี dapp, เราสามารถลง @toruslabs/solana-embed. โดยใช้ package managers ต่างๆ เช่น yarn และ npm เพื่อติดตั้ง.

    yarn add @toruslabs/solana-embed
    +    

    Wallet

    wallet คืออะไร?

    crypto wallet คือ digital wallet ที่ใช้ติดต่อกับ blockchain เพื่อ sign, verify, และส่ง transactions ในปัจจุบันมี crypto wallet solutions มากมายในตลาด, ตั้งแต่ simple-to-use web apps จนไปถึง hardware security solutions ที่ซับซ้อน.

    Social Logins บน Solana

    Web3Authopen in new window ทำให้ users สามารถ sign in โดยใช้ Web2 OAuth Providers(Facebook, Google, Twitter etc.) ที่มีอยู่แล้วไปยัง Web3 dapps. มันจะใช้งายง่าย และใช้วิธี non-custodialopen in new window เพื่อจัดการ assets และ identity. มันทำให้ technical barriers ลดลง และลดการเรียนรู้เรื่อง digital ownership สำหรับ users ทุกคนโดยซ่อนการจัดการ private key ไว้

    แนวทางการ Integration

    ในตัวอย่างนี้จะเป็นแนวทางง่ายๆ ในการ integrate social logins เข้าไปใน dapp ของเรา

    การติดตั้ง Dependencies

    เริ่มโดยใช้ wallet ที่มี dapp, เราสามารถลง @toruslabs/solana-embed. โดยใช้ package managers ต่างๆ เช่น yarn และ npm เพื่อติดตั้ง.

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    การใช้ SDK และ initialize

    ในตัวอย่าง code สั้นๆ ด้านล่าง เราจะสร้าง instance ของ solana-embed แล้ว init มันด้วย testing environment ที่ใช้ solana testnet. เราสามารถส่งค่าตัวเลือกเพื่อ config ในระหว่าง init wallet interface. เราสามารถอ่าน solana-embed api-referenceopen in new window เพื่อเรียนรู้เพิ่มเติม

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/th/references/basic-transactions.html b/docs/.vuepress/dist/th/references/basic-transactions.html
    index 1a743c417..8f52517b3 100644
    --- a/docs/.vuepress/dist/th/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/th/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    วิธีเปลี่ยน compute budget สำหรับ transaction

    Compute budget สำหรับหนึ่ง transaction สามารถเปลี่ยนได้โดยการเพิ่ม instruction ด้วยการเรียกไปที่ Compute Budget Program โดยปกติแล้ว compute budget คือค่าของ 200k compute units * จำนวน instructions, ด้วยค่าสูงสุดที่ 1.4M compute units ถ้าเราใช้ compute น้อยเราก็จะจ่าย transaction costs น้อยลงไปด้วย

    Note: การที่จะเปลี่ยน compute budget สำหรับ transaction คุณต้องไปทำที่ หนึ่งในสามคำสั่งแรกของ instruction ใน transaction ตรง instruction ที่เอาไว้เปลี่ยนค่า budget

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    วิธีเปลี่ยน compute budget สำหรับ transaction

    Compute budget สำหรับหนึ่ง transaction สามารถเปลี่ยนได้โดยการเพิ่ม instruction ด้วยการเรียกไปที่ Compute Budget Program โดยปกติแล้ว compute budget คือค่าของ 200k compute units * จำนวน instructions, ด้วยค่าสูงสุดที่ 1.4M compute units ถ้าเราใช้ compute น้อยเราก็จะจ่าย transaction costs น้อยลงไปด้วย

    Note: การที่จะเปลี่ยน compute budget สำหรับ transaction คุณต้องไปทำที่ หนึ่งในสามคำสั่งแรกของ instruction ใน transaction ตรง instruction ที่เอาไว้เปลี่ยนค่า budget

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/th/references/local-development.html b/docs/.vuepress/dist/th/references/local-development.html
    index 04ca9f3b6..1aab906d5 100644
    --- a/docs/.vuepress/dist/th/references/local-development.html
    +++ b/docs/.vuepress/dist/th/references/local-development.html
    @@ -345,12 +345,12 @@
     

    การ load มาที่ localnet ของเราสามารถทำได้โดยการส่ง account's file และ address เป้าหมาย(ไปยัง local cluster) ตอนเริ่มเปิดใช้ validator:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    วิธี load programs from mainnet

    และเช่นกันเราสามารถ download Serum Dex v3 program ได้:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    วิธี load programs from mainnet

    และเช่นกันเราสามารถ download OpenBook Dex v3 program ได้:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    การ load มาที่ localnet ของเราสามารถทำได้โดยการส่ง account's file และ address เป้าหมาย(ไปยัง local cluster) ตอนเริ่มเปิดใช้ validator:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Partially Sorted, Todsaporn Banjerdkit
    diff --git a/docs/.vuepress/dist/tr/guides/get-program-accounts.html b/docs/.vuepress/dist/tr/guides/get-program-accounts.html index 69ae538c8..79b2b1ead 100644 --- a/docs/.vuepress/dist/tr/guides/get-program-accounts.html +++ b/docs/.vuepress/dist/tr/guides/get-program-accounts.html @@ -27,7 +27,7 @@ -

    Get Program Accounts

    Bir programın sahip olduğu tüm account'ları döndüren bir RPC yöntemidir. Şu anda pagination desteklenmemektedir. getProgramAccounts requests, yanıt süresini iyileştirmek ve yalnızca amaçlanan sonuçları döndürmek için dataSlice ve/veya filters parametrelerini içermelidir.

    Facts (Özet Bilgiler)

    :::Parametreler

    • programId: string - Sorgulanacak programın public key’i, base58 kodlu bir string olarak sağlanır
    • (isteğe bağlı) configOrCommitment: object - Aşağıdaki isteğe bağlı alanları içeren yapılandırma parametreleri:
      • (isteğe bağlı) commitment: string - Durum Taahhüdüopen in new window
      • (isteğe bağlı) encoding: string - Account verileri için encode: base58, base64 veya jsonParsed’dır. Web3js kullanıcılarının bunun yerine getParsedProgramAccountsopen in new window kullanması gerektiğini unutmayın.
      • (isteğe bağlı) dataSlice: object - Geri döndürülen account verilerini aşağıdakilere göre sınırlayın:
        • offset: number - Geri döndürmeye başlamak için account verisindeki bayt sayısı
        • length: number - Geri döndürülecek account verilerinin bayt sayısı
      • (isteğe bağlı) filters: array - Aşağıdaki filters nesnelerini kullanarak sonuçları filtreleyin:
        • memcmp: object - Bir dizi baytı account verileriyle eşleştirin:
          • offset: number - Karşılaştırmaya başlamak için account verilerinin bayt sayısı
          • bytes: string - 129 bayt ile sınırlı base58 kodlu string olarak eşleşecek veriler
        • dataSize: number - Account data uzunluğunu sağlanan veri boyutuyla karşılaştırır
      • (isteğe bağlı) withContext: boolean - Sonucu bir RpcResponse JSON nesnesine sarmalayınopen in new window
    Response

    Varsayılan olarak getProgramAccounts, aşağıdaki yapıya sahip bir dizi JSON nesnesi döndürür:

    • pubkey: string - Base58 kodlu bir string olarak account'ın pubkeyi
    • account: object - aşağıdaki alt alanlara sahip bir JSON nesnesi:
    • lamports: number, account'a atanan lamport sayısı
    • owner: string, Hesabın atandığı programın base58 kodlu yayın anahtarı
    • data: string | object - account'la ilişkili veriler, sağlanan kodlama parametresine bağlı olarak kodlanmış binary data veya JSON formatıdır
    • executable: boolean, Hesap bir program içerp içermediğinin göstergesi
    • rentEpoch: number, Bu account'ın bir sonraki rent borcunun olacağı epoch :::

    Deep Dive (Derinlemesine Bakış)

    getProgramAccounts, bir programın sahip olduğu tüm account'ları döndüren çok yönlü bir RPC methodudur. getProgramAccounts'u aşağıdakileri bulmak gibi bir dizi yararlı sorgu için kullanabiliriz:

    • Belirli bir cüzdan için tüm token account'ları
    • Belirli bir mint için tüm token account'ları (tüm SRMopen in new window sahipleri)
    • Belirli bir program için tüm private account'lar (tüm Mangoopen in new window kullanıcıları)

    Kullanışlılığına rağmen, getProgramAccounts, mevcut kısıtlamaları nedeniyle genellikle yanlış anlaşılır. getProgramAccounts tarafından desteklenen sorguların çoğu, büyük veri kümelerini taramak için RPC node’larını gerektirir. Bu taramalar hem bellek hem de kaynak yoğundur. Sonuç olarak, çok sık veya çok geniş kapsamlı çağrılar bağlantı zaman aşımlarına neden olabilir. Ayrıca, bu yazının yazıldığı sırada getProgramAccounts uç noktası sayfalandırmayı desteklemez. Bir sorgunun sonuçları çok büyükse, yanıt kesilecektir.

    Bu mevcut kısıtlamaları aşmak için getProgramAccounts bir dizi faydalı parametre sunar: dataSlice, memcmp ve dataSize, filters seçenekleri. Bu parametrelerin kombinasyonlarını sağlayarak sorgularımızın kapsamını yönetilebilir ve öngörülebilir boyutlara indirebiliriz.

    Yaygın bir getProgramAccounts örneği, SPL-Token Programıopen in new window ile etkileşimi içerir. Token Programının sahip olduğu tüm account'ları bir basic call ile request etmek, çok büyük miktarda veri gerektirecektir. Ancak parametreleri sağlayarak, yalnızca kullanmayı düşündüğümüz verileri verimli bir şekilde request edebiliriz.

    filters

    getProgramAccounts ile kullanılacak en yaygın parametre filters array’idir. Bu array, dataSize ve memcmp olmak üzere iki tür filtre kabul eder. Bu filtrelerden herhangi birini kullanmadan önce, request ettiğimiz verilerin nasıl düzenlendiğini ve serileştirildiğini bilmeliyiz.

    dataSize

    Token Programı için, token account'larının 165 bayt uzunluğundaopen in new window olduğunu görebiliriz. Spesifik olarak, bir belirteç account'ının her biri tahmin edilebilir sayıda bayt gerektiren sekiz farklı alanı vardır. Aşağıdaki çizimi kullanarak bu verilerin nasıl düzenlendiğini görselleştirebiliriz.

    Account Size

    Cüzdan adresimize ait tüm token account'larını bulmak istiyorsak, sorgumuzun kapsamını tam olarak 165 bayt uzunluğundaki account'lara daraltmak için filters dizimize { dataSize: 165 } ekleyebiliriz. Ancak bu tek başına yetersiz olacaktır. Ayrıca adresimize ait account'ları arayan bir filtre eklememiz gerekir. Bunu memcmp filtresiyle başarabiliriz

    memcmp

    memcmp filtresi veya "bellek karşılaştırma" filtresi, account'ımızda depolanan herhangi bir alandaki verileri karşılaştırmamıza olanak tanır. Spesifik olarak, yalnızca belirli bir konumda belirli bir bayt kümesiyle eşleşen account'ları sorgulayabiliriz. memcmp iki argüman gerektirir:

    • offset: Verileri karşılaştırmaya başlayacağınız konum. Bu konum bayt cinsinden ölçülür ve bir tamsayı olarak ifade edilir.
    • bytes: Hesabın verileriyle eşleşmesi gereken veriler. Bu, base-58 kodlu bir string olarak temsil edilir, 129 bayttan daha az ile sınırlandırılmalıdır.

    Memcmp'nin yalnızca bytes ile tam olarak eşleşen sonuçları döndüreceğini unutmamak önemlidir. Şu anda, sağladığımız bytes’dan daha küçük veya daha büyük değerler için karşılaştırmaları desteklememektedir.

    Token Programı örneğimize uygun olarak, sorgumuzu yalnızca cüzdan adresimize ait olan token account'larını döndürecek şekilde değiştirebiliriz. Bir belirteç account'ına baktığımızda, bir belirteç account'ında depolanan ilk iki alanın her ikisinin de pubkey olduğunu ve her bir pubkey'nin 32 bayt uzunluğunda olduğunu görebiliriz. Owner’ın ikinci alan olduğu göz önüne alındığında, memcmp'mize 32 baytlık bir offset ile başlamalıyız. Buradan, owner alanı cüzdan adresimizle eşleşen account'ları arayacağız.

    Account Size

    Bu sorguyu aşağıdaki örnek üzerinden çağırabiliriz:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Get Program Accounts

    Bir programın sahip olduğu tüm account'ları döndüren bir RPC yöntemidir. Şu anda pagination desteklenmemektedir. getProgramAccounts requests, yanıt süresini iyileştirmek ve yalnızca amaçlanan sonuçları döndürmek için dataSlice ve/veya filters parametrelerini içermelidir.

    Facts (Özet Bilgiler)

    :::Parametreler

    • programId: string - Sorgulanacak programın public key’i, base58 kodlu bir string olarak sağlanır
    • (isteğe bağlı) configOrCommitment: object - Aşağıdaki isteğe bağlı alanları içeren yapılandırma parametreleri:
      • (isteğe bağlı) commitment: string - Durum Taahhüdüopen in new window
      • (isteğe bağlı) encoding: string - Account verileri için encode: base58, base64 veya jsonParsed’dır. Web3js kullanıcılarının bunun yerine getParsedProgramAccountsopen in new window kullanması gerektiğini unutmayın.
      • (isteğe bağlı) dataSlice: object - Geri döndürülen account verilerini aşağıdakilere göre sınırlayın:
        • offset: number - Geri döndürmeye başlamak için account verisindeki bayt sayısı
        • length: number - Geri döndürülecek account verilerinin bayt sayısı
      • (isteğe bağlı) filters: array - Aşağıdaki filters nesnelerini kullanarak sonuçları filtreleyin:
        • memcmp: object - Bir dizi baytı account verileriyle eşleştirin:
          • offset: number - Karşılaştırmaya başlamak için account verilerinin bayt sayısı
          • bytes: string - 129 bayt ile sınırlı base58 kodlu string olarak eşleşecek veriler
        • dataSize: number - Account data uzunluğunu sağlanan veri boyutuyla karşılaştırır
      • (isteğe bağlı) withContext: boolean - Sonucu bir RpcResponse JSON nesnesine sarmalayınopen in new window
    Response

    Varsayılan olarak getProgramAccounts, aşağıdaki yapıya sahip bir dizi JSON nesnesi döndürür:

    • pubkey: string - Base58 kodlu bir string olarak account'ın pubkeyi
    • account: object - aşağıdaki alt alanlara sahip bir JSON nesnesi:
    • lamports: number, account'a atanan lamport sayısı
    • owner: string, Hesabın atandığı programın base58 kodlu yayın anahtarı
    • data: string | object - account'la ilişkili veriler, sağlanan kodlama parametresine bağlı olarak kodlanmış binary data veya JSON formatıdır
    • executable: boolean, Hesap bir program içerp içermediğinin göstergesi
    • rentEpoch: number, Bu account'ın bir sonraki rent borcunun olacağı epoch :::

    Deep Dive (Derinlemesine Bakış)

    getProgramAccounts, bir programın sahip olduğu tüm account'ları döndüren çok yönlü bir RPC methodudur. getProgramAccounts'u aşağıdakileri bulmak gibi bir dizi yararlı sorgu için kullanabiliriz:

    • Belirli bir cüzdan için tüm token account'ları
    • Belirli bir mint için tüm token account'ları (tüm SRMopen in new window sahipleri)
    • Belirli bir program için tüm private account'lar (tüm Mangoopen in new window kullanıcıları)

    Kullanışlılığına rağmen, getProgramAccounts, mevcut kısıtlamaları nedeniyle genellikle yanlış anlaşılır. getProgramAccounts tarafından desteklenen sorguların çoğu, büyük veri kümelerini taramak için RPC node’larını gerektirir. Bu taramalar hem bellek hem de kaynak yoğundur. Sonuç olarak, çok sık veya çok geniş kapsamlı çağrılar bağlantı zaman aşımlarına neden olabilir. Ayrıca, bu yazının yazıldığı sırada getProgramAccounts uç noktası sayfalandırmayı desteklemez. Bir sorgunun sonuçları çok büyükse, yanıt kesilecektir.

    Bu mevcut kısıtlamaları aşmak için getProgramAccounts bir dizi faydalı parametre sunar: dataSlice, memcmp ve dataSize, filters seçenekleri. Bu parametrelerin kombinasyonlarını sağlayarak sorgularımızın kapsamını yönetilebilir ve öngörülebilir boyutlara indirebiliriz.

    Yaygın bir getProgramAccounts örneği, SPL-Token Programıopen in new window ile etkileşimi içerir. Token Programının sahip olduğu tüm account'ları bir basic call ile request etmek, çok büyük miktarda veri gerektirecektir. Ancak parametreleri sağlayarak, yalnızca kullanmayı düşündüğümüz verileri verimli bir şekilde request edebiliriz.

    filters

    getProgramAccounts ile kullanılacak en yaygın parametre filters array’idir. Bu array, dataSize ve memcmp olmak üzere iki tür filtre kabul eder. Bu filtrelerden herhangi birini kullanmadan önce, request ettiğimiz verilerin nasıl düzenlendiğini ve serileştirildiğini bilmeliyiz.

    dataSize

    Token Programı için, token account'larının 165 bayt uzunluğundaopen in new window olduğunu görebiliriz. Spesifik olarak, bir belirteç account'ının her biri tahmin edilebilir sayıda bayt gerektiren sekiz farklı alanı vardır. Aşağıdaki çizimi kullanarak bu verilerin nasıl düzenlendiğini görselleştirebiliriz.

    Account Size

    Cüzdan adresimize ait tüm token account'larını bulmak istiyorsak, sorgumuzun kapsamını tam olarak 165 bayt uzunluğundaki account'lara daraltmak için filters dizimize { dataSize: 165 } ekleyebiliriz. Ancak bu tek başına yetersiz olacaktır. Ayrıca adresimize ait account'ları arayan bir filtre eklememiz gerekir. Bunu memcmp filtresiyle başarabiliriz

    memcmp

    memcmp filtresi veya "bellek karşılaştırma" filtresi, account'ımızda depolanan herhangi bir alandaki verileri karşılaştırmamıza olanak tanır. Spesifik olarak, yalnızca belirli bir konumda belirli bir bayt kümesiyle eşleşen account'ları sorgulayabiliriz. memcmp iki argüman gerektirir:

    • offset: Verileri karşılaştırmaya başlayacağınız konum. Bu konum bayt cinsinden ölçülür ve bir tamsayı olarak ifade edilir.
    • bytes: Hesabın verileriyle eşleşmesi gereken veriler. Bu, base-58 kodlu bir string olarak temsil edilir, 129 bayttan daha az ile sınırlandırılmalıdır.

    Memcmp'nin yalnızca bytes ile tam olarak eşleşen sonuçları döndüreceğini unutmamak önemlidir. Şu anda, sağladığımız bytes’dan daha küçük veya daha büyük değerler için karşılaştırmaları desteklememektedir.

    Token Programı örneğimize uygun olarak, sorgumuzu yalnızca cüzdan adresimize ait olan token account'larını döndürecek şekilde değiştirebiliriz. Bir belirteç account'ına baktığımızda, bir belirteç account'ında depolanan ilk iki alanın her ikisinin de pubkey olduğunu ve her bir pubkey'nin 32 bayt uzunluğunda olduğunu görebiliriz. Owner’ın ikinci alan olduğu göz önüne alındığında, memcmp'mize 32 baytlık bir offset ile başlamalıyız. Buradan, owner alanı cüzdan adresimizle eşleşen account'ları arayacağız.

    Account Size

    Bu sorguyu aşağıdaki örnek üzerinden çağırabiliriz:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/tr/references/local-development.html b/docs/.vuepress/dist/tr/references/local-development.html
    index 738761530..493a91d55 100644
    --- a/docs/.vuepress/dist/tr/references/local-development.html
    +++ b/docs/.vuepress/dist/tr/references/local-development.html
    @@ -54,9 +54,9 @@
     
     

    Doğrulayıcıyı başlatırken account'ın dosya ve hedef adresini (yerel kümede) ileterek yerel ağınıza yükleme yapılır:

    solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     
    -

    How to load programs from mainnet (Programlar mainnet’ten nasıl yüklenir)

    Benzer şekilde Serum Dex v3 programını da indirmek mümkündür:

    solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    +

    How to load programs from mainnet (Programlar mainnet’ten nasıl yüklenir)

    Benzer şekilde OpenBook Dex v3 programını da indirmek mümkündür:

    solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
     
    -

    Yerel ağınıza yükleme, doğrulayıcıyı başlatırken programın dosya ve hedef adresini (yerel kümede) ileterek yapılır:

    solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    +

    Yerel ağınıza yükleme, doğrulayıcıyı başlatırken programın dosya ve hedef adresini (yerel kümede) ileterek yapılır:

    solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset
     
     
    Last Updated:
    Contributors: rbeyzas
    diff --git a/docs/.vuepress/dist/vi/guides/account-maps.html b/docs/.vuepress/dist/vi/guides/account-maps.html index 673b38882..a1568e076 100644 --- a/docs/.vuepress/dist/vi/guides/account-maps.html +++ b/docs/.vuepress/dist/vi/guides/account-maps.html @@ -593,7 +593,7 @@ Ok(()) } -

    Ở phía người dùng, họ có thể sử dụng PublicKey.findProgramAddress() để tìm ra địa chỉ của BlogPost mong muốn thông qua địa chỉ ví đầu vào. Các địa chỉ vừa tìm thấy có thể được truyền vào connection.getAccountInfo() để truy vấn dữ liệu trong Account tương ứng. Ví dụ bên dưới sẽ minh hoạ điều đó:

    Press </> button to view full source
    import * as borsh from "@project-serum/borsh";
    +

    Ở phía người dùng, họ có thể sử dụng PublicKey.findProgramAddress() để tìm ra địa chỉ của BlogPost mong muốn thông qua địa chỉ ví đầu vào. Các địa chỉ vừa tìm thấy có thể được truyền vào connection.getAccountInfo() để truy vấn dữ liệu trong Account tương ứng. Ví dụ bên dưới sẽ minh hoạ điều đó:

    Press </> button to view full source
    import * as borsh from "@project-OpenBook/borsh";
     import { PublicKey } from "@solana/web3.js";
     
     export const BLOG_ACCOUNT_DATA_LAYOUT = borsh.struct([
    @@ -919,7 +919,7 @@
       TransactionInstruction,
     } from "@solana/web3.js";
     
    -import * as borsh from "@project-serum/borsh";
    +import * as borsh from "@project-OpenBook/borsh";
     
     const MY_PROGRAM_ID = new PublicKey(
       "FwcG3yKuAkCfX68q9GPykNWDaaPjdZFaR1Tgr8qSxaEa"
    diff --git a/docs/.vuepress/dist/vi/guides/get-program-accounts.html b/docs/.vuepress/dist/vi/guides/get-program-accounts.html
    index 56232e291..681f4b085 100644
    --- a/docs/.vuepress/dist/vi/guides/get-program-accounts.html
    +++ b/docs/.vuepress/dist/vi/guides/get-program-accounts.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Đọc Program Account

    getProgramAccounts là một phương thức RPC giúp lấy dữ liệu của tất cả các Account được sở hữu bởi Program. Lưu ý, phân trang vẫn chưa được hỗ trợ tại thời điểm hiện tại. Việc gọi getProgramAccounts nên có thêm các tham số dataSlice và/hoặc filters để cải thiện thời gian trả về với kết quả mong muốn.

    Có thể bạn chưa biết

    Tham số

    • programId: string - Khoá công khai của Program cần truy vấn và biểu diễn dưới dạng base58
    • (Tuỳ chọn) configOrCommitment: object - Tham số cài đặt có chứa các trường tuỳ chọn sau:
      • (Tuỳ chọn) commitment: string - State commitmentopen in new window
      • (Tuỳ chọn) encoding: string - Kiểu mã hoá dữ liệu, một trong các kiểu sau: base58, base64, jsonParsed. Lưu ý, người dùng web3js nên sử dụng getParsedProgramAccountsopen in new window
      • (Tuỳ chọn) dataSlice: object - Giới hạn các Account trả về dựa trên:
        • offset: number - Vị trí bắt đầu cho dữ liệu được trả về của Account
        • length: number - Độ dài dữ liệu của Account cần trả về và được tính từ vị trí bắt đầu
      • (Tuỳ chọn) filters: array - Lọc các kết quả bằng cách sử dụng các bộ lọc sau:
        • memcmp: object - Lọc bằng cách so sánh một chuỗi dữ liệu dưới dạng các bytes với dữ liệu Account
          • offset: number - Vị trí bắt đầu trong dữ liệu Account dùng để so sánh
          • bytes: string - Dữ liệu cần so sánh, được truyền vào dưới dạng base58 và không quá 129 bytes
        • dataSize: number - Lọc theo độ lớn của dữ liệu Account
      • (Tuỳ chọn) withContext: boolean - Đóng gói kết quả vào một đối tượng RpcResponse JSONopen in new window
    Trả về

    Mặc định getProgramAccounts sẽ trả về một mảng các đối tượng JSON với cấu trúc như sau:

    • pubkey: string - Địa chỉ của Account và được mã hoá base58
    • account: object - Là một đối tượng JSON với các trường con như sau:
      • lamports: number, số dư lamports của Account
      • owner: string, Địa chỉ của Program sở hữu Account và được mã hoá base58
      • data: string | object - Dữ liệu của Account và được biểu diễn dưới dạng, hoặc là binary, hoặc là JSON, tuỳ vào tham số encoding lúc truyền vào
      • executable: boolean, Nhãn đánh dấu nếu Account này chứa một Program và có thể thực thi
      • rentEpoch: number, Kỳ hạn thuê tiếp theo của Account

    Chi tiết

    getProgramAccounts là một phương thức RPC rất linh hoạt và có khả năng trả về tất cả các Account được sở hữu bởi một Program. Chúng ta có thể sử dụng getProgramAccounts cho nhiều loại truy vấn khác nhau, ví dụ như:

    • Tất cả các Account của một ví cụ thể
    • Tất cả các Account cho một mint (hoặc thường được gọi là token đối với các blockchain khác) (i.e. Tất cả người giữ token SRMopen in new window)
    • Tất cả các Account theo ý muốn của một Program cụ thể (i.e. Tất cả Account người dùng của ứng dụng Mangoopen in new window)

    Mặc dù hữu dụng là vậy, getProgramAccounts thường bị dùng sai vì các hạn chế hiện tại. Nhiều câu truy vấn được hỗ trợ bởi getProgramAccounts yêu cầu các nốt RPC phải quét một khối lượng rất lớn các dữ liệu. Những câu truy vấn như vậy không chỉ lớn về dung lượng dữ liệu và còn lớn về khối lượng tính toán. Tất yếu, việc gọi quá nhiều về cả tần suất và khối lượng dẫn đến kết nối sẽ bị ngắt. Ngoài ra, tại thời điểm cuốn sách được viết, getProgramAccounts vẫn chưa hỗ trợ phân trang. Nếu kết quả truy vấn quá lớn, nó sẽ được cắt bỏ đi.

    Để tránh các hạn chế này, getProgramAccounts giới thiệu các tham số dùng cho việc lọc và sơ chế kết quả, ví dụ như: dataSlice, filters với tuỳ chọn memcmpdataSize. Bằng cách kết hợp các tham số trên, chúng ta có thể giảm thiểu phạm vi truy vấn với kích thước dữ liệu được kiểm soát và dễ đoán hơn.

    Một ví dụ thường thấy của getProgramAccounts là tương tác với SPL-Token Programopen in new window. Truy vấn tất cả các Account được sở hữu bởi Token Program với một câu truy vấn thuần tuý không có lọc sẽ dẫn đến một số lượng dữ liệu trả về khổng lồ. Thay vào đó, bằng cách bổ sung các tham số, chúng ta có thể truy vấn một cách hiệu quả chỉ những dữ liệu mình cần.

    filters

    Tham số phổ biến nhất được dùng kèm với getProgramAccounts chính là mảng các filters. Mảng này chấp nhận 2 kiểu lọc là dataSizememcmp. Trước khi sử dụng một trong hai, chúng ta nên hiểu được dữ liệu cần truy vấn sẽ có chứa dữ liệu gì? hình thái ra sao? tuần tự hoá như thế nào?

    dataSize

    Trong trường hợp Token Program, chúng ta có thể thấy rằng độ dài của Token Account là 165 bytesopen in new window. Đặc biệt, một Token Account có 8 trường con, với mỗi trường có độ dài vùng nhớ biết trước. Chúng ta có thể mường tượng cách dữ liệu được sắp xếp bằng minh hoạ sau.

    Account Size

    Nếu chúng ta muốn tìm tất cả Token Account sở hữu bởi chỉ riêng ví của mình, chúng ta có thể thêm { dataSize: 165 }filters để thu hẹp pham vi câu truy vấn và chỉ lấy những Account có độ dài chính xác 165 bytes. Tuy vậy, nó vẫn là chưa đủ. Chúng ta cần thêm một điều kiện để chỉ lọc các Account được sở hữu bởi ví của mình. Để là được điều đó, chúng ta phải sử dụng memcmp.

    memcmp

    Điều kiện lọc memcmp, hoặc "memory comparison" (phép so sánh vùng nhớ), cho phép chúng ta so sánh dữ liệu truyền vào với bất kỳ vùng nhớ nào được lưu trong Account. Đặc biệt, chúng ta có thể truy vấn chỉ những Account mà khớp với một đoạn dữ liệu tại một vị trí cụ thể. memcmp yêu cầu 2 tham số:

    • offset: Vị trí bắt đầu để so sánh dữ liệu. Vị trí này thường được tính theo bytes và biểu diễn dưới dạng số nguyên.
    • bytes: Dữ liệu dùng để đối chiếu với dữ liệu trong Account. Dữ liệu này nên được biểu diễn dưới dạng base58 và không quá 129 bytes.

    Một điều quan trọng cần lưu ý là memcmp chỉ trả về các kết quả khớp chính xác trên từng bytes. Và hiện tại không hỗ trợ các phép so sánh lớn hơn hoặc nhỏ hơn cho bytes.

    Sử dụng lại ví dụ Token Program bên trên, chúng ta điều chỉnh câu truy vấn chỉ trả về những Token Account mà được sở hữu bởi chính mình. Khi nhìn vào một Token Account, chúng ta biết được 2 trường đầu tiên lưu trong Token Account là 2 khoá công khai với độ dài là 32 bytes. Biết rằng owner là trường thứ 2, chúng ta nên khởi tạo memcmp với offset là 32. Từ đó, chúng ta sẽ lọc được những Account của mình bằng cách truyền địa chỉ ví vào bytes.

    Account Size

    Chúng ta có thể gọi câu truy vấn này thông qua ví dụ sau:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
    +    

    Đọc Program Account

    getProgramAccounts là một phương thức RPC giúp lấy dữ liệu của tất cả các Account được sở hữu bởi Program. Lưu ý, phân trang vẫn chưa được hỗ trợ tại thời điểm hiện tại. Việc gọi getProgramAccounts nên có thêm các tham số dataSlice và/hoặc filters để cải thiện thời gian trả về với kết quả mong muốn.

    Có thể bạn chưa biết

    Tham số

    • programId: string - Khoá công khai của Program cần truy vấn và biểu diễn dưới dạng base58
    • (Tuỳ chọn) configOrCommitment: object - Tham số cài đặt có chứa các trường tuỳ chọn sau:
      • (Tuỳ chọn) commitment: string - State commitmentopen in new window
      • (Tuỳ chọn) encoding: string - Kiểu mã hoá dữ liệu, một trong các kiểu sau: base58, base64, jsonParsed. Lưu ý, người dùng web3js nên sử dụng getParsedProgramAccountsopen in new window
      • (Tuỳ chọn) dataSlice: object - Giới hạn các Account trả về dựa trên:
        • offset: number - Vị trí bắt đầu cho dữ liệu được trả về của Account
        • length: number - Độ dài dữ liệu của Account cần trả về và được tính từ vị trí bắt đầu
      • (Tuỳ chọn) filters: array - Lọc các kết quả bằng cách sử dụng các bộ lọc sau:
        • memcmp: object - Lọc bằng cách so sánh một chuỗi dữ liệu dưới dạng các bytes với dữ liệu Account
          • offset: number - Vị trí bắt đầu trong dữ liệu Account dùng để so sánh
          • bytes: string - Dữ liệu cần so sánh, được truyền vào dưới dạng base58 và không quá 129 bytes
        • dataSize: number - Lọc theo độ lớn của dữ liệu Account
      • (Tuỳ chọn) withContext: boolean - Đóng gói kết quả vào một đối tượng RpcResponse JSONopen in new window
    Trả về

    Mặc định getProgramAccounts sẽ trả về một mảng các đối tượng JSON với cấu trúc như sau:

    • pubkey: string - Địa chỉ của Account và được mã hoá base58
    • account: object - Là một đối tượng JSON với các trường con như sau:
      • lamports: number, số dư lamports của Account
      • owner: string, Địa chỉ của Program sở hữu Account và được mã hoá base58
      • data: string | object - Dữ liệu của Account và được biểu diễn dưới dạng, hoặc là binary, hoặc là JSON, tuỳ vào tham số encoding lúc truyền vào
      • executable: boolean, Nhãn đánh dấu nếu Account này chứa một Program và có thể thực thi
      • rentEpoch: number, Kỳ hạn thuê tiếp theo của Account

    Chi tiết

    getProgramAccounts là một phương thức RPC rất linh hoạt và có khả năng trả về tất cả các Account được sở hữu bởi một Program. Chúng ta có thể sử dụng getProgramAccounts cho nhiều loại truy vấn khác nhau, ví dụ như:

    • Tất cả các Account của một ví cụ thể
    • Tất cả các Account cho một mint (hoặc thường được gọi là token đối với các blockchain khác) (i.e. Tất cả người giữ token SRMopen in new window)
    • Tất cả các Account theo ý muốn của một Program cụ thể (i.e. Tất cả Account người dùng của ứng dụng Mangoopen in new window)

    Mặc dù hữu dụng là vậy, getProgramAccounts thường bị dùng sai vì các hạn chế hiện tại. Nhiều câu truy vấn được hỗ trợ bởi getProgramAccounts yêu cầu các nốt RPC phải quét một khối lượng rất lớn các dữ liệu. Những câu truy vấn như vậy không chỉ lớn về dung lượng dữ liệu và còn lớn về khối lượng tính toán. Tất yếu, việc gọi quá nhiều về cả tần suất và khối lượng dẫn đến kết nối sẽ bị ngắt. Ngoài ra, tại thời điểm cuốn sách được viết, getProgramAccounts vẫn chưa hỗ trợ phân trang. Nếu kết quả truy vấn quá lớn, nó sẽ được cắt bỏ đi.

    Để tránh các hạn chế này, getProgramAccounts giới thiệu các tham số dùng cho việc lọc và sơ chế kết quả, ví dụ như: dataSlice, filters với tuỳ chọn memcmpdataSize. Bằng cách kết hợp các tham số trên, chúng ta có thể giảm thiểu phạm vi truy vấn với kích thước dữ liệu được kiểm soát và dễ đoán hơn.

    Một ví dụ thường thấy của getProgramAccounts là tương tác với SPL-Token Programopen in new window. Truy vấn tất cả các Account được sở hữu bởi Token Program với một câu truy vấn thuần tuý không có lọc sẽ dẫn đến một số lượng dữ liệu trả về khổng lồ. Thay vào đó, bằng cách bổ sung các tham số, chúng ta có thể truy vấn một cách hiệu quả chỉ những dữ liệu mình cần.

    filters

    Tham số phổ biến nhất được dùng kèm với getProgramAccounts chính là mảng các filters. Mảng này chấp nhận 2 kiểu lọc là dataSizememcmp. Trước khi sử dụng một trong hai, chúng ta nên hiểu được dữ liệu cần truy vấn sẽ có chứa dữ liệu gì? hình thái ra sao? tuần tự hoá như thế nào?

    dataSize

    Trong trường hợp Token Program, chúng ta có thể thấy rằng độ dài của Token Account là 165 bytesopen in new window. Đặc biệt, một Token Account có 8 trường con, với mỗi trường có độ dài vùng nhớ biết trước. Chúng ta có thể mường tượng cách dữ liệu được sắp xếp bằng minh hoạ sau.

    Account Size

    Nếu chúng ta muốn tìm tất cả Token Account sở hữu bởi chỉ riêng ví của mình, chúng ta có thể thêm { dataSize: 165 }filters để thu hẹp pham vi câu truy vấn và chỉ lấy những Account có độ dài chính xác 165 bytes. Tuy vậy, nó vẫn là chưa đủ. Chúng ta cần thêm một điều kiện để chỉ lọc các Account được sở hữu bởi ví của mình. Để là được điều đó, chúng ta phải sử dụng memcmp.

    memcmp

    Điều kiện lọc memcmp, hoặc "memory comparison" (phép so sánh vùng nhớ), cho phép chúng ta so sánh dữ liệu truyền vào với bất kỳ vùng nhớ nào được lưu trong Account. Đặc biệt, chúng ta có thể truy vấn chỉ những Account mà khớp với một đoạn dữ liệu tại một vị trí cụ thể. memcmp yêu cầu 2 tham số:

    • offset: Vị trí bắt đầu để so sánh dữ liệu. Vị trí này thường được tính theo bytes và biểu diễn dưới dạng số nguyên.
    • bytes: Dữ liệu dùng để đối chiếu với dữ liệu trong Account. Dữ liệu này nên được biểu diễn dưới dạng base58 và không quá 129 bytes.

    Một điều quan trọng cần lưu ý là memcmp chỉ trả về các kết quả khớp chính xác trên từng bytes. Và hiện tại không hỗ trợ các phép so sánh lớn hơn hoặc nhỏ hơn cho bytes.

    Sử dụng lại ví dụ Token Program bên trên, chúng ta điều chỉnh câu truy vấn chỉ trả về những Token Account mà được sở hữu bởi chính mình. Khi nhìn vào một Token Account, chúng ta biết được 2 trường đầu tiên lưu trong Token Account là 2 khoá công khai với độ dài là 32 bytes. Biết rằng owner là trường thứ 2, chúng ta nên khởi tạo memcmp với offset là 32. Từ đó, chúng ta sẽ lọc được những Account của mình bằng cách truyền địa chỉ ví vào bytes.

    Account Size

    Chúng ta có thể gọi câu truy vấn này thông qua ví dụ sau:

    import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
     import { clusterApiUrl, Connection } from "@solana/web3.js";
     
     (async () => {
    diff --git a/docs/.vuepress/dist/vi/integrations/index.html b/docs/.vuepress/dist/vi/integrations/index.html
    index 14591a562..b424ba7ad 100644
    --- a/docs/.vuepress/dist/vi/integrations/index.html
    +++ b/docs/.vuepress/dist/vi/integrations/index.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Getting Started with Integrations

    The Solana Cookbook integrations provides a set of examples and references for anyone to build on top of other protocols on Solana.

    The power of Solana comes from the ability to integrate with other protocols, building on top of existing infrastructure to make something better.

    Composability is Key

    Making your program easy to use and extend will grow both your program and the entire Solana ecosystem. Don't reinvent the wheel, build on top of existing protocols and bootstrap your userbase.

    Adapt and build on top of other programs or libraries and unlock new capabilities for Solana.

    Contributing

    If you are interested in contributing to integrations, please checkout the contribution guidelinesopen in new window.

    Last Updated:
    Contributors: tuphan-dn
    +

    Getting Started with Integrations

    The Solana Cookbook integrations provides a set of examples and references for anyone to build on top of other protocols on Solana.

    The power of Solana comes from the ability to integrate with other protocols, building on top of existing infrastructure to make something better.

    Composability is Key

    Making your program easy to use and extend will grow both your program and the entire Solana ecosystem. Don't reinvent the wheel, build on top of existing protocols and bootstrap your userbase.

    Adapt and build on top of other programs or libraries and unlock new capabilities for Solana.

    Contributing

    If you are interested in contributing to integrations, please checkout the contribution guidelinesopen in new window.

    Last Updated:
    Contributors: tuphan-dn
    diff --git a/docs/.vuepress/dist/vi/integrations/jupiter.html b/docs/.vuepress/dist/vi/integrations/jupiter.html index 2499e785b..d5189369e 100644 --- a/docs/.vuepress/dist/vi/integrations/jupiter.html +++ b/docs/.vuepress/dist/vi/integrations/jupiter.html @@ -27,7 +27,7 @@ -

    Jupiter

    Jupiter is the key liquidity aggregator for Solana, offering the widest range of tokens and best route discovery between any token pair.

    Installation

    @jup-ag/core is the Core package used to interact with jupiter on-chain programs to perform swaps between two possible token pairs.

    yarn add @jup-ag/core
    +    

    Jupiter

    Jupiter is the key liquidity aggregator for Solana, offering the widest range of tokens and best route discovery between any token pair.

    Installation

    @jup-ag/core is the Core package used to interact with jupiter on-chain programs to perform swaps between two possible token pairs.

    yarn add @jup-ag/core
     
    npm install @jup-ag/core
     

    Fetching Token list from Jupiter

    All the possible tokens that can be swapped with jupiter for a given network is being fetched.

    Press </> button to view full source
    import { Jupiter, RouteInfo, TOKEN_LIST_URL } from "@jup-ag/core";
     import { Connection, PublicKey } from "@solana/web3.js";
    @@ -258,7 +258,7 @@
         ],
         [network]
       );
    -  const endpoint = "https://solana-api.projectserum.com";
    +  const endpoint = "https://solana-api.projectOpenBook.com";
     
       return (
         <ConnectionProvider endpoint={endpoint}>
    @@ -510,11 +510,11 @@
     
     

    How to use Jupiter API

    This is the easiest way to interact with jupiter programs to swap any 2 provided tokens.

    Installation

    yarn i @solana/web3.js
     yarn i cross-fetch
    -yarn i @project-serum/anchor
    +yarn i @project-OpenBook/anchor
     yarn i bs58
     
    npm i @solana/web3.js
     npm i cross-fetch
    -npm i @project-serum/anchor
    +npm i @project-OpenBook/anchor
     npm i bs58
     

    Getting the Route Map

    This API retrieves all the available tokens that can be swapped using the jupiter API. A list of all possible token routes is being fetched here and allInputMints contains the list of all possible Input Tokens by mint address and swappableOutputForSol contains all the possible tokens that can be swapped for SOL in this case.

    Press </> button to view full source
    const routeMap = await(
       await fetch("https://quote-api.jup.ag/v1/route-map")
    diff --git a/docs/.vuepress/dist/vi/integrations/mango.html b/docs/.vuepress/dist/vi/integrations/mango.html
    index 3aa63b7f8..067424c9b 100644
    --- a/docs/.vuepress/dist/vi/integrations/mango.html
    +++ b/docs/.vuepress/dist/vi/integrations/mango.html
    @@ -27,9 +27,9 @@
         
       
       
    -    

    Mango Markets

    Mango provides a single venue to lend, borrow, swap, and leverage trade cryptoassets through an on-chain risk engine. You can connect to Mango's on-chain program using the Client API libraries. You'll also need the Solana javascript API library.

    "@blockworks-foundation/mango-client": "^3.3.27",
    +    

    Mango Markets

    Mango provides a single venue to lend, borrow, swap, and leverage trade cryptoassets through an on-chain risk engine. You can connect to Mango's on-chain program using the Client API libraries. You'll also need the Solana javascript API library.

    "@blockworks-foundation/mango-client": "^3.3.27",
     "@solana/web3.js": "^1.37.0"
    -

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, serum dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +

    How to get a Mango Group

    A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, OpenBook dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is mainnet.1. Here's a table showing the various groups:

    GroupVersionCluster
    mainnet.1v3mainnet
    devnet.2v3devnet
    devnet.3v3devnet
    BTC_ETH_SOL_SRM_USDCv2mainnet & devnet
    BTC_ETH_USDTv2devnet
    BTC_ETH_USDCv2testnet

    Note

    If you wish to use the v2 groups, you'll have to use the v2 client library. You can find it hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
     import {
       IDS,
       MangoClient,
    @@ -240,9 +240,9 @@
       tokenAccount.publicKey,
       Number(4)
     );
    -

    How to place a spot order

    Mango interacts with Serum Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function hereopen in new window. Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it hereopen in new window. We use information from that file to find the right group and market.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
    +

    How to place a spot order

    Mango interacts with OpenBook Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function hereopen in new window. Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it hereopen in new window. We use information from that file to find the right group and market.

    Press </> button to view full source
    import { useWallet } from "@solana/wallet-adapter-react";
     import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -282,7 +282,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       await client.placeSpotOrder(
         mangoGroup,
    @@ -305,8 +305,8 @@
       3,
       3.5
     );
    -

    How to load bids

    Mango uses the market information from Serum Protocol to load bids. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to load bids

    Mango uses the market information from OpenBook Protocol to load bids. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       Config,
    @@ -330,13 +330,13 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const bids = market.loadBids(connection);
     })();
     

    How to load asks

    Mango uses the market information from Serum Protocol to load asks. You can load them directly from Serum to work with on Mango. You can find out more about Serum's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to load asks

    Mango uses the market information from OpenBook Protocol to load asks. You can load them directly from OpenBook to work with on Mango. You can find out more about OpenBook's markets hereopen in new window

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     import {
       IDS,
       MangoClient,
    @@ -361,7 +361,7 @@
         connection,
         marketConfig.publicKey,
         {},
    -    groupConfig.serumProgramId
    +    groupConfig.OpenBookProgramId
       );
       const asks = await market.loadBids(connection);
     })();
    diff --git a/docs/.vuepress/dist/vi/integrations/pyth.html b/docs/.vuepress/dist/vi/integrations/pyth.html
    index 5a18fbbc0..13a469c32 100644
    --- a/docs/.vuepress/dist/vi/integrations/pyth.html
    +++ b/docs/.vuepress/dist/vi/integrations/pyth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Pyth

    Pyth is an Oracle used to get real-world financial and crypto market data. Pyth Oracle can be used by on-chain programs in consuming data for a variety of use cases.

    How to use Pyth in Client

    Pyth provides a JavaScript/TypeScript library called @pythnetwork/client. This library can be used to read on-chain Pyth Data for off-chain applications, such as displaying the Pyth price on a website. Learn more about this hereopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
    +    

    Pyth

    Pyth is an Oracle used to get real-world financial and crypto market data. Pyth Oracle can be used by on-chain programs in consuming data for a variety of use cases.

    How to use Pyth in Client

    Pyth provides a JavaScript/TypeScript library called @pythnetwork/client. This library can be used to read on-chain Pyth Data for off-chain applications, such as displaying the Pyth price on a website. Learn more about this hereopen in new window

    Press </> button to view full source
    import * as web3 from "@solana/web3.js";
     import * as pyth from "@pythnetwork/client";
     
     (async () => {
    @@ -102,7 +102,7 @@
     

    Other Resources

    Last Updated:
    Contributors: tuphan-dn
    +

    Other Resources

    Last Updated:
    Contributors: tuphan-dn
    diff --git a/docs/.vuepress/dist/vi/integrations/serum.html b/docs/.vuepress/dist/vi/integrations/serum.html index 7c5803095..e4a78b321 100644 --- a/docs/.vuepress/dist/vi/integrations/serum.html +++ b/docs/.vuepress/dist/vi/integrations/serum.html @@ -22,13 +22,13 @@ document.documentElement.classList.toggle('dark', true); } - Serum | Toàn tập Solana - + OpenBook | Toàn tập Solana + -

    Serum

    Serum is a protocol for decentralized exchanges built on Solana. You can use Serum to create new markets, get order books, trade, and more.

    How to get a Serum market

    A market on Serum contains all the orders and capabilities to make orders on Serum. For everything you do on Serum you need to know the market you are working with.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +    

    OpenBook

    OpenBook is a protocol for decentralized exchanges built on Solana. You can use OpenBook to create new markets, get order books, trade, and more.

    How to get a OpenBook market

    A market on OpenBook contains all the orders and capabilities to make orders on OpenBook. For everything you do on OpenBook you need to know the market you are working with.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       const marketAddress = new PublicKey(
    @@ -50,8 +50,8 @@
       );
     })();
     

    How to get Serum order books

    Serum markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to get OpenBook order books

    OpenBook markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let marketAddress = new PublicKey(
    @@ -83,8 +83,8 @@
     for (let [price, size] of asks.getL2(20)) {
       console.log(price, size);
     }
    -

    How to get current open orders

    As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with Serum.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    -import { Market } from "@project-serum/serum";
    +

    How to get current open orders

    As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market with OpenBook.

    Press </> button to view full source
    import { Connection, PublicKey } from "@solana/web3.js";
    +import { Market } from "@project-OpenBook/OpenBook";
     
     (async () => {
       let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
    diff --git a/docs/.vuepress/dist/vi/integrations/strata.html b/docs/.vuepress/dist/vi/integrations/strata.html
    index c2548d177..c36dcf187 100644
    --- a/docs/.vuepress/dist/vi/integrations/strata.html
    +++ b/docs/.vuepress/dist/vi/integrations/strata.html
    @@ -27,11 +27,11 @@
         
       
       
    -    

    Strata

    Strata is a protocol for launching tokens built on Solana. You can use Strata to launch any kind of fungible token, ranging from social tokens to dao and gamefi tokens. You can also compose strata with anything that uses fixed price mechanics to get dynamic pricing mechanics, for example the Metaplex CandyMachine.

    More in-depth docs are available here. You can also use the gui at Strata Launchpad

    How to create a fully managed token

    A fully-managed Strata token is a token where the liquidity is managed by the protocol. The upshot is that you immediately get a tradeable token, with no need for pools or liquidity providers. A fully-managed token is a normal spl token with metaplex token metadata and an associated bonding curve. The bonding curve manages the liquidity, pricing, and supply of that token.

    Press </> button to view full source
    import {
    +    

    Strata

    Strata is a protocol for launching tokens built on Solana. You can use Strata to launch any kind of fungible token, ranging from social tokens to dao and gamefi tokens. You can also compose strata with anything that uses fixed price mechanics to get dynamic pricing mechanics, for example the Metaplex CandyMachine.

    More in-depth docs are available here. You can also use the gui at Strata Launchpad

    How to create a fully managed token

    A fully-managed Strata token is a token where the liquidity is managed by the protocol. The upshot is that you immediately get a tradeable token, with no need for pools or liquidity providers. A fully-managed token is a normal spl token with metaplex token metadata and an associated bonding curve. The bonding curve manages the liquidity, pricing, and supply of that token.

    Press </> button to view full source
    import {
       SplTokenBonding,
       ExponentialCurveConfig,
     } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     import { NATIVE_MINT } from "@solana/spl-token";
     
     (async () => {
    @@ -77,7 +77,7 @@
       buyTargetRoyaltyPercentage: 5,
     });
     

    How to buy and sell a token

    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -104,7 +104,7 @@
       slippage: 0.05,
     });
     
    Press </> button to view full source
    import { SplTokenBonding } from "@strata-foundation/spl-token-bonding";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    @@ -121,7 +121,7 @@
       slippage: 0.05,
     });
     

    How to bootstrap liquidity

    Strata can also sell tokens where you would like to manually manage the supply. This can be useful for liquidity bootstrapping before listing your token on a dex. You can read more about these hereopen in new window or launch your own at Strata Launchpad

    Press </> button to view full source
    import { MarketplaceSdk } from "@strata-foundation/marketplace-sdk";
    -import * as anchor from "@project-serum/anchor";
    +import * as anchor from "@project-OpenBook/anchor";
     
     (async () => {
       const provider = anchor.getProvider();
    diff --git a/docs/.vuepress/dist/vi/integrations/switchboard.html b/docs/.vuepress/dist/vi/integrations/switchboard.html
    index 506f2e16c..39fc2b12c 100644
    --- a/docs/.vuepress/dist/vi/integrations/switchboard.html
    +++ b/docs/.vuepress/dist/vi/integrations/switchboard.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Switchboard

    Switchboard is an Oracle protocol that enables developers to source data on-chain for a variety of use cases such as price feeds, NFT floor prices, sport statistics, or even verifiable randomness. In a general sense, Switchboard is an off-chain resource developers can invoke to bridge high integrity data on-chain and power the next generation of web3 and DeFi.

    Data Feeds

    Switchboard provides a JavaScript/TypeScript library called @switchboard-xyz/switchboard-v2 . This library can be used to reach On-chain data from existing data feeds or publish your own custom feeds. Learn more about this hereopen in new window

    Read data from an aggregator feed

    Press </> button to view full source
    import {
    +    

    Switchboard

    Switchboard is an Oracle protocol that enables developers to source data on-chain for a variety of use cases such as price feeds, NFT floor prices, sport statistics, or even verifiable randomness. In a general sense, Switchboard is an off-chain resource developers can invoke to bridge high integrity data on-chain and power the next generation of web3 and DeFi.

    Data Feeds

    Switchboard provides a JavaScript/TypeScript library called @switchboard-xyz/switchboard-v2 . This library can be used to reach On-chain data from existing data feeds or publish your own custom feeds. Learn more about this hereopen in new window

    Read data from an aggregator feed

    Press </> button to view full source
    import {
       clusterApiUrl,
       Connection,
       Keypair,
    @@ -66,7 +66,7 @@
       publicKey: aggregatorKey,
     });
     const result: any = await aggregatorAccount.getLatestValue();
    -

    Create a new aggregator feed

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Create a new aggregator feed

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       AggregatorAccount,
    @@ -190,7 +190,7 @@
     let val:f64 = aggregator
         .get_result()?
         .try_into()?;
    -

    How to Create a Feed from the Publisher

    The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out hereopen in new window.

    Oracles

    Switchboard's unique feature is that it allows you to create your own oracle and run it locally.

    Create an oracle

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    How to Create a Feed from the Publisher

    The official Switchboard documentation has an in-depth walk-through of how to create a feed from the publisher. Check it out hereopen in new window.

    Oracles

    Switchboard's unique feature is that it allows you to create your own oracle and run it locally.

    Create an oracle

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -255,7 +255,7 @@
     secrets:
       PAYER_SECRETS:
         file: /filesystem/path/to/keypair.json
    -

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Run the container using docker-compose up

    Oracle Config

    Env VariableDefinition
    ORACLE_KEYRequired
    Type - Public Key
    Description - Public key of the oracle account that has been granted permissions to use an oracle queue
    HEARTBEAT_INTERVALOptional
    Type - Number (seconds)
    Default - 30
    Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 15
    GCP_CONFIG_BUCKETOptional
    Type - GCP Resource Path
    Default - Looks for configs.json in the current working directory. If not found, no config is loaded.
    Description - Contains API keys for private API endpoints
    UNWRAP_STAKE_THRESHOLDOptional
    Type - Number (SOL amount, Ex. 1.55)
    Default - 0, disabled.
    Description - The Solana balance amount to trigger an unwrap stake action. When an oracle's Solana balance falls below the set threshold, the node will automatically unwrap funds from the oracle's staking wallet, leaving at least 0.1 wSOL or 10% more than the queue's minimum stake requirement.

    Verifiable Random Function(VRF)

    A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly

    Reading a VRF account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -290,7 +290,7 @@
     let result = value[0] % 256000 as u128;
     

    Creating a VRF account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Creating a VRF account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    @@ -349,7 +349,7 @@
       authority: vrfClientKey, // vrf authority
       keypair: vrfSecret,
     });
    -

    Request Randomness from vrf account

    Press </> button to view full source
    import * as anchor from "@project-serum/anchor";
    +

    Request Randomness from vrf account

    Press </> button to view full source
    import * as anchor from "@project-OpenBook/anchor";
     import { Keypair } from "@solana/web3.js";
     import {
       loadSwitchboardProgram,
    diff --git a/docs/.vuepress/dist/vi/integrations/web3auth.html b/docs/.vuepress/dist/vi/integrations/web3auth.html
    index 32dea1a4b..6bd07e4e9 100644
    --- a/docs/.vuepress/dist/vi/integrations/web3auth.html
    +++ b/docs/.vuepress/dist/vi/integrations/web3auth.html
    @@ -27,7 +27,7 @@
         
       
       
    -    

    Wallet

    What is a wallet?

    A crypto wallet is a digital wallet used to interact with the blockchain. It allows you to sign, verify, and send transactions. There are many crypto wallet solutions present on the market, ranging from simple-to-use web apps to more complex hardware security solutions.

    Social Logins on Solana

    Web3Authopen in new window allows users to sign in using their existing Web2 OAuth Providers(Facebook, Google, Twitter etc.) into Web3 dapps. It provides a user-friendly and non-custodialopen in new window approach to managing assets and identity. It removes technical barriers and reduces the learning curve for digital ownership for all users by providing a wrapper around private key management.

    Integration Guide

    This tutorial will guide you over a basic example to integrate social logins in your dapp.

    Installing Dependencies

    To start using the wallet with a dapp, you can install @toruslabs/solana-embed. You can use popular package managers like yarn and npm to download them.

    yarn add @toruslabs/solana-embed
    +    

    Wallet

    What is a wallet?

    A crypto wallet is a digital wallet used to interact with the blockchain. It allows you to sign, verify, and send transactions. There are many crypto wallet solutions present on the market, ranging from simple-to-use web apps to more complex hardware security solutions.

    Social Logins on Solana

    Web3Authopen in new window allows users to sign in using their existing Web2 OAuth Providers(Facebook, Google, Twitter etc.) into Web3 dapps. It provides a user-friendly and non-custodialopen in new window approach to managing assets and identity. It removes technical barriers and reduces the learning curve for digital ownership for all users by providing a wrapper around private key management.

    Integration Guide

    This tutorial will guide you over a basic example to integrate social logins in your dapp.

    Installing Dependencies

    To start using the wallet with a dapp, you can install @toruslabs/solana-embed. You can use popular package managers like yarn and npm to download them.

    yarn add @toruslabs/solana-embed
     
    npm install --save @toruslabs/solana-embed
     

    Import the SDK and initialize

    In the code snippet below, we are creating an instance of solana-embed and then initializing it with testing enviroment which uses solana testnet. You can pass other configuration options while initializing the wallet interface. You can refer to solana-embed api-referenceopen in new window to know more on that.

    Press </> button to view full source
    import { clusterApi, Connection } from "@solana/web3.js";
     
    diff --git a/docs/.vuepress/dist/vi/references/basic-transactions.html b/docs/.vuepress/dist/vi/references/basic-transactions.html
    index 981645384..3f3f5eb1d 100644
    --- a/docs/.vuepress/dist/vi/references/basic-transactions.html
    +++ b/docs/.vuepress/dist/vi/references/basic-transactions.html
    @@ -588,7 +588,7 @@
     await connection.confirmTransaction(signature, "processed");
     
    solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 0.5 --allow-unfunded-recipient --url https://api.devnet.solana.com --fee-payer <KEYPAIR> --with-memo <MEMO>
     

    Làm thế nào để thay đổi ngân sách tính toán cho một transaction

    Ngân sách tính toán cho một transaction có thể thay đổi được bằng cách thêm vào một chỉ thị gọi đến Compute Budget Program. Mặc định, ngân sách tính toán được thiết lập ở mức 200k đơn vị tính toán nhân với số lượng chỉ thị và không vượt quá 1.4M đơn vị tính toán. Càng ít bước tính toán, chi phí bỏ ra sẽ càng ít.

    Lưu ý: Để thay đổi ngân sách tính toán, bạn phải chắc rằng chỉ thị đầu tiên trong 3 chỉ thị của transaction là thiết lập ngân sách.

    Press </> button to view full source
    import { BN } from "@project-serum/anchor";
    +

    Làm thế nào để thay đổi ngân sách tính toán cho một transaction

    Ngân sách tính toán cho một transaction có thể thay đổi được bằng cách thêm vào một chỉ thị gọi đến Compute Budget Program. Mặc định, ngân sách tính toán được thiết lập ở mức 200k đơn vị tính toán nhân với số lượng chỉ thị và không vượt quá 1.4M đơn vị tính toán. Càng ít bước tính toán, chi phí bỏ ra sẽ càng ít.

    Lưu ý: Để thay đổi ngân sách tính toán, bạn phải chắc rằng chỉ thị đầu tiên trong 3 chỉ thị của transaction là thiết lập ngân sách.

    Press </> button to view full source
    import { BN } from "@project-OpenBook/anchor";
     import {
       Keypair,
       Connection,
    diff --git a/docs/.vuepress/dist/vi/references/local-development.html b/docs/.vuepress/dist/vi/references/local-development.html
    index b357c629c..7d1b317ad 100644
    --- a/docs/.vuepress/dist/vi/references/local-development.html
    +++ b/docs/.vuepress/dist/vi/references/local-development.html
    @@ -345,12 +345,12 @@
     

    Sau đó, cài đặt nó vào môi trường localnet của bạn bằng cách truyền tập tin ở trên và địa chỉ đích (trên môi trường địa phương) khi bắt đầu khởi chạy validator:

    Press </> button to view full source
    # solana-test-validator --account <address to load the account to> <path to account file> --reset
     solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_token.json --reset
     

    Làm thế nào để cải đặt programs từ mainnet

    Tương tự, bạn phải tải xuống program của Serum Dex v3:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so
    -

    Làm thế nào để cải đặt programs từ mainnet

    Tương tự, bạn phải tải xuống program của OpenBook Dex v3:

    Press </> button to view full source
    # solana program dump -u <source cluster> <address of account to fetch> <destination file name/path>
    +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so
    +

    Cài đặt nó vào localnet được thực hiện bằng cách truyền tập tin program và địa chỉ đích (trên môi trường đại phương) khi bắt đầu khởi chạy validator:

    Press </> button to view full source
    # solana-test-validator --bpf-program <address to load the program to> <path to program file> --reset
    -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset
    -
    Last Updated:
    Contributors: Partially Sorted, tuphan-dn
    diff --git a/docs/.vuepress/dist/zh/core-concepts/programs.html b/docs/.vuepress/dist/zh/core-concepts/programs.html index 4e58a3a95..b30c53cca 100644 --- a/docs/.vuepress/dist/zh/core-concepts/programs.html +++ b/docs/.vuepress/dist/zh/core-concepts/programs.html @@ -27,8 +27,8 @@ -

    程序

    任何开发者都可以在Solana链上编写以及部署程序。Solana程序(在其他链上叫做智能合约),是所有链上活动的基础。 链上的一切活动,从去中心化金融(DeFi),到非同质化代币(NFT),再到社交媒体,链上游戏,都由Solana程序所驱动。

    综述

    要点

    • 程序可以处理来自用户和其他程序的指令
    • 所有的程序都是无状态的:所有的和程序交互的数据都是存储在独立的账户中。执行时,这些账户借由指令传入程序
    • 程序本身存储在标记为executable(可执行)的账户中。
    • 任何程序的所有者都是BPF Loaderopen in new window and executed by the Solana Runtimeopen in new window
    • 开发者通常使用Rust或C++来编写程序,也可以采用任何其他可以编译为LLVMopen in new windowBPFopen in new window后端的语言
    • 所有的程序都有一个单独的入口点,指令的执行就是从这里开始的(亦即process_instruction)。参数须包括:
      • program_id: pubkey (公钥)
      • accounts: array (数组)
      • instruction_data: byte array (字节数组)

    深入

    与其他链不同,Solana将代码与数据完全分开。 程序需要访问的全部数据都存储在独立的账户中,在指令中这些账户需要以引用的方式传入。 这种模式使得一个通用的程序可以在不同的账户上运行,而不用为此额外部署程序。 这种模式的例子很常见,包括了"原生程序"以及"SPL程序"等。

    原生程序和Solana程序库(SPL)

    Solana自带一系列程序,这些程序是链上交互的核心构成要素。 这些程序分为原生程序open in new windowSolana程序库(SPL程序)open in new window

    原生程序提供了运行验证节点(validator)所需的功能。原生程序中最广为人知的是System Programopen in new window。 这个程序负责管理建立新账户以及在两个账户之间转账SOL。

    SPL程序定义了一系列的链上活动,其中包括针对代币的创建,交换,借贷,以及创建质押池,维护链上域名解析服务等。 SPL Token Program(SPL代币程序)open in new window可以直接在命令行调用,其他的一些,如 Associated Token Account Program(关联代币账户程序)open in new window, 则常被用于编写其他定制程序。

    编写程序

    编写Solana程序常用的是Rust和C++,但是也可以使用其他可以编译为LLVM的BPF后端的语言。 最近Neon Labsopen in new windowSolangopen in new window发起了一个项目, 旨在建立Solana的EVMopen in new window兼容性,进而让开发者可以使用Solidity编写程序。

    大部分Rust编写的程序遵循以下架构:

    文件描述
    lib.rs注册模块
    entrypoint.rs程序的入口点
    instruction.rs程序的API, 对指令的数据进行序列化与反序列化
    processor.rs程序的业务逻辑
    state.rs程序对象,对状态进行反序列化
    error.rs程序中制定的错误

    最近,Anchoropen in new window逐渐成为了一个广受欢迎的Solana程序开发框架。 Anchor是一个有态度的框架,与Ruby on Rails相似,这个框架旨在减少模式化的代码,将Rust开发流程中的序列化与反序列化过程流水线化。

    在部署到Testnet(测试网)和Mainnet(主网)之前,程序在开发和测试阶段经常使用Localhost和Devnet(开发网)环境。 Solana支持以下的几个环境:

    集群环境RPC连接URL
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    Localhost默认端口:8899(例如,http://localhost:8899,http://192.168.1.88:8899)

    部署到一个环境之后,客户端就可以通过对应集群的RPC连接open in new window与链上程序进行交互。

    部署程序

    开发者可以使用命令行open in new window部署程序:

    solana program deploy <PROGRAM_FILEPATH>
    -

    部署程序的时候,程序会被编译为包含BPF字节码的ELF共享对象open in new window,并上传到Solana集群上。 和Solana上其他的任何东西一样,程序储存在账户当中。唯一的特殊之处是,这些账户标记为executable(可执行),并且其所有者是"BPF Loader(BPF加载器)"。 这个账户的地址被称为program_id,在后面的一切交易当中,用于指代这个程序。

    Solana支持多种BPF加载器,最新的是Upgradable BPF Loaderopen in new window。 BPF加载器负责管理程序账户,让客户端可以通过其program_id对程序进行访问。每个程序都只有一个入口点,这里对指令进行处理。这里的参数须包括:

    • program_id: pubkey(公钥)
    • accounts: array(数组)
    • instruction_data: byte array(字节数组)

    当程序被调用时,会在Solana运行库中被执行。

    其他资料

    Last Updated:
    Contributors: Hipo, 胡本
    +

    程序

    任何开发者都可以在Solana链上编写以及部署程序。Solana程序(在其他链上叫做智能合约),是所有链上活动的基础。 链上的一切活动,从去中心化金融(DeFi),到非同质化代币(NFT),再到社交媒体,链上游戏,都由Solana程序所驱动。

    综述

    要点

    • 程序可以处理来自用户和其他程序的指令
    • 所有的程序都是无状态的:所有的和程序交互的数据都是存储在独立的账户中。执行时,这些账户借由指令传入程序
    • 程序本身存储在标记为executable(可执行)的账户中。
    • 任何程序的所有者都是BPF Loaderopen in new window and executed by the Solana Runtimeopen in new window
    • 开发者通常使用Rust或C++来编写程序,也可以采用任何其他可以编译为LLVMopen in new windowBPFopen in new window后端的语言
    • 所有的程序都有一个单独的入口点,指令的执行就是从这里开始的(亦即process_instruction)。参数须包括:
      • program_id: pubkey (公钥)
      • accounts: array (数组)
      • instruction_data: byte array (字节数组)

    深入

    与其他链不同,Solana将代码与数据完全分开。 程序需要访问的全部数据都存储在独立的账户中,在指令中这些账户需要以引用的方式传入。 这种模式使得一个通用的程序可以在不同的账户上运行,而不用为此额外部署程序。 这种模式的例子很常见,包括了"原生程序"以及"SPL程序"等。

    原生程序和Solana程序库(SPL)

    Solana自带一系列程序,这些程序是链上交互的核心构成要素。 这些程序分为原生程序open in new windowSolana程序库(SPL程序)open in new window

    原生程序提供了运行验证节点(validator)所需的功能。原生程序中最广为人知的是System Programopen in new window。 这个程序负责管理建立新账户以及在两个账户之间转账SOL。

    SPL程序定义了一系列的链上活动,其中包括针对代币的创建,交换,借贷,以及创建质押池,维护链上域名解析服务等。 SPL Token Program(SPL代币程序)open in new window可以直接在命令行调用,其他的一些,如 Associated Token Account Program(关联代币账户程序)open in new window, 则常被用于编写其他定制程序。

    编写程序

    编写Solana程序常用的是Rust和C++,但是也可以使用其他可以编译为LLVM的BPF后端的语言。 最近Neon Labsopen in new windowSolangopen in new window发起了一个项目, 旨在建立Solana的EVMopen in new window兼容性,进而让开发者可以使用Solidity编写程序。

    大部分Rust编写的程序遵循以下架构:

    文件描述
    lib.rs注册模块
    entrypoint.rs程序的入口点
    instruction.rs程序的API, 对指令的数据进行序列化与反序列化
    processor.rs程序的业务逻辑
    state.rs程序对象,对状态进行反序列化
    error.rs程序中制定的错误

    最近,Anchoropen in new window逐渐成为了一个广受欢迎的Solana程序开发框架。 Anchor是一个有态度的框架,与Ruby on Rails相似,这个框架旨在减少模式化的代码,将Rust开发流程中的序列化与反序列化过程流水线化。

    在部署到Testnet(测试网)和Mainnet(主网)之前,程序在开发和测试阶段经常使用Localhost和Devnet(开发网)环境。 Solana支持以下的几个环境:

    集群环境RPC连接URL
    Mainnet-betahttps://api.mainnet-beta.solana.com
    Testnethttps://api.testnet.solana.com
    Devnethttps://api.devnet.solana.com
    Localhost默认端口:8899(例如,http://localhost:8899,http://192.168.1.88:8899)

    部署到一个环境之后,客户端就可以通过对应集群的RPC连接open in new window与链上程序进行交互。

    部署程序

    开发者可以使用命令行open in new window部署程序:

    solana program deploy <PROGRAM_FILEPATH>
    +

    部署程序的时候,程序会被编译为包含BPF字节码的ELF共享对象open in new window,并上传到Solana集群上。 和Solana上其他的任何东西一样,程序储存在账户当中。唯一的特殊之处是,这些账户标记为executable(可执行),并且其所有者是"BPF Loader(BPF加载器)"。 这个账户的地址被称为program_id,在后面的一切交易当中,用于指代这个程序。

    Solana支持多种BPF加载器,最新的是Upgradable BPF Loaderopen in new window。 BPF加载器负责管理程序账户,让客户端可以通过其program_id对程序进行访问。每个程序都只有一个入口点,这里对指令进行处理。这里的参数须包括:

    • program_id: pubkey(公钥)
    • accounts: array(数组)
    • instruction_data: byte array(字节数组)

    当程序被调用时,会在Solana运行库中被执行。

    其他资料

    Last Updated:
    Contributors: Hipo, 胡本
    diff --git a/docs/de/guides/get-program-accounts.md b/docs/de/guides/get-program-accounts.md index 0ea710d76..f21713863 100644 --- a/docs/de/guides/get-program-accounts.md +++ b/docs/de/guides/get-program-accounts.md @@ -78,7 +78,7 @@ Standardmäßig gibt `getProgramAccounts` ein Array von JSON-Objekten mit der fo „getProgramAccounts“ ist eine vielseitige RPC-Methode, die alle Konten zurückgibt, die einem Programm gehören. Wir können "getProgramAccounts" für eine Reihe nützlicher Abfragen verwenden, z. B. um Folgendes zu finden: - Alle Token-Konten für eine bestimmte Brieftasche -- Alle Token-Konten für eine bestimmte Minze (d. h. alle [SRM](https://www.projectserum.com/)-Inhaber) +- Alle Token-Konten für eine bestimmte Minze (d. h. alle [SRM](https://www.projectOpenBook.com/)-Inhaber) - Alle benutzerdefinierten Konten für ein bestimmtes Programm (d. h. alle Benutzer von [Mango](https://mango.markets/)) Trotz seiner Nützlichkeit wird `getProgramAccounts` aufgrund seiner derzeitigen Beschränkungen oft missverstanden. Viele der von „getProgramAccounts“ unterstützten Abfragen erfordern RPC-Knoten, um große Datensätze zu scannen. Diese Scans sind sowohl speicher- als auch ressourcenintensiv. Daher können zu häufige oder zu umfangreiche Aufrufe zu Verbindungszeitüberschreitungen führen. Darüber hinaus unterstützt der Endpunkt „getProgramAccounts“ zum Zeitpunkt der Erstellung dieses Dokuments keine Paginierung. Wenn die Ergebnisse einer Abfrage zu groß sind, wird die Antwort abgeschnitten. diff --git a/docs/de/integrations/jupiter.md b/docs/de/integrations/jupiter.md index f05ace23d..efe9a7cd4 100644 --- a/docs/de/integrations/jupiter.md +++ b/docs/de/integrations/jupiter.md @@ -326,7 +326,7 @@ Dies ist der einfachste Weg, mit Jupiter-Programmen zu interagieren, um zwei bel ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -337,7 +337,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/de/integrations/mango.md b/docs/de/integrations/mango.md index 4f3b1ced7..c016b1a91 100644 --- a/docs/de/integrations/mango.md +++ b/docs/de/integrations/mango.md @@ -55,7 +55,7 @@ Sie benötigen außerdem die Solana-Javascript-API-Bibliothek. ## So erhalten Sie eine Mango-Gruppe -Eine Mangogruppe ist ein Korb mit querrandigen Spielmarken. Es enthält umfassende Marktinformationen über Token, Serum-Dex-Märkte, Tätermärkte, Orakel, Versicherungsfonds und Gebührentresore. Jede Version +Eine Mangogruppe ist ein Korb mit querrandigen Spielmarken. Es enthält umfassende Marktinformationen über Token, OpenBook-Dex-Märkte, Tätermärkte, Orakel, Versicherungsfonds und Gebührentresore. Jede Version von Mango Markets verwendet eine andere Mango-Gruppe, die andere enthält Token. Die aktuelle v3-Gruppe ist „mainnet.1“. Hier ist eine Tabelle mit den verschiedenen Gruppen: @@ -157,7 +157,7 @@ Die Referenz für die Einzahlungsmethode finden Sie [hier](https://blockworks-fo ## So platzieren Sie eine Spot-Order -Mango interagiert mit dem Serum Protocol, um Spot-Orders auf den Märkten zu platzieren. Sie können eine Spot Order +Mango interagiert mit dem OpenBook Protocol, um Spot-Orders auf den Märkten zu platzieren. Sie können eine Spot Order bestellen, indem Sie dies tun. Die Referenz für die placeSpotOrder-Funktion finden Sie [hier](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Mango hat eine Konfigurationsdatei, die Informationen zu Gruppen, Märkten, Token und Orakeln enthält. Sie finden es [hier](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). Wir verwenden Informationen aus dieser Datei, um die richtige Gruppe und den richtigen Markt zu finden. @@ -182,8 +182,8 @@ Sie finden es [hier](https://github.com/blockworks-foundation/mango-client-v3/bl ## So laden Sie Gebote -Mango verwendet die Marktinformationen von Serum Protocol, um Gebote zu laden. Sie können -sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie können [hier](https://github.com/project-serum/serum-ts/tree/master/packages/serum) mehr über Serum Märkte erfahren +Mango verwendet die Marktinformationen von OpenBook Protocol, um Gebote zu laden. Sie können +sie direkt aus OpenBook laden, um mit Mango zu arbeiten. Sie können [hier](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) mehr über OpenBook Märkte erfahren @@ -205,8 +205,8 @@ sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie können [hier](https:/ ## How to load asks -Mango verwendet die Marktinformationen von Serum Protocol, um Anfragen zu laden. -Sie können sie direkt aus Serum laden, um mit Mango zu arbeiten. Sie können [hier](https://github.com/project-serum/serum-ts/tree/master/packages/serum) mehr über die Märkte von Serum erfahren +Mango verwendet die Marktinformationen von OpenBook Protocol, um Anfragen zu laden. +Sie können sie direkt aus OpenBook laden, um mit Mango zu arbeiten. Sie können [hier](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) mehr über die Märkte von OpenBook erfahren diff --git a/docs/de/integrations/pyth.md b/docs/de/integrations/pyth.md index 491ab3c0e..36f52ea6e 100644 --- a/docs/de/integrations/pyth.md +++ b/docs/de/integrations/pyth.md @@ -90,5 +90,5 @@ Pyth stellt eine Rust Crate bereit, die von On-Chain-Programmen oder Off-Chain-A - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/de/integrations/serum.md b/docs/de/integrations/serum.md index 4a26c2573..6358c230a 100644 --- a/docs/de/integrations/serum.md +++ b/docs/de/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Solana Kochbuch | Building on Serum + content: Solana Kochbuch | Building on OpenBook - - meta - name: og:title - content: Solana Kochbuch | Building on Serum + content: Solana Kochbuch | Building on OpenBook - - meta - name: description - content: Serum ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie Serum verwenden und darauf aufbauen. + content: OpenBook ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie OpenBook verwenden und darauf aufbauen. - - meta - name: og:description - content: Serum ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie Serum verwenden und darauf aufbauen. + content: OpenBook ist ein innovativer CLOB auf Solana. Erfahren Sie, wie Sie OpenBook verwenden und darauf aufbauen. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,15 +36,15 @@ head: content: index,follow --- -# Serum +# OpenBook -Serum ist ein auf Solana basierendes Protokoll für den dezentralisierten Austausch. Du -kannst Serum verwenden, um neue Märkte zu schaffen, Auftragsbücher zu erhalten, Handel zu treiben und vieles mehr. +OpenBook ist ein auf Solana basierendes Protokoll für den dezentralisierten Austausch. Du +kannst OpenBook verwenden, um neue Märkte zu schaffen, Auftragsbücher zu erhalten, Handel zu treiben und vieles mehr. -## So erhalten Sie einen Serummarkt +## So erhalten Sie einen OpenBookmarkt -Ein Markt auf Serum enthält alle Bestellungen und Möglichkeiten, um Bestellungen zu tätigen -auf Serum. Für alles, was Sie mit Serum tun, müssen Sie den Markt kennen +Ein Markt auf OpenBook enthält alle Bestellungen und Möglichkeiten, um Bestellungen zu tätigen +auf OpenBook. Für alles, was Sie mit OpenBook tun, müssen Sie den Markt kennen arbeiten mit. @@ -52,13 +52,13 @@ arbeiten mit. @@ -66,9 +66,9 @@ arbeiten mit. -## So erhalten Sie Serum-Bestellbücher +## So erhalten Sie OpenBook-Bestellbücher -Serum-Märkte bestehen aus Orderbüchern mit Geboten und Nachfragen. Du kannst +OpenBook-Märkte bestehen aus Orderbüchern mit Geboten und Nachfragen. Du kannst Fragen Sie diese Informationen ab, damit Sie sehen können, was auf dem Markt vor sich geht und handle entsprechend. @@ -77,13 +77,13 @@ handle entsprechend. @@ -93,20 +93,20 @@ handle entsprechend. ## So erhalten Sie aktuelle offene Bestellungen -Als Trader werden Sie wissen wollen, welche aktuellen offenen Orders Sie auf einem Markt haben, können Sie Ihre oder die offenen Orders anderer Personen auf einem Markt mit Serum abfragen. +Als Trader werden Sie wissen wollen, welche aktuellen offenen Orders Sie auf einem Markt haben, können Sie Ihre oder die offenen Orders anderer Personen auf einem Markt mit OpenBook abfragen. diff --git a/docs/de/references/local-development.md b/docs/de/references/local-development.md index a4de2ff1e..c10580336 100644 --- a/docs/de/references/local-development.md +++ b/docs/de/references/local-development.md @@ -442,7 +442,7 @@ Das Laden in Ihr lokales Netz erfolgt dann, indem die Datei und die Zieladresse ### So laden Sie Programme aus dem Mainnet -Ebenso ist es möglich, das Programm Serum Dex v3 herunterzuladen: +Ebenso ist es möglich, das Programm OpenBook Dex v3 herunterzuladen: diff --git a/docs/es/core-concepts/programs.md b/docs/es/core-concepts/programs.md index bd74008f4..2e754569b 100644 --- a/docs/es/core-concepts/programs.md +++ b/docs/es/core-concepts/programs.md @@ -82,7 +82,7 @@ La mayoría de programas de Rust siguen la siguiente arquitectura: | state.rs | Objetos del programa, deserializa el estado | | error.rs | Errores específicos del programa | -Recientemente, [Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html) se ha convertido en el framework más popular para desarrollar programas. Anchor es un framework que reduce el boilerplate y facilita la deserialización para los programas desarrollados en Rust. +Recientemente, [Anchor](https://project-OpenBook.github.io/anchor/getting-started/introduction.html) se ha convertido en el framework más popular para desarrollar programas. Anchor es un framework que reduce el boilerplate y facilita la deserialización para los programas desarrollados en Rust. Los programas normalmente son desarrollados y testeados en los entornos Localhost y Devnet antes de ser desplegados a Testnet y Mainnet. Solana soporta los siguientes entornos: @@ -120,4 +120,4 @@ Una vez llamado, los Programas son ejecutados por el Runtime de Solana. - [Kit de inicio de Solana por Iron Addicted Dog](https://book.solmeet.dev/notes/solana-starter-kit) - [Programando en Solana por Paulx](https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/) - [Una introducción a la cadena de bloques por Hana](https://2501babe.github.io/posts/solana101.html) -- [Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html) +- [Anchor](https://project-OpenBook.github.io/anchor/getting-started/introduction.html) diff --git a/docs/es/guides/get-program-accounts.md b/docs/es/guides/get-program-accounts.md index ddf8c638b..d8ffa6323 100644 --- a/docs/es/guides/get-program-accounts.md +++ b/docs/es/guides/get-program-accounts.md @@ -76,7 +76,7 @@ Por defecto `getProgramAccounts` devolverá una matriz de objetos JSON con la si `getProgramAccounts` es un método RPC versátil que devuelve todas las cuentas propiedad de un programa. Podemos usar `getProgramAccounts` para una serie de consultas útiles, como encontrar: - Todas las cuentas de token para una billetera en particular -- Todas las cuentas para un mint en particular (ej. Todos los titulares (holders) de [SRM](https://www.projectserum.com/)) +- Todas las cuentas para un mint en particular (ej. Todos los titulares (holders) de [SRM](https://www.projectOpenBook.com/)) - Todas las cuentas para un programa en particular (ej. Todos los usuarios de [Mango](https://mango.markets/)) A pesar de su utilidad, `getProgramAccounts` a menudo se malinterpreta debido a sus limitaciones actuales. Muchas de las consultas admitidas por `getProgramAccounts` requieren nodos RPC para escanear grandes conjuntos de datos. Estos escaneos consumen muchos recursos y memoria. Como resultado, las llamadas que son demasiado frecuentes o de un alcance demasiado grande pueden provocar tiempos de espera mayores al permitido (timeouts). Además, en el momento de escribir este artículo, el extremo `getProgramAccounts` no admite la paginación. Si los resultados de una consulta son demasiado grandes, la respuesta se truncará. diff --git a/docs/es/references/local-development.md b/docs/es/references/local-development.md index 3c701933a..3ab175cde 100644 --- a/docs/es/references/local-development.md +++ b/docs/es/references/local-development.md @@ -441,7 +441,7 @@ Luego, para cargarlo a la red local se debe pasar el archivo de la cuenta y la d ### Cómo cargar programas de mainnet -De igual forma, es posible descargar el programa Serum Dex v3: +De igual forma, es posible descargar el programa OpenBook Dex v3: diff --git a/docs/fil/guides/get-program-accounts.md b/docs/fil/guides/get-program-accounts.md index d186c8a9b..ac9ff3e8e 100644 --- a/docs/fil/guides/get-program-accounts.md +++ b/docs/fil/guides/get-program-accounts.md @@ -76,7 +76,7 @@ Bilang default, magbabalik ang `getProgramAccounts` ng hanay ng mga JSON object Ang `getProgramAccounts` ay isang versatile na paraan ng RPC na ibinabalik ang lahat ng account na pagmamay-ari ng isang program. Maaari nating gamitin ang `getProgramAccounts` para sa ilang kapaki-pakinabang na query, gaya ng paghahanap ng: - Lahat ng token account para sa isang partikular na wallet -- Lahat ng token account para sa isang partikular na mint (i.e. Lahat ng [SRM](https://www.projectserum.com/) may hawak) +- Lahat ng token account para sa isang partikular na mint (i.e. Lahat ng [SRM](https://www.projectOpenBook.com/) may hawak) - Lahat ng custom na account para sa isang partikular na programa (ibig sabihin, Lahat ng [Mango](https://mango.markets/) user) Sa kabila ng pagiging kapaki-pakinabang nito, ang `getProgramAccounts` ay madalas na hindi maintindihan dahil sa mga kasalukuyang hadlang nito. Marami sa mga query na sinusuportahan ng `getProgramAccounts` ay nangangailangan ng mga RPC node na mag-scan ng malalaking set ng data. Ang mga pag-scan na ito ay parehong memory at resource intensive. Bilang resulta, ang mga tawag na masyadong madalas o masyadong malaki ang saklaw ay maaaring magresulta sa mga timeout ng koneksyon. Higit pa rito, sa oras ng pagsulat na ito, ang endpoint ng `getProgramAccounts` ay hindi sumusuporta sa pagination. Kung ang mga resulta ng isang query ay masyadong malaki, ang tugon ay puputulin. diff --git a/docs/fil/integrations/jupiter.md b/docs/fil/integrations/jupiter.md index 683211121..1ddd3a159 100644 --- a/docs/fil/integrations/jupiter.md +++ b/docs/fil/integrations/jupiter.md @@ -324,7 +324,7 @@ Ito ang pinakamadaling paraan upang makipag-ugnayan sa mga jupiter program upang ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -335,7 +335,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/fil/integrations/mango.md b/docs/fil/integrations/mango.md index 942b7f19d..4364ac7b7 100644 --- a/docs/fil/integrations/mango.md +++ b/docs/fil/integrations/mango.md @@ -55,7 +55,7 @@ Kakailanganin mo rin ang Solana javascript API library. ## Paano makakuha ng Mango Group -Ang mango group ay isang basket ng mga cross-margined na token. Nagtataglay ito ng malawak na impormasyon sa merkado tungkol sa mga token, serum dex market, perp market, orakulo, insurance fund at fees vaults. Bawat bersyon +Ang mango group ay isang basket ng mga cross-margined na token. Nagtataglay ito ng malawak na impormasyon sa merkado tungkol sa mga token, OpenBook dex market, perp market, orakulo, insurance fund at fees vaults. Bawat bersyon ng Mango Markets ay gumagamit ng ibang Mango Group na naglalaman ng iba mga token. Ang kasalukuyang pangkat ng v3 ay `mainnet.1`. Narito ang isang talahanayan na nagpapakita ng iba't ibang grupo: @@ -156,7 +156,7 @@ Mahahanap mo ang sanggunian para sa paraan ng pagdedeposito [dito](https://block ## Paano maglagay ng spot order -Nakikipag-ugnayan ang Mango sa Serum Protocol upang maglagay ng mga spot order sa mga pamilihan. Maaari kang maglagay ng puwesto +Nakikipag-ugnayan ang Mango sa OpenBook Protocol upang maglagay ng mga spot order sa mga pamilihan. Maaari kang maglagay ng puwesto mag-order sa pamamagitan ng paggawa nito. Mahahanap mo ang reference para sa placeSpotOrder function [dito](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Ang Mango ay may config file na naglalaman ng impormasyon sa mga grupo, merkado, token at orakulo, mahahanap mo ito [dito](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). Gumagamit kami ng impormasyon mula sa file na iyon upang mahanap ang tamang grupo at market. @@ -180,9 +180,9 @@ mahahanap mo ito [dito](https://github.com/blockworks-foundation/mango-client-v3 ## Paano mag-load ng mga bid -Ginagamit ng Mango ang impormasyon sa merkado mula sa Serum Protocol upang mag-load ng mga bid. Maaari kang mag-load -direkta sila mula sa Serum upang magtrabaho kasama sa Mango. Maaari mong malaman ang higit pa tungkol sa Serum's -mga merkado [dito](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Ginagamit ng Mango ang impormasyon sa merkado mula sa OpenBook Protocol upang mag-load ng mga bid. Maaari kang mag-load +direkta sila mula sa OpenBook upang magtrabaho kasama sa Mango. Maaari mong malaman ang higit pa tungkol sa OpenBook's +mga merkado [dito](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) @@ -203,9 +203,9 @@ mga merkado [dito](https://github.com/project-serum/serum-ts/tree/master/package ## Paano mag-load ng mga tanong -Ginagamit ng Mango ang impormasyon sa merkado mula sa Serum Protocol upang mag-load ng mga tanong. -Maaari mong i-load ang mga ito nang direkta mula sa Serum upang magtrabaho kasama sa Mango. Maaari mong malaman ang higit pa -tungkol sa mga market ng Serum [dito](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Ginagamit ng Mango ang impormasyon sa merkado mula sa OpenBook Protocol upang mag-load ng mga tanong. +Maaari mong i-load ang mga ito nang direkta mula sa OpenBook upang magtrabaho kasama sa Mango. Maaari mong malaman ang higit pa +tungkol sa mga market ng OpenBook [dito](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) diff --git a/docs/fil/integrations/pyth.md b/docs/fil/integrations/pyth.md index e98442277..9d93695d9 100644 --- a/docs/fil/integrations/pyth.md +++ b/docs/fil/integrations/pyth.md @@ -89,5 +89,5 @@ Nagbibigay ang Pyth ng Rust Crate na maaaring gamitin ng mga on-chain program o - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/fil/integrations/serum.md b/docs/fil/integrations/serum.md index e60c45084..f2fbbe739 100644 --- a/docs/fil/integrations/serum.md +++ b/docs/fil/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: og:title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,15 +36,15 @@ head: content: index,follow --- -# Serum +# OpenBook -Ang Serum ay isang protocol para sa mga desentralisadong palitan na binuo sa Solana. Ikaw -maaaring gumamit ng Serum para gumawa ng mga bagong market, kumuha ng mga order book, trade, at higit pa. +Ang OpenBook ay isang protocol para sa mga desentralisadong palitan na binuo sa Solana. Ikaw +maaaring gumamit ng OpenBook para gumawa ng mga bagong market, kumuha ng mga order book, trade, at higit pa. -## Paano makakuha ng Serum market +## Paano makakuha ng OpenBook market -Ang isang merkado sa Serum ay naglalaman ng lahat ng mga order at kakayahan upang gumawa ng mga order -sa Serum. Para sa lahat ng ginagawa mo sa Serum kailangan mong malaman ang market mo +Ang isang merkado sa OpenBook ay naglalaman ng lahat ng mga order at kakayahan upang gumawa ng mga order +sa OpenBook. Para sa lahat ng ginagawa mo sa OpenBook kailangan mong malaman ang market mo ay nagtatrabaho sa. @@ -52,13 +52,13 @@ ay nagtatrabaho sa. @@ -66,9 +66,9 @@ ay nagtatrabaho sa. -## Paano kumuha ng Serum order books +## Paano kumuha ng OpenBook order books -Ang mga serum market ay binubuo ng mga orderbook na may mga bid at nagtatanong. Kaya mo +Ang mga OpenBook market ay binubuo ng mga orderbook na may mga bid at nagtatanong. Kaya mo i-query ang impormasyong ito para makita mo kung ano ang nangyayari sa merkado at kumilos nang naaayon. @@ -77,13 +77,13 @@ kumilos nang naaayon. @@ -95,20 +95,20 @@ kumilos nang naaayon. Bilang isang mangangalakal, gugustuhin mong malaman kung anong kasalukuyang bukas na mga order ang mayroon ka sa isang palengke. Maaari mong i-query ang iyong mga open order o ng sinuman sa isang market -may Serum. +may OpenBook. diff --git a/docs/fil/references/local-development.md b/docs/fil/references/local-development.md index 4cbbd9052..0c1811241 100644 --- a/docs/fil/references/local-development.md +++ b/docs/fil/references/local-development.md @@ -441,7 +441,7 @@ Ang paglo-load nito sa iyong localnet ay ginagawa sa pamamagitan ng pagpasa sa f ### Paano mag-load ng mga programa mula sa mainnet -Katulad nito, posibleng i-download ang Serum Dex v3 program: +Katulad nito, posibleng i-download ang OpenBook Dex v3 program: diff --git a/docs/fr/guides/get-program-accounts.md b/docs/fr/guides/get-program-accounts.md index 7cf6ded5c..697311b40 100644 --- a/docs/fr/guides/get-program-accounts.md +++ b/docs/fr/guides/get-program-accounts.md @@ -76,7 +76,7 @@ Par défaut, `getProgramAccounts` retournera un tableau d'objets JSON avec la st `getProgramAccounts` est une méthode RPC polyvalente qui renvoie tous les comptes appartenant à un programme. Nous pouvons utiliser `getProgramAccounts` pour un certain nombre de requêtes utiles, telles que la recherche de : - Tous les comptes de jetons pour un portefeuille en particulier -- Tous les comptes de jetons pour un mint en particulier (par exemple, tous les propriétaires (holders) de [SRM](https://www.projectserum.com/)) +- Tous les comptes de jetons pour un mint en particulier (par exemple, tous les propriétaires (holders) de [SRM](https://www.projectOpenBook.com/)) - Tous les comptes pour un programme en particulier (par exemple, tous les utilisateurs de [Mango](https://mango.markets/)) Malgré son utilité, `getProgramAccounts` est souvent mal compris en raison de ses limites actuelles. La plupart des requêtes supportées par `getProgramAccounts` nécessitent des nœuds RPC pour analyser de grands ensembles de données. Ces analyses sont à la fois gourmandes en mémoire et en ressources. Par conséquent, les appels trop fréquents ou de trop grande envergure peuvent entraîner des interruptions de connexion. De plus, au moment où nous écrivons ces lignes, le point de terminaison `getProgramAccounts` ne prend pas en charge la pagination. Si les résultats d'une requête sont trop volumineux, la réponse sera tronquée. diff --git a/docs/fr/integrations/jupiter.md b/docs/fr/integrations/jupiter.md index e4ff2ea13..812650c8f 100644 --- a/docs/fr/integrations/jupiter.md +++ b/docs/fr/integrations/jupiter.md @@ -324,7 +324,7 @@ C'est le moyen le plus simple d'interagir avec les programmes de jupiter pour é ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -335,7 +335,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/fr/integrations/mango.md b/docs/fr/integrations/mango.md index 0629ea53b..cb5e2d86e 100644 --- a/docs/fr/integrations/mango.md +++ b/docs/fr/integrations/mango.md @@ -52,7 +52,7 @@ Mango offre un lieu unique pour prêter, emprunter, échanger et négocier des c ## Comment récupérer un Groupe Mango -Un groupe Mango est un panier de jetons à marges croisées. Il contient des informations générales sur le marché des jetons, les dex de Serum, les marchés perp, les oracles, les fonds d'assurance et les vaults de frais. Chaque version de Mango Markets utilise un groupe Mango différent contenant des jetons différents. Le groupe v3 actuel `mainnet.1`. Voici un tableau présentant les différents groupes : +Un groupe Mango est un panier de jetons à marges croisées. Il contient des informations générales sur le marché des jetons, les dex de OpenBook, les marchés perp, les oracles, les fonds d'assurance et les vaults de frais. Chaque version de Mango Markets utilise un groupe Mango différent contenant des jetons différents. Le groupe v3 actuel `mainnet.1`. Voici un tableau présentant les différents groupes : | Groupe | Version | Cluster | @@ -149,7 +149,7 @@ Après avoir créé un compte mango, vous devrez l'approvisionner en jetons pour ## Comment placer un ordre spot -Mango interagit avec le Protocole Serum pour placer des ordres spot sur les marchés. Vous pouvez passer un ordre spot en procédant ainsi. Vous pouvez trouver la référence de la fonction placeSpotOrder [ici](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). +Mango interagit avec le Protocole OpenBook pour placer des ordres spot sur les marchés. Vous pouvez passer un ordre spot en procédant ainsi. Vous pouvez trouver la référence de la fonction placeSpotOrder [ici](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Mango possède un fichier de configuration qui contient des informations sur les groupes, les marchés, les jetons et les oracles que vous pouvez trouver [ici](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). Nous utilisons les informations de ce dossier pour trouver le bon groupe et le bon marché. @@ -171,7 +171,7 @@ Mango possède un fichier de configuration qui contient des informations sur les ## Comment charger les offres -Mango utilise les informations de marché du Protocole Serum pour charger les offres. Vous pouvez les charger directement depuis Serum pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de Serum [ici](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango utilise les informations de marché du Protocole OpenBook pour charger les offres. Vous pouvez les charger directement depuis OpenBook pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de OpenBook [ici](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) @@ -192,7 +192,7 @@ Mango utilise les informations de marché du Protocole Serum pour charger les of ## Comment charger les demandes -Mango utilise les informations de marché du Protocole Serum pour charger les demandes. Vous pouvez les charger directement depuis Serum pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de Serum [ici](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango utilise les informations de marché du Protocole OpenBook pour charger les demandes. Vous pouvez les charger directement depuis OpenBook pour travailler avec sur Mango. Vous pouvez en savoir plus sur les marchés de OpenBook [ici](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) diff --git a/docs/fr/integrations/pyth.md b/docs/fr/integrations/pyth.md index aa2d98c68..5af9107bb 100644 --- a/docs/fr/integrations/pyth.md +++ b/docs/fr/integrations/pyth.md @@ -90,5 +90,5 @@ Pyth fournit un Crate Rust qui peut être utilisé par des programmes on-chain o - [Bibliothèques du Client](https://docs.pyth.network/consumers/client-libraries) - [Exemple de code JS](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Exemple de code Rust](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Exemple de code Rust](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Exemple de code Anchor](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/fr/integrations/serum.md b/docs/fr/integrations/serum.md index 3b1f48fa6..e928db005 100644 --- a/docs/fr/integrations/serum.md +++ b/docs/fr/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Solana Cookbook | Développer avec Serum + content: Solana Cookbook | Développer avec OpenBook - - meta - name: og:title - content: Solana Cookbook | Développer avec Serum + content: Solana Cookbook | Développer avec OpenBook - - meta - name: description - content: Serum est un CLOB innovant sur Solana. Apprenez à utiliser et à construire par-dessus Serum. + content: OpenBook est un CLOB innovant sur Solana. Apprenez à utiliser et à construire par-dessus OpenBook. - - meta - name: og:description - content: Serum est un CLOB innovant sur Solana. Apprenez à utiliser et à construire par-dessus Serum. + content: OpenBook est un CLOB innovant sur Solana. Apprenez à utiliser et à construire par-dessus OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,26 +36,26 @@ head: content: index,follow --- -# Serum +# OpenBook -Serum est un protocole pour les échanges décentralisés construit sur Solana. Vous pouvez utiliser Serum pour créer de nouveaux marchés, obtenir des carnets d'ordres, trade, etc. +OpenBook est un protocole pour les échanges décentralisés construit sur Solana. Vous pouvez utiliser OpenBook pour créer de nouveaux marchés, obtenir des carnets d'ordres, trade, etc. -## Comment obtenir un marché de Serum +## Comment obtenir un marché de OpenBook -Un marché sur Serum contient tous les ordres et les fonctionnalités permettant de passer des ordres sur Serum. Pour tout ce que vous faites sur Serum, vous devez connaître le marché avec lequel vous travaillez. +Un marché sur OpenBook contient tous les ordres et les fonctionnalités permettant de passer des ordres sur OpenBook. Pour tout ce que vous faites sur OpenBook, vous devez connaître le marché avec lequel vous travaillez. @@ -63,22 +63,22 @@ Un marché sur Serum contient tous les ordres et les fonctionnalités permettant -## Comment obtenir les carnets d'ordres de Serum +## Comment obtenir les carnets d'ordres de OpenBook -Les marchés de Serum sont constitués de carnets d'ordres qui comportent les offres et les demandes. Vous pouvez interroger ces informations afin de voir ce qui se passe sur le marché et agir en conséquence. +Les marchés de OpenBook sont constitués de carnets d'ordres qui comportent les offres et les demandes. Vous pouvez interroger ces informations afin de voir ce qui se passe sur le marché et agir en conséquence. @@ -88,20 +88,20 @@ Les marchés de Serum sont constitués de carnets d'ordres qui comportent les of ## Comment obtenir les ordres ouverts actuels -En tant que trader, vous souhaitez connaître les ordres ouverts en cours sur un marché. Avec Serum, il est possible d'interroger vos ordres ouverts ou ceux de n'importe qui d'autre sur un marché. +En tant que trader, vous souhaitez connaître les ordres ouverts en cours sur un marché. Avec OpenBook, il est possible d'interroger vos ordres ouverts ou ceux de n'importe qui d'autre sur un marché. diff --git a/docs/fr/references/local-development.md b/docs/fr/references/local-development.md index b07ec5acd..56bb830cd 100644 --- a/docs/fr/references/local-development.md +++ b/docs/fr/references/local-development.md @@ -435,7 +435,7 @@ Le chargement sur votre réseau local se fait ensuite en passant le fichier cont ### Comment charger des programmes depuis le mainnet -De même, il est possible de télécharger le programme Serum Dex v3 : +De même, il est possible de télécharger le programme OpenBook Dex v3 : diff --git a/docs/guides/get-program-accounts.md b/docs/guides/get-program-accounts.md index 75702dc43..fcbfe57ca 100644 --- a/docs/guides/get-program-accounts.md +++ b/docs/guides/get-program-accounts.md @@ -76,7 +76,7 @@ By default `getProgramAccounts` will return an array of JSON objects with the fo `getProgramAccounts` is a versatile RPC method that returns all accounts owned by a program. We can use `getProgramAccounts` for a number of useful queries, such as finding: - All token accounts for a particular wallet -- All token accounts for a particular mint (i.e. All [SRM](https://www.projectserum.com/) holders) +- All token accounts for a particular mint (i.e. All [SRM](https://www.projectOpenBook.com/) holders) - All custom accounts for a particular program (i.e. All [Mango](https://mango.markets/) users) Despite its usefulness, `getProgramAccounts` is often misunderstood due to its current constraints. Many of the queries supported by `getProgramAccounts` require RPC nodes to scan large sets of data. These scans are both memory and resource intensive. As a result, calls that are too frequent or too large in scope can result in connection timeouts. Furthermore, at the time of this writing, the `getProgramAccounts` endpoint does not support pagination. If the results of a query are too large, the response will be truncated. diff --git a/docs/id/guides/get-program-accounts.md b/docs/id/guides/get-program-accounts.md index c4a07d9f6..1bc67d997 100644 --- a/docs/id/guides/get-program-accounts.md +++ b/docs/id/guides/get-program-accounts.md @@ -77,7 +77,7 @@ Secara default `getProgramAccounts` akan mengembalikan array dari objek JSON den `getProgramAccounts` adalah metode RPC serbaguna yang mendapatkan semua akun yang dimiliki oleh suatu program. Kita dapat menggunakan `getProgramAccounts` untuk sejumlah query yang berguna, seperti menemukan: - Semua akun token untuk wallet tertentu -- Semua akun token untuk mint tertentu (yaitu Semua pemegang [SRM](https://www.projectserum.com/)) +- Semua akun token untuk mint tertentu (yaitu Semua pemegang [SRM](https://www.projectOpenBook.com/)) - Semua akun khusus untuk program tertentu (yaitu Semua pengguna [Mango](https://mango.markets/)) Terlepas dari kegunaannya, `getProgramAccounts` sering disalahpahami karena batasannya saat ini. Banyak query yang didukung oleh `getProgramAccounts` memerlukan node RPC untuk melakukan scan dari kumpulan data yang besar. Proses scan ini membutuhkan memori dan sumber daya yang intensif. Akibatnya, pemanggilan yang terlalu sering atau terlalu besar cakupannya dapat mengakibatkan connection timeout. Selanjutnya, pada saat penulisan ini, endpoint dari `getProgramAccounts` tidak mendukung pagination. Jika hasil query terlalu besar, respons akan dipecah (_truncate_). diff --git a/docs/id/integrations/jupiter.md b/docs/id/integrations/jupiter.md index 3538b0550..2831b4548 100644 --- a/docs/id/integrations/jupiter.md +++ b/docs/id/integrations/jupiter.md @@ -325,7 +325,7 @@ Ini adalah cara termudah untuk berinteraksi dengan program jupiter untuk menukar ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -336,7 +336,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/id/integrations/mango.md b/docs/id/integrations/mango.md index 0bd8e3080..74d03b26f 100644 --- a/docs/id/integrations/mango.md +++ b/docs/id/integrations/mango.md @@ -56,7 +56,7 @@ Anda juga memerlukan librari Solana javascript API. ## Cara Mendapatkan Mango Group -A mango group adalah basket dari cross-margined tokens. Ini menyimpan info pasar yang luas tentang token, pasar dex serum, pasar pelaku, oracles, dana asuransi, dan brankas biaya. Setiap versi +A mango group adalah basket dari cross-margined tokens. Ini menyimpan info pasar yang luas tentang token, pasar dex OpenBook, pasar pelaku, oracles, dana asuransi, dan brankas biaya. Setiap versi market Manggo menggunakan Grup Manggo yang berbeda yang mengandung token. Grup v3 saat ini adalah `mainnet.1`. Berikut tabel yang menunjukkan berbagai grup: @@ -156,7 +156,7 @@ Temukan referensi untuk metode deposit [disini](https://blockworks-foundation.gi ## Cara Menempatkan Spot Order -Mango berinteraksi dengan Serum Protocol untuk menempatkan spot orders di markets. Anda dapat menempatkan spot order dengan melakukan ini. Anda dapat menemukan referensi untuk fungsi placeSpotOrder [disini](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). +Mango berinteraksi dengan OpenBook Protocol untuk menempatkan spot orders di markets. Anda dapat menempatkan spot order dengan melakukan ini. Anda dapat menemukan referensi untuk fungsi placeSpotOrder [disini](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Mango memiliki file konfigurasi yang mengandung informasi tentang groups, markets, tokens dan oracles, Bisa ditemukan [disini](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). Kami menggunakan informasi dari file tersebut untuk menemukan group dan market yang tepat. @@ -180,7 +180,7 @@ Bisa ditemukan [disini](https://github.com/blockworks-foundation/mango-client-v3 ## Cara Load Bids -Mango menggunakan informasi markets dari Serum Protocol untuk load bids. Anda bisa me-load langsung dari Serum untuk bisa bekerja dengan Mango. Temukan lebih lanjut perihal Serum Markets [disini](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango menggunakan informasi markets dari OpenBook Protocol untuk load bids. Anda bisa me-load langsung dari OpenBook untuk bisa bekerja dengan Mango. Temukan lebih lanjut perihal OpenBook Markets [disini](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) @@ -201,8 +201,8 @@ Mango menggunakan informasi markets dari Serum Protocol untuk load bids. Anda bi ## Cara Load Asks -Mango menggunakan informasi market dariSerum Protocol untuk load asks. -Kamu bisa load langsung dari Serum untuk bisa bekerja dengan Mango. Temukan lebih lanjut tentang Serum Markets [disini](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango menggunakan informasi market dariOpenBook Protocol untuk load asks. +Kamu bisa load langsung dari OpenBook untuk bisa bekerja dengan Mango. Temukan lebih lanjut tentang OpenBook Markets [disini](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) diff --git a/docs/id/integrations/pyth.md b/docs/id/integrations/pyth.md index 4399864e6..a1524561d 100644 --- a/docs/id/integrations/pyth.md +++ b/docs/id/integrations/pyth.md @@ -90,5 +90,5 @@ Pyth menyediakan a Rust Crate yang bisa digunakan program on-chain atau off-chai - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/id/integrations/serum.md b/docs/id/integrations/serum.md index b389d4867..29e3946e5 100644 --- a/docs/id/integrations/serum.md +++ b/docs/id/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Buku Panduan Solana | Membangun di Serum + content: Buku Panduan Solana | Membangun di OpenBook - - meta - name: og:title - content: Buku Panduan Solana | Membangun di Serum + content: Buku Panduan Solana | Membangun di OpenBook - - meta - name: description - content: Serum adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas Serum. + content: OpenBook adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas OpenBook. - - meta - name: og:description - content: Serum adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas Serum. + content: OpenBook adalah inovasi CLOB di Solana. Belajar cara menggunakan dan membangun aplikasi anda di atas OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,28 +36,28 @@ head: content: index,follow --- -# Serum +# OpenBook -Serum adalah protokol untuk pertukaran terdesentralisasi yang dibangun di atas Solana. Anda -dapat menggunakan Serum untuk menciptakan pasar baru (_new market_), mendapatkan buku pesanan (_orderbooks_), berdagang (_trades_), dan banyak lagi. +OpenBook adalah protokol untuk pertukaran terdesentralisasi yang dibangun di atas Solana. Anda +dapat menggunakan OpenBook untuk menciptakan pasar baru (_new market_), mendapatkan buku pesanan (_orderbooks_), berdagang (_trades_), dan banyak lagi. -## Cara Mendapatkan Serum Market +## Cara Mendapatkan OpenBook Market -Market di Serum berisi semua pesanan dan kemampuan untuk membuat pesanan -pada Serum. Untuk semua yang Anda lakukan di Serum, Anda perlu mengetahui market yang Anda sedang kerjakan. +Market di OpenBook berisi semua pesanan dan kemampuan untuk membuat pesanan +pada OpenBook. Untuk semua yang Anda lakukan di OpenBook, Anda perlu mengetahui market yang Anda sedang kerjakan. @@ -65,9 +65,9 @@ pada Serum. Untuk semua yang Anda lakukan di Serum, Anda perlu mengetahui market -## Mendapatkan Serum Order Books +## Mendapatkan OpenBook Order Books -Serum markets terdiri dari orderbooks yang memiliki bids dan asks. Anda bisa +OpenBook markets terdiri dari orderbooks yang memiliki bids dan asks. Anda bisa menanyakan informasi ini sehingga Anda dapat melihat apa yang terjadi di pasar dan bertindak sesuai yang Anda butuhkan @@ -76,13 +76,13 @@ bertindak sesuai yang Anda butuhkan @@ -93,20 +93,20 @@ bertindak sesuai yang Anda butuhkan ## Cara Mendapatkan Open Orders Sebagai seorang trader, Anda pasti ingin tahu Open Orders aktif apa yang Anda miliki saat ini -di sebuah market. Anda dapat menanyakan Open Orders Anda atau orang lain di market dengan Serum. +di sebuah market. Anda dapat menanyakan Open Orders Anda atau orang lain di market dengan OpenBook. diff --git a/docs/id/references/local-development.md b/docs/id/references/local-development.md index 5bd852193..6c90f5b79 100644 --- a/docs/id/references/local-development.md +++ b/docs/id/references/local-development.md @@ -434,7 +434,7 @@ Memuatnya ke localnet anda kemudian dilakukan dengan meneruskan file akun dan al ### Cara memuat program dari mainnet -Demikian pula, dimungkinkan untuk mengunduh program Serum Dex v3: +Demikian pula, dimungkinkan untuk mengunduh program OpenBook Dex v3: diff --git a/docs/integrations/jupiter.md b/docs/integrations/jupiter.md index 6570a2fad..7ac14adef 100644 --- a/docs/integrations/jupiter.md +++ b/docs/integrations/jupiter.md @@ -324,7 +324,7 @@ This is the easiest way to interact with jupiter programs to swap any 2 provided ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -335,7 +335,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/integrations/mango.md b/docs/integrations/mango.md index 7f43040e0..0dab64582 100644 --- a/docs/integrations/mango.md +++ b/docs/integrations/mango.md @@ -55,7 +55,7 @@ You'll also need the Solana javascript API library. ## How to get a Mango Group -A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, serum dex markets, perp markets, oracles, insurance fund and fees vaults. Each version +A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, OpenBook dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is `mainnet.1`. Here's a table showing the various groups: @@ -156,7 +156,7 @@ You can find the reference for the deposit method [here](https://blockworks-foun ## How to place a spot order -Mango interacts with Serum Protocol to place spot orders on markets. You can place a spot +Mango interacts with OpenBook Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function [here](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it [here](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). We use information from that file to find the right group and market. @@ -180,9 +180,9 @@ you can find it [here](https://github.com/blockworks-foundation/mango-client-v3/ ## How to load bids -Mango uses the market information from Serum Protocol to load bids. You can load -them directly from Serum to work with on Mango. You can find out more about Serum's -markets [here](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango uses the market information from OpenBook Protocol to load bids. You can load +them directly from OpenBook to work with on Mango. You can find out more about OpenBook's +markets [here](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) @@ -203,9 +203,9 @@ markets [here](https://github.com/project-serum/serum-ts/tree/master/packages/se ## How to load asks -Mango uses the market information from Serum Protocol to load asks. -You can load them directly from Serum to work with on Mango. You can find out more -about Serum's markets [here](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango uses the market information from OpenBook Protocol to load asks. +You can load them directly from OpenBook to work with on Mango. You can find out more +about OpenBook's markets [here](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) diff --git a/docs/integrations/pyth.md b/docs/integrations/pyth.md index 7474d92db..5a414f17f 100644 --- a/docs/integrations/pyth.md +++ b/docs/integrations/pyth.md @@ -90,5 +90,5 @@ Pyth provides a Rust Crate which can be used by on-chain programs or off-chain a - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/integrations/serum.md b/docs/integrations/serum.md index 52f811d8a..22a63d4e6 100644 --- a/docs/integrations/serum.md +++ b/docs/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: og:title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,15 +36,15 @@ head: content: index,follow --- -# Serum +# OpenBook -Serum is a protocol for decentralized exchanges built on Solana. You -can use Serum to create new markets, get order books, trade, and more. +OpenBook is a protocol for decentralized exchanges built on Solana. You +can use OpenBook to create new markets, get order books, trade, and more. -## How to get a Serum market +## How to get a OpenBook market -A market on Serum contains all the orders and capabilities to make orders -on Serum. For everything you do on Serum you need to know the market you +A market on OpenBook contains all the orders and capabilities to make orders +on OpenBook. For everything you do on OpenBook you need to know the market you are working with. @@ -52,13 +52,13 @@ are working with. @@ -66,9 +66,9 @@ are working with. -## How to get Serum order books +## How to get OpenBook order books -Serum markets consist of orderbooks which have bids and asks. You can +OpenBook markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly. @@ -77,13 +77,13 @@ act accordingly. @@ -95,20 +95,20 @@ act accordingly. As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market -with Serum. +with OpenBook. diff --git a/docs/ja/guides/get-program-accounts.md b/docs/ja/guides/get-program-accounts.md index e0af8ed48..0eb9638ef 100644 --- a/docs/ja/guides/get-program-accounts.md +++ b/docs/ja/guides/get-program-accounts.md @@ -77,7 +77,7 @@ head: `getProgramAccounts` はプログラムが所有するすべてのアカウントを返す多用途の RPC メソッドです。下記のような検索など、多くのクエリに使用できます: - 特定のウォレットのすべてのトークン アカウントの取得 -- 特定のmintのすべてのトークン アカウント ( つまり、[SRM](https://www.projectserum.com/) の所有者すべて) +- 特定のmintのすべてのトークン アカウント ( つまり、[SRM](https://www.projectOpenBook.com/) の所有者すべて) - 特定のプログラムのすべてのカスタム アカウント (つまり、[Mango](https://mango.markets/) ユーザー全員) `getProgramAccounts`は非常に便利ですが、現在の制約のためによく誤解されます。 diff --git a/docs/ja/integrations/jupiter.md b/docs/ja/integrations/jupiter.md index fa393cbde..f0c911f79 100644 --- a/docs/ja/integrations/jupiter.md +++ b/docs/ja/integrations/jupiter.md @@ -324,7 +324,7 @@ useJupiterフックは、必要なすべてのパラメーターを取得して ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -335,7 +335,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/ja/integrations/mango.md b/docs/ja/integrations/mango.md index c38419384..c01a6af70 100644 --- a/docs/ja/integrations/mango.md +++ b/docs/ja/integrations/mango.md @@ -53,7 +53,7 @@ Mangoは、オンチェーンリスク エンジンを介して、取引暗号 ## Mango Groupの取得方法 -Mango groupはクロスマージントークンのバスケットで、トークン、Serum dex market、perp market、Oracle、Insurance fund、Fees vaultに関する幅広い市場情報を保持しています。 Mango Markets の各バージョンは、異なるトークンを含む異なる Mango Group を使用します。現在の v3 グループは`mainnet.1` です。さまざまなグループを示す表を次に示します: +Mango groupはクロスマージントークンのバスケットで、トークン、OpenBook dex market、perp market、Oracle、Insurance fund、Fees vaultに関する幅広い市場情報を保持しています。 Mango Markets の各バージョンは、異なるトークンを含む異なる Mango Group を使用します。現在の v3 グループは`mainnet.1` です。さまざまなグループを示す表を次に示します: | Group | Version | Cluster | @@ -151,7 +151,7 @@ Mango accountアカウントを作成したら、取引用のトークンで資 ## スポット注文の方法 -MangoはSerum Protocolと対話し、市場でスポット注文を出します。これにより、スポット注文を出すことができます。placeSpotOrder関数のリファレンスは[こちら](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder)。 +MangoはOpenBook Protocolと対話し、市場でスポット注文を出します。これにより、スポット注文を出すことができます。placeSpotOrder関数のリファレンスは[こちら](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder)。 Mangoには、グループ、マーケット、トークン、およびOracleに関する情報を含む構成ファイルがあります。 [ここ](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json)で見つけることができます。そのファイルの情報を使用して、適切なグループと市場を見つけます。 @@ -174,8 +174,8 @@ Mangoには、グループ、マーケット、トークン、およびOracleに ## 売値の読込方法 -MangoはSerum Protocolから得た市場情報を使用して売値を読み込みます。Serumから直接読み込み、Mangoで操作できます。Serumの市場に関しての -より詳しい情報は[こちら](https://github.com/project-serum/serum-ts/tree/master/packages/serum)。 +MangoはOpenBook Protocolから得た市場情報を使用して売値を読み込みます。OpenBookから直接読み込み、Mangoで操作できます。OpenBookの市場に関しての +より詳しい情報は[こちら](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook)。 @@ -196,8 +196,8 @@ MangoはSerum Protocolから得た市場情報を使用して売値を読み込 ## 買値の読込方法 -MangoはSerum Protocolから得た市場情報を使用して買値を読み込みます。 -Serumから直接読み込み、Mangoで操作できます。Serumの市場の詳しい情報は[こちら](https://github.com/project-serum/serum-ts/tree/master/packages/serum)。 +MangoはOpenBook Protocolから得た市場情報を使用して買値を読み込みます。 +OpenBookから直接読み込み、Mangoで操作できます。OpenBookの市場の詳しい情報は[こちら](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook)。 diff --git a/docs/ja/integrations/pyth.md b/docs/ja/integrations/pyth.md index d531390dd..57720722a 100644 --- a/docs/ja/integrations/pyth.md +++ b/docs/ja/integrations/pyth.md @@ -90,5 +90,5 @@ Pythは、オンチェーンプログラムまたはオフチェーンアプリ - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/ja/integrations/serum.md b/docs/ja/integrations/serum.md index bf9079a8b..43779915c 100644 --- a/docs/ja/integrations/serum.md +++ b/docs/ja/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: og:title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,26 +36,26 @@ head: content: index,follow --- -# Serum +# OpenBook -Serumは、Solana 上に構築された分散型取引所のプロトコルです。 Serumを使用して、新しい市場の作成、オーダーブックの取得、取引などを行うことができます。 +OpenBookは、Solana 上に構築された分散型取引所のプロトコルです。 OpenBookを使用して、新しい市場の作成、オーダーブックの取得、取引などを行うことができます。 -## Serumマーケットの取得方法 +## OpenBookマーケットの取得方法 -Serumのマーケットには、Serumで注文するためのすべての注文と機能が含まれています。 Serumで行うすべてのことについて、作業しているマーケットを知る必要があります。 +OpenBookのマーケットには、OpenBookで注文するためのすべての注文と機能が含まれています。 OpenBookで行うすべてのことについて、作業しているマーケットを知る必要があります。 @@ -63,22 +63,22 @@ Serumのマーケットには、Serumで注文するためのすべての注文 -## Serumオーダーブックの入手方法 +## OpenBookオーダーブックの入手方法 -Serumマーケットは、ビッドとアスクを含むオーダーブックで構成されています。この情報を照会して、市場で何が起こっているかを確認し、それに応じて行動することができます。 +OpenBookマーケットは、ビッドとアスクを含むオーダーブックで構成されています。この情報を照会して、市場で何が起こっているかを確認し、それに応じて行動することができます。 @@ -88,20 +88,20 @@ Serumマーケットは、ビッドとアスクを含むオーダーブックで ## 現在のオープンの注文を取得する方法 -トレーダーとして、市場で現在開いている注文を知りたいと思うでしょう。Serumを使用して、市場での自分または他の誰かのオープン注文を照会できます。 +トレーダーとして、市場で現在開いている注文を知りたいと思うでしょう。OpenBookを使用して、市場での自分または他の誰かのオープン注文を照会できます。 diff --git a/docs/ja/references/local-development.md b/docs/ja/references/local-development.md index 0b11df5de..40be384ab 100644 --- a/docs/ja/references/local-development.md +++ b/docs/ja/references/local-development.md @@ -434,7 +434,7 @@ SRMトークンミントアカウントをファイルにダウンロードす ### メインネットからプログラムをロードする方法 -同様に、Serum Dex v3プログラムをダウンロードすることもできます: +同様に、OpenBook Dex v3プログラムをダウンロードすることもできます: diff --git a/docs/kr/guides/get-program-accounts.md b/docs/kr/guides/get-program-accounts.md index 65392a3cf..52531a344 100644 --- a/docs/kr/guides/get-program-accounts.md +++ b/docs/kr/guides/get-program-accounts.md @@ -79,7 +79,7 @@ RPC method는 프로그램에 의해 소유된 모든 Account들을 반환한다 우리는 아래와 같이 몇 가지 유용한 쿼리를 위해 `getProgramAccounts`를 사용할 수 있습니다. - 특정 지갑에 대한 모든 Token Account들 조회 -- 특정 mint에 대한 모든 Token Account들 조회 (i.e. All [SRM](https://www.projectserum.com/) holders) +- 특정 mint에 대한 모든 Token Account들 조회 (i.e. All [SRM](https://www.projectOpenBook.com/) holders) - 특정 Program에 대한 모든 custom Account들 조회 (i.e. All [Mango](https://mango.markets/) users) 이렇게 유용함에도 불구하고, `getProgramAccounts`는 현재 제약사항들 때문에 자주 오해받습니다. diff --git a/docs/kr/references/local-development.md b/docs/kr/references/local-development.md index 9e16f2ed7..80c758a09 100644 --- a/docs/kr/references/local-development.md +++ b/docs/kr/references/local-development.md @@ -440,7 +440,7 @@ validator를 시작할 때 이 Account 파일과 목적지 address (local cluste ### How to load programs from mainnet -비슷하게 Serum Dex v3 프로그램을 다운로드할 수 있습니다: +비슷하게 OpenBook Dex v3 프로그램을 다운로드할 수 있습니다: diff --git a/docs/pt/guides/get-program-accounts.md b/docs/pt/guides/get-program-accounts.md index a697e2b6d..9d1622519 100644 --- a/docs/pt/guides/get-program-accounts.md +++ b/docs/pt/guides/get-program-accounts.md @@ -76,7 +76,7 @@ Por padrão, `getProgramAccounts` retornará um array de objetos JSON com a segu `getProgramAccounts` é um método RPC versátil que retorna todas as contas de propriedade de um programa. Podemos usar `getProgramAccounts` para várias consultas úteis, como encontrar: - Todas as contas de token para uma carteira específica -- Todas as contas de token para uma cunhagem de tokens específica (ou seja, todos os detentores de [SRM](https://www.projectserum.com/)) +- Todas as contas de token para uma cunhagem de tokens específica (ou seja, todos os detentores de [SRM](https://www.projectOpenBook.com/)) - Todas as contas personalizadas para um programa específico (ou seja, todos os usuários do [Mango](https://mango.markets/)) Apesar de sua utilidade, `getProgramAccounts` é frequentemente mal compreendido devido às suas limitações atuais. Muitas das consultas suportadas pelo `getProgramAccounts` exigem que os nós RPC verifiquem grandes conjuntos de dados. Essas verificações são intensivas em recursos e em memória. Como resultado, chamadas muito frequentes ou muito grandes em escopo podem resultar em tempo limite de conexão. Além disso, no momento em que este texto foi escrito, o ponto de extremidade `getProgramAccounts` não suporta paginação. Se os resultados de uma consulta forem muito grandes, a resposta será truncada. diff --git a/docs/pt/integrations/jupiter.md b/docs/pt/integrations/jupiter.md index 76fe403dd..d5502e4fe 100644 --- a/docs/pt/integrations/jupiter.md +++ b/docs/pt/integrations/jupiter.md @@ -326,7 +326,7 @@ Esta é a maneira mais fácil de interagir com os programas do Jupiter para troc ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -337,7 +337,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/pt/integrations/mango.md b/docs/pt/integrations/mango.md index bb9f4089e..853e3ede1 100644 --- a/docs/pt/integrations/mango.md +++ b/docs/pt/integrations/mango.md @@ -52,7 +52,7 @@ O Mango fornece um único local para emprestar, pegar emprestado, trocar e alava ## Como obter um Grupo Mango -Um grupo Mango é uma cesta de tokens com margem cruzada, que contém informações abrangentes do mercado sobre tokens, mercados da DEX Serum, mercados perpétuos, oráculos, fundo de seguro e cofres de taxas. Cada versão do Mango Markets usa um Grupo Mango diferente contendo diferentes tokens. O grupo atual da versão 3 é o `mainnet.1`. Aqui está uma tabela mostrando os vários grupos: +Um grupo Mango é uma cesta de tokens com margem cruzada, que contém informações abrangentes do mercado sobre tokens, mercados da DEX OpenBook, mercados perpétuos, oráculos, fundo de seguro e cofres de taxas. Cada versão do Mango Markets usa um Grupo Mango diferente contendo diferentes tokens. O grupo atual da versão 3 é o `mainnet.1`. Aqui está uma tabela mostrando os vários grupos: | Grupo | Versão | Cluster | @@ -151,7 +151,7 @@ Depois de criar uma conta Mango, você precisará adicionar tokens a ela para ef ## Como efetuar uma ordem spot -O Mango interage com o Protocolo Serum para efetuar ordens spot em mercados. Você pode efetuar uma ordem spot fazendo isso. Você pode encontrar a referência para a função `placeSpotOrder` [aqui](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). O Mango tem um arquivo de configuração que contém informações sobre grupos, mercados, tokens e oráculos, e você pode encontrá-lo [aqui](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). Usamos informações desse arquivo para encontrar o grupo e o mercado corretos. +O Mango interage com o Protocolo OpenBook para efetuar ordens spot em mercados. Você pode efetuar uma ordem spot fazendo isso. Você pode encontrar a referência para a função `placeSpotOrder` [aqui](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). O Mango tem um arquivo de configuração que contém informações sobre grupos, mercados, tokens e oráculos, e você pode encontrá-lo [aqui](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). Usamos informações desse arquivo para encontrar o grupo e o mercado corretos. @@ -173,7 +173,7 @@ O Mango interage com o Protocolo Serum para efetuar ordens spot em mercados. Voc ## Como carregar lances -O Mango usa as informações do mercado do Protocolo Serum para carregar lances. Você pode carregá-los diretamente do Serum para trabalhar com o Mango. Você pode saber mais sobre os mercados do Serum [aqui](https://github.com/project-serum/serum-ts/tree/master/packages/serum). +O Mango usa as informações do mercado do Protocolo OpenBook para carregar lances. Você pode carregá-los diretamente do OpenBook para trabalhar com o Mango. Você pode saber mais sobre os mercados do OpenBook [aqui](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook). @@ -195,7 +195,7 @@ O Mango usa as informações do mercado do Protocolo Serum para carregar lances. ## Como carregar ofertas -O Mango usa as informações de mercado do Protocolo Serum para carregar ofertas. Você pode carregá-las diretamente do Serum para trabalhar com o Mango. Você pode saber mais sobre os mercados do Serum [aqui](https://github.com/project-serum/serum-ts/tree/master/packages/serum). +O Mango usa as informações de mercado do Protocolo OpenBook para carregar ofertas. Você pode carregá-las diretamente do OpenBook para trabalhar com o Mango. Você pode saber mais sobre os mercados do OpenBook [aqui](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook). diff --git a/docs/pt/integrations/pyth.md b/docs/pt/integrations/pyth.md index 0b88fa187..0bdaf5a5b 100644 --- a/docs/pt/integrations/pyth.md +++ b/docs/pt/integrations/pyth.md @@ -90,5 +90,5 @@ O Pyth fornece um crate do Rust que pode ser usado por programas na cadeia ou ap - [Bibliotecas de clientes](https://docs.pyth.network/consumers/client-libraries) - [Exemplo de código em JS](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Exemplo de código em Rust](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Exemplo de código em Rust](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Exemplo de código no Anchor](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/pt/integrations/serum.md b/docs/pt/integrations/serum.md index f210ebc12..3d84cea9d 100644 --- a/docs/pt/integrations/serum.md +++ b/docs/pt/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Livro de Receitas da Solana - Solana Cookbook | Construindo no Serum + content: Livro de Receitas da Solana - Solana Cookbook | Construindo no OpenBook - - meta - name: og:title - content: Livro de Receitas da Solana - Solana Cookbook | Construindo no Serum + content: Livro de Receitas da Solana - Solana Cookbook | Construindo no OpenBook - - meta - name: description - content: O Serum é um livro de ordens com limite centralizado (CLOB) inovador construído na rede Solana. Aprenda como usar e construir em cima do Serum. + content: O OpenBook é um livro de ordens com limite centralizado (CLOB) inovador construído na rede Solana. Aprenda como usar e construir em cima do OpenBook. - - meta - name: og:description - content: O Serum é um livro de ordens com limite centralizado (CLOB) inovador construído na rede Solana. Aprenda como usar e construir em cima do Serum. + content: O OpenBook é um livro de ordens com limite centralizado (CLOB) inovador construído na rede Solana. Aprenda como usar e construir em cima do OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,26 +36,26 @@ head: content: index,follow --- -# Serum +# OpenBook -O Serum é um protocolo para exchanges descentralizadas construído na Solana. Você pode usar o Serum para criar novos mercados, obter livros de ordens, negociar e muito mais. +O OpenBook é um protocolo para exchanges descentralizadas construído na Solana. Você pode usar o OpenBook para criar novos mercados, obter livros de ordens, negociar e muito mais. -## Como obter um mercado do Serum +## Como obter um mercado do OpenBook -No Serum, um mercado é composto por todas as ordens e recursos necessários para realizar transações. Para qualquer ação realizada no Serum, é fundamental conhecer o mercado em que se está operando. +No OpenBook, um mercado é composto por todas as ordens e recursos necessários para realizar transações. Para qualquer ação realizada no OpenBook, é fundamental conhecer o mercado em que se está operando. @@ -63,22 +63,22 @@ No Serum, um mercado é composto por todas as ordens e recursos necessários par -## Como obter os livros de ordens do Serum +## Como obter os livros de ordens do OpenBook -Os mercados do Serum consistem em livros de ordens que possuem lances e ofertas. Você pode consultar essas informações para ver o que está acontecendo no mercado e agir em conformidade. +Os mercados do OpenBook consistem em livros de ordens que possuem lances e ofertas. Você pode consultar essas informações para ver o que está acontecendo no mercado e agir em conformidade. @@ -88,20 +88,20 @@ Os mercados do Serum consistem em livros de ordens que possuem lances e ofertas. ## Como obter as ordens em aberto atuais -Como trader, você desejará saber quais ordens em aberto você tem em um mercado. Você pode consultar as suas próprias ordens em aberto ou de qualquer outra pessoa em um mercado com o Serum. +Como trader, você desejará saber quais ordens em aberto você tem em um mercado. Você pode consultar as suas próprias ordens em aberto ou de qualquer outra pessoa em um mercado com o OpenBook. diff --git a/docs/pt/references/local-development.md b/docs/pt/references/local-development.md index 7df92adc2..483416fde 100644 --- a/docs/pt/references/local-development.md +++ b/docs/pt/references/local-development.md @@ -434,7 +434,7 @@ O carregamento para a sua rede local é feito passando o arquivo da conta e o en ### Como carregar programas da mainnet -Da mesma forma, é possível baixar o programa Serum Dex v3: +Da mesma forma, é possível baixar o programa OpenBook Dex v3: diff --git a/docs/references/local-development.md b/docs/references/local-development.md index da3dc209d..cf7c2d7f6 100644 --- a/docs/references/local-development.md +++ b/docs/references/local-development.md @@ -441,7 +441,7 @@ Loading it to your localnet is then done by passing the account's file and desti ### How to load programs from mainnet -Similarly, it is possible to download the Serum Dex v3 program: +Similarly, it is possible to download the OpenBook Dex v3 program: diff --git a/docs/th/guides/get-program-accounts.md b/docs/th/guides/get-program-accounts.md index 35577a918..deb5ee1bf 100644 --- a/docs/th/guides/get-program-accounts.md +++ b/docs/th/guides/get-program-accounts.md @@ -76,7 +76,7 @@ head: `getProgramAccounts` คือ RPC method ที่จะคืนค่าทุก accounts ที่ program เป็นเจ้าของ. เราสามารถใช้ `getProgramAccounts` สำหรับดึงข้อมูลได้หลายแบบ เช่น: - หาทุกๆ token accounts ของ wallet -- หาทุกๆ token accounts ที่มี mint เดียวกัน(เช่น ทุกๆ คนที่ถือ token [SRM](https://www.projectserum.com/) ไว้) +- หาทุกๆ token accounts ที่มี mint เดียวกัน(เช่น ทุกๆ คนที่ถือ token [SRM](https://www.projectOpenBook.com/) ไว้) - หาทุกๆ custom accounts ที่ใช้ program นี้(เช่น ทุกๆ คนที่ใช้ [Mango](https://mango.markets/)) นอกจากจะมีประโยชน์แล้ว, `getProgramAccounts` ยังถูกเข้าใจผิดอยู่บ้าง เพราะด้วยข้อจำกัดของมัน การดึงข้อมูลที่ใช้ `getProgramAccounts` จะทำให้ RPC nodes ค้นหา data ขนาดใหญ่. การค้นหานั้นกินทั้ง memory และ resource มากๆ. ผลที่เกิดขึ้นคือถ้าเรียกใช้บ่อยเกินไป หรือใหญ่เกินไปจะทำให้เกิด connection timeouts ได้. ในตอนนี้ `getProgramAccounts` endpoint ยังไม่สนับสนุน pagination. ถ้าผลการค้นหาใหญ่เกินไปผลลัพท์จะถูกตัดทิ้ง. diff --git a/docs/th/integrations/jupiter.md b/docs/th/integrations/jupiter.md index 4b593c41c..3331f0848 100644 --- a/docs/th/integrations/jupiter.md +++ b/docs/th/integrations/jupiter.md @@ -324,7 +324,7 @@ useJupiter Hook จะรับ parameters เพื่อหา routes ที ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -335,7 +335,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/th/integrations/mango.md b/docs/th/integrations/mango.md index 3d4a8edd0..816d8a79e 100644 --- a/docs/th/integrations/mango.md +++ b/docs/th/integrations/mango.md @@ -54,7 +54,7 @@ Mango รวม lend, borrow, swap, และ leverage trade crypto assets ไ ## วิธีดึงข้อมูล Mango Group -mango group คือตะกร้า (basket) ของ cross-margined tokens. มันจะมีข้อมูลกว้างๆ ของ market เกี่ยวกับ tokens, serum dex markets, perp markets, oracles, insurance fund และ fees vaults. แต่ละ version ของ Mango Markets ใช้ Mango Group ที่แตกต่างกัน และมี tokens ที่แตกต่างกัน ใน v3 ปัจจุบันนั้นมีชื่อ group คือ `mainnet.1` นี่คือตาราง table ที่แสดงข้อมูลกลุ่มต่างๆ: +mango group คือตะกร้า (basket) ของ cross-margined tokens. มันจะมีข้อมูลกว้างๆ ของ market เกี่ยวกับ tokens, OpenBook dex markets, perp markets, oracles, insurance fund และ fees vaults. แต่ละ version ของ Mango Markets ใช้ Mango Group ที่แตกต่างกัน และมี tokens ที่แตกต่างกัน ใน v3 ปัจจุบันนั้นมีชื่อ group คือ `mainnet.1` นี่คือตาราง table ที่แสดงข้อมูลกลุ่มต่างๆ: | Group | Version | Cluster | @@ -153,7 +153,7 @@ Mango Account จะเกี่ยวข้องกับ a Mango Group, แ ## วิธีตั้ง spot order -Mango ติดต่อกับ Serum Protocol เพื่อวาง spot orders บน markets เราจะวาง spot +Mango ติดต่อกับ OpenBook Protocol เพื่อวาง spot orders บน markets เราจะวาง spot order ได้ถ้าทำตามนี้ เราสามารถหาข้ออมูลอ้างอิงของ placeSpotOrder function ได้ [ที่นี่](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Mango มี config file ที่มี่ข้อมูลเกี่ญซกับ groups, markets, tokens และ oracles, เราสามารถหาจ้อมูลได้ [ที่นี่](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). เราได้ข้อมูลจาก file นั้นเพื่อหา group และ market ที่ถต้องการได้ @@ -177,9 +177,9 @@ Mango มี config file ที่มี่ข้อมูลเกี่ญซ ## วิธี load bids -Mango uses the market information from Serum Protocol to load bids. เราสามารถ load -them directly from Serum to work with on Mango. เราสามารถ find out more about Serum's -markets [ที่นี่](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango uses the market information from OpenBook Protocol to load bids. เราสามารถ load +them directly from OpenBook to work with on Mango. เราสามารถ find out more about OpenBook's +markets [ที่นี่](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) @@ -200,8 +200,8 @@ markets [ที่นี่](https://github.com/project-serum/serum-ts/tree/mast ## วิธีดึงข้อมูลราคาขาย (asks) -Mango ใช้ข้อมูล market จาก Serum Protocol เพื่อดึงข้อมูลราคาขาย asks. -เราสามารถดึงข้อมูลได้โดยตรงจาก Serum เพื่อทำงานบน Mango เราสามารถอ่านรายละเอียดเพิ่มเกี่ยวกับ Serum's markets ได้ [ที่นี่](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango ใช้ข้อมูล market จาก OpenBook Protocol เพื่อดึงข้อมูลราคาขาย asks. +เราสามารถดึงข้อมูลได้โดยตรงจาก OpenBook เพื่อทำงานบน Mango เราสามารถอ่านรายละเอียดเพิ่มเกี่ยวกับ OpenBook's markets ได้ [ที่นี่](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) diff --git a/docs/th/integrations/pyth.md b/docs/th/integrations/pyth.md index d87ebdb2f..acdad56b9 100644 --- a/docs/th/integrations/pyth.md +++ b/docs/th/integrations/pyth.md @@ -90,5 +90,5 @@ Pyth มี Rust Crate ที่สามารถใช้บน on-chain progr - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/th/integrations/serum.md b/docs/th/integrations/serum.md index 0ceda119b..c1347b66b 100644 --- a/docs/th/integrations/serum.md +++ b/docs/th/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: คู่มือ Solana | การทำงานกับ Serum + content: คู่มือ Solana | การทำงานกับ OpenBook - - meta - name: og:title - content: คู่มือ Solana | การทำงานกับ Serum + content: คู่มือ Solana | การทำงานกับ OpenBook - - meta - name: description - content: Serum เป็นนวัตกรรม CLOB บน Solana. เรียนรู้วิธีใช้ และสร้างบน Serum + content: OpenBook เป็นนวัตกรรม CLOB บน Solana. เรียนรู้วิธีใช้ และสร้างบน OpenBook - - meta - name: og:description - content: Serum เป็นนวัตกรรม CLOB บน Solana. เรียนรู้วิธีใช้ และสร้างบน Serum + content: OpenBook เป็นนวัตกรรม CLOB บน Solana. เรียนรู้วิธีใช้ และสร้างบน OpenBook - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,26 +36,26 @@ head: content: index,follow --- -# Serum +# OpenBook -Serum คือ protocol สำหรับ decentralized exchanges สร้างอยู่บน Solana. เราสามารถใช้ Serum เพื่อสร้าง markets, get order books, trade, และอื่นๆ อีกมากมาย +OpenBook คือ protocol สำหรับ decentralized exchanges สร้างอยู่บน Solana. เราสามารถใช้ OpenBook เพื่อสร้าง markets, get order books, trade, และอื่นๆ อีกมากมาย -## วิธีดึงข้อมูล Serum market +## วิธีดึงข้อมูล OpenBook market -market บน Serum จะมี orders และความสามารถในการสร้าง orders บน Serum สำหรับการจะทำอะไรบน Serum เราต้องรู้ว่า market ไหนที่เราใช้งานอยู่ด้วย +market บน OpenBook จะมี orders และความสามารถในการสร้าง orders บน OpenBook สำหรับการจะทำอะไรบน OpenBook เราต้องรู้ว่า market ไหนที่เราใช้งานอยู่ด้วย @@ -63,22 +63,22 @@ market บน Serum จะมี orders และความสามารถ -## วิธีดึงข้อมูล Serum order books +## วิธีดึงข้อมูล OpenBook order books -Serum markets ประกอบด้วย order books ที่มี bids และ asks. เราสามารค้นหาข้อมูลพวกนี้ได้ทำให้เรารู้ว่า market ตอนนี้เป็นยังไง และตัดสินใจว่าจะทำอะไรต่อไปได้ +OpenBook markets ประกอบด้วย order books ที่มี bids และ asks. เราสามารค้นหาข้อมูลพวกนี้ได้ทำให้เรารู้ว่า market ตอนนี้เป็นยังไง และตัดสินใจว่าจะทำอะไรต่อไปได้ @@ -88,20 +88,20 @@ Serum markets ประกอบด้วย order books ที่มี bids ## วิธีดึงข้อมูล open orders ในปัจจุบัน -ในมุมมองของ trader เราต้องการรู้ open orders ปัจจุบันของเราบน market. เราสามารถค้นหา open orders ของเราเอง หรือของคนอื่นๆ ได้ด้วย Serum. +ในมุมมองของ trader เราต้องการรู้ open orders ปัจจุบันของเราบน market. เราสามารถค้นหา open orders ของเราเอง หรือของคนอื่นๆ ได้ด้วย OpenBook. diff --git a/docs/th/references/local-development.md b/docs/th/references/local-development.md index 125505c96..6ef6ccbb4 100644 --- a/docs/th/references/local-development.md +++ b/docs/th/references/local-development.md @@ -436,7 +436,7 @@ local tests มักจะต้องใช้ programs และ accounts ท ### วิธี load programs from mainnet -และเช่นกันเราสามารถ download Serum Dex v3 program ได้: +และเช่นกันเราสามารถ download OpenBook Dex v3 program ได้: diff --git a/docs/tr/guides/get-program-accounts.md b/docs/tr/guides/get-program-accounts.md index 9c6be40d8..fee275272 100644 --- a/docs/tr/guides/get-program-accounts.md +++ b/docs/tr/guides/get-program-accounts.md @@ -38,7 +38,7 @@ Varsayılan olarak `getProgramAccounts`, aşağıdaki yapıya sahip bir dizi JSO `getProgramAccounts`, bir programın sahip olduğu tüm account'ları döndüren çok yönlü bir RPC methodudur. `getProgramAccounts`'u aşağıdakileri bulmak gibi bir dizi yararlı sorgu için kullanabiliriz: - Belirli bir cüzdan için tüm token account'ları -- Belirli bir mint için tüm token account'ları (tüm [SRM](https://www.projectserum.com/) sahipleri) +- Belirli bir mint için tüm token account'ları (tüm [SRM](https://www.projectOpenBook.com/) sahipleri) - Belirli bir program için tüm private account'lar (tüm [Mango](https://mango.markets/) kullanıcıları) Kullanışlılığına rağmen, `getProgramAccounts`, mevcut kısıtlamaları nedeniyle genellikle yanlış anlaşılır. `getProgramAccounts` tarafından desteklenen sorguların çoğu, büyük veri kümelerini taramak için RPC node’larını gerektirir. Bu taramalar hem bellek hem de kaynak yoğundur. Sonuç olarak, çok sık veya çok geniş kapsamlı çağrılar bağlantı zaman aşımlarına neden olabilir. Ayrıca, bu yazının yazıldığı sırada `getProgramAccounts` uç noktası sayfalandırmayı desteklemez. Bir sorgunun sonuçları çok büyükse, yanıt kesilecektir. diff --git a/docs/tr/references/local-development.md b/docs/tr/references/local-development.md index 94c47892d..eec635296 100644 --- a/docs/tr/references/local-development.md +++ b/docs/tr/references/local-development.md @@ -102,17 +102,17 @@ solana-test-validator --account SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt SRM_ ### How to load programs from mainnet (Programlar mainnet’ten nasıl yüklenir) -Benzer şekilde Serum Dex v3 programını da indirmek mümkündür: +Benzer şekilde OpenBook Dex v3 programını da indirmek mümkündür: ``` -solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so +solana program dump -u m 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so ``` Yerel ağınıza yükleme, doğrulayıcıyı başlatırken programın dosya ve hedef adresini (yerel kümede) ileterek yapılır: ``` -solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin serum_dex_v3.so --reset +solana-test-validator --bpf-program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin OpenBook_dex_v3.so --reset ``` diff --git a/docs/vi/guides/get-program-accounts.md b/docs/vi/guides/get-program-accounts.md index 99118991b..248e4308b 100644 --- a/docs/vi/guides/get-program-accounts.md +++ b/docs/vi/guides/get-program-accounts.md @@ -76,7 +76,7 @@ Mặc định `getProgramAccounts` sẽ trả về một mảng các đối tư `getProgramAccounts` là một phương thức RPC rất linh hoạt và có khả năng trả về tất cả các Account được sở hữu bởi một Program. Chúng ta có thể sử dụng `getProgramAccounts` cho nhiều loại truy vấn khác nhau, ví dụ như: - Tất cả các Account của một ví cụ thể -- Tất cả các Account cho một mint (hoặc thường được gọi là token đối với các blockchain khác) (i.e. Tất cả người giữ token [SRM](https://www.projectserum.com/)) +- Tất cả các Account cho một mint (hoặc thường được gọi là token đối với các blockchain khác) (i.e. Tất cả người giữ token [SRM](https://www.projectOpenBook.com/)) - Tất cả các Account theo ý muốn của một Program cụ thể (i.e. Tất cả Account người dùng của ứng dụng [Mango](https://mango.markets/)) Mặc dù hữu dụng là vậy, `getProgramAccounts` thường bị dùng sai vì các hạn chế hiện tại. Nhiều câu truy vấn được hỗ trợ bởi `getProgramAccounts` yêu cầu các nốt RPC phải quét một khối lượng rất lớn các dữ liệu. Những câu truy vấn như vậy không chỉ lớn về dung lượng dữ liệu và còn lớn về khối lượng tính toán. Tất yếu, việc gọi quá nhiều về cả tần suất và khối lượng dẫn đến kết nối sẽ bị ngắt. Ngoài ra, tại thời điểm cuốn sách được viết, `getProgramAccounts` vẫn chưa hỗ trợ phân trang. Nếu kết quả truy vấn quá lớn, nó sẽ được cắt bỏ đi. diff --git a/docs/vi/integrations/jupiter.md b/docs/vi/integrations/jupiter.md index 6570a2fad..7ac14adef 100644 --- a/docs/vi/integrations/jupiter.md +++ b/docs/vi/integrations/jupiter.md @@ -324,7 +324,7 @@ This is the easiest way to interact with jupiter programs to swap any 2 provided ```bash yarn i @solana/web3.js yarn i cross-fetch -yarn i @project-serum/anchor +yarn i @project-OpenBook/anchor yarn i bs58 ``` @@ -335,7 +335,7 @@ yarn i bs58 ```bash npm i @solana/web3.js npm i cross-fetch -npm i @project-serum/anchor +npm i @project-OpenBook/anchor npm i bs58 ``` diff --git a/docs/vi/integrations/mango.md b/docs/vi/integrations/mango.md index 7f43040e0..0dab64582 100644 --- a/docs/vi/integrations/mango.md +++ b/docs/vi/integrations/mango.md @@ -55,7 +55,7 @@ You'll also need the Solana javascript API library. ## How to get a Mango Group -A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, serum dex markets, perp markets, oracles, insurance fund and fees vaults. Each version +A mango group is a basket of cross-margined tokens. It holds broad market info about tokens, OpenBook dex markets, perp markets, oracles, insurance fund and fees vaults. Each version of Mango Markets uses a different Mango Group containing different tokens. The current v3 group is `mainnet.1`. Here's a table showing the various groups: @@ -156,7 +156,7 @@ You can find the reference for the deposit method [here](https://blockworks-foun ## How to place a spot order -Mango interacts with Serum Protocol to place spot orders on markets. You can place a spot +Mango interacts with OpenBook Protocol to place spot orders on markets. You can place a spot order by doing this. You can find the reference for the placeSpotOrder function [here](https://blockworks-foundation.github.io/mango-client-v3/classes/MangoClient.html#placeSpotOrder). Mango has a config file that contains information on groups, markets, tokens and oracles, you can find it [here](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/ids.json). We use information from that file to find the right group and market. @@ -180,9 +180,9 @@ you can find it [here](https://github.com/blockworks-foundation/mango-client-v3/ ## How to load bids -Mango uses the market information from Serum Protocol to load bids. You can load -them directly from Serum to work with on Mango. You can find out more about Serum's -markets [here](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango uses the market information from OpenBook Protocol to load bids. You can load +them directly from OpenBook to work with on Mango. You can find out more about OpenBook's +markets [here](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) @@ -203,9 +203,9 @@ markets [here](https://github.com/project-serum/serum-ts/tree/master/packages/se ## How to load asks -Mango uses the market information from Serum Protocol to load asks. -You can load them directly from Serum to work with on Mango. You can find out more -about Serum's markets [here](https://github.com/project-serum/serum-ts/tree/master/packages/serum) +Mango uses the market information from OpenBook Protocol to load asks. +You can load them directly from OpenBook to work with on Mango. You can find out more +about OpenBook's markets [here](https://github.com/project-OpenBook/OpenBook-ts/tree/master/packages/OpenBook) diff --git a/docs/vi/integrations/pyth.md b/docs/vi/integrations/pyth.md index 7474d92db..5a414f17f 100644 --- a/docs/vi/integrations/pyth.md +++ b/docs/vi/integrations/pyth.md @@ -90,5 +90,5 @@ Pyth provides a Rust Crate which can be used by on-chain programs or off-chain a - [Client Libraries](https://docs.pyth.network/consumers/client-libraries) - [JS Example Code](https://github.dev/solana-labs/solana/tree/master/web3.js/examples) -- [Rust Example Code](https://github.com/project-serum/anchor/tree/master/tests/pyth) +- [Rust Example Code](https://github.com/project-OpenBook/anchor/tree/master/tests/pyth) - [Anchor Example Code](https://github.com/0xPratik/pyth-anchor-example) diff --git a/docs/vi/integrations/serum.md b/docs/vi/integrations/serum.md index 52f811d8a..22a63d4e6 100644 --- a/docs/vi/integrations/serum.md +++ b/docs/vi/integrations/serum.md @@ -1,18 +1,18 @@ --- -title: Serum +title: OpenBook head: - - meta - name: title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: og:title - content: Solana Cookbook | Building on Serum + content: Solana Cookbook | Building on OpenBook - - meta - name: description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:description - content: Serum is an innovative CLOB on Solana. Learn how to use and build on top of Serum. + content: OpenBook is an innovative CLOB on Solana. Learn how to use and build on top of OpenBook. - - meta - name: og:image content: https://solanacookbook.com/cookbook-sharing-card.png @@ -36,15 +36,15 @@ head: content: index,follow --- -# Serum +# OpenBook -Serum is a protocol for decentralized exchanges built on Solana. You -can use Serum to create new markets, get order books, trade, and more. +OpenBook is a protocol for decentralized exchanges built on Solana. You +can use OpenBook to create new markets, get order books, trade, and more. -## How to get a Serum market +## How to get a OpenBook market -A market on Serum contains all the orders and capabilities to make orders -on Serum. For everything you do on Serum you need to know the market you +A market on OpenBook contains all the orders and capabilities to make orders +on OpenBook. For everything you do on OpenBook you need to know the market you are working with. @@ -52,13 +52,13 @@ are working with. @@ -66,9 +66,9 @@ are working with. -## How to get Serum order books +## How to get OpenBook order books -Serum markets consist of orderbooks which have bids and asks. You can +OpenBook markets consist of orderbooks which have bids and asks. You can query this information so you can see what is going on on the market and act accordingly. @@ -77,13 +77,13 @@ act accordingly. @@ -95,20 +95,20 @@ act accordingly. As a trader, you will want to know what current open orders you have on a market. You can query your or anyone else's open orders on a market -with Serum. +with OpenBook. diff --git a/docs/vi/references/local-development.md b/docs/vi/references/local-development.md index d429b29a0..886364d41 100644 --- a/docs/vi/references/local-development.md +++ b/docs/vi/references/local-development.md @@ -435,7 +435,7 @@ Sau đó, cài đặt nó vào môi trường localnet của bạn bằng cách ### Làm thế nào để cải đặt programs từ mainnet -Tương tự, bạn phải tải xuống program của Serum Dex v3: +Tương tự, bạn phải tải xuống program của OpenBook Dex v3: diff --git a/docs/zh/core-concepts/programs.md b/docs/zh/core-concepts/programs.md index 68d148849..b880f6a84 100644 --- a/docs/zh/core-concepts/programs.md +++ b/docs/zh/core-concepts/programs.md @@ -94,7 +94,7 @@ SPL程序定义了一系列的链上活动,其中包括针对代币的创建 | state.rs | 程序对象,对状态进行反序列化 | | error.rs | 程序中制定的错误 | -最近,[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)逐渐成为了一个广受欢迎的Solana程序开发框架。 +最近,[Anchor](https://project-OpenBook.github.io/anchor/getting-started/introduction.html)逐渐成为了一个广受欢迎的Solana程序开发框架。 Anchor是一个有态度的框架,与Ruby on Rails相似,这个框架旨在减少模式化的代码,将Rust开发流程中的序列化与反序列化过程流水线化。 在部署到Testnet(测试网)和Mainnet(主网)之前,程序在开发和测试阶段经常使用Localhost和Devnet(开发网)环境。 @@ -137,4 +137,4 @@ BPF加载器负责管理程序账户,让客户端可以通过其`program_id` - [Solana Starter Kit by Iron Addicted Dog](https://hackmd.io/@ironaddicteddog/solana-starter-kit) - [Programming on Solana by Paulx](https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/) - [An Introduction to the Solana Blockchain by Hana](https://2501babe.github.io/posts/solana101.html) -- [Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html) +- [Anchor](https://project-OpenBook.github.io/anchor/getting-started/introduction.html) diff --git a/docs/zh/guides/get-program-accounts.md b/docs/zh/guides/get-program-accounts.md index 2411821cc..d4964c531 100644 --- a/docs/zh/guides/get-program-accounts.md +++ b/docs/zh/guides/get-program-accounts.md @@ -76,7 +76,7 @@ head: `getProgramAccounts` 是一个多功能的RPC方法,用于返回由程序拥有的所有账户。我们可以利用`getProgramAccounts`进行许多有用的查询,例如查找: - 特定钱包的所有代币账户 -- 特定代币发行的所有代币账户(即所有[SRM](https://www.projectserum.com/)持有人) +- 特定代币发行的所有代币账户(即所有[SRM](https://www.projectOpenBook.com/)持有人) - 特定程序的所有自定义账户(即所有[Mango](https://mango.markets/)用户) 尽管`getProgramAccounts`非常有用,但由于目前的限制,它经常被误解。许多由`getProgramAccounts`支持的查询需要RPC节点扫描大量数据。这些扫描需要大量的内存和资源。因此,调用过于频繁或范围过大可能导致连接超时。此外,在撰写本文时,`getProgramAccounts`端点不支持分页。如果查询结果太大,响应将被截断。 diff --git a/docs/zh/references/local-development.md b/docs/zh/references/local-development.md index c2e01f940..2a65338ee 100644 --- a/docs/zh/references/local-development.md +++ b/docs/zh/references/local-development.md @@ -437,7 +437,7 @@ Solana的web3[`连接`](https://solana-labs.github.io/solana-web3.js/classes/Con ### 如何从主网加载程序 -同样地,我们可以下载Serum Dex v3程序: +同样地,我们可以下载OpenBook Dex v3程序: diff --git a/docs/zh_t/core-concepts/programs.md b/docs/zh_t/core-concepts/programs.md index f763542ed..3daf82acc 100644 --- a/docs/zh_t/core-concepts/programs.md +++ b/docs/zh_t/core-concepts/programs.md @@ -94,7 +94,7 @@ SPL程序定義了一系列的鏈上活動,其中包括針對代幣的創建 | state.rs | 程序對象,對狀態進行反序列化 | | error.rs | 程序中制定的錯誤 | -最近,[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)逐漸成爲了一個廣受歡迎的Solana程序開發框架。 +最近,[Anchor](https://project-OpenBook.github.io/anchor/getting-started/introduction.html)逐漸成爲了一個廣受歡迎的Solana程序開發框架。 Anchor是一個有態度的框架,與Ruby on Rails相似,這個框架旨在減少模式化的代碼,將Rust開發流程中的序列化與反序列化過程流水線化。 在部署到Testnet(測試網)和Mainnet(主網)之前,程序在開發和測試階段經常使用Localhost和Devnet(開發網)環境。 @@ -137,4 +137,4 @@ BPF加載器負責管理程序賬戶,讓客戶端可以通過其`program_id` - [Solana Starter Kit by Iron Addicted Dog](https://hackmd.io/@ironaddicteddog/solana-starter-kit) - [Programming on Solana by Paulx](https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/) - [An Introduction to the Solana Blockchain by Hana](https://2501babe.github.io/posts/solana101.html) -- [Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html) +- [Anchor](https://project-OpenBook.github.io/anchor/getting-started/introduction.html) diff --git a/docs/zh_t/guides/get-program-accounts.md b/docs/zh_t/guides/get-program-accounts.md index a2a819b4d..ed8461b40 100644 --- a/docs/zh_t/guides/get-program-accounts.md +++ b/docs/zh_t/guides/get-program-accounts.md @@ -76,7 +76,7 @@ head: `getProgramAccounts` 是一個多功能的RPC方法,用於返回由程序擁有的所有賬戶。我們可以利用`getProgramAccounts`進行許多有用的查詢,例如查找: - 特定錢包的所有代幣賬戶 -- 特定代幣發行的所有代幣賬戶(即所有[SRM](https://www.projectserum.com/)持有人) +- 特定代幣發行的所有代幣賬戶(即所有[SRM](https://www.projectOpenBook.com/)持有人) - 特定程序的所有自定義賬戶(即所有[Mango](https://mango.markets/)用戶) 儘管`getProgramAccounts`非常有用,但由於目前的限制,它經常被誤解。許多由`getProgramAccounts`支持的查詢需要RPC節點掃描大量數據。這些掃描需要大量的內存和資源。因此,調用過於頻繁或範圍過大可能導致連接超時。此外,在撰寫本文時,`getProgramAccounts`端點不支持分頁。如果查詢結果太大,響應將被截斷。 diff --git a/docs/zh_t/references/local-development.md b/docs/zh_t/references/local-development.md index a22982de4..01a410477 100644 --- a/docs/zh_t/references/local-development.md +++ b/docs/zh_t/references/local-development.md @@ -437,7 +437,7 @@ Solana的web3[`連接`](https://solana-labs.github.io/solana-web3.js/classes/Con ### 如何從主網加載程序 -同樣地,我們可以下載Serum Dex v3程序: +同樣地,我們可以下載OpenBook Dex v3程序: