Releases: CityOfZion/props
Releases · CityOfZion/props
System Fee Determinism
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
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
togenerator
. 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 mintunique 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 globalset_mint_fee
privs can update an epoch'smintFee
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 inOnNep17Payment