@saberhq/snapshots
Version:
The TypeScript SDK for the Saber Voting Escrow Snapshot system.
36 lines • 1.03 kB
JavaScript
import { newProgramMap } from "@saberhq/anchor-contrib";
import { SolanaAugmentedProvider } from "@saberhq/solana-contrib";
import { SNAPSHOTS_ADDRESSES, SNAPSHOTS_IDLS } from "./constants";
import { SnapshotsWrapper } from "./wrappers";
/**
* Snapshots SDK.
*/
export class SnapshotsSDK {
constructor(provider, programs) {
this.provider = provider;
this.programs = programs;
}
/**
* Creates a new instance of the SDK with the given keypair.
*/
withSigner(signer) {
return SnapshotsSDK.load({
provider: this.provider.withSigner(signer),
});
}
/**
* Loads the SDK.
* @returns
*/
static load({ provider }) {
const programs = newProgramMap(provider, SNAPSHOTS_IDLS, SNAPSHOTS_ADDRESSES);
return new SnapshotsSDK(new SolanaAugmentedProvider(provider), programs);
}
/**
* Snapshots program helpers.
*/
get snapshots() {
return new SnapshotsWrapper(this);
}
}
//# sourceMappingURL=sdk.js.map