@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13d67f-541
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 +90 -317
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
- 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 +560 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -300
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -173
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +190 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -135
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- 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 +160 -224
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -337
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -257
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -165
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -233
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +946 -466
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- 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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +417 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +615 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1127 -557
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +434 -81
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1286 -1925
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +83 -175
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
- 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 +48 -74
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -111
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +154 -46
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -173
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +426 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -128
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -159
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +186 -66
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +143 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -223
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +151 -83
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -181
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -77
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +131 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +193 -217
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +141 -41
- 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 +78 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- 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 +116 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +848 -479
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +119 -39
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -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 +398 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +66 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +155 -83
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- 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 +48 -60
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -74
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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 +139 -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 +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -110
- 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 +21 -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 +137 -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 +51 -11
- 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 +1446 -164
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1583 -296
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +160 -69
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- 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 +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +94 -38
- 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 +49 -50
- 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 +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- 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 +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- 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/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- 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 +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +95 -25
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +389 -306
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +161 -260
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +89 -84
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +19 -18
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +45 -85
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +38 -20
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/flight/FlightLib.sol +279 -0
- package/contracts/examples/flight/FlightOracle.sol +168 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +470 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
- package/contracts/examples/flight/FlightUSD.sol +26 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +61 -14
- package/contracts/instance/Instance.sol +184 -65
- package/contracts/instance/InstanceAdmin.sol +221 -193
- package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
- package/contracts/instance/InstanceReader.sol +447 -314
- package/contracts/instance/InstanceService.sol +315 -214
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +152 -116
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -10
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +5 -9
- package/contracts/oracle/OracleService.sol +98 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +26 -19
- package/contracts/pool/BasicPoolAuthorization.sol +34 -10
- package/contracts/pool/BundleService.sol +75 -182
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +28 -55
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +111 -115
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +299 -229
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -15
- package/contracts/product/BasicProductAuthorization.sol +33 -11
- package/contracts/product/ClaimService.sol +221 -207
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +260 -306
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -70
- package/contracts/product/RiskService.sol +130 -37
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +25 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +31 -12
- package/contracts/registry/RegistryAdmin.sol +94 -369
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +158 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +58 -119
- package/contracts/shared/ComponentService.sol +400 -395
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +277 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +63 -44
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +264 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +270 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +522 -222
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -148
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- 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 +70 -68
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -8
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +27 -13
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +4 -4
- 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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- 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
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -12,10 +12,12 @@ using { | |
| 12 12 | 
             
                StrLib.length
         | 
| 13 13 | 
             
            } for Str global;
         | 
| 14 14 |  | 
| 15 | 
            +
            // pure free function needed for the operator overloading
         | 
| 15 16 | 
             
            function StrEq(Str s1, Str s2) pure returns (bool) {
         | 
| 16 17 | 
             
                return StrLib.eq(s1, s2);
         | 
| 17 18 | 
             
            }
         | 
| 18 19 |  | 
| 20 | 
            +
            // pure free function needed for the operator overloading
         | 
| 19 21 | 
             
            function StrNe(Str s1, Str s2) pure returns (bool) {
         | 
| 20 22 | 
             
                return StrLib.ne(s1, s2);
         | 
| 21 23 | 
             
            }
         | 
| @@ -39,6 +41,16 @@ library StrLib { | |
| 39 41 | 
             
                    return Str.unwrap(s1) != Str.unwrap(s2);
         | 
| 40 42 | 
             
                }
         | 
| 41 43 |  | 
| 44 | 
            +
                /// @dev return true iff s1 equals from s2
         | 
| 45 | 
            +
                function eq(string memory s1, string memory s2) public pure returns (bool) {
         | 
| 46 | 
            +
                    return keccak256(bytes(s1)) == keccak256(bytes(s2));
         | 
| 47 | 
            +
                }
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                /// @dev return true iff s1 differs s2
         | 
| 50 | 
            +
                function ne(string memory s1, string memory s2) public pure returns (bool) {
         | 
| 51 | 
            +
                    return !eq(s1, s2);
         | 
| 52 | 
            +
                }
         | 
| 53 | 
            +
             | 
| 42 54 | 
             
                /// @dev converts the provided short string into a string.
         | 
| 43 55 | 
             
                /// uses ShortStrings.toString
         | 
| 44 56 | 
             
                function toString(Str str) public pure returns (string memory) {
         | 
| @@ -50,4 +62,34 @@ library StrLib { | |
| 50 62 | 
             
                function length(Str str) public pure returns (uint256 byteLength) {
         | 
| 51 63 | 
             
                    return ShortStrings.byteLength(ShortString.wrap(Str.unwrap(str)));
         | 
| 52 64 | 
             
                }
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                /// @dev Returns the provied int as a string
         | 
| 67 | 
            +
                function uintToString(uint256 value) public pure returns (string memory name) {
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                    if (value == 0) {
         | 
| 70 | 
            +
                        return "0";
         | 
| 71 | 
            +
                    }
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                    uint256 temp = value;
         | 
| 74 | 
            +
                    uint256 digits = 0;
         | 
| 75 | 
            +
                    while (temp != 0) {
         | 
| 76 | 
            +
                        digits++;
         | 
| 77 | 
            +
                        temp /= 10;
         | 
| 78 | 
            +
                    }
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                    bytes memory buffer = new bytes(digits);
         | 
| 81 | 
            +
                    uint256 index = digits - 1;
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                    temp = value;
         | 
| 84 | 
            +
                    while (temp != 0) {
         | 
| 85 | 
            +
                        buffer[index] = bytes1(uint8(48 + temp % 10));
         | 
| 86 | 
            +
                        temp /= 10;
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                        if (index > 0) {
         | 
| 89 | 
            +
                            index--;
         | 
| 90 | 
            +
                        }
         | 
| 91 | 
            +
                    }
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                    return string(buffer);
         | 
| 94 | 
            +
                }
         | 
| 53 95 | 
             
            }
         | 
| @@ -3,6 +3,8 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {Seconds} from "./Seconds.sol";
         | 
| 5 5 |  | 
| 6 | 
            +
            /// @dev Target: Cover 10 years with 1 ms block time resolution.
         | 
| 7 | 
            +
            /// Typical block time resolution is 1s.
         | 
| 6 8 | 
             
            type Timestamp is uint40;
         | 
| 7 9 |  | 
| 8 10 | 
             
            using {
         | 
| @@ -21,6 +23,7 @@ using { | |
| 21 23 | 
             
                TimestampLib.gtz,
         | 
| 22 24 | 
             
                TimestampLib.eqz,
         | 
| 23 25 | 
             
                TimestampLib.addSeconds,
         | 
| 26 | 
            +
                TimestampLib.subtractSeconds,
         | 
| 24 27 | 
             
                TimestampLib.toInt
         | 
| 25 28 | 
             
            } for Timestamp global;
         | 
| 26 29 |  | 
| @@ -54,11 +57,6 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) { | |
| 54 57 | 
             
                return Timestamp.unwrap(a) != Timestamp.unwrap(b);
         | 
| 55 58 | 
             
            }
         | 
| 56 59 |  | 
| 57 | 
            -
            /// @dev Converts the uint256 to a Timestamp.
         | 
| 58 | 
            -
            function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
         | 
| 59 | 
            -
                return TimestampLib.toTimestamp(timestamp);
         | 
| 60 | 
            -
            }
         | 
| 61 | 
            -
             | 
| 62 60 | 
             
            // TODO move to TimestampLib and rename to zero()
         | 
| 63 61 | 
             
            /// @dev Return the Timestamp zero (0)
         | 
| 64 62 | 
             
            function zeroTimestamp() pure returns (Timestamp) {
         | 
| @@ -74,8 +72,8 @@ library TimestampLib { | |
| 74 72 | 
             
                function max() public pure returns (Timestamp) {
         | 
| 75 73 | 
             
                    return Timestamp.wrap(type(uint40).max);
         | 
| 76 74 | 
             
                }
         | 
| 77 | 
            -
             | 
| 78 | 
            -
                function  | 
| 75 | 
            +
             | 
| 76 | 
            +
                function current() public view returns (Timestamp) {
         | 
| 79 77 | 
             
                    return Timestamp.wrap(uint40(block.timestamp));
         | 
| 80 78 | 
             
                }
         | 
| 81 79 |  | 
| @@ -132,7 +130,7 @@ library TimestampLib { | |
| 132 130 | 
             
                    return Timestamp.unwrap(timestamp) > 0;
         | 
| 133 131 | 
             
                }
         | 
| 134 132 |  | 
| 135 | 
            -
                /// @dev return  | 
| 133 | 
            +
                /// @dev return a new timestamp that is duration seconds later than the provided timestamp.
         | 
| 136 134 | 
             
                function addSeconds(
         | 
| 137 135 | 
             
                    Timestamp timestamp,
         | 
| 138 136 | 
             
                    Seconds duration
         | 
| @@ -140,6 +138,14 @@ library TimestampLib { | |
| 140 138 | 
             
                    return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
         | 
| 141 139 | 
             
                }
         | 
| 142 140 |  | 
| 141 | 
            +
                /// @dev return a new timestamp that is duration seconds earlier than the provided timestamp.
         | 
| 142 | 
            +
                function subtractSeconds(
         | 
| 143 | 
            +
                    Timestamp timestamp,
         | 
| 144 | 
            +
                    Seconds duration
         | 
| 145 | 
            +
                ) public pure returns (Timestamp) {
         | 
| 146 | 
            +
                    return toTimestamp(Timestamp.unwrap(timestamp) - duration.toInt());
         | 
| 147 | 
            +
                }
         | 
| 148 | 
            +
             | 
| 143 149 | 
             
                function toInt(Timestamp timestamp) public pure returns (uint256) {
         | 
| 144 150 | 
             
                    return uint256(uint40(Timestamp.unwrap(timestamp)));
         | 
| 145 151 | 
             
                }
         | 
| @@ -1,8 +1,10 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 4 | 
            +
            import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            /// @dev UFixed is a 160-bit fixed point number with 15 decimals precision.
         | 
| 7 | 
            +
            type UFixed is uint160; 
         | 
| 6 8 |  | 
| 7 9 | 
             
            using {
         | 
| 8 10 | 
             
                addUFixed as +,
         | 
| @@ -16,6 +18,7 @@ using { | |
| 16 18 | 
             
                eqUFixed as ==,
         | 
| 17 19 | 
             
                neUFixed as !=,
         | 
| 18 20 | 
             
                UFixedLib.gt,
         | 
| 21 | 
            +
                UFixedLib.eqz,
         | 
| 19 22 | 
             
                UFixedLib.gtz,
         | 
| 20 23 | 
             
                UFixedLib.toInt,
         | 
| 21 24 | 
             
                UFixedLib.toInt1000
         | 
| @@ -39,7 +42,7 @@ function subUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 39 42 |  | 
| 40 43 | 
             
            function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
         | 
| 41 44 | 
             
                return
         | 
| 42 | 
            -
                    UFixed.wrap( | 
| 45 | 
            +
                    UFixed.wrap(uint160(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 15)));
         | 
| 43 46 | 
             
            }
         | 
| 44 47 |  | 
| 45 48 | 
             
            function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
         | 
| @@ -48,7 +51,7 @@ function divUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 48 51 | 
             
                }
         | 
| 49 52 |  | 
| 50 53 | 
             
                return
         | 
| 51 | 
            -
                    UFixed.wrap( | 
| 54 | 
            +
                    UFixed.wrap(uint160(Math.mulDiv(UFixed.unwrap(a), 10 ** 15, UFixed.unwrap(b))));
         | 
| 52 55 | 
             
            }
         | 
| 53 56 |  | 
| 54 57 | 
             
            function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
         | 
| @@ -91,118 +94,6 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 91 94 | 
             
                return b - a;
         | 
| 92 95 | 
             
            }
         | 
| 93 96 |  | 
| 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 97 | 
             
            library UFixedLib {
         | 
| 207 98 | 
             
                error UFixedLibNegativeResult();
         | 
| 208 99 | 
             
                error UFixedLibDivisionByZero();
         | 
| @@ -210,7 +101,9 @@ library UFixedLib { | |
| 210 101 | 
             
                error UFixedLibExponentTooSmall(int8 exp);
         | 
| 211 102 | 
             
                error UFixedLibExponentTooLarge(int8 exp);
         | 
| 212 103 |  | 
| 213 | 
            -
                 | 
| 104 | 
            +
                error UFixedLibNumberTooLarge(uint256 number);
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                int8 public constant EXP = 15;
         | 
| 214 107 | 
             
                uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
         | 
| 215 108 | 
             
                uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
         | 
| 216 109 |  | 
| @@ -229,9 +122,14 @@ library UFixedLib { | |
| 229 122 | 
             
                    return uint8(2);
         | 
| 230 123 | 
             
                }
         | 
| 231 124 |  | 
| 232 | 
            -
                /// @dev Converts the uint256 to a UFixed.
         | 
| 125 | 
            +
                /// @dev Converts the uint256 to a uint160 based UFixed. 
         | 
| 126 | 
            +
                /// This method reverts if the number is too large to fit in a uint160.
         | 
| 233 127 | 
             
                function toUFixed(uint256 a) public pure returns (UFixed) {
         | 
| 234 | 
            -
                     | 
| 128 | 
            +
                    uint256 n = a * MULTIPLIER;
         | 
| 129 | 
            +
                    if (n > type(uint160).max) {
         | 
| 130 | 
            +
                        revert UFixedLibNumberTooLarge(a);
         | 
| 131 | 
            +
                    }
         | 
| 132 | 
            +
                    return UFixed.wrap(uint160(n));
         | 
| 235 133 | 
             
                }
         | 
| 236 134 |  | 
| 237 135 | 
             
                /// @dev Converts the uint256 to a UFixed with given exponent.
         | 
| @@ -239,11 +137,17 @@ library UFixedLib { | |
| 239 137 | 
             
                    if (EXP + exp < 0) {
         | 
| 240 138 | 
             
                        revert UFixedLibExponentTooSmall(exp);
         | 
| 241 139 | 
             
                    }
         | 
| 242 | 
            -
                    if (EXP + exp >  | 
| 140 | 
            +
                    if (EXP + exp > 48) {
         | 
| 243 141 | 
             
                        revert UFixedLibExponentTooLarge(exp);
         | 
| 244 142 | 
             
                    }
         | 
| 245 143 |  | 
| 246 | 
            -
                     | 
| 144 | 
            +
                    uint256 n = a * 10 ** uint8(EXP + exp);
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                    if (n > type(uint160).max) {
         | 
| 147 | 
            +
                        revert UFixedLibNumberTooLarge(n);
         | 
| 148 | 
            +
                    }
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                    return UFixed.wrap(uint160(n));
         | 
| 247 151 | 
             
                }
         | 
| 248 152 |  | 
| 249 153 | 
             
                /// @dev returns the decimals precision of the UFixed type
         | 
| @@ -265,23 +169,23 @@ library UFixedLib { | |
| 265 169 | 
             
                function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
         | 
| 266 170 | 
             
                    if (rounding == ROUNDING_HALF_UP()) {
         | 
| 267 171 | 
             
                        return
         | 
| 268 | 
            -
                             | 
| 172 | 
            +
                            Math.mulDiv(
         | 
| 269 173 | 
             
                                UFixed.unwrap(a) + MULTIPLIER_HALF,
         | 
| 270 174 | 
             
                                1,
         | 
| 271 175 | 
             
                                MULTIPLIER,
         | 
| 272 | 
            -
                                 | 
| 176 | 
            +
                                Math.Rounding.Floor
         | 
| 273 177 | 
             
                            );
         | 
| 274 178 | 
             
                    } else if (rounding == ROUNDING_DOWN()) {
         | 
| 275 179 | 
             
                        return
         | 
| 276 | 
            -
                             | 
| 180 | 
            +
                            Math.mulDiv(
         | 
| 277 181 | 
             
                                UFixed.unwrap(a),
         | 
| 278 182 | 
             
                                1,
         | 
| 279 183 | 
             
                                MULTIPLIER,
         | 
| 280 | 
            -
                                 | 
| 184 | 
            +
                                Math.Rounding.Floor
         | 
| 281 185 | 
             
                            );
         | 
| 282 186 | 
             
                    } else {
         | 
| 283 187 | 
             
                        return
         | 
| 284 | 
            -
                             | 
| 188 | 
            +
                            Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
         | 
| 285 189 | 
             
                    }
         | 
| 286 190 | 
             
                }
         | 
| 287 191 |  | 
| @@ -345,7 +249,11 @@ library UFixedLib { | |
| 345 249 | 
             
                }
         | 
| 346 250 |  | 
| 347 251 | 
             
                function one() public pure returns (UFixed) {
         | 
| 348 | 
            -
                    return UFixed.wrap(MULTIPLIER);
         | 
| 252 | 
            +
                    return UFixed.wrap(uint160(MULTIPLIER));
         | 
| 253 | 
            +
                }
         | 
| 254 | 
            +
             | 
| 255 | 
            +
                function max() public pure returns (UFixed) {
         | 
| 256 | 
            +
                    return UFixed.wrap(type(uint160).max);
         | 
| 349 257 | 
             
                }
         | 
| 350 258 |  | 
| 351 259 | 
             
                /// @dev return the absolute delta between two UFixed numbers
         | 
| @@ -8,7 +8,10 @@ using { | |
| 8 8 | 
             
                versionPartEq as ==,
         | 
| 9 9 | 
             
                versionPartNe as !=,
         | 
| 10 10 | 
             
                VersionPartLib.eqz,
         | 
| 11 | 
            -
                VersionPartLib. | 
| 11 | 
            +
                VersionPartLib.gtz,
         | 
| 12 | 
            +
                VersionPartLib.toInt,
         | 
| 13 | 
            +
                VersionPartLib.toString,
         | 
| 14 | 
            +
                VersionPartLib.isValidRelease
         | 
| 12 15 | 
             
            }
         | 
| 13 16 | 
             
                for VersionPart global;
         | 
| 14 17 |  | 
| @@ -17,9 +20,54 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { | |
| 17 20 | 
             
            function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
         | 
| 18 21 |  | 
| 19 22 | 
             
            library VersionPartLib {
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                error ErrorReleaseTooBig(VersionPart releaseMax, VersionPart release);
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                function releaseMin() public pure returns (VersionPart) { return toVersionPart(3); }
         | 
| 27 | 
            +
                function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                function isValidRelease(VersionPart release) external pure returns(bool) { 
         | 
| 30 | 
            +
                    uint256 releaseInt = VersionPart.unwrap(release);
         | 
| 31 | 
            +
                    return 3 <= releaseInt && releaseInt <= 99; 
         | 
| 32 | 
            +
                } 
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                function toString(VersionPart a) external pure returns (string memory) {
         | 
| 35 | 
            +
                    if (a > releaseMax()) {
         | 
| 36 | 
            +
                        revert ErrorReleaseTooBig(releaseMax(), a);
         | 
| 37 | 
            +
                    }
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                    uint256 value = VersionPart.unwrap(a);
         | 
| 40 | 
            +
                    if (value == 0) {
         | 
| 41 | 
            +
                        return "0";
         | 
| 42 | 
            +
                    }
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                    uint256 temp = value;
         | 
| 45 | 
            +
                    uint256 digits = 0;
         | 
| 46 | 
            +
                    while (temp != 0) {
         | 
| 47 | 
            +
                        digits++;
         | 
| 48 | 
            +
                        temp /= 10;
         | 
| 49 | 
            +
                    }
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                    bytes memory buffer = new bytes(digits);
         | 
| 52 | 
            +
                    uint index = digits - 1;
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                    temp = value;
         | 
| 55 | 
            +
                    while (temp != 0) {
         | 
| 56 | 
            +
                        buffer[index] = bytes1(uint8(48 + temp % 10));
         | 
| 57 | 
            +
                        temp /= 10;
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                        if (index > 0) {
         | 
| 60 | 
            +
                            index--;
         | 
| 61 | 
            +
                        }
         | 
| 62 | 
            +
                    }
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                    return string(buffer);
         | 
| 65 | 
            +
                }
         | 
| 66 | 
            +
             | 
| 20 67 | 
             
                function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
         | 
| 68 | 
            +
                function gtz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) > 0; }
         | 
| 21 69 | 
             
                function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
         | 
| 22 | 
            -
                function toVersionPart(uint256 a)  | 
| 70 | 
            +
                function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
         | 
| 23 71 | 
             
            }
         | 
| 24 72 |  | 
| 25 73 | 
             
            type Version is uint24; // contains major,minor,patch version parts
         | 
| @@ -38,6 +86,7 @@ function versionGt(Version a, Version b) pure returns(bool isGreaterThan) { retu | |
| 38 86 | 
             
            function versionEq(Version a, Version b) pure returns(bool isSame) { return Version.unwrap(a) == Version.unwrap(b); }
         | 
| 39 87 |  | 
| 40 88 | 
             
            library VersionLib {
         | 
| 89 | 
            +
             | 
| 41 90 | 
             
                function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
         | 
| 42 91 |  | 
| 43 92 | 
             
                function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
         | 
| @@ -75,9 +124,9 @@ library VersionLib { | |
| 75 124 | 
             
                    );
         | 
| 76 125 | 
             
                }
         | 
| 77 126 |  | 
| 78 | 
            -
                function toVersionPart(uint256 versionPart)  | 
| 79 | 
            -
             | 
| 80 | 
            -
                }
         | 
| 127 | 
            +
                // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) { 
         | 
| 128 | 
            +
                //     return VersionPart.wrap(uint8(versionPart)); 
         | 
| 129 | 
            +
                // }
         | 
| 81 130 |  | 
| 82 131 | 
             
                function toVersion(
         | 
| 83 132 | 
             
                    uint256 major,
         | 
| @@ -28,6 +28,9 @@ import {Version} from "../type/Version.sol"; | |
| 28 28 |  | 
| 29 29 | 
             
            interface IVersionable {
         | 
| 30 30 |  | 
| 31 | 
            +
                error ErrorVersionableInitializeNotImplemented();
         | 
| 32 | 
            +
                error ErrorVersionableUpgradeNotImplemented();
         | 
| 33 | 
            +
             | 
| 31 34 | 
             
                /**
         | 
| 32 35 | 
             
                 * @dev IMPORTANT
         | 
| 33 36 | 
             
                 * implementation MUST be guarded by initializer modifier
         | 
| @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; | |
| 4 4 | 
             
            import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
         | 
| 5 5 | 
             
            import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
         | 
| 6 6 |  | 
| 7 | 
            -
            import {Blocknumber,  | 
| 7 | 
            +
            import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
         | 
| 8 8 | 
             
            import {IVersionable} from "./IVersionable.sol";
         | 
| 9 9 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 10 10 | 
             
            import {NftOwnable} from "../shared/NftOwnable.sol";
         | 
| @@ -18,11 +18,13 @@ contract ProxyManager is | |
| 18 18 | 
             
            {
         | 
| 19 19 |  | 
| 20 20 | 
             
                struct VersionInfo {
         | 
| 21 | 
            -
                     | 
| 21 | 
            +
                    // slot 0
         | 
| 22 22 | 
             
                    address implementation;
         | 
| 23 | 
            -
                    address activatedBy;
         | 
| 24 23 | 
             
                    Timestamp activatedAt;
         | 
| 25 24 | 
             
                    Blocknumber activatedIn;
         | 
| 25 | 
            +
                    Version version;
         | 
| 26 | 
            +
                    // slot 1
         | 
| 27 | 
            +
                    address activatedBy;
         | 
| 26 28 | 
             
                }
         | 
| 27 29 |  | 
| 28 30 | 
             
                event LogProxyManagerVersionableDeployed(address indexed proxy, address initialImplementation);
         | 
| @@ -37,8 +39,8 @@ contract ProxyManager is | |
| 37 39 | 
             
                UpgradableProxyWithAdmin internal _proxy;
         | 
| 38 40 |  | 
| 39 41 | 
             
                // state to keep version history
         | 
| 40 | 
            -
                mapping(Version version => VersionInfo info) _versionHistory;
         | 
| 41 | 
            -
                Version [] _versions;
         | 
| 42 | 
            +
                mapping(Version version => VersionInfo info) internal _versionHistory;
         | 
| 43 | 
            +
                Version [] internal _versions;
         | 
| 42 44 |  | 
| 43 45 | 
             
                /// @dev convencience initializer
         | 
| 44 46 | 
             
                function initialize(
         | 
| @@ -116,6 +118,18 @@ contract ProxyManager is | |
| 116 118 | 
             
                    emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
         | 
| 117 119 | 
             
                }
         | 
| 118 120 |  | 
| 121 | 
            +
                /// @dev upgrade existing contract.
         | 
| 122 | 
            +
                /// convenience method using empty data
         | 
| 123 | 
            +
                function upgrade(address newImplementation) 
         | 
| 124 | 
            +
                    public
         | 
| 125 | 
            +
                    virtual
         | 
| 126 | 
            +
                    onlyOwner()
         | 
| 127 | 
            +
                    returns (IVersionable versionable)
         | 
| 128 | 
            +
                {
         | 
| 129 | 
            +
                    bytes memory emptyUpgradeData;
         | 
| 130 | 
            +
                    return upgrade(newImplementation, emptyUpgradeData);
         | 
| 131 | 
            +
                }
         | 
| 132 | 
            +
             | 
| 119 133 | 
             
                /// @dev upgrade existing contract
         | 
| 120 134 | 
             
                function upgrade(address newImplementation, bytes memory upgradeData)
         | 
| 121 135 | 
             
                    public
         | 
| @@ -193,7 +207,7 @@ contract ProxyManager is | |
| 193 207 | 
             
                    }
         | 
| 194 208 |  | 
| 195 209 | 
             
                    address initialOwner = msg.sender;
         | 
| 196 | 
            -
                     | 
| 210 | 
            +
                    __NftOwnable_init(registry, initialOwner);
         | 
| 197 211 |  | 
| 198 212 | 
             
                    currentProxyOwner = getOwner(); // used by implementation
         | 
| 199 213 | 
             
                    initialProxyAdminOwner = address(this); // used by proxy
         | 
| @@ -221,12 +235,12 @@ contract ProxyManager is | |
| 221 235 |  | 
| 222 236 | 
             
                    // update version history
         | 
| 223 237 | 
             
                    _versions.push(newVersion);
         | 
| 224 | 
            -
                    _versionHistory[newVersion] = VersionInfo(
         | 
| 225 | 
            -
                        newVersion,
         | 
| 226 | 
            -
                        implementation,
         | 
| 227 | 
            -
                        activatedBy,
         | 
| 228 | 
            -
                        TimestampLib. | 
| 229 | 
            -
                         | 
| 230 | 
            -
                    );
         | 
| 238 | 
            +
                    _versionHistory[newVersion] = VersionInfo({
         | 
| 239 | 
            +
                        version: newVersion,
         | 
| 240 | 
            +
                        implementation: implementation,
         | 
| 241 | 
            +
                        activatedBy: activatedBy,
         | 
| 242 | 
            +
                        activatedAt: TimestampLib.current(),
         | 
| 243 | 
            +
                        activatedIn: BlocknumberLib.current()
         | 
| 244 | 
            +
                    });
         | 
| 231 245 | 
             
                }
         | 
| 232 246 | 
             
            }
         | 
| @@ -6,9 +6,19 @@ import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transpa | |
| 6 6 |  | 
| 7 7 | 
             
            contract UpgradableProxyWithAdmin is TransparentUpgradeableProxy {
         | 
| 8 8 |  | 
| 9 | 
            +
                bytes internal _initializationData;
         | 
| 10 | 
            +
                
         | 
| 9 11 | 
             
                constructor(address implementation, address initialProxyAdminOwner, bytes memory data)
         | 
| 10 12 | 
             
                    TransparentUpgradeableProxy(implementation, initialProxyAdminOwner, data)
         | 
| 11 | 
            -
                { | 
| 13 | 
            +
                {
         | 
| 14 | 
            +
                    _initializationData = data;
         | 
| 15 | 
            +
                }
         | 
| 12 16 |  | 
| 13 | 
            -
                function getProxyAdmin() external returns (ProxyAdmin) {  | 
| 17 | 
            +
                function getProxyAdmin() external returns (ProxyAdmin) { 
         | 
| 18 | 
            +
                    return ProxyAdmin(_proxyAdmin()); 
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                function getInitializationData() external view returns (bytes memory) { 
         | 
| 22 | 
            +
                    return _initializationData; 
         | 
| 23 | 
            +
                }
         | 
| 14 24 | 
             
            }
         | 
| @@ -39,12 +39,15 @@ abstract contract Versionable is | |
| 39 39 | 
             
                // IMPORTANT each version must implement this function 
         | 
| 40 40 | 
             
                // each implementation MUST use onlyInitialising modifier
         | 
| 41 41 | 
             
                // each implementation MUST call intializers of all base contracts...
         | 
| 42 | 
            -
                function _initialize( | 
| 42 | 
            +
                function _initialize(
         | 
| 43 | 
            +
                    address, // owner
         | 
| 44 | 
            +
                    bytes memory // data
         | 
| 45 | 
            +
                ) 
         | 
| 43 46 | 
             
                    internal
         | 
| 44 47 | 
             
                    onlyInitializing()
         | 
| 45 48 | 
             
                    virtual 
         | 
| 46 49 | 
             
                {
         | 
| 47 | 
            -
                    revert();
         | 
| 50 | 
            +
                    revert ErrorVersionableInitializeNotImplemented();
         | 
| 48 51 | 
             
                }
         | 
| 49 52 |  | 
| 50 53 | 
             
                // IMPORTANT each version except version "1" must implement this function 
         | 
| @@ -54,6 +57,6 @@ abstract contract Versionable is | |
| 54 57 | 
             
                    onlyInitializing
         | 
| 55 58 | 
             
                    virtual
         | 
| 56 59 | 
             
                {
         | 
| 57 | 
            -
                    revert();
         | 
| 60 | 
            +
                    revert ErrorVersionableUpgradeNotImplemented();
         | 
| 58 61 | 
             
                }
         | 
| 59 62 | 
             
            }
         | 
    
        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-f13d67f-541",
         | 
| 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,11 +32,11 @@ | |
| 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 | 
            -
                "eslint": "^ | 
| 39 | 
            +
                "eslint": "^9.9.1",
         | 
| 40 40 | 
             
                "hardhat": "^2.17.2",
         | 
| 41 41 | 
             
                "prettier": "^3.0.3",
         | 
| 42 42 | 
             
                "prettier-plugin-solidity": "^1.1.3",
         |