@etherisc/gif-next 0.0.2-79292f9-089 → 0.0.2-79a4d57-521
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 +28 -7
- 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 +203 -77
- 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 +142 -44
- 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 +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +63 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +179 -346
- 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 +119 -262
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +241 -242
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +138 -120
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -33
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -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 +194 -154
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +433 -143
- 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 +955 -264
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -97
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +688 -439
- 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 +46 -5
- 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 +138 -305
- 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 +113 -104
- 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 +114 -257
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -93
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +131 -274
- 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 +158 -363
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -129
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +306 -294
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +131 -285
- 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 +474 -525
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +156 -106
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +131 -170
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +101 -95
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +249 -331
- 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 +407 -242
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -119
- 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 +293 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +281 -64
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +246 -176
- 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 +405 -267
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -108
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +125 -127
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +247 -329
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -172
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +112 -90
- 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 +119 -19
- 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 +164 -56
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +326 -259
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -85
- 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 +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +424 -224
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +92 -217
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -610
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -125
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
- 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 -65
- 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 +113 -104
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- 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/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- 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/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +113 -256
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- 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 +137 -102
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +84 -31
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +216 -308
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -101
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +104 -90
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- 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 +33 -9
- 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 +28 -4
- 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 +19 -19
- 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 +118 -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/Seconds.sol/SecondsLib.json +26 -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/StateId.sol/StateIdLib.json +15 -2
- 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 +16 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +3 -22
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +45 -13
- 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 +76 -75
- 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 +232 -133
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +322 -205
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -9
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +25 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +33 -41
- package/contracts/distribution/DistributionService.sol +111 -76
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +13 -8
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -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 +53 -35
- package/contracts/instance/InstanceAdmin.sol +257 -100
- package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
- package/contracts/instance/InstanceReader.sol +256 -39
- package/contracts/instance/InstanceService.sol +95 -157
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +13 -8
- package/contracts/instance/module/IPolicy.sol +25 -24
- 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 +6 -17
- package/contracts/oracle/OracleService.sol +113 -82
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +93 -134
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +15 -34
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +73 -71
- package/contracts/pool/Pool.sol +139 -122
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +489 -273
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +36 -27
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +10 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +366 -150
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +43 -8
- package/contracts/product/IPolicyService.sol +41 -28
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/PolicyService.sol +456 -274
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +62 -62
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +149 -82
- package/contracts/product/RiskService.sol +77 -29
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +18 -20
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +42 -17
- package/contracts/registry/RegistryAdmin.sol +133 -243
- package/contracts/registry/RegistryService.sol +39 -49
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +236 -263
- package/contracts/registry/ServiceAuthorizationV3.sol +98 -51
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +74 -115
- package/contracts/shared/ComponentService.sol +427 -376
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +73 -48
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +274 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +7 -9
- package/contracts/staking/IStakingService.sol +8 -3
- package/contracts/staking/StakeManagerLib.sol +19 -1
- package/contracts/staking/Staking.sol +69 -40
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +13 -6
- package/contracts/staking/StakingService.sol +47 -24
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +52 -20
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +12 -2
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +17 -10
- package/contracts/upgradeability/ProxyManager.sol +74 -40
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -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/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- 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
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -18,28 +18,27 @@ contract RegistryService is
|
|
18
18
|
Service,
|
19
19
|
IRegistryService
|
20
20
|
{
|
21
|
-
using NftIdLib for NftId;
|
22
|
-
|
23
21
|
// TODO update to real hash when registry is stable
|
24
22
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
25
23
|
|
26
24
|
// from Versionable
|
27
25
|
|
26
|
+
/// @dev top level initializer
|
28
27
|
function _initialize(
|
29
28
|
address owner,
|
30
29
|
bytes memory data
|
31
30
|
)
|
32
31
|
internal
|
33
32
|
virtual override
|
34
|
-
|
33
|
+
initializer()
|
35
34
|
{
|
36
35
|
(
|
37
|
-
address
|
38
|
-
address
|
36
|
+
address authority,
|
37
|
+
address registry
|
39
38
|
) = abi.decode(data, (address, address));
|
40
39
|
|
41
|
-
|
42
|
-
|
40
|
+
__Service_init(authority, registry, owner);
|
41
|
+
_registerInterface(type(IRegistryService).interfaceId);
|
43
42
|
}
|
44
43
|
|
45
44
|
|
@@ -59,7 +58,7 @@ contract RegistryService is
|
|
59
58
|
function registerInstance(IRegisterable instance, address owner)
|
60
59
|
external
|
61
60
|
virtual
|
62
|
-
restricted
|
61
|
+
restricted()
|
63
62
|
returns(
|
64
63
|
IRegistry.ObjectInfo memory info
|
65
64
|
)
|
@@ -74,29 +73,33 @@ contract RegistryService is
|
|
74
73
|
instance.linkToRegisteredNftId(); // asume safe
|
75
74
|
}
|
76
75
|
|
77
|
-
function registerProduct(
|
76
|
+
function registerProduct(
|
77
|
+
IComponent product,
|
78
|
+
address initialOwner
|
79
|
+
)
|
78
80
|
external
|
79
|
-
|
81
|
+
virtual
|
82
|
+
restricted()
|
80
83
|
returns(
|
81
84
|
IRegistry.ObjectInfo memory info
|
82
85
|
)
|
83
86
|
{
|
84
|
-
// CAN revert if no ERC165 support -> will revert with empty message
|
85
87
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
86
88
|
revert ErrorRegistryServiceNotProduct(address(product));
|
87
89
|
}
|
88
90
|
|
89
|
-
info = _getAndVerifyContractInfo(product, PRODUCT(),
|
91
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
|
90
92
|
info.nftId = getRegistry().register(info);
|
91
93
|
}
|
92
94
|
|
93
|
-
function
|
95
|
+
function registerProductLinkedComponent(
|
94
96
|
IComponent component,
|
95
97
|
ObjectType objectType,
|
96
98
|
address initialOwner
|
97
99
|
)
|
98
100
|
external
|
99
|
-
|
101
|
+
virtual
|
102
|
+
restricted()
|
100
103
|
returns(
|
101
104
|
IRegistry.ObjectInfo memory info
|
102
105
|
)
|
@@ -106,43 +109,18 @@ contract RegistryService is
|
|
106
109
|
revert ErrorRegistryServiceNotComponent(address(component));
|
107
110
|
}
|
108
111
|
|
109
|
-
|
110
|
-
|
111
|
-
}
|
112
|
-
|
113
|
-
function registerPool(IComponent pool, address owner)
|
114
|
-
external
|
115
|
-
restricted
|
116
|
-
returns(
|
117
|
-
IRegistry.ObjectInfo memory info
|
118
|
-
)
|
119
|
-
{
|
120
|
-
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
121
|
-
revert ErrorRegistryServiceNotPool(address(pool));
|
122
|
-
}
|
123
|
-
|
124
|
-
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
125
|
-
info.nftId = getRegistry().register(info);
|
126
|
-
}
|
127
|
-
|
128
|
-
function registerDistribution(IComponent distribution, address owner)
|
129
|
-
external
|
130
|
-
restricted
|
131
|
-
returns(
|
132
|
-
IRegistry.ObjectInfo memory info
|
133
|
-
)
|
134
|
-
{
|
135
|
-
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
136
|
-
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
112
|
+
if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
|
113
|
+
revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
|
137
114
|
}
|
138
115
|
|
139
|
-
info = _getAndVerifyContractInfo(
|
116
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
140
117
|
info.nftId = getRegistry().register(info);
|
141
118
|
}
|
142
119
|
|
143
120
|
function registerDistributor(IRegistry.ObjectInfo memory info)
|
144
121
|
external
|
145
|
-
|
122
|
+
virtual
|
123
|
+
restricted()
|
146
124
|
returns(NftId nftId)
|
147
125
|
{
|
148
126
|
_verifyObjectInfo(info, DISTRIBUTOR());
|
@@ -151,7 +129,8 @@ contract RegistryService is
|
|
151
129
|
|
152
130
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
153
131
|
external
|
154
|
-
|
132
|
+
virtual
|
133
|
+
restricted()
|
155
134
|
returns(NftId nftId)
|
156
135
|
{
|
157
136
|
_verifyObjectInfo(info, POLICY());
|
@@ -160,7 +139,8 @@ contract RegistryService is
|
|
160
139
|
|
161
140
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
162
141
|
external
|
163
|
-
|
142
|
+
virtual
|
143
|
+
restricted()
|
164
144
|
returns(NftId nftId)
|
165
145
|
{
|
166
146
|
_verifyObjectInfo(info, BUNDLE());
|
@@ -169,7 +149,8 @@ contract RegistryService is
|
|
169
149
|
|
170
150
|
function registerStake(IRegistry.ObjectInfo memory info)
|
171
151
|
external
|
172
|
-
|
152
|
+
virtual
|
153
|
+
restricted()
|
173
154
|
returns(NftId nftId)
|
174
155
|
{
|
175
156
|
_verifyObjectInfo(info, STAKE());
|
@@ -184,6 +165,7 @@ contract RegistryService is
|
|
184
165
|
address expectedOwner // assume can be 0 when given by other service
|
185
166
|
)
|
186
167
|
internal
|
168
|
+
virtual
|
187
169
|
view
|
188
170
|
returns(
|
189
171
|
IRegistry.ObjectInfo memory info
|
@@ -223,6 +205,7 @@ contract RegistryService is
|
|
223
205
|
ObjectType expectedType
|
224
206
|
)
|
225
207
|
internal
|
208
|
+
virtual
|
226
209
|
view
|
227
210
|
{
|
228
211
|
if(info.objectAddress > address(0)) {
|
@@ -239,8 +222,15 @@ contract RegistryService is
|
|
239
222
|
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
240
223
|
}
|
241
224
|
|
242
|
-
if(
|
243
|
-
revert
|
225
|
+
if(owner == msg.sender) {
|
226
|
+
revert ErrorRegistryServiceInvalidInitialOwner(owner);
|
227
|
+
}
|
228
|
+
|
229
|
+
if(getRegistry().isRegistered(owner)) {
|
230
|
+
ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
|
231
|
+
if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
|
232
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
233
|
+
}
|
244
234
|
}
|
245
235
|
}
|
246
236
|
|
@@ -21,7 +21,6 @@ contract RegistryServiceManager is
|
|
21
21
|
address registry, // used by implementation
|
22
22
|
bytes32 salt
|
23
23
|
)
|
24
|
-
ProxyManager(registry)
|
25
24
|
{
|
26
25
|
if(authority == address(0)) {
|
27
26
|
revert ErrorRegistryAccessManagerAuthorityZero();
|
@@ -32,8 +31,9 @@ contract RegistryServiceManager is
|
|
32
31
|
}
|
33
32
|
|
34
33
|
RegistryService srv = new RegistryService{ salt: salt }();
|
35
|
-
bytes memory data = abi.encode(
|
36
|
-
IVersionable versionable =
|
34
|
+
bytes memory data = abi.encode(authority, registry);
|
35
|
+
IVersionable versionable = initialize(
|
36
|
+
registry,
|
37
37
|
address(srv),
|
38
38
|
data,
|
39
39
|
salt);
|
@@ -0,0 +1,245 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
5
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
9
|
+
import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, RELEASE_REGISTRY_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
|
+
import {VersionPart} from "../type/Version.sol";
|
12
|
+
|
13
|
+
/// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
|
14
|
+
/// There is one ReleaseAdmin contract per major GIF release.
|
15
|
+
/// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
|
16
|
+
contract ReleaseAdmin is
|
17
|
+
AccessAdmin
|
18
|
+
{
|
19
|
+
event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
|
20
|
+
event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
|
21
|
+
|
22
|
+
error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
|
23
|
+
error ErrorReleaseAdminNotService(address notService);
|
24
|
+
error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
|
25
|
+
|
26
|
+
/// @dev release core roles
|
27
|
+
string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
|
28
|
+
|
29
|
+
/// @dev release core targets
|
30
|
+
string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
|
31
|
+
|
32
|
+
|
33
|
+
modifier onlyReleaseRegistry() {
|
34
|
+
(bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
|
35
|
+
if(!isMember) {
|
36
|
+
revert ErrorReleaseAdminCallerNotReleaseRegistry(msg.sender);
|
37
|
+
}
|
38
|
+
_;
|
39
|
+
}
|
40
|
+
|
41
|
+
/// @dev Only used for master release admin.
|
42
|
+
/// Contracts created via constructor come with disabled initializers.
|
43
|
+
constructor() {
|
44
|
+
initialize(new AccessManagerCloneable());
|
45
|
+
_disableInitializers();
|
46
|
+
}
|
47
|
+
|
48
|
+
function completeSetup(
|
49
|
+
address registry,
|
50
|
+
address releaseRegistry,
|
51
|
+
VersionPart release
|
52
|
+
)
|
53
|
+
external
|
54
|
+
reinitializer(uint64(release.toInt()))
|
55
|
+
{
|
56
|
+
AccessManagerCloneable(
|
57
|
+
authority()).completeSetup(
|
58
|
+
registry,
|
59
|
+
release);
|
60
|
+
|
61
|
+
_setupReleaseRegistry(releaseRegistry);
|
62
|
+
}
|
63
|
+
|
64
|
+
/// @dev Sets up authorizaion for specified service.
|
65
|
+
/// For all authorized services its authorized functions are enabled.
|
66
|
+
/// Permissioned function: Access is restricted to release registry.
|
67
|
+
function authorizeService(
|
68
|
+
IServiceAuthorization serviceAuthorization,
|
69
|
+
IService service,
|
70
|
+
ObjectType serviceDomain,
|
71
|
+
VersionPart releaseVersion
|
72
|
+
)
|
73
|
+
external
|
74
|
+
restricted()
|
75
|
+
{
|
76
|
+
_createServiceTargetAndRole(service, serviceDomain, releaseVersion);
|
77
|
+
_authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
|
78
|
+
}
|
79
|
+
|
80
|
+
/// @dev Locks/unlocks all release targets.
|
81
|
+
/// For all authorized services of release its authorized functions are disabled/enabled.
|
82
|
+
/// Permissioned function: Access is restricted to release registry.
|
83
|
+
/// Note: onlyReleaseRegistry() modifier is used to prevent dead lock.
|
84
|
+
function setReleaseLocked(bool locked)
|
85
|
+
external
|
86
|
+
onlyReleaseRegistry()
|
87
|
+
{
|
88
|
+
// checks
|
89
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
90
|
+
if(accessManager.isLocked() == locked) {
|
91
|
+
revert ErrorReleaseAdminReleaseLockAlreadySetTo(locked);
|
92
|
+
}
|
93
|
+
|
94
|
+
// effects
|
95
|
+
accessManager.setLocked(locked);
|
96
|
+
|
97
|
+
emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
|
98
|
+
}
|
99
|
+
|
100
|
+
/// @dev Lock/unlock specific service of release.
|
101
|
+
/// Permissioned function: Access is restricted to release registry.
|
102
|
+
function setServiceLocked(IService service, bool locked)
|
103
|
+
external
|
104
|
+
restricted()
|
105
|
+
{
|
106
|
+
// assume all targets except release admin are services
|
107
|
+
// ensure release admin can not be locked
|
108
|
+
if(address(service) == address(this)) {
|
109
|
+
revert ErrorReleaseAdminNotService(address(service));
|
110
|
+
}
|
111
|
+
|
112
|
+
_setTargetClosed(address(service), locked);
|
113
|
+
|
114
|
+
emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
|
115
|
+
}
|
116
|
+
|
117
|
+
//--- view functions ----------------------------------------------------//
|
118
|
+
|
119
|
+
/*
|
120
|
+
function getReleaseAdminRole() external view returns (RoleId) {
|
121
|
+
return GIF_ADMIN_ROLE();
|
122
|
+
}
|
123
|
+
*/
|
124
|
+
//--- private functions -------------------------------------------------//
|
125
|
+
|
126
|
+
function _createServiceTargetAndRole(
|
127
|
+
IService service,
|
128
|
+
ObjectType serviceDomain,
|
129
|
+
VersionPart releaseVersion
|
130
|
+
)
|
131
|
+
private
|
132
|
+
{
|
133
|
+
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
134
|
+
uint256 versionInt = releaseVersion.toInt();
|
135
|
+
|
136
|
+
// create service target
|
137
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
138
|
+
baseName, "Service", versionInt);
|
139
|
+
|
140
|
+
_createTarget(
|
141
|
+
address(service),
|
142
|
+
serviceTargetName,
|
143
|
+
true,
|
144
|
+
false);
|
145
|
+
|
146
|
+
// create service role
|
147
|
+
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
148
|
+
serviceDomain,
|
149
|
+
releaseVersion);
|
150
|
+
|
151
|
+
if(!roleExists(serviceRoleId)) {
|
152
|
+
_createRole(
|
153
|
+
serviceRoleId,
|
154
|
+
toRole({
|
155
|
+
adminRoleId: ADMIN_ROLE(),
|
156
|
+
roleType: RoleType.Contract,
|
157
|
+
maxMemberCount: 1,
|
158
|
+
name: ObjectTypeLib.toVersionedName(
|
159
|
+
baseName,
|
160
|
+
"ServiceRole",
|
161
|
+
versionInt)}));
|
162
|
+
}
|
163
|
+
|
164
|
+
_grantRoleToAccount(
|
165
|
+
serviceRoleId,
|
166
|
+
address(service));
|
167
|
+
}
|
168
|
+
|
169
|
+
|
170
|
+
function _authorizeServiceFunctions(
|
171
|
+
IServiceAuthorization serviceAuthorization,
|
172
|
+
IService service,
|
173
|
+
ObjectType serviceDomain,
|
174
|
+
VersionPart releaseVersion
|
175
|
+
)
|
176
|
+
private
|
177
|
+
{
|
178
|
+
ObjectType authorizedDomain;
|
179
|
+
RoleId authorizedRoleId;
|
180
|
+
|
181
|
+
ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
|
182
|
+
|
183
|
+
for (uint256 i = 0; i < authorizedDomains.length; i++) {
|
184
|
+
authorizedDomain = authorizedDomains[i];
|
185
|
+
|
186
|
+
// derive authorized role from authorized domain
|
187
|
+
if (authorizedDomain == ALL()) {
|
188
|
+
authorizedRoleId = PUBLIC_ROLE();
|
189
|
+
} else {
|
190
|
+
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
191
|
+
authorizedDomain,
|
192
|
+
releaseVersion);
|
193
|
+
}
|
194
|
+
|
195
|
+
if(!roleExists(authorizedRoleId)) {
|
196
|
+
// create role for authorized domain
|
197
|
+
_createRole(
|
198
|
+
authorizedRoleId,
|
199
|
+
toRole({
|
200
|
+
adminRoleId: ADMIN_ROLE(),
|
201
|
+
roleType: RoleType.Contract,
|
202
|
+
maxMemberCount: 1,
|
203
|
+
name: ObjectTypeLib.toVersionedName(
|
204
|
+
ObjectTypeLib.toName(authorizedDomain),
|
205
|
+
"Role",
|
206
|
+
releaseVersion.toInt())}));
|
207
|
+
}
|
208
|
+
|
209
|
+
// get authorized functions for authorized domain
|
210
|
+
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
211
|
+
serviceDomain,
|
212
|
+
authorizedDomain);
|
213
|
+
|
214
|
+
_authorizeTargetFunctions(
|
215
|
+
address(service),
|
216
|
+
authorizedRoleId,
|
217
|
+
authorizatedFunctions);
|
218
|
+
}
|
219
|
+
}
|
220
|
+
|
221
|
+
//--- private initialization functions -------------------------------------------//
|
222
|
+
|
223
|
+
function _setupReleaseRegistry(address releaseRegistry)
|
224
|
+
private
|
225
|
+
onlyInitializing()
|
226
|
+
{
|
227
|
+
_createTarget(address(this), RELEASE_ADMIN_TARGET_NAME, false, false);
|
228
|
+
|
229
|
+
_createRole(
|
230
|
+
RELEASE_REGISTRY_ROLE(),
|
231
|
+
toRole({
|
232
|
+
adminRoleId: ADMIN_ROLE(),
|
233
|
+
roleType: RoleType.Contract,
|
234
|
+
maxMemberCount: 1,
|
235
|
+
name: RELEASE_REGISTRY_ROLE_NAME}));
|
236
|
+
|
237
|
+
FunctionInfo[] memory functions;
|
238
|
+
functions = new FunctionInfo[](2);
|
239
|
+
functions[0] = toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
|
240
|
+
functions[1] = toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
|
241
|
+
_authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions);
|
242
|
+
|
243
|
+
_grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
|
244
|
+
}
|
245
|
+
}
|
@@ -2,9 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {RELEASE} from "../type/ObjectType.sol";
|
5
|
-
import {SCHEDULED, DEPLOYING, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
|
5
|
+
import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
|
6
6
|
import {Lifecycle} from "../shared/Lifecycle.sol";
|
7
7
|
|
8
|
+
/// @dev Release lifeycle state machine.
|
9
|
+
/// Helper contract for ReleaseRegistry.
|
8
10
|
contract ReleaseLifecycle is
|
9
11
|
Lifecycle
|
10
12
|
{
|
@@ -20,9 +22,10 @@ contract ReleaseLifecycle is
|
|
20
22
|
|
21
23
|
setStateTransition(RELEASE(), SCHEDULED(), SKIPPED());
|
22
24
|
setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
|
23
|
-
setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
|
24
25
|
setStateTransition(RELEASE(), DEPLOYING(), SKIPPED());
|
25
|
-
setStateTransition(RELEASE(), DEPLOYING(),
|
26
|
+
setStateTransition(RELEASE(), DEPLOYING(), DEPLOYED());
|
27
|
+
setStateTransition(RELEASE(), DEPLOYED(), SKIPPED());
|
28
|
+
setStateTransition(RELEASE(), DEPLOYED(), ACTIVE());
|
26
29
|
setStateTransition(RELEASE(), ACTIVE(), PAUSED());
|
27
30
|
setStateTransition(RELEASE(), PAUSED(), ACTIVE());
|
28
31
|
}
|