UNPKG

@tribecahq/tribeca-sdk

Version:

The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.

2,018 lines (2,016 loc) 40.3 kB
import { generateErrorMap } from "@saberhq/anchor-contrib"; export type LockedVoterIDL = { version: "0.5.8"; name: "locked_voter"; instructions: [ { name: "newLocker"; accounts: [ { name: "base"; isMut: false; isSigner: true; }, { name: "locker"; isMut: true; isSigner: false; pda: { seeds: [ { kind: "const"; type: "string"; value: "Locker"; }, { kind: "account"; type: "publicKey"; path: "base"; } ]; }; }, { name: "tokenMint"; isMut: false; isSigner: false; }, { name: "governor"; isMut: false; isSigner: false; }, { name: "payer"; isMut: true; isSigner: true; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "bump"; type: "u8"; }, { name: "params"; type: { defined: "LockerParams"; }; } ]; }, { name: "newEscrow"; accounts: [ { name: "locker"; isMut: false; isSigner: false; }, { name: "escrow"; isMut: true; isSigner: false; pda: { seeds: [ { kind: "const"; type: "string"; value: "Escrow"; }, { kind: "account"; type: "publicKey"; account: "Locker"; path: "locker"; }, { kind: "account"; type: "publicKey"; path: "escrow_owner"; } ]; }; }, { name: "escrowOwner"; isMut: false; isSigner: false; }, { name: "payer"; isMut: true; isSigner: true; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "bump"; type: "u8"; } ]; }, { name: "lock"; accounts: [ { name: "locker"; isMut: true; isSigner: false; }, { name: "escrow"; isMut: true; isSigner: false; }, { name: "escrowTokens"; isMut: true; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; }, { name: "sourceTokens"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "amount"; type: "u64"; }, { name: "duration"; type: "i64"; } ]; }, { name: "lockWithWhitelist"; accounts: [ { name: "lock"; accounts: [ { name: "locker"; isMut: true; isSigner: false; }, { name: "escrow"; isMut: true; isSigner: false; }, { name: "escrowTokens"; isMut: true; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; }, { name: "sourceTokens"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; }, { name: "instructionsSysvar"; isMut: false; isSigner: false; } ]; args: [ { name: "amount"; type: "u64"; }, { name: "duration"; type: "i64"; } ]; }, { name: "lockWithWhitelistEntry"; accounts: [ { name: "lock"; accounts: [ { name: "locker"; isMut: true; isSigner: false; }, { name: "escrow"; isMut: true; isSigner: false; }, { name: "escrowTokens"; isMut: true; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; }, { name: "sourceTokens"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; }, { name: "instructionsSysvar"; isMut: false; isSigner: false; }, { name: "whitelistEntry"; isMut: false; isSigner: false; } ]; args: [ { name: "amount"; type: "u64"; }, { name: "duration"; type: "i64"; } ]; }, { name: "lockPermissionless"; accounts: [ { name: "locker"; isMut: true; isSigner: false; }, { name: "escrow"; isMut: true; isSigner: false; }, { name: "escrowTokens"; isMut: true; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; }, { name: "sourceTokens"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "amount"; type: "u64"; }, { name: "duration"; type: "i64"; } ]; }, { name: "exit"; accounts: [ { name: "locker"; isMut: true; isSigner: false; }, { name: "escrow"; isMut: true; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; }, { name: "escrowTokens"; isMut: true; isSigner: false; }, { name: "destinationTokens"; isMut: true; isSigner: false; }, { name: "payer"; isMut: true; isSigner: true; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "activateProposal"; accounts: [ { name: "locker"; isMut: false; isSigner: false; }, { name: "governor"; isMut: false; isSigner: false; }, { name: "proposal"; isMut: true; isSigner: false; }, { name: "escrow"; isMut: false; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; }, { name: "governProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "castVote"; accounts: [ { name: "locker"; isMut: false; isSigner: false; }, { name: "escrow"; isMut: false; isSigner: false; }, { name: "voteDelegate"; isMut: false; isSigner: true; }, { name: "proposal"; isMut: true; isSigner: false; }, { name: "vote"; isMut: true; isSigner: false; }, { name: "governor"; isMut: false; isSigner: false; }, { name: "governProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "side"; type: "u8"; } ]; }, { name: "setVoteDelegate"; accounts: [ { name: "escrow"; isMut: true; isSigner: false; }, { name: "escrowOwner"; isMut: false; isSigner: true; } ]; args: [ { name: "newDelegate"; type: "publicKey"; } ]; }, { name: "setLockerParams"; accounts: [ { name: "locker"; isMut: true; isSigner: false; }, { name: "governor"; isMut: false; isSigner: false; }, { name: "smartWallet"; isMut: false; isSigner: true; } ]; args: [ { name: "params"; type: { defined: "LockerParams"; }; } ]; }, { name: "approveProgramLockPrivilege"; accounts: [ { name: "locker"; isMut: false; isSigner: false; }, { name: "whitelistEntry"; isMut: true; isSigner: false; pda: { seeds: [ { kind: "const"; type: "string"; value: "LockerWhitelistEntry"; }, { kind: "account"; type: "publicKey"; account: "Locker"; path: "locker"; }, { kind: "account"; type: "publicKey"; path: "executable_id"; }, { kind: "account"; type: "publicKey"; path: "whitelisted_owner"; } ]; }; }, { name: "governor"; isMut: false; isSigner: false; }, { name: "smartWallet"; isMut: false; isSigner: true; }, { name: "executableId"; isMut: false; isSigner: false; }, { name: "whitelistedOwner"; isMut: false; isSigner: false; }, { name: "payer"; isMut: true; isSigner: true; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "bump"; type: "u8"; } ]; }, { name: "revokeProgramLockPrivilege"; accounts: [ { name: "locker"; isMut: false; isSigner: false; }, { name: "whitelistEntry"; isMut: true; isSigner: false; }, { name: "governor"; isMut: false; isSigner: false; }, { name: "smartWallet"; isMut: false; isSigner: true; }, { name: "payer"; isMut: true; isSigner: true; } ]; args: []; } ]; accounts: [ { name: "Locker"; type: { kind: "struct"; fields: [ { name: "base"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "tokenMint"; type: "publicKey"; }, { name: "lockedSupply"; type: "u64"; }, { name: "governor"; type: "publicKey"; }, { name: "params"; type: { defined: "LockerParams"; }; } ]; }; }, { name: "LockerWhitelistEntry"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "locker"; type: "publicKey"; }, { name: "programId"; type: "publicKey"; }, { name: "owner"; type: "publicKey"; } ]; }; }, { name: "Escrow"; type: { kind: "struct"; fields: [ { name: "locker"; type: "publicKey"; }, { name: "owner"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "tokens"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "escrowStartedAt"; type: "i64"; }, { name: "escrowEndsAt"; type: "i64"; }, { name: "voteDelegate"; type: "publicKey"; } ]; }; } ]; types: [ { name: "LockerParams"; type: { kind: "struct"; fields: [ { name: "whitelistEnabled"; type: "bool"; }, { name: "maxStakeVoteMultiplier"; type: "u8"; }, { name: "minStakeDuration"; type: "u64"; }, { name: "maxStakeDuration"; type: "u64"; }, { name: "proposalActivationMinVotes"; type: "u64"; } ]; }; } ]; events: [ { name: "ApproveLockPrivilegeEvent"; fields: [ { name: "locker"; type: "publicKey"; index: false; }, { name: "programId"; type: "publicKey"; index: false; }, { name: "owner"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; } ]; }, { name: "ExitEscrowEvent"; fields: [ { name: "escrowOwner"; type: "publicKey"; index: false; }, { name: "locker"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; }, { name: "lockerSupply"; type: "u64"; index: false; }, { name: "releasedAmount"; type: "u64"; index: false; } ]; }, { name: "LockEvent"; fields: [ { name: "locker"; type: "publicKey"; index: false; }, { name: "escrowOwner"; type: "publicKey"; index: false; }, { name: "tokenMint"; type: "publicKey"; index: false; }, { name: "amount"; type: "u64"; index: false; }, { name: "lockerSupply"; type: "u64"; index: false; }, { name: "duration"; type: "i64"; index: false; }, { name: "prevEscrowEndsAt"; type: "i64"; index: false; }, { name: "nextEscrowEndsAt"; type: "i64"; index: false; }, { name: "nextEscrowStartedAt"; type: "i64"; index: false; } ]; }, { name: "NewEscrowEvent"; fields: [ { name: "escrow"; type: "publicKey"; index: false; }, { name: "escrowOwner"; type: "publicKey"; index: false; }, { name: "locker"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; } ]; }, { name: "NewLockerEvent"; fields: [ { name: "governor"; type: "publicKey"; index: false; }, { name: "locker"; type: "publicKey"; index: false; }, { name: "tokenMint"; type: "publicKey"; index: false; }, { name: "params"; type: { defined: "LockerParams"; }; index: false; } ]; }, { name: "RevokeLockPrivilegeEvent"; fields: [ { name: "locker"; type: "publicKey"; index: false; }, { name: "programId"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; } ]; }, { name: "LockerSetParamsEvent"; fields: [ { name: "locker"; type: "publicKey"; index: false; }, { name: "prevParams"; type: { defined: "LockerParams"; }; index: false; }, { name: "params"; type: { defined: "LockerParams"; }; index: false; } ]; }, { name: "SetVoteDelegateEvent"; fields: [ { name: "escrowOwner"; type: "publicKey"; index: false; }, { name: "oldDelegate"; type: "publicKey"; index: false; }, { name: "newDelegate"; type: "publicKey"; index: false; } ]; } ]; errors: [ { code: 6000; name: "ProgramNotWhitelisted"; msg: "CPI caller not whitelisted to invoke lock instruction."; }, { code: 6001; name: "LockupDurationTooShort"; msg: "Lockup duration must at least be the min stake duration."; }, { code: 6002; name: "LockupDurationTooLong"; msg: "Lockup duration must at most be the max stake duration."; }, { code: 6003; name: "RefreshCannotShorten"; msg: "A voting escrow refresh cannot shorten the escrow time remaining."; }, { code: 6004; name: "EscrowNotEnded"; msg: "Escrow has not ended."; }, { code: 6005; name: "MustProvideWhitelist"; msg: "Program whitelist enabled; please provide whitelist entry and instructions sysvar or use the 'lock_with_whitelist' instruction."; }, { code: 6006; name: "EscrowOwnerNotWhitelisted"; msg: "CPI caller not whitelisted for escrow owner to invoke lock instruction."; }, { code: 6007; name: "MustCallLockWithWhitelistEntry"; msg: "Must call `lock_with_whitelist_entry` to lock via CPI."; }, { code: 6008; name: "MustCallLockPermissionless"; msg: "Must call `lock_permissionless` since this DAO does not have a CPI whitelist."; } ]; }; export const LockedVoterJSON: LockedVoterIDL = { version: "0.5.8", name: "locked_voter", instructions: [ { name: "newLocker", accounts: [ { name: "base", isMut: false, isSigner: true, }, { name: "locker", isMut: true, isSigner: false, pda: { seeds: [ { kind: "const", type: "string", value: "Locker", }, { kind: "account", type: "publicKey", path: "base", }, ], }, }, { name: "tokenMint", isMut: false, isSigner: false, }, { name: "governor", isMut: false, isSigner: false, }, { name: "payer", isMut: true, isSigner: true, }, { name: "systemProgram", isMut: false, isSigner: false, }, ], args: [ { name: "bump", type: "u8", }, { name: "params", type: { defined: "LockerParams", }, }, ], }, { name: "newEscrow", accounts: [ { name: "locker", isMut: false, isSigner: false, }, { name: "escrow", isMut: true, isSigner: false, pda: { seeds: [ { kind: "const", type: "string", value: "Escrow", }, { kind: "account", type: "publicKey", account: "Locker", path: "locker", }, { kind: "account", type: "publicKey", path: "escrow_owner", }, ], }, }, { name: "escrowOwner", isMut: false, isSigner: false, }, { name: "payer", isMut: true, isSigner: true, }, { name: "systemProgram", isMut: false, isSigner: false, }, ], args: [ { name: "bump", type: "u8", }, ], }, { name: "lock", accounts: [ { name: "locker", isMut: true, isSigner: false, }, { name: "escrow", isMut: true, isSigner: false, }, { name: "escrowTokens", isMut: true, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, { name: "sourceTokens", isMut: true, isSigner: false, }, { name: "tokenProgram", isMut: false, isSigner: false, }, ], args: [ { name: "amount", type: "u64", }, { name: "duration", type: "i64", }, ], }, { name: "lockWithWhitelist", accounts: [ { name: "lock", accounts: [ { name: "locker", isMut: true, isSigner: false, }, { name: "escrow", isMut: true, isSigner: false, }, { name: "escrowTokens", isMut: true, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, { name: "sourceTokens", isMut: true, isSigner: false, }, { name: "tokenProgram", isMut: false, isSigner: false, }, ], }, { name: "instructionsSysvar", isMut: false, isSigner: false, }, ], args: [ { name: "amount", type: "u64", }, { name: "duration", type: "i64", }, ], }, { name: "lockWithWhitelistEntry", accounts: [ { name: "lock", accounts: [ { name: "locker", isMut: true, isSigner: false, }, { name: "escrow", isMut: true, isSigner: false, }, { name: "escrowTokens", isMut: true, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, { name: "sourceTokens", isMut: true, isSigner: false, }, { name: "tokenProgram", isMut: false, isSigner: false, }, ], }, { name: "instructionsSysvar", isMut: false, isSigner: false, }, { name: "whitelistEntry", isMut: false, isSigner: false, }, ], args: [ { name: "amount", type: "u64", }, { name: "duration", type: "i64", }, ], }, { name: "lockPermissionless", accounts: [ { name: "locker", isMut: true, isSigner: false, }, { name: "escrow", isMut: true, isSigner: false, }, { name: "escrowTokens", isMut: true, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, { name: "sourceTokens", isMut: true, isSigner: false, }, { name: "tokenProgram", isMut: false, isSigner: false, }, ], args: [ { name: "amount", type: "u64", }, { name: "duration", type: "i64", }, ], }, { name: "exit", accounts: [ { name: "locker", isMut: true, isSigner: false, }, { name: "escrow", isMut: true, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, { name: "escrowTokens", isMut: true, isSigner: false, }, { name: "destinationTokens", isMut: true, isSigner: false, }, { name: "payer", isMut: true, isSigner: true, }, { name: "tokenProgram", isMut: false, isSigner: false, }, ], args: [], }, { name: "activateProposal", accounts: [ { name: "locker", isMut: false, isSigner: false, }, { name: "governor", isMut: false, isSigner: false, }, { name: "proposal", isMut: true, isSigner: false, }, { name: "escrow", isMut: false, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, { name: "governProgram", isMut: false, isSigner: false, }, ], args: [], }, { name: "castVote", accounts: [ { name: "locker", isMut: false, isSigner: false, }, { name: "escrow", isMut: false, isSigner: false, }, { name: "voteDelegate", isMut: false, isSigner: true, }, { name: "proposal", isMut: true, isSigner: false, }, { name: "vote", isMut: true, isSigner: false, }, { name: "governor", isMut: false, isSigner: false, }, { name: "governProgram", isMut: false, isSigner: false, }, ], args: [ { name: "side", type: "u8", }, ], }, { name: "setVoteDelegate", accounts: [ { name: "escrow", isMut: true, isSigner: false, }, { name: "escrowOwner", isMut: false, isSigner: true, }, ], args: [ { name: "newDelegate", type: "publicKey", }, ], }, { name: "setLockerParams", accounts: [ { name: "locker", isMut: true, isSigner: false, }, { name: "governor", isMut: false, isSigner: false, }, { name: "smartWallet", isMut: false, isSigner: true, }, ], args: [ { name: "params", type: { defined: "LockerParams", }, }, ], }, { name: "approveProgramLockPrivilege", accounts: [ { name: "locker", isMut: false, isSigner: false, }, { name: "whitelistEntry", isMut: true, isSigner: false, pda: { seeds: [ { kind: "const", type: "string", value: "LockerWhitelistEntry", }, { kind: "account", type: "publicKey", account: "Locker", path: "locker", }, { kind: "account", type: "publicKey", path: "executable_id", }, { kind: "account", type: "publicKey", path: "whitelisted_owner", }, ], }, }, { name: "governor", isMut: false, isSigner: false, }, { name: "smartWallet", isMut: false, isSigner: true, }, { name: "executableId", isMut: false, isSigner: false, }, { name: "whitelistedOwner", isMut: false, isSigner: false, }, { name: "payer", isMut: true, isSigner: true, }, { name: "systemProgram", isMut: false, isSigner: false, }, ], args: [ { name: "bump", type: "u8", }, ], }, { name: "revokeProgramLockPrivilege", accounts: [ { name: "locker", isMut: false, isSigner: false, }, { name: "whitelistEntry", isMut: true, isSigner: false, }, { name: "governor", isMut: false, isSigner: false, }, { name: "smartWallet", isMut: false, isSigner: true, }, { name: "payer", isMut: true, isSigner: true, }, ], args: [], }, ], accounts: [ { name: "Locker", type: { kind: "struct", fields: [ { name: "base", type: "publicKey", }, { name: "bump", type: "u8", }, { name: "tokenMint", type: "publicKey", }, { name: "lockedSupply", type: "u64", }, { name: "governor", type: "publicKey", }, { name: "params", type: { defined: "LockerParams", }, }, ], }, }, { name: "LockerWhitelistEntry", type: { kind: "struct", fields: [ { name: "bump", type: "u8", }, { name: "locker", type: "publicKey", }, { name: "programId", type: "publicKey", }, { name: "owner", type: "publicKey", }, ], }, }, { name: "Escrow", type: { kind: "struct", fields: [ { name: "locker", type: "publicKey", }, { name: "owner", type: "publicKey", }, { name: "bump", type: "u8", }, { name: "tokens", type: "publicKey", }, { name: "amount", type: "u64", }, { name: "escrowStartedAt", type: "i64", }, { name: "escrowEndsAt", type: "i64", }, { name: "voteDelegate", type: "publicKey", }, ], }, }, ], types: [ { name: "LockerParams", type: { kind: "struct", fields: [ { name: "whitelistEnabled", type: "bool", }, { name: "maxStakeVoteMultiplier", type: "u8", }, { name: "minStakeDuration", type: "u64", }, { name: "maxStakeDuration", type: "u64", }, { name: "proposalActivationMinVotes", type: "u64", }, ], }, }, ], events: [ { name: "ApproveLockPrivilegeEvent", fields: [ { name: "locker", type: "publicKey", index: false, }, { name: "programId", type: "publicKey", index: false, }, { name: "owner", type: "publicKey", index: false, }, { name: "timestamp", type: "i64", index: false, }, ], }, { name: "ExitEscrowEvent", fields: [ { name: "escrowOwner", type: "publicKey", index: false, }, { name: "locker", type: "publicKey", index: false, }, { name: "timestamp", type: "i64", index: false, }, { name: "lockerSupply", type: "u64", index: false, }, { name: "releasedAmount", type: "u64", index: false, }, ], }, { name: "LockEvent", fields: [ { name: "locker", type: "publicKey", index: false, }, { name: "escrowOwner", type: "publicKey", index: false, }, { name: "tokenMint", type: "publicKey", index: false, }, { name: "amount", type: "u64", index: false, }, { name: "lockerSupply", type: "u64", index: false, }, { name: "duration", type: "i64", index: false, }, { name: "prevEscrowEndsAt", type: "i64", index: false, }, { name: "nextEscrowEndsAt", type: "i64", index: false, }, { name: "nextEscrowStartedAt", type: "i64", index: false, }, ], }, { name: "NewEscrowEvent", fields: [ { name: "escrow", type: "publicKey", index: false, }, { name: "escrowOwner", type: "publicKey", index: false, }, { name: "locker", type: "publicKey", index: false, }, { name: "timestamp", type: "i64", index: false, }, ], }, { name: "NewLockerEvent", fields: [ { name: "governor", type: "publicKey", index: false, }, { name: "locker", type: "publicKey", index: false, }, { name: "tokenMint", type: "publicKey", index: false, }, { name: "params", type: { defined: "LockerParams", }, index: false, }, ], }, { name: "RevokeLockPrivilegeEvent", fields: [ { name: "locker", type: "publicKey", index: false, }, { name: "programId", type: "publicKey", index: false, }, { name: "timestamp", type: "i64", index: false, }, ], }, { name: "LockerSetParamsEvent", fields: [ { name: "locker", type: "publicKey", index: false, }, { name: "prevParams", type: { defined: "LockerParams", }, index: false, }, { name: "params", type: { defined: "LockerParams", }, index: false, }, ], }, { name: "SetVoteDelegateEvent", fields: [ { name: "escrowOwner", type: "publicKey", index: false, }, { name: "oldDelegate", type: "publicKey", index: false, }, { name: "newDelegate", type: "publicKey", index: false, }, ], }, ], errors: [ { code: 6000, name: "ProgramNotWhitelisted", msg: "CPI caller not whitelisted to invoke lock instruction.", }, { code: 6001, name: "LockupDurationTooShort", msg: "Lockup duration must at least be the min stake duration.", }, { code: 6002, name: "LockupDurationTooLong", msg: "Lockup duration must at most be the max stake duration.", }, { code: 6003, name: "RefreshCannotShorten", msg: "A voting escrow refresh cannot shorten the escrow time remaining.", }, { code: 6004, name: "EscrowNotEnded", msg: "Escrow has not ended.", }, { code: 6005, name: "MustProvideWhitelist", msg: "Program whitelist enabled; please provide whitelist entry and instructions sysvar or use the 'lock_with_whitelist' instruction.", }, { code: 6006, name: "EscrowOwnerNotWhitelisted", msg: "CPI caller not whitelisted for escrow owner to invoke lock instruction.", }, { code: 6007, name: "MustCallLockWithWhitelistEntry", msg: "Must call `lock_with_whitelist_entry` to lock via CPI.", }, { code: 6008, name: "MustCallLockPermissionless", msg: "Must call `lock_permissionless` since this DAO does not have a CPI whitelist.", }, ], }; export const LockedVoterErrors = generateErrorMap(LockedVoterJSON);