@etherisc/gif-next 3.0.0-1b49bd6-565 → 3.0.0-1c2086e-623
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 +9 -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 +46 -91
- 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/crop/AccountingToken.sol/AccountingToken.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.json +376 -0
- package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.json +1391 -0
- package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.json +2433 -0
- package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/crop/Location.sol/LocationLib.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/Location.sol/LocationLib.json +199 -0
- 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 +108 -245
- 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 +141 -283
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +221 -86
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +253 -275
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +112 -249
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +461 -866
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
- 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 +177 -226
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +124 -256
- 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 +124 -261
- 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 +52 -91
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -92
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +82 -158
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +226 -248
- 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 +186 -44
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +201 -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 +171 -121
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +166 -107
- package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +98 -106
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
- 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 +40 -4
- 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 +152 -195
- 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 +132 -152
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +102 -93
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +138 -145
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +167 -162
- 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 +77 -167
- 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 +149 -203
- 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 +64 -98
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +75 -178
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -132
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +77 -167
- 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 +215 -271
- 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 +81 -156
- 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 +61 -151
- 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 +139 -200
- 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 +50 -89
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -89
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +85 -91
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +47 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +60 -163
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +63 -120
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +148 -182
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +25 -17
- 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 +98 -165
- 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 +61 -151
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -205
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +110 -120
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +86 -179
- 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 +176 -328
- 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 +219 -158
- 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 +38 -22
- 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 +552 -180
- 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 +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +40 -173
- 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 +455 -95
- 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 +147 -248
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +51 -296
- 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 +200 -317
- 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 +80 -353
- 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 +234 -242
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +20 -33
- 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 +6 -6
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +17 -22
- 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 +2 -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 +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +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 +35 -55
- package/contracts/authorization/AccessAdminLib.sol +27 -13
- 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/crop/AccountingToken.sol +26 -0
- package/contracts/examples/crop/CropPool.sol +89 -0
- package/contracts/examples/crop/CropPoolAuthorization.sol +37 -0
- package/contracts/examples/crop/CropProduct.sol +512 -0
- package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
- package/contracts/examples/crop/Location.sol +50 -0
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +5 -1
- package/contracts/examples/flight/FlightLib.sol +95 -108
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +26 -60
- package/contracts/examples/flight/FlightOracleAuthorization.sol +27 -5
- package/contracts/examples/flight/FlightPool.sol +5 -1
- package/contracts/examples/flight/FlightProduct.sol +292 -252
- package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
- package/contracts/examples/flight/FlightProductManager.sol +49 -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 +5 -5
- 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 +10 -7
- package/contracts/instance/IInstanceService.sol +11 -4
- package/contracts/instance/Instance.sol +19 -7
- package/contracts/instance/InstanceAdmin.sol +18 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +17 -5
- package/contracts/instance/InstanceReader.sol +70 -23
- package/contracts/instance/InstanceService.sol +88 -54
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +16 -15
- package/contracts/instance/RequestSet.sol +63 -0
- package/contracts/instance/RiskSet.sol +6 -7
- package/contracts/instance/TargetNames.sol +1 -0
- package/contracts/instance/base/BalanceStore.sol +7 -7
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectCounter.sol +7 -5
- package/contracts/instance/base/ObjectSet.sol +11 -3
- package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
- package/contracts/oracle/BasicOracle.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleComponent.sol +10 -0
- package/contracts/oracle/IOracleService.sol +9 -5
- package/contracts/oracle/Oracle.sol +54 -29
- package/contracts/oracle/OracleService.sol +89 -56
- 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 +4 -5
- 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 -6
- 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 +3 -5
- package/contracts/product/RiskService.sol +43 -16
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/ChainNft.sol +10 -9
- package/contracts/registry/IRegistry.sol +23 -28
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +93 -136
- 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/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +44 -8
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
- 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 +65 -30
- 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 -19
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +11 -11
- package/contracts/staking/TargetHandler.sol +7 -6
- package/contracts/type/RequestId.sol +6 -0
- package/contracts/type/RiskId.sol +8 -8
- 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 +3 -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
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
6
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
8
|
import {IStaking} from "./IStaking.sol";
|
8
9
|
import {IStakingService} from "./IStakingService.sol";
|
@@ -51,14 +52,13 @@ contract StakingService is
|
|
51
52
|
virtual
|
52
53
|
restricted()
|
53
54
|
{
|
54
|
-
uint256 chainId = block.chainid;
|
55
55
|
_getStakingServiceStorage()._staking.registerTarget(
|
56
56
|
targetNftId,
|
57
57
|
INSTANCE(),
|
58
58
|
initialLockingPeriod,
|
59
59
|
initialRewardRate);
|
60
60
|
|
61
|
-
emit LogStakingServiceInstanceTargetRegistered(targetNftId,
|
61
|
+
emit LogStakingServiceInstanceTargetRegistered(targetNftId, initialLockingPeriod, initialRewardRate);
|
62
62
|
}
|
63
63
|
|
64
64
|
|
@@ -113,7 +113,7 @@ contract StakingService is
|
|
113
113
|
|
114
114
|
// update reward reserve book keeping
|
115
115
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
116
|
-
address instanceOwner =
|
116
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
117
117
|
newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
|
118
118
|
|
119
119
|
emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
|
@@ -130,7 +130,7 @@ contract StakingService is
|
|
130
130
|
_checkNftType(instanceNftId, INSTANCE());
|
131
131
|
// update reward reserve book keeping
|
132
132
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
133
|
-
address instanceOwner =
|
133
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
134
134
|
newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
|
135
135
|
|
136
136
|
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
@@ -157,14 +157,13 @@ contract StakingService is
|
|
157
157
|
nftId: NftIdLib.zero(),
|
158
158
|
parentNftId: targetNftId,
|
159
159
|
objectType: STAKE(),
|
160
|
-
release: getRelease(),
|
161
160
|
isInterceptor: false,
|
162
|
-
objectAddress: address(0)
|
163
|
-
|
164
|
-
|
165
|
-
|
161
|
+
objectAddress: address(0),
|
162
|
+
initialOwner: stakeOwner,
|
163
|
+
data: ""
|
164
|
+
}));
|
166
165
|
|
167
|
-
emit
|
166
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner);
|
168
167
|
}
|
169
168
|
|
170
169
|
|
@@ -255,18 +254,18 @@ contract StakingService is
|
|
255
254
|
)
|
256
255
|
internal
|
257
256
|
virtual override
|
258
|
-
|
257
|
+
initializer()
|
259
258
|
{
|
260
259
|
(
|
261
260
|
address authority,
|
261
|
+
address registry,
|
262
262
|
address staking
|
263
|
-
) = abi.decode(data, (address, address));
|
263
|
+
) = abi.decode(data, (address, address, address));
|
264
264
|
|
265
|
-
__Service_init(authority, owner);
|
265
|
+
__Service_init(authority, registry, owner);
|
266
266
|
|
267
267
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
268
268
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
269
|
-
// TODO staking is registered in registry.initialize(), just check if address is registered staking
|
270
269
|
$._staking = _registerStaking(staking);
|
271
270
|
$._dip = $._staking.getToken();
|
272
271
|
$._tokenHandler = $._staking.getTokenHandler();
|
@@ -283,7 +282,7 @@ contract StakingService is
|
|
283
282
|
{
|
284
283
|
// check if provided staking contract is already registred
|
285
284
|
// staking contract may have been already registered by a previous major relase
|
286
|
-
IRegistry.ObjectInfo memory stakingInfo =
|
285
|
+
IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
|
287
286
|
if (stakingInfo.nftId.gtz()) {
|
288
287
|
// registered object but wrong type
|
289
288
|
if (stakingInfo.objectType != STAKING()) {
|
@@ -294,9 +293,6 @@ contract StakingService is
|
|
294
293
|
return IStaking(stakingAddress);
|
295
294
|
}
|
296
295
|
|
297
|
-
// TODO staking is registered in registry.initialize()
|
298
|
-
// consider deleting the rest of the function
|
299
|
-
|
300
296
|
// check that contract implements IStaking
|
301
297
|
if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
|
302
298
|
revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
|
@@ -304,7 +300,7 @@ contract StakingService is
|
|
304
300
|
|
305
301
|
address owner = msg.sender;
|
306
302
|
_getStakingServiceStorage()._registryService.registerStaking(
|
307
|
-
|
303
|
+
IRegisterable(stakingAddress),
|
308
304
|
owner);
|
309
305
|
|
310
306
|
return IStaking(stakingAddress);
|
@@ -2,7 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
-
import {
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
|
6
7
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
8
|
import {StakingService} from "./StakingService.sol";
|
8
9
|
|
@@ -15,20 +16,23 @@ contract StakingServiceManager is
|
|
15
16
|
/// @dev initializes proxy manager with service implementation
|
16
17
|
constructor(
|
17
18
|
address authority,
|
19
|
+
address registry,
|
18
20
|
bytes32 salt
|
19
21
|
)
|
20
22
|
{
|
21
23
|
StakingService svc = new StakingService();
|
22
24
|
bytes memory data = abi.encode(
|
23
25
|
authority,
|
24
|
-
|
26
|
+
registry,
|
27
|
+
IRegistry(registry).getStakingAddress());
|
25
28
|
|
26
|
-
|
29
|
+
IVersionable versionable = initialize(
|
30
|
+
registry,
|
27
31
|
address(svc),
|
28
32
|
data,
|
29
33
|
salt);
|
30
34
|
|
31
|
-
_stakingService = StakingService(address(
|
35
|
+
_stakingService = StakingService(address(versionable));
|
32
36
|
}
|
33
37
|
|
34
38
|
//--- view functions ----------------------------------------------------//
|
@@ -18,7 +18,6 @@ import {PROTOCOL, INSTANCE} from "../type/ObjectType.sol";
|
|
18
18
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
19
19
|
import {StakingLib} from "./StakingLib.sol";
|
20
20
|
import {StakingReader} from "./StakingReader.sol";
|
21
|
-
import {RegistryLinked} from "../shared/RegistryLinked.sol";
|
22
21
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
23
22
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
24
23
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
@@ -26,8 +25,7 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
|
26
25
|
|
27
26
|
contract StakingStore is
|
28
27
|
Initializable,
|
29
|
-
AccessManaged
|
30
|
-
RegistryLinked
|
28
|
+
AccessManaged
|
31
29
|
{
|
32
30
|
|
33
31
|
// token
|
@@ -55,6 +53,7 @@ contract StakingStore is
|
|
55
53
|
error ErrorStakingStoreTvlBalanceAlreadyInitialized(NftId nftId, address token);
|
56
54
|
error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId, address token);
|
57
55
|
|
56
|
+
IRegistry private _registry;
|
58
57
|
ITargetLimitHandler private _targetLimitHandler;
|
59
58
|
StakingReader private _reader;
|
60
59
|
NftIdSet private _targetNftIdSet;
|
@@ -76,15 +75,16 @@ contract StakingStore is
|
|
76
75
|
|
77
76
|
|
78
77
|
constructor(
|
78
|
+
IRegistry registry,
|
79
79
|
StakingReader reader
|
80
80
|
)
|
81
81
|
AccessManaged(msg.sender)
|
82
82
|
{
|
83
|
-
|
84
83
|
// set final authority
|
85
|
-
setAuthority(
|
84
|
+
setAuthority(registry.getAuthority());
|
86
85
|
|
87
86
|
// set internal variables
|
87
|
+
_registry = registry;
|
88
88
|
_reader = reader;
|
89
89
|
_targetNftIdSet = new NftIdSet();
|
90
90
|
|
@@ -151,7 +151,7 @@ contract StakingStore is
|
|
151
151
|
address oldReader = address(_reader);
|
152
152
|
_reader = StakingReader(reader);
|
153
153
|
|
154
|
-
emit IStaking.LogStakingStakingReaderSet(
|
154
|
+
emit IStaking.LogStakingStakingReaderSet(oldReader, reader);
|
155
155
|
}
|
156
156
|
|
157
157
|
|
@@ -162,7 +162,7 @@ contract StakingStore is
|
|
162
162
|
address oldTargetHandler = address(_targetLimitHandler);
|
163
163
|
_targetLimitHandler = ITargetLimitHandler(targetLimitHandler );
|
164
164
|
|
165
|
-
emit IStaking.LogStakingTargetHandlerSet(
|
165
|
+
emit IStaking.LogStakingTargetHandlerSet(oldTargetHandler, targetLimitHandler);
|
166
166
|
}
|
167
167
|
|
168
168
|
//--- target support management -----------------------------------------//
|
@@ -387,7 +387,7 @@ contract StakingStore is
|
|
387
387
|
targetInfo.lastUpdateIn = BlocknumberLib.current();
|
388
388
|
|
389
389
|
// logging
|
390
|
-
emit IStaking.LogStakingTargetRewardRateSet(targetNftId,
|
390
|
+
emit IStaking.LogStakingTargetRewardRateSet(targetNftId, oldRewardRate, rewardRate, lastUpdateIn);
|
391
391
|
}
|
392
392
|
|
393
393
|
|
@@ -495,7 +495,7 @@ contract StakingStore is
|
|
495
495
|
emit IStaking.LogStakingRewardReservesRefilled(
|
496
496
|
targetNftId,
|
497
497
|
dipAmount,
|
498
|
-
|
498
|
+
_registry.ownerOf(targetNftId),
|
499
499
|
newReserveBalance,
|
500
500
|
lastUpdateIn);
|
501
501
|
}
|
@@ -520,7 +520,7 @@ contract StakingStore is
|
|
520
520
|
emit IStaking.LogStakingRewardReservesWithdrawn(
|
521
521
|
targetNftId,
|
522
522
|
dipAmount,
|
523
|
-
|
523
|
+
_registry.ownerOf(targetNftId),
|
524
524
|
newReserveBalance,
|
525
525
|
lastUpdateIn);
|
526
526
|
}
|
@@ -929,7 +929,7 @@ contract StakingStore is
|
|
929
929
|
// checks
|
930
930
|
if (checkParameters) {
|
931
931
|
TargetManagerLib.checkTargetParameters(
|
932
|
-
|
932
|
+
_registry,
|
933
933
|
_reader,
|
934
934
|
targetNftId,
|
935
935
|
objectType,
|
@@ -10,7 +10,6 @@ import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
|
|
10
10
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
11
11
|
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {RegistryLinked} from "../shared/RegistryLinked.sol";
|
14
13
|
import {StakingStore} from "./StakingStore.sol";
|
15
14
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
16
15
|
|
@@ -18,12 +17,12 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
|
18
17
|
contract TargetHandler is
|
19
18
|
Initializable,
|
20
19
|
AccessManaged,
|
21
|
-
ITargetLimitHandler
|
22
|
-
RegistryLinked
|
20
|
+
ITargetLimitHandler
|
23
21
|
{
|
24
22
|
|
25
|
-
event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
|
23
|
+
event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber indexed lastUpdateIn);
|
26
24
|
|
25
|
+
IRegistry private _registry;
|
27
26
|
StakingStore private _store;
|
28
27
|
|
29
28
|
/// @dev Update trigger value: Number of TVL updates below which limit updates are suppressed
|
@@ -34,17 +33,19 @@ contract TargetHandler is
|
|
34
33
|
|
35
34
|
|
36
35
|
constructor (
|
36
|
+
IRegistry registry,
|
37
37
|
StakingStore stakingStore
|
38
38
|
)
|
39
39
|
AccessManaged(msg.sender)
|
40
40
|
{
|
41
41
|
// set final authority and registry
|
42
|
-
setAuthority(
|
42
|
+
setAuthority(registry.getAuthority());
|
43
|
+
_registry = registry;
|
43
44
|
_store = stakingStore;
|
44
45
|
|
45
46
|
// set default trigger values
|
46
47
|
_setUpdateTriggers(
|
47
|
-
10, // check after
|
48
|
+
10, // check after 10 TVL updates
|
48
49
|
UFixedLib.toUFixed(1, -1)); // 10% deviation from baseline TVL
|
49
50
|
}
|
50
51
|
|
@@ -72,4 +72,10 @@ library RequestIdLib {
|
|
72
72
|
function toKeyId(RequestId id) public pure returns (KeyId keyId) {
|
73
73
|
return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
|
74
74
|
}
|
75
|
+
|
76
|
+
function toRequestId(KeyId keyId) public pure returns (RequestId requestId) {
|
77
|
+
uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
|
78
|
+
assert(keyIdInt < type(uint64).max);
|
79
|
+
return RequestId.wrap(uint64(keyIdInt));
|
80
|
+
}
|
75
81
|
}
|
@@ -2,10 +2,9 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
-
import {NftId} from "./NftId.sol";
|
6
5
|
import {RISK} from "./ObjectType.sol";
|
7
6
|
|
8
|
-
type RiskId is
|
7
|
+
type RiskId is uint64;
|
9
8
|
|
10
9
|
// type bindings
|
11
10
|
using {
|
@@ -33,7 +32,7 @@ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
|
|
33
32
|
|
34
33
|
library RiskIdLib {
|
35
34
|
function zero() public pure returns (RiskId) {
|
36
|
-
return RiskId.wrap(
|
35
|
+
return RiskId.wrap(uint64(0));
|
37
36
|
}
|
38
37
|
|
39
38
|
// @dev Converts a risk id into a uint256.
|
@@ -42,8 +41,8 @@ library RiskIdLib {
|
|
42
41
|
}
|
43
42
|
|
44
43
|
// @dev Converts a risk id string with a product NftId into a risk id.
|
45
|
-
function toRiskId(
|
46
|
-
return RiskId.wrap(
|
44
|
+
function toRiskId(uint256 id) public pure returns (RiskId) {
|
45
|
+
return RiskId.wrap(uint64(id));
|
47
46
|
}
|
48
47
|
|
49
48
|
/// @dev Returns the key32 value for the specified risk id.
|
@@ -53,12 +52,13 @@ library RiskIdLib {
|
|
53
52
|
|
54
53
|
/// @dev Returns the key id value for the specified nft id
|
55
54
|
function toKeyId(RiskId id) public pure returns (KeyId keyId) {
|
56
|
-
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
55
|
+
return KeyId.wrap(bytes31(uint248(RiskId.unwrap(id))));
|
57
56
|
}
|
58
57
|
|
59
58
|
function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
|
60
|
-
|
61
|
-
assert(
|
59
|
+
uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
|
60
|
+
assert(keyIdInt < type(uint64).max);
|
61
|
+
return RiskId.wrap(uint64(keyIdInt));
|
62
62
|
}
|
63
63
|
|
64
64
|
function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
|
@@ -5,9 +5,6 @@ type VersionPart is uint8;
|
|
5
5
|
|
6
6
|
using {
|
7
7
|
versionPartGt as >,
|
8
|
-
versionPartGte as >=,
|
9
|
-
versionPartLt as <,
|
10
|
-
versionPartLte as <=,
|
11
8
|
versionPartEq as ==,
|
12
9
|
versionPartNe as !=,
|
13
10
|
VersionPartLib.eqz,
|
@@ -19,9 +16,6 @@ using {
|
|
19
16
|
for VersionPart global;
|
20
17
|
|
21
18
|
function versionPartGt(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) > VersionPart.unwrap(b); }
|
22
|
-
function versionPartGte(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) >= VersionPart.unwrap(b); }
|
23
|
-
function versionPartLt(VersionPart a, VersionPart b) pure returns(bool isLessThan) { return VersionPart.unwrap(a) < VersionPart.unwrap(b); }
|
24
|
-
function versionPartLte(VersionPart a, VersionPart b) pure returns(bool isLessThan) { return VersionPart.unwrap(a) <= VersionPart.unwrap(b); }
|
25
19
|
function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) == VersionPart.unwrap(b); }
|
26
20
|
function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
|
27
21
|
|
@@ -33,7 +27,8 @@ library VersionPartLib {
|
|
33
27
|
function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
|
34
28
|
|
35
29
|
function isValidRelease(VersionPart release) external pure returns(bool) {
|
36
|
-
|
30
|
+
uint256 releaseInt = VersionPart.unwrap(release);
|
31
|
+
return 3 <= releaseInt && releaseInt <= 99;
|
37
32
|
}
|
38
33
|
|
39
34
|
function toString(VersionPart a) external pure returns (string memory) {
|
@@ -71,9 +66,8 @@ library VersionPartLib {
|
|
71
66
|
|
72
67
|
function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
|
73
68
|
function gtz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) > 0; }
|
74
|
-
function toInt(VersionPart a) external pure returns(
|
75
|
-
function toVersionPart(
|
76
|
-
function zero() external pure returns(VersionPart) { return VersionPart.wrap(0); }
|
69
|
+
function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
|
70
|
+
function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
|
77
71
|
}
|
78
72
|
|
79
73
|
type Version is uint24; // contains major,minor,patch version parts
|
@@ -93,7 +87,7 @@ function versionEq(Version a, Version b) pure returns(bool isSame) { return Vers
|
|
93
87
|
|
94
88
|
library VersionLib {
|
95
89
|
|
96
|
-
function toInt(Version version) external pure returns(
|
90
|
+
function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
|
97
91
|
|
98
92
|
function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
|
99
93
|
|
@@ -130,19 +124,26 @@ library VersionLib {
|
|
130
124
|
);
|
131
125
|
}
|
132
126
|
|
127
|
+
// function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
|
128
|
+
// return VersionPart.wrap(uint8(versionPart));
|
129
|
+
// }
|
130
|
+
|
133
131
|
function toVersion(
|
134
|
-
|
135
|
-
|
136
|
-
|
132
|
+
uint256 major,
|
133
|
+
uint256 minor,
|
134
|
+
uint256 patch
|
137
135
|
)
|
138
136
|
external
|
139
137
|
pure
|
140
138
|
returns(Version)
|
141
139
|
{
|
140
|
+
require(
|
141
|
+
major < 256 && minor < 256 && patch < 256,
|
142
|
+
"ERROR:VRS-010:VERSION_PART_TOO_BIG");
|
142
143
|
|
143
144
|
return Version.wrap(
|
144
145
|
uint24(
|
145
|
-
(
|
146
|
+
(major << 16) + (minor << 8) + patch));
|
146
147
|
}
|
147
148
|
|
148
149
|
// TODO check for overflow?
|
@@ -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
|
}
|