@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f15b559-661
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +108 -188
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +244 -190
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +82 -56
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -73
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +256 -296
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +139 -131
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +638 -301
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +375 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +586 -215
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +412 -372
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -353
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +62 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +88 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +101 -49
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +47 -25
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +177 -84
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +42 -38
- package/contracts/distribution/DistributionService.sol +54 -51
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +19 -19
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +32 -10
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -25
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +13 -9
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +33 -18
- package/contracts/instance/InstanceAdmin.sol +242 -84
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
- package/contracts/instance/InstanceReader.sol +174 -32
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +27 -8
- package/contracts/pool/BundleService.sol +47 -145
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -96
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +427 -214
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -137
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +5 -8
- package/contracts/product/PolicyService.sol +244 -253
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +66 -52
- package/contracts/product/RiskService.sol +79 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +10 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +61 -105
- package/contracts/shared/ComponentService.sol +301 -295
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +16 -25
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +4 -20
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +263 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +5 -8
- package/contracts/staking/IStakingService.sol +8 -0
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +35 -12
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
| @@ -11,9 +11,11 @@ type RoleId is uint64; | |
| 11 11 | 
             
            using {
         | 
| 12 12 | 
             
                eqRoleId as ==, 
         | 
| 13 13 | 
             
                neRoleId as !=,
         | 
| 14 | 
            +
                RoleIdLib.toInt,
         | 
| 14 15 | 
             
                RoleIdLib.eqz,
         | 
| 15 16 | 
             
                RoleIdLib.gtz,
         | 
| 16 | 
            -
                RoleIdLib. | 
| 17 | 
            +
                RoleIdLib.isComponentRole,
         | 
| 18 | 
            +
                RoleIdLib.isCustomRole
         | 
| 17 19 | 
             
                // RoleIdLib.toKey32
         | 
| 18 20 | 
             
            } for RoleId global;
         | 
| 19 21 |  | 
| @@ -54,6 +56,9 @@ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2) | |
| 54 56 | 
             
            /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
         | 
| 55 57 | 
             
            function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); } 
         | 
| 56 58 |  | 
| 59 | 
            +
            /// @dev role assigned to release registry, release specfic to lock/unlock a release
         | 
| 60 | 
            +
            function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
         | 
| 61 | 
            +
             | 
| 57 62 | 
             
            //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
         | 
| 58 63 | 
             
            // created and assigned during initial deployment for registry and staking
         | 
| 59 64 | 
             
            // granting for instances and components in instance service
         | 
| @@ -72,6 +77,8 @@ function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRo | |
| 72 77 | 
             
            // - application service role (version 3): 2003
         | 
| 73 78 |  | 
| 74 79 | 
             
            //--- GIF component contract roles (range 12'001 - 19'099) ------------------//
         | 
| 80 | 
            +
            // the min value of 12'001 is based on the following calculation:
         | 
| 81 | 
            +
            // object type * 1000 + 1 where the lowest object type is 12 (product) 
         | 
| 75 82 | 
             
            // assigned at component registration time
         | 
| 76 83 | 
             
            // object type * 1000 + instane specific component counter
         | 
| 77 84 | 
             
            // on any instance a maximum number of 999 components may be deployed
         | 
| @@ -92,8 +99,10 @@ library RoleIdLib { | |
| 92 99 |  | 
| 93 100 | 
             
                uint64 public constant ALL_VERSIONS = 99;
         | 
| 94 101 | 
             
                uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
         | 
| 95 | 
            -
                uint64 public constant COMPONENT_ROLE_FACTOR =  | 
| 96 | 
            -
                uint64 public constant  | 
| 102 | 
            +
                uint64 public constant COMPONENT_ROLE_FACTOR = 1000;
         | 
| 103 | 
            +
                uint64 public constant COMPONENT_ROLE_MIN_INT = 12000;
         | 
| 104 | 
            +
                uint64 public constant COMPONENT_ROLE_MAX_INT = 19000;
         | 
| 105 | 
            +
                uint64 public constant CUSTOM_ROLE_MIN_INT = 1000000;
         | 
| 97 106 |  | 
| 98 107 | 
             
                /// @dev Converts the RoleId to a uint.
         | 
| 99 108 | 
             
                function zero() public pure returns (RoleId) {
         | 
| @@ -112,7 +121,7 @@ library RoleIdLib { | |
| 112 121 |  | 
| 113 122 | 
             
                /// @dev Converts an uint into a custom role id.
         | 
| 114 123 | 
             
                function toCustomRoleId(uint64 index) public pure returns (RoleId) {
         | 
| 115 | 
            -
                    return toRoleId( | 
| 124 | 
            +
                    return toRoleId(CUSTOM_ROLE_MIN_INT + index);
         | 
| 116 125 | 
             
                }
         | 
| 117 126 |  | 
| 118 127 | 
             
                /// @dev Converts the role id to a uint.
         | 
| @@ -150,6 +159,17 @@ library RoleIdLib { | |
| 150 159 | 
             
                    return RoleId.unwrap(a) == 0;
         | 
| 151 160 | 
             
                }
         | 
| 152 161 |  | 
| 162 | 
            +
                /// @dev Returns true iff the role id is a component role.
         | 
| 163 | 
            +
                function isComponentRole(RoleId roleId) public pure returns (bool) {
         | 
| 164 | 
            +
                    uint64 roleIdInt = RoleId.unwrap(roleId);
         | 
| 165 | 
            +
                    return roleIdInt >= COMPONENT_ROLE_MIN_INT && roleIdInt <= COMPONENT_ROLE_MAX_INT;
         | 
| 166 | 
            +
                }
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                /// @dev Returns true iff the role id is a custom role.
         | 
| 169 | 
            +
                function isCustomRole(RoleId roleId) public pure returns (bool) {
         | 
| 170 | 
            +
                    return RoleId.unwrap(roleId) >= CUSTOM_ROLE_MIN_INT;
         | 
| 171 | 
            +
                }
         | 
| 172 | 
            +
             | 
| 153 173 | 
             
                /// @dev Returns the key32 value for the specified id and object type.
         | 
| 154 174 | 
             
                function toKey32(RoleId a) public pure returns (Key32 key) {
         | 
| 155 175 | 
             
                    return Key32Lib.toKey32(ROLE(), toKeyId(a));
         | 
| @@ -8,6 +8,7 @@ using { | |
| 8 8 | 
             
                eqSelector as ==, 
         | 
| 9 9 | 
             
                neSelector as !=, 
         | 
| 10 10 | 
             
                SelectorLib.toBytes4,
         | 
| 11 | 
            +
                SelectorLib.toString,
         | 
| 11 12 | 
             
                SelectorLib.eqz
         | 
| 12 13 | 
             
            } for Selector global;
         | 
| 13 14 |  | 
| @@ -46,6 +47,10 @@ library SelectorLib { | |
| 46 47 | 
             
                function toBytes4(Selector s) public pure returns (bytes4) {
         | 
| 47 48 | 
             
                    return Selector.unwrap(s);
         | 
| 48 49 | 
             
                }
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                function toString(Selector s) public pure returns (string memory) {
         | 
| 52 | 
            +
                    return string(abi.encode(Selector.unwrap(s)));
         | 
| 53 | 
            +
                }
         | 
| 49 54 | 
             
            }
         | 
| 50 55 |  | 
| 51 56 | 
             
            // selector specific set library
         | 
| @@ -54,11 +54,6 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) { | |
| 54 54 | 
             
                return Timestamp.unwrap(a) != Timestamp.unwrap(b);
         | 
| 55 55 | 
             
            }
         | 
| 56 56 |  | 
| 57 | 
            -
            /// @dev Converts the uint256 to a Timestamp.
         | 
| 58 | 
            -
            function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
         | 
| 59 | 
            -
                return TimestampLib.toTimestamp(timestamp);
         | 
| 60 | 
            -
            }
         | 
| 61 | 
            -
             | 
| 62 57 | 
             
            // TODO move to TimestampLib and rename to zero()
         | 
| 63 58 | 
             
            /// @dev Return the Timestamp zero (0)
         | 
| 64 59 | 
             
            function zeroTimestamp() pure returns (Timestamp) {
         | 
| @@ -1,6 +1,8 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            +
            import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
         | 
| 5 | 
            +
             | 
| 4 6 | 
             
            /// @dev UFixed is a fixed point number with 18 decimals precision.
         | 
| 5 7 | 
             
            type UFixed is uint256;
         | 
| 6 8 |  | 
| @@ -39,7 +41,7 @@ function subUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 39 41 |  | 
| 40 42 | 
             
            function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
         | 
| 41 43 | 
             
                return
         | 
| 42 | 
            -
                    UFixed.wrap( | 
| 44 | 
            +
                    UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
         | 
| 43 45 | 
             
            }
         | 
| 44 46 |  | 
| 45 47 | 
             
            function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
         | 
| @@ -48,7 +50,7 @@ function divUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 48 50 | 
             
                }
         | 
| 49 51 |  | 
| 50 52 | 
             
                return
         | 
| 51 | 
            -
                    UFixed.wrap( | 
| 53 | 
            +
                    UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
         | 
| 52 54 | 
             
            }
         | 
| 53 55 |  | 
| 54 56 | 
             
            function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
         | 
| @@ -91,118 +93,6 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 91 93 | 
             
                return b - a;
         | 
| 92 94 | 
             
            }
         | 
| 93 95 |  | 
| 94 | 
            -
            /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
         | 
| 95 | 
            -
            library MathLib {
         | 
| 96 | 
            -
             | 
| 97 | 
            -
                error MathLigMulDivOverflow();
         | 
| 98 | 
            -
             | 
| 99 | 
            -
                enum Rounding {
         | 
| 100 | 
            -
                    Down, // Toward negative infinity
         | 
| 101 | 
            -
                    Up, // Toward infinity
         | 
| 102 | 
            -
                    Zero // Toward zero
         | 
| 103 | 
            -
                }
         | 
| 104 | 
            -
             | 
| 105 | 
            -
                /**
         | 
| 106 | 
            -
                 * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
         | 
| 107 | 
            -
                 * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
         | 
| 108 | 
            -
                 * with further edits by Uniswap Labs also under MIT license.
         | 
| 109 | 
            -
                 */
         | 
| 110 | 
            -
                function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
         | 
| 111 | 
            -
                    unchecked {
         | 
| 112 | 
            -
                        // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
         | 
| 113 | 
            -
                        // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
         | 
| 114 | 
            -
                        // variables such that product = prod1 * 2^256 + prod0.
         | 
| 115 | 
            -
                        uint256 prod0; // Least significant 256 bits of the product
         | 
| 116 | 
            -
                        uint256 prod1; // Most significant 256 bits of the product
         | 
| 117 | 
            -
                        assembly {
         | 
| 118 | 
            -
                            let mm := mulmod(x, y, not(0))
         | 
| 119 | 
            -
                            prod0 := mul(x, y)
         | 
| 120 | 
            -
                            prod1 := sub(sub(mm, prod0), lt(mm, prod0))
         | 
| 121 | 
            -
                        }
         | 
| 122 | 
            -
             | 
| 123 | 
            -
                        // Handle non-overflow cases, 256 by 256 division.
         | 
| 124 | 
            -
                        if (prod1 == 0) {
         | 
| 125 | 
            -
                            // Solidity will revert if denominator == 0, unlike the div opcode on its own.
         | 
| 126 | 
            -
                            // The surrounding unchecked block does not change this fact.
         | 
| 127 | 
            -
                            // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.
         | 
| 128 | 
            -
                            return prod0 / denominator;
         | 
| 129 | 
            -
                        }
         | 
| 130 | 
            -
             | 
| 131 | 
            -
                        // Make sure the result is less than 2^256. Also prevents denominator == 0.
         | 
| 132 | 
            -
                        if (denominator <= prod1) {
         | 
| 133 | 
            -
                            revert MathLigMulDivOverflow();
         | 
| 134 | 
            -
                        }
         | 
| 135 | 
            -
                        
         | 
| 136 | 
            -
                        ///////////////////////////////////////////////
         | 
| 137 | 
            -
                        // 512 by 256 division.
         | 
| 138 | 
            -
                        ///////////////////////////////////////////////
         | 
| 139 | 
            -
             | 
| 140 | 
            -
                        // Make division exact by subtracting the remainder from [prod1 prod0].
         | 
| 141 | 
            -
                        uint256 remainder;
         | 
| 142 | 
            -
                        assembly {
         | 
| 143 | 
            -
                            // Compute remainder using mulmod.
         | 
| 144 | 
            -
                            remainder := mulmod(x, y, denominator)
         | 
| 145 | 
            -
             | 
| 146 | 
            -
                            // Subtract 256 bit number from 512 bit number.
         | 
| 147 | 
            -
                            prod1 := sub(prod1, gt(remainder, prod0))
         | 
| 148 | 
            -
                            prod0 := sub(prod0, remainder)
         | 
| 149 | 
            -
                        }
         | 
| 150 | 
            -
             | 
| 151 | 
            -
                        // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
         | 
| 152 | 
            -
                        // See https://cs.stackexchange.com/q/138556/92363.
         | 
| 153 | 
            -
             | 
| 154 | 
            -
                        // Does not overflow because the denominator cannot be zero at this stage in the function.
         | 
| 155 | 
            -
                        uint256 twos = denominator & (~denominator + 1);
         | 
| 156 | 
            -
                        assembly {
         | 
| 157 | 
            -
                            // Divide denominator by twos.
         | 
| 158 | 
            -
                            denominator := div(denominator, twos)
         | 
| 159 | 
            -
             | 
| 160 | 
            -
                            // Divide [prod1 prod0] by twos.
         | 
| 161 | 
            -
                            prod0 := div(prod0, twos)
         | 
| 162 | 
            -
             | 
| 163 | 
            -
                            // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
         | 
| 164 | 
            -
                            twos := add(div(sub(0, twos), twos), 1)
         | 
| 165 | 
            -
                        }
         | 
| 166 | 
            -
             | 
| 167 | 
            -
                        // Shift in bits from prod1 into prod0.
         | 
| 168 | 
            -
                        prod0 |= prod1 * twos;
         | 
| 169 | 
            -
             | 
| 170 | 
            -
                        // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
         | 
| 171 | 
            -
                        // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
         | 
| 172 | 
            -
                        // four bits. That is, denominator * inv = 1 mod 2^4.
         | 
| 173 | 
            -
                        uint256 inverse = (3 * denominator) ^ 2;
         | 
| 174 | 
            -
             | 
| 175 | 
            -
                        // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
         | 
| 176 | 
            -
                        // in modular arithmetic, doubling the correct bits in each step.
         | 
| 177 | 
            -
                        inverse *= 2 - denominator * inverse; // inverse mod 2^8
         | 
| 178 | 
            -
                        inverse *= 2 - denominator * inverse; // inverse mod 2^16
         | 
| 179 | 
            -
                        inverse *= 2 - denominator * inverse; // inverse mod 2^32
         | 
| 180 | 
            -
                        inverse *= 2 - denominator * inverse; // inverse mod 2^64
         | 
| 181 | 
            -
                        inverse *= 2 - denominator * inverse; // inverse mod 2^128
         | 
| 182 | 
            -
                        inverse *= 2 - denominator * inverse; // inverse mod 2^256
         | 
| 183 | 
            -
             | 
| 184 | 
            -
                        // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
         | 
| 185 | 
            -
                        // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
         | 
| 186 | 
            -
                        // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
         | 
| 187 | 
            -
                        // is no longer required.
         | 
| 188 | 
            -
                        result = prod0 * inverse;
         | 
| 189 | 
            -
                        return result;
         | 
| 190 | 
            -
                    }
         | 
| 191 | 
            -
                }
         | 
| 192 | 
            -
             | 
| 193 | 
            -
                /**
         | 
| 194 | 
            -
                 * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
         | 
| 195 | 
            -
                 */
         | 
| 196 | 
            -
                function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
         | 
| 197 | 
            -
                    uint256 result = mulDiv(x, y, denominator);
         | 
| 198 | 
            -
                    if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
         | 
| 199 | 
            -
                        result += 1;
         | 
| 200 | 
            -
                    }
         | 
| 201 | 
            -
                    return result;
         | 
| 202 | 
            -
                }
         | 
| 203 | 
            -
             | 
| 204 | 
            -
            }
         | 
| 205 | 
            -
             | 
| 206 96 | 
             
            library UFixedLib {
         | 
| 207 97 | 
             
                error UFixedLibNegativeResult();
         | 
| 208 98 | 
             
                error UFixedLibDivisionByZero();
         | 
| @@ -265,23 +155,23 @@ library UFixedLib { | |
| 265 155 | 
             
                function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
         | 
| 266 156 | 
             
                    if (rounding == ROUNDING_HALF_UP()) {
         | 
| 267 157 | 
             
                        return
         | 
| 268 | 
            -
                             | 
| 158 | 
            +
                            Math.mulDiv(
         | 
| 269 159 | 
             
                                UFixed.unwrap(a) + MULTIPLIER_HALF,
         | 
| 270 160 | 
             
                                1,
         | 
| 271 161 | 
             
                                MULTIPLIER,
         | 
| 272 | 
            -
                                 | 
| 162 | 
            +
                                Math.Rounding.Floor
         | 
| 273 163 | 
             
                            );
         | 
| 274 164 | 
             
                    } else if (rounding == ROUNDING_DOWN()) {
         | 
| 275 165 | 
             
                        return
         | 
| 276 | 
            -
                             | 
| 166 | 
            +
                            Math.mulDiv(
         | 
| 277 167 | 
             
                                UFixed.unwrap(a),
         | 
| 278 168 | 
             
                                1,
         | 
| 279 169 | 
             
                                MULTIPLIER,
         | 
| 280 | 
            -
                                 | 
| 170 | 
            +
                                Math.Rounding.Floor
         | 
| 281 171 | 
             
                            );
         | 
| 282 172 | 
             
                    } else {
         | 
| 283 173 | 
             
                        return
         | 
| 284 | 
            -
                             | 
| 174 | 
            +
                            Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
         | 
| 285 175 | 
             
                    }
         | 
| 286 176 | 
             
                }
         | 
| 287 177 |  | 
| @@ -8,7 +8,8 @@ using { | |
| 8 8 | 
             
                versionPartEq as ==,
         | 
| 9 9 | 
             
                versionPartNe as !=,
         | 
| 10 10 | 
             
                VersionPartLib.eqz,
         | 
| 11 | 
            -
                VersionPartLib.toInt
         | 
| 11 | 
            +
                VersionPartLib.toInt,
         | 
| 12 | 
            +
                VersionPartLib.isValidRelease
         | 
| 12 13 | 
             
            }
         | 
| 13 14 | 
             
                for VersionPart global;
         | 
| 14 15 |  | 
| @@ -17,9 +18,17 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { | |
| 17 18 | 
             
            function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
         | 
| 18 19 |  | 
| 19 20 | 
             
            library VersionPartLib {
         | 
| 21 | 
            +
                function releaseMin() public pure returns (VersionPart) { return toVersionPart(3); }
         | 
| 22 | 
            +
                function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                function isValidRelease(VersionPart release) external pure returns(bool) { 
         | 
| 25 | 
            +
                    uint256 releaseInt = VersionPart.unwrap(release);
         | 
| 26 | 
            +
                    return 3 <= releaseInt && releaseInt <= 99; 
         | 
| 27 | 
            +
                } 
         | 
| 28 | 
            +
             | 
| 20 29 | 
             
                function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
         | 
| 21 30 | 
             
                function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
         | 
| 22 | 
            -
                function toVersionPart(uint256 a)  | 
| 31 | 
            +
                function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
         | 
| 23 32 | 
             
            }
         | 
| 24 33 |  | 
| 25 34 | 
             
            type Version is uint24; // contains major,minor,patch version parts
         | 
| @@ -38,6 +47,7 @@ function versionGt(Version a, Version b) pure returns(bool isGreaterThan) { retu | |
| 38 47 | 
             
            function versionEq(Version a, Version b) pure returns(bool isSame) { return Version.unwrap(a) == Version.unwrap(b); }
         | 
| 39 48 |  | 
| 40 49 | 
             
            library VersionLib {
         | 
| 50 | 
            +
             | 
| 41 51 | 
             
                function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
         | 
| 42 52 |  | 
| 43 53 | 
             
                function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
         | 
| @@ -75,9 +85,9 @@ library VersionLib { | |
| 75 85 | 
             
                    );
         | 
| 76 86 | 
             
                }
         | 
| 77 87 |  | 
| 78 | 
            -
                function toVersionPart(uint256 versionPart)  | 
| 79 | 
            -
             | 
| 80 | 
            -
                }
         | 
| 88 | 
            +
                // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) { 
         | 
| 89 | 
            +
                //     return VersionPart.wrap(uint8(versionPart)); 
         | 
| 90 | 
            +
                // }
         | 
| 81 91 |  | 
| 82 92 | 
             
                function toVersion(
         | 
| 83 93 | 
             
                    uint256 major,
         | 
| @@ -193,7 +193,7 @@ contract ProxyManager is | |
| 193 193 | 
             
                    }
         | 
| 194 194 |  | 
| 195 195 | 
             
                    address initialOwner = msg.sender;
         | 
| 196 | 
            -
                     | 
| 196 | 
            +
                    __NftOwnable_init(registry, initialOwner);
         | 
| 197 197 |  | 
| 198 198 | 
             
                    currentProxyOwner = getOwner(); // used by implementation
         | 
| 199 199 | 
             
                    initialProxyAdminOwner = address(this); // used by proxy
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "@etherisc/gif-next",
         | 
| 3 | 
            -
              "version": "0.0.2- | 
| 3 | 
            +
              "version": "0.0.2-f15b559-661",
         | 
| 4 4 | 
             
              "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
         | 
| 5 5 | 
             
              "main": "index.js",
         | 
| 6 6 | 
             
              "scripts": {
         | 
| @@ -32,8 +32,8 @@ | |
| 32 32 | 
             
                "@nomicfoundation/hardhat-foundry": "^1.1.1",
         | 
| 33 33 | 
             
                "@nomicfoundation/hardhat-toolbox": "^5.0.0",
         | 
| 34 34 | 
             
                "@nomicfoundation/hardhat-verify": "^2.0.1",
         | 
| 35 | 
            -
                "@typescript-eslint/eslint-plugin": "^ | 
| 36 | 
            -
                "@typescript-eslint/parser": "^ | 
| 35 | 
            +
                "@typescript-eslint/eslint-plugin": "^8.1.0",
         | 
| 36 | 
            +
                "@typescript-eslint/parser": "^8.1.0",
         | 
| 37 37 | 
             
                "antlr4ng-cli": "^2.0.0",
         | 
| 38 38 | 
             
                "dotenv": "^16.3.1",
         | 
| 39 39 | 
             
                "eslint": "^8.50.0",
         |