@etherisc/gif-next 0.0.2-f1f3b2c-994 → 0.0.2-f2273b3-211
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +163 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
- 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 +94 -14
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +8 -8
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +275 -171
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +111 -65
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +148 -72
- 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 +158 -195
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +336 -295
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
- 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 +215 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +717 -292
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +386 -117
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +590 -204
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +445 -375
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- 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 +3 -3
- 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 +132 -173
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- 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 +94 -106
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +130 -54
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +71 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +181 -116
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +224 -182
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +112 -63
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- 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 +98 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +277 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +3 -3
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +337 -65
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +12 -12
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -104
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- 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 +92 -86
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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 +16 -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 +148 -0
- 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 +55 -2
- 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 +107 -124
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.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 +18 -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 +152 -38
- 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 +55 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +113 -136
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -49
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +203 -206
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +3 -3
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +93 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +181 -55
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +77 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +130 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- 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 +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- 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 +3 -3
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- 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 +2 -2
- 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 +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- 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/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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- 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 +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +216 -125
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -205
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +14 -8
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +15 -12
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +41 -47
- package/contracts/distribution/DistributionService.sol +100 -78
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +19 -19
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +40 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +17 -10
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +52 -34
- package/contracts/instance/InstanceAdmin.sol +249 -100
- package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
- package/contracts/instance/InstanceReader.sol +174 -32
- package/contracts/instance/InstanceService.sol +85 -146
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +10 -7
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +107 -78
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +88 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -64
- package/contracts/pool/Pool.sol +112 -120
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +436 -242
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +24 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +202 -151
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +10 -1
- package/contracts/product/PolicyService.sol +248 -252
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -26
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -60
- package/contracts/product/RiskService.sol +74 -25
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +14 -15
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +40 -58
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +139 -124
- package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +69 -118
- package/contracts/shared/ComponentService.sol +422 -371
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +8 -20
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +68 -42
- package/contracts/shared/Lifecycle.sol +7 -7
- package/contracts/shared/NftOwnable.sol +26 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +53 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +274 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +6 -10
- package/contracts/staking/IStakingService.sol +12 -4
- package/contracts/staking/StakeManagerLib.sol +69 -20
- package/contracts/staking/Staking.sol +73 -41
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +70 -24
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- 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/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
| @@ -4,25 +4,26 @@ pragma solidity ^0.8.20; | |
| 4 4 | 
             
            import {IInstance} from "../instance/IInstance.sol";
         | 
| 5 5 | 
             
            import {IInstanceService} from "../instance/IInstanceService.sol";
         | 
| 6 6 | 
             
            import {IPoolService} from "../pool/PoolService.sol";
         | 
| 7 | 
            -
            import { | 
| 7 | 
            +
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 8 8 | 
             
            import {IRegistryService} from "../registry/IRegistryService.sol";
         | 
| 9 9 | 
             
            import {IRisk} from "../instance/module/IRisk.sol";
         | 
| 10 | 
            +
            import {IRiskService} from "./IRiskService.sol";
         | 
| 10 11 |  | 
| 12 | 
            +
            import {ContractLib} from "../shared/ContractLib.sol";
         | 
| 11 13 | 
             
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 12 | 
            -
            import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
         | 
| 13 | 
            -
            import {KEEP_STATE} from "../type/StateId.sol";
         | 
| 14 | 
            +
            import {ObjectType, COMPONENT, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY, RISK} from "../type/ObjectType.sol";
         | 
| 15 | 
            +
            import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
         | 
| 14 16 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 15 17 | 
             
            import {RiskId} from "../type/RiskId.sol";
         | 
| 16 18 | 
             
            import {StateId} from "../type/StateId.sol";
         | 
| 17 | 
            -
            import { | 
| 19 | 
            +
            import {RiskSet} from "../instance/RiskSet.sol";
         | 
| 20 | 
            +
            import {Service} from "../shared/Service.sol";
         | 
| 21 | 
            +
            import {TimestampLib} from "../type/Timestamp.sol";
         | 
| 18 22 |  | 
| 19 23 | 
             
            contract RiskService is
         | 
| 20 | 
            -
                 | 
| 24 | 
            +
                Service,
         | 
| 21 25 | 
             
                IRiskService 
         | 
| 22 26 | 
             
            {
         | 
| 23 | 
            -
                IInstanceService private _instanceService;
         | 
| 24 | 
            -
                IPoolService internal _poolService;
         | 
| 25 | 
            -
                IRegistryService private _registryService;
         | 
| 26 27 |  | 
| 27 28 | 
             
                function _initialize(
         | 
| 28 29 | 
             
                    address owner, 
         | 
| @@ -33,16 +34,11 @@ contract RiskService is | |
| 33 34 | 
             
                    virtual override
         | 
| 34 35 | 
             
                {
         | 
| 35 36 | 
             
                    (
         | 
| 36 | 
            -
                        address  | 
| 37 | 
            -
                        address  | 
| 37 | 
            +
                        address authority,
         | 
| 38 | 
            +
                        address registry
         | 
| 38 39 | 
             
                    ) = abi.decode(data, (address, address));
         | 
| 39 40 |  | 
| 40 | 
            -
                     | 
| 41 | 
            -
             | 
| 42 | 
            -
                    _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
         | 
| 43 | 
            -
                    _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
         | 
| 44 | 
            -
                    _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
         | 
| 45 | 
            -
             | 
| 41 | 
            +
                    __Service_init(authority, registry, owner);
         | 
| 46 42 | 
             
                    _registerInterface(type(IRiskService).interfaceId);
         | 
| 47 43 | 
             
                }
         | 
| 48 44 |  | 
| @@ -52,15 +48,25 @@ contract RiskService is | |
| 52 48 | 
             
                    bytes memory data
         | 
| 53 49 | 
             
                )
         | 
| 54 50 | 
             
                    external 
         | 
| 55 | 
            -
                     | 
| 51 | 
            +
                    restricted()
         | 
| 56 52 | 
             
                {
         | 
| 57 | 
            -
                     | 
| 58 | 
            -
                     | 
| 53 | 
            +
                    // checks
         | 
| 54 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                    // effects
         | 
| 57 | 
            +
                    IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
         | 
| 58 | 
            +
                        productNftId: productNftId, 
         | 
| 59 | 
            +
                        createdAt: TimestampLib.blockTimestamp(),
         | 
| 60 | 
            +
                        data: data});
         | 
| 59 61 |  | 
| 60 62 | 
             
                    instance.getInstanceStore().createRisk(
         | 
| 61 63 | 
             
                        riskId,
         | 
| 62 64 | 
             
                        riskInfo
         | 
| 63 65 | 
             
                    );
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    // add risk to RiskSet
         | 
| 68 | 
            +
                    RiskSet riskSet = instance.getRiskSet();
         | 
| 69 | 
            +
                    riskSet.add(riskId);
         | 
| 64 70 | 
             
                }
         | 
| 65 71 |  | 
| 66 72 |  | 
| @@ -68,11 +74,14 @@ contract RiskService is | |
| 68 74 | 
             
                    RiskId riskId,
         | 
| 69 75 | 
             
                    bytes memory data
         | 
| 70 76 | 
             
                )
         | 
| 71 | 
            -
                    external
         | 
| 77 | 
            +
                    external 
         | 
| 78 | 
            +
                    restricted()
         | 
| 72 79 | 
             
                {
         | 
| 73 | 
            -
                     | 
| 74 | 
            -
                     | 
| 80 | 
            +
                    // checks
         | 
| 81 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 75 82 |  | 
| 83 | 
            +
                    // effects
         | 
| 84 | 
            +
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| 76 85 | 
             
                    IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
         | 
| 77 86 | 
             
                    riskInfo.data = data;
         | 
| 78 87 | 
             
                    instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
         | 
| @@ -83,14 +92,54 @@ contract RiskService is | |
| 83 92 | 
             
                    RiskId riskId,
         | 
| 84 93 | 
             
                    StateId state
         | 
| 85 94 | 
             
                )
         | 
| 86 | 
            -
                    external
         | 
| 95 | 
            +
                    external 
         | 
| 96 | 
            +
                    restricted()
         | 
| 87 97 | 
             
                {
         | 
| 88 | 
            -
                     | 
| 98 | 
            +
                    // checks
         | 
| 99 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 100 | 
            +
             | 
| 101 | 
            +
                    // effects
         | 
| 89 102 | 
             
                    instance.getInstanceStore().updateRiskState(riskId, state);
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                    if (state == ACTIVE()) {
         | 
| 105 | 
            +
                        instance.getRiskSet().activate(riskId);
         | 
| 106 | 
            +
                    } else if (state == PAUSED()) {
         | 
| 107 | 
            +
                        instance.getRiskSet().pause(riskId);
         | 
| 108 | 
            +
                    }
         | 
| 109 | 
            +
                }
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                function _getAndVerifyActiveComponent(ObjectType expectedType) 
         | 
| 112 | 
            +
                    internal 
         | 
| 113 | 
            +
                    view 
         | 
| 114 | 
            +
                    returns (
         | 
| 115 | 
            +
                        NftId componentNftId,
         | 
| 116 | 
            +
                        IInstance instance
         | 
| 117 | 
            +
                    )
         | 
| 118 | 
            +
                {
         | 
| 119 | 
            +
                    IRegistry.ObjectInfo memory info;
         | 
| 120 | 
            +
                    address instanceAddress;
         | 
| 121 | 
            +
                    bool isActive = true;
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                    if (expectedType != COMPONENT()) {
         | 
| 124 | 
            +
                        (info, instanceAddress) = ContractLib.getAndVerifyComponent(
         | 
| 125 | 
            +
                            getRegistry(),
         | 
| 126 | 
            +
                            msg.sender, // caller
         | 
| 127 | 
            +
                            expectedType,
         | 
| 128 | 
            +
                            isActive); 
         | 
| 129 | 
            +
                    } else {
         | 
| 130 | 
            +
                        (info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
         | 
| 131 | 
            +
                            getRegistry(),
         | 
| 132 | 
            +
                            msg.sender,
         | 
| 133 | 
            +
                            isActive); 
         | 
| 134 | 
            +
                    }
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                    // get component nft id and instance
         | 
| 137 | 
            +
                    componentNftId = info.nftId;
         | 
| 138 | 
            +
                    instance = IInstance(instanceAddress);
         | 
| 90 139 | 
             
                }
         | 
| 91 140 |  | 
| 92 141 |  | 
| 93 142 | 
             
                function _getDomain() internal pure override returns(ObjectType) {
         | 
| 94 | 
            -
                    return  | 
| 143 | 
            +
                    return RISK();
         | 
| 95 144 | 
             
                }
         | 
| 96 145 | 
             
            }
         | 
| @@ -17,7 +17,7 @@ contract RiskServiceManager is ProxyManager { | |
| 17 17 | 
             
                ) 
         | 
| 18 18 | 
             
                {
         | 
| 19 19 | 
             
                    RiskService svc = new RiskService{salt: salt}();
         | 
| 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), 
         | 
| @@ -62,6 +62,7 @@ contract ChainNft is ERC721Enumerable { | |
| 62 62 | 
             
                    // 3 -> staking
         | 
| 63 63 | 
             
                    // >= 4 -> all other objects
         | 
| 64 64 | 
             
                    _idNext = 4;
         | 
| 65 | 
            +
                    _totalMinted = 0;
         | 
| 65 66 | 
             
                }
         | 
| 66 67 |  | 
| 67 68 | 
             
                /**
         | 
| @@ -104,22 +105,20 @@ contract ChainNft is ERC721Enumerable { | |
| 104 105 | 
             
                    }
         | 
| 105 106 |  | 
| 106 107 | 
             
                    _safeMintWithInterceptorAddress(to, tokenId, interceptor);
         | 
| 107 | 
            -
             | 
| 108 | 
            -
                    if(interceptor != address(0)) {
         | 
| 109 | 
            -
                        ITransferInterceptor(interceptor).nftMint(to, tokenId);
         | 
| 110 | 
            -
                    }
         | 
| 111 108 | 
             
                }
         | 
| 112 109 |  | 
| 113 110 |  | 
| 114 111 | 
             
                /**
         | 
| 115 | 
            -
                 * @dev  | 
| 116 | 
            -
                 *  | 
| 112 | 
            +
                 * @dev Amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id.
         | 
| 113 | 
            +
                 * This allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
         | 
| 117 114 | 
             
                 */
         | 
| 118 | 
            -
                function transferFrom(address from, address to, uint256 tokenId) public override ( | 
| 115 | 
            +
                function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
         | 
| 116 | 
            +
                    // default open zeppelin implementation of transferFrom
         | 
| 119 117 | 
             
                    super.transferFrom(from, to, tokenId);
         | 
| 120 118 |  | 
| 121 119 | 
             
                    if (_interceptor[tokenId] != address(0)) {
         | 
| 122 | 
            -
                         | 
| 120 | 
            +
                        address operator = msg.sender;
         | 
| 121 | 
            +
                        ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId, operator);
         | 
| 123 122 | 
             
                    }
         | 
| 124 123 | 
             
                }
         | 
| 125 124 |  | 
| @@ -241,10 +240,10 @@ contract ChainNft is ERC721Enumerable { | |
| 241 240 | 
             
                    address interceptor
         | 
| 242 241 | 
             
                )
         | 
| 243 242 | 
             
                    private
         | 
| 244 | 
            -
                {
         | 
| 245 | 
            -
                    emit LogTokenInterceptorAddress(tokenId, interceptor);
         | 
| 246 | 
            -
                    
         | 
| 243 | 
            +
                {        
         | 
| 247 244 | 
             
                    _totalMinted++;
         | 
| 248 245 | 
             
                    _safeMint(to, tokenId);
         | 
| 246 | 
            +
             | 
| 247 | 
            +
                    emit LogTokenInterceptorAddress(tokenId, interceptor);
         | 
| 249 248 | 
             
                }
         | 
| 250 249 | 
             
            }
         | 
| @@ -3,13 +3,11 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
         | 
| 5 5 |  | 
| 6 | 
            +
            import {IRelease} from "./IRelease.sol";
         | 
| 7 | 
            +
             | 
| 6 8 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 7 9 | 
             
            import {ObjectType} from "../type/ObjectType.sol";
         | 
| 8 10 | 
             
            import {VersionPart} from "../type/Version.sol";
         | 
| 9 | 
            -
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 10 | 
            -
            import {StateId} from "../type/StateId.sol";
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
         | 
| 13 11 |  | 
| 14 12 | 
             
            /// @title Chain Registry interface.
         | 
| 15 13 | 
             
            /// A chain registry holds all protocol relevant objects with basic metadata.
         | 
| @@ -17,7 +15,9 @@ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol" | |
| 17 15 | 
             
            /// Registered objects are represented by NFTs.
         | 
| 18 16 | 
             
            /// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
         | 
| 19 17 | 
             
            /// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
         | 
| 20 | 
            -
            interface IRegistry is | 
| 18 | 
            +
            interface IRegistry is
         | 
| 19 | 
            +
                IERC165
         | 
| 20 | 
            +
            {
         | 
| 21 21 |  | 
| 22 22 | 
             
                event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
         | 
| 23 23 | 
             
                event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
         | 
| @@ -61,15 +61,6 @@ interface IRegistry is IERC165 { | |
| 61 61 | 
             
                    bytes data;
         | 
| 62 62 | 
             
                }
         | 
| 63 63 |  | 
| 64 | 
            -
                struct ReleaseInfo {
         | 
| 65 | 
            -
                    StateId state;
         | 
| 66 | 
            -
                    VersionPart version;
         | 
| 67 | 
            -
                    bytes32 salt;
         | 
| 68 | 
            -
                    IServiceAuthorization auth;
         | 
| 69 | 
            -
                    Timestamp activatedAt;
         | 
| 70 | 
            -
                    Timestamp disabledAt;
         | 
| 71 | 
            -
                }
         | 
| 72 | 
            -
             | 
| 73 64 | 
             
                /// @dev Registers a registry contract for a specified chain.
         | 
| 74 65 | 
             
                /// Only one chain registry may be registered per chain
         | 
| 75 66 | 
             
                function registerRegistry(
         | 
| @@ -104,7 +95,7 @@ interface IRegistry is IERC165 { | |
| 104 95 |  | 
| 105 96 | 
             
                function getLatestVersion() external view returns (VersionPart);
         | 
| 106 97 |  | 
| 107 | 
            -
                function getReleaseInfo(VersionPart  | 
| 98 | 
            +
                function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory);
         | 
| 108 99 |  | 
| 109 100 | 
             
                /// @dev Returns the number of supported chains.
         | 
| 110 101 | 
             
                function chainIds() external view returns (uint256);
         | 
| @@ -121,10 +112,18 @@ interface IRegistry is IERC165 { | |
| 121 112 |  | 
| 122 113 | 
             
                function ownerOf(NftId nftId) external view returns (address);
         | 
| 123 114 |  | 
| 115 | 
            +
                function isOwnerOf(NftId nftId, address expectedOwner) external view returns (bool);
         | 
| 116 | 
            +
             | 
| 124 117 | 
             
                function ownerOf(address contractAddress) external view returns (address);
         | 
| 125 118 |  | 
| 126 119 | 
             
                function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
         | 
| 127 120 |  | 
| 121 | 
            +
                function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
         | 
| 126 | 
            +
             | 
| 128 127 | 
             
                function getObjectAddress(NftId nftId) external view returns (address objectAddress);
         | 
| 129 128 |  | 
| 130 129 | 
             
                /// @dev Returns the object info for the specified object address.
         | 
| @@ -21,10 +21,9 @@ interface IRegistryService is | |
| 21 21 |  | 
| 22 22 | 
             
                 error ErrorRegistryServiceNotService(address notService);
         | 
| 23 23 | 
             
                 error ErrorRegistryServiceNotInstance(address notInstance);
         | 
| 24 | 
            -
                 error ErrorRegistryServiceNotComponent(address notComponent);
         | 
| 25 24 | 
             
                 error ErrorRegistryServiceNotProduct(address notProduct);
         | 
| 26 | 
            -
                 error  | 
| 27 | 
            -
                 error  | 
| 25 | 
            +
                 error ErrorRegistryServiceNotComponent(address notComponent);
         | 
| 26 | 
            +
                 error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
         | 
| 28 27 |  | 
| 29 28 | 
             
                 error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
         | 
| 30 29 | 
             
                 error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
         | 
| @@ -47,7 +46,10 @@ interface IRegistryService is | |
| 47 46 | 
             
                 function registerInstance(IRegisterable instance, address owner)
         | 
| 48 47 | 
             
                      external returns(IRegistry.ObjectInfo memory info); 
         | 
| 49 48 |  | 
| 50 | 
            -
                 function  | 
| 49 | 
            +
                 function registerProduct(IComponent product, address owner)
         | 
| 50 | 
            +
                      external returns(IRegistry.ObjectInfo memory info);
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                 function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
         | 
| 51 53 | 
             
                      external returns(IRegistry.ObjectInfo memory info);
         | 
| 52 54 |  | 
| 53 55 | 
             
                 function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            import {StateId} from "../type/StateId.sol";
         | 
| 7 | 
            +
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 8 | 
            +
            import {VersionPart} from "../type/Version.sol";
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            /// @title Marks contracts that are linked to a specific GIF release version.
         | 
| 11 | 
            +
            interface IRelease {
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                struct ReleaseInfo {
         | 
| 14 | 
            +
                    StateId state;
         | 
| 15 | 
            +
                    VersionPart version;
         | 
| 16 | 
            +
                    bytes32 salt;
         | 
| 17 | 
            +
                    IServiceAuthorization auth;
         | 
| 18 | 
            +
                    address releaseAdmin;
         | 
| 19 | 
            +
                    Timestamp activatedAt;
         | 
| 20 | 
            +
                    Timestamp disabledAt;
         | 
| 21 | 
            +
                }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                /// @dev Registers a registry contract for a specified chain.
         | 
| 24 | 
            +
                /// Only one chain registry may be registered per chain
         | 
| 25 | 
            +
                function getRelease() external view returns (VersionPart release);
         | 
| 26 | 
            +
            }
         | 
| @@ -2,6 +2,5 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            interface ITransferInterceptor {
         | 
| 5 | 
            -
                function  | 
| 6 | 
            -
                function nftTransferFrom(address from, address to, uint256 tokenId) external;
         | 
| 5 | 
            +
                function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external;
         | 
| 7 6 | 
             
            }
         | 
| @@ -12,7 +12,9 @@ import {ObjectType, ObjectTypeLib, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE, | |
| 12 12 |  | 
| 13 13 | 
             
            import {ChainNft} from "./ChainNft.sol";
         | 
| 14 14 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 15 | 
            +
            import {IRelease} from "./IRelease.sol";
         | 
| 15 16 | 
             
            import {IRegisterable} from "../shared/IRegisterable.sol";
         | 
| 17 | 
            +
            import {IStaking} from "../staking/IStaking.sol";
         | 
| 16 18 | 
             
            import {ReleaseRegistry} from "./ReleaseRegistry.sol";
         | 
| 17 19 | 
             
            import {TokenRegistry} from "./TokenRegistry.sol";
         | 
| 18 20 | 
             
            import {RegistryAdmin} from "./RegistryAdmin.sol";
         | 
| @@ -306,8 +308,8 @@ contract Registry is | |
| 306 308 | 
             
                    return _releaseRegistry.getLatestVersion();
         | 
| 307 309 | 
             
                }
         | 
| 308 310 |  | 
| 309 | 
            -
                function getReleaseInfo(VersionPart  | 
| 310 | 
            -
                    return _releaseRegistry.getReleaseInfo( | 
| 311 | 
            +
                function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory) {
         | 
| 312 | 
            +
                    return _releaseRegistry.getReleaseInfo(release);
         | 
| 311 313 | 
             
                }
         | 
| 312 314 |  | 
| 313 315 | 
             
                function chainIds() public view returns (uint256) {
         | 
| @@ -342,6 +344,10 @@ contract Registry is | |
| 342 344 | 
             
                    return CHAIN_NFT.ownerOf(nftId.toInt());
         | 
| 343 345 | 
             
                }
         | 
| 344 346 |  | 
| 347 | 
            +
                function isOwnerOf(NftId nftId, address expectedOwner) public view returns (bool) {
         | 
| 348 | 
            +
                    return CHAIN_NFT.ownerOf(nftId.toInt()) == expectedOwner;
         | 
| 349 | 
            +
                }
         | 
| 350 | 
            +
             | 
| 345 351 | 
             
                function ownerOf(address contractAddress) public view returns (address) {
         | 
| 346 352 | 
             
                    return CHAIN_NFT.ownerOf(_nftIdByAddress[contractAddress].toInt());
         | 
| 347 353 | 
             
                }
         | 
| @@ -350,6 +356,19 @@ contract Registry is | |
| 350 356 | 
             
                    return _info[nftId];
         | 
| 351 357 | 
             
                }
         | 
| 352 358 |  | 
| 359 | 
            +
                function getParentNftId(NftId nftId) external view returns (NftId parentNftId) {
         | 
| 360 | 
            +
                    return _info[nftId].parentNftId;
         | 
| 361 | 
            +
                }
         | 
| 362 | 
            +
             | 
| 363 | 
            +
                function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
         | 
| 364 | 
            +
                    NftId nftId = _nftIdByAddress[contractAddress];
         | 
| 365 | 
            +
                    return isObjectType(nftId, expectedObjectType);
         | 
| 366 | 
            +
                }
         | 
| 367 | 
            +
             | 
| 368 | 
            +
                function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
         | 
| 369 | 
            +
                    return _info[nftId].objectType == expectedObjectType;
         | 
| 370 | 
            +
                }
         | 
| 371 | 
            +
             | 
| 353 372 | 
             
                function getObjectAddress(NftId nftId) external view returns (address) {
         | 
| 354 373 | 
             
                    return _info[nftId].objectAddress;
         | 
| 355 374 | 
             
                }
         | 
| @@ -627,6 +646,8 @@ contract Registry is | |
| 627 646 | 
             
                            initialOwner: stakingOwner,
         | 
| 628 647 | 
             
                            data: ""}),
         | 
| 629 648 | 
             
                        true); 
         | 
| 649 | 
            +
             | 
| 650 | 
            +
                    IStaking(_stakingAddress).initializeTokenHandler();
         | 
| 630 651 | 
             
                }
         | 
| 631 652 |  | 
| 632 653 | 
             
                /// @dev Register the provided object info for the specified NFT ID.
         | 
| @@ -691,13 +712,15 @@ contract Registry is | |
| 691 712 |  | 
| 692 713 | 
             
                    // components with instance parent
         | 
| 693 714 | 
             
                    _coreContractCombinations[PRODUCT()][INSTANCE()] = true;
         | 
| 694 | 
            -
             | 
| 695 | 
            -
                     | 
| 696 | 
            -
                    _coreContractCombinations[ | 
| 715 | 
            +
             | 
| 716 | 
            +
                    // components with product parent
         | 
| 717 | 
            +
                    _coreContractCombinations[DISTRIBUTION()][PRODUCT()] = true;
         | 
| 718 | 
            +
                    _coreContractCombinations[ORACLE()][PRODUCT()] = true;
         | 
| 719 | 
            +
                    _coreContractCombinations[POOL()][PRODUCT()] = true;
         | 
| 697 720 |  | 
| 698 721 | 
             
                    // objects with component parents
         | 
| 699 | 
            -
                    _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
         | 
| 700 722 | 
             
                    _coreObjectCombinations[POLICY()][PRODUCT()] = true;
         | 
| 723 | 
            +
                    _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
         | 
| 701 724 | 
             
                    _coreObjectCombinations[BUNDLE()][POOL()] = true;
         | 
| 702 725 |  | 
| 703 726 | 
             
                    // staking
         |