diff --git a/Cargo.lock b/Cargo.lock index 0b6883f..4b4dff0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1947,9 +1947,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] @@ -2157,9 +2157,9 @@ dependencies = [ [[package]] name = "mpl-bubblegum" -version = "1.0.1-beta.2" +version = "1.0.1-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b271e10afc5a53a0615455b7cf9bb0901f65a1aae99e4cfe6290ff4eb6e21634" +checksum = "29346f26192bb7f73330196fde4c8cfb35675bf1a4b026cd088f7ca8fda69f3f" dependencies = [ "borsh 0.10.3", "kaigan", @@ -2921,9 +2921,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.6" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" +checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" dependencies = [ "aho-corasick", "memchr", @@ -2933,9 +2933,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.9" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" +checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" dependencies = [ "aho-corasick", "memchr", @@ -2944,9 +2944,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "56d84fdd47036b038fc80dd333d10b6aab10d5d31f4a366e20014def75328d33" [[package]] name = "reqwest" @@ -3007,9 +3007,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.2" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "911b295d2d302948838c8ac142da1ee09fa7863163b44e6715bc9357905878b8" +checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e" dependencies = [ "cc", "getrandom 0.2.10", @@ -3094,9 +3094,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.18" +version = "0.38.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" dependencies = [ "bitflags 2.4.0", "errno", @@ -3242,9 +3242,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" @@ -5182,7 +5182,7 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.2", + "ring 0.17.3", "untrusted 0.9.0", ] @@ -5475,11 +5475,10 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.8+zstd.1.5.5" +version = "2.0.9+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" dependencies = [ "cc", - "libc", "pkg-config", ] diff --git a/blockbuster/Cargo.toml b/blockbuster/Cargo.toml index 4ad06c0..bb78ab7 100644 --- a/blockbuster/Cargo.toml +++ b/blockbuster/Cargo.toml @@ -11,7 +11,7 @@ readme = "../README.md" [dependencies] spl-account-compression = { version = "0.2.0", features = ["no-entrypoint"] } spl-noop = { version = "0.2.0", features = ["no-entrypoint"] } -mpl-bubblegum = "1.0.1-beta.2" +mpl-bubblegum = "1.0.1-beta.3" mpl-candy-guard = { version = "2.0.0", features = ["no-entrypoint"] } mpl-candy-machine-core = { version = "2.0.0", features = ["no-entrypoint"] } mpl-token-metadata = { version = "2.0.0-beta.1", features = ["no-entrypoint", "serde-feature"] } diff --git a/blockbuster/src/programs/bubblegum/mod.rs b/blockbuster/src/programs/bubblegum/mod.rs index 97fe1fa..67374c1 100644 --- a/blockbuster/src/programs/bubblegum/mod.rs +++ b/blockbuster/src/programs/bubblegum/mod.rs @@ -26,12 +26,27 @@ use spl_noop; #[derive(Eq, PartialEq)] pub enum Payload { Unknown, - MintV1 { args: MetadataArgs }, - Decompress { args: MetadataArgs }, - CancelRedeem { root: [u8; 32] }, - CreatorVerification { creator: Pubkey, verify: bool }, - CollectionVerification { collection: Pubkey, verify: bool }, - UpdateMetadata { update_args: UpdateArgs }, + MintV1 { + args: MetadataArgs, + }, + Decompress { + args: MetadataArgs, + }, + CancelRedeem { + root: [u8; 32], + }, + CreatorVerification { + creator: Pubkey, + verify: bool, + }, + CollectionVerification { + collection: Pubkey, + verify: bool, + }, + UpdateMetadata { + current_metadata: MetadataArgs, + update_args: UpdateArgs, + }, } //TODO add more of the parsing here to minimize program transformer code pub struct BubblegumInstruction { @@ -201,8 +216,10 @@ impl ProgramParser for BubblegumParser { } InstructionName::UpdateMetadata => { let args = UpdateMetadataInstructionArgs::try_from_slice(&outer_ix_data)?; - let update_args = args.update_args; - b_inst.payload = Some(Payload::UpdateMetadata { update_args }); + b_inst.payload = Some(Payload::UpdateMetadata { + current_metadata: args.current_metadata, + update_args: args.update_args, + }); } _ => {} }; @@ -231,7 +248,7 @@ fn build_creator_verification_payload( // See Bubblegum for offsets and positions: // https://github.com/metaplex-foundation/mpl-bubblegum/blob/main/programs/bubblegum/README.md#-verify_collection-unverify_collection-and-set_and_verify_collection -// NOTE: Unverfication does not include collection. This needs to be fixed in the README. +// This uses the account. The collection is only provided as an argument for `set_and_verify_collection`. fn build_collection_verification_payload( keys: &[plerkle_serialization::Pubkey], verify: bool,