@etherisc/gif-next 3.0.0-9a6ca4b-922 → 3.0.0-a511887-523
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
- 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 +45 -3
- 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 +18 -42
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +158 -67
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +112 -49
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +187 -76
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +224 -113
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +193 -74
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +192 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +200 -81
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +117 -17
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +180 -33
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +158 -67
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
- 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 +128 -52
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +199 -84
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +211 -96
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -78
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +112 -49
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +219 -185
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
- 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 +314 -96
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +192 -142
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +302 -213
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
- 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 +173 -144
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
- 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 +44 -2
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -49
- 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 +46 -4
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +132 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
- 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 +195 -86
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- 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/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 +4 -4
- 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/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/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- 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 +19 -6
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +109 -40
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
- package/contracts/accounting/AccountingService.sol +2 -2
- package/contracts/accounting/AccountingServiceManager.sol +3 -3
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +19 -16
- package/contracts/authorization/AccessManagerCloneable.sol +24 -48
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +2 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
- package/contracts/distribution/DistributionService.sol +11 -8
- package/contracts/distribution/DistributionServiceManager.sol +3 -3
- package/contracts/instance/Instance.sol +2 -5
- package/contracts/instance/InstanceAdmin.sol +9 -14
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceService.sol +4 -4
- package/contracts/instance/InstanceServiceManager.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
- package/contracts/oracle/Oracle.sol +3 -2
- package/contracts/oracle/OracleService.sol +1 -1
- package/contracts/oracle/OracleServiceManager.sol +3 -3
- package/contracts/pool/BasicPoolAuthorization.sol +5 -4
- package/contracts/pool/BundleService.sol +5 -5
- package/contracts/pool/BundleServiceManager.sol +3 -3
- package/contracts/pool/PoolLib.sol +7 -4
- package/contracts/pool/PoolService.sol +3 -3
- package/contracts/pool/PoolServiceManager.sol +3 -3
- package/contracts/product/ApplicationService.sol +4 -5
- package/contracts/product/ApplicationServiceManager.sol +3 -3
- package/contracts/product/BasicProductAuthorization.sol +5 -4
- package/contracts/product/ClaimService.sol +1 -1
- package/contracts/product/ClaimServiceManager.sol +3 -3
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceManager.sol +3 -3
- package/contracts/product/PricingService.sol +1 -1
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/RiskService.sol +1 -1
- package/contracts/product/RiskServiceManager.sol +3 -3
- package/contracts/registry/IRegistry.sol +20 -14
- package/contracts/registry/IRegistryService.sol +10 -14
- package/contracts/registry/IRelease.sol +0 -3
- package/contracts/registry/Registry.sol +124 -78
- package/contracts/registry/RegistryAdmin.sol +9 -15
- package/contracts/registry/RegistryAuthorization.sol +2 -1
- package/contracts/registry/RegistryService.sol +96 -78
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +14 -12
- package/contracts/registry/ReleaseRegistry.sol +52 -50
- package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
- package/contracts/shared/Component.sol +24 -17
- package/contracts/shared/ComponentService.sol +28 -101
- package/contracts/shared/ComponentServiceManager.sol +3 -3
- package/contracts/shared/IComponent.sol +5 -3
- package/contracts/shared/IComponentService.sol +0 -14
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
- package/contracts/shared/IRegisterable.sol +8 -3
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +19 -0
- package/contracts/shared/InstanceLinkedComponent.sol +33 -78
- package/contracts/shared/NftOwnable.sol +1 -14
- package/contracts/shared/PolicyHolder.sol +2 -2
- package/contracts/shared/Registerable.sol +36 -18
- package/contracts/shared/RegistryLinked.sol +11 -4
- package/contracts/shared/Service.sol +6 -5
- package/contracts/shared/TokenHandler.sol +4 -1
- package/contracts/shared/Versionable.sol +47 -0
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +7 -17
- package/contracts/staking/StakingManager.sol +3 -3
- package/contracts/staking/StakingService.sol +10 -7
- package/contracts/staking/StakingServiceManager.sol +3 -4
- package/contracts/staking/StakingStore.sol +10 -8
- package/contracts/type/Version.sol +15 -16
- package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
- package/contracts/upgradeability/ProxyManager.sol +46 -50
- package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
- package/package.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -1,10 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
4
|
|
9
5
|
import {Amount} from "../type/Amount.sol";
|
10
6
|
import {Component} from "./Component.sol";
|
@@ -12,17 +8,11 @@ import {IComponentService} from "./IComponentService.sol";
|
|
12
8
|
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
9
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
14
10
|
import {IComponents} from "../instance/module/IComponents.sol";
|
15
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
16
11
|
import {IInstance} from "../instance/IInstance.sol";
|
17
12
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
14
|
import {NftId} from "../type/NftId.sol";
|
20
15
|
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
|
-
import {VersionPart} from "../type/Version.sol";
|
22
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
24
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
|
-
import {VersionPart} from "../type/Version.sol";
|
26
16
|
|
27
17
|
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
28
18
|
// same pattern as for Service which is also upgradeable
|
@@ -35,24 +25,11 @@ abstract contract InstanceLinkedComponent is
|
|
35
25
|
|
36
26
|
struct InstanceLinkedComponentStorage {
|
37
27
|
IInstance _instance; // instance for this component
|
38
|
-
InstanceReader _instanceReader; // instance reader for this component
|
39
28
|
IAuthorization _initialAuthorization;
|
40
|
-
IComponentService _componentService;
|
41
29
|
}
|
42
30
|
|
43
31
|
/// @inheritdoc IInstanceLinkedComponent
|
44
|
-
function
|
45
|
-
external
|
46
|
-
virtual
|
47
|
-
restricted()
|
48
|
-
onlyOwner()
|
49
|
-
returns (Amount withdrawnAmount)
|
50
|
-
{
|
51
|
-
return _withdrawFees(amount);
|
52
|
-
}
|
53
|
-
|
54
|
-
/// @inheritdoc IInstanceLinkedComponent
|
55
|
-
function getInstance() public view virtual override returns (IInstance instance) {
|
32
|
+
function getInstance() public view virtual returns (IInstance instance) {
|
56
33
|
return _getInstanceLinkedComponentStorage()._instance;
|
57
34
|
}
|
58
35
|
|
@@ -61,12 +38,6 @@ abstract contract InstanceLinkedComponent is
|
|
61
38
|
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
39
|
}
|
63
40
|
|
64
|
-
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
65
|
-
assembly {
|
66
|
-
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
41
|
function __InstanceLinkedComponent_init(
|
71
42
|
address registry,
|
72
43
|
NftId parentNftId,
|
@@ -76,79 +47,64 @@ abstract contract InstanceLinkedComponent is
|
|
76
47
|
bool isInterceptor,
|
77
48
|
address initialOwner
|
78
49
|
)
|
79
|
-
internal
|
50
|
+
internal
|
80
51
|
virtual
|
81
52
|
onlyInitializing()
|
82
53
|
{
|
83
|
-
//
|
84
|
-
|
85
|
-
|
86
|
-
parentNftId,
|
87
|
-
componentType);
|
88
|
-
|
89
|
-
// set and check linked instance
|
90
|
-
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
91
|
-
$._instance = IInstance(
|
92
|
-
IRegistry(registry).getObjectAddress(instanceNftId));
|
54
|
+
// TODO calling registry and checking release before component is initialized
|
55
|
+
// at least breaks order of checks -> e.g. if registry is not contract no meaningfull error will be given
|
56
|
+
IInstance instance = _checkAndGetInstance(registry, parentNftId, componentType);
|
93
57
|
|
94
58
|
// set component specific parameters
|
95
59
|
__Component_init(
|
96
|
-
|
60
|
+
instance.authority(),
|
97
61
|
registry,
|
98
62
|
parentNftId,
|
99
63
|
name,
|
100
|
-
componentType,
|
64
|
+
componentType,
|
101
65
|
isInterceptor,
|
102
66
|
initialOwner,
|
103
67
|
""); // registry data
|
104
68
|
|
105
69
|
// set instance linked specific parameters
|
106
|
-
|
70
|
+
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
71
|
+
$._instance = instance;
|
107
72
|
$._initialAuthorization = authorization;
|
108
|
-
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
109
73
|
|
110
74
|
// register interfaces
|
111
75
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
112
76
|
}
|
113
77
|
|
114
|
-
|
115
|
-
function _checkAndGetInstanceNftId(
|
78
|
+
function _checkAndGetInstance(
|
116
79
|
address registryAddress,
|
117
80
|
NftId parentNftId,
|
118
81
|
ObjectType componentType
|
119
82
|
)
|
120
|
-
|
83
|
+
private
|
121
84
|
view
|
122
|
-
returns (
|
85
|
+
returns (IInstance instance)
|
123
86
|
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
87
|
+
NftId instanceNftId;
|
88
|
+
IRegistry registry = IRegistry(registryAddress);
|
89
|
+
|
90
|
+
if(componentType == PRODUCT()) {
|
91
|
+
instanceNftId = parentNftId;
|
92
|
+
} else {
|
93
|
+
NftId productNftId = parentNftId;
|
94
|
+
instanceNftId = registry.getParentNftId(productNftId);
|
128
95
|
}
|
129
96
|
|
130
|
-
|
131
|
-
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
132
|
-
return registry.getParentNftId(parentNftId);
|
133
|
-
}
|
97
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(instanceNftId);
|
134
98
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
address registryAddress,
|
139
|
-
NftId objectNftId,
|
140
|
-
ObjectType requiredType
|
141
|
-
)
|
142
|
-
internal
|
143
|
-
view
|
144
|
-
returns (IRegistry registry)
|
145
|
-
{
|
146
|
-
registry = IRegistry(registryAddress);
|
147
|
-
IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
|
99
|
+
if (info.objectType != INSTANCE()) {
|
100
|
+
revert ErrorInstanceLinkedComponentInstanceInvalid();
|
101
|
+
}
|
148
102
|
|
149
|
-
if
|
150
|
-
revert
|
103
|
+
if(info.release != getRelease()) {
|
104
|
+
revert ErrorInstanceLinkedComponentInstanceMismatch(info.release, getRelease());
|
151
105
|
}
|
106
|
+
|
107
|
+
instance = IInstance(info.objectAddress);
|
152
108
|
}
|
153
109
|
|
154
110
|
|
@@ -180,13 +136,12 @@ abstract contract InstanceLinkedComponent is
|
|
180
136
|
|
181
137
|
/// @dev returns reader for linked instance
|
182
138
|
function _getInstanceReader() internal view returns (InstanceReader reader) {
|
183
|
-
return _getInstanceLinkedComponentStorage().
|
139
|
+
return _getInstanceLinkedComponentStorage()._instance.getInstanceReader();
|
184
140
|
}
|
185
141
|
|
186
|
-
function
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
142
|
+
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
143
|
+
assembly {
|
144
|
+
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
145
|
+
}
|
191
146
|
}
|
192
147
|
}
|
@@ -4,7 +4,6 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {InitializableERC165} from "./InitializableERC165.sol";
|
5
5
|
import {INftOwnable} from "./INftOwnable.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
8
7
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
9
8
|
|
10
9
|
contract NftOwnable is
|
@@ -35,20 +34,8 @@ contract NftOwnable is
|
|
35
34
|
_;
|
36
35
|
}
|
37
36
|
|
38
|
-
modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
|
39
|
-
_checkNftType(nftId, expectedObjectType);
|
40
|
-
_;
|
41
|
-
}
|
42
|
-
|
43
|
-
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
44
|
-
if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
|
45
|
-
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
37
|
/// @dev Initialization for upgradable contracts.
|
51
|
-
// used in __Registerable_init, ProxyManager.
|
38
|
+
// used in __Registerable_init, ProxyManager.initialize
|
52
39
|
function __NftOwnable_init(
|
53
40
|
address registry,
|
54
41
|
address initialOwner
|
@@ -23,7 +23,7 @@ contract PolicyHolder is
|
|
23
23
|
// callbacks must only be allowed from the policy and claim services
|
24
24
|
// will need a release parameter to fetch the right service addresses for the modifiers
|
25
25
|
|
26
|
-
function
|
26
|
+
function __PolicyHolder_init(
|
27
27
|
address registryAddress
|
28
28
|
)
|
29
29
|
internal
|
@@ -47,7 +47,7 @@ contract PolicyHolder is
|
|
47
47
|
/// @dev empty default implementation
|
48
48
|
function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
|
49
49
|
|
50
|
-
//---
|
50
|
+
//--- IERC721 functions ---------------//
|
51
51
|
function onERC721Received(
|
52
52
|
address, // operator
|
53
53
|
address, // from
|
@@ -9,15 +9,16 @@ import {ContractLib} from "../shared/ContractLib.sol";
|
|
9
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
10
10
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
11
11
|
import {ObjectType} from "../type/ObjectType.sol";
|
12
|
+
import {Versionable} from "../shared/Versionable.sol";
|
12
13
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
14
|
|
14
15
|
import {IRegistry} from "../registry/IRegistry.sol";
|
15
16
|
import {IRegisterable} from "./IRegisterable.sol";
|
16
|
-
import {IRelease} from "../registry/IRelease.sol";
|
17
17
|
|
18
18
|
abstract contract Registerable is
|
19
19
|
AccessManagedUpgradeable,
|
20
20
|
NftOwnable,
|
21
|
+
Versionable,
|
21
22
|
IRegisterable
|
22
23
|
{
|
23
24
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -37,6 +38,19 @@ abstract contract Registerable is
|
|
37
38
|
_;
|
38
39
|
}
|
39
40
|
|
41
|
+
// TODO move to registerables verification library
|
42
|
+
modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
|
43
|
+
_checkNftType(nftId, expectedObjectType);
|
44
|
+
_;
|
45
|
+
}
|
46
|
+
|
47
|
+
// TODO move to registerables verification library
|
48
|
+
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
49
|
+
if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType, getRelease())) {
|
50
|
+
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
40
54
|
function __Registerable_init(
|
41
55
|
address authority,
|
42
56
|
address registry,
|
@@ -44,7 +58,7 @@ abstract contract Registerable is
|
|
44
58
|
ObjectType objectType,
|
45
59
|
bool isInterceptor,
|
46
60
|
address initialOwner,
|
47
|
-
bytes memory data
|
61
|
+
bytes memory data
|
48
62
|
)
|
49
63
|
internal
|
50
64
|
virtual
|
@@ -54,14 +68,20 @@ abstract contract Registerable is
|
|
54
68
|
revert ErrorAuthorityInvalid(authority);
|
55
69
|
}
|
56
70
|
|
71
|
+
// release must allign with authority -> not a release check of third contract...
|
72
|
+
VersionPart release = AccessManagerCloneable(authority).getRelease();
|
73
|
+
|
57
74
|
__AccessManaged_init(authority);
|
58
75
|
__NftOwnable_init(registry, initialOwner);
|
76
|
+
__Versionable_init(release);
|
59
77
|
|
60
78
|
RegisterableStorage storage $ = _getRegisterableStorage();
|
61
79
|
$._parentNftId = parentNftId;
|
62
80
|
$._objectType = objectType;
|
63
81
|
$._isInterceptor = isInterceptor;
|
64
|
-
|
82
|
+
if(data.length > 0) {
|
83
|
+
$._data = data;
|
84
|
+
}
|
65
85
|
|
66
86
|
_registerInterface(type(IAccessManaged).interfaceId);
|
67
87
|
}
|
@@ -72,13 +92,6 @@ abstract contract Registerable is
|
|
72
92
|
return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
|
73
93
|
}
|
74
94
|
|
75
|
-
|
76
|
-
/// @inheritdoc IRelease
|
77
|
-
function getRelease() public virtual view returns (VersionPart release) {
|
78
|
-
return AccessManagerCloneable(authority()).getRelease();
|
79
|
-
}
|
80
|
-
|
81
|
-
|
82
95
|
/// @inheritdoc IRegisterable
|
83
96
|
function getInitialInfo()
|
84
97
|
public
|
@@ -87,14 +100,19 @@ abstract contract Registerable is
|
|
87
100
|
returns (IRegistry.ObjectInfo memory info)
|
88
101
|
{
|
89
102
|
RegisterableStorage storage $ = _getRegisterableStorage();
|
90
|
-
return
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
103
|
+
return (
|
104
|
+
IRegistry.ObjectInfo(
|
105
|
+
NftIdLib.zero(),
|
106
|
+
$._parentNftId,
|
107
|
+
$._objectType,
|
108
|
+
getRelease(),
|
109
|
+
$._isInterceptor,
|
110
|
+
address(this))
|
111
|
+
);
|
112
|
+
}
|
113
|
+
|
114
|
+
function getInitialData() public view virtual returns (bytes memory data) {
|
115
|
+
return _getRegisterableStorage()._data;
|
98
116
|
}
|
99
117
|
|
100
118
|
|
@@ -12,20 +12,27 @@ contract RegistryLinked is
|
|
12
12
|
IRegistryLinked
|
13
13
|
{
|
14
14
|
|
15
|
-
// priorize simplicity and size over using standard upgradeability structs
|
15
|
+
// priorize simplicity and size over using standard upgradeability structs
|
16
|
+
// registry address MUST NOT be upgraded
|
16
17
|
IRegistry private _registry;
|
17
18
|
|
18
19
|
/// @dev initialization for upgradable contracts
|
19
|
-
// used in
|
20
|
+
// used in RegistryAdmin / InstanceAdmin / ReleaseAdmin.completeSetup()
|
20
21
|
function __RegistryLinked_init(
|
21
22
|
address registry
|
22
23
|
)
|
23
24
|
internal
|
24
25
|
virtual
|
25
|
-
onlyInitializing()
|
26
26
|
{
|
27
|
+
if(address(_registry) != address(0) ) {
|
28
|
+
if(_registry != IRegistry(registry)) {
|
29
|
+
revert ErrorRegistryLinkedRegistryAlreadyInitialized(address(this), address(_registry));
|
30
|
+
}
|
31
|
+
return;
|
32
|
+
}
|
33
|
+
|
27
34
|
if (!ContractLib.isRegistry(registry)) {
|
28
|
-
revert
|
35
|
+
revert ErrorRegistryLinkedNotRegistry(address(this), registry);
|
29
36
|
}
|
30
37
|
|
31
38
|
_registry = IRegistry(registry);
|
@@ -5,18 +5,19 @@ 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 "../shared/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} from "../type/Version.sol";
|
13
|
-
import {Versionable} from "../
|
12
|
+
import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
|
13
|
+
import {Versionable} from "../shared/Versionable.sol";
|
14
|
+
import {Upgradeable} from "../upgradeability/Upgradeable.sol";
|
14
15
|
|
15
16
|
|
16
17
|
/// @dev service base contract
|
17
18
|
abstract contract Service is
|
18
|
-
Registerable,
|
19
|
-
|
19
|
+
Registerable,
|
20
|
+
Upgradeable,
|
20
21
|
ReentrancyGuardUpgradeable,
|
21
22
|
IService
|
22
23
|
{
|
@@ -10,6 +10,7 @@ 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";
|
13
14
|
|
14
15
|
|
15
16
|
/// @dev Token specific transfer helper base contract.
|
@@ -49,6 +50,7 @@ contract TokenHandlerBase {
|
|
49
50
|
IERC20Metadata public immutable TOKEN;
|
50
51
|
address public immutable COMPONENT;
|
51
52
|
NftId public immutable NFT_ID;
|
53
|
+
VersionPart public immutable RELEASE;
|
52
54
|
|
53
55
|
address internal _wallet;
|
54
56
|
|
@@ -69,6 +71,7 @@ contract TokenHandlerBase {
|
|
69
71
|
REGISTRY = IRegistry(registry);
|
70
72
|
COMPONENT = component;
|
71
73
|
NFT_ID = REGISTRY.getNftIdForAddress(component);
|
74
|
+
RELEASE = REGISTRY.getObjectRelease(NFT_ID);
|
72
75
|
|
73
76
|
if (NFT_ID.eqz()) {
|
74
77
|
revert ErrorTokenHandlerComponentNotRegistered(component);
|
@@ -254,7 +257,7 @@ contract TokenHandler is
|
|
254
257
|
error ErrorTokenHandlerNotService(address service);
|
255
258
|
|
256
259
|
modifier onlyService() {
|
257
|
-
if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
|
260
|
+
if (!REGISTRY.isObjectType(msg.sender, SERVICE(), RELEASE)) {
|
258
261
|
revert ErrorTokenHandlerNotService(msg.sender);
|
259
262
|
}
|
260
263
|
_;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "./IVersionable.sol";
|
5
|
+
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
6
|
+
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
7
|
+
|
8
|
+
|
9
|
+
abstract contract Versionable is
|
10
|
+
IVersionable
|
11
|
+
{
|
12
|
+
// TODO use arg of type Version
|
13
|
+
function __Versionable_init(
|
14
|
+
VersionPart release // wants to initialize to this release version
|
15
|
+
)
|
16
|
+
internal
|
17
|
+
view
|
18
|
+
virtual
|
19
|
+
{
|
20
|
+
VersionPart currentRelease = getRelease();
|
21
|
+
if (!currentRelease.isValidRelease()) {
|
22
|
+
revert ErrorVersionableReleaseInvalid(address(this), currentRelease);
|
23
|
+
}
|
24
|
+
|
25
|
+
//Version initializedVersion = VersionLib.toVersion(_getInitializedVersion());
|
26
|
+
//if(initializedVersion != getVersion()) {}
|
27
|
+
|
28
|
+
_checkRelease(release);
|
29
|
+
}
|
30
|
+
|
31
|
+
function getVersion() public pure virtual returns(Version)
|
32
|
+
{
|
33
|
+
return VersionLib.toVersion(GIF_INITIAL_RELEASE().toInt(), 0, 0);
|
34
|
+
}
|
35
|
+
|
36
|
+
function getRelease() public pure returns(VersionPart)
|
37
|
+
{
|
38
|
+
return getVersion().toMajorPart();
|
39
|
+
}
|
40
|
+
|
41
|
+
function _checkRelease(VersionPart release) internal view {
|
42
|
+
VersionPart currentRelease = getRelease();
|
43
|
+
if(currentRelease != release) {
|
44
|
+
revert ErrorVersionableReleaseMismatch(address(this), release, currentRelease);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
@@ -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 {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
|
8
8
|
|
9
9
|
import {Amount} from "../type/Amount.sol";
|
10
10
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
@@ -22,7 +22,7 @@ import {VersionPart} from "../type/Version.sol";
|
|
22
22
|
|
23
23
|
interface IStaking is
|
24
24
|
IComponent,
|
25
|
-
|
25
|
+
IUpgradeable
|
26
26
|
{
|
27
27
|
|
28
28
|
// owner functions
|
@@ -4,11 +4,10 @@ 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";
|
8
7
|
import {IStaking} from "./IStaking.sol";
|
9
8
|
import {IStakingService} from "./IStakingService.sol";
|
10
9
|
import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
|
11
|
-
import {IVersionable} from "../
|
10
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
12
11
|
|
13
12
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
13
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
@@ -16,7 +15,7 @@ import {ChainId, ChainIdLib} from "../type/ChainId.sol";
|
|
16
15
|
import {Component} from "../shared/Component.sol";
|
17
16
|
import {IComponent} from "../shared/IComponent.sol";
|
18
17
|
import {NftId} from "../type/NftId.sol";
|
19
|
-
import {ObjectType, PROTOCOL,
|
18
|
+
import {ObjectType, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
|
20
19
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
21
20
|
import {Registerable} from "../shared/Registerable.sol";
|
22
21
|
import {StakingLib} from "./StakingLib.sol";
|
@@ -28,12 +27,13 @@ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
|
28
27
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
29
28
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
30
29
|
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
31
|
-
import {Versionable} from "../
|
30
|
+
import {Versionable} from "../shared/Versionable.sol";
|
31
|
+
import {Upgradeable} from "../upgradeability/Upgradeable.sol";
|
32
32
|
|
33
33
|
|
34
34
|
contract Staking is
|
35
35
|
Component,
|
36
|
-
|
36
|
+
Upgradeable,
|
37
37
|
IStaking
|
38
38
|
{
|
39
39
|
string public constant CONTRACT_NAME = "Staking";
|
@@ -649,21 +649,11 @@ contract Staking is
|
|
649
649
|
return _getStakingStorage()._tokenHandler;
|
650
650
|
}
|
651
651
|
|
652
|
-
// from IRegisterable
|
653
|
-
function getRelease()
|
654
|
-
public
|
655
|
-
pure
|
656
|
-
virtual override (IRelease, Registerable)
|
657
|
-
returns(VersionPart)
|
658
|
-
{
|
659
|
-
return VersionPartLib.toVersionPart(3);
|
660
|
-
}
|
661
|
-
|
662
652
|
// from IVersionable
|
663
653
|
function getVersion()
|
664
654
|
public
|
665
655
|
pure
|
666
|
-
virtual override (
|
656
|
+
virtual override (IVersionable, Versionable)
|
667
657
|
returns(Version)
|
668
658
|
{
|
669
659
|
return VersionLib.toVersion(3,0,0);
|
@@ -747,7 +737,7 @@ contract Staking is
|
|
747
737
|
// initialize component
|
748
738
|
__Component_init(
|
749
739
|
registry.getAuthority(),
|
750
|
-
|
740
|
+
registryAddress,
|
751
741
|
registry.getNftId(), // parent nft id
|
752
742
|
CONTRACT_NAME,
|
753
743
|
STAKING(),
|
@@ -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 {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {Staking} from "./Staking.sol";
|
7
7
|
|
@@ -32,13 +32,13 @@ contract StakingManager is
|
|
32
32
|
stakingStore,
|
33
33
|
tokenRegistry);
|
34
34
|
|
35
|
-
|
35
|
+
IUpgradeable upgradeable = initialize(
|
36
36
|
registry,
|
37
37
|
_initialImplementation,
|
38
38
|
_initializationData,
|
39
39
|
salt);
|
40
40
|
|
41
|
-
_staking = Staking(address(
|
41
|
+
_staking = Staking(address(upgradeable));
|
42
42
|
}
|
43
43
|
|
44
44
|
//--- view functions ----------------------------------------------------//
|
@@ -3,7 +3,6 @@ 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";
|
7
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
7
|
import {IStaking} from "./IStaking.sol";
|
9
8
|
import {IStakingService} from "./IStakingService.sol";
|
@@ -158,11 +157,12 @@ contract StakingService is
|
|
158
157
|
nftId: NftIdLib.zero(),
|
159
158
|
parentNftId: targetNftId,
|
160
159
|
objectType: STAKE(),
|
160
|
+
release: getRelease(),
|
161
161
|
isInterceptor: false,
|
162
|
-
objectAddress: address(0),
|
163
|
-
|
164
|
-
|
165
|
-
|
162
|
+
objectAddress: address(0)}),
|
163
|
+
stakeOwner, // initialOwner
|
164
|
+
"" // data
|
165
|
+
);
|
166
166
|
|
167
167
|
emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
|
168
168
|
}
|
@@ -255,7 +255,7 @@ contract StakingService is
|
|
255
255
|
)
|
256
256
|
internal
|
257
257
|
virtual override
|
258
|
-
|
258
|
+
onlyInitializing()
|
259
259
|
{
|
260
260
|
(
|
261
261
|
address authority,
|
@@ -294,6 +294,9 @@ 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
|
+
|
297
300
|
// check that contract implements IStaking
|
298
301
|
if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
|
299
302
|
revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
|
@@ -301,7 +304,7 @@ contract StakingService is
|
|
301
304
|
|
302
305
|
address owner = msg.sender;
|
303
306
|
_getStakingServiceStorage()._registryService.registerStaking(
|
304
|
-
|
307
|
+
IStaking(stakingAddress),
|
305
308
|
owner);
|
306
309
|
|
307
310
|
return IStaking(stakingAddress);
|