中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做金融平臺網(wǎng)站需要多少錢網(wǎng)站推廣包括

做金融平臺網(wǎng)站需要多少錢,網(wǎng)站推廣包括,商城網(wǎng)站怎么做的,網(wǎng)站專業(yè)好找工作嗎文章目錄 Solana開發(fā)之Anchor框架一、什么是Anchor二、安裝和使用1. 安裝rust2. 安裝Solana下載預(yù)構(gòu)建的二進(jìn)制文件 3. 使用 Anchor 版本管理器 (avm) 進(jìn)行安裝(推薦) 四、Anchor 核心原理Anchor 程序由三部分組成程序的 ID 從哪里…

文章目錄

  • Solana開發(fā)之Anchor框架
    • 一、什么是Anchor
    • 二、安裝和使用
      • 1. 安裝rust
      • 2. 安裝Solana
        • 下載預(yù)構(gòu)建的二進(jìn)制文件
      • 3. 使用 Anchor 版本管理器 (avm) 進(jìn)行安裝(推薦)
    • 四、Anchor 核心原理
      • Anchor 程序由三部分組成
      • 程序的 ID 從哪里來
    • 五、初始化項(xiàng)目、build項(xiàng)目、運(yùn)行測試用例
      • 初始化項(xiàng)目
      • build項(xiàng)目
      • 測試用例編寫
        • 用例demo
      • 運(yùn)行測試用例
    • 六、本地構(gòu)建和部署
    • 七、使用Anchor與 Solana 區(qū)塊鏈進(jìn)行交互
      • 使用場景
      • Anchor on the front-end
      • 【推薦】如何使用 Kinobi 創(chuàng)建 Anchor 程序客戶端
    • 參考

Solana開發(fā)之Anchor框架

大多數(shù) Rust 開發(fā)使用的是 Anchor 框架。Anchor 文檔指出,開發(fā)人員只需要熟悉 Rust 的基礎(chǔ)知識(即 Rust Book 的前九章)。

一、什么是Anchor

官網(wǎng):https://www.anchor-lang.com/

Anchor 是一個功能強(qiáng)大的框架,旨在快速構(gòu)建安全的 Solana 程序。它通過減少諸如賬戶(反)序列化和指令數(shù)據(jù)等領(lǐng)域的樣板文件、進(jìn)行必要的安全檢查、自動生成客戶端庫以及提供廣泛的測試環(huán)境來簡化開發(fā)流程。

Anchor 是 Solana 的 Sealevel 運(yùn)行時的框架,提供了幾種方便的開發(fā)人員工具來編寫智能合約。

二、安裝和使用

1. 安裝rust

https://www.rust-lang.org/tools/install

在 Rust 開發(fā)環(huán)境中,所有工具都安裝在 ~/.cargo/bin 目錄中,您可以在這里找到包括 rustc、cargorustup 在內(nèi)的 Rust 工具鏈。

Rust 開發(fā)者通常會將該目錄加入 PATH 環(huán)境變量中。在安裝過程中,rustup 會嘗試配置 PATH。 由于不同平臺、命令行 Shell 之間存在差異,rustup 中也可能存在 Bug,因此在終端重啟或用戶重新登錄之前,rustup 對 PATH 的修改可能不會生效,甚至完全無效。

如果安裝后在終端嘗試執(zhí)行 rustc --version 失敗,那么,以上內(nèi)容就是最可能的原因。

2. 安裝Solana

https://docs.solanalabs.com/cli/install

linux、macos:

sh -c "$(curl -sSfL https://release.solana.com/v1.18.17/install)"

Windows:

cmd /c "curl https://release.solana.com/v1.18.17/solana-install-init-x86_64-pc-windows-msvc.exe --output C:\solana-install-tmp\solana-install-init.exe --create-dirs"

復(fù)制并粘貼以下命令,然后按 Enter 鍵安裝最新版本的 Solana。如果您看到系統(tǒng)彈出安全窗口,請選擇允許程序運(yùn)行。

C:\solana-install-tmp\solana-install-init.exe v1.18.17

通過運(yùn)行以下命令確認(rèn) solana 您已安裝所需的版本:

	solana --version

After a successful install, solana-install update may be used to easily update the Solana software to a newer version at any time.
安裝成功后, solana-install update 可用于隨時輕松地將 Solana 軟件更新到更新版本。

安裝使用穩(wěn)定版本:

sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

使用官方安裝命令安裝 Solana CLI 工具套件:您可以 stable 替換為與所需版本的軟件版本匹配的版本標(biāo)記(即 v1.18.1 ),或使用以下三個符號通道名稱之一: stable 、 beta 或 edge 。

報錯:# solana-test-validator
Aborted (core dumped)

嘗試運(yùn)行 solana-test-validator --log 以查看此類輸出。您的錯誤可能依賴于您沒有的 CPU AVX2 指令。

# solana-test-validator --log
[2024-07-09T15:55:05.254090404Z INFO  solana_test_validator] solana-validator 1.17.25 (src:d0ed878d; feat:3580551090, client:SolanaLabs)
[2024-07-09T15:55:05.254140535Z INFO  solana_test_validator] Starting validator with: ArgsOs {inner: ["solana-test-validator","--log",],}
[2024-07-09T15:55:05.254172296Z WARN  solana_perf] CUDA is disabled
[2024-07-09T15:55:05.254196077Z INFO  solana_perf] AVX detected
[2024-07-09T15:55:05.254203279Z ERROR solana_perf] Incompatible CPU detected: missing AVX2 support. Please build from source on the target
Aborted (core dumped)
下載預(yù)構(gòu)建的二進(jìn)制文件

如果您不想使用 solana-install 來管理安裝,可以手動下載并安裝二進(jìn)制文件。

通過導(dǎo)航到 https://github.com/solana-labs/solana/releases/latest 下載二進(jìn)制文件,下載 solana-release-x86_64-unknown-linux-gnu.tar.bz2

tar jxf solana-release-x86_64-unknown-linux-gnu.tar.bz2
cd solana-release/
export PATH=$PWD/bin:$PATH

因?yàn)?code>release.solana.com 不太好訪問,這里我直接git上自己下載,解壓安裝。

3. 使用 Anchor 版本管理器 (avm) 進(jìn)行安裝(推薦)

Anchor 版本管理器是用于使用 anchor-cli 多個版本的工具。它需要與從源代碼構(gòu)建相同的依賴關(guān)系。如果已安裝 NPM 包,建議您卸載它。

使用 Cargo 安裝 avm 。請注意,如果您安裝了二進(jìn)制文件,這將替換您的 anchor 二進(jìn)制文件。

#sudo apt-get install build-essential
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force

使用 avm 安裝最新版本的 CLI,然后將其設(shè)置為要使用的版本。

avm install latest
avm use latest

驗(yàn)證安裝。

anchor --version

最新的默認(rèn)是0.30.1,我暫時安裝使用用anchor 0.29.0,

avm install 0.29.0
avm use 0.29.0

添加 你的安裝到bin中

export PATH=/root/.avm/bin:$PATH

四、Anchor 核心原理

Anchor 程序由三部分組成

Anchor 程序由三部分組成: program 模塊、標(biāo)有 #[derive(Accounts)]Accounts 結(jié)構(gòu)和 declare_id 宏。

declare_id! 宏的作用是在 Rust 代碼中聲明 Solana 程序的唯一標(biāo)識符(ID)。
這個 ID 在 Solana 網(wǎng)絡(luò)中是唯一的,用于標(biāo)識和定位這個程序。它類似于在以太坊中合約的地址。

啟動新的 Anchor 項(xiàng)目時,你將看到以下內(nèi)容:

// use this import to gain access to common anchor features
use anchor_lang::prelude::*;// declare an id for your program
declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");// write your business logic here
#[program]
mod hello_anchor {use super::*;pub fn initialize(_ctx: Context<Initialize>) -> Result<()> {Ok(())}
}// validate incoming accounts here
#[derive(Accounts)]
pub struct Initialize {}
  • use anchor_lang::prelude:😗;
    這個導(dǎo)入語句引入了 Anchor 框架中常用的特性和類型,例如 Context、Accounts 等。

  • declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
    這個宏聲明了當(dāng)前 Solana 程序的唯一標(biāo)識符(ID)。
    這個 ID 在 Solana 網(wǎng)絡(luò)中是唯一的,用于標(biāo)識和定位這個程序。

  • #[program]
    這個屬性宏標(biāo)記了一個 Rust 模塊作為 Solana 程序的入口點(diǎn)。

  • mod hello_anchor { … }
    這個模塊包含了程序的業(yè)務(wù)邏輯實(shí)現(xiàn)。

  • #[derive(Accounts)]
    這個屬性宏自動為 Initialize 結(jié)構(gòu)體生成一些樣板代碼,用于驗(yàn)證賬戶。

這段代碼定義了一個基本的 Solana 程序,包含了程序 ID 的聲明和一個簡單的初始化函數(shù)。Anchor 框架通過提供各種宏和結(jié)構(gòu)體,大大簡化了 Solana 程序的開發(fā)過程,使開發(fā)者能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。

程序的 ID 從哪里來

declare_id! 宏的作用是在 Rust 代碼中聲明 Solana 程序的唯一標(biāo)識符(ID)。

這個 ID 在 Solana 網(wǎng)絡(luò)中是唯一的,用于標(biāo)識和定位這個程序。它類似于在以太坊中合約的地址。

那么這個 ID 是從哪里來的呢?有幾種方式可以獲得程序的 ID:

  1. 手動生成:

你可以手動生成一個 32 字節(jié)的隨機(jī) Pubkey 作為程序的 ID。這種方式適用于開發(fā)和測試階段。
在示例代碼中,“Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS” 就是一個手動生成的 Pubkey 字符串。

  1. 使用 Anchor 的 CLI 工具生成:
    Anchor 提供了一個命令行工具,可以幫助你在部署程序時自動生成程序 ID。
    當(dāng)你運(yùn)行 anchor build 命令時,Anchor 會為你的程序生成一個唯一的 ID,并將其寫入到 Anchor 項(xiàng)目的配置文件中。

  2. 從 Anchor 項(xiàng)目的配置文件讀取:
    如果你的 Solana 程序是使用 Anchor 框架開發(fā)的,那么在項(xiàng)目的配置文件(如 Cargo.toml 或 anchor.toml)中會有程序 ID 的定義。
    你可以直接從這個配置文件中讀取程序 ID,并在代碼中使用 declare_id! 宏進(jìn)行聲明。

程序 ID 的作用都是為了在 Solana 網(wǎng)絡(luò)中唯一標(biāo)識你的 Solana 程序。在部署和調(diào)用程序時,需要使用這個 ID 來定位和執(zhí)行程序。

declare_id!宏設(shè)置了程序的公鑰。對于本地開發(fā),使用anchor init命令設(shè)置程序?qū)⒃?code>target/deploy目錄中生成一個密鑰對,并填充此宏。

五、初始化項(xiàng)目、build項(xiàng)目、運(yùn)行測試用例

初始化項(xiàng)目

要初始化一個新項(xiàng)目,只需運(yùn)行:

anchor init <new-workspace-name>

這將創(chuàng)建一個新的Anchor工作區(qū),以下是文件夾中的一些重要文件:

  • .anchor 文件夾:它包括最新的程序日志和用于測試的本地賬本
  • 文件夾 app :一個空文件夾,則可用于保存前端
  • programs 文件夾:此文件夾包含您的程序。它可以包含多個,但最初只包含與 同名的程序。該程序已包含一個 lib.rs 包含一些示例代碼的文件。
    programs 文件夾下,你將看到一個src目錄。它包含lib.rs
  • 文件夾 tests :包含 E2E 測試的文件夾。它已經(jīng)包含一個文件,用于測試 中的示例代碼。 programs/
  • migrations 文件夾:在此文件夾中,可以保存程序的部署和遷移腳本。
  • 文件 Anchor.toml :此文件為程序配置工作區(qū)范圍的設(shè)置。
    • 您的程序在 localnet 上的地址 ( [programs.localnet] )
    • 一個注冊表,你的程序可以被推送到 ( [registry] )
    • 可用于測試的提供程序 ( [provider] )
    • Anchor 執(zhí)行腳本 ( [scripts] )。 test 腳本在運(yùn)行 anchor test 時運(yùn)行。您可以使用 anchor run <script_name> 運(yùn)行自己的腳本。

build項(xiàng)目

要編譯這個程序,我們可以運(yùn)行 Anchor build 命令:

anchor build

生成完成后,您應(yīng)該會看到一個名為 target 的新文件夾。

IDL 位于 target/idl/xxx.json , IDL 與 Solidity 中的 ABI(或 GraphQL 中的查詢定義)非常相似,我們將在 JavaScript 測試和前端以類似的方式使用它們,通過 RPC 與我們的 Solana 程序進(jìn)行通信。

測試用例編寫

使用 Anchor 調(diào)用 Solana 程序, 我們通常需要兩件主要事情:

  1. Provider - 是 Provider 與 Solana 網(wǎng)絡(luò)連接的抽象,通常由 Connection, Wallet, and a preflight commitment組成。

在測試中,Anchor 框架將基于環(huán)境 ( anchor.Provider.env() ) 為我們創(chuàng)建提供者,但在客戶端上,我們需要使用用戶的 Solana 錢包自己構(gòu)建提供者

  1. program - 這是一個 program 抽象,它結(jié)合了 Provider 、 idl 和 ( programID 在構(gòu)建程序時生成),并允許我們針對我們的程序調(diào)用 RPC 方法。

同樣,與 Provider 一樣,Anchor 提供了一種方便的訪問方式 program ,但是在構(gòu)建前端時,我們需要自己構(gòu)建它 provider 。

一旦我們有了這兩樣?xùn)|西,我們就可以開始在程序中調(diào)用函數(shù)了。例如,在我們的程序中,我們有一個 initialize 函數(shù)。在我們的測試中,您將看到我們可以直接使用以下方法 program.rpc.functionName 調(diào)用該函數(shù):

const tx = await program.rpc.initialize();

這是一種非常常見的模式,您在使用 Anchor 時會經(jīng)常使用,一旦您掌握了了解其工作原理的竅門,就可以非常輕松地連接到 Solana 程序并與之交互。

用例demo

測試用例:

  • 定義了一個名為 “Test mint” 的測試用例。
  • 為一個新的 wallet 賬戶進(jìn)行空投,獲得 1 SOL。
  • 創(chuàng)建一個新的 asset 賬戶。
  • 調(diào)用 MyNFT 合約的 mint 指令,傳入相關(guān)的賬戶信息。
  • 使用 fetchAssetV1fetchCollectionV1 獲取剛剛創(chuàng)建的資產(chǎn)和集合信息,并打印出來。

實(shí)戰(zhàn)demo:

import * as anchor from "@coral-xyz/anchor";
import { Program } from "@coral-xyz/anchor";
import { Mynft } from "../target/types/mynft";
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
import {defaultPublicKey,generateSigner,signerIdentity,sol,publicKey,
} from "@metaplex-foundation/umi";
import { toWeb3JsKeypair } from "@metaplex-foundation/umi-web3js-adapters";
import {createCollectionV1,fetchAssetV1,fetchCollectionV1,MPL_CORE_PROGRAM_ID,
} from "@metaplex-foundation/mpl-core";const beneficiary = publicKey("4k7LBNMW3J6gMvEZMy77vZar8h3h3a9Moc8F4xxxxx");describe("mynft", () => {// Configure the client to use the local cluster.anchor.setProvider(anchor.AnchorProvider.env());const program = anchor.workspace.Mynft as Program<Mynft>;const umi = createUmi(anchor.AnchorProvider.env().connection);const payer = generateSigner(umi);umi.use(signerIdentity(payer));const collection = generateSigner(umi);const authority = generateSigner(umi);before(async () => {await umi.rpc.airdrop(payer.publicKey, sol(1));createCollectionV1(umi, {collection,name: "Mynft",uri: "http://mynft.org",updateAuthority: authority.publicKey,}).sendAndConfirm(umi);});it("Test mint", async () => {const wallet = generateSigner(umi);await umi.rpc.airdrop(wallet.publicKey, sol(1.0));const asset = generateSigner(umi);const tx = await program.methods.mint().accounts({coreAsset: asset.publicKey,coreCollection: collection.publicKey,authoriy: authority.publicKey,wallet: wallet.publicKey,beneficiary,mplCore: MPL_CORE_PROGRAM_ID,systemProgram: defaultPublicKey(),}).signers([toWeb3JsKeypair(wallet),toWeb3JsKeypair(asset),toWeb3JsKeypair(authority),]).rpc();const assetInfo = await fetchAssetV1(umi, asset.publicKey);console.log(assetInfo);const collectionInfo = await fetchCollectionV1(umi, collection.publicKey);console.log(collectionInfo);});
});

其中: …/target/types/mynft 為anchor build時候根據(jù)idl自動為你生成的typescript文件方便您調(diào)用合約方法。

在項(xiàng)目根目錄下,運(yùn)行 anchor test 命令。這會執(zhí)行 tests 目錄下所有的測試用例,包括這個 “Test mint” 用例。
如果你只想運(yùn)行這個特定的測試用例,可以在 anchor test 命令后添加 -f "Test mint" 參數(shù),這樣只會運(yùn)行名為 “Test mint” 的測試用例。

運(yùn)行測試用例

現(xiàn)在,我們可以通過運(yùn)行 test 來測試程序:

anchor test

六、本地構(gòu)建和部署

官方文檔:https://solana.com/developers/guides/getstarted/setup-local-development
參考URL: https://guides.quicknode.com/guides/solana-development/getting-started/start-a-solana-local-validator
參考URL: https://dev.to/edge-and-node/the-complete-guide-to-full-stack-solana-development-with-react-anchor-rust-and-phantom-3291

本地開發(fā)環(huán)境可以為開發(fā)人員提供更受控和高效的開發(fā)環(huán)境。

首先,我們要確保 Solana 工具套件正確配置為本地開發(fā)(Local development)。
運(yùn)行solana config set --url localhost命令,確保所有配置指向本地主機(jī) URL。

還要確保你有一個本地密鑰對(key pair)以與 Solana 進(jìn)行交互。你必須擁有一個帶有 SOL 余額的 Solana 錢包才能使用 Solana CLI 部署程序。

運(yùn)行solana address命令檢查是否已經(jīng)有本地密鑰對。

如果遇到錯誤,請運(yùn)行命令:

solana-keygen new -o /root/.config/solana/id.json
solana config set --keypair /root/.config/solana/id.json
solana config get

將在默認(rèn)情況下在~/.config/solana/id.json路徑創(chuàng)建一個新的文件系統(tǒng)錢包。它還會提供一個可用于恢復(fù)公鑰和私鑰的恢復(fù)短語。建議保存此密鑰對,即使它是在本地使用。

還要注意,如果你已經(jīng)在默認(rèn)位置保存了文件系統(tǒng)錢包,solana-keygen new命令將不覆蓋它,除非使用**–force**命令指定。

接下來,我們要確保我們的 Anchor.toml 文件正確指向本地主機(jī)。

...
[programs.localnet]
hello-world = "EJTW6qsbfya86xeLRQpKLM8qhn11cJXmU35QbJwE11R8"
...
[provider]
cluster = "Localnet"
wallet = '~config/solana/id.json'

配置項(xiàng)目的程序id,如這里的"EJTW6qsbfya86xeLRQpKLM8qhn11cJXmU35QbJwE11R8"
程序 ID 是公開的。但它的密鑰對存儲在 target/deploy 文件夾中。它遵循基于程序名稱的特定命名約定。例如,如果程序名為 hello_world,Anchor 將在 target/deploy/hello-world-keypair.json 中尋找密鑰對。

如果在部署過程中找不到該文件,Anchor 將生成一個新的密鑰對,這將生成新的程序 ID。

因此,在第一次部署后更新程序 ID 至關(guān)重要。hello-world-keypair.json 文件用作程序所有權(quán)的證明。如果密鑰對泄露,惡意行為者可以對程序進(jìn)行未經(jīng)授權(quán)的更改。

通過 [provider],我們告訴 Anchor 使用 本地主機(jī) 和指定的錢包來支付存儲和交易費(fèi)用。

確保 [provider] 部分的 cluster 參數(shù)設(shè)置為 “Localnet”。這表示你是在本地運(yùn)行 Solana 節(jié)點(diǎn)進(jìn)行部署和測試。

Solana CLI 自帶一個測試驗(yàn)證器 。運(yùn)行 solana-test-validator 命令 將在你的工作站上啟動一個功能齊全的單節(jié)點(diǎn)集群。這對許多原因都很有益,例如沒有 RPC 速率限制、沒有空投限制、直接在鏈上部署程序、從文件加載賬戶以及從公共集群克隆賬戶。測試驗(yàn)證器必須在單獨(dú)的打開的終端窗口中運(yùn)行,并保持運(yùn)行,以使本地主機(jī)集群保持在線并可供交互。

在啟動 solana-test-validator 時,你可以使用參數(shù)來指定 RPC 服務(wù)監(jiān)聽的 IP 地址。
例如,如果你想讓 RPC 服務(wù)監(jiān)聽在 0.0.0.0 上,而不是默認(rèn)的 127.0.0.1,可以使用以下命令:

solana-test-validator --bind-address 0.0.0.0 --rpc-port 8899

現(xiàn)在,我們可以成功運(yùn)行 anchor deploy 來將程序部署到我們的本地ledger。傳輸?shù)奖镜?ledger 的任何數(shù)據(jù)都將保存在當(dāng)前工作目錄中生成的 test-ledger 文件夾中。建議將此文件夾添加到你的 .gitignore 文件中,以避免將此文件夾提交到你的存儲庫中。此外,退出本地 ledger(即在終端中按下 Ctrl + C)不會刪除發(fā)送到集群的任何數(shù)據(jù)。您可以

solana-test-validator --reset

這將清空本地數(shù)據(jù)目錄并重新初始化節(jié)點(diǎn)。

Solana Explorer
開發(fā)者還可以將 Solana Explorer 配置為他們的本地ledger。轉(zhuǎn)到 Solana Explorer。在導(dǎo)航欄中,單擊當(dāng)前集群狀態(tài)的綠色按鈕:

這將打開一個側(cè)邊欄,允許你選擇一個集群。單擊 Custom RPC URL。這應(yīng)該自動填充為 http://localhost:8899 。如果沒有,請?zhí)顚?#xff0c;以便將區(qū)塊瀏覽器指向你的機(jī)器的 8899 端口:

配置本地區(qū)塊鏈瀏覽器有幾個非常重要原因:

  • 它允許開發(fā)者實(shí)時檢查本地ledger上的交易,就像他們通常在分析 devnet 或 mainnet 的區(qū)塊瀏覽器上所具有的功能
  • 更容易可視化賬戶、代幣和程序的狀態(tài),就像它們在實(shí)時集群上運(yùn)行一樣
  • 它提供了有關(guān)錯誤和交易失敗的詳細(xì)信息
  • 它提供了一致的開發(fā)體驗(yàn),因?yàn)樗且粋€熟悉的界面
solana balance
solana address
solana airdrop 100

從你提供的 solana config get 輸出結(jié)果來看,你的 Solana 客戶端配置指向的是 Solana 主網(wǎng),而不是本地測試網(wǎng)。

使用 solana config set --url http://localhost:8899 命令將 RPC URL 設(shè)置為本地測試節(jié)點(diǎn)的地址。

使用 solana config get 命令再次檢查配置,確認(rèn) RPC URL 已經(jīng)正確設(shè)置。

netstat -an |findstr 8899
TCP 127.0.0.1:54115 127.0.0.1:8899 TIME_WAIT

七、使用Anchor與 Solana 區(qū)塊鏈進(jìn)行交互

使用場景

在 Node.js 環(huán)境下使用 Anchor 來與 Solana 區(qū)塊鏈進(jìn)行交互是非常常見的場景。

  • 測試環(huán)境
    在開發(fā)和測試階段,你可以使用 anchor.setProvider(anchor.AnchorProvider.env()) 來連接到本地的 Solana 開發(fā)集群。這樣可以快速進(jìn)行開發(fā)和測試。

  • 生產(chǎn)環(huán)境
    當(dāng)你準(zhǔn)備將應(yīng)用部署到生產(chǎn)環(huán)境時,你可以配置 Anchor 客戶端連接到 Solana 主網(wǎng)。

如果你的項(xiàng)目中涉及到通過 IDL 和合約進(jìn)行交互,我建議你優(yōu)先考慮使用 Anchor,它可以為你提供更加完整和高效的開發(fā)體驗(yàn)。

Anchor on the front-end

官方ts文檔:https://coral-xyz.github.io/anchor/ts/index.html
參考原文鏈接:https://creatorsdao.github.io/solana-co-learn/Solana-Co-Learn/module5/anchor-on-the-front-end/anchor-into-typescript/

Program 對象提供了一個自定義的 API,通過結(jié)合程序 IDL 和 Provider 來與特定程序進(jìn)行交互。

創(chuàng)建 Program 對象,我們需要以下內(nèi)容:

  • Connection - 集群連接
  • Wallet - 用于支付和簽署交易的默認(rèn)密鑰對
  • Provider - 將 Connection 和 Wallet 封裝到一個 Solana 集群中
  • IDL - 表示程序結(jié)構(gòu)的文件

Provider 對象代表了兩個主要部分的結(jié)合:

  • Connection - 連接到 Solana 集群(例如 localhost、devnet、mainnet)
  • Wallet - 用于支付和簽署交易的指定地址
    Provider 就能夠代表 Wallet 向 Solana 區(qū)塊鏈發(fā)送交易,并在發(fā)送的交易中加入錢包的簽名。

創(chuàng)建一個 Program 對象,代表了以下兩個事物的組合:

  • IDL:展示了程序的結(jié)構(gòu)。
  • Provider:負(fù)責(zé)與集群建立連接并簽署 Wallet 的 Connection。

你需要導(dǎo)入程序的 IDL,并明確指定programId,這個programId通常會包含在IDL中,當(dāng)然也可以單獨(dú)聲明。

【推薦】如何使用 Kinobi 創(chuàng)建 Anchor 程序客戶端

原文鏈接: https://learnblockchain.cn/article/8639

為測試驗(yàn)證,暫時不需要。

參考

[推薦]指南:用 Anchor 構(gòu)建 Solana 程序
參考URL: https://learnblockchain.cn/article/7386

http://www.risenshineclean.com/news/35173.html

相關(guān)文章:

  • oa網(wǎng)站建設(shè)企業(yè)網(wǎng)站建設(shè)專業(yè)服務(wù)
  • 網(wǎng)站服務(wù)器租賃費(fèi)用網(wǎng)站制作建設(shè)
  • 公積金網(wǎng)站 如何做減員百度投訴電話人工客服24小時
  • 網(wǎng)站建設(shè)發(fā)言臨沂seo排名外包
  • 做pvc卡片的交流網(wǎng)站合肥百度seo代理
  • 做俄羅斯網(wǎng)站作品推廣
  • 哪些網(wǎng)站做的比較好看的自己可以做網(wǎng)站嗎
  • 網(wǎng)站分析 實(shí)例2022最新新聞素材摘抄
  • 建立學(xué)校網(wǎng)站需要多少錢?福州百度推廣排名優(yōu)化
  • 網(wǎng)站見建設(shè)seo高端培訓(xùn)
  • 平面設(shè)計包括哪些方面的設(shè)計北京網(wǎng)站seowyhseo
  • 個人網(wǎng)站制作模板圖片什么網(wǎng)站可以免費(fèi)推廣
  • 網(wǎng)站架構(gòu)和網(wǎng)絡(luò)seo優(yōu)化公司哪家好
  • 網(wǎng)站wordpress主題遼寧網(wǎng)站建設(shè)
  • 株洲網(wǎng)站設(shè)計公司百度競價排名是什么意思
  • 建網(wǎng)站是什么技術(shù)怎么樣才能引流客人進(jìn)店
  • 成都有哪些做網(wǎng)站的優(yōu)化一個網(wǎng)站需要多少錢
  • 做網(wǎng)站如何購買服務(wù)器百度收錄入口
  • 成都營銷型網(wǎng)站設(shè)計東莞seo管理
  • 有實(shí)力營銷型網(wǎng)站建設(shè)湖北seo關(guān)鍵詞排名優(yōu)化軟件
  • 深圳哪里有做網(wǎng)站的優(yōu)化推廣網(wǎng)站推薦
  • 做哪個視頻網(wǎng)站賺錢今日油價92汽油價格調(diào)整最新消息
  • 網(wǎng)站開發(fā)前期調(diào)研黃山網(wǎng)站建設(shè)
  • 電子商務(wù)網(wǎng)站開發(fā)系統(tǒng)平臺百度營銷登錄
  • 優(yōu)化工具箱中國優(yōu)化網(wǎng)
  • 電子商務(wù)網(wǎng)站建設(shè)與維護(hù)讀書報告百度怎么做關(guān)鍵詞優(yōu)化
  • 網(wǎng)站做商標(biāo)在那類怎么制作網(wǎng)頁頁面
  • 合肥品牌型網(wǎng)站建設(shè)地址上海短視頻seo優(yōu)化網(wǎng)站
  • 成都集團(tuán)網(wǎng)站建設(shè)核酸檢測最新消息
  • 信息造價網(wǎng)seo是啥