diff --git a/packages/common/src/actions/auction.ts b/packages/common/src/actions/auction.ts index 1cbf4ab..b43b892 100644 --- a/packages/common/src/actions/auction.ts +++ b/packages/common/src/actions/auction.ts @@ -37,15 +37,24 @@ export class Bid { export class BidState { type: BidStateType; - bids?: Bid[]; - max?: BN; + bids: Bid[]; + max: BN; public getWinnerIndex(bidder: PublicKey): number | null { if (!this.bids) return null; - return this.bids.findIndex(b => b.key.toBase58() == bidder.toBase58()); + console.log( + 'bids', + this.bids.map(b => b.key.toBase58()), + bidder.toBase58(), + ); + const index = this.bids.findIndex( + b => b.key.toBase58() == bidder.toBase58(), + ); + if (index != -1) return index; + else return null; } - constructor(args: { type: BidStateType; bids?: Bid[]; max?: BN }) { + constructor(args: { type: BidStateType; bids: Bid[]; max: BN }) { this.type = args.type; this.bids = args.bids; this.max = args.max; @@ -326,8 +335,8 @@ export const AUCTION_SCHEMA = new Map([ kind: 'struct', fields: [ ['type', 'u8'], - ['bids', { kind: 'option', type: [Bid] }], - ['max', { kind: 'option', type: 'u64' }], + ['bids', [Bid]], + ['max', 'u64'], ], }, ], diff --git a/packages/metavinci/src/actions/createAuctionManager.ts b/packages/metavinci/src/actions/createAuctionManager.ts index 552cb21..23a2ac3 100644 --- a/packages/metavinci/src/actions/createAuctionManager.ts +++ b/packages/metavinci/src/actions/createAuctionManager.ts @@ -170,14 +170,12 @@ export async function createAuctionManager( wallet, vault, // No need to validate open edition, it's already been during init - safetyDeposits.filter( - (_, i) => - settings.openEditionConfig != null && i != settings.openEditionConfig, - ), + safetyDeposits.filter((_, i) => i != settings.openEditionConfig), stores, ), }; + console.log('Lookup', lookup.validateBoxes); let signers: Account[][] = [ lookup.externalPriceAccount.signers, lookup.createVault.signers, diff --git a/packages/metavinci/src/actions/sendRedeemBid.ts b/packages/metavinci/src/actions/sendRedeemBid.ts index 56b4899..70ba1c0 100644 --- a/packages/metavinci/src/actions/sendRedeemBid.ts +++ b/packages/metavinci/src/actions/sendRedeemBid.ts @@ -53,10 +53,11 @@ export async function sendRedeemBid( ); let winnerIndex = null; - if (auctionView.myBidderMetadata?.info.bidderPubkey) + if (auctionView.myBidderPot?.pubkey) winnerIndex = auctionView.auction.info.bidState.getWinnerIndex( - auctionView.myBidderMetadata?.info.bidderPubkey, + auctionView.myBidderPot?.pubkey, ); + console.log('Winner index', winnerIndex); if (winnerIndex != null) { const winningConfig = @@ -65,6 +66,7 @@ export async function sendRedeemBid( const safetyDeposit = item.safetyDeposit; switch (winningConfig.editionType) { case EditionType.LimitedEdition: + console.log('Redeeming limited'); await setupRedeemLimitedInstructions( connection, auctionView, @@ -79,6 +81,7 @@ export async function sendRedeemBid( ); break; case EditionType.MasterEdition: + console.log('Redeeming master'); await setupRedeemMasterInstructions( auctionView, accountsByMint, @@ -91,6 +94,7 @@ export async function sendRedeemBid( ); break; case EditionType.NA: + console.log('Redeeming normal'); await setupRedeemInstructions( auctionView, accountsByMint, @@ -461,10 +465,6 @@ async function setupRedeemOpenInstructions( cashInOpenPrizeAuthorizationTokenSigner.push(burnAuthority); - console.log( - 'My master edition key', - item.masterEdition.pubkey.toBase58(), - ); await mintNewEditionFromMasterEditionViaToken( newOpenEditionMint, item.metadata.info.mint, diff --git a/packages/metavinci/src/contexts/meta.tsx b/packages/metavinci/src/contexts/meta.tsx index 63e60c2..f18c625 100644 --- a/packages/metavinci/src/contexts/meta.tsx +++ b/packages/metavinci/src/contexts/meta.tsx @@ -154,7 +154,13 @@ export function MetaProvider({ children = null as any }) { ...e, [a.pubkey.toBase58()]: account, })); - } catch { + } catch (e) { + if ( + a.pubkey.toBase58() === + 'yNPR97243ke5cV3QGW9ZhSxfVP1K2YVQxzkjikCVbee' + ) { + console.error(e); + } // ignore errors // add type as first byte for easier deserialization } diff --git a/packages/metavinci/src/models/metaplex/index.ts b/packages/metavinci/src/models/metaplex/index.ts index 66747f6..f9f3d55 100644 --- a/packages/metavinci/src/models/metaplex/index.ts +++ b/packages/metavinci/src/models/metaplex/index.ts @@ -134,7 +134,6 @@ export enum EditionType { export class WinningConfig { safetyDepositBoxIndex: number = 0; amount: number = 0; - hasAuthority: boolean = false; editionType: EditionType = EditionType.NA; constructor(args?: WinningConfig) { @@ -233,7 +232,6 @@ export const SCHEMA = new Map([ fields: [ ['safetyDepositBoxIndex', 'u8'], ['amount', 'u8'], - ['hasAuthority', 'u8'], // bool ['editionType', 'u8'], ], }, diff --git a/packages/metavinci/src/models/metaplex/initAuctionManager.ts b/packages/metavinci/src/models/metaplex/initAuctionManager.ts index a775755..9194c31 100644 --- a/packages/metavinci/src/models/metaplex/initAuctionManager.ts +++ b/packages/metavinci/src/models/metaplex/initAuctionManager.ts @@ -37,15 +37,7 @@ export async function initAuctionManager( }); const data = Buffer.from(serialize(SCHEMA, value)); - console.log( - 'Auction', - auctionManagerKey, - vault, - auctionKey, - auctionManagerAuthority, - payer, - acceptPaymentAccount, - ); + console.log('mData', data, settings); const keys = [ { pubkey: auctionManagerKey, diff --git a/packages/metavinci/src/views/auctionCreate/index.tsx b/packages/metavinci/src/views/auctionCreate/index.tsx index adb3f84..2bbeaed 100644 --- a/packages/metavinci/src/views/auctionCreate/index.tsx +++ b/packages/metavinci/src/views/auctionCreate/index.tsx @@ -168,15 +168,17 @@ export const AuctionCreateView = () => { settings = new AuctionManagerSettings({ openEditionWinnerConstraint: WinningConstraint.NoOpenEdition, openEditionNonWinningConstraint: NonWinningConstraint.NoOpenEdition, - winningConfigs: attributes.items.map((item, index) => (new WinningConfig({ - // TODO: check index - safetyDepositBoxIndex: index, - amount: 1, - hasAuthority: false, - editionType: item.masterEdition - ? EditionType.MasterEdition - : EditionType.NA, - }))), + winningConfigs: attributes.items.map( + (item, index) => + new WinningConfig({ + // TODO: check index + safetyDepositBoxIndex: index, + amount: 1, + editionType: item.masterEdition + ? EditionType.MasterEdition + : EditionType.NA, + }), + ), openEditionConfig: null, openEditionFixedPrice: null, }); @@ -193,7 +195,7 @@ export const AuctionCreateView = () => { wallet, settings, winnerLimit, - new BN((attributes.auctionDuration || 1) * 60 * 60 * 24), + new BN((attributes.auctionDuration || 1) * 60), new BN((attributes.gapTime || 1) * 60), attributes.items, // TODO: move to config @@ -364,7 +366,7 @@ export const AuctionCreateView = () => { )} {stepsByCategory[attributes.category][step][1]} - {0 < step && step < (stepsByCategory[attributes.category].length - 1) && ( + {0 < step && step < stepsByCategory[attributes.category].length - 1 && (