@etherisc/gif-next 0.0.2-7dc3cd3-858 → 0.0.2-7e48d89-379
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 +32 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -33
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- 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/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -90
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +19 -19
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -64
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +182 -74
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -26
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +7 -7
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +10 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +19 -19
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +80 -122
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -39
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -35
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +89 -212
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -77
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
- 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 +30 -26
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -61
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +54 -125
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +394 -62
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -83
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +158 -54
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -121
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +226 -90
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -64
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +88 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -26
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +260 -167
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -64
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- 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 +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -29
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +100 -95
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
- 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 +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -62
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -49
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -26
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- 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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +55 -119
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -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 +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
- 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 +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +8 -10
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +0 -1
- package/contracts/authorization/IServiceAuthorization.sol +3 -0
- package/contracts/authorization/ServiceAuthorization.sol +4 -0
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +22 -10
- package/contracts/distribution/DistributionService.sol +47 -27
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +8 -4
- package/contracts/distribution/IDistributionService.sol +10 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +7 -7
- package/contracts/instance/IInstanceService.sol +6 -5
- package/contracts/instance/Instance.sol +8 -8
- package/contracts/instance/{InstanceAdminNew.sol → InstanceAdmin.sol} +33 -9
- package/contracts/instance/InstanceAuthorizationV3.sol +16 -21
- package/contracts/instance/InstanceReader.sol +10 -7
- package/contracts/instance/InstanceService.sol +69 -32
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +8 -4
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +15 -6
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +11 -2
- package/contracts/pool/BundleService.sol +181 -41
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -0
- package/contracts/pool/IPoolService.sol +14 -17
- package/contracts/pool/Pool.sol +32 -15
- package/contracts/pool/PoolService.sol +152 -85
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +49 -53
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +3 -33
- package/contracts/product/BasicProductAuthorization.sol +3 -0
- package/contracts/product/ClaimService.sol +13 -39
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +23 -17
- package/contracts/product/IProductComponent.sol +1 -0
- package/contracts/product/IProductService.sol +1 -0
- package/contracts/product/PolicyService.sol +251 -134
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -1
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +27 -6
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -13
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +80 -82
- package/contracts/registry/RegistryAdmin.sol +34 -23
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +145 -178
- package/contracts/registry/ServiceAuthorizationV3.sol +5 -5
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +83 -21
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -3
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +21 -0
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +0 -25
- package/contracts/staking/Staking.sol +21 -37
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +3 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +29 -10
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +3 -3
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1385
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1616
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1140
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/authorization/InstanceAdmin.sol +0 -108
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -62,7 +62,7 @@ abstract contract Product is
|
|
62
62
|
NftId bundleNftId,
|
63
63
|
ReferralId referralId
|
64
64
|
)
|
65
|
-
|
65
|
+
public
|
66
66
|
view
|
67
67
|
override
|
68
68
|
returns (Amount premiumAmount)
|
@@ -102,6 +102,7 @@ abstract contract Product is
|
|
102
102
|
onlyOwner()
|
103
103
|
{
|
104
104
|
_getProductStorage()._componentService.registerProduct();
|
105
|
+
_approveTokenHandler(type(uint256).max);
|
105
106
|
}
|
106
107
|
|
107
108
|
|
@@ -134,7 +135,6 @@ abstract contract Product is
|
|
134
135
|
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
135
136
|
}
|
136
137
|
|
137
|
-
|
138
138
|
function _initializeProduct(
|
139
139
|
address registry,
|
140
140
|
NftId instanceNftId,
|
@@ -233,6 +233,7 @@ abstract contract Product is
|
|
233
233
|
address applicationOwner,
|
234
234
|
RiskId riskId,
|
235
235
|
Amount sumInsuredAmount,
|
236
|
+
Amount premiumAmount,
|
236
237
|
Seconds lifetime,
|
237
238
|
NftId bundleNftId,
|
238
239
|
ReferralId referralId,
|
@@ -245,6 +246,7 @@ abstract contract Product is
|
|
245
246
|
applicationOwner,
|
246
247
|
riskId,
|
247
248
|
sumInsuredAmount,
|
249
|
+
premiumAmount,
|
248
250
|
lifetime,
|
249
251
|
bundleNftId,
|
250
252
|
referralId,
|
@@ -252,19 +254,38 @@ abstract contract Product is
|
|
252
254
|
);
|
253
255
|
}
|
254
256
|
|
255
|
-
function
|
256
|
-
NftId
|
257
|
+
function _createPolicy(
|
258
|
+
NftId applicationNftId,
|
257
259
|
bool requirePremiumPayment,
|
258
260
|
Timestamp activateAt
|
259
261
|
)
|
260
262
|
internal
|
261
263
|
{
|
262
|
-
_getProductStorage()._policyService.
|
263
|
-
|
264
|
+
_getProductStorage()._policyService.createPolicy(
|
265
|
+
applicationNftId,
|
264
266
|
requirePremiumPayment,
|
265
267
|
activateAt);
|
266
268
|
}
|
267
269
|
|
270
|
+
function _decline(
|
271
|
+
NftId policyNftId
|
272
|
+
)
|
273
|
+
internal
|
274
|
+
{
|
275
|
+
_getProductStorage()._policyService.decline(
|
276
|
+
policyNftId);
|
277
|
+
}
|
278
|
+
|
279
|
+
function _expire(
|
280
|
+
NftId policyNftId,
|
281
|
+
Timestamp expireAt
|
282
|
+
)
|
283
|
+
internal
|
284
|
+
returns (Timestamp expiredAt)
|
285
|
+
{
|
286
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
287
|
+
}
|
288
|
+
|
268
289
|
function _collectPremium(
|
269
290
|
NftId policyNftId,
|
270
291
|
Timestamp activateAt
|
@@ -1,45 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
6
|
-
import {Product} from "./Product.sol";
|
7
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
9
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
10
4
|
import {IInstance} from "../instance/IInstance.sol";
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
5
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
6
|
+
import {IPoolService} from "../pool/PoolService.sol";
|
14
7
|
import {IProductService} from "./IProductService.sol";
|
15
|
-
import {
|
16
|
-
|
17
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
18
|
-
|
19
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
20
|
-
import {Versionable} from "../shared/Versionable.sol";
|
8
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
|
+
import {IRisk} from "../instance/module/IRisk.sol";
|
21
10
|
|
22
|
-
import {
|
23
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
24
|
-
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
11
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
25
12
|
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
26
|
-
import {
|
27
|
-
import {NftId
|
28
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
29
|
-
import {ReferralId} from "../type/Referral.sol";
|
13
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
30
15
|
import {RiskId} from "../type/RiskId.sol";
|
31
16
|
import {StateId} from "../type/StateId.sol";
|
32
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
33
|
-
import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
34
|
-
|
35
|
-
import {IService} from "../shared/IService.sol";
|
36
|
-
import {Service} from "../shared/Service.sol";
|
37
17
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
38
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
39
|
-
import {IProductService} from "./IProductService.sol";
|
40
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
41
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
42
|
-
import {IPoolService} from "../pool/PoolService.sol";
|
43
18
|
|
44
19
|
contract ProductService is
|
45
20
|
ComponentVerifyingService,
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {ProductService} from "./ProductService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {VersionLib} from "../type/Version.sol";
|
10
7
|
|
11
8
|
contract ProductServiceManager is ProxyManager {
|
12
9
|
|
@@ -7,21 +7,29 @@ import {NftId} from "../type/NftId.sol";
|
|
7
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
8
8
|
import {VersionPart} from "../type/Version.sol";
|
9
9
|
import {Timestamp} from "../type/Timestamp.sol";
|
10
|
-
import {RoleId} from "../type/RoleId.sol";
|
11
10
|
|
11
|
+
/// @title Chain Registry interface.
|
12
|
+
/// A chain registry holds all protocol relevant objects with basic metadata.
|
13
|
+
/// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
|
14
|
+
/// Registered objects are represented by NFTs.
|
12
15
|
interface IRegistry is IERC165 {
|
13
16
|
|
14
17
|
event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
|
15
18
|
event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
|
16
19
|
|
20
|
+
// register()
|
21
|
+
error ErrorRegistryCallerNotRegistryService();
|
22
|
+
error ErrorRegistryService(address service);
|
23
|
+
|
17
24
|
// registerService()
|
18
|
-
error
|
25
|
+
error ErrorRegistryCallerNotReleaseRegistry();
|
26
|
+
error ErrorRegistryServiceAddressZero();
|
27
|
+
error ErrorRegistryServiceVersionZero();
|
28
|
+
error ErrorRegistryNotService(address service, ObjectType objectType);
|
29
|
+
error ErrorRegistryServiceParentNotRegistry(NftId parentNftId);
|
19
30
|
error ErrorRegistryDomainZero(address service);
|
20
31
|
error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
|
21
32
|
|
22
|
-
// register()
|
23
|
-
error ErrorRegistryCallerNotRegistryService();
|
24
|
-
|
25
33
|
// registerWithCustomTypes()
|
26
34
|
error ErrorRegistryCoreTypeRegistration();
|
27
35
|
|
@@ -45,24 +53,29 @@ interface IRegistry is IERC165 {
|
|
45
53
|
bytes32 salt;
|
46
54
|
address[] addresses;
|
47
55
|
string[] names;
|
48
|
-
// RoleId[][] serviceRoles;
|
49
|
-
// string[][] serviceRoleNames;
|
50
|
-
// RoleId[][] functionRoles;
|
51
|
-
// string[][] functionRoleNames;
|
52
|
-
// bytes4[][][] selectors;
|
53
56
|
ObjectType[] domains;
|
54
57
|
Timestamp activatedAt;
|
55
58
|
Timestamp disabledAt;
|
56
59
|
}
|
57
60
|
|
61
|
+
/// @dev Register an object with a known core type.
|
62
|
+
/// The function returns a newly minted object NFT ID.
|
63
|
+
/// May not be used to register services.
|
64
|
+
function register(ObjectInfo memory info) external returns (NftId nftId);
|
65
|
+
|
66
|
+
/// @dev Register a service with using the provided domain and version.
|
67
|
+
/// The function returns a newly minted service NFT ID.
|
68
|
+
/// May only be used to register services.
|
58
69
|
function registerService(
|
59
70
|
ObjectInfo memory serviceInfo,
|
60
71
|
VersionPart serviceVersion,
|
61
72
|
ObjectType serviceDomain
|
62
73
|
) external returns(NftId nftId);
|
63
74
|
|
64
|
-
|
65
|
-
|
75
|
+
/// @dev Register an object with a custom type.
|
76
|
+
/// The function returns a newly minted object NFT ID.
|
77
|
+
/// This function is reserved for GIF releases > 3.
|
78
|
+
/// May not be used to register known core types.
|
66
79
|
function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
|
67
80
|
|
68
81
|
function getInitialVersion() external view returns (VersionPart);
|
@@ -109,7 +122,7 @@ interface IRegistry is IERC165 {
|
|
109
122
|
// TODO refactor the address getters below to contract getters
|
110
123
|
function getChainNftAddress() external view returns (address);
|
111
124
|
|
112
|
-
function
|
125
|
+
function getReleaseRegistryAddress() external view returns (address);
|
113
126
|
|
114
127
|
function getStakingAddress() external view returns (address);
|
115
128
|
|
@@ -50,14 +50,14 @@ interface IRegistryService is
|
|
50
50
|
function registerComponent(IComponent component, ObjectType objectType, address owner)
|
51
51
|
external returns(IRegistry.ObjectInfo memory info);
|
52
52
|
|
53
|
-
function registerProduct(IComponent product, address owner)
|
54
|
-
|
53
|
+
// function registerProduct(IComponent product, address owner)
|
54
|
+
// external returns(IRegistry.ObjectInfo memory info);
|
55
55
|
|
56
|
-
function registerPool(IComponent pool, address owner)
|
57
|
-
|
56
|
+
// function registerPool(IComponent pool, address owner)
|
57
|
+
// external returns(IRegistry.ObjectInfo memory info);
|
58
58
|
|
59
|
-
function registerDistribution(IComponent distribution, address owner)
|
60
|
-
|
59
|
+
// function registerDistribution(IComponent distribution, address owner)
|
60
|
+
// external returns(IRegistry.ObjectInfo memory info);
|
61
61
|
|
62
62
|
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
63
63
|
|
@@ -8,12 +8,12 @@ import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
|
8
8
|
|
9
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
10
10
|
import {VersionPart} from "../type/Version.sol";
|
11
|
-
import {ObjectType, PROTOCOL, REGISTRY,
|
11
|
+
import {ObjectType, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
12
12
|
|
13
13
|
import {ChainNft} from "./ChainNft.sol";
|
14
14
|
import {IRegistry} from "./IRegistry.sol";
|
15
15
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
-
import {
|
16
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
17
17
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
19
19
|
|
@@ -27,6 +27,8 @@ import {RegistryAdmin} from "./RegistryAdmin.sol";
|
|
27
27
|
// 3) IRegisterable address by regular service (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
|
28
28
|
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
29
29
|
|
30
|
+
/// @title Chain Registry contract implementing IRegistry.
|
31
|
+
/// @notice See IRegistry for method details.
|
30
32
|
contract Registry is
|
31
33
|
InitializableCustom,
|
32
34
|
IRegistry
|
@@ -58,30 +60,31 @@ contract Registry is
|
|
58
60
|
|
59
61
|
address public _tokenRegistryAddress;
|
60
62
|
address public _stakingAddress;
|
61
|
-
|
63
|
+
ReleaseRegistry public _releaseRegistry;
|
62
64
|
|
63
65
|
// TODO
|
64
|
-
// 1). Registry and
|
66
|
+
// 1). Registry and ReleaseRegistry must be treated as whole single entity.
|
65
67
|
// But current limitations of EVM does not allow it -> require it to be splitted
|
66
|
-
// 2). Keep
|
68
|
+
// 2). Keep onlyReleaseRegistry modifier
|
67
69
|
// 3). Delete onlyRegistryService in favor of restricted
|
68
70
|
// 4). (For GlobalRegistry ONLY) make registerChainRegistry() restricted to GIF_ADMIN_ROLE
|
69
71
|
modifier onlyRegistryService() {
|
70
|
-
if(!
|
72
|
+
if(!_releaseRegistry.isActiveRegistryService(msg.sender)) {
|
71
73
|
revert ErrorRegistryCallerNotRegistryService();
|
72
74
|
}
|
73
75
|
_;
|
74
76
|
}
|
75
77
|
|
76
78
|
|
77
|
-
modifier
|
78
|
-
if(msg.sender != address(
|
79
|
-
revert
|
79
|
+
modifier onlyReleaseRegistry() {
|
80
|
+
if(msg.sender != address(_releaseRegistry)) {
|
81
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
80
82
|
}
|
81
83
|
_;
|
82
84
|
}
|
83
85
|
|
84
|
-
|
86
|
+
/// @dev Creates the registry contract and populates it with the protocol and registry objects.
|
87
|
+
/// Internally deploys the ChainNft contract.
|
85
88
|
constructor(RegistryAdmin admin)
|
86
89
|
InitializableCustom()
|
87
90
|
{
|
@@ -98,91 +101,98 @@ contract Registry is
|
|
98
101
|
}
|
99
102
|
|
100
103
|
|
101
|
-
/// @dev
|
102
|
-
/// MUST be called by release
|
104
|
+
/// @dev Wires release registry and token to registry (this contract).
|
105
|
+
/// MUST be called by release registry.
|
103
106
|
function initialize(
|
104
|
-
address
|
107
|
+
address releaseRegistry,
|
105
108
|
address tokenRegistry,
|
106
109
|
address staking
|
107
110
|
)
|
108
111
|
external
|
109
112
|
initializer()
|
110
113
|
{
|
111
|
-
|
114
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
112
115
|
_tokenRegistryAddress = tokenRegistry;
|
113
116
|
_stakingAddress = staking;
|
114
117
|
|
115
118
|
_stakingNftId = _registerStaking();
|
116
119
|
}
|
117
120
|
|
121
|
+
/// @inheritdoc IRegistry
|
122
|
+
function register(ObjectInfo memory info)
|
123
|
+
external
|
124
|
+
onlyRegistryService
|
125
|
+
returns(NftId nftId)
|
126
|
+
{
|
127
|
+
ObjectType objectType = info.objectType;
|
128
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
129
|
+
|
130
|
+
// check type combinations for core objects
|
131
|
+
if(info.objectAddress == address(0)) {
|
132
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
133
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
134
|
+
}
|
135
|
+
}
|
136
|
+
// check type combinations for contract objects
|
137
|
+
else {
|
138
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
139
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
nftId = _register(info);
|
144
|
+
}
|
145
|
+
|
146
|
+
|
147
|
+
/// @inheritdoc IRegistry
|
118
148
|
function registerService(
|
119
149
|
ObjectInfo memory info,
|
120
150
|
VersionPart version,
|
121
151
|
ObjectType domain
|
122
152
|
)
|
123
153
|
external
|
124
|
-
|
154
|
+
onlyReleaseRegistry
|
125
155
|
returns(NftId nftId)
|
126
156
|
{
|
157
|
+
// check service address is defined
|
127
158
|
address service = info.objectAddress;
|
128
|
-
/* must be guaranteed by release manager
|
129
159
|
if(service == address(0)) {
|
130
|
-
revert();
|
160
|
+
revert ErrorRegistryServiceAddressZero();
|
131
161
|
}
|
132
162
|
|
163
|
+
// check version is defined
|
133
164
|
if(version.eqz()) {
|
134
|
-
revert();
|
165
|
+
revert ErrorRegistryServiceVersionZero();
|
135
166
|
}
|
136
167
|
|
137
|
-
|
138
|
-
revert();
|
139
|
-
}
|
140
|
-
if(info.parentType != REGISTRY()) {
|
141
|
-
revert();
|
142
|
-
}
|
143
|
-
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
144
|
-
*/
|
145
|
-
|
168
|
+
// check domain is defined
|
146
169
|
if(domain.eqz()) {
|
147
170
|
revert ErrorRegistryDomainZero(service);
|
148
171
|
}
|
149
172
|
|
150
|
-
|
173
|
+
// check contract has not already been registered
|
174
|
+
if(_service[version][domain] != address(0)) {
|
151
175
|
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
152
176
|
}
|
153
|
-
|
154
|
-
_service[version][domain] = service;
|
155
177
|
|
178
|
+
// check service has proper type
|
179
|
+
if(info.objectType != SERVICE()) {
|
180
|
+
revert ErrorRegistryNotService(service, info.objectType);
|
181
|
+
}
|
182
|
+
|
183
|
+
// check that parent has registry type
|
184
|
+
if(info.parentNftId != _registryNftId) {
|
185
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
186
|
+
}
|
187
|
+
|
188
|
+
_service[version][domain] = service;
|
156
189
|
nftId = _register(info);
|
157
190
|
|
158
191
|
emit LogServiceRegistration(version, domain);
|
159
192
|
}
|
160
193
|
|
161
|
-
function register(ObjectInfo memory info)
|
162
|
-
external
|
163
|
-
onlyRegistryService
|
164
|
-
returns(NftId nftId)
|
165
|
-
{
|
166
|
-
ObjectType objectType = info.objectType;
|
167
|
-
ObjectType parentType = _info[info.parentNftId].objectType;
|
168
|
-
|
169
|
-
// only valid core types combinations
|
170
|
-
if(info.objectAddress == address(0))
|
171
|
-
{
|
172
|
-
if(_coreObjectCombinations[objectType][parentType] == false) {
|
173
|
-
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
174
|
-
}
|
175
|
-
}
|
176
|
-
else
|
177
|
-
{
|
178
|
-
if(_coreContractCombinations[objectType][parentType] == false) {
|
179
|
-
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
180
|
-
}
|
181
|
-
}
|
182
|
-
|
183
|
-
nftId = _register(info);
|
184
|
-
}
|
185
194
|
|
195
|
+
/// @inheritdoc IRegistry
|
186
196
|
function registerWithCustomType(ObjectInfo memory info)
|
187
197
|
external
|
188
198
|
onlyRegistryService
|
@@ -197,7 +207,6 @@ contract Registry is
|
|
197
207
|
|
198
208
|
if(
|
199
209
|
parentType == PROTOCOL() ||
|
200
|
-
parentType == REGISTRY() ||
|
201
210
|
parentType == SERVICE()
|
202
211
|
) {
|
203
212
|
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
@@ -209,21 +218,21 @@ contract Registry is
|
|
209
218
|
|
210
219
|
/// @dev earliest GIF major version
|
211
220
|
function getInitialVersion() external view returns (VersionPart) {
|
212
|
-
return
|
221
|
+
return _releaseRegistry.getInitialVersion();
|
213
222
|
}
|
214
223
|
|
215
224
|
/// @dev next GIF release version to be released
|
216
225
|
function getNextVersion() external view returns (VersionPart) {
|
217
|
-
return
|
226
|
+
return _releaseRegistry.getNextVersion();
|
218
227
|
}
|
219
228
|
|
220
229
|
/// @dev latest active GIF release version
|
221
230
|
function getLatestVersion() external view returns (VersionPart) {
|
222
|
-
return
|
231
|
+
return _releaseRegistry.getLatestVersion();
|
223
232
|
}
|
224
233
|
|
225
234
|
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
226
|
-
return
|
235
|
+
return _releaseRegistry.getReleaseInfo(version);
|
227
236
|
}
|
228
237
|
|
229
238
|
function getObjectCount() external view returns (uint256) {
|
@@ -277,7 +286,7 @@ contract Registry is
|
|
277
286
|
|
278
287
|
function isActiveRelease(VersionPart version) external view returns (bool)
|
279
288
|
{
|
280
|
-
return
|
289
|
+
return _releaseRegistry.isActiveRelease(version);
|
281
290
|
}
|
282
291
|
|
283
292
|
function getStakingAddress() external view returns (address staking) {
|
@@ -298,8 +307,8 @@ contract Registry is
|
|
298
307
|
service = _service[releaseVersion][serviceDomain];
|
299
308
|
}
|
300
309
|
|
301
|
-
function
|
302
|
-
return address(
|
310
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
311
|
+
return address(_releaseRegistry);
|
303
312
|
}
|
304
313
|
|
305
314
|
function getChainNftAddress() external view override returns (address) {
|
@@ -331,7 +340,6 @@ contract Registry is
|
|
331
340
|
// Internals
|
332
341
|
|
333
342
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
334
|
-
// TODO registration of precompile addresses
|
335
343
|
function _register(ObjectInfo memory info)
|
336
344
|
internal
|
337
345
|
returns(NftId nftId)
|
@@ -518,22 +526,18 @@ contract Registry is
|
|
518
526
|
});
|
519
527
|
|
520
528
|
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
529
|
+
|
521
530
|
// reverts if nftId was already minted
|
522
531
|
_chainNft.mint(stakingOwner, stakingId);
|
523
532
|
}
|
524
533
|
|
525
534
|
/// @dev defines which object - parent types relations are allowed to register
|
526
|
-
|
527
|
-
// 1) EACH object type MUST have only one parent type across ALL mappings
|
528
|
-
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
529
|
-
// 3) DO NOT use REGISTRY as object type
|
530
|
-
// 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
|
535
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
531
536
|
function _setupValidCoreTypesAndCombinations()
|
532
537
|
private
|
533
538
|
{
|
534
539
|
_coreTypes[REGISTRY()] = true;
|
535
540
|
_coreTypes[SERVICE()] = true;
|
536
|
-
_coreTypes[TOKEN()] = true;
|
537
541
|
_coreTypes[INSTANCE()] = true;
|
538
542
|
_coreTypes[PRODUCT()] = true;
|
539
543
|
_coreTypes[POOL()] = true;
|
@@ -545,28 +549,22 @@ contract Registry is
|
|
545
549
|
_coreTypes[STAKING()] = true;
|
546
550
|
_coreTypes[STAKE()] = true;
|
547
551
|
|
548
|
-
|
549
|
-
if(
|
550
|
-
|
551
|
-
// object is registry from different chain
|
552
|
-
// parent is global registry, this contract
|
553
|
-
_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
554
|
-
//_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
|
555
|
-
} else {
|
556
|
-
// we are not global registry
|
557
|
-
// object is local registry, this contract
|
558
|
-
// parent is global registry, object with 0 address or registry from mainnet???
|
552
|
+
// only global registry allowed to register registry (after initialization)
|
553
|
+
if(block.chainid == 1) {
|
554
|
+
_coreContractCombinations[REGISTRY()][REGISTRY()] = true;
|
559
555
|
}
|
556
|
+
|
557
|
+
// contracts with registry parent
|
560
558
|
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
561
|
-
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
562
|
-
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
563
559
|
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
564
560
|
|
561
|
+
// components with instance parent
|
565
562
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
566
563
|
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
567
564
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
568
565
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
569
566
|
|
567
|
+
// objects with coponent parents
|
570
568
|
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
571
569
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
572
570
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|