Skip to content

Commit 19ce748

Browse files
authored
[backend] update ajuna-pallets and add incrementing-asset-id provider in Casino Jam and in BattleMogs (#7)
1 parent 4b9771c commit 19ce748

File tree

8 files changed

+30
-42
lines changed

8 files changed

+30
-42
lines changed

backend/Cargo.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/games/battle_mogs/src/transitions/breed.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ where
7878

7979
let mut table_asset = Self::get_owned_achievement_table(owner, table_id)?;
8080

81-
let mogwai_nonce = mogwai_id_1.saturating_add(*mogwai_id_2) % 31;
82-
let mogwai_id = Self::new_asset_id(b"breed_mogwai", mogwai_nonce);
81+
let mogwai_id = Self::new_asset_id()?;
8382
let next_gen_hash = Sage::random_hash(b"breed_next_gen").0;
8483

8584
let (rarity, next_gen, max_rarity) = Generation::next_gen(

backend/games/battle_mogs/src/transitions/create.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ use sage_api::{traits::TransitionOutput, TransitionError};
3030
use frame_support::pallet_prelude::*;
3131
use parity_scale_codec::Codec;
3232
use sp_core::H256;
33-
use sp_runtime::{
34-
traits::{AtLeast32BitUnsigned, BlockNumber as BlockNumberT, Member},
35-
SaturatedConversion,
36-
};
33+
use sp_runtime::traits::{AtLeast32BitUnsigned, BlockNumber as BlockNumberT, Member};
3734

3835
impl<AccountId, BlockNumber, Balance, Sage> BattleMogsTransition<AccountId, BlockNumber, Sage>
3936
where
@@ -56,7 +53,7 @@ where
5653
Self::ensure_not_max_mogwais(owner)?;
5754

5855
let block_number = Sage::get_current_block_number();
59-
let mogwai_id = Self::new_asset_id(b"mogwai_id", block_number.saturated_into());
56+
let mogwai_id = Self::new_asset_id()?;
6057

6158
let random_hash_1 = Sage::random_hash(b"create_mogwai");
6259
let random_hash_2 = Sage::random_hash(b"extend_mogwai");

backend/games/battle_mogs/src/transitions/mod.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,8 @@ where
112112
HashOutput = H256,
113113
>,
114114
{
115-
pub(crate) fn new_asset_id(subject: &[u8], nonce: u64) -> BattleMogsId {
116-
let hash = Sage::random_hash(subject).0;
117-
u64::from_le_bytes(hash[24..32].try_into().unwrap()).saturating_add(nonce)
115+
fn new_asset_id() -> Result<BattleMogsId, TransitionError> {
116+
Sage::create_next_asset_id().ok_or(TransitionError::CouldNotCreateAssetId)
118117
}
119118

120119
pub(crate) fn ensure_not_max_mogwais(account: &AccountId) -> Result<(), TransitionError> {

backend/games/battle_mogs/src/transitions/register.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ use crate::asset::achievement_table::{AchievementState, AchievementTable};
2727
use frame_support::pallet_prelude::*;
2828
use parity_scale_codec::Codec;
2929
use sp_core::H256;
30-
use sp_runtime::{
31-
traits::{AtLeast32BitUnsigned, BlockNumber as BlockNumberT, Member},
32-
SaturatedConversion,
33-
};
30+
use sp_runtime::traits::{AtLeast32BitUnsigned, BlockNumber as BlockNumberT, Member};
3431

3532
impl<AccountId, BlockNumber, Balance, Sage> BattleMogsTransition<AccountId, BlockNumber, Sage>
3633
where
@@ -75,7 +72,7 @@ where
7572
};
7673

7774
let block_number = Sage::get_current_block_number();
78-
let table_id = Self::new_asset_id(b"mogwai_id", block_number.saturated_into());
75+
let table_id = Self::new_asset_id()?;
7976

8077
let asset = BattleMogsAsset {
8178
id: table_id,

backend/games/casino_jam/src/transition/mod.rs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -119,16 +119,8 @@ where
119119
.map_err(|_| TransitionError::Transition { code: ASSET_COULD_NOT_WITHDRAW_FUNDS })
120120
}
121121

122-
fn generate_asset_id(nonce: u64) -> AssetId {
123-
let hash_base = Sage::random_hash(b"create_asset");
124-
let current_block_number = Sage::get_current_block_number();
125-
126-
hash_base
127-
.0
128-
.into_iter()
129-
.fold(0 as AssetId, |acc, value| acc.saturating_add(value as AssetId))
130-
.saturating_add(current_block_number.saturated_into())
131-
.saturating_add(nonce as AssetId)
122+
fn generate_asset_id() -> Result<AssetId, TransitionError> {
123+
Sage::create_next_asset_id().ok_or(TransitionError::CouldNotCreateAssetId)
132124
}
133125

134126
fn verify_transition_rules(
@@ -246,9 +238,9 @@ where
246238

247239
match action {
248240
AssetType::Player => {
249-
let player_id = Self::generate_asset_id(17);
241+
let player_id = Self::generate_asset_id()?;
250242
let player = Asset::new_player(player_id, current_block);
251-
let tracker_id = Self::generate_asset_id(31);
243+
let tracker_id = Self::generate_asset_id()?;
252244
let tracker = Asset::new_tracker(tracker_id, current_block);
253245

254246
sp_std::vec![
@@ -258,7 +250,7 @@ where
258250
},
259251
AssetType::Machine(machine_type) => match machine_type {
260252
MachineType::Bandit => {
261-
let machine_id = Self::generate_asset_id(13);
253+
let machine_id = Self::generate_asset_id()?;
262254
let machine = Asset::new_bandit_machine(machine_id, current_block);
263255
sp_std::vec![TransitionOutput::Minted(machine)]
264256
},
@@ -462,7 +454,7 @@ where
462454

463455
machine.seat_linked = machine.seat_linked.saturating_add(1);
464456

465-
let seat_id = Self::generate_asset_id(3);
457+
let seat_id = Self::generate_asset_id()?;
466458
let current_block = Sage::get_current_block_number();
467459
let seat = Asset::<BlockNumber>::new_seat(
468460
seat_id,

backend/runtime/src/configs/sage/battle_mogs.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use ajuna_payment_handler::{
2626
};
2727
use ajuna_primitives::{
2828
asset_manager::{AssetFundsManager, AssetInspector, AssetManager},
29+
next_asset_id_provider::IncrementingAssetIdProvider,
2930
sage_api::SageApi,
3031
season_manager::{SeasonConfig, SeasonManager},
3132
};
@@ -122,6 +123,7 @@ pub type SageBattleMogsInstance = pallet_sage::Instance2;
122123
impl pallet_sage::Config<SageBattleMogsInstance> for Runtime {
123124
type PalletId = SageBattleMogsId;
124125
type SageGameTransition = BattleMogsGameTransition;
126+
type NextAssetIdProvider = IncrementingAssetIdProvider<BattleMogsAssetId>;
125127
type SeasonHandler = SageBattleMogsSeasons;
126128
type FeeHandler = BattleMogsFeeHandler;
127129
type TransferFunds = TransferFungibleAssets<TransferWithdraw, FungiblesAssetId>;

backend/runtime/src/configs/sage/casino_jam.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use ajuna_payment_handler::{
2626
};
2727
use ajuna_primitives::{
2828
asset_manager::{AssetFundsManager, AssetInspector, AssetManager},
29+
next_asset_id_provider::IncrementingAssetIdProvider,
2930
sage_api::SageApi,
3031
season_manager::{SeasonConfig, SeasonManager},
3132
};
@@ -121,6 +122,7 @@ pub type SageCasinoJamInstance = pallet_sage::Instance1;
121122
impl pallet_sage::Config<SageCasinoJamInstance> for Runtime {
122123
type PalletId = SageCasinoJamId;
123124
type SageGameTransition = CasinoJamGameTransition;
125+
type NextAssetIdProvider = IncrementingAssetIdProvider<CasinoJamAssetId>;
124126
type SeasonHandler = SageCasinoJamSeasons;
125127
type FeeHandler = CasinoJamFeeHandler;
126128
type TransferFunds = TransferFungibleAssets<TransferWithdraw, FungiblesAssetId>;

0 commit comments

Comments
 (0)