@etherisc/gif-next 0.0.2-b312c9a-831 → 0.0.2-b37fa8b-169
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 +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +94 -50
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- 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 +157 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +298 -236
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +178 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +183 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +574 -282
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +494 -49
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +542 -109
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +965 -365
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +327 -64
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +907 -571
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -79
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +802 -1748
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +77 -49
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -358
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -150
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -133
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -85
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +187 -144
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +92 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -466
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- 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 +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +227 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -69
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- 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 +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
- 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 +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- 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 +60 -32
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
- 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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1468 -128
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1623 -254
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +132 -65
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- 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/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +94 -38
- 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 +33 -31
- 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 +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +18 -8
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +422 -258
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +20 -60
- package/contracts/distribution/DistributionService.sol +172 -81
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +10 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +112 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +103 -18
- package/contracts/instance/IInstanceService.sol +55 -6
- package/contracts/instance/Instance.sol +176 -64
- package/contracts/instance/InstanceAdmin.sol +263 -169
- package/contracts/instance/InstanceAuthorizationV3.sol +119 -64
- package/contracts/instance/InstanceReader.sol +420 -369
- package/contracts/instance/InstanceService.sol +306 -183
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +10 -72
- package/contracts/instance/ProductStore.sol +235 -0
- package/contracts/instance/RiskSet.sol +21 -14
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -7
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +3 -5
- package/contracts/oracle/OracleService.sol +24 -23
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +3 -16
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +60 -99
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +13 -25
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +88 -20
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +3 -3
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +221 -209
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +113 -204
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +93 -27
- package/contracts/product/RiskService.sol +121 -38
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +23 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +22 -11
- package/contracts/registry/RegistryAdmin.sol +107 -373
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +157 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +163 -28
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +23 -28
- package/contracts/shared/ComponentService.sol +317 -317
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +164 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/IKeyValueStore.sol +9 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -9
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +266 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +494 -211
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -181
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +62 -41
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -7
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -17,7 +17,7 @@ contract ComponentServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ComponentService svc = new ComponentService();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -2,12 +2,17 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
7
|
|
6
|
-
// import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
7
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
8
8
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
import {IService} from "../shared/IService.sol";
|
11
|
+
|
12
|
+
import {ChainId} from "../type/ChainId.sol";
|
9
13
|
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL
|
14
|
+
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
|
15
|
+
import {VersionPart} from "../type/Version.sol";
|
11
16
|
|
12
17
|
interface ITargetHelper {
|
13
18
|
function isTargetLocked(address target) external view returns (bool);
|
@@ -17,43 +22,20 @@ interface IInstanceAdminHelper {
|
|
17
22
|
function getInstanceAdmin() external view returns (ITargetHelper);
|
18
23
|
}
|
19
24
|
|
25
|
+
interface ITokenRegistryHelper {
|
26
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool);
|
27
|
+
}
|
28
|
+
|
20
29
|
library ContractLib {
|
21
30
|
|
22
|
-
error
|
23
|
-
error
|
24
|
-
error
|
31
|
+
error ErrorContractLibCallerNotRegistered(address target);
|
32
|
+
error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
|
33
|
+
error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
|
34
|
+
error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
|
25
35
|
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
26
36
|
error ErrorContractLibComponentInactive(NftId componentNftId);
|
27
37
|
|
28
38
|
|
29
|
-
function getAndVerifyComponent(
|
30
|
-
IRegistry registry,
|
31
|
-
address target,
|
32
|
-
ObjectType expectedType,
|
33
|
-
bool onlyActive
|
34
|
-
)
|
35
|
-
external
|
36
|
-
view
|
37
|
-
returns (
|
38
|
-
IRegistry.ObjectInfo memory info,
|
39
|
-
address instance
|
40
|
-
)
|
41
|
-
{
|
42
|
-
// check target is component
|
43
|
-
info = _getObjectInfo(registry, target);
|
44
|
-
if(info.objectType != expectedType) {
|
45
|
-
revert ErrorContractLibComponentTypeMismatch(
|
46
|
-
info.nftId,
|
47
|
-
expectedType,
|
48
|
-
info.objectType);
|
49
|
-
}
|
50
|
-
|
51
|
-
// get instance and check component is active
|
52
|
-
instance = _getInstance(registry, info);
|
53
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
39
|
function getInfoAndInstance(
|
58
40
|
IRegistry registry,
|
59
41
|
NftId componentNftId,
|
@@ -67,34 +49,42 @@ library ContractLib {
|
|
67
49
|
)
|
68
50
|
{
|
69
51
|
info = registry.getObjectInfo(componentNftId);
|
70
|
-
|
71
|
-
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
52
|
+
return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
|
72
53
|
}
|
73
54
|
|
74
55
|
|
75
|
-
function
|
56
|
+
function getAndVerifyAnyComponent(
|
76
57
|
IRegistry registry,
|
77
|
-
address
|
58
|
+
address caller,
|
59
|
+
bool onlyActive
|
78
60
|
)
|
79
61
|
external
|
80
62
|
view
|
81
63
|
returns (
|
82
|
-
IRegistry.ObjectInfo memory
|
64
|
+
IRegistry.ObjectInfo memory callerInfo,
|
65
|
+
address instance
|
83
66
|
)
|
84
67
|
{
|
85
|
-
// check
|
86
|
-
|
87
|
-
if(
|
88
|
-
|
89
|
-
|
90
|
-
|
68
|
+
// check caller is component
|
69
|
+
callerInfo = _getAndVerifyObjectInfo(registry, caller);
|
70
|
+
if(!(callerInfo.objectType == PRODUCT()
|
71
|
+
|| callerInfo.objectType == POOL()
|
72
|
+
|| callerInfo.objectType == DISTRIBUTION()
|
73
|
+
|| callerInfo.objectType == ORACLE())
|
74
|
+
) {
|
75
|
+
revert ErrorContractLibCallerNotComponent(
|
76
|
+
callerInfo.nftId,
|
77
|
+
callerInfo.objectType);
|
91
78
|
}
|
79
|
+
|
80
|
+
return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
|
92
81
|
}
|
93
82
|
|
94
83
|
|
95
|
-
function
|
84
|
+
function getAndVerifyComponent(
|
96
85
|
IRegistry registry,
|
97
|
-
address
|
86
|
+
address caller,
|
87
|
+
ObjectType expectedType,
|
98
88
|
bool onlyActive
|
99
89
|
)
|
100
90
|
external
|
@@ -104,21 +94,8 @@ library ContractLib {
|
|
104
94
|
address instance
|
105
95
|
)
|
106
96
|
{
|
107
|
-
|
108
|
-
|
109
|
-
if(!(info.objectType == PRODUCT()
|
110
|
-
|| info.objectType == POOL()
|
111
|
-
|| info.objectType == DISTRIBUTION()
|
112
|
-
|| info.objectType == ORACLE())
|
113
|
-
) {
|
114
|
-
revert ErrorContractLibNotComponent(
|
115
|
-
info.nftId,
|
116
|
-
info.objectType);
|
117
|
-
}
|
118
|
-
|
119
|
-
// get instance and check component is active
|
120
|
-
instance = _getInstance(registry, info);
|
121
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
97
|
+
info = _getAndVerifyObjectInfo(registry, caller);
|
98
|
+
return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
|
122
99
|
}
|
123
100
|
|
124
101
|
|
@@ -130,17 +107,78 @@ library ContractLib {
|
|
130
107
|
view
|
131
108
|
returns (address instance)
|
132
109
|
{
|
133
|
-
NftId productNftId = registry.
|
134
|
-
NftId instanceNftId = registry.
|
110
|
+
NftId productNftId = registry.getParentNftId(componentNftId);
|
111
|
+
NftId instanceNftId = registry.getParentNftId(productNftId);
|
135
112
|
return registry.getObjectInfo(instanceNftId).objectAddress;
|
136
113
|
}
|
137
114
|
|
138
115
|
|
116
|
+
function isActiveToken(
|
117
|
+
address tokenRegistryAddress,
|
118
|
+
ChainId chainId,
|
119
|
+
address token,
|
120
|
+
VersionPart release
|
121
|
+
)
|
122
|
+
external
|
123
|
+
view
|
124
|
+
returns (bool)
|
125
|
+
{
|
126
|
+
return ITokenRegistryHelper(
|
127
|
+
tokenRegistryAddress).isActive(
|
128
|
+
chainId, token, release);
|
129
|
+
}
|
130
|
+
|
131
|
+
|
139
132
|
function isPolicyHolder(address target) external view returns (bool) {
|
140
133
|
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
141
134
|
}
|
142
135
|
|
143
136
|
|
137
|
+
function isAuthority(address authority) public view returns (bool) {
|
138
|
+
if (!isContract(authority)) {
|
139
|
+
return false;
|
140
|
+
}
|
141
|
+
|
142
|
+
return supportsInterface(authority, type(IAccessManager).interfaceId);
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
function isAccessManaged(address target)
|
147
|
+
public
|
148
|
+
view
|
149
|
+
returns (bool)
|
150
|
+
{
|
151
|
+
if (!isContract(target)) {
|
152
|
+
return false;
|
153
|
+
}
|
154
|
+
|
155
|
+
(bool success, ) = target.staticcall(
|
156
|
+
abi.encodeWithSelector(
|
157
|
+
IAccessManaged.authority.selector));
|
158
|
+
|
159
|
+
return success;
|
160
|
+
}
|
161
|
+
|
162
|
+
|
163
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
164
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
165
|
+
if (nftId.eqz()) {
|
166
|
+
return false;
|
167
|
+
}
|
168
|
+
|
169
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
function isService(address service) public view returns (bool) {
|
174
|
+
if (!isContract(service)) {
|
175
|
+
return false;
|
176
|
+
}
|
177
|
+
|
178
|
+
return supportsInterface(service, type(IService).interfaceId);
|
179
|
+
}
|
180
|
+
|
181
|
+
|
144
182
|
function isRegistry(address registry) public view returns (bool) {
|
145
183
|
if (!isContract(registry)) {
|
146
184
|
return false;
|
@@ -167,6 +205,37 @@ library ContractLib {
|
|
167
205
|
}
|
168
206
|
|
169
207
|
|
208
|
+
function _getAndVerifyComponentAndInstance(
|
209
|
+
IRegistry registry,
|
210
|
+
IRegistry.ObjectInfo memory info,
|
211
|
+
ObjectType expectedType,
|
212
|
+
bool onlyActive
|
213
|
+
)
|
214
|
+
internal
|
215
|
+
view
|
216
|
+
returns (
|
217
|
+
IRegistry.ObjectInfo memory,
|
218
|
+
address instance
|
219
|
+
)
|
220
|
+
{
|
221
|
+
if(info.objectType != expectedType) {
|
222
|
+
revert ErrorContractLibComponentTypeMismatch(
|
223
|
+
info.nftId,
|
224
|
+
expectedType,
|
225
|
+
info.objectType);
|
226
|
+
}
|
227
|
+
|
228
|
+
// get instance and check component is active
|
229
|
+
instance = getAndVerifyInstance(registry, info);
|
230
|
+
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
231
|
+
|
232
|
+
return (
|
233
|
+
info,
|
234
|
+
instance
|
235
|
+
);
|
236
|
+
}
|
237
|
+
|
238
|
+
|
170
239
|
function _checkComponentActive(
|
171
240
|
address instance,
|
172
241
|
address target,
|
@@ -187,36 +256,55 @@ library ContractLib {
|
|
187
256
|
}
|
188
257
|
|
189
258
|
|
190
|
-
function
|
259
|
+
/// @dev Given an object info the function returns the instance address.
|
260
|
+
/// The info may represent a product or any other component.
|
261
|
+
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
262
|
+
function getAndVerifyInstance(
|
191
263
|
IRegistry registry,
|
192
264
|
IRegistry.ObjectInfo memory info
|
193
265
|
)
|
194
|
-
|
266
|
+
public
|
195
267
|
view
|
196
268
|
returns (address instance)
|
197
269
|
{
|
270
|
+
// get instance for product case
|
198
271
|
if (info.objectType == PRODUCT()) {
|
199
|
-
|
272
|
+
// verify that parent of product is registered instance
|
273
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
|
274
|
+
if (instanceInfo.objectType != INSTANCE()) {
|
275
|
+
revert ErrorContractLibParentNotInstance(
|
276
|
+
info.nftId,
|
277
|
+
info.parentNftId);
|
278
|
+
}
|
279
|
+
|
280
|
+
// we have verified that parent object is a registerd instance -> we return the instance address
|
281
|
+
return instanceInfo.objectAddress;
|
282
|
+
}
|
283
|
+
|
284
|
+
// not product: verify parent is registered product
|
285
|
+
info = registry.getObjectInfo(info.parentNftId);
|
286
|
+
if (info.objectType != PRODUCT()) {
|
287
|
+
revert ErrorContractLibParentNotProduct(
|
288
|
+
info.nftId,
|
200
289
|
info.parentNftId);
|
201
|
-
}
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
info.parentNftId).parentNftId);
|
290
|
+
}
|
291
|
+
|
292
|
+
// we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
|
293
|
+
return registry.getObjectAddress(info.parentNftId);
|
206
294
|
}
|
207
295
|
|
208
296
|
|
209
|
-
function
|
297
|
+
function _getAndVerifyObjectInfo(
|
210
298
|
IRegistry registry,
|
211
|
-
address
|
299
|
+
address caller
|
212
300
|
)
|
213
301
|
internal
|
214
302
|
view
|
215
303
|
returns (IRegistry.ObjectInfo memory info)
|
216
304
|
{
|
217
|
-
NftId componentNftId = registry.getNftIdForAddress(
|
305
|
+
NftId componentNftId = registry.getNftIdForAddress(caller);
|
218
306
|
if (componentNftId.eqz()) {
|
219
|
-
revert
|
307
|
+
revert ErrorContractLibCallerNotRegistered(caller);
|
220
308
|
}
|
221
309
|
|
222
310
|
info = registry.getObjectInfo(componentNftId);
|
@@ -1,7 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
5
|
|
7
6
|
import {Amount} from "../type/Amount.sol";
|
@@ -13,7 +12,6 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
13
12
|
/// @dev component base class
|
14
13
|
/// component examples are staking, product, distribution, pool and oracle
|
15
14
|
interface IComponent is
|
16
|
-
IAccessManaged,
|
17
15
|
IRegisterable,
|
18
16
|
ITransferInterceptor
|
19
17
|
{
|
@@ -23,8 +21,6 @@ interface IComponent is
|
|
23
21
|
|
24
22
|
error ErrorComponentNotChainNft(address caller);
|
25
23
|
|
26
|
-
error ErrorComponentTokenAddressNonzero();
|
27
|
-
error ErrorComponentTokenAddressZero();
|
28
24
|
error ErrorComponentWalletAddressZero();
|
29
25
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
30
26
|
error ErrorComponentWalletNotComponent();
|
@@ -44,7 +40,7 @@ interface IComponent is
|
|
44
40
|
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
45
41
|
|
46
42
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
47
|
-
/// the default address is the
|
43
|
+
/// the default address is the token handler address
|
48
44
|
function getWallet() external view returns (address walletAddress);
|
49
45
|
|
50
46
|
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
@@ -16,20 +16,20 @@ import {VersionPart} from "../type/Version.sol";
|
|
16
16
|
interface IComponentService is
|
17
17
|
IService
|
18
18
|
{
|
19
|
-
|
20
|
-
error
|
19
|
+
// registerProduct
|
20
|
+
error ErrorComponentServiceCallerNotInstance(address caller);
|
21
|
+
error ErrorComponentServiceNotProduct(address product);
|
22
|
+
error ErrorComponentServiceTokenInvalid(address token);
|
23
|
+
|
24
|
+
// registerComponent
|
25
|
+
error ErrorComponentServiceCallerNotProduct(address caller);
|
21
26
|
error ErrorComponentServiceNotComponent(address component);
|
22
|
-
|
23
|
-
error
|
24
|
-
error
|
25
|
-
error
|
26
|
-
error
|
27
|
-
error
|
28
|
-
error ErrorComponentServiceParentNotProduct(NftId nftId, ObjectType objectType);
|
29
|
-
|
30
|
-
error ErrorComponentServiceNotRegistered(address instanceAddress);
|
31
|
-
error ErrorComponentServiceNotInstance(address instanceAddress, ObjectType objectType);
|
32
|
-
error ErrorComponentServiceInstanceVersionMismatch(address instanceAddress, VersionPart instanceVersion);
|
27
|
+
|
28
|
+
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
29
|
+
error ErrorComponentServiceComponentTypeNotSupported(address component, ObjectType invalid);
|
30
|
+
error ErrorComponentServiceComponentParentInvalid(address component, NftId required, NftId actual);
|
31
|
+
error ErrorComponentServiceComponentReleaseMismatch(address component, VersionPart serviceRelease, VersionPart componentRelease);
|
32
|
+
error ErrorComponentServiceComponentAlreadyRegistered(address component);
|
33
33
|
|
34
34
|
error ErrorProductServiceNoDistributionExpected(NftId productNftId);
|
35
35
|
error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
|
@@ -45,6 +45,7 @@ interface IComponentService is
|
|
45
45
|
error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
|
46
46
|
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
47
47
|
|
48
|
+
event LogComponentServiceComponentLocked(address component, bool locked);
|
48
49
|
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
49
50
|
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
50
51
|
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
@@ -56,9 +57,9 @@ interface IComponentService is
|
|
56
57
|
NftId nftId,
|
57
58
|
string feeName,
|
58
59
|
UFixed previousFractionalFee,
|
59
|
-
|
60
|
+
Amount previousFixedFee,
|
60
61
|
UFixed newFractionalFee,
|
61
|
-
|
62
|
+
Amount newFixedFee
|
62
63
|
);
|
63
64
|
|
64
65
|
//-------- component ----------------------------------------------------//
|
@@ -67,18 +68,12 @@ interface IComponentService is
|
|
67
68
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
69
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
70
|
|
70
|
-
/// @dev
|
71
|
-
///
|
72
|
-
function approveStakingTokenHandler(IERC20Metadata token, Amount amount) external;
|
73
|
-
|
74
|
-
/// @dev Sets the components associated wallet address
|
71
|
+
/// @dev Sets the components associated wallet address.
|
72
|
+
/// To set the wallet to the token handler contract, use address(0) as the new wallet adress.
|
75
73
|
function setWallet(address newWallet) external;
|
76
74
|
|
77
|
-
/// @dev Locks/Unlocks the
|
78
|
-
function
|
79
|
-
|
80
|
-
/// @dev Locks/Unlocks the given component - call from component
|
81
|
-
function setLockedFromComponent(address componentAddress, bool locked) external;
|
75
|
+
/// @dev Locks/Unlocks the calling component.
|
76
|
+
function setLocked(bool locked) external;
|
82
77
|
|
83
78
|
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
84
79
|
/// @param withdrawAmount the amount to withdraw
|
@@ -91,7 +86,7 @@ interface IComponentService is
|
|
91
86
|
//-------- product ------------------------------------------------------//
|
92
87
|
|
93
88
|
/// @dev Registers the specified product component for the instance (sender)
|
94
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
89
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
95
90
|
|
96
91
|
function setProductFees(
|
97
92
|
Fee memory productFee, // product fee on net premium
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber
|
4
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
5
5
|
import {Key32, KeyId} from "../type/Key32.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -18,6 +18,7 @@ interface IKeyValueStore is ILifecycle {
|
|
18
18
|
error ErrorKeyValueStoreNotExisting(Key32 key);
|
19
19
|
|
20
20
|
event LogInfoCreated(ObjectType objectType, KeyId keyId, StateId state, address createdBy, address txOrigin);
|
21
|
+
event LogKeyValueStoreMetadataCreated(ObjectType objectType, KeyId keyId, StateId state, address createdBy, address txOrigin);
|
21
22
|
event LogInfoUpdated(ObjectType objectType, KeyId keyId, StateId state, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
22
23
|
event LogStateUpdated(ObjectType objectType, KeyId keyId, StateId stateOld, StateId stateNew, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
23
24
|
|
@@ -38,6 +39,13 @@ interface IKeyValueStore is ILifecycle {
|
|
38
39
|
Blocknumber createdIn;
|
39
40
|
}
|
40
41
|
|
42
|
+
struct Metadata2 {
|
43
|
+
// slot 0
|
44
|
+
ObjectType objectType;
|
45
|
+
StateId state;
|
46
|
+
Blocknumber updatedIn;
|
47
|
+
}
|
48
|
+
|
41
49
|
// generic state changing functions
|
42
50
|
// function create(Key32 key, bytes memory data) external;
|
43
51
|
// function update(Key32 key, bytes memory data, StateId state) external;
|
@@ -11,6 +11,8 @@ interface INftOwnable is
|
|
11
11
|
IERC165,
|
12
12
|
IRegistryLinked
|
13
13
|
{
|
14
|
+
event LogNftOwnableNftLinkedToAddress(NftId nftId, address owner);
|
15
|
+
|
14
16
|
error ErrorNftOwnableInitialOwnerZero();
|
15
17
|
error ErrorNftOwnableNotOwner(address account);
|
16
18
|
error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
|
@@ -1,19 +1,29 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
|
4
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
5
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {VersionPart} from "../type/Version.sol";
|
7
9
|
|
8
10
|
/// @title IRegisterable
|
9
11
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
10
12
|
///
|
11
13
|
interface IRegisterable is
|
12
|
-
|
14
|
+
IAccessManaged,
|
15
|
+
INftOwnable,
|
16
|
+
IRelease
|
13
17
|
{
|
14
|
-
|
15
|
-
|
16
|
-
|
18
|
+
// __Registerable_init
|
19
|
+
error ErrorAuthorityInvalid(address authority);
|
20
|
+
|
21
|
+
// onlyActive()
|
22
|
+
error ErrorRegisterableNotActive();
|
23
|
+
|
24
|
+
/// @dev Returns true iff this contract managed by its authority is active.
|
25
|
+
/// Queries the IAccessManaged.authority().
|
26
|
+
function isActive() external view returns (bool active);
|
17
27
|
|
18
28
|
/// @dev retuns the object info relevant for registering for this contract
|
19
29
|
/// IMPORTANT information returned by this function may only be used
|
@@ -9,17 +9,15 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
10
10
|
|
11
11
|
interface IService is
|
12
|
+
IAccessManaged,
|
12
13
|
IRegisterable,
|
13
|
-
IVersionable
|
14
|
-
IAccessManaged
|
14
|
+
IVersionable
|
15
15
|
{
|
16
|
-
error ErrorServiceNotImplemented();
|
17
|
-
|
18
16
|
/// @dev returns the domain for this service.
|
19
17
|
/// In any GIF release only one service for any given domain may be deployed.
|
20
18
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
21
19
|
|
22
20
|
/// @dev returns the GIF release specific role id.
|
23
21
|
/// These role ids are used to authorize service to service communication.
|
24
|
-
function getRoleId() external
|
22
|
+
function getRoleId() external view returns(RoleId serviceRoleId);
|
25
23
|
}
|
@@ -11,13 +11,21 @@ contract InitializableERC165 is
|
|
11
11
|
mapping(bytes4 => bool) private _isSupported;
|
12
12
|
|
13
13
|
// @dev initializes with support for ERC165
|
14
|
-
function
|
14
|
+
function __ERC165_init() internal onlyInitializing() {
|
15
|
+
_initializeERC165();
|
16
|
+
}
|
17
|
+
|
18
|
+
function _initializeERC165() internal {
|
15
19
|
_isSupported[type(IERC165).interfaceId] = true;
|
16
20
|
}
|
17
21
|
|
18
22
|
// @dev register support for provided interfaceId
|
19
23
|
// includes initialization for ERC165_ID if not yet done
|
20
24
|
function _registerInterface(bytes4 interfaceId) internal onlyInitializing() {
|
25
|
+
_registerInterfaceNotInitializing(interfaceId);
|
26
|
+
}
|
27
|
+
|
28
|
+
function _registerInterfaceNotInitializing(bytes4 interfaceId) internal{
|
21
29
|
_isSupported[interfaceId] = true;
|
22
30
|
}
|
23
31
|
|
@@ -20,7 +20,7 @@ import {NftId} from "../type/NftId.sol";
|
|
20
20
|
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
21
|
import {VersionPart} from "../type/Version.sol";
|
22
22
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../
|
23
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
24
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
25
|
import {VersionPart} from "../type/Version.sol";
|
26
26
|
|
@@ -52,12 +52,12 @@ abstract contract InstanceLinkedComponent is
|
|
52
52
|
}
|
53
53
|
|
54
54
|
/// @inheritdoc IInstanceLinkedComponent
|
55
|
-
function getInstance() public view override returns (IInstance instance) {
|
55
|
+
function getInstance() public view virtual override returns (IInstance instance) {
|
56
56
|
return _getInstanceLinkedComponentStorage()._instance;
|
57
57
|
}
|
58
58
|
|
59
59
|
/// @inheritdoc IInstanceLinkedComponent
|
60
|
-
function getAuthorization() external view returns (IAuthorization authorization) {
|
60
|
+
function getAuthorization() external view virtual returns (IAuthorization authorization) {
|
61
61
|
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
62
|
}
|
63
63
|
|
@@ -67,11 +67,10 @@ abstract contract InstanceLinkedComponent is
|
|
67
67
|
}
|
68
68
|
}
|
69
69
|
|
70
|
-
function
|
70
|
+
function __InstanceLinkedComponent_init(
|
71
71
|
address registry,
|
72
72
|
NftId parentNftId,
|
73
73
|
string memory name,
|
74
|
-
address token,
|
75
74
|
ObjectType componentType,
|
76
75
|
IAuthorization authorization,
|
77
76
|
bool isInterceptor,
|
@@ -94,12 +93,11 @@ abstract contract InstanceLinkedComponent is
|
|
94
93
|
IRegistry(registry).getObjectAddress(instanceNftId));
|
95
94
|
|
96
95
|
// set component specific parameters
|
97
|
-
|
96
|
+
__Component_init(
|
98
97
|
$._instance.authority(), // instance linked components need to point to instance admin
|
99
98
|
registry,
|
100
99
|
parentNftId,
|
101
100
|
name,
|
102
|
-
token,
|
103
101
|
componentType,
|
104
102
|
isInterceptor,
|
105
103
|
initialOwner,
|
@@ -112,7 +110,6 @@ abstract contract InstanceLinkedComponent is
|
|
112
110
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
113
111
|
|
114
112
|
// register interfaces
|
115
|
-
_registerInterface(type(IAccessManaged).interfaceId);
|
116
113
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
117
114
|
}
|
118
115
|
|
@@ -134,7 +131,7 @@ abstract contract InstanceLinkedComponent is
|
|
134
131
|
|
135
132
|
// if not product parent is product, and parent of product is instance
|
136
133
|
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
137
|
-
return registry.
|
134
|
+
return registry.getParentNftId(parentNftId);
|
138
135
|
}
|
139
136
|
|
140
137
|
/// @dev checks the and gets registry.
|