Skip to content

Instantly share code, notes, and snippets.

@metaproph3t
Created September 23, 2023 16:33
Show Gist options
  • Save metaproph3t/eb73908720f3286a2c9baf9ce200b2e9 to your computer and use it in GitHub Desktop.
Save metaproph3t/eb73908720f3286a2c9baf9ce200b2e9 to your computer and use it in GitHub Desktop.
{
"version": "0.1.0",
"name": "autocrat_v0",
"instructions": [
{
"name": "initializeDao",
"accounts": [
{
"name": "dao",
"isMut": true,
"isSigner": false
},
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "token",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "initializeProposal",
"accounts": [
{
"name": "proposal",
"isMut": true,
"isSigner": true
},
{
"name": "dao",
"isMut": false,
"isSigner": false
},
{
"name": "daoTreasury",
"isMut": true,
"isSigner": false
},
{
"name": "quotePassVault",
"isMut": false,
"isSigner": false
},
{
"name": "quoteFailVault",
"isMut": false,
"isSigner": false
},
{
"name": "basePassVault",
"isMut": false,
"isSigner": false
},
{
"name": "baseFailVault",
"isMut": false,
"isSigner": false
},
{
"name": "passMarket",
"isMut": false,
"isSigner": false
},
{
"name": "failMarket",
"isMut": false,
"isSigner": false
},
{
"name": "proposer",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "descriptionUrl",
"type": "string"
},
{
"name": "instruction",
"type": {
"defined": "ProposalInstruction"
}
}
]
},
{
"name": "finalizeProposal",
"accounts": [
{
"name": "proposal",
"isMut": true,
"isSigner": false
},
{
"name": "passMarket",
"isMut": false,
"isSigner": false
},
{
"name": "failMarket",
"isMut": false,
"isSigner": false
},
{
"name": "dao",
"isMut": false,
"isSigner": false
},
{
"name": "daoTreasury",
"isMut": true,
"isSigner": false
},
{
"name": "proposer",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "setPassThresholdBps",
"accounts": [
{
"name": "dao",
"isMut": true,
"isSigner": false
},
{
"name": "daoTreasury",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "passThresholdBps",
"type": "u16"
}
]
}
],
"accounts": [
{
"name": "DAO",
"type": {
"kind": "struct",
"fields": [
{
"name": "token",
"type": "publicKey"
},
{
"name": "passThresholdBps",
"type": "u16"
},
{
"name": "proposalLamportLockup",
"type": "u64"
},
{
"name": "treasuryPdaBump",
"type": "u8"
}
]
}
},
{
"name": "Proposal",
"type": {
"kind": "struct",
"fields": [
{
"name": "proposer",
"type": "publicKey"
},
{
"name": "descriptionUrl",
"type": "string"
},
{
"name": "lamportLockup",
"type": "u64"
},
{
"name": "slotEnqueued",
"type": "u64"
},
{
"name": "state",
"type": {
"defined": "ProposalState"
}
},
{
"name": "instruction",
"type": {
"defined": "ProposalInstruction"
}
},
{
"name": "passMarket",
"type": "publicKey"
},
{
"name": "failMarket",
"type": "publicKey"
}
]
}
}
],
"types": [
{
"name": "ProposalInstruction",
"type": {
"kind": "struct",
"fields": [
{
"name": "programId",
"type": "publicKey"
},
{
"name": "accounts",
"type": {
"vec": {
"defined": "ProposalAccount"
}
}
},
{
"name": "data",
"type": "bytes"
}
]
}
},
{
"name": "ProposalAccount",
"type": {
"kind": "struct",
"fields": [
{
"name": "pubkey",
"type": "publicKey"
},
{
"name": "isSigner",
"type": "bool"
},
{
"name": "isWritable",
"type": "bool"
}
]
}
},
{
"name": "ProposalState",
"type": {
"kind": "enum",
"variants": [
{
"name": "Pending"
},
{
"name": "Passed"
},
{
"name": "Failed"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "InvalidMarket",
"msg": "Either the `pass_market` or the `fail_market`'s tokens doesn't match the vaults supplied"
},
{
"code": 6001,
"name": "InvalidSettlementAuthority",
"msg": "One of the vaults has an invalid `settlement_authority`"
},
{
"code": 6002,
"name": "ProposalTooYoung",
"msg": "Proposal is too young to be executed or rejected"
},
{
"code": 6003,
"name": "MarketsTooYoung",
"msg": "Markets too young for proposal to be finalized"
},
{
"code": 6004,
"name": "ProposalCannotPass",
"msg": "The market dictates that this proposal cannot pass"
},
{
"code": 6005,
"name": "ProposalAlreadyFinalized",
"msg": "This proposal has already been finalized"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment