@etherisc/gif-next 3.0.0-ab0fcb2-112 → 3.0.0-ab43904-022
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 +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 +254 -240
- 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 +147 -113
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +251 -56
- 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 +262 -239
- 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 +113 -250
- 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 +449 -870
- 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 +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 +95 -36
- 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 +153 -200
- 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 +68 -95
- 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 +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 +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 +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 +2 -2
- 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 +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 +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/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +90 -75
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +72 -9
- package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
- package/contracts/examples/flight/FlightPool.sol +5 -1
- package/contracts/examples/flight/FlightProduct.sol +283 -246
- 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 +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 +7 -7
- package/contracts/instance/IInstanceService.sol +6 -4
- package/contracts/instance/Instance.sol +11 -7
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +34 -20
- 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 +9 -5
- 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 +20 -26
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IBundleService.sol +10 -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 -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/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +46 -10
- 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 +64 -29
- 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/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";
|
@@ -58,7 +59,7 @@ contract StakingService is
|
|
58
59
|
initialLockingPeriod,
|
59
60
|
initialRewardRate);
|
60
61
|
|
61
|
-
emit LogStakingServiceInstanceTargetRegistered(targetNftId,
|
62
|
+
emit LogStakingServiceInstanceTargetRegistered(targetNftId, initialLockingPeriod, initialRewardRate);
|
62
63
|
}
|
63
64
|
|
64
65
|
|
@@ -113,7 +114,7 @@ contract StakingService is
|
|
113
114
|
|
114
115
|
// update reward reserve book keeping
|
115
116
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
116
|
-
address instanceOwner =
|
117
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
117
118
|
newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
|
118
119
|
|
119
120
|
emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
|
@@ -130,7 +131,7 @@ contract StakingService is
|
|
130
131
|
_checkNftType(instanceNftId, INSTANCE());
|
131
132
|
// update reward reserve book keeping
|
132
133
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
133
|
-
address instanceOwner =
|
134
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
134
135
|
newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
|
135
136
|
|
136
137
|
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
@@ -157,14 +158,13 @@ contract StakingService is
|
|
157
158
|
nftId: NftIdLib.zero(),
|
158
159
|
parentNftId: targetNftId,
|
159
160
|
objectType: STAKE(),
|
160
|
-
release: getRelease(),
|
161
161
|
isInterceptor: false,
|
162
|
-
objectAddress: address(0)
|
163
|
-
|
164
|
-
|
165
|
-
|
162
|
+
objectAddress: address(0),
|
163
|
+
initialOwner: stakeOwner,
|
164
|
+
data: ""
|
165
|
+
}));
|
166
166
|
|
167
|
-
emit
|
167
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner);
|
168
168
|
}
|
169
169
|
|
170
170
|
|
@@ -255,18 +255,18 @@ contract StakingService is
|
|
255
255
|
)
|
256
256
|
internal
|
257
257
|
virtual override
|
258
|
-
|
258
|
+
initializer()
|
259
259
|
{
|
260
260
|
(
|
261
261
|
address authority,
|
262
|
+
address registry,
|
262
263
|
address staking
|
263
|
-
) = abi.decode(data, (address, address));
|
264
|
+
) = abi.decode(data, (address, address, address));
|
264
265
|
|
265
|
-
__Service_init(authority, owner);
|
266
|
+
__Service_init(authority, registry, owner);
|
266
267
|
|
267
268
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
268
269
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
269
|
-
// TODO staking is registered in registry.initialize(), just check if address is registered staking
|
270
270
|
$._staking = _registerStaking(staking);
|
271
271
|
$._dip = $._staking.getToken();
|
272
272
|
$._tokenHandler = $._staking.getTokenHandler();
|
@@ -283,7 +283,7 @@ contract StakingService is
|
|
283
283
|
{
|
284
284
|
// check if provided staking contract is already registred
|
285
285
|
// staking contract may have been already registered by a previous major relase
|
286
|
-
IRegistry.ObjectInfo memory stakingInfo =
|
286
|
+
IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
|
287
287
|
if (stakingInfo.nftId.gtz()) {
|
288
288
|
// registered object but wrong type
|
289
289
|
if (stakingInfo.objectType != STAKING()) {
|
@@ -294,9 +294,6 @@ contract StakingService is
|
|
294
294
|
return IStaking(stakingAddress);
|
295
295
|
}
|
296
296
|
|
297
|
-
// TODO staking is registered in registry.initialize()
|
298
|
-
// consider deleting the rest of the function
|
299
|
-
|
300
297
|
// check that contract implements IStaking
|
301
298
|
if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
|
302
299
|
revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
|
@@ -304,7 +301,7 @@ contract StakingService is
|
|
304
301
|
|
305
302
|
address owner = msg.sender;
|
306
303
|
_getStakingServiceStorage()._registryService.registerStaking(
|
307
|
-
|
304
|
+
IRegisterable(stakingAddress),
|
308
305
|
owner);
|
309
306
|
|
310
307
|
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 indexed tvlUpdatesTrigger, UFixed indexed 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,12 +33,14 @@ 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
|
@@ -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
|
}
|
@@ -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
|