@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607
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 +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- 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 +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +29 -254
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
- 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 +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +230 -65
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +53 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- 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/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +54 -42
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -206
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -314
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +43 -39
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -36
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +68 -52
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +17 -46
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +57 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +24 -164
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -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 +182 -88
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -26
- 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 +1140 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +20 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- 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/IService.sol/IService.json +13 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +24 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- 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/MainnetContract.sol/MainnetContract.dbg.json +4 -0
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -0
- 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/Service.sol/Service.json +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
- 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 +44 -44
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +42 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- 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 +68 -4
- 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 +12 -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 +28 -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 +149 -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 +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +219 -6
- 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 +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -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 +590 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +15 -25
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -13
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +108 -89
- package/contracts/instance/InstanceAdmin.sol +202 -266
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -12
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +38 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +45 -33
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +16 -37
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +37 -22
- package/contracts/registry/GlobalRegistry.sol +89 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +25 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +129 -150
- package/contracts/registry/RegistryAdmin.sol +358 -150
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +45 -60
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/MainnetContract.sol +15 -0
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +41 -26
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +139 -125
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +73 -36
- package/contracts/staking/StakingService.sol +121 -86
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +401 -127
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- 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/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/registry/ReleaseManager.sol +0 -596
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
|
@@ -9,6 +9,7 @@ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
|
|
9
9
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
|
10
10
|
import {IRisk} from "../instance/module/IRisk.sol";
|
|
11
11
|
import {IApplicationService} from "./IApplicationService.sol";
|
|
12
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
|
12
13
|
import {IComponentService} from "../shared/IComponentService.sol";
|
|
13
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
|
14
15
|
import {IProductService} from "./IProductService.sol";
|
|
@@ -52,9 +53,92 @@ abstract contract Product is
|
|
|
52
53
|
Distribution _distribution;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
|
|
57
|
+
function calculatePremium(
|
|
58
|
+
Amount sumInsuredAmount,
|
|
59
|
+
RiskId riskId,
|
|
60
|
+
Seconds lifetime,
|
|
61
|
+
bytes memory applicationData,
|
|
62
|
+
NftId bundleNftId,
|
|
63
|
+
ReferralId referralId
|
|
64
|
+
)
|
|
65
|
+
external
|
|
66
|
+
view
|
|
67
|
+
override
|
|
68
|
+
returns (Amount premiumAmount)
|
|
69
|
+
{
|
|
70
|
+
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
|
71
|
+
getNftId(),
|
|
72
|
+
riskId,
|
|
73
|
+
sumInsuredAmount,
|
|
74
|
+
lifetime,
|
|
75
|
+
applicationData,
|
|
76
|
+
bundleNftId,
|
|
77
|
+
referralId
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
return AmountLib.toAmount(premium.premiumAmount);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function calculateNetPremium(
|
|
84
|
+
Amount sumInsuredAmount,
|
|
85
|
+
RiskId riskId,
|
|
86
|
+
Seconds lifetime,
|
|
87
|
+
bytes memory applicationData
|
|
88
|
+
)
|
|
89
|
+
external
|
|
90
|
+
view
|
|
91
|
+
virtual override
|
|
92
|
+
returns (Amount netPremiumAmount)
|
|
93
|
+
{
|
|
94
|
+
// default 10% of sum insured
|
|
95
|
+
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
function register()
|
|
100
|
+
external
|
|
101
|
+
virtual
|
|
102
|
+
onlyOwner()
|
|
103
|
+
{
|
|
104
|
+
_getProductStorage()._componentService.registerProduct();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
function getInitialProductInfo()
|
|
109
|
+
public
|
|
110
|
+
virtual
|
|
111
|
+
view
|
|
112
|
+
returns (IComponents.ProductInfo memory poolInfo)
|
|
113
|
+
{
|
|
114
|
+
ProductStorage storage $ = _getProductStorage();
|
|
115
|
+
|
|
116
|
+
return IComponents.ProductInfo({
|
|
117
|
+
distributionNftId: $._distributionNftId,
|
|
118
|
+
poolNftId: $._poolNftId,
|
|
119
|
+
productFee: FeeLib.zero(),
|
|
120
|
+
processingFee: FeeLib.zero(),
|
|
121
|
+
distributionFee: FeeLib.zero(),
|
|
122
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
|
123
|
+
poolFee: FeeLib.zero(),
|
|
124
|
+
stakingFee: FeeLib.zero(),
|
|
125
|
+
performanceFee: FeeLib.zero()
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function getPoolNftId() external view override returns (NftId poolNftId) {
|
|
130
|
+
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
|
134
|
+
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
function _initializeProduct(
|
|
56
139
|
address registry,
|
|
57
140
|
NftId instanceNftId,
|
|
141
|
+
IAuthorization authorization,
|
|
58
142
|
address initialOwner,
|
|
59
143
|
string memory name,
|
|
60
144
|
address token,
|
|
@@ -64,11 +148,21 @@ abstract contract Product is
|
|
|
64
148
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
|
65
149
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
|
66
150
|
)
|
|
67
|
-
|
|
151
|
+
internal
|
|
68
152
|
virtual
|
|
69
153
|
onlyInitializing()
|
|
70
154
|
{
|
|
71
|
-
|
|
155
|
+
_initializeInstanceLinkedComponent(
|
|
156
|
+
registry,
|
|
157
|
+
instanceNftId,
|
|
158
|
+
name,
|
|
159
|
+
token,
|
|
160
|
+
PRODUCT(),
|
|
161
|
+
authorization,
|
|
162
|
+
isInterceptor,
|
|
163
|
+
initialOwner,
|
|
164
|
+
registryData,
|
|
165
|
+
componentData);
|
|
72
166
|
|
|
73
167
|
ProductStorage storage $ = _getProductStorage();
|
|
74
168
|
// TODO add validation
|
|
@@ -88,27 +182,17 @@ abstract contract Product is
|
|
|
88
182
|
}
|
|
89
183
|
|
|
90
184
|
|
|
91
|
-
function
|
|
92
|
-
external
|
|
93
|
-
virtual
|
|
94
|
-
onlyOwner()
|
|
95
|
-
{
|
|
96
|
-
_getProductStorage()._componentService.registerProduct();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
function setFees(
|
|
185
|
+
function _setFees(
|
|
101
186
|
Fee memory productFee,
|
|
102
187
|
Fee memory processingFee
|
|
103
188
|
)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
restricted()
|
|
107
|
-
override
|
|
189
|
+
internal
|
|
190
|
+
virtual
|
|
108
191
|
{
|
|
109
192
|
_getProductStorage()._componentService.setProductFees(productFee, processingFee);
|
|
110
193
|
}
|
|
111
194
|
|
|
195
|
+
|
|
112
196
|
function _createRisk(
|
|
113
197
|
RiskId id,
|
|
114
198
|
bytes memory data
|
|
@@ -139,10 +223,12 @@ abstract contract Product is
|
|
|
139
223
|
);
|
|
140
224
|
}
|
|
141
225
|
|
|
226
|
+
|
|
142
227
|
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
|
143
228
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
|
144
229
|
}
|
|
145
230
|
|
|
231
|
+
|
|
146
232
|
function _createApplication(
|
|
147
233
|
address applicationOwner,
|
|
148
234
|
RiskId riskId,
|
|
@@ -290,77 +376,6 @@ abstract contract Product is
|
|
|
290
376
|
payoutId);
|
|
291
377
|
}
|
|
292
378
|
|
|
293
|
-
function calculatePremium(
|
|
294
|
-
Amount sumInsuredAmount,
|
|
295
|
-
RiskId riskId,
|
|
296
|
-
Seconds lifetime,
|
|
297
|
-
bytes memory applicationData,
|
|
298
|
-
NftId bundleNftId,
|
|
299
|
-
ReferralId referralId
|
|
300
|
-
)
|
|
301
|
-
external
|
|
302
|
-
view
|
|
303
|
-
override
|
|
304
|
-
returns (Amount premiumAmount)
|
|
305
|
-
{
|
|
306
|
-
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
|
307
|
-
getNftId(),
|
|
308
|
-
riskId,
|
|
309
|
-
sumInsuredAmount,
|
|
310
|
-
lifetime,
|
|
311
|
-
applicationData,
|
|
312
|
-
bundleNftId,
|
|
313
|
-
referralId
|
|
314
|
-
);
|
|
315
|
-
|
|
316
|
-
return AmountLib.toAmount(premium.premiumAmount);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
function calculateNetPremium(
|
|
320
|
-
Amount sumInsuredAmount,
|
|
321
|
-
RiskId riskId,
|
|
322
|
-
Seconds lifetime,
|
|
323
|
-
bytes memory applicationData
|
|
324
|
-
)
|
|
325
|
-
external
|
|
326
|
-
view
|
|
327
|
-
virtual override
|
|
328
|
-
returns (Amount netPremiumAmount)
|
|
329
|
-
{
|
|
330
|
-
// default 10% of sum insured
|
|
331
|
-
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
function getInitialProductInfo()
|
|
336
|
-
public
|
|
337
|
-
virtual
|
|
338
|
-
view
|
|
339
|
-
returns (IComponents.ProductInfo memory poolInfo)
|
|
340
|
-
{
|
|
341
|
-
ProductStorage storage $ = _getProductStorage();
|
|
342
|
-
|
|
343
|
-
return IComponents.ProductInfo({
|
|
344
|
-
distributionNftId: $._distributionNftId,
|
|
345
|
-
poolNftId: $._poolNftId,
|
|
346
|
-
productFee: FeeLib.zero(),
|
|
347
|
-
processingFee: FeeLib.zero(),
|
|
348
|
-
distributionFee: FeeLib.zero(),
|
|
349
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
|
350
|
-
poolFee: FeeLib.zero(),
|
|
351
|
-
stakingFee: FeeLib.zero(),
|
|
352
|
-
performanceFee: FeeLib.zero()
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
|
357
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
|
361
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
|
362
|
-
}
|
|
363
|
-
|
|
364
379
|
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
|
365
380
|
return RiskIdLib.toRiskId(riskName);
|
|
366
381
|
}
|
|
@@ -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,
|
|
@@ -75,11 +50,6 @@ contract ProductService is
|
|
|
75
50
|
}
|
|
76
51
|
|
|
77
52
|
|
|
78
|
-
function getDomain() public pure override returns(ObjectType) {
|
|
79
|
-
return PRODUCT();
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
83
53
|
function createRisk(
|
|
84
54
|
RiskId riskId,
|
|
85
55
|
bytes memory data
|
|
@@ -121,4 +91,9 @@ contract ProductService is
|
|
|
121
91
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
|
122
92
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
|
123
93
|
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
|
97
|
+
return PRODUCT();
|
|
98
|
+
}
|
|
124
99
|
}
|
|
@@ -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
|
|
|
@@ -13,13 +13,13 @@ contract ChainNft is ERC721Enumerable {
|
|
|
13
13
|
string public constant SYMBOL = "DIPNFT";
|
|
14
14
|
|
|
15
15
|
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
|
16
|
-
uint256 public constant GLOBAL_REGISTRY_ID = 2101;
|
|
16
|
+
uint256 public constant GLOBAL_REGISTRY_ID = 2101; //TODO make dependent of MAINNET_CHAIN_ID constant?
|
|
17
17
|
|
|
18
18
|
// custom errors
|
|
19
|
-
error
|
|
20
|
-
error
|
|
21
|
-
error
|
|
22
|
-
error
|
|
19
|
+
error ErrorChainNftCallerNotRegistry(address caller);
|
|
20
|
+
error ErrorChainNftRegistryAddressZero();
|
|
21
|
+
error ErrorChainNftUriEmpty();
|
|
22
|
+
error ErrorChainNftUriAlreadySet();
|
|
23
23
|
|
|
24
24
|
// contract state
|
|
25
25
|
|
|
@@ -33,31 +33,22 @@ contract ChainNft is ERC721Enumerable {
|
|
|
33
33
|
address private _registry;
|
|
34
34
|
|
|
35
35
|
// only used for _getNextTokenId
|
|
36
|
-
uint256 internal _chainIdInt;
|
|
37
36
|
uint256 internal _chainIdDigits;
|
|
38
37
|
uint256 internal _chainIdMultiplier;
|
|
39
38
|
uint256 internal _idNext;
|
|
40
39
|
uint256 internal _totalMinted;
|
|
41
40
|
|
|
42
41
|
modifier onlyRegistry() {
|
|
43
|
-
if (msg.sender != _registry) { revert
|
|
42
|
+
if (msg.sender != _registry) { revert ErrorChainNftCallerNotRegistry(msg.sender); }
|
|
44
43
|
_;
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
constructor(address registry) ERC721(NAME, SYMBOL) {
|
|
48
|
-
if (registry == address(0)) { revert
|
|
47
|
+
if (registry == address(0)) { revert ErrorChainNftRegistryAddressZero(); }
|
|
49
48
|
|
|
50
49
|
_registry = registry;
|
|
51
|
-
_chainIdInt = block.chainid;
|
|
52
|
-
_chainIdDigits = 0;
|
|
53
|
-
|
|
54
|
-
// count digis
|
|
55
|
-
uint256 num = _chainIdInt;
|
|
56
|
-
while (num != 0) {
|
|
57
|
-
_chainIdDigits++;
|
|
58
|
-
num /= 10;
|
|
59
|
-
}
|
|
60
50
|
|
|
51
|
+
_chainIdDigits = _calculateChainIdDigits(block.chainid);
|
|
61
52
|
_chainIdMultiplier = 10 ** _chainIdDigits;
|
|
62
53
|
|
|
63
54
|
// the first object registered through normal registration starts with id 4
|
|
@@ -131,8 +122,8 @@ contract ChainNft is ERC721Enumerable {
|
|
|
131
122
|
uint256 tokenId,
|
|
132
123
|
string memory uri
|
|
133
124
|
) external onlyRegistry {
|
|
134
|
-
if (bytes(uri).length == 0) { revert
|
|
135
|
-
if (bytes(_uri[tokenId]).length > 0) { revert
|
|
125
|
+
if (bytes(uri).length == 0) { revert ErrorChainNftUriEmpty(); }
|
|
126
|
+
if (bytes(_uri[tokenId]).length > 0) { revert ErrorChainNftUriAlreadySet(); }
|
|
136
127
|
|
|
137
128
|
_requireOwned(tokenId);
|
|
138
129
|
_uri[tokenId] = uri;
|
|
@@ -198,11 +189,25 @@ contract ChainNft is ERC721Enumerable {
|
|
|
198
189
|
* (42 * 10 ** 10 + 9876543210) * 100 + 10
|
|
199
190
|
* (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
|
|
200
191
|
*/
|
|
201
|
-
function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
|
|
192
|
+
function calculateTokenId(uint256 idIndex, uint chainId) public view returns (uint256 id) {
|
|
193
|
+
uint256 chainIdDigits;
|
|
194
|
+
uint256 chainIdMultiplier;
|
|
195
|
+
if(chainId == block.chainid) {
|
|
196
|
+
chainIdDigits = _chainIdDigits;
|
|
197
|
+
chainIdMultiplier = _chainIdMultiplier;
|
|
198
|
+
} else {
|
|
199
|
+
chainIdDigits = _calculateChainIdDigits(chainId);
|
|
200
|
+
chainIdMultiplier = 10 ** chainIdDigits;
|
|
201
|
+
}
|
|
202
|
+
|
|
202
203
|
id =
|
|
203
|
-
(idIndex *
|
|
204
|
+
(idIndex * chainIdMultiplier + chainId) *
|
|
204
205
|
100 +
|
|
205
|
-
|
|
206
|
+
chainIdDigits;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
function calculateTokenId(uint256 idIndex) public view returns (uint256) {
|
|
210
|
+
return calculateTokenId(idIndex, block.chainid);
|
|
206
211
|
}
|
|
207
212
|
|
|
208
213
|
function getNextTokenId() external view returns (uint256) {
|
|
@@ -213,4 +218,14 @@ contract ChainNft is ERC721Enumerable {
|
|
|
213
218
|
id = calculateTokenId(_idNext);
|
|
214
219
|
_idNext++;
|
|
215
220
|
}
|
|
221
|
+
|
|
222
|
+
function _calculateChainIdDigits(uint chainId) internal view returns (uint256) {
|
|
223
|
+
uint256 num = chainId;
|
|
224
|
+
uint256 digits = 0;
|
|
225
|
+
while (num != 0) {
|
|
226
|
+
digits++;
|
|
227
|
+
num /= 10;
|
|
228
|
+
}
|
|
229
|
+
return digits;
|
|
230
|
+
}
|
|
216
231
|
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
|
6
|
+
import {VersionPart} from "../type/Version.sol";
|
|
7
|
+
import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
|
|
8
|
+
|
|
9
|
+
import {IGlobalRegistry} from "./IGlobalRegistry.sol";
|
|
10
|
+
import {Registry} from "./Registry.sol";
|
|
11
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
|
12
|
+
import {MainnetContract} from "../shared/MainnetContract.sol";
|
|
13
|
+
|
|
14
|
+
contract GlobalRegistry is
|
|
15
|
+
MainnetContract,
|
|
16
|
+
Registry,
|
|
17
|
+
IGlobalRegistry
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
error ErrorGlobalRegistryChainRegistryAlreadyRegistered(uint chainId, address chainRegistry);
|
|
21
|
+
error ErrorGlobalRegistryChainRegistryAddressInvalid(uint chainId, address chainRegistry);
|
|
22
|
+
|
|
23
|
+
mapping(uint chanId => address registry) _registryAddressByChainId;
|
|
24
|
+
uint256[] _chainId;
|
|
25
|
+
|
|
26
|
+
constructor(RegistryAdmin admin) Registry(admin, address(this))
|
|
27
|
+
{}
|
|
28
|
+
|
|
29
|
+
/// @dev registers a registry contract for a specified chain
|
|
30
|
+
// only one chain registry per chain
|
|
31
|
+
// each chain registry have unique address (sort of share same address space)
|
|
32
|
+
function registerChainRegistry(uint chainId, address chainRegistryAddress)
|
|
33
|
+
external
|
|
34
|
+
restricted
|
|
35
|
+
returns (NftId chainRegistryNftId)
|
|
36
|
+
{
|
|
37
|
+
// TODO allow for the same address to be registered on multiple chains
|
|
38
|
+
if(_nftIdByAddress[chainRegistryAddress] != NftIdLib.zero()) {
|
|
39
|
+
revert ErrorGlobalRegistryChainRegistryAddressInvalid(chainId, chainRegistryAddress);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// calculate chain registry token id
|
|
43
|
+
uint chainRegistryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID, chainId);
|
|
44
|
+
chainRegistryNftId = NftIdLib.toNftId(chainRegistryId);
|
|
45
|
+
|
|
46
|
+
_info[chainRegistryNftId] = ObjectInfo({
|
|
47
|
+
nftId: chainRegistryNftId,
|
|
48
|
+
parentNftId: _registryNftId,
|
|
49
|
+
objectType: REGISTRY(),
|
|
50
|
+
isInterceptor: false,
|
|
51
|
+
objectAddress: chainRegistryAddress, // TODO consider "chainId:address" format
|
|
52
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
|
53
|
+
data: ""
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
_nftIdByAddress[chainRegistryAddress] = chainRegistryNftId;
|
|
57
|
+
_registryAddressByChainId[chainId] = chainRegistryAddress;
|
|
58
|
+
_chainId.push(chainId);
|
|
59
|
+
|
|
60
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, chainRegistryId);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//------------- public view functions -------------//
|
|
64
|
+
function getChainRegistryAddress(uint chainId) public view returns (address) {
|
|
65
|
+
return _registryAddressByChainId[chainId];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function getChainId(uint idx) public view returns (uint) {
|
|
69
|
+
return _chainId[idx];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function chainIds() public view returns (uint) {
|
|
73
|
+
return _chainId.length;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Internals
|
|
77
|
+
|
|
78
|
+
/// @dev global registry already registered, register specifics only
|
|
79
|
+
function _registerRegistry()
|
|
80
|
+
internal
|
|
81
|
+
virtual
|
|
82
|
+
override
|
|
83
|
+
returns (NftId)
|
|
84
|
+
{
|
|
85
|
+
_registryAddressByChainId[MAINNET_CHAIN_ID] = address(this);
|
|
86
|
+
_chainId.push(MAINNET_CHAIN_ID);
|
|
87
|
+
return _globalRegistryNftId;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {GIF_ADMIN_ROLE} from "../type/RoleId.sol";
|
|
5
|
+
|
|
6
|
+
import {IGlobalRegistry} from "./IGlobalRegistry.sol";
|
|
7
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
|
8
|
+
import {MainnetContract} from "../shared/MainnetContract.sol";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
contract GlobalRegistryAdmin is
|
|
12
|
+
MainnetContract,
|
|
13
|
+
RegistryAdmin
|
|
14
|
+
{
|
|
15
|
+
error ErrorGlobalRegistryAdminDeploymentNotOnMainnet();
|
|
16
|
+
|
|
17
|
+
constructor() RegistryAdmin()
|
|
18
|
+
{
|
|
19
|
+
if(block.chainid != 1) {
|
|
20
|
+
revert ErrorGlobalRegistryAdminDeploymentNotOnMainnet();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function _setupRegistry()
|
|
25
|
+
internal
|
|
26
|
+
override
|
|
27
|
+
onlyInitializing()
|
|
28
|
+
{
|
|
29
|
+
super._setupRegistry();
|
|
30
|
+
|
|
31
|
+
// global registry function authorization for gif admin role
|
|
32
|
+
FunctionInfo[] memory functions;
|
|
33
|
+
functions = new FunctionInfo[](1);
|
|
34
|
+
functions[0] = toFunction(IGlobalRegistry.registerChainRegistry.selector, "registerChainRegistry");
|
|
35
|
+
|
|
36
|
+
_authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {NftId} from "../type/NftId.sol";
|
|
5
|
+
|
|
6
|
+
import {IRegistry} from "./IRegistry.sol";
|
|
7
|
+
|
|
8
|
+
interface IGlobalRegistry is IRegistry {
|
|
9
|
+
// function registerChainRegistry(uint chainId, address deployer, bytes32 initCodeHash, bytes32 salt);
|
|
10
|
+
function registerChainRegistry(uint chainId, address chainRegistryAddress) external returns (NftId chainRegistryNftId);
|
|
11
|
+
|
|
12
|
+
function getChainRegistryAddress(uint chainId) external returns (address);
|
|
13
|
+
|
|
14
|
+
function getChainId(uint idx) external view returns (uint);
|
|
15
|
+
|
|
16
|
+
function chainIds() external view returns (uint);
|
|
17
|
+
}
|
|
@@ -7,21 +7,28 @@ 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
|
+
// initialize
|
|
21
|
+
error ErrorRegistryCallerNotDeployer();
|
|
22
|
+
|
|
17
23
|
// registerService()
|
|
18
|
-
error
|
|
24
|
+
error ErrorRegistryCallerNotReleaseRegistry();
|
|
25
|
+
error ErrorRegistryServiceAddressZero();
|
|
26
|
+
error ErrorRegistryServiceVersionZero();
|
|
27
|
+
error ErrorRegistryNotService(address service, ObjectType objectType);
|
|
28
|
+
error ErrorRegistryServiceParentNotRegistry(NftId parentNftId);
|
|
19
29
|
error ErrorRegistryDomainZero(address service);
|
|
20
30
|
error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
|
|
21
31
|
|
|
22
|
-
// register()
|
|
23
|
-
error ErrorRegistryCallerNotRegistryService();
|
|
24
|
-
|
|
25
32
|
// registerWithCustomTypes()
|
|
26
33
|
error ErrorRegistryCoreTypeRegistration();
|
|
27
34
|
|
|
@@ -40,30 +47,34 @@ interface IRegistry is IERC165 {
|
|
|
40
47
|
bytes data;
|
|
41
48
|
}
|
|
42
49
|
|
|
43
|
-
|
|
44
50
|
struct ReleaseInfo {
|
|
45
51
|
VersionPart version;
|
|
46
52
|
bytes32 salt;
|
|
47
53
|
address[] addresses;
|
|
48
54
|
string[] names;
|
|
49
|
-
RoleId[][] serviceRoles;
|
|
50
|
-
string[][] serviceRoleNames;
|
|
51
|
-
RoleId[][] functionRoles;
|
|
52
|
-
string[][] functionRoleNames;
|
|
53
|
-
bytes4[][][] selectors;
|
|
54
55
|
ObjectType[] domains;
|
|
55
56
|
Timestamp activatedAt;
|
|
56
57
|
Timestamp disabledAt;
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
/// @dev Register an object with a known core type.
|
|
61
|
+
/// The function returns a newly minted object NFT ID.
|
|
62
|
+
/// May not be used to register services.
|
|
63
|
+
function register(ObjectInfo memory info) external returns (NftId nftId);
|
|
64
|
+
|
|
65
|
+
/// @dev Register a service with using the provided domain and version.
|
|
66
|
+
/// The function returns a newly minted service NFT ID.
|
|
67
|
+
/// May only be used to register services.
|
|
59
68
|
function registerService(
|
|
60
69
|
ObjectInfo memory serviceInfo,
|
|
61
70
|
VersionPart serviceVersion,
|
|
62
71
|
ObjectType serviceDomain
|
|
63
72
|
) external returns(NftId nftId);
|
|
64
73
|
|
|
65
|
-
|
|
66
|
-
|
|
74
|
+
/// @dev Register an object with a custom type.
|
|
75
|
+
/// The function returns a newly minted object NFT ID.
|
|
76
|
+
/// This function is reserved for GIF releases > 3.
|
|
77
|
+
/// May not be used to register known core types.
|
|
67
78
|
function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
|
|
68
79
|
|
|
69
80
|
function getInitialVersion() external view returns (VersionPart);
|
|
@@ -110,9 +121,7 @@ interface IRegistry is IERC165 {
|
|
|
110
121
|
// TODO refactor the address getters below to contract getters
|
|
111
122
|
function getChainNftAddress() external view returns (address);
|
|
112
123
|
|
|
113
|
-
function
|
|
114
|
-
|
|
115
|
-
function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
|
|
124
|
+
function getReleaseRegistryAddress() external view returns (address);
|
|
116
125
|
|
|
117
126
|
function getStakingAddress() external view returns (address);
|
|
118
127
|
|
|
@@ -120,7 +129,5 @@ interface IRegistry is IERC165 {
|
|
|
120
129
|
|
|
121
130
|
function getRegistryAdminAddress() external view returns (address);
|
|
122
131
|
|
|
123
|
-
function getDipTokenAddress() external view returns (address);
|
|
124
|
-
|
|
125
132
|
function getAuthority() external view returns (address);
|
|
126
133
|
}
|