@metadaoproject/futarchy-sdk
v4.0.0-alpha.54
Published
The Futarchy TypeScript SDK provides developers with a powerful, easy-to-use interface to interact with futarchy-based Solana programs deployed by The MetaDAO that enabled proposals powered by decision-markets. This SDK abstracts away ,any complexities, a
Downloads
320
Readme
Futarchy TypeScript SDK for The MetaDAO
The Futarchy TypeScript SDK provides developers with a powerful, easy-to-use interface to interact with futarchy-based Solana programs deployed by The MetaDAO that enabled proposals powered by decision-markets. This SDK abstracts away ,any complexities, allowing developers to manage DAOs, proposals, and token balances with simple, asynchronous function calls.
Features
- DAO Management: Fetch details of all DAOs or a specific DAO within The MetaDAO ecosystem.
- Proposals: Retrieve proposals associated with a DAO, along with their respective vaults.
- Token Balances: Query wallet balances of DAO tokens as well as conditional tokens of proposals for DAO members.
Installation
pnpm install -P @metadaoproject/futarchy-sdk
Usage
To start using the SDK, you need to import it into your project, along with necessary types from Solana's web3.js library. You can import the RPC client for example. Then you select the AUTOCRAT_VERSION you would like(0 is the latest). AUTOCRAT_VERSION refers to the version of the main Solana program that powers The MetaDAO.
import { PublicKey } from "@solana/web3.js";
import { FutarchyRPCClient, AUTOCRAT_VERSIONS } from "@metadaoproject/futarchy-sdk";
Initializing the Client
Now with the goodies imported, initialize the FutarchyRPCClient
.
const provider = new AnchorProvider(connection, wallet, {});
const programVersion = AUTOCRAT_VERSIONS[0];
const client = FutarchyRPCClient.make(programVersion, provider);
Fetching DAOs
To fetch all DAOs:
const daos = await client.daos.fetchAllDaos();
To fetch a specific DAO by its address:
const daoAddress = "YourDaoAddressHere";
const dao = await client.daos.fetchDao(daoAddress);
Working with Proposals
To fetch proposals for a specific DAO:
const proposals = await client.proposals.fetchProposals(dao);
Managing Token Balances
To fetch main token wallet balances for a DAO member:
const ownerWallet = new PublicKey("YourWalletPublicKeyHere");
const balances = await client.balances.fetchMainTokenWalletBalances(
dao,
ownerWallet
);