solana/web3.js 소개
15136 단어 tutorialjavascript
각 수업과 방법 및 실습에 대한 자세한 텍스트가 없으므로 배우는 가장 좋은 방법은 its auto-generated docs을 통해 조사하는 것입니다.
이 텍스트는 주요 기능과 가장 유용한 방법에 대한 간략한 설명입니다. 일반적인 사용 사례에 대한 코드 예제는 📙 Solana Cookbook에서 찾을 수 있습니다.
많은 클래스와 메서드가 있지만 프로그램에서 프로그램으로 사용할 수 있는 몇 가지가 있으며 다음 마인드맵 그래프에 표시되는 클래스 및 해당 메서드의 짧은 목록에 넣을 수 있습니다.
Link to FigJam file
@solana/web3.js
의 주요 작업은 클라이언트 앱이 블록체인에서 다른 정보를 가져오고, 계정을 생성하고, 새 트랜잭션을 생성/서명/전송하고, 계정 간에 SOL을 전송하고 작업할 수 있는 몇 가지 유용한 인터페이스를 위해 Solana 블록체인과의 연결을 여는 것입니다. 키 쌍.🔌 연결
가장 먼저 사용할 것은 Connection 개체입니다. 또한 다른 방법으로 가장 많이 청구됩니다. 이 개체는 추가 통신을 위해 선택한 Solana 네트워크(메인넷, devnet, 테스트넷)와의 연결을 생성합니다.
const connection = new Connection(
"https://api.devnet.solana.com",
"confirmed"
);
Connection
를 사용하여 devnet
에 일부 SOL을 요청할 수 있습니다.const airdropSignature = await connection.requestAirdrop(
fromKeypair.publicKey,
LAMPORTS_PER_SOL
);
getParsedAccountInfo() 및 getAccountInfo()은 어떤 토큰 또는 NFT가 일부 지갑을 보유하고 있는지 찾는 것과 같이 계정에 대한 정보를 가져오는 데 매우 유용합니다.
getBalance()은 계정에 보유하고 있는 SOL 금액을 반환합니다.
confirmTransaction() & sendTransaction()은 일부 Transaction을 생성하여 블록체인으로 전송하고자 할 때 사용됩니다.
getLatestBlockhash()은 새 TX를 생성하는 동안 사용할 수 있는 최근 블록해시에 대한 정보를 반환합니다.
const recentBlockhash = await connection.getLatestBlockhash();
const transaction = new Transaction({
recentBlockhash: recentBlockhash.blockhash,
}).add(
SystemProgram.transfer({
fromPubkey: payer.publicKey,
toPubkey: payee.publicKey,
lamports: 10,
})
);
getProgramAccounts() 지정된 프로그램 ID가 소유한 모든 계정을 가져옵니다. 예를 들어 Candy Machine에서 만든 NFT 계정을 찾는 데 사용할 수 있습니다.
🔐 키쌍 및 공개키
다양한 Solana 라이브러리로 수행할 수 있는 다양한 작업에는 Keypair 또는 Wallet이 필요합니다. 연결된 지갑에서 하나를 사용하거나 generate() 기능을 사용하여 키 쌍을 직접 생성한 다음 해당 속성publicKey 및 secretKey을 사용할 수 있습니다.
let keypair = Keypair.generate();
그리고
publicKey
자체는 PublicKey 또는 toBase58()과 같은 몇 가지 편리한 메서드와 toString()을 사용하여 findProgramAddress() 클래스의 인스턴스를 반환하여 제공된 시드 텍스트에 사용할 수 있는 주소를 찾습니다.🧾 거래 및 거래 안내
Transaction 객체는 TransactionInstruction 클래스를 사용하여 정확한 지침으로 채우는 Solana 네트워크용 새 TX를 생성하는 데 사용할 수 있습니다.
const transferTransaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: fromKeypair.publicKey,
toPubkey: toKeypair.publicKey,
lamports: 10000000,
})
);
유용한 방법:
add()은 새로 생성된 TX에 하나 이상의 명령을 추가합니다.
const modifyComputeUnits = ComputeBudgetProgram.setComputeUnitLimit({
units: 1000000
});
const transaction = new Transaction()
.add(modifyComputeUnits)
.add(
SystemProgram.transfer({
fromPubkey: payer.publicKey,
toPubkey: toAccount,
lamports: 10000000,
})
);
sign()은 지정된 서명자와 트랜잭션에 서명합니다.
getEstimatedFee() 거래와 관련된 예상 수수료를 가져옵니다.
const fees = await transaction.getEstimatedFee(connection);
TX는 전역적으로 사용 가능한 방법으로 서명, 전송 및 확인이 가능합니다sendAndConfirmTransaction().
await web3.sendAndConfirmTransaction(connection, transaction, [fromWallet]);
각 TX는 TransactionInstruction 개체를 사용하는 TX 명령으로 채워집니다.
await transferTransaction.add(
new TransactionInstruction({
keys: [{ pubkey: fromKeypair.publicKey, isSigner: true, isWritable: true }],
data: Buffer.from("Data to send in transaction", "utf-8"),
programId: new PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),
})
);
🛠 시스템 프로그램
SystemProgram은 트랜잭션이 시스템 프로그램과 상호작용하기 위한 팩토리 클래스입니다.
일부 SOL을 전송하려는 경우 SystemProgram과 상호 작용해야 할 수 있습니다.
const transferTransaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: fromKeypair.publicKey,
toPubkey: toKeypair.publicKey,
lamports: lamportsToSend,
})
);
또한 createAccount() & createAccountWithSeed()을 사용하여 새 계정을 만드는 것이 유용할 수 있습니다.
const createAccountParams = {
fromPubkey: fromPubkey.publicKey,
newAccountPubkey: newAccountPubkey.publicKey,
lamports: rentExemptionAmount,
space,
programId: SystemProgram.programId,
};
const createAccountTransaction = new Transaction().add(
SystemProgram.createAccount(createAccountParams)
);
🧰 더 보기
위의 예는 Solana Cookbook에서 가져온 것입니다. 더 많은 것을 확인하십시오.
Solana 네트워크에서 토큰과 상호 작용하려면 다른 @solana/spl-token 패키지를 추가로 사용해야 합니다.
Reference
이 문제에 관하여(solana/web3.js 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jamland/intro-to-solanaweb3js-6a0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)