Skip to content

Conversation

mrshiposha
Copy link
Contributor

@mrshiposha mrshiposha commented Sep 12, 2025

  • New token property size limit fee logic
  • Collection property logic has NOT been changed
  • Property-related benchmarks are revised/fixed. This adds the reading of TokenPropertyPermissions to load_collection_info, and adds the reading of TokenProperties to load_token_properties.
  • Fixed consume_space bug (consumed_space + key_size + value_size < limit was checked without accounting for the old value size under the given key)

@@ -34,13 +34,19 @@ const SEED: u32 = 1;
fn create_max_item_data<T: Config>(
users: impl IntoIterator<Item = (T::CrossAccountId, u128)>,
) -> CreateItemData<T> {
let properties = (0..MAX_PROPERTIES_PER_ITEM)
.map(|property_id| max_property(property_id, MAX_PROPERTIES_PER_ITEM))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.map(|property_id| max_property(property_id, MAX_PROPERTIES_PER_ITEM))
.map(|property_id| max_property(property_id, MAX_DATA))

?..

Copy link
Contributor Author

@mrshiposha mrshiposha Sep 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не, там расчёт сколько можно в отдельный проперти воткнуть, чтобы забить мапу до предела по данным, учитывая общее количество пропертей.

Я не уверен что это хорошо сделано, можно переделать. Кроме того, оно щас оверэстимейтит, т.к. оно пытается забивать токены до предела как будто метаданные не учитываются (CompactLen), так что внутри токенов в бенчмарках пишутся больше данных, чем туда реально может попасть на проде.

@mrshiposha
Copy link
Contributor Author

@ALFecki в js-packages/tests/sub/nesting/tokenProperties.test.ts добавлены новые тесты. По факту, самая главная штука -- это testPropLimitUpgrade. Оно проверяет что каждый выставленный лимит по пропертям токенов (Default, Extended, Max) работает. Одинаковая логика нужна для проверки этого при создании токена и при модификации существующего. Поэтому testPropLimitUpgrade обобщён и он дёргает коллбек. Отдельные тесты (itSub) просто дают нужный коллбек в эту функцию.

Не хватает сейчас таких же тестов для проверки того, что всё то же самое правильно работает из Эфира (то есть надо ту же логику происпользовать -- с коллбеком, который создаёт/модифицирует токены из-под Эфира).

Ну и не хватает отдельного тупого теста, который проверяет что лимит пропертей можно выставить через Эфир, а не только через Субстрат

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants