Psy American Psy American: { accounts: [ { name: "optionMarket" ; type: { fields: [ { name: "optionMint" ; type: "publicKey" } , { name: "writerTokenMint" ; type: "publicKey" } , { name: "underlyingAssetMint" ; type: "publicKey" } , { name: "quoteAssetMint" ; type: "publicKey" } , { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "quoteAmountPerContract" ; type: "u64" } , { name: "expirationUnixTimestamp" ; type: "i64" } , { name: "underlyingAssetPool" ; type: "publicKey" } , { name: "quoteAssetPool" ; type: "publicKey" } , { name: "mintFeeAccount" ; type: "publicKey" } , { name: "exerciseFeeAccount" ; type: "publicKey" } , { name: "expired" ; type: "bool" } , { name: "bumpSeed" ; type: "u8" } ] ; kind: "struct" } } ] ; errors: [ { code: 300 ; msg: "Expiration must be in the future" ; name: "ExpirationIsInThePast" } , { code: 301 ; msg: "Same quote and underlying asset, cannot create market" ; name: "QuoteAndUnderlyingAssetMustDiffer" } , { code: 302 ; msg: "Quote amount and underlying amount per contract must be > 0" ; name: "QuoteOrUnderlyingAmountCannotBe0" } , { code: 303 ; msg: "OptionMarket must be the mint authority" ; name: "OptionMarketMustBeMintAuthority" } , { code: 304 ; msg: "OptionMarket must own the underlying asset pool" ; name: "OptionMarketMustOwnUnderlyingAssetPool" } , { code: 305 ; msg: "OptionMarket must own the quote asset pool" ; name: "OptionMarketMustOwnQuoteAssetPool" } , { code: 306 ; msg: "Stop trying to spoof the SPL Token program! Shame on you" ; name: "ExpectedSPLTokenProgramId" } , { code: 307 ; msg: "Mint fee account must be owned by the FEE_OWNER" ; name: "MintFeeMustBeOwnedByFeeOwner" } , { code: 308 ; msg: "Exercise fee account must be owned by the FEE_OWNER" ; name: "ExerciseFeeMustBeOwnedByFeeOwner" } , { code: 309 ; msg: "Mint fee token must be the same as the underlying asset" ; name: "MintFeeTokenMustMatchUnderlyingAsset" } , { code: 310 ; msg: "Exercise fee token must be the same as the quote asset" ; name: "ExerciseFeeTokenMustMatchQuoteAsset" } , { code: 311 ; msg: "OptionMarket is expired, can't mint" ; name: "OptionMarketExpiredCantMint" } , { code: 312 ; msg: "Underlying pool account does not match the value on the OptionMarket" ; name: "UnderlyingPoolAccountDoesNotMatchMarket" } , { code: 313 ; msg: "OptionToken mint does not match the value on the OptionMarket" ; name: "OptionTokenMintDoesNotMatchMarket" } , { code: 314 ; msg: "WriterToken mint does not match the value on the OptionMarket" ; name: "WriterTokenMintDoesNotMatchMarket" } , { code: 315 ; msg: "MintFee key does not match the value on the OptionMarket" ; name: "MintFeeKeyDoesNotMatchOptionMarket" } , { code: 316 ; msg: "The size argument must be > 0" ; name: "SizeCantBeLessThanEqZero" } , { code: 317 ; msg: "exerciseFee key does not match the value on the OptionMarket" ; name: "ExerciseFeeKeyDoesNotMatchOptionMarket" } , { code: 318 ; msg: "Quote pool account does not match the value on the OptionMarket" ; name: "QuotePoolAccountDoesNotMatchMarket" } , { code: 319 ; msg: "Underlying destination mint must match underlying asset mint address" ; name: "UnderlyingDestMintDoesNotMatchUnderlyingAsset" } , { code: 320 ; msg: "Fee owner does not match the program's fee owner" ; name: "FeeOwnerDoesNotMatchProgram" } , { code: 321 ; msg: "OptionMarket is expired, can't exercise" ; name: "OptionMarketExpiredCantExercise" } , { code: 322 ; msg: "OptionMarket has not expired, can't close" ; name: "OptionMarketNotExpiredCantClose" } , { code: 323 ; msg: "Not enough assets in the quote asset pool" ; name: "NotEnoughQuoteAssetsInPool" } , { code: 324 ; msg: "Invalid auth token provided" ; name: "InvalidAuth" } , { code: 325 ; msg: "Coin mint must match option mint" ; name: "CoinMintIsNotOptionMint" } , { code: 326 ; msg: "Cannot prune the market while it's still active" ; name: "CannotPruneActiveMarket" } , { code: 327 ; msg: "Numberical overflow" ; name: "NumberOverflow" } ] ; instructions: [ { accounts: [ { isMut: true ; isSigner: true ; name: "authority" } , { isMut: false ; isSigner: false ; name: "underlyingAssetMint" } , { isMut: false ; isSigner: false ; name: "quoteAssetMint" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "optionMarket" } , { isMut: false ; isSigner: false ; name: "feeOwner" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "associatedTokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } , { isMut: false ; isSigner: false ; name: "clock" } ] ; args: [ { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "quoteAmountPerContract" ; type: "u64" } , { name: "expirationUnixTimestamp" ; type: "i64" } , { name: "bumpSeed" ; type: "u8" } ] ; name: "initializeMarket" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "underlyingAssetMint" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetSrc" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "mintedOptionDest" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "mintedWriterTokenDest" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "feeOwner" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "associatedTokenProgram" } , { isMut: false ; isSigner: false ; name: "clock" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "mintOption" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "underlyingAssetMint" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetSrc" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "mintedOptionDest" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "mintedWriterTokenDest" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "mintOptionV2" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: true ; isSigner: true ; name: "optionAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "exerciserOptionTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "quoteAssetSrc" } , { isMut: true ; isSigner: false ; name: "feeOwner" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "systemProgram" } , { isMut: false ; isSigner: false ; name: "clock" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "exerciseOption" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: true ; isSigner: true ; name: "optionAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "exerciserOptionTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "quoteAssetSrc" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "exerciseOptionV2" } , { accounts: [ { isMut: false ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "writerTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "clock" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "closePostExpiration" } , { accounts: [ { isMut: false ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "writerTokenSrc" } , { isMut: true ; isSigner: false ; name: "optionTokenMint" } , { isMut: true ; isSigner: false ; name: "optionTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "closeOptionPosition" } , { accounts: [ { isMut: false ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "writerTokenSrc" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "writerQuoteDest" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "burnWriterForQuote" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: true ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "serumMarket" } , { isMut: false ; isSigner: false ; name: "systemProgram" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "dexProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "pcMint" } , { isMut: false ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "requestQueue" } , { isMut: true ; isSigner: false ; name: "eventQueue" } , { isMut: true ; isSigner: false ; name: "bids" } , { isMut: true ; isSigner: false ; name: "asks" } , { isMut: true ; isSigner: false ; name: "coinVault" } , { isMut: true ; isSigner: false ; name: "pcVault" } , { isMut: false ; isSigner: false ; name: "vaultSigner" } , { isMut: false ; isSigner: false ; name: "marketAuthority" } ] ; args: [ { name: "marketSpace" ; type: "u64" } , { name: "vaultSignerNonce" ; type: "u64" } , { name: "coinLotSize" ; type: "u64" } , { name: "pcLotSize" ; type: "u64" } , { name: "pcDustThreshold" ; type: "u64" } ] ; name: "initSerumMarket" } ] ; name: "psy_american" ; version: "0.0.0" }
Type declaration accounts: [ { name: "optionMarket" ; type: { fields: [ { name: "optionMint" ; type: "publicKey" } , { name: "writerTokenMint" ; type: "publicKey" } , { name: "underlyingAssetMint" ; type: "publicKey" } , { name: "quoteAssetMint" ; type: "publicKey" } , { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "quoteAmountPerContract" ; type: "u64" } , { name: "expirationUnixTimestamp" ; type: "i64" } , { name: "underlyingAssetPool" ; type: "publicKey" } , { name: "quoteAssetPool" ; type: "publicKey" } , { name: "mintFeeAccount" ; type: "publicKey" } , { name: "exerciseFeeAccount" ; type: "publicKey" } , { name: "expired" ; type: "bool" } , { name: "bumpSeed" ; type: "u8" } ] ; kind: "struct" } } ] errors: [ { code: 300 ; msg: "Expiration must be in the future" ; name: "ExpirationIsInThePast" } , { code: 301 ; msg: "Same quote and underlying asset, cannot create market" ; name: "QuoteAndUnderlyingAssetMustDiffer" } , { code: 302 ; msg: "Quote amount and underlying amount per contract must be > 0" ; name: "QuoteOrUnderlyingAmountCannotBe0" } , { code: 303 ; msg: "OptionMarket must be the mint authority" ; name: "OptionMarketMustBeMintAuthority" } , { code: 304 ; msg: "OptionMarket must own the underlying asset pool" ; name: "OptionMarketMustOwnUnderlyingAssetPool" } , { code: 305 ; msg: "OptionMarket must own the quote asset pool" ; name: "OptionMarketMustOwnQuoteAssetPool" } , { code: 306 ; msg: "Stop trying to spoof the SPL Token program! Shame on you" ; name: "ExpectedSPLTokenProgramId" } , { code: 307 ; msg: "Mint fee account must be owned by the FEE_OWNER" ; name: "MintFeeMustBeOwnedByFeeOwner" } , { code: 308 ; msg: "Exercise fee account must be owned by the FEE_OWNER" ; name: "ExerciseFeeMustBeOwnedByFeeOwner" } , { code: 309 ; msg: "Mint fee token must be the same as the underlying asset" ; name: "MintFeeTokenMustMatchUnderlyingAsset" } , { code: 310 ; msg: "Exercise fee token must be the same as the quote asset" ; name: "ExerciseFeeTokenMustMatchQuoteAsset" } , { code: 311 ; msg: "OptionMarket is expired, can't mint" ; name: "OptionMarketExpiredCantMint" } , { code: 312 ; msg: "Underlying pool account does not match the value on the OptionMarket" ; name: "UnderlyingPoolAccountDoesNotMatchMarket" } , { code: 313 ; msg: "OptionToken mint does not match the value on the OptionMarket" ; name: "OptionTokenMintDoesNotMatchMarket" } , { code: 314 ; msg: "WriterToken mint does not match the value on the OptionMarket" ; name: "WriterTokenMintDoesNotMatchMarket" } , { code: 315 ; msg: "MintFee key does not match the value on the OptionMarket" ; name: "MintFeeKeyDoesNotMatchOptionMarket" } , { code: 316 ; msg: "The size argument must be > 0" ; name: "SizeCantBeLessThanEqZero" } , { code: 317 ; msg: "exerciseFee key does not match the value on the OptionMarket" ; name: "ExerciseFeeKeyDoesNotMatchOptionMarket" } , { code: 318 ; msg: "Quote pool account does not match the value on the OptionMarket" ; name: "QuotePoolAccountDoesNotMatchMarket" } , { code: 319 ; msg: "Underlying destination mint must match underlying asset mint address" ; name: "UnderlyingDestMintDoesNotMatchUnderlyingAsset" } , { code: 320 ; msg: "Fee owner does not match the program's fee owner" ; name: "FeeOwnerDoesNotMatchProgram" } , { code: 321 ; msg: "OptionMarket is expired, can't exercise" ; name: "OptionMarketExpiredCantExercise" } , { code: 322 ; msg: "OptionMarket has not expired, can't close" ; name: "OptionMarketNotExpiredCantClose" } , { code: 323 ; msg: "Not enough assets in the quote asset pool" ; name: "NotEnoughQuoteAssetsInPool" } , { code: 324 ; msg: "Invalid auth token provided" ; name: "InvalidAuth" } , { code: 325 ; msg: "Coin mint must match option mint" ; name: "CoinMintIsNotOptionMint" } , { code: 326 ; msg: "Cannot prune the market while it's still active" ; name: "CannotPruneActiveMarket" } , { code: 327 ; msg: "Numberical overflow" ; name: "NumberOverflow" } ] instructions: [ { accounts: [ { isMut: true ; isSigner: true ; name: "authority" } , { isMut: false ; isSigner: false ; name: "underlyingAssetMint" } , { isMut: false ; isSigner: false ; name: "quoteAssetMint" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "optionMarket" } , { isMut: false ; isSigner: false ; name: "feeOwner" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "associatedTokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } , { isMut: false ; isSigner: false ; name: "clock" } ] ; args: [ { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "quoteAmountPerContract" ; type: "u64" } , { name: "expirationUnixTimestamp" ; type: "i64" } , { name: "bumpSeed" ; type: "u8" } ] ; name: "initializeMarket" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "underlyingAssetMint" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetSrc" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "mintedOptionDest" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "mintedWriterTokenDest" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "feeOwner" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "associatedTokenProgram" } , { isMut: false ; isSigner: false ; name: "clock" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "mintOption" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "underlyingAssetMint" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetSrc" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "mintedOptionDest" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "mintedWriterTokenDest" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "mintOptionV2" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: true ; isSigner: true ; name: "optionAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "exerciserOptionTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "quoteAssetSrc" } , { isMut: true ; isSigner: false ; name: "feeOwner" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "systemProgram" } , { isMut: false ; isSigner: false ; name: "clock" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "exerciseOption" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: true ; isSigner: true ; name: "optionAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "exerciserOptionTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "quoteAssetSrc" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "exerciseOptionV2" } , { accounts: [ { isMut: false ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "writerTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "clock" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "closePostExpiration" } , { accounts: [ { isMut: false ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "writerTokenSrc" } , { isMut: true ; isSigner: false ; name: "optionTokenMint" } , { isMut: true ; isSigner: false ; name: "optionTokenSrc" } , { isMut: true ; isSigner: false ; name: "underlyingAssetPool" } , { isMut: true ; isSigner: false ; name: "underlyingAssetDest" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "closeOptionPosition" } , { accounts: [ { isMut: false ; isSigner: true ; name: "userAuthority" } , { isMut: false ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "writerTokenMint" } , { isMut: true ; isSigner: false ; name: "writerTokenSrc" } , { isMut: true ; isSigner: false ; name: "quoteAssetPool" } , { isMut: true ; isSigner: false ; name: "writerQuoteDest" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "size" ; type: "u64" } ] ; name: "burnWriterForQuote" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { isMut: true ; isSigner: false ; name: "optionMarket" } , { isMut: true ; isSigner: false ; name: "serumMarket" } , { isMut: false ; isSigner: false ; name: "systemProgram" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "dexProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "pcMint" } , { isMut: false ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "requestQueue" } , { isMut: true ; isSigner: false ; name: "eventQueue" } , { isMut: true ; isSigner: false ; name: "bids" } , { isMut: true ; isSigner: false ; name: "asks" } , { isMut: true ; isSigner: false ; name: "coinVault" } , { isMut: true ; isSigner: false ; name: "pcVault" } , { isMut: false ; isSigner: false ; name: "vaultSigner" } , { isMut: false ; isSigner: false ; name: "marketAuthority" } ] ; args: [ { name: "marketSpace" ; type: "u64" } , { name: "vaultSignerNonce" ; type: "u64" } , { name: "coinLotSize" ; type: "u64" } , { name: "pcLotSize" ; type: "u64" } , { name: "pcDustThreshold" ; type: "u64" } ] ; name: "initSerumMarket" } ] name: "psy_american" version: "0.0.0"
The fee owner key for the Psy American program