@etherisc/gif-next 0.0.2-7177fd8-761 → 0.0.2-71cf987-554
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 +5 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +121 -70
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +124 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -37
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +157 -273
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +91 -239
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +188 -290
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +107 -123
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +78 -92
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +248 -164
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +85 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +131 -247
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +66 -80
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +79 -227
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -235
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -110
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +91 -77
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +232 -131
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -222
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +300 -319
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +136 -243
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +280 -235
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -112
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -97
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -295
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -131
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +136 -243
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +289 -32
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +495 -93
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +219 -166
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +377 -235
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +68 -201
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +341 -324
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +122 -132
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +66 -80
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +79 -227
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +288 -16
- 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 +82 -55
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +167 -270
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +100 -97
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- 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/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/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 +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +130 -120
- package/contracts/authorization/AccessManagerCloneable.sol +67 -3
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -4
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +7 -17
- package/contracts/distribution/DistributionService.sol +82 -50
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +8 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +10 -30
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +102 -73
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +33 -88
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +92 -36
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +10 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +49 -29
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +156 -136
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +22 -13
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +310 -115
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -2
- package/contracts/product/PolicyService.sol +220 -129
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +49 -53
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +108 -66
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +147 -179
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseAdmin.sol +248 -0
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +223 -203
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/shared/Component.sol +36 -52
- package/contracts/shared/ComponentService.sol +245 -140
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -3
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -17
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +99 -22
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +13 -32
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +17 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +2 -11
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -2,22 +2,24 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
5
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
5
6
|
import {IAccess} from "../authorization/IAccess.sol";
|
6
7
|
import {IRegistry} from "./IRegistry.sol";
|
7
8
|
import {IService} from "../shared/IService.sol";
|
8
9
|
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
9
10
|
import {IStaking} from "../staking/IStaking.sol";
|
10
|
-
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
|
+
import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
12
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
12
13
|
import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
14
|
import {StakingStore} from "../staking/StakingStore.sol";
|
14
|
-
import {
|
15
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
16
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
16
|
-
import {VersionPart} from "../type/Version.sol";
|
17
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
17
18
|
|
18
19
|
/*
|
19
20
|
1) GIF_MANAGER_ROLE
|
20
21
|
- can have arbitrary number of members
|
22
|
+
- responsible for release preparation
|
21
23
|
- responsible for services registrations
|
22
24
|
- responsible for token registration and activation
|
23
25
|
|
@@ -25,40 +27,44 @@ import {VersionPart} from "../type/Version.sol";
|
|
25
27
|
- admin of GIF_MANAGER_ROLE
|
26
28
|
- MUST have 1 member at any time
|
27
29
|
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
28
|
-
- responsible for creation and
|
29
|
-
|
30
|
-
createServiceTarget(type, release)
|
31
|
-
createServiceRole(type,release)
|
32
|
-
getServiceRole(type, release)
|
30
|
+
- responsible for creation, activation and locking/unlocking of releases
|
33
31
|
*/
|
32
|
+
|
33
|
+
/// @dev IMPORTANT: MUST not use authority().setLocked()
|
34
34
|
contract RegistryAdmin is
|
35
35
|
AccessAdmin
|
36
36
|
{
|
37
|
-
|
38
|
-
|
37
|
+
/// @dev gif core roles
|
39
38
|
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
40
39
|
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
41
|
-
string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
|
42
40
|
string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
|
43
|
-
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
44
41
|
string public constant STAKING_ROLE_NAME = "StakingRole";
|
45
42
|
|
43
|
+
/// @dev gif roles for external contracts
|
44
|
+
string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
|
45
|
+
string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
|
46
|
+
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
47
|
+
|
48
|
+
/// @dev gif core targets
|
49
|
+
string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
|
50
|
+
string public constant REGISTRY_TARGET_NAME = "Registry";
|
46
51
|
string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
|
47
|
-
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
48
52
|
string public constant STAKING_TARGET_NAME = "Staking";
|
49
53
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
54
|
+
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
55
|
+
string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
|
50
56
|
|
51
57
|
uint8 public constant MAX_NUM_RELEASES = 99;
|
52
58
|
|
53
|
-
|
54
|
-
|
59
|
+
address internal _registry;
|
55
60
|
address private _releaseRegistry;
|
56
61
|
address private _tokenRegistry;
|
57
62
|
address private _staking;
|
58
63
|
address private _stakingStore;
|
59
|
-
bool private _setupCompleted;
|
60
64
|
|
61
|
-
constructor()
|
65
|
+
constructor() {
|
66
|
+
initialize(new AccessManagerCloneable());
|
67
|
+
}
|
62
68
|
|
63
69
|
function completeSetup(
|
64
70
|
IRegistry registry,
|
@@ -66,42 +72,35 @@ contract RegistryAdmin is
|
|
66
72
|
address gifManager
|
67
73
|
)
|
68
74
|
external
|
75
|
+
reinitializer(type(uint8).max)
|
69
76
|
onlyDeployer()
|
70
77
|
{
|
71
|
-
|
72
|
-
|
78
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
79
|
+
accessManager.completeSetup(address(registry), VersionPartLib.toVersionPart(type(uint8).max));
|
73
80
|
|
81
|
+
_registry = address(registry);
|
74
82
|
_releaseRegistry = registry.getReleaseRegistryAddress();
|
75
83
|
_tokenRegistry = registry.getTokenRegistryAddress();
|
76
84
|
_staking = registry.getStakingAddress();
|
77
85
|
_stakingStore = address(
|
78
86
|
IStaking(_staking).getStakingStore());
|
79
87
|
|
80
|
-
|
81
|
-
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
|
88
|
+
_createTargets();
|
82
89
|
|
83
90
|
_setupGifAdminRole(gifAdmin);
|
84
91
|
_setupGifManagerRole(gifManager);
|
85
92
|
|
86
|
-
|
87
|
-
|
93
|
+
_setupRegistryRoles();
|
94
|
+
_setupStakingRoles();
|
88
95
|
}
|
89
96
|
|
90
|
-
|
91
|
-
/// @dev Sets up authorizaion for specified service.
|
92
|
-
/// For all authorized services its authorized functions are enabled.
|
93
|
-
/// Permissioned function: Access is restricted to release manager.
|
94
|
-
function authorizeService(
|
95
|
-
IServiceAuthorization serviceAuthorization,
|
96
|
-
IService service
|
97
|
-
)
|
97
|
+
/*function transferAdmin(address to)
|
98
98
|
external
|
99
|
-
restricted
|
99
|
+
restricted // only with GIF_ADMIN_ROLE or nft owner
|
100
100
|
{
|
101
|
-
|
102
|
-
|
103
|
-
}
|
104
|
-
|
101
|
+
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
102
|
+
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
103
|
+
}*/
|
105
104
|
|
106
105
|
function grantServiceRoleForAllVersions(IService service, ObjectType domain)
|
107
106
|
external
|
@@ -112,92 +111,6 @@ contract RegistryAdmin is
|
|
112
111
|
address(service));
|
113
112
|
}
|
114
113
|
|
115
|
-
|
116
|
-
function _createServiceTargetAndRole(IService service)
|
117
|
-
private
|
118
|
-
{
|
119
|
-
ObjectType serviceDomain = service.getDomain();
|
120
|
-
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
121
|
-
VersionPart version = service.getVersion().toMajorPart();
|
122
|
-
uint256 versionInt = version.toInt();
|
123
|
-
|
124
|
-
// create service target
|
125
|
-
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
126
|
-
baseName, "Service", versionInt);
|
127
|
-
|
128
|
-
_createTarget(
|
129
|
-
address(service),
|
130
|
-
serviceTargetName,
|
131
|
-
true,
|
132
|
-
false);
|
133
|
-
|
134
|
-
// create service role
|
135
|
-
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
136
|
-
serviceDomain,
|
137
|
-
version);
|
138
|
-
|
139
|
-
_createRole(
|
140
|
-
serviceRoleId,
|
141
|
-
toRole({
|
142
|
-
adminRoleId: ADMIN_ROLE(),
|
143
|
-
roleType: RoleType.Contract,
|
144
|
-
maxMemberCount: 1,
|
145
|
-
name: ObjectTypeLib.toVersionedName(
|
146
|
-
baseName,
|
147
|
-
"ServiceRole",
|
148
|
-
versionInt)}));
|
149
|
-
|
150
|
-
_grantRoleToAccount(
|
151
|
-
serviceRoleId,
|
152
|
-
address(service));
|
153
|
-
}
|
154
|
-
|
155
|
-
|
156
|
-
function _authorizeServiceFunctions(
|
157
|
-
IServiceAuthorization serviceAuthorization,
|
158
|
-
IService service
|
159
|
-
)
|
160
|
-
private
|
161
|
-
{
|
162
|
-
ObjectType serviceDomain = service.getDomain();
|
163
|
-
ObjectType authorizedDomain;
|
164
|
-
RoleId authorizedRoleId;
|
165
|
-
|
166
|
-
VersionPart release = service.getVersion().toMajorPart();
|
167
|
-
ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
|
168
|
-
|
169
|
-
for (uint256 i = 0; i < authorizedDomains.length; i++) {
|
170
|
-
authorizedDomain = authorizedDomains[i];
|
171
|
-
|
172
|
-
// derive authorized role from authorized domain
|
173
|
-
if (authorizedDomain == ALL()) {
|
174
|
-
authorizedRoleId = PUBLIC_ROLE();
|
175
|
-
} else {
|
176
|
-
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
177
|
-
authorizedDomain,
|
178
|
-
release);
|
179
|
-
}
|
180
|
-
|
181
|
-
// get authorized functions for authorized domain
|
182
|
-
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
183
|
-
serviceDomain,
|
184
|
-
authorizedDomain);
|
185
|
-
|
186
|
-
_authorizeTargetFunctions(
|
187
|
-
address(service),
|
188
|
-
authorizedRoleId,
|
189
|
-
authorizatedFunctions);
|
190
|
-
}
|
191
|
-
}
|
192
|
-
|
193
|
-
/*function transferAdmin(address to)
|
194
|
-
external
|
195
|
-
restricted // only with GIF_ADMIN_ROLE or nft owner
|
196
|
-
{
|
197
|
-
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
198
|
-
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
199
|
-
}*/
|
200
|
-
|
201
114
|
//--- view functions ----------------------------------------------------//
|
202
115
|
|
203
116
|
function getGifAdminRole() external view returns (RoleId) {
|
@@ -208,10 +121,29 @@ contract RegistryAdmin is
|
|
208
121
|
return GIF_MANAGER_ROLE();
|
209
122
|
}
|
210
123
|
|
211
|
-
//--- private functions
|
124
|
+
//--- private initialization functions -------------------------------------------//
|
125
|
+
|
126
|
+
function _createTargets()
|
127
|
+
private
|
128
|
+
onlyInitializing()
|
129
|
+
{
|
130
|
+
IStaking staking = IStaking(_staking);
|
131
|
+
address tokenHandler = address(staking.getTokenHandler());
|
212
132
|
|
213
|
-
|
214
|
-
|
133
|
+
_createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
|
134
|
+
_createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
|
135
|
+
_createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
|
136
|
+
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
137
|
+
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
138
|
+
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
|
139
|
+
_createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
|
140
|
+
}
|
141
|
+
|
142
|
+
function _setupGifAdminRole(address gifAdmin)
|
143
|
+
private
|
144
|
+
onlyInitializing()
|
145
|
+
{
|
146
|
+
// create gif admin role
|
215
147
|
_createRole(
|
216
148
|
GIF_ADMIN_ROLE(),
|
217
149
|
toRole({
|
@@ -220,29 +152,36 @@ contract RegistryAdmin is
|
|
220
152
|
maxMemberCount: 2, // TODO decide on max member count
|
221
153
|
name: GIF_ADMIN_ROLE_NAME}));
|
222
154
|
|
223
|
-
// for
|
155
|
+
// grant permissions to the gif admin role for registry contract
|
224
156
|
FunctionInfo[] memory functions;
|
225
|
-
functions = new FunctionInfo[](
|
157
|
+
functions = new FunctionInfo[](1);
|
158
|
+
functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
|
159
|
+
_authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
|
160
|
+
|
161
|
+
// grant permissions to the gif admin role for release registry contract
|
162
|
+
functions = new FunctionInfo[](3);
|
226
163
|
functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
|
227
164
|
functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
|
228
|
-
functions[2] = toFunction(ReleaseRegistry.
|
229
|
-
functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
|
165
|
+
functions[2] = toFunction(ReleaseRegistry.setActive.selector, "setActive");
|
230
166
|
_authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
|
231
167
|
|
232
168
|
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
233
169
|
}
|
234
170
|
|
235
|
-
function _setupGifManagerRole(address gifManager)
|
236
|
-
|
171
|
+
function _setupGifManagerRole(address gifManager)
|
172
|
+
private
|
173
|
+
onlyInitializing()
|
174
|
+
{
|
175
|
+
// create gif manager role
|
237
176
|
_createRole(
|
238
177
|
GIF_MANAGER_ROLE(),
|
239
178
|
toRole({
|
240
179
|
adminRoleId: ADMIN_ROLE(),
|
241
180
|
roleType: RoleType.Gif,
|
242
|
-
maxMemberCount: 1,
|
181
|
+
maxMemberCount: 1, // TODO decide on max member count
|
243
182
|
name: GIF_MANAGER_ROLE_NAME}));
|
244
183
|
|
245
|
-
// for
|
184
|
+
// grant permissions to the gif manager role for token registry contract
|
246
185
|
FunctionInfo[] memory functions;
|
247
186
|
functions = new FunctionInfo[](5);
|
248
187
|
functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
|
@@ -253,7 +192,7 @@ contract RegistryAdmin is
|
|
253
192
|
functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
|
254
193
|
_authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
|
255
194
|
|
256
|
-
// for
|
195
|
+
// grant permissions to the gif manager role for release registry contract
|
257
196
|
functions = new FunctionInfo[](2);
|
258
197
|
functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
|
259
198
|
functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
|
@@ -262,11 +201,12 @@ contract RegistryAdmin is
|
|
262
201
|
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
263
202
|
}
|
264
203
|
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
204
|
+
function _setupRegistryRoles()
|
205
|
+
private
|
206
|
+
onlyInitializing()
|
207
|
+
{
|
208
|
+
// TODO use RELEASE_REGISTRY_ROLE instead
|
209
|
+
// create and grant release registry role
|
270
210
|
RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
|
271
211
|
_createRole(
|
272
212
|
releaseRegistryRoleId,
|
@@ -275,22 +215,79 @@ contract RegistryAdmin is
|
|
275
215
|
roleType: RoleType.Contract,
|
276
216
|
maxMemberCount: 1,
|
277
217
|
name: RELEASE_REGISTRY_ROLE_NAME}));
|
218
|
+
_grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
|
278
219
|
|
220
|
+
// grant permissions to the release registry role for release admin contract
|
279
221
|
FunctionInfo[] memory functions;
|
280
|
-
functions = new FunctionInfo[](
|
281
|
-
functions[0] = toFunction(RegistryAdmin.
|
282
|
-
functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
222
|
+
functions = new FunctionInfo[](1);
|
223
|
+
functions[0] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
283
224
|
_authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
|
284
225
|
|
285
|
-
|
226
|
+
// grant permissions to the release registry role for registry contract
|
227
|
+
functions = new FunctionInfo[](1);
|
228
|
+
functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
|
229
|
+
_authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
|
230
|
+
|
231
|
+
// create registry service role
|
232
|
+
RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
|
233
|
+
_createRole(
|
234
|
+
registryServiceRoleId,
|
235
|
+
toRole({
|
236
|
+
adminRoleId: ADMIN_ROLE(),
|
237
|
+
roleType: RoleType.Contract,
|
238
|
+
maxMemberCount: MAX_NUM_RELEASES,
|
239
|
+
name: REGISTRY_SERVICE_ROLE_NAME}));
|
240
|
+
|
241
|
+
// grant permissions to the registry service role for registry contract
|
242
|
+
functions = new FunctionInfo[](2);
|
243
|
+
functions[0] = toFunction(IRegistry.register.selector, "register");
|
244
|
+
functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
|
245
|
+
_authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
|
286
246
|
}
|
287
247
|
|
288
248
|
|
289
|
-
function
|
290
|
-
|
291
|
-
|
249
|
+
function _setupStakingRoles()
|
250
|
+
private
|
251
|
+
onlyInitializing()
|
252
|
+
{
|
253
|
+
// create and grant staking contract role
|
254
|
+
RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
|
255
|
+
_createRole(
|
256
|
+
stakingRoleId,
|
257
|
+
toRole({
|
258
|
+
adminRoleId: ADMIN_ROLE(),
|
259
|
+
roleType: RoleType.Contract,
|
260
|
+
maxMemberCount: 1,
|
261
|
+
name: STAKING_ROLE_NAME}));
|
262
|
+
_grantRoleToAccount(stakingRoleId, _staking);
|
292
263
|
|
293
|
-
// staking
|
264
|
+
// grant permissions to the staking role for staking store contract
|
265
|
+
FunctionInfo[] memory functions;
|
266
|
+
functions = new FunctionInfo[](14);
|
267
|
+
functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
|
268
|
+
functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
|
269
|
+
functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
|
270
|
+
functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
|
271
|
+
functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
|
272
|
+
functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
273
|
+
functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
274
|
+
functions[7] = toFunction(StakingStore.create.selector, "create");
|
275
|
+
functions[8] = toFunction(StakingStore.update.selector, "update");
|
276
|
+
functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
|
277
|
+
functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
|
278
|
+
functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
|
279
|
+
functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
|
280
|
+
functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
|
281
|
+
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
282
|
+
|
283
|
+
// grant permissions to the staking role for token handler contract
|
284
|
+
IStaking staking = IStaking(_staking);
|
285
|
+
functions = new FunctionInfo[](2);
|
286
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
287
|
+
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
288
|
+
_authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
|
289
|
+
|
290
|
+
// create staking service role
|
294
291
|
RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
|
295
292
|
_createRole(
|
296
293
|
stakingServiceRoleId,
|
@@ -300,7 +297,7 @@ contract RegistryAdmin is
|
|
300
297
|
maxMemberCount: MAX_NUM_RELEASES,
|
301
298
|
name: STAKING_SERVICE_ROLE_NAME}));
|
302
299
|
|
303
|
-
|
300
|
+
// grant permissions to the staking service role for staking contract
|
304
301
|
functions = new FunctionInfo[](13);
|
305
302
|
functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
|
306
303
|
functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
@@ -317,7 +314,7 @@ contract RegistryAdmin is
|
|
317
314
|
functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
|
318
315
|
_authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
|
319
316
|
|
320
|
-
//
|
317
|
+
// create pool service role
|
321
318
|
RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
|
322
319
|
_createRole(
|
323
320
|
poolServiceRoleId,
|
@@ -327,39 +324,10 @@ contract RegistryAdmin is
|
|
327
324
|
maxMemberCount: MAX_NUM_RELEASES,
|
328
325
|
name: POOL_SERVICE_ROLE_NAME}));
|
329
326
|
|
330
|
-
// staking
|
327
|
+
// grant permissions to the pool service role for staking contract
|
331
328
|
functions = new FunctionInfo[](2);
|
332
329
|
functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
333
330
|
functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
334
331
|
_authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
|
335
|
-
|
336
|
-
// staking store function authorizations
|
337
|
-
RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
|
338
|
-
_createRole(
|
339
|
-
stakingRoleId,
|
340
|
-
toRole({
|
341
|
-
adminRoleId: ADMIN_ROLE(),
|
342
|
-
roleType: RoleType.Contract,
|
343
|
-
maxMemberCount: 1,
|
344
|
-
name: STAKING_ROLE_NAME}));
|
345
|
-
|
346
|
-
functions = new FunctionInfo[](14);
|
347
|
-
functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
|
348
|
-
functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
|
349
|
-
functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
|
350
|
-
functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
|
351
|
-
functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
|
352
|
-
functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
353
|
-
functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
354
|
-
functions[7] = toFunction(StakingStore.create.selector, "create");
|
355
|
-
functions[8] = toFunction(StakingStore.update.selector, "update");
|
356
|
-
functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
|
357
|
-
functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
|
358
|
-
functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
|
359
|
-
functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
|
360
|
-
functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
|
361
|
-
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
362
|
-
|
363
|
-
_grantRoleToAccount(stakingRoleId, _staking);
|
364
332
|
}
|
365
333
|
}
|
@@ -18,8 +18,6 @@ contract RegistryService is
|
|
18
18
|
Service,
|
19
19
|
IRegistryService
|
20
20
|
{
|
21
|
-
using NftIdLib for NftId;
|
22
|
-
|
23
21
|
// TODO update to real hash when registry is stable
|
24
22
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
25
23
|
|
@@ -39,8 +37,8 @@ contract RegistryService is
|
|
39
37
|
address initialAuthority
|
40
38
|
) = abi.decode(data, (address, address));
|
41
39
|
|
42
|
-
|
43
|
-
|
40
|
+
_initializeService(registryAddress, initialAuthority, owner);
|
41
|
+
_registerInterface(type(IRegistryService).interfaceId);
|
44
42
|
}
|
45
43
|
|
46
44
|
|
@@ -60,7 +58,7 @@ contract RegistryService is
|
|
60
58
|
function registerInstance(IRegisterable instance, address owner)
|
61
59
|
external
|
62
60
|
virtual
|
63
|
-
restricted
|
61
|
+
restricted()
|
64
62
|
returns(
|
65
63
|
IRegistry.ObjectInfo memory info
|
66
64
|
)
|
@@ -75,29 +73,33 @@ contract RegistryService is
|
|
75
73
|
instance.linkToRegisteredNftId(); // asume safe
|
76
74
|
}
|
77
75
|
|
78
|
-
function registerProduct(
|
76
|
+
function registerProduct(
|
77
|
+
IComponent product,
|
78
|
+
address initialOwner
|
79
|
+
)
|
79
80
|
external
|
80
|
-
|
81
|
+
virtual
|
82
|
+
restricted()
|
81
83
|
returns(
|
82
84
|
IRegistry.ObjectInfo memory info
|
83
85
|
)
|
84
86
|
{
|
85
|
-
// CAN revert if no ERC165 support -> will revert with empty message
|
86
87
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
87
88
|
revert ErrorRegistryServiceNotProduct(address(product));
|
88
89
|
}
|
89
90
|
|
90
|
-
info = _getAndVerifyContractInfo(product, PRODUCT(),
|
91
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
|
91
92
|
info.nftId = getRegistry().register(info);
|
92
93
|
}
|
93
94
|
|
94
|
-
function
|
95
|
+
function registerProductLinkedComponent(
|
95
96
|
IComponent component,
|
96
97
|
ObjectType objectType,
|
97
98
|
address initialOwner
|
98
99
|
)
|
99
100
|
external
|
100
|
-
|
101
|
+
virtual
|
102
|
+
restricted()
|
101
103
|
returns(
|
102
104
|
IRegistry.ObjectInfo memory info
|
103
105
|
)
|
@@ -107,43 +109,18 @@ contract RegistryService is
|
|
107
109
|
revert ErrorRegistryServiceNotComponent(address(component));
|
108
110
|
}
|
109
111
|
|
110
|
-
|
111
|
-
|
112
|
-
}
|
113
|
-
|
114
|
-
function registerPool(IComponent pool, address owner)
|
115
|
-
external
|
116
|
-
restricted
|
117
|
-
returns(
|
118
|
-
IRegistry.ObjectInfo memory info
|
119
|
-
)
|
120
|
-
{
|
121
|
-
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
122
|
-
revert ErrorRegistryServiceNotPool(address(pool));
|
123
|
-
}
|
124
|
-
|
125
|
-
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
126
|
-
info.nftId = getRegistry().register(info);
|
127
|
-
}
|
128
|
-
|
129
|
-
function registerDistribution(IComponent distribution, address owner)
|
130
|
-
external
|
131
|
-
restricted
|
132
|
-
returns(
|
133
|
-
IRegistry.ObjectInfo memory info
|
134
|
-
)
|
135
|
-
{
|
136
|
-
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
137
|
-
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
112
|
+
if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
|
113
|
+
revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
|
138
114
|
}
|
139
115
|
|
140
|
-
info = _getAndVerifyContractInfo(
|
116
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
141
117
|
info.nftId = getRegistry().register(info);
|
142
118
|
}
|
143
119
|
|
144
120
|
function registerDistributor(IRegistry.ObjectInfo memory info)
|
145
121
|
external
|
146
|
-
|
122
|
+
virtual
|
123
|
+
restricted()
|
147
124
|
returns(NftId nftId)
|
148
125
|
{
|
149
126
|
_verifyObjectInfo(info, DISTRIBUTOR());
|
@@ -152,7 +129,8 @@ contract RegistryService is
|
|
152
129
|
|
153
130
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
154
131
|
external
|
155
|
-
|
132
|
+
virtual
|
133
|
+
restricted()
|
156
134
|
returns(NftId nftId)
|
157
135
|
{
|
158
136
|
_verifyObjectInfo(info, POLICY());
|
@@ -161,7 +139,8 @@ contract RegistryService is
|
|
161
139
|
|
162
140
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
163
141
|
external
|
164
|
-
|
142
|
+
virtual
|
143
|
+
restricted()
|
165
144
|
returns(NftId nftId)
|
166
145
|
{
|
167
146
|
_verifyObjectInfo(info, BUNDLE());
|
@@ -170,7 +149,8 @@ contract RegistryService is
|
|
170
149
|
|
171
150
|
function registerStake(IRegistry.ObjectInfo memory info)
|
172
151
|
external
|
173
|
-
|
152
|
+
virtual
|
153
|
+
restricted()
|
174
154
|
returns(NftId nftId)
|
175
155
|
{
|
176
156
|
_verifyObjectInfo(info, STAKE());
|
@@ -185,6 +165,7 @@ contract RegistryService is
|
|
185
165
|
address expectedOwner // assume can be 0 when given by other service
|
186
166
|
)
|
187
167
|
internal
|
168
|
+
virtual
|
188
169
|
view
|
189
170
|
returns(
|
190
171
|
IRegistry.ObjectInfo memory info
|
@@ -224,6 +205,7 @@ contract RegistryService is
|
|
224
205
|
ObjectType expectedType
|
225
206
|
)
|
226
207
|
internal
|
208
|
+
virtual
|
227
209
|
view
|
228
210
|
{
|
229
211
|
if(info.objectAddress > address(0)) {
|
@@ -240,8 +222,15 @@ contract RegistryService is
|
|
240
222
|
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
241
223
|
}
|
242
224
|
|
243
|
-
if(
|
244
|
-
revert
|
225
|
+
if(owner == msg.sender) {
|
226
|
+
revert ErrorRegistryServiceInvalidInitialOwner(owner);
|
227
|
+
}
|
228
|
+
|
229
|
+
if(getRegistry().isRegistered(owner)) {
|
230
|
+
ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
|
231
|
+
if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
|
232
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
233
|
+
}
|
245
234
|
}
|
246
235
|
}
|
247
236
|
|
@@ -21,7 +21,6 @@ contract RegistryServiceManager is
|
|
21
21
|
address registry, // used by implementation
|
22
22
|
bytes32 salt
|
23
23
|
)
|
24
|
-
ProxyManager(registry)
|
25
24
|
{
|
26
25
|
if(authority == address(0)) {
|
27
26
|
revert ErrorRegistryAccessManagerAuthorityZero();
|
@@ -33,7 +32,8 @@ contract RegistryServiceManager is
|
|
33
32
|
|
34
33
|
RegistryService srv = new RegistryService{ salt: salt }();
|
35
34
|
bytes memory data = abi.encode(registry, authority);
|
36
|
-
IVersionable versionable =
|
35
|
+
IVersionable versionable = initialize(
|
36
|
+
registry,
|
37
37
|
address(srv),
|
38
38
|
data,
|
39
39
|
salt);
|