You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I understand why the Seller's ATA shouldn't have a delegate that's not the auction house in this case, but why shouldn't the Buyer's ATA have a delegate? Is there a way to get around this for this particular use case?
Edit: Another common use case is to create a sell offer and then purchase someone else's sell offer at a lower price. This results in the same issue as both a sell offer and a buy offer are needed for that same item.
Steps to reproduce:
Create a sell offer for an item using account A.
From account A, create a matching buy offer and execute the sale on account B's item.
Relevant log output
Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 2: custom program error: 0x1785
Priority this issue should have
High (immediate attention needed)
The text was updated successfully, but these errors were encountered:
@samuelvanderwaal@blockiosaurus I believe this has to do with the fact that "Fungible Assets" aka semi-fungible tokens use one token account for all tokens owned by a specific holder.
The issue with the following lines of code in execute_sale is that they don't account for when people have listed some of the other tokens in that token account.
My proposed solution would be to not simply check whether a delegate exists on the account, but if a delegate exists, also look at the delegated_amount with respect to the token_size and amount in the token account.
This is a very important issue for using Auction House with SFTs.
Which package is this bug report for?
auction-house
Which Type of Package is this bug report for?
Rust Contract
Issue description
We've built a secondary marketplace for semi-fungible tokens, i.e. SPL tokens linked to the same metadata. A common use case we've seen in the secondary marketplace is to create listings, but still create bids at lower prices to accumulate more of a particular item. Unfortunately, those bids are un-executable because of this particular error in
execute_sale
: https://github.com/metaplex-foundation/metaplex-program-library/blob/master/auction-house/program/src/execute_sale/mod.rs#L1722-L1724Steps to reproduce (need two accounts A and B):
Result:
Error 0x1785 (6021) BuyerATACannotHaveDelegate
I understand why the Seller's ATA shouldn't have a delegate that's not the auction house in this case, but why shouldn't the Buyer's ATA have a delegate? Is there a way to get around this for this particular use case?
Edit: Another common use case is to create a sell offer and then purchase someone else's sell offer at a lower price. This results in the same issue as both a sell offer and a buy offer are needed for that same item.
Steps to reproduce:
Relevant log output
Priority this issue should have
High (immediate attention needed)
The text was updated successfully, but these errors were encountered: