@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765
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 +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +85 -83
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -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 +2214 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -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 +104 -255
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.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 +9 -4
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +63 -166
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +59 -149
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
- 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 +114 -322
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
- 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 +217 -156
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- 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 +1 -1
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
- 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 +30 -3
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
- 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 +59 -149
- 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 +36 -17
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- 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 +2 -7
- 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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +22 -25
- 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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -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/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +22 -33
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +34 -55
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +52 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +11 -10
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +44 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/distribution/IDistributionComponent.sol +0 -2
- package/contracts/distribution/IDistributionService.sol +8 -7
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/BundleSet.sol +7 -8
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +6 -4
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +59 -23
- package/contracts/instance/InstanceService.sol +28 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +14 -14
- package/contracts/instance/RiskSet.sol +6 -7
- package/contracts/instance/base/BalanceStore.sol +7 -7
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +3 -3
- package/contracts/oracle/BasicOracle.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +21 -17
- package/contracts/oracle/Oracle.sol +6 -5
- package/contracts/oracle/OracleService.sol +68 -38
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +22 -28
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IBundleService.sol +9 -10
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +14 -13
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +35 -11
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IApplicationService.sol +8 -8
- package/contracts/product/IClaimService.sol +9 -9
- package/contracts/product/IPolicyService.sol +8 -7
- package/contracts/product/IRiskService.sol +4 -5
- package/contracts/product/PolicyService.sol +58 -45
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +42 -10
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/ChainNft.sol +2 -2
- package/contracts/registry/IRegistry.sol +15 -21
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +82 -126
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -6
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +27 -13
- package/contracts/registry/ReleaseRegistry.sol +81 -72
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +18 -9
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +168 -49
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +46 -10
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +6 -9
- package/contracts/staking/IStaking.sol +35 -33
- package/contracts/staking/IStakingService.sol +7 -16
- package/contracts/staking/Staking.sol +38 -32
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +15 -18
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +11 -11
- package/contracts/staking/TargetHandler.sol +6 -5
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +4 -3
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -1,21 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {Version} from "../type/Version.sol";
|
5
5
|
|
6
6
|
/// IMPORTANT
|
7
7
|
// Upgradeable contract MUST:
|
8
|
-
// 1) inherit
|
9
|
-
// 2) implement
|
8
|
+
// 1) inherit from Versionable
|
9
|
+
// 2) implement version() function
|
10
10
|
// 3) implement internal _initialize() function with onlyInitializing modifier
|
11
11
|
// 4) implement internal _upgrade() function with onlyInitializing modifier (1st version MUST revert)
|
12
|
-
// 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade()
|
13
|
-
// 6) use
|
14
|
-
// 7) use
|
15
|
-
// 8)
|
12
|
+
// 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade() (MUST use different functions for initialization/upgrade and normal operations)
|
13
|
+
// 6) use default empty constructor -> _disableInitializer() is called from Versionable contructor
|
14
|
+
// 7) use namespace storage (should this be needed)
|
15
|
+
// 8) since now inheritance is used for upgradability, contract MUST BE inherited ONLY by the next version
|
16
16
|
// Upgradeable contract SHOULD:
|
17
17
|
// 9) define all non private methods as virtual (in order to be able to upgrade them latter)
|
18
|
-
// otherwise, it is still possible to upgrade contract, but everyone who is using it will have to switch to a new
|
18
|
+
// otherwise, it is still possible to upgrade contract, but everyone who is using it will have to switch to a new fucntions
|
19
19
|
// in some cases this ok but not in the others...
|
20
20
|
//
|
21
21
|
// IMPORTANT
|
@@ -26,25 +26,31 @@ import {IVersionable} from "../shared/IVersionable.sol";
|
|
26
26
|
// 2) ALWAYS define private getter if accessing storage
|
27
27
|
// - MUST use default implementation, CAN change ONLY return type
|
28
28
|
|
29
|
-
interface
|
29
|
+
interface IVersionable {
|
30
30
|
|
31
31
|
error ErrorVersionableInitializeNotImplemented();
|
32
32
|
error ErrorVersionableUpgradeNotImplemented();
|
33
33
|
|
34
34
|
/**
|
35
35
|
* @dev IMPORTANT
|
36
|
-
* top level initializer for each upgradeable
|
37
36
|
* implementation MUST be guarded by initializer modifier
|
38
37
|
* new version MUST inherit from previous version
|
39
38
|
*/
|
40
|
-
function
|
39
|
+
function initializeVersionable(address activatedBy, bytes memory activationData) external;
|
41
40
|
|
42
41
|
/**
|
43
42
|
* @dev
|
44
|
-
* top level reinitializer for each upgradeable
|
45
43
|
* implementation MUST be guarded by reinitializer(version().toUint64()) modifier
|
46
44
|
* new version MUST inherit from previous version
|
47
45
|
* the first verion MUST revert
|
48
46
|
*/
|
49
|
-
function
|
47
|
+
function upgradeVersionable(bytes memory upgradeData) external;
|
48
|
+
|
49
|
+
/**
|
50
|
+
* @dev returns version of this contract
|
51
|
+
* each new implementation MUST implement this function
|
52
|
+
* version number MUST increase
|
53
|
+
*/
|
54
|
+
function getVersion() external pure returns(Version);
|
55
|
+
|
50
56
|
}
|
@@ -5,14 +5,14 @@ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.s
|
|
5
5
|
import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
6
6
|
|
7
7
|
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
8
|
-
import {
|
8
|
+
import {IVersionable} from "./IVersionable.sol";
|
9
9
|
import {NftId} from "../type/NftId.sol";
|
10
10
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
11
11
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
12
12
|
import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
|
13
|
-
import {Version,
|
13
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
14
14
|
|
15
|
-
/// @dev manages proxy deployments for upgradable contracs of type
|
15
|
+
/// @dev manages proxy deployments for upgradable contracs of type IVersionable
|
16
16
|
contract ProxyManager is
|
17
17
|
NftOwnable
|
18
18
|
{
|
@@ -27,15 +27,14 @@ contract ProxyManager is
|
|
27
27
|
address activatedBy;
|
28
28
|
}
|
29
29
|
|
30
|
-
event
|
31
|
-
event
|
30
|
+
event LogProxyManagerVersionableDeployed(address indexed proxy, address indexed initialImplementation);
|
31
|
+
event LogProxyManagerVersionableUpgraded(address indexed proxy, address indexed upgradedImplementation);
|
32
32
|
|
33
33
|
error ErrorProxyManagerAlreadyDeployed();
|
34
34
|
error ErrorProxyManagerNotYetDeployed();
|
35
35
|
|
36
36
|
error ErrorProxyManagerZeroVersion();
|
37
37
|
error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
|
38
|
-
error ErrorProxyManagerNextVersionReleaseInvalid(Version nextVersion);
|
39
38
|
|
40
39
|
UpgradableProxyWithAdmin internal _proxy;
|
41
40
|
|
@@ -45,19 +44,17 @@ contract ProxyManager is
|
|
45
44
|
|
46
45
|
/// @dev convencience initializer
|
47
46
|
function initialize(
|
47
|
+
address registry,
|
48
48
|
address implementation,
|
49
49
|
bytes memory data,
|
50
50
|
bytes32 salt
|
51
51
|
)
|
52
52
|
public
|
53
53
|
initializer()
|
54
|
-
returns (
|
54
|
+
returns (IVersionable versionable)
|
55
55
|
{
|
56
|
-
|
57
|
-
|
58
|
-
__NftOwnable_init(initialOwner);
|
59
|
-
|
60
|
-
upgradeable = deployDetermenistic(
|
56
|
+
versionable = deployDetermenistic(
|
57
|
+
registry,
|
61
58
|
implementation,
|
62
59
|
data,
|
63
60
|
salt);
|
@@ -65,20 +62,19 @@ contract ProxyManager is
|
|
65
62
|
|
66
63
|
/// @dev deploy initial contract
|
67
64
|
function deploy(
|
65
|
+
address registry,
|
68
66
|
address initialImplementation,
|
69
67
|
bytes memory initializationData
|
70
68
|
)
|
71
69
|
public
|
72
70
|
virtual
|
73
71
|
onlyInitializing()
|
74
|
-
returns (
|
72
|
+
returns (IVersionable versionable)
|
75
73
|
{
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
address currentProxyOwner = getOwner(); // used by implementation
|
81
|
-
address initialProxyAdminOwner = address(this); // used by proxy
|
74
|
+
(
|
75
|
+
address currentProxyOwner,
|
76
|
+
address initialProxyAdminOwner
|
77
|
+
) = _preDeployChecksAndSetup(registry);
|
82
78
|
|
83
79
|
_proxy = new UpgradableProxyWithAdmin(
|
84
80
|
initialImplementation,
|
@@ -86,14 +82,15 @@ contract ProxyManager is
|
|
86
82
|
getDeployData(currentProxyOwner, initializationData)
|
87
83
|
);
|
88
84
|
|
89
|
-
|
85
|
+
versionable = _updateVersionHistory(
|
90
86
|
initialImplementation,
|
91
87
|
currentProxyOwner);
|
92
88
|
|
93
|
-
emit
|
89
|
+
emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
|
94
90
|
}
|
95
91
|
|
96
92
|
function deployDetermenistic(
|
93
|
+
address registry,
|
97
94
|
address initialImplementation,
|
98
95
|
bytes memory initializationData,
|
99
96
|
bytes32 salt
|
@@ -101,14 +98,12 @@ contract ProxyManager is
|
|
101
98
|
public
|
102
99
|
virtual
|
103
100
|
onlyInitializing()
|
104
|
-
returns (
|
101
|
+
returns (IVersionable versionable)
|
105
102
|
{
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
address currentProxyOwner = getOwner(); // used by implementation
|
111
|
-
address initialProxyAdminOwner = address(this); // used by proxy
|
103
|
+
(
|
104
|
+
address currentProxyOwner,
|
105
|
+
address initialProxyAdminOwner
|
106
|
+
) = _preDeployChecksAndSetup(registry);
|
112
107
|
|
113
108
|
_proxy = new UpgradableProxyWithAdmin{salt: salt}(
|
114
109
|
initialImplementation,
|
@@ -116,11 +111,11 @@ contract ProxyManager is
|
|
116
111
|
getDeployData(currentProxyOwner, initializationData)
|
117
112
|
);
|
118
113
|
|
119
|
-
|
114
|
+
versionable = _updateVersionHistory(
|
120
115
|
initialImplementation,
|
121
116
|
currentProxyOwner);
|
122
117
|
|
123
|
-
emit
|
118
|
+
emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
|
124
119
|
}
|
125
120
|
|
126
121
|
/// @dev upgrade existing contract.
|
@@ -129,7 +124,7 @@ contract ProxyManager is
|
|
129
124
|
public
|
130
125
|
virtual
|
131
126
|
onlyOwner()
|
132
|
-
returns (
|
127
|
+
returns (IVersionable versionable)
|
133
128
|
{
|
134
129
|
bytes memory emptyUpgradeData;
|
135
130
|
return upgrade(newImplementation, emptyUpgradeData);
|
@@ -140,7 +135,7 @@ contract ProxyManager is
|
|
140
135
|
public
|
141
136
|
virtual
|
142
137
|
onlyOwner()
|
143
|
-
returns (
|
138
|
+
returns (IVersionable versionable)
|
144
139
|
{
|
145
140
|
if (_versions.length == 0) {
|
146
141
|
revert ErrorProxyManagerNotYetDeployed();
|
@@ -155,11 +150,11 @@ contract ProxyManager is
|
|
155
150
|
newImplementation,
|
156
151
|
getUpgradeData(upgradeData));
|
157
152
|
|
158
|
-
|
153
|
+
versionable = _updateVersionHistory(
|
159
154
|
newImplementation,
|
160
155
|
currentProxyOwner);
|
161
156
|
|
162
|
-
emit
|
157
|
+
emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
|
163
158
|
|
164
159
|
}
|
165
160
|
|
@@ -169,14 +164,14 @@ contract ProxyManager is
|
|
169
164
|
|
170
165
|
function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
|
171
166
|
return abi.encodeWithSelector(
|
172
|
-
|
167
|
+
IVersionable.initializeVersionable.selector,
|
173
168
|
proxyOwner,
|
174
169
|
deployData);
|
175
170
|
}
|
176
171
|
|
177
172
|
function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
|
178
173
|
return abi.encodeWithSelector(
|
179
|
-
|
174
|
+
IVersionable.upgradeVersionable.selector,
|
180
175
|
upgradeData);
|
181
176
|
}
|
182
177
|
|
@@ -185,7 +180,7 @@ contract ProxyManager is
|
|
185
180
|
}
|
186
181
|
|
187
182
|
function getVersion() external view virtual returns(Version) {
|
188
|
-
return
|
183
|
+
return IVersionable(address(_proxy)).getVersion();
|
189
184
|
}
|
190
185
|
|
191
186
|
function getVersionCount() external view returns(uint256) {
|
@@ -200,29 +195,42 @@ contract ProxyManager is
|
|
200
195
|
return _versionHistory[_version];
|
201
196
|
}
|
202
197
|
|
198
|
+
function _preDeployChecksAndSetup(address registry)
|
199
|
+
private
|
200
|
+
returns (
|
201
|
+
address currentProxyOwner,
|
202
|
+
address initialProxyAdminOwner
|
203
|
+
)
|
204
|
+
{
|
205
|
+
if (_versions.length > 0) {
|
206
|
+
revert ErrorProxyManagerAlreadyDeployed();
|
207
|
+
}
|
208
|
+
|
209
|
+
address initialOwner = msg.sender;
|
210
|
+
__NftOwnable_init(registry, initialOwner);
|
211
|
+
|
212
|
+
currentProxyOwner = getOwner(); // used by implementation
|
213
|
+
initialProxyAdminOwner = address(this); // used by proxy
|
214
|
+
}
|
215
|
+
|
203
216
|
function _updateVersionHistory(
|
204
217
|
address implementation,
|
205
218
|
address activatedBy
|
206
219
|
)
|
207
220
|
private
|
208
|
-
returns (
|
221
|
+
returns (IVersionable versionable)
|
209
222
|
{
|
210
|
-
|
211
|
-
Version newVersion =
|
223
|
+
versionable = IVersionable(address(_proxy));
|
224
|
+
Version newVersion = versionable.getVersion();
|
212
225
|
|
213
226
|
if(newVersion == VersionLib.zeroVersion()) {
|
214
227
|
revert ErrorProxyManagerZeroVersion();
|
215
228
|
}
|
216
229
|
|
217
230
|
if(_versions.length > 0) {
|
218
|
-
|
219
|
-
if(newVersion.toInt() <= version.toInt()) {
|
231
|
+
if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
|
220
232
|
revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
|
221
233
|
}
|
222
|
-
|
223
|
-
if(newVersion.toMajorPart() != version.toMajorPart()) {
|
224
|
-
revert ErrorProxyManagerNextVersionReleaseInvalid(newVersion);
|
225
|
-
}
|
226
234
|
}
|
227
235
|
|
228
236
|
// update version history
|
@@ -3,40 +3,39 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {
|
7
|
-
import {Version} from "../type/Version.sol";
|
8
|
-
import {Versionable} from "../shared/Versionable.sol";
|
6
|
+
import {IVersionable} from "./IVersionable.sol";
|
7
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
|
10
|
+
abstract contract Versionable is
|
11
|
+
Initializable,
|
12
|
+
IVersionable
|
14
13
|
{
|
15
14
|
constructor() {
|
16
15
|
_disableInitializers();
|
17
16
|
}
|
18
17
|
|
19
|
-
function
|
18
|
+
function initializeVersionable(
|
20
19
|
address activatedBy,
|
21
20
|
bytes memory data
|
22
21
|
)
|
23
|
-
|
22
|
+
public
|
23
|
+
initializer()
|
24
24
|
{
|
25
|
-
|
26
|
-
revert InvalidInitialization();
|
27
|
-
}
|
28
|
-
__Upgradeable_init(activatedBy, data);
|
25
|
+
_initialize(activatedBy, data);
|
29
26
|
}
|
30
27
|
|
31
|
-
function
|
28
|
+
function upgradeVersionable(
|
32
29
|
bytes memory data
|
33
30
|
)
|
34
31
|
external
|
35
|
-
reinitializer(getVersion()
|
32
|
+
reinitializer(VersionLib.toUint64(getVersion()))
|
36
33
|
{
|
37
34
|
_upgrade(data);
|
38
35
|
}
|
39
36
|
|
37
|
+
function getVersion() public pure virtual returns(Version);
|
38
|
+
|
40
39
|
// IMPORTANT each version must implement this function
|
41
40
|
// each implementation MUST use onlyInitialising modifier
|
42
41
|
// each implementation MUST call intializers of all base contracts...
|
@@ -60,14 +59,4 @@ abstract contract Upgradeable is
|
|
60
59
|
{
|
61
60
|
revert ErrorVersionableUpgradeNotImplemented();
|
62
61
|
}
|
63
|
-
|
64
|
-
function __Upgradeable_init(
|
65
|
-
address activatedBy,
|
66
|
-
bytes memory data
|
67
|
-
)
|
68
|
-
private
|
69
|
-
reinitializer(getVersion().toInt())
|
70
|
-
{
|
71
|
-
_initialize(activatedBy, data);
|
72
|
-
}
|
73
62
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@etherisc/gif-next",
|
3
|
-
"version": "3.0.0-
|
3
|
+
"version": "3.0.0-cf20ffd-765",
|
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": {
|
@@ -43,13 +43,14 @@
|
|
43
43
|
"typescript": "^5"
|
44
44
|
},
|
45
45
|
"dependencies": {
|
46
|
-
"@openzeppelin/contracts": "5.0
|
47
|
-
"@openzeppelin/contracts-upgradeable": "5.0
|
46
|
+
"@openzeppelin/contracts": "5.1.0",
|
47
|
+
"@openzeppelin/contracts-upgradeable": "5.1.0",
|
48
48
|
"@openzeppelin/upgrades-core": "^1.34.1",
|
49
49
|
"abi-coder": "^5.0.0",
|
50
50
|
"antlr4ng": "^3.0.4",
|
51
51
|
"ethers": "^6.7.1",
|
52
52
|
"ethers-decode-error": "^2.1.3",
|
53
|
+
"simple-git": "^3.27.0",
|
53
54
|
"solidity-docgen": "^0.6.0-beta.36",
|
54
55
|
"winston": "^3.10.0"
|
55
56
|
}
|
@@ -1,74 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "IVersionable",
|
4
|
-
"sourceName": "contracts/shared/IVersionable.sol",
|
5
|
-
"abi": [
|
6
|
-
{
|
7
|
-
"inputs": [
|
8
|
-
{
|
9
|
-
"internalType": "address",
|
10
|
-
"name": "target",
|
11
|
-
"type": "address"
|
12
|
-
},
|
13
|
-
{
|
14
|
-
"internalType": "VersionPart",
|
15
|
-
"name": "invalidRelease",
|
16
|
-
"type": "uint8"
|
17
|
-
}
|
18
|
-
],
|
19
|
-
"name": "ErrorVersionableReleaseInvalid",
|
20
|
-
"type": "error"
|
21
|
-
},
|
22
|
-
{
|
23
|
-
"inputs": [
|
24
|
-
{
|
25
|
-
"internalType": "address",
|
26
|
-
"name": "target",
|
27
|
-
"type": "address"
|
28
|
-
},
|
29
|
-
{
|
30
|
-
"internalType": "VersionPart",
|
31
|
-
"name": "expected",
|
32
|
-
"type": "uint8"
|
33
|
-
},
|
34
|
-
{
|
35
|
-
"internalType": "VersionPart",
|
36
|
-
"name": "actual",
|
37
|
-
"type": "uint8"
|
38
|
-
}
|
39
|
-
],
|
40
|
-
"name": "ErrorVersionableReleaseMismatch",
|
41
|
-
"type": "error"
|
42
|
-
},
|
43
|
-
{
|
44
|
-
"inputs": [],
|
45
|
-
"name": "getRelease",
|
46
|
-
"outputs": [
|
47
|
-
{
|
48
|
-
"internalType": "VersionPart",
|
49
|
-
"name": "",
|
50
|
-
"type": "uint8"
|
51
|
-
}
|
52
|
-
],
|
53
|
-
"stateMutability": "pure",
|
54
|
-
"type": "function"
|
55
|
-
},
|
56
|
-
{
|
57
|
-
"inputs": [],
|
58
|
-
"name": "getVersion",
|
59
|
-
"outputs": [
|
60
|
-
{
|
61
|
-
"internalType": "Version",
|
62
|
-
"name": "",
|
63
|
-
"type": "uint24"
|
64
|
-
}
|
65
|
-
],
|
66
|
-
"stateMutability": "pure",
|
67
|
-
"type": "function"
|
68
|
-
}
|
69
|
-
],
|
70
|
-
"bytecode": "0x",
|
71
|
-
"deployedBytecode": "0x",
|
72
|
-
"linkReferences": {},
|
73
|
-
"deployedLinkReferences": {}
|
74
|
-
}
|
@@ -1,74 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "Versionable",
|
4
|
-
"sourceName": "contracts/shared/Versionable.sol",
|
5
|
-
"abi": [
|
6
|
-
{
|
7
|
-
"inputs": [
|
8
|
-
{
|
9
|
-
"internalType": "address",
|
10
|
-
"name": "target",
|
11
|
-
"type": "address"
|
12
|
-
},
|
13
|
-
{
|
14
|
-
"internalType": "VersionPart",
|
15
|
-
"name": "invalidRelease",
|
16
|
-
"type": "uint8"
|
17
|
-
}
|
18
|
-
],
|
19
|
-
"name": "ErrorVersionableReleaseInvalid",
|
20
|
-
"type": "error"
|
21
|
-
},
|
22
|
-
{
|
23
|
-
"inputs": [
|
24
|
-
{
|
25
|
-
"internalType": "address",
|
26
|
-
"name": "target",
|
27
|
-
"type": "address"
|
28
|
-
},
|
29
|
-
{
|
30
|
-
"internalType": "VersionPart",
|
31
|
-
"name": "expected",
|
32
|
-
"type": "uint8"
|
33
|
-
},
|
34
|
-
{
|
35
|
-
"internalType": "VersionPart",
|
36
|
-
"name": "actual",
|
37
|
-
"type": "uint8"
|
38
|
-
}
|
39
|
-
],
|
40
|
-
"name": "ErrorVersionableReleaseMismatch",
|
41
|
-
"type": "error"
|
42
|
-
},
|
43
|
-
{
|
44
|
-
"inputs": [],
|
45
|
-
"name": "getRelease",
|
46
|
-
"outputs": [
|
47
|
-
{
|
48
|
-
"internalType": "VersionPart",
|
49
|
-
"name": "",
|
50
|
-
"type": "uint8"
|
51
|
-
}
|
52
|
-
],
|
53
|
-
"stateMutability": "pure",
|
54
|
-
"type": "function"
|
55
|
-
},
|
56
|
-
{
|
57
|
-
"inputs": [],
|
58
|
-
"name": "getVersion",
|
59
|
-
"outputs": [
|
60
|
-
{
|
61
|
-
"internalType": "Version",
|
62
|
-
"name": "",
|
63
|
-
"type": "uint24"
|
64
|
-
}
|
65
|
-
],
|
66
|
-
"stateMutability": "pure",
|
67
|
-
"type": "function"
|
68
|
-
}
|
69
|
-
],
|
70
|
-
"bytecode": "0x",
|
71
|
-
"deployedBytecode": "0x",
|
72
|
-
"linkReferences": {},
|
73
|
-
"deployedLinkReferences": {}
|
74
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Version, VersionPart} from "../type/Version.sol";
|
5
|
-
|
6
|
-
interface IVersionable {
|
7
|
-
|
8
|
-
error ErrorVersionableReleaseInvalid(address target, VersionPart invalidRelease);
|
9
|
-
error ErrorVersionableReleaseMismatch(address target, VersionPart expected, VersionPart actual);
|
10
|
-
|
11
|
-
/**
|
12
|
-
* @dev returns version of this contract
|
13
|
-
* implementation MUST define version in this function
|
14
|
-
* version number MUST increase
|
15
|
-
*/
|
16
|
-
function getVersion() external pure returns(Version);
|
17
|
-
|
18
|
-
function getRelease() external pure returns(VersionPart);
|
19
|
-
}
|
@@ -1,47 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IVersionable} from "./IVersionable.sol";
|
5
|
-
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
6
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
7
|
-
|
8
|
-
|
9
|
-
abstract contract Versionable is
|
10
|
-
IVersionable
|
11
|
-
{
|
12
|
-
// TODO use arg of type Version
|
13
|
-
function __Versionable_init(
|
14
|
-
VersionPart release // wants to initialize to this release version
|
15
|
-
)
|
16
|
-
internal
|
17
|
-
view
|
18
|
-
virtual
|
19
|
-
{
|
20
|
-
VersionPart currentRelease = getRelease();
|
21
|
-
if (!currentRelease.isValidRelease()) {
|
22
|
-
revert ErrorVersionableReleaseInvalid(address(this), currentRelease);
|
23
|
-
}
|
24
|
-
|
25
|
-
//Version initializedVersion = VersionLib.toVersion(_getInitializedVersion());
|
26
|
-
//if(initializedVersion != getVersion()) {}
|
27
|
-
|
28
|
-
_checkRelease(release);
|
29
|
-
}
|
30
|
-
|
31
|
-
function getVersion() public pure virtual returns(Version)
|
32
|
-
{
|
33
|
-
return VersionLib.toVersion(GIF_INITIAL_RELEASE().toInt(), 0, 0);
|
34
|
-
}
|
35
|
-
|
36
|
-
function getRelease() public pure returns(VersionPart)
|
37
|
-
{
|
38
|
-
return getVersion().toMajorPart();
|
39
|
-
}
|
40
|
-
|
41
|
-
function _checkRelease(VersionPart release) internal view {
|
42
|
-
VersionPart currentRelease = getRelease();
|
43
|
-
if(currentRelease != release) {
|
44
|
-
revert ErrorVersionableReleaseMismatch(address(this), release, currentRelease);
|
45
|
-
}
|
46
|
-
}
|
47
|
-
}
|