can define restriction that only when signed by a program, can an nft be withdrawn. like if true, then change delgate (probably to carnival auth, so then onlywhent he program interacts from carnival and does cpi, nft can be removed from market), if false don’t change delegate
in withdraw function specifically, need to add a program signer option, such that users can’t trade in their voucher for a delegate locked nft.
to see all existing markets, can look thoguh carnival market list, and pda using market index into market metadata (creator, seeds to sign as pda, etc)
to see all the nfts in a market, can query all the accounts owned by exhibition, then look though delegates, if delegates exist, then a market owns
to withdraw nfts from the market, the nft’s deleate is checed with the market’s pubkey, if the market has singed, only then be able to withdraw
honor creator royalities
The goal is to make the NFT trading experience more liquid and easy to use, like Sudoswap
Sudoswap works by displaying a single marketplace for all nfts that belong to a collection. The marketplace is an aggregation of several, user-created markets (linear, exponential, and potentially AMM curves) that dictate how trading takes place. Users can provide both NFTs and SOL to allow for LP benefits, or just NFTs and SOL to provide one way trading.