@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +85 -83
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +63 -166
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +59 -149
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +114 -322
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +217 -156
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +22 -33
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +34 -55
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +52 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +11 -10
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +44 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/distribution/IDistributionComponent.sol +0 -2
- package/contracts/distribution/IDistributionService.sol +8 -7
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/BundleSet.sol +7 -8
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +6 -4
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +59 -23
- package/contracts/instance/InstanceService.sol +28 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +14 -14
- package/contracts/instance/RiskSet.sol +6 -7
- package/contracts/instance/base/BalanceStore.sol +7 -7
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +3 -3
- package/contracts/oracle/BasicOracle.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +21 -17
- package/contracts/oracle/Oracle.sol +6 -5
- package/contracts/oracle/OracleService.sol +68 -38
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +22 -28
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IBundleService.sol +9 -10
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +14 -13
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +35 -11
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IApplicationService.sol +8 -8
- package/contracts/product/IClaimService.sol +9 -9
- package/contracts/product/IPolicyService.sol +8 -7
- package/contracts/product/IRiskService.sol +4 -5
- package/contracts/product/PolicyService.sol +58 -45
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +42 -10
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/ChainNft.sol +2 -2
- package/contracts/registry/IRegistry.sol +15 -21
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +82 -126
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -6
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +27 -13
- package/contracts/registry/ReleaseRegistry.sol +81 -72
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +18 -9
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +168 -49
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +46 -10
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +6 -9
- package/contracts/staking/IStaking.sol +35 -33
- package/contracts/staking/IStakingService.sol +7 -16
- package/contracts/staking/Staking.sol +38 -32
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +15 -18
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +11 -11
- package/contracts/staking/TargetHandler.sol +6 -5
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +4 -3
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -1,19 +1,38 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
4
5
|
|
5
6
|
import {ContractLib} from "../shared/ContractLib.sol";
|
6
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
8
|
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
8
9
|
|
9
10
|
contract RegistryLinked is
|
11
|
+
Initializable,
|
10
12
|
IRegistryLinked
|
11
13
|
{
|
12
|
-
|
13
|
-
|
14
|
+
|
15
|
+
// priorize simplicity and size over using standard upgradeability structs
|
16
|
+
IRegistry private _registry;
|
17
|
+
|
18
|
+
/// @dev initialization for upgradable contracts
|
19
|
+
// used in _initializeRegisterable
|
20
|
+
function __RegistryLinked_init(
|
21
|
+
address registry
|
22
|
+
)
|
23
|
+
internal
|
24
|
+
virtual
|
25
|
+
onlyInitializing()
|
26
|
+
{
|
27
|
+
if (!ContractLib.isRegistry(registry)) {
|
28
|
+
revert ErrorNotRegistry(registry);
|
29
|
+
}
|
30
|
+
|
31
|
+
_registry = IRegistry(registry);
|
14
32
|
}
|
15
33
|
|
16
|
-
|
17
|
-
|
34
|
+
|
35
|
+
function getRegistry() public view returns (IRegistry) {
|
36
|
+
return _registry;
|
18
37
|
}
|
19
38
|
}
|
@@ -5,25 +5,25 @@ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/ut
|
|
5
5
|
|
6
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
7
|
import {IService} from "./IService.sol";
|
8
|
-
import {IVersionable} from "../
|
8
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
9
9
|
import {ObjectType, SERVICE} from "../type/ObjectType.sol";
|
10
10
|
import {Registerable} from "./Registerable.sol";
|
11
11
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
12
|
-
import {Version, VersionLib
|
13
|
-
import {Versionable} from "../
|
14
|
-
import {Upgradeable} from "../upgradeability/Upgradeable.sol";
|
12
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
13
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
15
14
|
|
16
15
|
|
17
16
|
/// @dev service base contract
|
18
17
|
abstract contract Service is
|
19
|
-
Registerable,
|
20
|
-
|
18
|
+
Registerable,
|
19
|
+
Versionable,
|
21
20
|
ReentrancyGuardUpgradeable,
|
22
21
|
IService
|
23
22
|
{
|
24
23
|
|
25
24
|
function __Service_init(
|
26
25
|
address authority, // real authority for registry service adress(0) for other services
|
26
|
+
address registry,
|
27
27
|
address initialOwner
|
28
28
|
)
|
29
29
|
internal
|
@@ -34,7 +34,8 @@ abstract contract Service is
|
|
34
34
|
|
35
35
|
__Registerable_init(
|
36
36
|
authority,
|
37
|
-
|
37
|
+
registry,
|
38
|
+
IRegistry(registry).getNftId(),
|
38
39
|
SERVICE(),
|
39
40
|
false, // is interceptor
|
40
41
|
initialOwner,
|
@@ -61,6 +62,6 @@ abstract contract Service is
|
|
61
62
|
|
62
63
|
|
63
64
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
64
|
-
return
|
65
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
65
66
|
}
|
66
67
|
}
|
@@ -10,7 +10,6 @@ import {ContractLib} from "../shared/ContractLib.sol";
|
|
10
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
11
|
import {NftId} from "../type/NftId.sol";
|
12
12
|
import {SERVICE} from "../type/ObjectType.sol";
|
13
|
-
import {VersionPart} from "../type/Version.sol";
|
14
13
|
|
15
14
|
|
16
15
|
/// @dev Token specific transfer helper base contract.
|
@@ -20,14 +19,14 @@ import {VersionPart} from "../type/Version.sol";
|
|
20
19
|
contract TokenHandlerBase {
|
21
20
|
|
22
21
|
// _setWallet
|
23
|
-
event LogTokenHandlerWalletAddressChanged(NftId componentNftId, address oldWallet, address newWallet);
|
24
|
-
event LogTokenHandlerWalletTokensTransferred(NftId componentNftId, address oldWallet, address newWallet, Amount amount);
|
22
|
+
event LogTokenHandlerWalletAddressChanged(NftId indexed componentNftId, address indexed oldWallet, address indexed newWallet);
|
23
|
+
event LogTokenHandlerWalletTokensTransferred(NftId indexed componentNftId, address indexed oldWallet, address indexed newWallet, Amount amount);
|
25
24
|
|
26
25
|
// _approveTokenHandler
|
27
|
-
event LogTokenHandlerTokenApproved(NftId nftId, address tokenHandler, address token, Amount amount, bool isMaxAmount);
|
26
|
+
event LogTokenHandlerTokenApproved(NftId indexed nftId, address indexed tokenHandler, address indexed token, Amount amount, bool isMaxAmount);
|
28
27
|
|
29
28
|
// _transfer
|
30
|
-
event
|
29
|
+
event LogTokenHandlerTokenTransferred(address indexed token, address indexed from, address indexed to, Amount amount);
|
31
30
|
|
32
31
|
// constructor
|
33
32
|
error ErrorTokenHandlerNotRegistry(address registry);
|
@@ -50,7 +49,6 @@ contract TokenHandlerBase {
|
|
50
49
|
IERC20Metadata public immutable TOKEN;
|
51
50
|
address public immutable COMPONENT;
|
52
51
|
NftId public immutable NFT_ID;
|
53
|
-
VersionPart public immutable RELEASE;
|
54
52
|
|
55
53
|
address internal _wallet;
|
56
54
|
|
@@ -71,7 +69,6 @@ contract TokenHandlerBase {
|
|
71
69
|
REGISTRY = IRegistry(registry);
|
72
70
|
COMPONENT = component;
|
73
71
|
NFT_ID = REGISTRY.getNftIdForAddress(component);
|
74
|
-
RELEASE = REGISTRY.getObjectRelease(NFT_ID);
|
75
72
|
|
76
73
|
if (NFT_ID.eqz()) {
|
77
74
|
revert ErrorTokenHandlerComponentNotRegistered(component);
|
@@ -207,7 +204,7 @@ contract TokenHandlerBase {
|
|
207
204
|
}
|
208
205
|
|
209
206
|
// transfer the tokens
|
210
|
-
emit
|
207
|
+
emit LogTokenHandlerTokenTransferred(address(TOKEN), from, to, amount);
|
211
208
|
|
212
209
|
SafeERC20.safeTransferFrom(
|
213
210
|
TOKEN,
|
@@ -257,7 +254,7 @@ contract TokenHandler is
|
|
257
254
|
error ErrorTokenHandlerNotService(address service);
|
258
255
|
|
259
256
|
modifier onlyService() {
|
260
|
-
if (!REGISTRY.isObjectType(msg.sender, SERVICE()
|
257
|
+
if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
|
261
258
|
revert ErrorTokenHandlerNotService(msg.sender);
|
262
259
|
}
|
263
260
|
_;
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {IComponent} from "../shared/IComponent.sol";
|
7
|
-
import {
|
7
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
8
8
|
|
9
9
|
import {Amount} from "../type/Amount.sol";
|
10
10
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
@@ -22,29 +22,31 @@ import {VersionPart} from "../type/Version.sol";
|
|
22
22
|
|
23
23
|
interface IStaking is
|
24
24
|
IComponent,
|
25
|
-
|
25
|
+
IVersionable
|
26
26
|
{
|
27
27
|
|
28
|
+
event LogStakingTokenHandlerDeployed(NftId indexed componentNftId, address indexed tokenHandler, address indexed token);
|
29
|
+
|
28
30
|
// owner functions
|
29
|
-
event LogStakingStakingRateSet(ChainId chainId, address token, UFixed
|
30
|
-
event LogStakingStakingServiceSet(address stakingService, VersionPart release
|
31
|
-
event LogStakingStakingReaderSet(address
|
32
|
-
event LogStakingTargetHandlerSet(address
|
33
|
-
event LogStakingTokenHandlerApproved(
|
31
|
+
event LogStakingStakingRateSet(ChainId indexed chainId, address indexed token, UFixed indexed oldStakingRate, UFixed newStakingRate, Blocknumber lastUpdateIn);
|
32
|
+
event LogStakingStakingServiceSet(address indexed oldStakingService, address indexed stakingService, VersionPart indexed release);
|
33
|
+
event LogStakingStakingReaderSet(address indexed oldStakingReader, address indexed stakingReader);
|
34
|
+
event LogStakingTargetHandlerSet(address indexed oldTargetHandler, address indexed targetManager);
|
35
|
+
event LogStakingTokenHandlerApproved(Amount indexed oldApprovalAmount, Amount indexed approvalAmount, address indexed token);
|
34
36
|
|
35
37
|
// token
|
36
|
-
event LogStakingTokenAdded(ChainId chainId, address token);
|
37
|
-
event LogStakingTargetTokenAdded(NftId targetNftId,
|
38
|
+
event LogStakingTokenAdded(ChainId indexed chainId, address indexed token);
|
39
|
+
event LogStakingTargetTokenAdded(NftId indexed targetNftId, address indexed token);
|
38
40
|
|
39
41
|
// total value locked
|
40
|
-
event LogStakingTvlIncreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdateIn);
|
41
|
-
event LogStakingTvlDecreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdateIn);
|
42
|
+
event LogStakingTvlIncreased(NftId indexed targetNftId, address indexed token, Amount indexed amount, Amount newBalance, Blocknumber lastUpdateIn);
|
43
|
+
event LogStakingTvlDecreased(NftId indexed targetNftId, address indexed token, Amount indexed amount, Amount newBalance, Blocknumber lastUpdateIn);
|
42
44
|
|
43
45
|
// targets
|
44
46
|
event LogStakingSupportInfoSet(
|
45
|
-
ObjectType objectType,
|
46
|
-
bool isSupported,
|
47
|
-
bool allowNewTargets,
|
47
|
+
ObjectType indexed objectType,
|
48
|
+
bool indexed isSupported,
|
49
|
+
bool indexed allowNewTargets,
|
48
50
|
bool allowCrossChain,
|
49
51
|
Amount minStakingAmount,
|
50
52
|
Amount maxStakingAmount,
|
@@ -54,31 +56,31 @@ interface IStaking is
|
|
54
56
|
UFixed maxRewardRate,
|
55
57
|
Blocknumber lastUpdateIn);
|
56
58
|
|
57
|
-
event LogStakingTargetCreated(NftId targetNftId, ObjectType objectType, Seconds lockingPeriod, UFixed rewardRate);
|
58
|
-
event LogStakingLimitsSet(NftId targetNftId, Amount marginAmount, Amount hardLimitAmount, Blocknumber lastUpdateIn);
|
59
|
-
event LogStakingTargetLimitsUpdated(NftId targetNftId, Amount marginAmount, Amount hardLimitAmount, Blocknumber lastUpdateIn);
|
60
|
-
event LogStakingTargetLimitUpdated(NftId targetNftId, Amount limitAmount, Amount hardLimitAmount, Amount requiredStakeAmount, Amount actualStakeAmount, Blocknumber lastUpdateIn);
|
59
|
+
event LogStakingTargetCreated(NftId indexed targetNftId, ObjectType indexed objectType, Seconds indexed lockingPeriod, UFixed rewardRate);
|
60
|
+
event LogStakingLimitsSet(NftId indexed targetNftId, Amount indexed marginAmount, Amount indexed hardLimitAmount, Blocknumber lastUpdateIn);
|
61
|
+
event LogStakingTargetLimitsUpdated(NftId indexed targetNftId, Amount indexed marginAmount, Amount indexed hardLimitAmount, Blocknumber lastUpdateIn);
|
62
|
+
event LogStakingTargetLimitUpdated(NftId indexed targetNftId, Amount indexed limitAmount, Amount indexed hardLimitAmount, Amount requiredStakeAmount, Amount actualStakeAmount, Blocknumber lastUpdateIn);
|
61
63
|
|
62
64
|
// target parameters
|
63
|
-
event LogStakingTargetLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod, Blocknumber lastUpdateIn);
|
64
|
-
event LogStakingTargetRewardRateSet(NftId targetNftId, UFixed
|
65
|
-
event LogStakingTargetMaxStakedAmountSet(NftId targetNftId, Amount stakeLimitAmount, Blocknumber lastUpdateIn);
|
66
|
-
event LogStakingTargetLimitsSet(NftId targetNftId, Amount stakeLimitAmount, Amount marginAmount, Amount limitAmount);
|
65
|
+
event LogStakingTargetLockingPeriodSet(NftId indexed targetNftId, Seconds indexed oldLockingPeriod, Seconds indexed lockingPeriod, Blocknumber lastUpdateIn);
|
66
|
+
event LogStakingTargetRewardRateSet(NftId indexed targetNftId, UFixed indexed oldRewardRate, UFixed indexed rewardRate, Blocknumber lastUpdateIn);
|
67
|
+
event LogStakingTargetMaxStakedAmountSet(NftId indexed targetNftId, Amount indexed stakeLimitAmount, Blocknumber indexed lastUpdateIn);
|
68
|
+
event LogStakingTargetLimitsSet(NftId indexed targetNftId, Amount indexed stakeLimitAmount, Amount indexed marginAmount, Amount limitAmount);
|
67
69
|
|
68
70
|
// reward reserves
|
69
|
-
event LogStakingRewardReservesRefilled(NftId targetNftId, Amount dipAmount, address targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
|
70
|
-
event LogStakingRewardReservesWithdrawn(NftId targetNftId, Amount dipAmount, address targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
|
71
|
-
event LogStakingRewardReservesSpent(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdateIn);
|
71
|
+
event LogStakingRewardReservesRefilled(NftId indexed targetNftId, Amount indexed dipAmount, address indexed targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
|
72
|
+
event LogStakingRewardReservesWithdrawn(NftId indexed targetNftId, Amount indexed dipAmount, address indexed targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
|
73
|
+
event LogStakingRewardReservesSpent(NftId indexed targetNftId, Amount indexed dipAmount, Amount indexed reserveBalance, Blocknumber lastUpdateIn);
|
72
74
|
|
73
75
|
// stakes
|
74
|
-
event LogStakingStakeCreated(NftId stakeNftId, NftId targetNftId, Amount stakeAmount, Timestamp lockedUntil, address stakeOwner);
|
75
|
-
event LogStakingStakeRewardsUpdated(NftId stakeNftId, Amount rewardIncrementAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
76
|
-
event LogStakingRewardsRestaked(NftId stakeNftId, Amount restakedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
77
|
-
event LogStakingStaked(NftId stakeNftId, Amount stakedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
78
|
-
event LogStakingUnstaked(NftId stakeNftId, Amount unstakedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
79
|
-
event LogStakingRewardsClaimed(NftId stakeNftId, Amount claimedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
80
|
-
|
81
|
-
event LogStakingStakeRestaked(NftId stakeNftId, NftId targetNftId, Amount stakeAmount, address owner, NftId oldStakeNftId);
|
76
|
+
event LogStakingStakeCreated(NftId indexed stakeNftId, NftId indexed targetNftId, Amount indexed stakeAmount, Timestamp lockedUntil, address stakeOwner);
|
77
|
+
event LogStakingStakeRewardsUpdated(NftId indexed stakeNftId, Amount indexed rewardIncrementAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
78
|
+
event LogStakingRewardsRestaked(NftId indexed stakeNftId, Amount indexed restakedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
79
|
+
event LogStakingStaked(NftId indexed stakeNftId, Amount indexed stakedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
80
|
+
event LogStakingUnstaked(NftId indexed stakeNftId, Amount indexed unstakedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
81
|
+
event LogStakingRewardsClaimed(NftId indexed stakeNftId, Amount indexed claimedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
|
82
|
+
|
83
|
+
event LogStakingStakeRestaked(NftId indexed stakeNftId, NftId indexed targetNftId, Amount indexed stakeAmount, address owner, NftId oldStakeNftId);
|
82
84
|
|
83
85
|
// modifiers
|
84
86
|
error ErrorStakingNotStake(NftId stakeNftId);
|
@@ -16,22 +16,13 @@ import {UFixed} from "../type/UFixed.sol";
|
|
16
16
|
interface IStakingService is IService
|
17
17
|
{
|
18
18
|
|
19
|
-
event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
|
20
|
-
event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId,
|
21
|
-
|
22
|
-
event
|
23
|
-
|
24
|
-
|
25
|
-
event
|
26
|
-
|
27
|
-
event LogStakingServiceStakeObjectCreated(NftId stakeNftId, NftId targetNftId, address stakeOwner);
|
28
|
-
event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
|
29
|
-
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
|
30
|
-
event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
|
31
|
-
event LogStakingServiceStakeRestaked(address stakeOwner, NftId indexed stakeNftId, NftId newStakeNftId, NftId indexed newTargetNftId, Amount indexed newStakeBalance);
|
32
|
-
|
33
|
-
event LogStakingServiceRewardsUpdated(NftId stakeNftId);
|
34
|
-
event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
|
19
|
+
event LogStakingServiceProtocolTargetRegistered(NftId indexed protocolNftId);
|
20
|
+
event LogStakingServiceInstanceTargetRegistered(NftId indexed instanceNftId, Seconds indexed initialLockingPeriod, UFixed indexed initialRewardRate);
|
21
|
+
|
22
|
+
event LogStakingServiceRewardReservesIncreased(NftId indexed targetNftId, address indexed rewardProvider, Amount indexed dipAmount, Amount newBalance);
|
23
|
+
event LogStakingServiceRewardReservesDecreased(NftId indexed targetNftId, address indexed targetOwner, Amount indexed dipAmount, Amount newBalance);
|
24
|
+
|
25
|
+
event LogStakingServiceStakeCreated(NftId indexed stakeNftId, NftId indexed targetNftId, address indexed stakeOwner);
|
35
26
|
|
36
27
|
// modifiers
|
37
28
|
error ErrorStakingServiceNotStakingOwner(address account);
|
@@ -4,10 +4,11 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
7
8
|
import {IStaking} from "./IStaking.sol";
|
8
9
|
import {IStakingService} from "./IStakingService.sol";
|
9
10
|
import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
|
10
|
-
import {IVersionable} from "../
|
11
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
11
12
|
|
12
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
13
14
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
@@ -15,7 +16,7 @@ import {ChainId, ChainIdLib} from "../type/ChainId.sol";
|
|
15
16
|
import {Component} from "../shared/Component.sol";
|
16
17
|
import {IComponent} from "../shared/IComponent.sol";
|
17
18
|
import {NftId} from "../type/NftId.sol";
|
18
|
-
import {ObjectType, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
|
19
|
+
import {ObjectType, PROTOCOL, INSTANCE, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
|
19
20
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
20
21
|
import {Registerable} from "../shared/Registerable.sol";
|
21
22
|
import {StakingLib} from "./StakingLib.sol";
|
@@ -27,13 +28,12 @@ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
|
27
28
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
28
29
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
29
30
|
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
30
|
-
import {Versionable} from "../
|
31
|
-
import {Upgradeable} from "../upgradeability/Upgradeable.sol";
|
31
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
32
32
|
|
33
33
|
|
34
34
|
contract Staking is
|
35
35
|
Component,
|
36
|
-
|
36
|
+
Versionable,
|
37
37
|
IStaking
|
38
38
|
{
|
39
39
|
string public constant CONTRACT_NAME = "Staking";
|
@@ -75,18 +75,18 @@ contract Staking is
|
|
75
75
|
external
|
76
76
|
virtual
|
77
77
|
{
|
78
|
-
|
79
|
-
if (msg.sender != address(registry)) {
|
78
|
+
if (msg.sender != address(getRegistry())) {
|
80
79
|
revert ErrorStakingNotRegistry(msg.sender);
|
81
80
|
}
|
82
81
|
|
83
82
|
StakingStorage storage $ = _getStakingStorage();
|
84
83
|
address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
|
85
84
|
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
86
|
-
address(
|
85
|
+
address(getRegistry()),
|
87
86
|
address(this),
|
88
87
|
dipToken,
|
89
|
-
|
88
|
+
getRegistry().getAuthority());
|
89
|
+
emit LogStakingTokenHandlerDeployed(getNftId(), address($._tokenHandler), dipToken);
|
90
90
|
}
|
91
91
|
|
92
92
|
|
@@ -177,7 +177,7 @@ contract Staking is
|
|
177
177
|
Blocknumber lastUpdateIn
|
178
178
|
) = _getStakingStorage()._store.setStakingRate(chainId, token, stakingRate);
|
179
179
|
|
180
|
-
emit LogStakingStakingRateSet(chainId, token,
|
180
|
+
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate, lastUpdateIn);
|
181
181
|
}
|
182
182
|
|
183
183
|
|
@@ -191,9 +191,9 @@ contract Staking is
|
|
191
191
|
// effects
|
192
192
|
StakingStorage storage $ = _getStakingStorage();
|
193
193
|
address oldStakingService = address($._stakingService);
|
194
|
-
$._stakingService = StakingLib.checkAndGetStakingService(release);
|
194
|
+
$._stakingService = StakingLib.checkAndGetStakingService(getRegistry(), release);
|
195
195
|
|
196
|
-
emit LogStakingStakingServiceSet(address($._stakingService), release
|
196
|
+
emit LogStakingStakingServiceSet(oldStakingService, address($._stakingService), release);
|
197
197
|
}
|
198
198
|
|
199
199
|
|
@@ -250,7 +250,7 @@ contract Staking is
|
|
250
250
|
token,
|
251
251
|
amount);
|
252
252
|
|
253
|
-
emit LogStakingTokenHandlerApproved(
|
253
|
+
emit LogStakingTokenHandlerApproved(oldAllowanceAmount, amount, address(token));
|
254
254
|
}
|
255
255
|
|
256
256
|
//--- target management -------------------------------------------------//
|
@@ -278,10 +278,9 @@ contract Staking is
|
|
278
278
|
returns (Amount newBalance)
|
279
279
|
{
|
280
280
|
address transferTo;
|
281
|
-
IRegistry registry = _getRegistry();
|
282
281
|
|
283
282
|
// case 1: protocol target: staking owner is recipient
|
284
|
-
if (targetNftId ==
|
283
|
+
if (targetNftId == getRegistry().getProtocolNftId()) {
|
285
284
|
// verify that the caller is the staking owner
|
286
285
|
transferTo = getOwner();
|
287
286
|
if (msg.sender != transferTo) {
|
@@ -291,7 +290,7 @@ contract Staking is
|
|
291
290
|
// case 2: same chain target: target owner is recipient
|
292
291
|
} else if (ChainIdLib.isCurrentChain(targetNftId)) {
|
293
292
|
// verify that the caller is the target owner
|
294
|
-
transferTo =
|
293
|
+
transferTo = getRegistry().ownerOf(targetNftId);
|
295
294
|
if (msg.sender != transferTo) {
|
296
295
|
revert ErrorStakingNotNftOwner(targetNftId);
|
297
296
|
}
|
@@ -325,15 +324,13 @@ contract Staking is
|
|
325
324
|
onlyTarget(targetNftId)
|
326
325
|
returns (Amount newBalance)
|
327
326
|
{
|
328
|
-
IRegistry registry = _getRegistry();
|
329
|
-
|
330
327
|
// check that service does not withdraw from protocol target
|
331
|
-
if (targetNftId ==
|
328
|
+
if (targetNftId == getRegistry().getProtocolNftId()) {
|
332
329
|
revert ErrorStakingTargetTypeNotSupported(targetNftId, PROTOCOL());
|
333
330
|
}
|
334
331
|
|
335
332
|
// default: on-chain target owner is recipient
|
336
|
-
address targetOwner =
|
333
|
+
address targetOwner = getRegistry().ownerOf(targetNftId);
|
337
334
|
return _withdrawRewardReserves(targetNftId, dipAmount, targetOwner);
|
338
335
|
}
|
339
336
|
|
@@ -425,7 +422,7 @@ contract Staking is
|
|
425
422
|
$._store.addTargetToken(targetNftId, token);
|
426
423
|
|
427
424
|
// TODO move logging to store
|
428
|
-
emit LogStakingTargetTokenAdded(targetNftId,
|
425
|
+
emit LogStakingTargetTokenAdded(targetNftId, token);
|
429
426
|
}
|
430
427
|
|
431
428
|
|
@@ -435,9 +432,7 @@ contract Staking is
|
|
435
432
|
virtual
|
436
433
|
restricted() // only pool service
|
437
434
|
{
|
438
|
-
// !!! TODO amount can be 0
|
439
435
|
StakingStorage storage $ = _getStakingStorage();
|
440
|
-
// why not StakingBalanceStore instead of StakingStore?
|
441
436
|
$._store.increaseTotalValueLocked(targetNftId, token, amount);
|
442
437
|
}
|
443
438
|
|
@@ -534,7 +529,7 @@ contract Staking is
|
|
534
529
|
|
535
530
|
// collect staked DIP token via staking service
|
536
531
|
if (stakeAmount.gtz()) {
|
537
|
-
address stakeOwner =
|
532
|
+
address stakeOwner = getRegistry().ownerOf(stakeNftId);
|
538
533
|
$._stakingService.pullDipToken(stakeAmount, stakeOwner);
|
539
534
|
}
|
540
535
|
}
|
@@ -557,7 +552,7 @@ contract Staking is
|
|
557
552
|
|
558
553
|
// transfer unstaked DIP token via staking service
|
559
554
|
if (unstakedAmount.gtz()) {
|
560
|
-
address stakeOwner =
|
555
|
+
address stakeOwner = getRegistry().ownerOf(stakeNftId);
|
561
556
|
$._stakingService.pushDipToken(unstakedAmount, stakeOwner);
|
562
557
|
}
|
563
558
|
}
|
@@ -588,7 +583,7 @@ contract Staking is
|
|
588
583
|
AmountLib.max()); // unstake up to this amount
|
589
584
|
|
590
585
|
// step 2: create new stake with full unstaked amount
|
591
|
-
address stakeOwner =
|
586
|
+
address stakeOwner = getRegistry().ownerOf(stakeNftId);
|
592
587
|
newStakeNftId = $._stakingService.createStakeObject(newTargetNftId, stakeOwner);
|
593
588
|
$._store.createStake(newStakeNftId, newTargetNftId, stakeOwner, newStakedAmount);
|
594
589
|
|
@@ -627,7 +622,7 @@ contract Staking is
|
|
627
622
|
// collect staked DIP token by staking service
|
628
623
|
if (claimedAmount.gtz()) {
|
629
624
|
// interactions
|
630
|
-
address stakeOwner =
|
625
|
+
address stakeOwner = getRegistry().ownerOf(stakeNftId);
|
631
626
|
$._stakingService.pushDipToken(claimedAmount, stakeOwner);
|
632
627
|
}
|
633
628
|
}
|
@@ -655,11 +650,21 @@ contract Staking is
|
|
655
650
|
return _getStakingStorage()._tokenHandler;
|
656
651
|
}
|
657
652
|
|
653
|
+
// from IRegisterable
|
654
|
+
function getRelease()
|
655
|
+
public
|
656
|
+
pure
|
657
|
+
virtual override (IRelease, Registerable)
|
658
|
+
returns(VersionPart)
|
659
|
+
{
|
660
|
+
return VersionPartLib.toVersionPart(3);
|
661
|
+
}
|
662
|
+
|
658
663
|
// from IVersionable
|
659
664
|
function getVersion()
|
660
665
|
public
|
661
666
|
pure
|
662
|
-
virtual override (IVersionable, Versionable)
|
667
|
+
virtual override (Component, IVersionable, Versionable)
|
663
668
|
returns(Version)
|
664
669
|
{
|
665
670
|
return VersionLib.toVersion(3,0,0);
|
@@ -724,13 +729,14 @@ contract Staking is
|
|
724
729
|
onlyInitializing()
|
725
730
|
{
|
726
731
|
(
|
732
|
+
address registryAddress,
|
727
733
|
address targetHandlerAddress,
|
728
734
|
address stakingStoreAddress,
|
729
735
|
address tokenRegistryAddress
|
730
|
-
) = abi.decode(data, (address, address, address));
|
736
|
+
) = abi.decode(data, (address, address, address, address));
|
731
737
|
|
732
738
|
// wiring to external contracts
|
733
|
-
IRegistry registry =
|
739
|
+
IRegistry registry = IRegistry(registryAddress);
|
734
740
|
StakingStorage storage $ = _getStakingStorage();
|
735
741
|
$._protocolNftId = registry.getProtocolNftId();
|
736
742
|
$._targetHandler = TargetHandler(targetHandlerAddress);
|
@@ -740,9 +746,9 @@ contract Staking is
|
|
740
746
|
// staking service has to be set via setStakingService after deploying the first GIF release
|
741
747
|
|
742
748
|
// initialize component
|
743
|
-
// TODO Will read 0 component service address from registry
|
744
749
|
__Component_init(
|
745
750
|
registry.getAuthority(),
|
751
|
+
address(registry),
|
746
752
|
registry.getNftId(), // parent nft id
|
747
753
|
CONTRACT_NAME,
|
748
754
|
STAKING(),
|
@@ -776,7 +782,7 @@ contract Staking is
|
|
776
782
|
}
|
777
783
|
|
778
784
|
if (checkOwner) {
|
779
|
-
address nftOwner =
|
785
|
+
address nftOwner = getRegistry().ownerOf(nftId);
|
780
786
|
if (msg.sender != nftOwner) {
|
781
787
|
revert ErrorStakingNotOwner(nftId, nftOwner, msg.sender);
|
782
788
|
}
|
@@ -6,7 +6,6 @@ import {IStaking} from "./IStaking.sol";
|
|
6
6
|
import {IStakingService} from "./IStakingService.sol";
|
7
7
|
|
8
8
|
import {Amount} from "../type/Amount.sol";
|
9
|
-
import {ContractLib} from "../shared/ContractLib.sol";
|
10
9
|
import {NftId} from "../type/NftId.sol";
|
11
10
|
import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
|
12
11
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
@@ -112,14 +111,13 @@ library StakingLib {
|
|
112
111
|
|
113
112
|
|
114
113
|
function checkAndGetStakingService(
|
114
|
+
IRegistry registry,
|
115
115
|
VersionPart release
|
116
116
|
)
|
117
117
|
public
|
118
118
|
view
|
119
119
|
returns (IStakingService stakingService)
|
120
120
|
{
|
121
|
-
IRegistry registry = ContractLib.getRegistry();
|
122
|
-
|
123
121
|
if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
|
124
122
|
revert IStaking.ErrorStakingReleaseNotActive(release);
|
125
123
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {Staking} from "./Staking.sol";
|
7
7
|
|
@@ -15,6 +15,7 @@ contract StakingManager is
|
|
15
15
|
|
16
16
|
/// @dev initializes proxy manager with service implementation
|
17
17
|
constructor(
|
18
|
+
address registry,
|
18
19
|
address targetHandler,
|
19
20
|
address stakingStore,
|
20
21
|
address tokenRegistry,
|
@@ -26,16 +27,18 @@ contract StakingManager is
|
|
26
27
|
|
27
28
|
_initialImplementation = address(stakingImplementation);
|
28
29
|
_initializationData = abi.encode(
|
30
|
+
registry,
|
29
31
|
targetHandler,
|
30
32
|
stakingStore,
|
31
33
|
tokenRegistry);
|
32
34
|
|
33
|
-
|
35
|
+
IVersionable versionable = initialize(
|
36
|
+
registry,
|
34
37
|
_initialImplementation,
|
35
38
|
_initializationData,
|
36
39
|
salt);
|
37
40
|
|
38
|
-
_staking = Staking(address(
|
41
|
+
_staking = Staking(address(versionable));
|
39
42
|
}
|
40
43
|
|
41
44
|
//--- view functions ----------------------------------------------------//
|