UNPKG

@tribecahq/registry

Version:

Registry of Tribeca DAOs.

80 lines 2.9 kB
import { PublicKey } from "@solana/web3.js"; import { mapValues } from "lodash"; const loadQuarryConfig = ({ rewarder, mintWrapper, redeemer, additionalRewarders, ...rest }) => { return { ...rest, rewarder: rewarder ? new PublicKey(rewarder) : undefined, mintWrapper: mintWrapper ? new PublicKey(mintWrapper) : undefined, redeemer: redeemer ? new PublicKey(redeemer) : undefined, additionalRewarders: additionalRewarders.map((rew) => new PublicKey(rew)), }; }; const loadTrackedAccountInfo = (infos) => { return mapValues(infos, ({ address, ...info }) => ({ ...info, address: new PublicKey(address), })); }; /** * Loads a Governor from its JSON representation. * @returns */ export const loadGovernorConfig = ({ address, governance, quarry, saves, minter, gauge, mndeNftLocker, nftLockerGauges, addresses, ...rest }) => { return { address: new PublicKey(address), governance: { ...governance, address: new PublicKey(governance.address), parameters: governance.parameters ? { governor: governance.parameters.governor, locker: governance.parameters.locker, } : undefined, }, quarry: quarry ? loadQuarryConfig(quarry) : undefined, saves: saves ? saves.map(({ mint, duration }) => ({ mint: new PublicKey(mint), duration, })) : undefined, minter: minter ? { mintWrapper: minter.mintWrapper ? new PublicKey(minter.mintWrapper) : undefined, redeemer: minter.redeemer ? new PublicKey(minter.redeemer) : undefined, } : undefined, gauge: gauge ? { ...gauge, gaugemeister: new PublicKey(gauge.gaugemeister), } : undefined, mndeNftLocker: mndeNftLocker ? { ...mndeNftLocker, address: new PublicKey(mndeNftLocker.address), creators: mndeNftLocker.creators.map((c) => new PublicKey(c)), } : undefined, nftLockerGauges: nftLockerGauges ? nftLockerGauges.map((gaugeType) => { return { ...gaugeType, address: new PublicKey(gaugeType.address), stateAccount: gaugeType.stateAccount ? new PublicKey(gaugeType.stateAccount) : undefined, }; }) : undefined, ...rest, addresses: addresses ? loadTrackedAccountInfo(addresses) : undefined, }; }; //# sourceMappingURL=loadConfig.js.map