{
	"version": "0.1.0",
	"name": "solmash_whitelist",
	"instructions": [
		{
			"name": "initAuction",
			"accounts": [
				{
					"name": "creator",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVault",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionToken",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "auctionVaultTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "systemProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "tokenProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "associatedTokenProgram",
					"isMut": false,
					"isSigner": false
				}
			],
			"args": [
				{
					"name": "params",
					"type": {
						"defined": "InitAuctionParams"
					}
				}
			]
		},
		{
			"name": "addToken",
			"accounts": [
				{
					"name": "creator",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVault",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "creatorAuctionTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVaultTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionToken",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "systemProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "tokenProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "associatedTokenProgram",
					"isMut": false,
					"isSigner": false
				}
			],
			"args": []
		},
		{
			"name": "withdrawFunds",
			"accounts": [
				{
					"name": "creator",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVault",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVaultTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "creatorAuctionTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "creatorBidTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionBidTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "bidToken",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "auctionToken",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "tokenProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "systemProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "associatedTokenProgram",
					"isMut": false,
					"isSigner": false
				}
			],
			"args": [
				{
					"name": "withdrawSol",
					"type": "bool"
				}
			]
		},
		{
			"name": "whitelist",
			"accounts": [
				{
					"name": "creator",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "buyerPda",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "whitelistUser",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "systemProgram",
					"isMut": false,
					"isSigner": false
				}
			],
			"args": []
		},
		{
			"name": "preSaleBuyUsingSol",
			"accounts": [
				{
					"name": "buyer",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "buyerPda",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVault",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "systemProgram",
					"isMut": false,
					"isSigner": false
				}
			],
			"args": []
		},
		{
			"name": "claimTokens",
			"accounts": [
				{
					"name": "buyer",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "buyerPda",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "buyerAuctionTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVault",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionVaultTokenAccount",
					"isMut": true,
					"isSigner": false
				},
				{
					"name": "auctionToken",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "tokenProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "associatedTokenProgram",
					"isMut": false,
					"isSigner": false
				},
				{
					"name": "systemProgram",
					"isMut": false,
					"isSigner": false
				}
			],
			"args": []
		},
		{
			"name": "changeTime",
			"accounts": [
				{
					"name": "creator",
					"isMut": true,
					"isSigner": true
				},
				{
					"name": "auction",
					"isMut": true,
					"isSigner": false
				}
			],
			"args": [
				{
					"name": "newStartTime",
					"type": "i64"
				},
				{
					"name": "newEndTime",
					"type": "i64"
				}
			]
		}
	],
	"accounts": [
		{
			"name": "Auction",
			"type": {
				"kind": "struct",
				"fields": [
					{
						"name": "owner",
						"type": "publicKey"
					},
					{
						"name": "name",
						"type": "string"
					},
					{
						"name": "bidToken",
						"type": "publicKey"
					},
					{
						"name": "auctionToken",
						"type": "publicKey"
					},
					{
						"name": "enabled",
						"type": "bool"
					},
					{
						"name": "preSaleStartTime",
						"type": "i64"
					},
					{
						"name": "preSaleEndTime",
						"type": "i64"
					},
					{
						"name": "claimTime",
						"type": "i64"
					},
					{
						"name": "ticketsInPool",
						"type": "u64"
					},
					{
						"name": "remainingTickets",
						"type": "u64"
					},
					{
						"name": "ticketsClaimed",
						"type": "u64"
					},
					{
						"name": "tokenQuantityPerTicket",
						"type": "u64"
					},
					{
						"name": "ticketPriceInSol",
						"type": "u64"
					},
					{
						"name": "ticketPriceInBid",
						"type": "u64"
					},
					{
						"name": "accumulatedSol",
						"type": "u64"
					},
					{
						"name": "accumulatedBid",
						"type": "u64"
					}
				]
			}
		},
		{
			"name": "Buyer",
			"type": {
				"kind": "struct",
				"fields": [
					{
						"name": "auctionAddress",
						"type": "publicKey"
					},
					{
						"name": "buyerAddress",
						"type": "publicKey"
					},
					{
						"name": "participated",
						"type": "bool"
					},
					{
						"name": "claimed",
						"type": "bool"
					},
					{
						"name": "whitelisted",
						"type": "bool"
					},
					{
						"name": "blacklisted",
						"type": "bool"
					}
				]
			}
		}
	],
	"types": [
		{
			"name": "InitAuctionParams",
			"type": {
				"kind": "struct",
				"fields": [
					{
						"name": "name",
						"type": "string"
					},
					{
						"name": "bidToken",
						"type": "publicKey"
					},
					{
						"name": "auctionToken",
						"type": "publicKey"
					},
					{
						"name": "enabled",
						"type": "bool"
					},
					{
						"name": "preSaleStartTime",
						"type": "i64"
					},
					{
						"name": "preSaleEndTime",
						"type": "i64"
					},
					{
						"name": "claimTime",
						"type": "i64"
					},
					{
						"name": "ticketsInPool",
						"type": "u64"
					},
					{
						"name": "tokenQuantityPerTicket",
						"type": "u64"
					},
					{
						"name": "ticketPriceInSol",
						"type": "u64"
					},
					{
						"name": "ticketPriceInBid",
						"type": "u64"
					}
				]
			}
		}
	],
	"errors": [
		{
			"code": 6000,
			"name": "InvalidAuction",
			"msg": "Invalid Auction"
		},
		{
			"code": 6001,
			"name": "InvalidToken",
			"msg": "Invalid Token"
		},
		{
			"code": 6002,
			"name": "InsufficientTokens",
			"msg": "Insufficient Token"
		},
		{
			"code": 6003,
			"name": "Unauthorized",
			"msg": "Unauthorized"
		},
		{
			"code": 6004,
			"name": "AuctionNotEnded",
			"msg": "Auction Not Ended"
		},
		{
			"code": 6005,
			"name": "AuctionDisabled",
			"msg": "Auction Disabled"
		},
		{
			"code": 6006,
			"name": "NonNativeAuction",
			"msg": "Non Native Auction"
		},
		{
			"code": 6007,
			"name": "NonSplAuction",
			"msg": "Non SPL Auction"
		},
		{
			"code": 6008,
			"name": "NotWhitelisted",
			"msg": "Not Whitelisted"
		},
		{
			"code": 6009,
			"name": "ExceedsLimit",
			"msg": "Exceeds Buying Limit"
		},
		{
			"code": 6010,
			"name": "PreSaleNotEnabled",
			"msg": "Pre Sale Not Enabled"
		},
		{
			"code": 6011,
			"name": "InvalidPresaleTime",
			"msg": "Invalid Pre Sale Time "
		},
		{
			"code": 6012,
			"name": "PreSaleAlreadyStarted",
			"msg": "Pre Sale Already Started"
		},
		{
			"code": 6013,
			"name": "PreSaleNotEnded",
			"msg": "Pre Sale Not Ended"
		},
		{
			"code": 6014,
			"name": "InvalidTokenAmount",
			"msg": "Invalid Token Amount"
		},
		{
			"code": 6015,
			"name": "InvalidSolAmount",
			"msg": "Invalid Sol Amount"
		},
		{
			"code": 6016,
			"name": "InvalidAuctionTimes",
			"msg": "Invalid Auction Times"
		},
		{
			"code": 6017,
			"name": "AlreadyParticipated",
			"msg": "User Already Participated"
		},
		{
			"code": 6018,
			"name": "InvalidSolFor1ticket",
			"msg": "Invalid Sol for 1 ticket"
		},
		{
			"code": 6019,
			"name": "AlreadyClaimed",
			"msg": "Already Claimed"
		},
		{
			"code": 6020,
			"name": "NotParticipated",
			"msg": "Not Participated"
		},
		{
			"code": 6021,
			"name": "InvalidBidToken",
			"msg": "Invalid Bid Token"
		},
		{
			"code": 6022,
			"name": "InvalidClaimTime",
			"msg": "Invalid Claim Time"
		}
	]
}
