0.1.3 • Published 1 year ago

@parcl-oss/parcl-v3-idl v0.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Parcl V3 IDL

This package provides the Interface Description Language (IDL) for the Parcl V3 Solana program. It includes:

  • The raw IDL JSON object.
  • The full, Anchor-generated TypeScript types for the program, instructions, accounts, and events.

This IDL was generated using Anchor v0.31.0.

Installation

npm install parcl-v3-idl
# or
yarn add parcl-v3-idl
# or
pnpm add parcl-v3-idl

Usage

Accessing the IDL and Types

import {
  PARCL_V3_IDL_JSON, // The raw IDL as a JavaScript object
  type ParclV3, // The main Anchor-generated program type
  // You can also import specific instruction types, account types, event types, etc.
  // For example, if your IDL has an instruction 'initializeMarket':
  // type InitializeMarketInstruction
} from "parcl-v3-idl";

// Using the raw IDL JSON (e.g., for tools that consume the JSON directly)
console.log("Program Address from IDL:", PARCL_V3_IDL_JSON.address);
console.log("IDL Version:", PARCL_V3_IDL_JSON.version);

// The ParclV3 type gives you strong typing for program interactions.

Using with Anchor Program

To use this IDL with the @coral-xyz/anchor library (which you'll need to install in your project), you'll typically do the following. The ParclV3 type provides strong typing for your program interactions.

import { Program, AnchorProvider } from "@coral-xyz/anchor"; // Make sure you have @coral-xyz/anchor installed
import { PARCL_V3_IDL_JSON, type ParclV3 } from "parcl-v3-idl";
import { Connection /*, Wallet, Keypair */ } from "@solana/web3.js";

async function main() {
  // 1. Setup your Solana connection
  const connection = new Connection(
    "https://api.mainnet-beta.solana.com",
    "confirmed"
  );

  // 2. Setup your Wallet and Provider
  // Example: using a dummy keypair for read-only operations or local testing
  // In a frontend app, you'd typically use a wallet adapter (e.g., from @solana/wallet-adapter-react)
  // const dummyWallet = {_publicKey: Keypair.generate().publicKey, signTransaction: async (tx) => tx, signAllTransactions: async (txs) => txs };
  // const provider = new AnchorProvider(connection, dummyWallet, AnchorProvider.defaultOptions());

  // Ensure you have a real provider for transactions
  // const provider = AnchorProvider.env(); // or new AnchorProvider(...)
  // anchor.setProvider(provider); // If using global provider context

  // 3. Create the program instance
  // The Program<T> constructor expects the IDL (as a JS object) and the provider.
  // The generic type ParclV3 (from the Anchor-generated types) provides strong typing.
  // The program ID from the IDL's top-level "address" field is used automatically.

  // Example (ensure provider is properly initialized before this step):
  // const program = new Program<ParclV3>(PARCL_V3_IDL_JSON, provider);

  // Now you can interact with the program with full type safety:
  // const marketAddress = ...;
  // const marketAccount = await program.account.market.fetch(marketAddress);
  // console.log("Market Name:", marketAccount.name);

  // Example of calling an instruction (replace with actual instruction and accounts):
  /*
  if (program.methods.someInstructionName) {
    const txSignature = await program.methods.someInstructionName(param1, param2)
      .accounts({
        // ... specify accounts for the instruction, with type checking
      })
      // .signers([...]) // if needed
      .rpc();
    console.log("Transaction successful with signature:", txSignature);
  }
  */
}

main().catch(console.error);

Note on Program ID: As of @coral-xyz/anchor v0.30.0+, the Program constructor typically infers the program ID from the address field at the root of the IDL object. PARCL_V3_IDL_JSON includes this field, so you usually don't need to pass the program ID separately.

IDL JSON File

The raw parcl-v3-idl.json file is also included in the files array of package.json, so it will be available in node_modules/parcl-v3-idl/parcl-v3-idl.json after installation for tools that might need to consume the raw JSON file directly.

Contributing

This library is a public repository. If you find any issues with the IDL or want to propose changes, please feel free to open an issue or submit a Pull Request on the GitHub repository.

When making changes to parcl-v3-idl.json or parcl-v3-idl.ts, please ensure they remain valid and in sync, reflecting the state of the on-chain Parcl V3 program.

License

MIT

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago