Package Exports
- @layerzerolabs/lz-solana-sdk-v2
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/blocked_messagelib.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn-gcda.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn-horizen.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn-nansen.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn-nethermind.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn-p2p.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn-paxos.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/dvn.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/endpoint.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/executor.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/pricefeed.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-mainnet/uln.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/blocked_messagelib.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/dvn-gcda.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/dvn.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/endpoint.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/executor.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/oft.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/pricefeed.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/simple_messagelib.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-sandbox-local/uln.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/blocked_messagelib.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/dvn-gcda.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/dvn-p2p.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/dvn-paxos.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/dvn.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/endpoint.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/executor.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/oft.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/pricefeed.json
- @layerzerolabs/lz-solana-sdk-v2/deployments/solana-testnet/uln.json
- @layerzerolabs/lz-solana-sdk-v2/package.json
- @layerzerolabs/lz-solana-sdk-v2/umi
Readme
@layerzerolabs/lz-solana-sdk-v2
The LayerZero Solana SDK V2 package provides a set of essential utilities and modules to facilitate the development and integration of applications with the Solana blockchain. It includes functions for managing deployments, handling wallets, interacting with contracts, and more.
Features
- Deployment Management: Functions for reading, writing, and managing deployments.
- Wallet Management: Functions for handling Solana wallets.
- Contract Interaction: Functions for interacting with deployed contracts.
- Event Extraction: Functions for extracting events from transactions.
- Price Feed Management: Functions for managing price feeds.
- Utility Functions: Various utility functions for Solana development.
Installation
To install the LayerZero Solana SDK V2 package, you can use npm or yarn:
npm install @layerzerolabs/lz-solana-sdk-v2
or
yarn add @layerzerolabs/lz-solana-sdk-v2
Usage
Deployment Management
getProgramKeypair
Gets the program keypair for a specified network and program.
import { getProgramKeypair } from "@layerzerolabs/lz-solana-sdk-v2";
const network = "solana-sandbox-local";
const program = "endpoint";
const programKeypair = getProgramKeypair(network, program);
console.log(`Program Keypair: ${programKeypair.toBase58()}`);
Wallet Management
getChainWallet
Retrieves a chain wallet for a specified stage and name.
import { getChainWallet } from "@layerzerolabs/lz-solana-sdk-v2";
const stage = "production";
const name = "oracle";
const wallet = getChainWallet(stage, name);
console.log(`Wallet Address: ${wallet.publicKey.toBase58()}`);
Contract Interaction
initEndpoint
Initializes the endpoint settings, including eid and admin, and registers the blocked message library.
import { Endpoint } from "@layerzerolabs/lz-solana-sdk-v2";
const endpointProgram = new Endpoint(programPublicKey);
const endpointId = 1;
const payer = new PublicKey("payerPublicKey");
const admin = new PublicKey("adminPublicKey");
const instruction = endpointProgram.initEndpoint(endpointId, payer, admin);
console.log(`Transaction Instruction: ${instruction}`);
Event Extraction
extractSentPacketEventByTxHash
Extracts the sent packet event by transaction hash.
import { extractSentPacketEventByTxHash } from "@layerzerolabs/lz-solana-sdk-v2";
const connection = new Connection("https://api.mainnet-beta.solana.com");
const program = new PublicKey("programPublicKey");
const signature = "transactionSignature";
extractSentPacketEventByTxHash(connection, program, signature).then(
(events) => {
console.log(`Sent Packet Events: ${events}`);
},
);
Price Feed Management
initPriceFeed
Initializes the price feed.
import { PriceFeed } from "@layerzerolabs/lz-solana-sdk-v2";
const priceFeedProgram = new PriceFeed(programPublicKey);
const connection = new Connection("https://api.mainnet-beta.solana.com");
const payer = new PublicKey("payerPublicKey");
const admin = new PublicKey("adminPublicKey");
const updaters = [new PublicKey("updaterPublicKey")];
priceFeedProgram
.initPriceFeed(connection, payer, admin, updaters)
.then((instruction) => {
console.log(`Transaction Instruction: ${instruction}`);
});
Utility Functions
deriveLzReceiveTypesAccountsPDA
Derives the LZ receive types accounts PDA.
import { deriveLzReceiveTypesAccountsPDA } from "@layerzerolabs/lz-solana-sdk-v2";
const program = new PublicKey("programPublicKey");
const oappId = new PublicKey("oappId");
const [pda, bump] = deriveLzReceiveTypesAccountsPDA(program, oappId);
console.log(`PDA: ${pda.toBase58()}, Bump: ${bump}`);