Euro Primitive Euro Primitive: { accounts: [ { name: "euroMeta" ; type: { fields: [ { name: "underlyingMint" ; type: "publicKey" } , { name: "underlyingDecimals" ; type: "u8" } , { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "stableMint" ; type: "publicKey" } , { name: "stableDecimals" ; type: "u8" } , { name: "stablePool" ; type: "publicKey" } , { name: "pythOracle" ; type: "publicKey" } , { name: "strikePrice" ; type: "u64" } , { name: "priceDecimals" ; type: "u8" } , { name: "callOptionMint" ; type: "publicKey" } , { name: "callWriterMint" ; type: "publicKey" } , { name: "putOptionMint" ; type: "publicKey" } , { name: "putWriterMint" ; type: "publicKey" } , { name: "underlyingPool" ; type: "publicKey" } , { name: "expiration" ; type: "i64" } , { name: "bumpSeed" ; type: "u8" } , { name: "expirationData" ; type: "publicKey" } ] ; kind: "struct" } } , { name: "expirationData" ; type: { fields: [ { name: "expiration" ; type: "i64" } , { name: "pythOracle" ; type: "publicKey" } , { name: "priceAtExpiration" ; type: "u64" } , { name: "priceSetAtTime" ; type: "i64" } , { name: "priceDecimals" ; type: "u8" } , { name: "priceSet" ; type: "bool" } , { name: "bump" ; type: "u8" } ] ; kind: "struct" } } ] ; errors: [ { code: 6000 ; msg: "Expiration must be in the future" ; name: "ExpirationIsInThePast" } , { code: 6001 ; msg: "Underlying amount per contract must be greater than 0" ; name: "UnderlyingAmountLessThan0" } , { code: 6002 ; msg: "Pyth program does not own oracle" ; name: "AccountMustBeOwnedByPyth" } , { code: 6003 ; msg: "Pyth oracle must be a Price account" ; name: "PythOracleMustBePrice" } , { code: 6004 ; msg: "Number overflow" ; name: "NumberOverflow" } , { code: 6005 ; msg: "Amount must be greater than 0" ; name: "AmountMustBeGreaterThanZero" } , { code: 6006 ; msg: "EuroMeta is expired" ; name: "EuroMetaIsExpired" } , { code: 6007 ; msg: "Option Mint does not match EuroMeta" ; name: "OptionMintDoesNotMatch" } , { code: 6008 ; msg: "Writer Mint does not match EuroMeta" ; name: "WriterMintDoesNotMatch" } , { code: 6009 ; msg: "Price at expiration is already set" ; name: "PriceAtExpirationIsSet" } , { code: 6010 ; msg: "Pyth oracle does not match EuroMeta" ; name: "PythOracleDoesNotMatch" } , { code: 6011 ; msg: "EuroMeta is not expired" ; name: "EuroMetaNotExpired" } , { code: 6012 ; msg: "Price at expiration has not been set" ; name: "PriceAtExpirationNotSet" } , { code: 6013 ; msg: "Unknown OptionType" ; name: "UnknownOptionType" } , { code: 6014 ; msg: "Cannot prune the market while it's still active" ; name: "CannotPruneActiveMarket" } , { code: 6015 ; msg: "ExpirationData address does not match EuroMeta" ; name: "ExpirationDataDoesNotMatch" } , { code: 6016 ; msg: "Calls must use the underlying pool" ; name: "CallsMustUseUnderlyingPool" } , { code: 6017 ; msg: "Puts must use the stable pool" ; name: "PutsMustUseStablePool" } , { code: 6018 ; msg: "Calls must use the underlying as collateral" ; name: "CallsMustUseUnderlyingAsCollateral" } , { code: 6019 ; msg: "Puts must use the stable as collateral" ; name: "PutsMustUseStableAsCollateral" } , { code: 6020 ; msg: "Failed to convert numeric types" ; name: "NumericTypeConversionError" } ] ; events: [ { fields: [ { index: false ; name: "euroMeta" ; type: "publicKey" } ] ; name: "EuroMetaCreated" } , { fields: [ { index: false ; name: "expirationData" ; type: "publicKey" } ] ; name: "ExpirationDataCreated" } , { fields: [ { index: false ; name: "stablePool" ; type: "publicKey" } ] ; name: "StablePoolCreated" } , { fields: [ { index: false ; name: "underlyingPool" ; type: "publicKey" } ] ; name: "UnderlyingPoolCreated" } ] ; instructions: [ { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "stableMint" } , { isMut: true ; isSigner: false ; name: "stablePool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ ] ; name: "initializeStablePool" } , { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "underlyingMint" } , { isMut: true ; isSigner: false ; name: "underlyingPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ ] ; name: "initializeUnderlyingPool" } , { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "underlyingMint" } , { isMut: true ; isSigner: false ; name: "expirationData" } , { isMut: false ; isSigner: false ; name: "pythOracle" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "expiration" ; type: "i64" } , { name: "priceDecimals" ; type: "u8" } ] ; name: "initExpirationData" } , { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "underlyingMint" } , { isMut: false ; isSigner: false ; name: "underlyingPool" } , { isMut: false ; isSigner: false ; name: "stableMint" } , { isMut: false ; isSigner: false ; name: "stablePool" } , { isMut: true ; isSigner: false ; name: "euroMeta" } , { isMut: false ; isSigner: false ; name: "expirationData" } , { isMut: true ; isSigner: false ; name: "callOptionMint" } , { isMut: true ; isSigner: false ; name: "callWriterMint" } , { isMut: true ; isSigner: false ; name: "putOptionMint" } , { isMut: true ; isSigner: false ; name: "putWriterMint" } , { isMut: false ; isSigner: false ; name: "pythOracle" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "expiration" ; type: "i64" } , { name: "strikePrice" ; type: "u64" } , { name: "priceDecimals" ; type: "u8" } , { name: "bump" ; type: "u8" } , { name: "expirationDataBump" ; type: "u8" } ] ; name: "createEuroMeta" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "writerMint" } , { isMut: true ; isSigner: false ; name: "minterCollateral" } , { isMut: true ; isSigner: false ; name: "optionDestination" } , { isMut: true ; isSigner: false ; name: "writerDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "mintOptions" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "writerMint" } , { isMut: true ; isSigner: false ; name: "optionSource" } , { isMut: true ; isSigner: false ; name: "writerSource" } , { isMut: true ; isSigner: false ; name: "collateralDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "closeOptions" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: true ; isSigner: false ; name: "expirationData" } , { isMut: false ; isSigner: false ; name: "pythAggPriceOracle" } ] ; args: [ ] ; name: "setExpirationPrice" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: false ; isSigner: false ; name: "expirationData" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: false ; isSigner: false ; name: "collateralMint" } , { isMut: true ; isSigner: false ; name: "optionSource" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: true ; isSigner: false ; name: "collateralDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "settleExpiredOptions" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: false ; isSigner: false ; name: "expirationData" } , { isMut: true ; isSigner: false ; name: "writerMint" } , { isMut: false ; isSigner: false ; name: "collateralMint" } , { isMut: true ; isSigner: false ; name: "writerSource" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: true ; isSigner: false ; name: "collateralDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "settleExpiredWriters" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { 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: "euro_primitive" ; types: [ { name: "SelfTradeBehavior" ; type: { kind: "enum" ; variants: [ { name: "DecrementTake" } , { name: "CancelProvide" } , { name: "AbortTransaction" } ] } } , { name: "OrderType" ; type: { kind: "enum" ; variants: [ { name: "Limit" } , { name: "ImmediateOrCancel" } , { name: "PostOnly" } ] } } , { name: "Side" ; type: { kind: "enum" ; variants: [ { name: "Bid" } , { name: "Ask" } ] } } , { name: "OptionType" ; type: { kind: "enum" ; variants: [ { name: "CALL" } , { name: "PUT" } ] } } ] ; version: "0.1.0" }
Type declaration accounts: [ { name: "euroMeta" ; type: { fields: [ { name: "underlyingMint" ; type: "publicKey" } , { name: "underlyingDecimals" ; type: "u8" } , { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "stableMint" ; type: "publicKey" } , { name: "stableDecimals" ; type: "u8" } , { name: "stablePool" ; type: "publicKey" } , { name: "pythOracle" ; type: "publicKey" } , { name: "strikePrice" ; type: "u64" } , { name: "priceDecimals" ; type: "u8" } , { name: "callOptionMint" ; type: "publicKey" } , { name: "callWriterMint" ; type: "publicKey" } , { name: "putOptionMint" ; type: "publicKey" } , { name: "putWriterMint" ; type: "publicKey" } , { name: "underlyingPool" ; type: "publicKey" } , { name: "expiration" ; type: "i64" } , { name: "bumpSeed" ; type: "u8" } , { name: "expirationData" ; type: "publicKey" } ] ; kind: "struct" } } , { name: "expirationData" ; type: { fields: [ { name: "expiration" ; type: "i64" } , { name: "pythOracle" ; type: "publicKey" } , { name: "priceAtExpiration" ; type: "u64" } , { name: "priceSetAtTime" ; type: "i64" } , { name: "priceDecimals" ; type: "u8" } , { name: "priceSet" ; type: "bool" } , { name: "bump" ; type: "u8" } ] ; kind: "struct" } } ] errors: [ { code: 6000 ; msg: "Expiration must be in the future" ; name: "ExpirationIsInThePast" } , { code: 6001 ; msg: "Underlying amount per contract must be greater than 0" ; name: "UnderlyingAmountLessThan0" } , { code: 6002 ; msg: "Pyth program does not own oracle" ; name: "AccountMustBeOwnedByPyth" } , { code: 6003 ; msg: "Pyth oracle must be a Price account" ; name: "PythOracleMustBePrice" } , { code: 6004 ; msg: "Number overflow" ; name: "NumberOverflow" } , { code: 6005 ; msg: "Amount must be greater than 0" ; name: "AmountMustBeGreaterThanZero" } , { code: 6006 ; msg: "EuroMeta is expired" ; name: "EuroMetaIsExpired" } , { code: 6007 ; msg: "Option Mint does not match EuroMeta" ; name: "OptionMintDoesNotMatch" } , { code: 6008 ; msg: "Writer Mint does not match EuroMeta" ; name: "WriterMintDoesNotMatch" } , { code: 6009 ; msg: "Price at expiration is already set" ; name: "PriceAtExpirationIsSet" } , { code: 6010 ; msg: "Pyth oracle does not match EuroMeta" ; name: "PythOracleDoesNotMatch" } , { code: 6011 ; msg: "EuroMeta is not expired" ; name: "EuroMetaNotExpired" } , { code: 6012 ; msg: "Price at expiration has not been set" ; name: "PriceAtExpirationNotSet" } , { code: 6013 ; msg: "Unknown OptionType" ; name: "UnknownOptionType" } , { code: 6014 ; msg: "Cannot prune the market while it's still active" ; name: "CannotPruneActiveMarket" } , { code: 6015 ; msg: "ExpirationData address does not match EuroMeta" ; name: "ExpirationDataDoesNotMatch" } , { code: 6016 ; msg: "Calls must use the underlying pool" ; name: "CallsMustUseUnderlyingPool" } , { code: 6017 ; msg: "Puts must use the stable pool" ; name: "PutsMustUseStablePool" } , { code: 6018 ; msg: "Calls must use the underlying as collateral" ; name: "CallsMustUseUnderlyingAsCollateral" } , { code: 6019 ; msg: "Puts must use the stable as collateral" ; name: "PutsMustUseStableAsCollateral" } , { code: 6020 ; msg: "Failed to convert numeric types" ; name: "NumericTypeConversionError" } ] events: [ { fields: [ { index: false ; name: "euroMeta" ; type: "publicKey" } ] ; name: "EuroMetaCreated" } , { fields: [ { index: false ; name: "expirationData" ; type: "publicKey" } ] ; name: "ExpirationDataCreated" } , { fields: [ { index: false ; name: "stablePool" ; type: "publicKey" } ] ; name: "StablePoolCreated" } , { fields: [ { index: false ; name: "underlyingPool" ; type: "publicKey" } ] ; name: "UnderlyingPoolCreated" } ] instructions: [ { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "stableMint" } , { isMut: true ; isSigner: false ; name: "stablePool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ ] ; name: "initializeStablePool" } , { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "underlyingMint" } , { isMut: true ; isSigner: false ; name: "underlyingPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ ] ; name: "initializeUnderlyingPool" } , { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "underlyingMint" } , { isMut: true ; isSigner: false ; name: "expirationData" } , { isMut: false ; isSigner: false ; name: "pythOracle" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "expiration" ; type: "i64" } , { name: "priceDecimals" ; type: "u8" } ] ; name: "initExpirationData" } , { accounts: [ { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "underlyingMint" } , { isMut: false ; isSigner: false ; name: "underlyingPool" } , { isMut: false ; isSigner: false ; name: "stableMint" } , { isMut: false ; isSigner: false ; name: "stablePool" } , { isMut: true ; isSigner: false ; name: "euroMeta" } , { isMut: false ; isSigner: false ; name: "expirationData" } , { isMut: true ; isSigner: false ; name: "callOptionMint" } , { isMut: true ; isSigner: false ; name: "callWriterMint" } , { isMut: true ; isSigner: false ; name: "putOptionMint" } , { isMut: true ; isSigner: false ; name: "putWriterMint" } , { isMut: false ; isSigner: false ; name: "pythOracle" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } , { isMut: false ; isSigner: false ; name: "rent" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "underlyingAmountPerContract" ; type: "u64" } , { name: "expiration" ; type: "i64" } , { name: "strikePrice" ; type: "u64" } , { name: "priceDecimals" ; type: "u8" } , { name: "bump" ; type: "u8" } , { name: "expirationDataBump" ; type: "u8" } ] ; name: "createEuroMeta" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "writerMint" } , { isMut: true ; isSigner: false ; name: "minterCollateral" } , { isMut: true ; isSigner: false ; name: "optionDestination" } , { isMut: true ; isSigner: false ; name: "writerDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "mintOptions" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: true ; isSigner: false ; name: "writerMint" } , { isMut: true ; isSigner: false ; name: "optionSource" } , { isMut: true ; isSigner: false ; name: "writerSource" } , { isMut: true ; isSigner: false ; name: "collateralDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "closeOptions" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: true ; isSigner: false ; name: "expirationData" } , { isMut: false ; isSigner: false ; name: "pythAggPriceOracle" } ] ; args: [ ] ; name: "setExpirationPrice" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: false ; isSigner: false ; name: "expirationData" } , { isMut: true ; isSigner: false ; name: "optionMint" } , { isMut: false ; isSigner: false ; name: "collateralMint" } , { isMut: true ; isSigner: false ; name: "optionSource" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: true ; isSigner: false ; name: "collateralDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "settleExpiredOptions" } , { accounts: [ { isMut: false ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "euroMeta" } , { isMut: false ; isSigner: false ; name: "expirationData" } , { isMut: true ; isSigner: false ; name: "writerMint" } , { isMut: false ; isSigner: false ; name: "collateralMint" } , { isMut: true ; isSigner: false ; name: "writerSource" } , { isMut: true ; isSigner: false ; name: "collateralPool" } , { isMut: false ; isSigner: false ; name: "poolAuthority" } , { isMut: true ; isSigner: false ; name: "collateralDestination" } , { isMut: false ; isSigner: false ; name: "tokenProgram" } ] ; args: [ { name: "amount" ; type: "u64" } , { name: "optionType" ; type: "u8" } ] ; name: "settleExpiredWriters" } , { accounts: [ { isMut: true ; isSigner: true ; name: "userAuthority" } , { 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: "euro_primitive" types: [ { name: "SelfTradeBehavior" ; type: { kind: "enum" ; variants: [ { name: "DecrementTake" } , { name: "CancelProvide" } , { name: "AbortTransaction" } ] } } , { name: "OrderType" ; type: { kind: "enum" ; variants: [ { name: "Limit" } , { name: "ImmediateOrCancel" } , { name: "PostOnly" } ] } } , { name: "Side" ; type: { kind: "enum" ; variants: [ { name: "Bid" } , { name: "Ask" } ] } } , { name: "OptionType" ; type: { kind: "enum" ; variants: [ { name: "CALL" } , { name: "PUT" } ] } } ] version: "0.1.0"
Generate a new anchor Program