Skip to content

Commit 2473b25

Browse files
committed
Fixing borrow issues.
1 parent a893b18 commit 2473b25

File tree

10 files changed

+55
-16
lines changed

10 files changed

+55
-16
lines changed

auction-house/program/src/utils.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,7 @@ pub fn pay_creator_fees<'a>(
380380
is_native: bool,
381381
) -> Result<u64> {
382382
let data = &metadata_info.data.borrow_mut();
383-
if metadata_info.data_is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8
384-
{
383+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
385384
return Err(AuctionHouseError::MetadataDoesntExist.into());
386385
}
387386
let metadata = Metadata::deserialize(&mut data.as_ref())?;

candy-machine/program/src/processor/collection/remove_collection.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ pub fn handle_remove_collection(ctx: Context<RemoveCollection>) -> Result<()> {
3333
candy_machine.assert_not_minted(error!(CandyError::NoChangingCollectionDuringMint))?;
3434

3535
let data = &ctx.accounts.metadata.data.borrow_mut();
36-
if ctx.accounts.metadata.data_is_empty()
37-
|| data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8
38-
{
36+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
3937
return Err(CandyError::InvalidMetadataAccount.into());
4038
}
4139
let metadata = Metadata::deserialize(&mut data.as_ref())?;

candy-machine/program/src/processor/collection/set_collection.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ pub struct SetCollection<'info> {
4141
pub fn handle_set_collection(ctx: Context<SetCollection>) -> Result<()> {
4242
let mint = ctx.accounts.mint.to_account_info();
4343
let data = &ctx.accounts.metadata.data.borrow_mut();
44-
if ctx.accounts.metadata.data_is_empty()
45-
|| data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8
46-
{
44+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
4745
return Err(CandyError::InvalidMetadataAccount.into());
4846
}
4947
let metadata = Metadata::deserialize(&mut data.as_ref())?;

fixed-price-sale/program/src/processor/buy.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ impl<'info> Buy<'info> {
374374
)?;
375375

376376
let data = &metadata.data.borrow_mut();
377-
if metadata.data_is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
377+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
378378
return Err(ErrorCode::InvalidMetadataAccount.into());
379379
}
380380
let metadata_data = Metadata::deserialize(&mut data.as_ref())?;

fixed-price-sale/program/src/processor/claim_resource.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ impl<'info> ClaimResource<'info> {
7070

7171
// Update primary sale flag
7272
let data = &metadata.data.borrow_mut();
73-
if metadata.data_is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
73+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
7474
return Err(ErrorCode::InvalidMetadataAccount.into());
7575
}
7676
let metadata_state = mpl_token_metadata::state::Metadata::deserialize(&mut data.as_ref())?;

fixed-price-sale/program/src/processor/init_selling_resource.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ impl<'info> InitSellingResource<'info> {
4646
)?;
4747

4848
let data = &metadata.data.borrow_mut();
49-
if metadata.data_is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
49+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
5050
return Err(ErrorCode::InvalidMetadataAccount.into());
5151
}
5252
let metadata = mpl_token_metadata::state::Metadata::deserialize(&mut data.as_ref())?;

fixed-price-sale/program/src/processor/save_primary_metadata_creators.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ impl<'info> SavePrimaryMetadataCreators<'info> {
1111
let admin = &self.admin;
1212
let secondary_metadata_creators = &mut self.primary_metadata_creators;
1313
let data = &metadata.data.borrow_mut();
14-
if metadata.data_is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
14+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
1515
return Err(ErrorCode::InvalidMetadataAccount.into());
1616
}
1717
let metadata_state = mpl_token_metadata::state::Metadata::deserialize(&mut data.as_ref())?;

fixed-price-sale/program/src/processor/withdraw.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ impl<'info> Withdraw<'info> {
6060

6161
// Obtain right creators according to sale type
6262
let data = &metadata.data.borrow_mut();
63-
if metadata.data_is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
63+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
6464
return Err(ErrorCode::InvalidMetadataAccount.into());
6565
}
6666
let metadata = mpl_token_metadata::state::Metadata::deserialize(&mut data.as_ref())?;

hydra/program/src/utils/validation/mod.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,7 @@ pub fn assert_valid_metadata(
118118
mint: &AccountInfo,
119119
) -> Result<Metadata> {
120120
let data = &metadata_account.data.borrow_mut();
121-
if metadata_account.data_is_empty()
122-
|| data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8
123-
{
121+
if data.is_empty() || data[0] != mpl_token_metadata::state::Key::MetadataV1 as u8 {
124122
return Err(HydraError::InvalidMetadata.into());
125123
}
126124
let meta = mpl_token_metadata::state::Metadata::deserialize(&mut data.as_ref())?;

test.sh

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/bash
2+
3+
function exists_in_list() {
4+
LIST=$1
5+
DELIMITER=$2
6+
VALUE=$3
7+
echo $LIST | tr "$DELIMITER" '\n' | grep -F -q -x "$VALUE"
8+
}
9+
10+
input=$1
11+
12+
programs="auction-house auctioneer candy-machine fixed-price-sale gumdrop hydra token-entangler"
13+
14+
mkdir -p test-programs
15+
16+
if exists_in_list "$programs" " " $input; then
17+
echo "testing $input"
18+
cd $input/program
19+
cargo test-bpf --bpf-out-dir ../../test-programs/
20+
cd ../../
21+
22+
elif [[ $input = "all" ]]
23+
then
24+
echo "testing all programs"
25+
for program in ${programs}; do
26+
echo "testing $program"
27+
cd $program/program
28+
cargo test-bpf --bpf-out-dir ../../test-programs/
29+
cd ../../
30+
done
31+
#echo "building testing-utils"
32+
#cd core/rust/testing-utils
33+
#cargo build-bpf --bpf-out-dir ../../../test-programs/
34+
#cd ../../../
35+
elif [[ $input = "token-auth-rules" ]]
36+
then
37+
solana program dump -u https://api.mainnet-beta.solana.com auth9SigNpDKz4sJJ1DfCTuZrZNSAgh9sFD3rboVmgg ./test-programs/mpl_token_auth_rules.so
38+
elif [[ $input = "rooster" ]]
39+
then
40+
solana program dump -u https://api.mainnet-beta.solana.com Roostrnex2Z9Y2XZC49sFAdZARP8E4iFpEnZC5QJWdz ./test-programs/rooster.so
41+
else
42+
echo "Invalid program name: $input"
43+
exit 1
44+
fi
45+
46+

0 commit comments

Comments
 (0)