@tribecahq/tribeca-sdk
Version:
The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.
39 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createLocker = void 0;
const web3_js_1 = require("@solana/web3.js");
const constants_1 = require("../../constants");
const setup_1 = require("../govern/setup");
const locker_1 = require("./locker");
/**
* Creates a new Locker.
* @returns
*/
const createLocker = async ({ sdk, gokiSDK, govTokenMint, owners = [sdk.provider.wallet.publicKey], governanceParameters = constants_1.DEFAULT_GOVERNANCE_PARAMETERS, lockerParams = constants_1.DEFAULT_LOCKER_PARAMS, governorBaseKP = web3_js_1.Keypair.generate(), lockerBaseKP = web3_js_1.Keypair.generate(), smartWalletBaseKP = web3_js_1.Keypair.generate(), }) => {
const { electorate, ...governor } = await (0, setup_1.createGovernorWithElectorate)({
createElectorate: async (governorKey) => {
const { locker, tx: tx1 } = await sdk.createLocker({
...lockerParams,
baseKP: lockerBaseKP,
governor: governorKey,
govTokenMint,
});
return {
key: locker,
tx: tx1,
};
},
sdk,
gokiSDK,
owners,
governanceParameters,
govBaseKP: governorBaseKP,
smartWalletBaseKP,
});
return {
...governor,
lockerWrapper: new locker_1.LockerWrapper(sdk, electorate, governor.governorWrapper.governorKey),
};
};
exports.createLocker = createLocker;
//# sourceMappingURL=setup.js.map