@tribecahq/tribeca-sdk
Version:
The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.
35 lines • 1.37 kB
JavaScript
import { Keypair } from "@solana/web3.js";
import { DEFAULT_GOVERNANCE_PARAMETERS, DEFAULT_LOCKER_PARAMS, } from "../../constants";
import { createGovernorWithElectorate } from "../govern/setup";
import { LockerWrapper } from "./locker";
/**
* Creates a new Locker.
* @returns
*/
export const createLocker = async ({ sdk, gokiSDK, govTokenMint, owners = [sdk.provider.wallet.publicKey], governanceParameters = DEFAULT_GOVERNANCE_PARAMETERS, lockerParams = DEFAULT_LOCKER_PARAMS, governorBaseKP = Keypair.generate(), lockerBaseKP = Keypair.generate(), smartWalletBaseKP = Keypair.generate(), }) => {
const { electorate, ...governor } = await 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 LockerWrapper(sdk, electorate, governor.governorWrapper.governorKey),
};
};
//# sourceMappingURL=setup.js.map