@tribecahq/tribeca-sdk
Version:
The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.
43 lines • 1.64 kB
JavaScript
;
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