741 lines
22 KiB
JSON
741 lines
22 KiB
JSON
{
|
|
"version": "0.7.0",
|
|
"name": "bid_wall",
|
|
"instructions": [
|
|
{
|
|
"name": "initializeBidWall",
|
|
"accounts": [
|
|
{
|
|
"name": "bidWall",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "feeRecipient",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "creator",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bidWallQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "creatorQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "daoTreasury",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "quoteMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "associatedTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "args",
|
|
"type": {
|
|
"defined": "InitializeBidWallArgs"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "closeBidWall",
|
|
"accounts": [
|
|
{
|
|
"name": "bidWall",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "feeRecipient",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bidWallQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "authorityQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "feeRecipientQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "quoteMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "sellTokens",
|
|
"accounts": [
|
|
{
|
|
"name": "bidWall",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "user",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "userTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bidWallQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "daoTreasury",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "daoTreasuryQuoteTokenAccount",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "quoteMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "args",
|
|
"type": {
|
|
"defined": "SellTokensArgs"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "collectFees",
|
|
"accounts": [
|
|
{
|
|
"name": "bidWall",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "cranker",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "bidWallQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "feeRecipientQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "quoteMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "cancelBidWall",
|
|
"accounts": [
|
|
{
|
|
"name": "bidWall",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "feeRecipient",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bidWallQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "authorityQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "feeRecipientQuoteTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "quoteMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "BidWall",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "nonce",
|
|
"docs": [
|
|
"The nonce of the bid wall."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "createdTimestamp",
|
|
"docs": [
|
|
"When the bid wall was created."
|
|
],
|
|
"type": "i64"
|
|
},
|
|
{
|
|
"name": "initialAmmQuoteReserves",
|
|
"docs": [
|
|
"The initial quote (USDC) reserves of the Futarchy AMM."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "quoteAmount",
|
|
"docs": [
|
|
"The current amount of quote tokens assigned to the bid wall.",
|
|
"This is different from the amount in the bid wall quote token account,",
|
|
"because anyone can transfer quote tokens to the bid wall, and we don't want that to affect the bid wall's NAV calculation."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "feesCollected",
|
|
"docs": [
|
|
"The fees collected by the bid wall."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "baseBoughtAmount",
|
|
"docs": [
|
|
"The amount of base tokens bought up by the bid wall."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "seqNum",
|
|
"docs": [
|
|
"The event sequence number of the bid wall."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "creator",
|
|
"docs": [
|
|
"The authority of the bid wall."
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"docs": [
|
|
"The authority of the bid wall."
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "daoTreasury",
|
|
"docs": [
|
|
"The DAO treasury address."
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "baseMint",
|
|
"docs": [
|
|
"The mint of the token being sold into the bid wall."
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "feeRecipient",
|
|
"docs": [
|
|
"The recipient of the fees collected by the bid wall."
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "durationSeconds",
|
|
"docs": [
|
|
"The minimum duration in seconds before the bid wall can be closed."
|
|
],
|
|
"type": "u32"
|
|
},
|
|
{
|
|
"name": "pdaBump",
|
|
"docs": [
|
|
"The PDA bump."
|
|
],
|
|
"type": "u8"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "CommonFields",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "slot",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "unixTimestamp",
|
|
"type": "i64"
|
|
},
|
|
{
|
|
"name": "bidWallSeqNum",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "InitializeBidWallArgs",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "initialAmmQuoteReserves",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "durationSeconds",
|
|
"type": "u32"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "SellTokensArgs",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "amountIn",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minAmountOut",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"name": "BidWallInitializedEvent",
|
|
"fields": [
|
|
{
|
|
"name": "common",
|
|
"type": {
|
|
"defined": "CommonFields"
|
|
},
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "bidWall",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "initialAmmQuoteReserves",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "creator",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "daoTreasury",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "baseMint",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "feeRecipient",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "durationSeconds",
|
|
"type": "u32",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "pdaBump",
|
|
"type": "u8",
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "BidWallTokensSoldEvent",
|
|
"fields": [
|
|
{
|
|
"name": "common",
|
|
"type": {
|
|
"defined": "CommonFields"
|
|
},
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "bidWall",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "amountIn",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "amountOut",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "fee",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "postBidWallQuoteTokenAccountAmount",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "postBidWallBaseBoughtAmount",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "user",
|
|
"type": "publicKey",
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "BidWallFeesCollectedEvent",
|
|
"fields": [
|
|
{
|
|
"name": "common",
|
|
"type": {
|
|
"defined": "CommonFields"
|
|
},
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "bidWall",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "feesCollected",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "postBidWallQuoteTokenAccountAmount",
|
|
"type": "u64",
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "BidWallClosedEvent",
|
|
"fields": [
|
|
{
|
|
"name": "common",
|
|
"type": {
|
|
"defined": "CommonFields"
|
|
},
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "bidWall",
|
|
"type": "publicKey",
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "BidWallCanceledEvent",
|
|
"fields": [
|
|
{
|
|
"name": "common",
|
|
"type": {
|
|
"defined": "CommonFields"
|
|
},
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "bidWall",
|
|
"type": "publicKey",
|
|
"index": false
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"errors": [
|
|
{
|
|
"code": 6000,
|
|
"name": "BidWallExpired",
|
|
"msg": "Bid wall expired"
|
|
},
|
|
{
|
|
"code": 6001,
|
|
"name": "BidWallNotExpired",
|
|
"msg": "Bid wall not expired"
|
|
},
|
|
{
|
|
"code": 6002,
|
|
"name": "FeeRecipientMismatch",
|
|
"msg": "Fee recipient mismatch"
|
|
},
|
|
{
|
|
"code": 6003,
|
|
"name": "InsufficientQuoteReserves",
|
|
"msg": "Insufficient quote reserves"
|
|
},
|
|
{
|
|
"code": 6004,
|
|
"name": "BidWallDepleted",
|
|
"msg": "Bid wall depleted"
|
|
},
|
|
{
|
|
"code": 6005,
|
|
"name": "InvalidInputAmount",
|
|
"msg": "Invalid input amount"
|
|
},
|
|
{
|
|
"code": 6006,
|
|
"name": "InvalidCrankAddress",
|
|
"msg": "Invalid crank address"
|
|
},
|
|
{
|
|
"code": 6007,
|
|
"name": "InsufficientOutputAmount",
|
|
"msg": "Insufficient output amount"
|
|
}
|
|
]
|
|
} |