Skip to content

Releases: CityOfZion/props

System Fee Determinism

27 Jan 05:18
Compare
Choose a tag to compare

General

This release implements system fee determinism to the generator and puppet contracts which allows all non-deterministic code to execute with the same system fee. This behavior creates a predictable invocation experience for users and prevents any form of exploitation by leveraging attached GAS.

  • Adds optimization scripts to help identify an ideal system fee parameter for both generators and puppets

Generators

  • Introduces a default system fee for generator creation
  • Introduces the ability for generator instances to tune the system fee (this is important in the situation where the network policy changes)

Puppets

  • Introduces the ability for fees to be defined by epoch

Instances and Generators

25 Jan 00:29
Compare
Choose a tag to compare

This release implements some major changes to the contracts and workflow to support more general usecases

Epoch (now Generator)

  • renames the old concept of epoch to generator. The epoch contract has been replaced with a generator contract.
  • maxMint is now a required field for generators. This new field will set the maximum number of a trait that can be minted in an epoch. -1 can be used to ignore this feature. This feature allows generators to mint unique traits
  • Generators are now immutable. To use them, an address can use the createInstance method, then interact with that instance using its identifier. Generator instances come with a number of features including a user whitelist to ensure that individual instances are secure without prohibiting people from using a specific generator or requiring copying everytime someone wants to do something new. the mint counts are unique to each generator instance.
  • traits max options length has been increased by an order of magnitude

Puppet

  • updates puppets to mint from Generator instances
  • Reintroduces the concept of epoch, which represents minting configurations for puppets. Current settings include the mint fee, generator instance id, and max supply. This feature also allows multiple epochs to be concurrently minted from, allowing others to securely create their own puppets.
    Note: mint fees currently arent accessible by anyone but contract admin
    Note: only a user with global set_mint_fee privs can update an epoch's mintFee right now
  • mintFees are now handled at an epoch level so there could be a 4 GAS and 1000 GAS puppet available concurrently. The minting epoch is handled using the data param in OnNep17Payment