@terminusbet/stake-vote-sdk
Version:
A simple SDK for interacting with terminusbet governance
42 lines • 1.43 kB
JavaScript
import { struct, u64, publicKey, vec } from "@coral-xyz/borsh";
import { PublicKey } from "@solana/web3.js";
export class ActiveBallotBoxState {
discriminator;
ballotBots;
constructor(discriminator, ballotBots) {
this.discriminator = discriminator;
this.ballotBots = ballotBots;
}
static fromBuffer(buffer) {
const structure = struct([
u64("discriminator"),
vec(publicKey(), 'ballotBots')
]);
let value = structure.decode(buffer);
return new ActiveBallotBoxState(BigInt(value.discriminator), value.ballotBots);
}
}
export class UserActiveBallotBoxState {
discriminator;
user;
ballotLocks;
constructor(discriminator, user, ballotLocks) {
this.discriminator = discriminator;
this.user = user;
this.ballotLocks = ballotLocks;
}
static fromBuffer(buffer) {
const userActiveBallotAndLockStructure = struct([
publicKey('ballotBot'),
u64('stakeLock'),
]);
const structure = struct([
u64("discriminator"),
publicKey("user"),
vec(userActiveBallotAndLockStructure, 'ballotLocks'),
]);
let value = structure.decode(buffer);
return new UserActiveBallotBoxState(BigInt(value.discriminator), new PublicKey(value.user), value.ballotLocks);
}
}
//# sourceMappingURL=activeBallotBoxState.js.map