@tribecahq/tribeca-sdk
Version:
The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.
46 lines (40 loc) • 1.18 kB
text/typescript
import { utils } from "@project-serum/anchor";
import { PublicKey, SystemProgram } from "@solana/web3.js";
import { TRIBECA_ADDRESSES } from "../../constants";
export * from "./pdaSync";
export const findLockerAddress = async (
base: PublicKey
): Promise<[PublicKey, number]> => {
return await PublicKey.findProgramAddress(
[utils.bytes.utf8.encode("Locker"), base.toBuffer()],
TRIBECA_ADDRESSES.LockedVoter
);
};
export const findEscrowAddress = async (
locker: PublicKey,
authority: PublicKey
): Promise<[PublicKey, number]> => {
return await PublicKey.findProgramAddress(
[
utils.bytes.utf8.encode("Escrow"),
locker.toBuffer(),
authority.toBuffer(),
],
TRIBECA_ADDRESSES.LockedVoter
);
};
export const findWhitelistAddress = async (
locker: PublicKey,
programId: PublicKey,
owner: PublicKey | null
): Promise<[PublicKey, number]> => {
return await PublicKey.findProgramAddress(
[
utils.bytes.utf8.encode("LockerWhitelistEntry"),
locker.toBuffer(),
programId.toBuffer(),
owner ? owner.toBuffer() : SystemProgram.programId.toBuffer(),
],
TRIBECA_ADDRESSES.LockedVoter
);
};