@tribecahq/tribeca-sdk
Version:
The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.
1,860 lines (1,858 loc) • 35.9 kB
text/typescript
import { generateErrorMap } from "@saberhq/anchor-contrib";
export type GovernIDL = {
version: "0.5.8";
name: "govern";
instructions: [
{
name: "createGovernor";
accounts: [
{
name: "base";
isMut: false;
isSigner: true;
},
{
name: "governor";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "TribecaGovernor";
},
{
kind: "account";
type: "publicKey";
path: "base";
}
];
};
},
{
name: "smartWallet";
isMut: false;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "electorate";
type: "publicKey";
},
{
name: "params";
type: {
defined: "GovernanceParameters";
};
}
];
},
{
name: "createProposal";
accounts: [
{
name: "governor";
isMut: true;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "TribecaProposal";
},
{
kind: "account";
type: "publicKey";
account: "Governor";
path: "governor";
},
{
kind: "account";
type: "u64";
account: "Governor";
path: "governor.proposal_count";
}
];
};
},
{
name: "proposer";
isMut: false;
isSigner: true;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "instructions";
type: {
vec: {
defined: "ProposalInstruction";
};
};
}
];
},
{
name: "activateProposal";
accounts: [
{
name: "governor";
isMut: false;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "electorate";
isMut: false;
isSigner: true;
}
];
args: [];
},
{
name: "cancelProposal";
accounts: [
{
name: "governor";
isMut: false;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "proposer";
isMut: false;
isSigner: true;
}
];
args: [];
},
{
name: "queueProposal";
accounts: [
{
name: "governor";
isMut: false;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "transaction";
isMut: true;
isSigner: false;
},
{
name: "smartWallet";
isMut: true;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "smartWalletProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "txBump";
type: "u8";
}
];
},
{
name: "newVote";
accounts: [
{
name: "proposal";
isMut: false;
isSigner: false;
},
{
name: "vote";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "TribecaVote";
},
{
kind: "account";
type: "publicKey";
account: "Proposal";
path: "proposal";
},
{
kind: "arg";
type: "publicKey";
path: "voter";
}
];
};
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "voter";
type: "publicKey";
}
];
},
{
name: "setVote";
accounts: [
{
name: "governor";
isMut: false;
isSigner: false;
},
{
name: "proposal";
isMut: true;
isSigner: false;
},
{
name: "vote";
isMut: true;
isSigner: false;
},
{
name: "electorate";
isMut: false;
isSigner: true;
}
];
args: [
{
name: "side";
type: "u8";
},
{
name: "weight";
type: "u64";
}
];
},
{
name: "setGovernanceParams";
accounts: [
{
name: "governor";
isMut: true;
isSigner: false;
},
{
name: "smartWallet";
isMut: false;
isSigner: true;
}
];
args: [
{
name: "params";
type: {
defined: "GovernanceParameters";
};
}
];
},
{
name: "setElectorate";
accounts: [
{
name: "governor";
isMut: true;
isSigner: false;
},
{
name: "smartWallet";
isMut: false;
isSigner: true;
}
];
args: [
{
name: "newElectorate";
type: "publicKey";
}
];
},
{
name: "createProposalMeta";
accounts: [
{
name: "proposal";
isMut: false;
isSigner: false;
},
{
name: "proposer";
isMut: false;
isSigner: true;
},
{
name: "proposalMeta";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "TribecaProposalMeta";
},
{
kind: "account";
type: "publicKey";
account: "Proposal";
path: "proposal";
}
];
};
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "title";
type: "string";
},
{
name: "descriptionLink";
type: "string";
}
];
}
];
accounts: [
{
name: "Governor";
type: {
kind: "struct";
fields: [
{
name: "base";
type: "publicKey";
},
{
name: "bump";
type: "u8";
},
{
name: "proposalCount";
type: "u64";
},
{
name: "electorate";
type: "publicKey";
},
{
name: "smartWallet";
type: "publicKey";
},
{
name: "params";
type: {
defined: "GovernanceParameters";
};
}
];
};
},
{
name: "Proposal";
type: {
kind: "struct";
fields: [
{
name: "governor";
type: "publicKey";
},
{
name: "index";
type: "u64";
},
{
name: "bump";
type: "u8";
},
{
name: "proposer";
type: "publicKey";
},
{
name: "quorumVotes";
type: "u64";
},
{
name: "forVotes";
type: "u64";
},
{
name: "againstVotes";
type: "u64";
},
{
name: "abstainVotes";
type: "u64";
},
{
name: "canceledAt";
type: "i64";
},
{
name: "createdAt";
type: "i64";
},
{
name: "activatedAt";
type: "i64";
},
{
name: "votingEndsAt";
type: "i64";
},
{
name: "queuedAt";
type: "i64";
},
{
name: "queuedTransaction";
type: "publicKey";
},
{
name: "instructions";
type: {
vec: {
defined: "ProposalInstruction";
};
};
}
];
};
},
{
name: "ProposalMeta";
type: {
kind: "struct";
fields: [
{
name: "proposal";
type: "publicKey";
},
{
name: "title";
type: "string";
},
{
name: "descriptionLink";
type: "string";
}
];
};
},
{
name: "Vote";
type: {
kind: "struct";
fields: [
{
name: "proposal";
type: "publicKey";
},
{
name: "voter";
type: "publicKey";
},
{
name: "bump";
type: "u8";
},
{
name: "side";
type: "u8";
},
{
name: "weight";
type: "u64";
}
];
};
}
];
types: [
{
name: "GovernanceParameters";
type: {
kind: "struct";
fields: [
{
name: "votingDelay";
type: "u64";
},
{
name: "votingPeriod";
type: "u64";
},
{
name: "quorumVotes";
type: "u64";
},
{
name: "timelockDelaySeconds";
type: "i64";
}
];
};
},
{
name: "ProposalInstruction";
type: {
kind: "struct";
fields: [
{
name: "programId";
type: "publicKey";
},
{
name: "keys";
type: {
vec: {
defined: "ProposalAccountMeta";
};
};
},
{
name: "data";
type: "bytes";
}
];
};
},
{
name: "ProposalAccountMeta";
type: {
kind: "struct";
fields: [
{
name: "pubkey";
type: "publicKey";
},
{
name: "isSigner";
type: "bool";
},
{
name: "isWritable";
type: "bool";
}
];
};
},
{
name: "ProposalState";
type: {
kind: "enum";
variants: [
{
name: "Draft";
},
{
name: "Active";
},
{
name: "Canceled";
},
{
name: "Defeated";
},
{
name: "Succeeded";
},
{
name: "Queued";
}
];
};
},
{
name: "VoteSide";
type: {
kind: "enum";
variants: [
{
name: "Pending";
},
{
name: "Against";
},
{
name: "For";
},
{
name: "Abstain";
}
];
};
}
];
events: [
{
name: "GovernorCreateEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "electorate";
type: "publicKey";
index: false;
},
{
name: "smartWallet";
type: "publicKey";
index: false;
},
{
name: "parameters";
type: {
defined: "GovernanceParameters";
};
index: false;
}
];
},
{
name: "ProposalCreateEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "proposal";
type: "publicKey";
index: false;
},
{
name: "index";
type: "u64";
index: false;
},
{
name: "instructions";
type: {
vec: {
defined: "ProposalInstruction";
};
};
index: false;
}
];
},
{
name: "ProposalActivateEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "proposal";
type: "publicKey";
index: false;
},
{
name: "votingEndsAt";
type: "i64";
index: false;
}
];
},
{
name: "ProposalCancelEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "proposal";
type: "publicKey";
index: false;
}
];
},
{
name: "ProposalQueueEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "proposal";
type: "publicKey";
index: false;
},
{
name: "transaction";
type: "publicKey";
index: false;
}
];
},
{
name: "VoteSetEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "proposal";
type: "publicKey";
index: false;
},
{
name: "voter";
type: "publicKey";
index: false;
},
{
name: "vote";
type: "publicKey";
index: false;
},
{
name: "side";
type: "u8";
index: false;
},
{
name: "weight";
type: "u64";
index: false;
}
];
},
{
name: "ProposalMetaCreateEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "proposal";
type: "publicKey";
index: false;
},
{
name: "title";
type: "string";
index: false;
},
{
name: "descriptionLink";
type: "string";
index: false;
}
];
},
{
name: "GovernorSetParamsEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "prevParams";
type: {
defined: "GovernanceParameters";
};
index: false;
},
{
name: "params";
type: {
defined: "GovernanceParameters";
};
index: false;
}
];
},
{
name: "GovernorSetElectorateEvent";
fields: [
{
name: "governor";
type: "publicKey";
index: false;
},
{
name: "prevElectorate";
type: "publicKey";
index: false;
},
{
name: "newElectorate";
type: "publicKey";
index: false;
}
];
}
];
errors: [
{
code: 6000;
name: "InvalidVoteSide";
msg: "Invalid vote side.";
},
{
code: 6001;
name: "GovernorNotFound";
msg: "The owner of the smart wallet doesn't match with current.";
},
{
code: 6002;
name: "VotingDelayNotMet";
msg: "The proposal cannot be activated since it has not yet passed the voting delay.";
},
{
code: 6003;
name: "ProposalNotDraft";
msg: "Only drafts can be canceled.";
},
{
code: 6004;
name: "ProposalNotActive";
msg: "The proposal must be active.";
}
];
};
export const GovernJSON: GovernIDL = {
version: "0.5.8",
name: "govern",
instructions: [
{
name: "createGovernor",
accounts: [
{
name: "base",
isMut: false,
isSigner: true,
},
{
name: "governor",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "TribecaGovernor",
},
{
kind: "account",
type: "publicKey",
path: "base",
},
],
},
},
{
name: "smartWallet",
isMut: false,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
{
name: "electorate",
type: "publicKey",
},
{
name: "params",
type: {
defined: "GovernanceParameters",
},
},
],
},
{
name: "createProposal",
accounts: [
{
name: "governor",
isMut: true,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "TribecaProposal",
},
{
kind: "account",
type: "publicKey",
account: "Governor",
path: "governor",
},
{
kind: "account",
type: "u64",
account: "Governor",
path: "governor.proposal_count",
},
],
},
},
{
name: "proposer",
isMut: false,
isSigner: true,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
{
name: "instructions",
type: {
vec: {
defined: "ProposalInstruction",
},
},
},
],
},
{
name: "activateProposal",
accounts: [
{
name: "governor",
isMut: false,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "electorate",
isMut: false,
isSigner: true,
},
],
args: [],
},
{
name: "cancelProposal",
accounts: [
{
name: "governor",
isMut: false,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "proposer",
isMut: false,
isSigner: true,
},
],
args: [],
},
{
name: "queueProposal",
accounts: [
{
name: "governor",
isMut: false,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "transaction",
isMut: true,
isSigner: false,
},
{
name: "smartWallet",
isMut: true,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "smartWalletProgram",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "txBump",
type: "u8",
},
],
},
{
name: "newVote",
accounts: [
{
name: "proposal",
isMut: false,
isSigner: false,
},
{
name: "vote",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "TribecaVote",
},
{
kind: "account",
type: "publicKey",
account: "Proposal",
path: "proposal",
},
{
kind: "arg",
type: "publicKey",
path: "voter",
},
],
},
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
{
name: "voter",
type: "publicKey",
},
],
},
{
name: "setVote",
accounts: [
{
name: "governor",
isMut: false,
isSigner: false,
},
{
name: "proposal",
isMut: true,
isSigner: false,
},
{
name: "vote",
isMut: true,
isSigner: false,
},
{
name: "electorate",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "side",
type: "u8",
},
{
name: "weight",
type: "u64",
},
],
},
{
name: "setGovernanceParams",
accounts: [
{
name: "governor",
isMut: true,
isSigner: false,
},
{
name: "smartWallet",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "GovernanceParameters",
},
},
],
},
{
name: "setElectorate",
accounts: [
{
name: "governor",
isMut: true,
isSigner: false,
},
{
name: "smartWallet",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "newElectorate",
type: "publicKey",
},
],
},
{
name: "createProposalMeta",
accounts: [
{
name: "proposal",
isMut: false,
isSigner: false,
},
{
name: "proposer",
isMut: false,
isSigner: true,
},
{
name: "proposalMeta",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "TribecaProposalMeta",
},
{
kind: "account",
type: "publicKey",
account: "Proposal",
path: "proposal",
},
],
},
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
{
name: "title",
type: "string",
},
{
name: "descriptionLink",
type: "string",
},
],
},
],
accounts: [
{
name: "Governor",
type: {
kind: "struct",
fields: [
{
name: "base",
type: "publicKey",
},
{
name: "bump",
type: "u8",
},
{
name: "proposalCount",
type: "u64",
},
{
name: "electorate",
type: "publicKey",
},
{
name: "smartWallet",
type: "publicKey",
},
{
name: "params",
type: {
defined: "GovernanceParameters",
},
},
],
},
},
{
name: "Proposal",
type: {
kind: "struct",
fields: [
{
name: "governor",
type: "publicKey",
},
{
name: "index",
type: "u64",
},
{
name: "bump",
type: "u8",
},
{
name: "proposer",
type: "publicKey",
},
{
name: "quorumVotes",
type: "u64",
},
{
name: "forVotes",
type: "u64",
},
{
name: "againstVotes",
type: "u64",
},
{
name: "abstainVotes",
type: "u64",
},
{
name: "canceledAt",
type: "i64",
},
{
name: "createdAt",
type: "i64",
},
{
name: "activatedAt",
type: "i64",
},
{
name: "votingEndsAt",
type: "i64",
},
{
name: "queuedAt",
type: "i64",
},
{
name: "queuedTransaction",
type: "publicKey",
},
{
name: "instructions",
type: {
vec: {
defined: "ProposalInstruction",
},
},
},
],
},
},
{
name: "ProposalMeta",
type: {
kind: "struct",
fields: [
{
name: "proposal",
type: "publicKey",
},
{
name: "title",
type: "string",
},
{
name: "descriptionLink",
type: "string",
},
],
},
},
{
name: "Vote",
type: {
kind: "struct",
fields: [
{
name: "proposal",
type: "publicKey",
},
{
name: "voter",
type: "publicKey",
},
{
name: "bump",
type: "u8",
},
{
name: "side",
type: "u8",
},
{
name: "weight",
type: "u64",
},
],
},
},
],
types: [
{
name: "GovernanceParameters",
type: {
kind: "struct",
fields: [
{
name: "votingDelay",
type: "u64",
},
{
name: "votingPeriod",
type: "u64",
},
{
name: "quorumVotes",
type: "u64",
},
{
name: "timelockDelaySeconds",
type: "i64",
},
],
},
},
{
name: "ProposalInstruction",
type: {
kind: "struct",
fields: [
{
name: "programId",
type: "publicKey",
},
{
name: "keys",
type: {
vec: {
defined: "ProposalAccountMeta",
},
},
},
{
name: "data",
type: "bytes",
},
],
},
},
{
name: "ProposalAccountMeta",
type: {
kind: "struct",
fields: [
{
name: "pubkey",
type: "publicKey",
},
{
name: "isSigner",
type: "bool",
},
{
name: "isWritable",
type: "bool",
},
],
},
},
{
name: "ProposalState",
type: {
kind: "enum",
variants: [
{
name: "Draft",
},
{
name: "Active",
},
{
name: "Canceled",
},
{
name: "Defeated",
},
{
name: "Succeeded",
},
{
name: "Queued",
},
],
},
},
{
name: "VoteSide",
type: {
kind: "enum",
variants: [
{
name: "Pending",
},
{
name: "Against",
},
{
name: "For",
},
{
name: "Abstain",
},
],
},
},
],
events: [
{
name: "GovernorCreateEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "electorate",
type: "publicKey",
index: false,
},
{
name: "smartWallet",
type: "publicKey",
index: false,
},
{
name: "parameters",
type: {
defined: "GovernanceParameters",
},
index: false,
},
],
},
{
name: "ProposalCreateEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "proposal",
type: "publicKey",
index: false,
},
{
name: "index",
type: "u64",
index: false,
},
{
name: "instructions",
type: {
vec: {
defined: "ProposalInstruction",
},
},
index: false,
},
],
},
{
name: "ProposalActivateEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "proposal",
type: "publicKey",
index: false,
},
{
name: "votingEndsAt",
type: "i64",
index: false,
},
],
},
{
name: "ProposalCancelEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "proposal",
type: "publicKey",
index: false,
},
],
},
{
name: "ProposalQueueEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "proposal",
type: "publicKey",
index: false,
},
{
name: "transaction",
type: "publicKey",
index: false,
},
],
},
{
name: "VoteSetEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "proposal",
type: "publicKey",
index: false,
},
{
name: "voter",
type: "publicKey",
index: false,
},
{
name: "vote",
type: "publicKey",
index: false,
},
{
name: "side",
type: "u8",
index: false,
},
{
name: "weight",
type: "u64",
index: false,
},
],
},
{
name: "ProposalMetaCreateEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "proposal",
type: "publicKey",
index: false,
},
{
name: "title",
type: "string",
index: false,
},
{
name: "descriptionLink",
type: "string",
index: false,
},
],
},
{
name: "GovernorSetParamsEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "prevParams",
type: {
defined: "GovernanceParameters",
},
index: false,
},
{
name: "params",
type: {
defined: "GovernanceParameters",
},
index: false,
},
],
},
{
name: "GovernorSetElectorateEvent",
fields: [
{
name: "governor",
type: "publicKey",
index: false,
},
{
name: "prevElectorate",
type: "publicKey",
index: false,
},
{
name: "newElectorate",
type: "publicKey",
index: false,
},
],
},
],
errors: [
{
code: 6000,
name: "InvalidVoteSide",
msg: "Invalid vote side.",
},
{
code: 6001,
name: "GovernorNotFound",
msg: "The owner of the smart wallet doesn't match with current.",
},
{
code: 6002,
name: "VotingDelayNotMet",
msg: "The proposal cannot be activated since it has not yet passed the voting delay.",
},
{
code: 6003,
name: "ProposalNotDraft",
msg: "Only drafts can be canceled.",
},
{
code: 6004,
name: "ProposalNotActive",
msg: "The proposal must be active.",
},
],
};
export const GovernErrors = generateErrorMap(GovernJSON);