UNPKG

@tribecahq/tribeca-sdk

Version:

The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.

44 lines 1.49 kB
import { Keypair } from "@solana/web3.js"; import BN from "bn.js"; import { DEFAULT_GOVERNANCE_PARAMETERS } from "../.."; import { findGovernorAddress } from ".."; /** * Creates a Governor. * @returns */ export const createGovernorWithElectorate = async ({ createElectorate, sdk, gokiSDK, owners = [sdk.provider.wallet.publicKey], governanceParameters = DEFAULT_GOVERNANCE_PARAMETERS, govBaseKP = Keypair.generate(), smartWalletBaseKP = Keypair.generate(), }) => { const [governor] = await findGovernorAddress(govBaseKP.publicKey); const createTXs = []; const { smartWalletWrapper, tx: tx1 } = await gokiSDK.newSmartWallet({ owners: [...owners, governor], threshold: new BN(2), numOwners: 3, base: smartWalletBaseKP, }); createTXs.push({ title: "Create Smart Wallet", tx: tx1, }); const { key: electorate, tx: createElectorateTX } = await createElectorate(governor); const { wrapper: governorWrapper, tx: tx2 } = await sdk.govern.createGovernor({ ...governanceParameters, baseKP: govBaseKP, electorate, smartWallet: smartWalletWrapper.key, }); createTXs.push({ title: "Create Governor", tx: tx2, }); createTXs.push({ title: "Create Electorate", tx: createElectorateTX, }); return { governorWrapper, smartWalletWrapper, createTXs, electorate, }; }; //# sourceMappingURL=setup.js.map