@tribecahq/tribeca-sdk
Version:
The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.
836 lines (834 loc) • 16.3 kB
text/typescript
import { generateErrorMap } from "@saberhq/anchor-contrib";
export type SimpleVoterIDL = {
version: "0.5.8";
name: "simple_voter";
instructions: [
{
name: "initializeElectorate";
accounts: [
{
name: "base";
isMut: false;
isSigner: true;
},
{
name: "electorate";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "SimpleElectorate";
},
{
kind: "account";
type: "publicKey";
path: "base";
}
];
};
},
{
name: "governor";
isMut: false;
isSigner: false;
},
{
name: "govTokenMint";
isMut: false;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "proposalThreshold";
type: "u64";
}
];
},
{
name: "initializeTokenRecord";
accounts: [
{
name: "authority";
isMut: false;
isSigner: true;
},
{
name: "tokenRecord";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "SimpleTokenRecord";
},
{
kind: "account";
type: "publicKey";
path: "authority";
},
{
kind: "account";
type: "publicKey";
account: "state :: Electorate";
path: "electorate";
}
];
};
},
{
name: "electorate";
isMut: true;
isSigner: false;
},
{
name: "govTokenVault";
isMut: false;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
}
];
},
{
name: "activateProposal";
accounts: [
{
name: "electorate";
isMut: false;
isSigner: false;
},
{
name: "governor";
isMut: false;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "governProgram";
isMut: false;
isSigner: false;
}
];
args: [];
},
{
name: "depositTokens";
accounts: [
{
name: "authority";
isMut: false;
isSigner: true;
},
{
name: "tokenRecord";
isMut: true;
isSigner: false;
},
{
name: "govTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "govTokenVault";
isMut: true;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "amount";
type: "u64";
}
];
},
{
name: "withdrawTokens";
accounts: [
{
name: "authority";
isMut: false;
isSigner: true;
},
{
name: "tokenRecord";
isMut: true;
isSigner: false;
},
{
name: "govTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "govTokenVault";
isMut: true;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "amount";
type: "u64";
}
];
},
{
name: "castVotes";
accounts: [
{
name: "electorate";
isMut: false;
isSigner: false;
},
{
name: "authority";
isMut: false;
isSigner: true;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "tokenRecord";
isMut: true;
isSigner: false;
},
{
name: "vote";
isMut: true;
isSigner: false;
},
{
name: "tribeca";
accounts: [
{
name: "governor";
isMut: true;
isSigner: false;
},
{
name: "program";
isMut: false;
isSigner: false;
}
];
}
];
args: [
{
name: "voteSide";
type: "u8";
}
];
},
{
name: "withdrawVotes";
accounts: [
{
name: "electorate";
isMut: false;
isSigner: false;
},
{
name: "authority";
isMut: false;
isSigner: true;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "tokenRecord";
isMut: true;
isSigner: false;
},
{
name: "vote";
isMut: true;
isSigner: false;
},
{
name: "tribeca";
accounts: [
{
name: "governor";
isMut: true;
isSigner: false;
},
{
name: "program";
isMut: false;
isSigner: false;
}
];
}
];
args: [];
},
{
name: "finalizeVotes";
accounts: [
{
name: "authority";
isMut: false;
isSigner: true;
},
{
name: "governor";
isMut: true;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "tokenRecord";
isMut: true;
isSigner: false;
}
];
args: [];
}
];
accounts: [
{
name: "Electorate";
type: {
kind: "struct";
fields: [
{
name: "bump";
type: "u8";
},
{
name: "base";
type: "publicKey";
},
{
name: "governor";
type: "publicKey";
},
{
name: "govTokenMint";
type: "publicKey";
},
{
name: "proposalThreshold";
type: "u64";
}
];
};
},
{
name: "TokenRecord";
type: {
kind: "struct";
fields: [
{
name: "bump";
type: "u8";
},
{
name: "authority";
type: "publicKey";
},
{
name: "electorate";
type: "publicKey";
},
{
name: "tokenVaultKey";
type: "publicKey";
},
{
name: "balance";
type: "u64";
},
{
name: "unfinalizedVotes";
type: "u64";
}
];
};
}
];
errors: [
{
code: 6000;
name: "BelowProposingThreshold";
msg: "Below proposing threshold.";
}
];
};
export const SimpleVoterJSON: SimpleVoterIDL = {
version: "0.5.8",
name: "simple_voter",
instructions: [
{
name: "initializeElectorate",
accounts: [
{
name: "base",
isMut: false,
isSigner: true,
},
{
name: "electorate",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "SimpleElectorate",
},
{
kind: "account",
type: "publicKey",
path: "base",
},
],
},
},
{
name: "governor",
isMut: false,
isSigner: false,
},
{
name: "govTokenMint",
isMut: false,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
{
name: "proposalThreshold",
type: "u64",
},
],
},
{
name: "initializeTokenRecord",
accounts: [
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "tokenRecord",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "SimpleTokenRecord",
},
{
kind: "account",
type: "publicKey",
path: "authority",
},
{
kind: "account",
type: "publicKey",
account: "state :: Electorate",
path: "electorate",
},
],
},
},
{
name: "electorate",
isMut: true,
isSigner: false,
},
{
name: "govTokenVault",
isMut: false,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
],
},
{
name: "activateProposal",
accounts: [
{
name: "electorate",
isMut: false,
isSigner: false,
},
{
name: "governor",
isMut: false,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "governProgram",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "depositTokens",
accounts: [
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "tokenRecord",
isMut: true,
isSigner: false,
},
{
name: "govTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "govTokenVault",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "amount",
type: "u64",
},
],
},
{
name: "withdrawTokens",
accounts: [
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "tokenRecord",
isMut: true,
isSigner: false,
},
{
name: "govTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "govTokenVault",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "amount",
type: "u64",
},
],
},
{
name: "castVotes",
accounts: [
{
name: "electorate",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "tokenRecord",
isMut: true,
isSigner: false,
},
{
name: "vote",
isMut: true,
isSigner: false,
},
{
name: "tribeca",
accounts: [
{
name: "governor",
isMut: true,
isSigner: false,
},
{
name: "program",
isMut: false,
isSigner: false,
},
],
},
],
args: [
{
name: "voteSide",
type: "u8",
},
],
},
{
name: "withdrawVotes",
accounts: [
{
name: "electorate",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "tokenRecord",
isMut: true,
isSigner: false,
},
{
name: "vote",
isMut: true,
isSigner: false,
},
{
name: "tribeca",
accounts: [
{
name: "governor",
isMut: true,
isSigner: false,
},
{
name: "program",
isMut: false,
isSigner: false,
},
],
},
],
args: [],
},
{
name: "finalizeVotes",
accounts: [
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "governor",
isMut: true,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "tokenRecord",
isMut: true,
isSigner: false,
},
],
args: [],
},
],
accounts: [
{
name: "Electorate",
type: {
kind: "struct",
fields: [
{
name: "bump",
type: "u8",
},
{
name: "base",
type: "publicKey",
},
{
name: "governor",
type: "publicKey",
},
{
name: "govTokenMint",
type: "publicKey",
},
{
name: "proposalThreshold",
type: "u64",
},
],
},
},
{
name: "TokenRecord",
type: {
kind: "struct",
fields: [
{
name: "bump",
type: "u8",
},
{
name: "authority",
type: "publicKey",
},
{
name: "electorate",
type: "publicKey",
},
{
name: "tokenVaultKey",
type: "publicKey",
},
{
name: "balance",
type: "u64",
},
{
name: "unfinalizedVotes",
type: "u64",
},
],
},
},
],
errors: [
{
code: 6000,
name: "BelowProposingThreshold",
msg: "Below proposing threshold.",
},
],
};
export const SimpleVoterErrors = generateErrorMap(SimpleVoterJSON);