UNPKG

@tribecahq/tribeca-sdk

Version:

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

43 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GovernWrapper = void 0; const solana_contrib_1 = require("@saberhq/solana-contrib"); const web3_js_1 = require("@solana/web3.js"); const __1 = require("../.."); const governor_1 = require("./governor"); const pda_1 = require("./pda"); class GovernWrapper { constructor(sdk) { this.sdk = sdk; this.program = sdk.programs.Govern; } get provider() { return this.sdk.provider; } async fetchVote(key) { return await this.program.account.vote.fetch(key); } async createGovernor({ electorate, smartWallet, baseKP = web3_js_1.Keypair.generate(), ...governorParams }) { const [governor, bump] = await (0, pda_1.findGovernorAddress)(baseKP.publicKey); const wrapper = new governor_1.GovernorWrapper(this.sdk, governor); return { wrapper, tx: new solana_contrib_1.TransactionEnvelope(this.provider, [ this.sdk.programs.Govern.instruction.createGovernor(bump, electorate, { ...__1.DEFAULT_GOVERNANCE_PARAMETERS, ...governorParams, }, { accounts: { base: baseKP.publicKey, governor, smartWallet, payer: this.provider.wallet.publicKey, systemProgram: web3_js_1.SystemProgram.programId, }, }), ], [baseKP]), }; } } exports.GovernWrapper = GovernWrapper; //# sourceMappingURL=govern.js.map