300 lines
5.5 KiB
TypeScript
300 lines
5.5 KiB
TypeScript
import { Idl } from "@project-serum/anchor";
|
|
|
|
const idl: Idl = {
|
|
version: "0.0.0",
|
|
name: "multisig",
|
|
instructions: [
|
|
{
|
|
name: "createMultisig",
|
|
accounts: [
|
|
{
|
|
name: "multisig",
|
|
isMut: true,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "rent",
|
|
isMut: false,
|
|
isSigner: false,
|
|
},
|
|
],
|
|
args: [
|
|
{
|
|
name: "owners",
|
|
type: {
|
|
vec: "publicKey",
|
|
},
|
|
},
|
|
{
|
|
name: "threshold",
|
|
type: "u64",
|
|
},
|
|
{
|
|
name: "nonce",
|
|
type: "u8",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: "createTransaction",
|
|
accounts: [
|
|
{
|
|
name: "multisig",
|
|
isMut: false,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "transaction",
|
|
isMut: true,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "proposer",
|
|
isMut: false,
|
|
isSigner: true,
|
|
},
|
|
{
|
|
name: "rent",
|
|
isMut: false,
|
|
isSigner: false,
|
|
},
|
|
],
|
|
args: [
|
|
{
|
|
name: "pid",
|
|
type: "publicKey",
|
|
},
|
|
{
|
|
name: "accs",
|
|
type: {
|
|
vec: {
|
|
defined: "TransactionAccount",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "data",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: "approve",
|
|
accounts: [
|
|
{
|
|
name: "multisig",
|
|
isMut: false,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "transaction",
|
|
isMut: true,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "owner",
|
|
isMut: false,
|
|
isSigner: true,
|
|
},
|
|
],
|
|
args: [],
|
|
},
|
|
{
|
|
name: "setOwners",
|
|
accounts: [
|
|
{
|
|
name: "multisig",
|
|
isMut: true,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "multisigSigner",
|
|
isMut: false,
|
|
isSigner: true,
|
|
},
|
|
],
|
|
args: [
|
|
{
|
|
name: "owners",
|
|
type: {
|
|
vec: "publicKey",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: "changeThreshold",
|
|
accounts: [
|
|
{
|
|
name: "multisig",
|
|
isMut: true,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "multisigSigner",
|
|
isMut: false,
|
|
isSigner: true,
|
|
},
|
|
],
|
|
args: [
|
|
{
|
|
name: "threshold",
|
|
type: "u64",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: "executeTransaction",
|
|
accounts: [
|
|
{
|
|
name: "multisig",
|
|
isMut: false,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "multisigSigner",
|
|
isMut: false,
|
|
isSigner: false,
|
|
},
|
|
{
|
|
name: "transaction",
|
|
isMut: true,
|
|
isSigner: false,
|
|
},
|
|
],
|
|
args: [],
|
|
},
|
|
],
|
|
accounts: [
|
|
{
|
|
name: "Multisig",
|
|
type: {
|
|
kind: "struct",
|
|
fields: [
|
|
{
|
|
name: "owners",
|
|
type: {
|
|
vec: "publicKey",
|
|
},
|
|
},
|
|
{
|
|
name: "threshold",
|
|
type: "u64",
|
|
},
|
|
{
|
|
name: "nonce",
|
|
type: "u8",
|
|
},
|
|
{
|
|
name: "ownerSetSeqno",
|
|
type: "u32",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
name: "Transaction",
|
|
type: {
|
|
kind: "struct",
|
|
fields: [
|
|
{
|
|
name: "multisig",
|
|
type: "publicKey",
|
|
},
|
|
{
|
|
name: "programId",
|
|
type: "publicKey",
|
|
},
|
|
{
|
|
name: "accounts",
|
|
type: {
|
|
vec: {
|
|
defined: "TransactionAccount",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "data",
|
|
type: "bytes",
|
|
},
|
|
{
|
|
name: "signers",
|
|
type: {
|
|
vec: "bool",
|
|
},
|
|
},
|
|
{
|
|
name: "didExecute",
|
|
type: "bool",
|
|
},
|
|
{
|
|
name: "ownerSetSeqno",
|
|
type: "u32",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
types: [
|
|
{
|
|
name: "TransactionAccount",
|
|
type: {
|
|
kind: "struct",
|
|
fields: [
|
|
{
|
|
name: "pubkey",
|
|
type: "publicKey",
|
|
},
|
|
{
|
|
name: "isSigner",
|
|
type: "bool",
|
|
},
|
|
{
|
|
name: "isWritable",
|
|
type: "bool",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
errors: [
|
|
{
|
|
code: 100,
|
|
name: "InvalidOwner",
|
|
msg: "The given owner is not part of this multisig.",
|
|
},
|
|
{
|
|
code: 101,
|
|
name: "NotEnoughSigners",
|
|
msg: "Not enough owners signed this transaction.",
|
|
},
|
|
{
|
|
code: 102,
|
|
name: "TransactionAlreadySigned",
|
|
msg: "Cannot delete a transaction that has been signed by an owner.",
|
|
},
|
|
{
|
|
code: 103,
|
|
name: "Overflow",
|
|
msg: "Overflow when adding.",
|
|
},
|
|
{
|
|
code: 104,
|
|
name: "UnableToDelete",
|
|
msg: "Cannot delete a transaction the owner did not create.",
|
|
},
|
|
{
|
|
code: 105,
|
|
name: "AlreadyExecuted",
|
|
msg: "The given transaction has already been executed.",
|
|
},
|
|
{
|
|
code: 106,
|
|
name: "InvalidThreshold",
|
|
msg: "Threshold must be less than or equal to the number of owners.",
|
|
},
|
|
],
|
|
};
|
|
|
|
export default idl;
|