From fe1d522d9c6ed4524420f80ff94c329ba7c15b30 Mon Sep 17 00:00:00 2001 From: Michael Danenberg <56533526+danenbm@users.noreply.github.com> Date: Mon, 4 Dec 2023 08:20:12 -0800 Subject: [PATCH] Do not delete existing creators in mint_v1 --- .../src/program_transformers/bubblegum/db.rs | 13 ++++++++----- .../src/program_transformers/bubblegum/mint_v1.rs | 1 + .../bubblegum/update_metadata.rs | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/nft_ingester/src/program_transformers/bubblegum/db.rs b/nft_ingester/src/program_transformers/bubblegum/db.rs index 3b444740b..e9aca1356 100644 --- a/nft_ingester/src/program_transformers/bubblegum/db.rs +++ b/nft_ingester/src/program_transformers/bubblegum/db.rs @@ -599,17 +599,20 @@ pub async fn upsert_creators( creators: &Vec, slot_updated: i64, seq: i64, + delete_existing: bool, ) -> Result<(), IngesterError> where T: ConnectionTrait + TransactionTrait, { let multi_txn = txn.begin().await?; if creators_should_be_updated(&multi_txn, id.clone(), seq).await? { - // Delete any existing creators. - asset_creators::Entity::delete_many() - .filter(Condition::all().add(asset_creators::Column::AssetId.eq(id.clone()))) - .exec(&multi_txn) - .await?; + if delete_existing { + // Delete any existing creators. + asset_creators::Entity::delete_many() + .filter(Condition::all().add(asset_creators::Column::AssetId.eq(id.clone()))) + .exec(&multi_txn) + .await?; + } if !creators.is_empty() { // Vec to hold base creator information. diff --git a/nft_ingester/src/program_transformers/bubblegum/mint_v1.rs b/nft_ingester/src/program_transformers/bubblegum/mint_v1.rs index 6a25e34c6..576171545 100644 --- a/nft_ingester/src/program_transformers/bubblegum/mint_v1.rs +++ b/nft_ingester/src/program_transformers/bubblegum/mint_v1.rs @@ -159,6 +159,7 @@ where &metadata.creators, slot_i, seq as i64, + false, ) .await?; diff --git a/nft_ingester/src/program_transformers/bubblegum/update_metadata.rs b/nft_ingester/src/program_transformers/bubblegum/update_metadata.rs index e185fc07d..a39b1bbf5 100644 --- a/nft_ingester/src/program_transformers/bubblegum/update_metadata.rs +++ b/nft_ingester/src/program_transformers/bubblegum/update_metadata.rs @@ -171,7 +171,7 @@ where } else { ¤t_metadata.creators }; - upsert_creators(txn, id_bytes.to_vec(), creators, slot_i, seq as i64).await?; + upsert_creators(txn, id_bytes.to_vec(), creators, slot_i, seq as i64, true).await?; if uri.is_empty() { warn!(