@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd4931b-974
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 +8 -13
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +366 -367
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +267 -1594
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +285 -211
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +412 -2526
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +480 -166
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +610 -421
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +438 -399
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +348 -106
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +257 -288
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +565 -186
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +211 -212
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +237 -302
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +530 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +351 -311
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +112 -172
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +857 -214
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +158 -13
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +337 -225
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +277 -30
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +74 -61
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +465 -267
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +334 -93
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +634 -69
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +448 -50
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +321 -280
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +215 -226
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +205 -228
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +203 -160
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -29
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -160
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +314 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +102 -35
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -60
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +172 -160
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1770 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → staking/IStakingService.sol/IStakingService.json} +261 -238
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2500 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +844 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +960 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +694 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +308 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +16 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +148 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +15 -14
- package/contracts/instance/IInstance.sol +49 -44
- package/contracts/instance/IInstanceService.sol +57 -15
- package/contracts/instance/Instance.sol +138 -179
- package/contracts/instance/InstanceAccessManager.sol +406 -161
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +135 -62
- package/contracts/instance/InstanceService.sol +240 -305
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +15 -1
- package/contracts/registry/IRegistry.sol +38 -18
- package/contracts/registry/IRegistryService.sol +41 -38
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAccessManager.sol +72 -121
- package/contracts/registry/RegistryService.sol +164 -98
- package/contracts/registry/RegistryServiceManager.sol +28 -18
- package/contracts/registry/ReleaseManager.sol +390 -192
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +263 -56
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +69 -0
- package/contracts/shared/NftOwnable.sol +64 -85
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +19 -30
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +37 -20
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +113 -0
- package/contracts/staking/IStakingService.sol +122 -0
- package/contracts/staking/Staking.sol +348 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +92 -0
- package/contracts/staking/StakingService.sol +294 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/TargetManagerLib.sol +141 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +63 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -216
- package/contracts/components/Distribution.sol +0 -150
- package/contracts/components/IComponent.sol +0 -43
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -60
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -227
- package/contracts/components/Product.sol +0 -265
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -293
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -106
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -538
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -110
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -234
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,103 +1,87 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
7
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
6
8
|
|
7
|
-
import {RoleId, RoleIdLib,
|
8
|
-
|
9
|
-
|
10
|
-
RELEASE_MANAGER_ROLE} from "../types/RoleId.sol";
|
9
|
+
import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
|
10
|
+
|
11
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
11
12
|
|
12
13
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
13
14
|
import {ReleaseManager} from "./ReleaseManager.sol";
|
14
15
|
|
15
16
|
/*
|
16
|
-
|
17
|
-
1) RELEASE_MANAGER_ROLE
|
18
|
-
- has only ReleaseManager as member
|
19
|
-
- responsible for setting and granting of REGISTRAR roles
|
20
|
-
1) REGISTRAR roles
|
21
|
-
- set and granted by RELEASE_MANAGER_ROLE
|
22
|
-
- each has 1 unique member (regular service ver.X) (subject to change)
|
23
|
-
- each set to 1 target (registry service ver.X) and 1 selector (function of registry service ver.X) (subject to change)
|
24
|
-
2) GIF_MANAGER_ROLE
|
17
|
+
1) GIF_MANAGER_ROLE
|
25
18
|
- can have arbitrary number of members
|
26
19
|
- responsible for services registrations
|
27
20
|
- responsible for token registration and activation
|
28
|
-
|
21
|
+
|
22
|
+
2) GIF_ADMIN_ROLE
|
29
23
|
- admin of GIF_MANAGER_ROLE
|
30
24
|
- MUST have 1 member at any time
|
31
25
|
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
32
26
|
- responsible for creation and activation of releases
|
33
|
-
|
34
27
|
*/
|
35
28
|
|
36
|
-
contract RegistryAccessManager is AccessManaged
|
29
|
+
contract RegistryAccessManager is AccessManaged, Initializable
|
37
30
|
{
|
38
|
-
error
|
39
|
-
error
|
31
|
+
error ErrorRegistryAccessManagerReleaseManagerAuthorityMismatch();
|
32
|
+
error ErrorRegistryAccessManagerTokenRegistryZero();
|
40
33
|
|
41
34
|
uint64 public constant UNIQUE_ROLE_ID_MIN = 1000000;
|
42
35
|
|
43
|
-
AccessManager private immutable _accessManager;
|
44
36
|
address private _releaseManager;
|
45
37
|
address private _tokenRegistry;
|
46
38
|
|
47
39
|
uint64 private _idNext; // role id
|
48
|
-
bool private _isInitialized;
|
49
|
-
|
50
|
-
modifier onlyOnce() {
|
51
|
-
if(_isInitialized) {
|
52
|
-
revert AlreadyInitialized();
|
53
|
-
}
|
54
|
-
_;
|
55
|
-
_isInitialized = true;
|
56
|
-
}
|
57
40
|
|
58
|
-
modifier onlyInitialized() {
|
59
|
-
if(!_isInitialized) {
|
60
|
-
revert NotInitialized();
|
61
|
-
}
|
62
|
-
_;
|
63
|
-
}
|
64
41
|
|
65
|
-
|
42
|
+
// IMPORTNAT: this.authority() must be valid before initialize() function....
|
43
|
+
// -> have constructor and initializer function
|
44
|
+
constructor()
|
66
45
|
AccessManaged(msg.sender)
|
67
46
|
{
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
_idNext = UNIQUE_ROLE_ID_MIN;
|
72
|
-
|
73
|
-
_configureAdminRoleInitial();
|
74
|
-
|
75
|
-
address admin = msg.sender;
|
76
|
-
_grantRole(GIF_ADMIN_ROLE(), admin, 0);
|
77
|
-
_grantRole(GIF_MANAGER_ROLE(), manager, 0);
|
47
|
+
AccessManagerUpgradeableInitializeable accessManager = new AccessManagerUpgradeableInitializeable();
|
48
|
+
accessManager.initialize(address(this));
|
49
|
+
setAuthority(address(accessManager));
|
78
50
|
}
|
79
51
|
|
80
|
-
function initialize(
|
81
|
-
|
82
|
-
|
83
|
-
|
52
|
+
function initialize(
|
53
|
+
address admin,
|
54
|
+
address manager,
|
55
|
+
address releaseManager,
|
56
|
+
address tokenRegistry
|
57
|
+
)
|
58
|
+
external
|
59
|
+
initializer
|
84
60
|
{
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
61
|
+
// validate input
|
62
|
+
if(IAccessManaged(releaseManager).authority() != authority()) {
|
63
|
+
revert ErrorRegistryAccessManagerReleaseManagerAuthorityMismatch();
|
64
|
+
}
|
65
|
+
|
66
|
+
if(tokenRegistry == address(0)) {
|
67
|
+
revert ErrorRegistryAccessManagerTokenRegistryZero();
|
68
|
+
}
|
90
69
|
|
91
70
|
_releaseManager = releaseManager;
|
92
71
|
_tokenRegistry = tokenRegistry;
|
72
|
+
_idNext = UNIQUE_ROLE_ID_MIN;
|
73
|
+
|
74
|
+
_setAdminRole();
|
75
|
+
_setManagerRole();
|
93
76
|
|
94
|
-
|
95
|
-
|
96
|
-
_configureReleaseManagerRole();
|
77
|
+
_grantRole(GIF_ADMIN_ROLE(), admin, 0);
|
78
|
+
_grantRole(GIF_MANAGER_ROLE(), manager, 0);
|
97
79
|
|
98
|
-
|
80
|
+
// set admin
|
81
|
+
_setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
|
99
82
|
}
|
100
83
|
|
84
|
+
|
101
85
|
// set unique role for target, role forever have 1 member and never revoked
|
102
86
|
function setAndGrantUniqueRole(
|
103
87
|
address account,
|
@@ -106,24 +90,26 @@ contract RegistryAccessManager is AccessManaged
|
|
106
90
|
)
|
107
91
|
external
|
108
92
|
restricted // RELEASE_MANAGER_ROLE
|
109
|
-
onlyInitialized
|
110
93
|
returns(RoleId)
|
111
94
|
{
|
112
|
-
// TODO
|
113
|
-
// target is not part of `runtime`
|
114
|
-
//if(
|
115
|
-
// target == address(this) ||
|
116
|
-
// target == address(_accessManager) ||
|
117
|
-
// target == _releaseManager ||
|
118
|
-
// target == _tokenRegistry)
|
119
|
-
//{ return TargetInvalid(); }
|
120
|
-
|
95
|
+
// TODO define and add checks
|
121
96
|
RoleId roleId = _getNextRoleId();
|
122
97
|
|
123
98
|
_setTargetFunctionRole(target, selector, roleId);
|
124
99
|
_grantRole(roleId, account, 0);
|
125
100
|
}
|
126
101
|
|
102
|
+
function setTargetFunctionRole(
|
103
|
+
address target,
|
104
|
+
bytes4[] memory selector,
|
105
|
+
RoleId roleId
|
106
|
+
)
|
107
|
+
external
|
108
|
+
restricted // RELEASE_MANAGER_ROLE
|
109
|
+
{
|
110
|
+
_setTargetFunctionRole(target, selector, roleId);
|
111
|
+
}
|
112
|
+
|
127
113
|
/*function transferAdmin(address to)
|
128
114
|
external
|
129
115
|
restricted // only with GIF_ADMIN_ROLE or nft owner
|
@@ -134,80 +120,45 @@ contract RegistryAccessManager is AccessManaged
|
|
134
120
|
|
135
121
|
//--- view functions ----------------------------------------------------//
|
136
122
|
|
137
|
-
function getAccessManager()
|
138
|
-
external
|
139
|
-
view
|
140
|
-
returns (AccessManager)
|
141
|
-
{
|
142
|
-
return _accessManager;
|
143
|
-
}
|
144
|
-
|
145
123
|
//--- private functions -------------------------------------------------//
|
146
124
|
|
147
|
-
function
|
125
|
+
function _setAdminRole() private
|
148
126
|
{
|
149
|
-
bytes4[] memory functionSelector = new bytes4[](1);
|
150
|
-
|
151
|
-
functionSelector[0] = RegistryAccessManager.initialize.selector;
|
152
|
-
_setTargetFunctionRole(address(this), functionSelector, GIF_ADMIN_ROLE());
|
153
|
-
}
|
154
|
-
|
155
|
-
function _configureAdminRole() private
|
156
|
-
{
|
157
|
-
bytes4[] memory functionSelector = new bytes4[](1);
|
158
|
-
|
159
|
-
// for RegistryServiceProxyManager
|
160
|
-
// TODO upgrading with releaseManager.upgrade()->proxy.upgrade()???
|
161
|
-
//functionSelector[0] = RegistryServiceManager.upgrade.selector;
|
162
|
-
//_setTargetFunctionRole(address(this), functionSelector, GIF_ADMIN_ROLE());
|
163
|
-
|
164
|
-
// for TokenRegistry
|
165
|
-
|
166
127
|
// for ReleaseManager
|
167
|
-
|
168
|
-
|
128
|
+
bytes4[] memory functionSelector = new bytes4[](3);
|
129
|
+
functionSelector[0] = ReleaseManager.registerStaking.selector;
|
130
|
+
functionSelector[1] = ReleaseManager.createNextRelease.selector;
|
131
|
+
functionSelector[2] = ReleaseManager.activateNextRelease.selector;
|
169
132
|
|
170
|
-
functionSelector[0] = ReleaseManager.activateNextRelease.selector;
|
171
133
|
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
|
172
134
|
}
|
173
135
|
|
174
|
-
function
|
136
|
+
function _setManagerRole() private
|
175
137
|
{
|
176
|
-
bytes4[] memory functionSelector = new bytes4[](
|
177
|
-
|
178
|
-
// for TokenRegistry
|
179
|
-
functionSelector[0] = TokenRegistry.setActive.selector;
|
180
|
-
_setTargetFunctionRole(address(_tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
|
181
|
-
|
182
|
-
// for ReleaseManager
|
183
|
-
functionSelector[0] = ReleaseManager.registerService.selector;
|
184
|
-
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
|
138
|
+
bytes4[] memory functionSelector = new bytes4[](2);
|
185
139
|
|
186
|
-
functionSelector[0] = ReleaseManager.
|
140
|
+
functionSelector[0] = ReleaseManager.registerService.selector; // for ReleaseManager
|
141
|
+
functionSelector[1] = ReleaseManager.prepareNextRelease.selector;
|
187
142
|
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
|
188
143
|
|
189
|
-
//
|
190
|
-
|
144
|
+
// for TokenRegistry
|
145
|
+
bytes4[] memory functionSelector2 = new bytes4[](2);
|
146
|
+
functionSelector2[0] = TokenRegistry.setActive.selector;
|
147
|
+
functionSelector2[1] = TokenRegistry.setActiveForVersion.selector;
|
148
|
+
_setTargetFunctionRole(address(_tokenRegistry), functionSelector2, GIF_MANAGER_ROLE());
|
191
149
|
}
|
192
150
|
|
193
|
-
function _configureReleaseManagerRole() private
|
194
|
-
{
|
195
|
-
bytes4[] memory functionSelector = new bytes4[](1);
|
196
|
-
|
197
|
-
functionSelector[0] = RegistryAccessManager.setAndGrantUniqueRole.selector;
|
198
|
-
_setTargetFunctionRole(address(this), functionSelector, RELEASE_MANAGER_ROLE());
|
199
|
-
}
|
200
151
|
|
201
152
|
function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
|
202
|
-
|
153
|
+
AccessManager(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
|
203
154
|
}
|
204
155
|
|
205
156
|
function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
|
206
|
-
|
157
|
+
AccessManager(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
|
207
158
|
}
|
208
159
|
|
209
160
|
function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
|
210
|
-
|
161
|
+
AccessManager(authority()).grantRole(roleId.toInt(), account, executionDelay);
|
211
162
|
}
|
212
163
|
|
213
164
|
function _getNextRoleId() private returns(RoleId roleId) {
|
@@ -2,28 +2,27 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
// import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
6
|
|
7
7
|
import {IRegistry} from "./IRegistry.sol";
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
9
|
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
|
10
|
+
import {IComponent} from "../../contracts/shared/IComponent.sol";
|
11
|
+
import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
|
12
|
+
import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
|
13
|
+
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
15
14
|
|
16
15
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
17
16
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
18
17
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
19
18
|
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
20
19
|
|
21
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/
|
22
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/
|
23
|
-
import {StateId, ACTIVE, PAUSED} from "../../contracts/
|
24
|
-
import {NftId, NftIdLib
|
25
|
-
import {Fee, FeeLib} from "../../contracts/
|
26
|
-
import {Version, VersionPart, VersionLib} from "../../contracts/
|
20
|
+
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
|
21
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
22
|
+
import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
|
23
|
+
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
24
|
+
import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
|
25
|
+
import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
|
27
26
|
|
28
27
|
import {Service} from "../shared/Service.sol";
|
29
28
|
import {IService} from "../shared/IService.sol";
|
@@ -31,7 +30,6 @@ import {IRegistryService} from "./IRegistryService.sol";
|
|
31
30
|
import {Registry} from "./Registry.sol";
|
32
31
|
|
33
32
|
contract RegistryService is
|
34
|
-
AccessManagedUpgradeable,
|
35
33
|
Service,
|
36
34
|
IRegistryService
|
37
35
|
{
|
@@ -40,19 +38,59 @@ contract RegistryService is
|
|
40
38
|
// TODO update to real hash when registry is stable
|
41
39
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
42
40
|
|
41
|
+
// From IService
|
42
|
+
function getDomain() public pure override returns(ObjectType serviceDomain) {
|
43
|
+
return REGISTRY();
|
44
|
+
}
|
45
|
+
|
46
|
+
// from Versionable
|
47
|
+
|
48
|
+
/// @dev top level initializer
|
49
|
+
function _initialize(
|
50
|
+
address owner,
|
51
|
+
bytes memory data
|
52
|
+
)
|
53
|
+
internal
|
54
|
+
virtual override
|
55
|
+
initializer()
|
56
|
+
{
|
57
|
+
(
|
58
|
+
address registryAddress,
|
59
|
+
address initialAuthority
|
60
|
+
) = abi.decode(data, (address, address));
|
61
|
+
|
62
|
+
initializeService(registryAddress, initialAuthority, owner);
|
63
|
+
registerInterface(type(IRegistryService).interfaceId);
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
function registerStaking(IRegisterable staking, address owner)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
restricted()
|
71
|
+
returns(
|
72
|
+
IRegistry.ObjectInfo memory info
|
73
|
+
)
|
74
|
+
{
|
75
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
76
|
+
info.nftId = getRegistry().register(info);
|
77
|
+
}
|
78
|
+
|
79
|
+
|
43
80
|
function registerInstance(IRegisterable instance, address owner)
|
44
81
|
external
|
82
|
+
virtual
|
45
83
|
restricted
|
46
84
|
returns(
|
47
85
|
IRegistry.ObjectInfo memory info
|
48
86
|
)
|
49
87
|
{
|
50
88
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
51
|
-
revert
|
89
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
52
90
|
}
|
53
91
|
|
54
92
|
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
55
|
-
info.nftId =
|
93
|
+
info.nftId = getRegistry().register(info);
|
56
94
|
|
57
95
|
instance.linkToRegisteredNftId(); // asume safe
|
58
96
|
}
|
@@ -66,11 +104,31 @@ contract RegistryService is
|
|
66
104
|
{
|
67
105
|
// CAN revert if no ERC165 support -> will revert with empty message
|
68
106
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
69
|
-
revert
|
107
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
70
108
|
}
|
71
109
|
|
72
110
|
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
73
|
-
info.nftId =
|
111
|
+
info.nftId = getRegistry().register(info);
|
112
|
+
}
|
113
|
+
|
114
|
+
function registerComponent(
|
115
|
+
IComponent component,
|
116
|
+
ObjectType objectType,
|
117
|
+
address initialOwner
|
118
|
+
)
|
119
|
+
external
|
120
|
+
restricted
|
121
|
+
returns(
|
122
|
+
IRegistry.ObjectInfo memory info
|
123
|
+
)
|
124
|
+
{
|
125
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
126
|
+
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
127
|
+
revert ErrorRegistryServiceNotComponent(address(component));
|
128
|
+
}
|
129
|
+
|
130
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
131
|
+
info.nftId = getRegistry().register(info);
|
74
132
|
}
|
75
133
|
|
76
134
|
function registerPool(IComponent pool, address owner)
|
@@ -81,11 +139,11 @@ contract RegistryService is
|
|
81
139
|
)
|
82
140
|
{
|
83
141
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
84
|
-
revert
|
142
|
+
revert ErrorRegistryServiceNotPool(address(pool));
|
85
143
|
}
|
86
144
|
|
87
145
|
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
88
|
-
info.nftId =
|
146
|
+
info.nftId = getRegistry().register(info);
|
89
147
|
}
|
90
148
|
|
91
149
|
function registerDistribution(IComponent distribution, address owner)
|
@@ -96,11 +154,20 @@ contract RegistryService is
|
|
96
154
|
)
|
97
155
|
{
|
98
156
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
99
|
-
revert
|
157
|
+
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
100
158
|
}
|
101
159
|
|
102
160
|
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
103
|
-
info.nftId =
|
161
|
+
info.nftId = getRegistry().register(info);
|
162
|
+
}
|
163
|
+
|
164
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
165
|
+
external
|
166
|
+
restricted
|
167
|
+
returns(NftId nftId)
|
168
|
+
{
|
169
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
170
|
+
nftId = getRegistry().register(info);
|
104
171
|
}
|
105
172
|
|
106
173
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
@@ -109,8 +176,7 @@ contract RegistryService is
|
|
109
176
|
returns(NftId nftId)
|
110
177
|
{
|
111
178
|
_verifyObjectInfo(info, POLICY());
|
112
|
-
|
113
|
-
nftId = _registry.register(info);
|
179
|
+
nftId = getRegistry().register(info);
|
114
180
|
}
|
115
181
|
|
116
182
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
@@ -119,8 +185,7 @@ contract RegistryService is
|
|
119
185
|
returns(NftId nftId)
|
120
186
|
{
|
121
187
|
_verifyObjectInfo(info, BUNDLE());
|
122
|
-
|
123
|
-
nftId = _registry.register(info);
|
188
|
+
nftId = getRegistry().register(info);
|
124
189
|
}
|
125
190
|
|
126
191
|
function registerStake(IRegistry.ObjectInfo memory info)
|
@@ -129,72 +194,70 @@ contract RegistryService is
|
|
129
194
|
returns(NftId nftId)
|
130
195
|
{
|
131
196
|
_verifyObjectInfo(info, STAKE());
|
132
|
-
|
133
|
-
nftId = _registry.register(info);
|
134
|
-
}
|
135
|
-
|
136
|
-
// From IService
|
137
|
-
function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
|
138
|
-
return REGISTRY();
|
139
|
-
}
|
140
|
-
|
141
|
-
// from Versionable
|
142
|
-
|
143
|
-
/// @dev top level initializer
|
144
|
-
function _initialize(
|
145
|
-
address owner,
|
146
|
-
bytes memory data
|
147
|
-
)
|
148
|
-
internal
|
149
|
-
initializer
|
150
|
-
virtual override
|
151
|
-
{
|
152
|
-
(
|
153
|
-
address initialAuthority,
|
154
|
-
address registry
|
155
|
-
) = abi.decode(data, (address, address));
|
156
|
-
|
157
|
-
__AccessManaged_init(initialAuthority);
|
158
|
-
|
159
|
-
_initializeService(address(registry), owner);
|
160
|
-
|
161
|
-
_registerInterface(type(IRegistryService).interfaceId);
|
197
|
+
nftId = getRegistry().register(info);
|
162
198
|
}
|
163
199
|
|
164
200
|
// from IRegisterable
|
165
201
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
202
|
+
// TODO cleanup
|
203
|
+
// function getFunctionConfigs()
|
204
|
+
// external
|
205
|
+
// pure
|
206
|
+
// returns(
|
207
|
+
// FunctionConfig[] memory config
|
208
|
+
// )
|
209
|
+
// {
|
210
|
+
// config = new FunctionConfig[](11);
|
211
|
+
|
212
|
+
// // order of service registrations MUST be reverse to this array
|
213
|
+
// /*config[-1].serviceDomain = STAKE();
|
214
|
+
// config[-1].selector = RegistryService.registerStake.selector;*/
|
215
|
+
|
216
|
+
// config[0].serviceDomain = POLICY();
|
217
|
+
// config[0].authorizedSelectors = new bytes4[](0);
|
218
|
+
|
219
|
+
// config[1].serviceDomain = APPLICATION();
|
220
|
+
// config[1].authorizedSelectors = new bytes4[](1);
|
221
|
+
// config[1].authorizedSelectors[0] = RegistryService.registerPolicy.selector;
|
222
|
+
|
223
|
+
// config[2].serviceDomain = CLAIM();
|
224
|
+
// config[2].authorizedSelectors = new bytes4[](0);
|
225
|
+
|
226
|
+
// config[3].serviceDomain = PRODUCT();
|
227
|
+
// config[3].authorizedSelectors = new bytes4[](1);
|
228
|
+
// config[3].authorizedSelectors[0] = RegistryService.registerProduct.selector;
|
229
|
+
|
230
|
+
// config[4].serviceDomain = POOL();
|
231
|
+
// config[4].authorizedSelectors = new bytes4[](1);
|
232
|
+
// config[4].authorizedSelectors[0] = RegistryService.registerPool.selector;
|
233
|
+
|
234
|
+
// // registration of bundle service must preceed registration of pool service
|
235
|
+
// config[5].serviceDomain = BUNDLE();
|
236
|
+
// config[5].authorizedSelectors = new bytes4[](1);
|
237
|
+
// config[5].authorizedSelectors[0] = RegistryService.registerBundle.selector;
|
238
|
+
|
239
|
+
// // registration of pricing service must preceed registration of application service
|
240
|
+
// config[6].serviceDomain = PRICE();
|
241
|
+
// config[6].authorizedSelectors = new bytes4[](0);
|
242
|
+
|
243
|
+
// // registration of distribution service must preceed registration of pricing service
|
244
|
+
// config[7].serviceDomain = DISTRIBUTION();
|
245
|
+
// config[7].authorizedSelectors = new bytes4[](2);
|
246
|
+
// config[7].authorizedSelectors[0] = RegistryService.registerDistribution.selector;
|
247
|
+
// config[7].authorizedSelectors[1] = RegistryService.registerDistributor.selector;
|
248
|
+
|
249
|
+
// config[8].serviceDomain = COMPONENT();
|
250
|
+
// config[8].authorizedSelectors = new bytes4[](1);
|
251
|
+
// config[8].authorizedSelectors[0] = RegistryService.registerComponent.selector;
|
252
|
+
|
253
|
+
// config[9].serviceDomain = INSTANCE();
|
254
|
+
// config[9].authorizedSelectors = new bytes4[](1);
|
255
|
+
// config[9].authorizedSelectors[0] = RegistryService.registerInstance.selector;
|
256
|
+
|
257
|
+
// config[10].serviceDomain = STAKING();
|
258
|
+
// config[10].authorizedSelectors = new bytes4[](1);
|
259
|
+
// config[10].authorizedSelectors[0] = RegistryService.registerStaking.selector;
|
260
|
+
// }
|
198
261
|
|
199
262
|
// Internal
|
200
263
|
|
@@ -204,34 +267,37 @@ contract RegistryService is
|
|
204
267
|
address expectedOwner // assume can be 0 when given by other service
|
205
268
|
)
|
206
269
|
internal
|
207
|
-
|
270
|
+
view
|
208
271
|
returns(
|
209
272
|
IRegistry.ObjectInfo memory info
|
210
273
|
)
|
211
274
|
{
|
212
275
|
info = registerable.getInitialInfo();
|
213
|
-
|
276
|
+
|
277
|
+
if(info.objectAddress != address(registerable)) {
|
278
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
279
|
+
}
|
214
280
|
|
215
281
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
216
|
-
revert
|
282
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
217
283
|
}
|
218
284
|
|
219
285
|
address owner = info.initialOwner;
|
220
286
|
|
221
287
|
if(owner != expectedOwner) { // registerable owner protection
|
222
|
-
revert
|
288
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
223
289
|
}
|
224
290
|
|
225
291
|
if(owner == address(registerable)) {
|
226
|
-
revert
|
292
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
227
293
|
}
|
228
294
|
|
229
295
|
if(owner == address(0)) {
|
230
|
-
revert
|
296
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
231
297
|
}
|
232
298
|
|
233
299
|
if(getRegistry().isRegistered(owner)) {
|
234
|
-
revert
|
300
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
235
301
|
}
|
236
302
|
}
|
237
303
|
|
@@ -246,17 +312,17 @@ contract RegistryService is
|
|
246
312
|
info.objectAddress = address(0);
|
247
313
|
|
248
314
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
249
|
-
revert
|
315
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
250
316
|
}
|
251
317
|
|
252
318
|
address owner = info.initialOwner;
|
253
319
|
|
254
320
|
if(owner == address(0)) {
|
255
|
-
revert
|
321
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
256
322
|
}
|
257
323
|
|
258
324
|
if(getRegistry().isRegistered(owner)) {
|
259
|
-
revert
|
325
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
260
326
|
}
|
261
327
|
}
|
262
|
-
}
|
328
|
+
}
|