@etherisc/gif-next 0.0.2-bb7b80e-316 → 0.0.2-bc0a9a8-101
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 +10 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +279 -1408
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +296 -216
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -2500
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +485 -342
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +457 -367
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +368 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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 +25 -150
- 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 +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +260 -290
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +203 -240
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +244 -308
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +263 -226
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +438 -229
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +124 -145
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -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 +279 -17
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +355 -221
- 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 +512 -36
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +507 -287
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -82
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +847 -85
- 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 +360 -96
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +410 -367
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +193 -199
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +271 -133
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +240 -221
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +51 -31
- 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 +34 -30
- 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 +15 -35
- 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 +75 -163
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -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 +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
- 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 +330 -62
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
- 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 +179 -153
- 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 +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -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 +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- 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 +209 -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 +198 -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 +261 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +22 -25
- package/contracts/instance/IInstance.sol +58 -39
- package/contracts/instance/IInstanceService.sol +58 -17
- package/contracts/instance/Instance.sol +155 -182
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +136 -86
- package/contracts/instance/InstanceService.sol +259 -242
- 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} +16 -35
- package/contracts/instance/module/IAccess.sol +19 -21
- 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/Usdc.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 +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +453 -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 +442 -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 +475 -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 +16 -1
- package/contracts/registry/IRegistry.sol +56 -23
- package/contracts/registry/IRegistryService.sol +45 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +299 -119
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +118 -172
- package/contracts/registry/RegistryServiceManager.sol +22 -26
- package/contracts/registry/ReleaseManager.sol +463 -206
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +263 -58
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +278 -0
- package/contracts/shared/ComponentService.sol +596 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +15 -13
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +13 -12
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +7 -5
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -86
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +42 -23
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +5 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +81 -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 +2 -1
- package/package.json +5 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
- 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 -1031
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
- 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/IDistributionService.sol/IDistributionService.json +0 -446
- 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 -1156
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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 -305
- 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 -600
- 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/Blocknumber.sol/BlocknumberLib.json +0 -174
- 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/BaseComponent.sol +0 -168
- package/contracts/components/Distribution.sol +0 -154
- package/contracts/components/IBaseComponent.sol +0 -35
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -258
- package/contracts/components/Product.sol +0 -295
- 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/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -25
- package/contracts/instance/InstanceAccessManager.sol +0 -303
- package/contracts/instance/InstanceBase.sol +0 -39
- package/contracts/instance/base/ComponentServiceBase.sol +0 -76
- package/contracts/instance/base/IInstanceBase.sol +0 -21
- 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 -294
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -120
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- 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 -539
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -145
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -213
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -210
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- 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/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- 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}/Key32.sol +0 -0
@@ -0,0 +1,237 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
|
+
import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
|
7
|
+
|
8
|
+
import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
|
9
|
+
|
10
|
+
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
11
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
12
|
+
|
13
|
+
import {IRegistry} from "./IRegistry.sol";
|
14
|
+
import {ReleaseManager} from "./ReleaseManager.sol";
|
15
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
16
|
+
|
17
|
+
/*
|
18
|
+
1) GIF_MANAGER_ROLE
|
19
|
+
- can have arbitrary number of members
|
20
|
+
- responsible for services registrations
|
21
|
+
- responsible for token registration and activation
|
22
|
+
|
23
|
+
2) GIF_ADMIN_ROLE
|
24
|
+
- admin of GIF_MANAGER_ROLE
|
25
|
+
- MUST have 1 member at any time
|
26
|
+
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
27
|
+
- responsible for creation and activation of releases
|
28
|
+
*/
|
29
|
+
|
30
|
+
// !!! USE BUILDER PATTERN FOR CONFIG
|
31
|
+
// introduce class - config
|
32
|
+
// create instance of this class in admin initializer function
|
33
|
+
// call it "add"/"push" function for each entry in config (provide entry parameneters)
|
34
|
+
// each call will configure access manager for given parameneters
|
35
|
+
// in the end you have fully configured access manager and config object
|
36
|
+
|
37
|
+
// grants GIF_ADMIN_ROLE to registry owner as registryOwner is transaction sender
|
38
|
+
// grants GIF_MANAGER_ROLE to registry owner via contructor argument
|
39
|
+
contract RegistryAdmin is
|
40
|
+
AccessManaged,
|
41
|
+
InitializableCustom
|
42
|
+
{
|
43
|
+
error ErrorRegistryAdminReleaseManagerAuthorityMismatch();
|
44
|
+
error ErrorRegistryAdminTokenRegistryAuthorityMismatch();
|
45
|
+
error ErrorRegistryAdminStakingAuthorityMismatch();
|
46
|
+
|
47
|
+
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
48
|
+
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
49
|
+
|
50
|
+
string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
|
51
|
+
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
52
|
+
string public constant STAKING_TARGET_NAME = "Staking";
|
53
|
+
|
54
|
+
address private _releaseManager;
|
55
|
+
address private _tokenRegistry;
|
56
|
+
address private _staking;
|
57
|
+
|
58
|
+
constructor()
|
59
|
+
AccessManaged(msg.sender)
|
60
|
+
InitializableCustom()
|
61
|
+
{
|
62
|
+
AccessManagerExtendedInitializeable accessManager = new AccessManagerExtendedInitializeable();
|
63
|
+
accessManager.initialize(address(this));
|
64
|
+
setAuthority(address(accessManager));
|
65
|
+
}
|
66
|
+
|
67
|
+
function initialize(
|
68
|
+
IRegistry registry,
|
69
|
+
address gifAdmin,
|
70
|
+
address gifManager
|
71
|
+
)
|
72
|
+
external
|
73
|
+
initializer
|
74
|
+
{
|
75
|
+
// validate input
|
76
|
+
address releaseManagerAddress = registry.getReleaseManagerAddress();
|
77
|
+
if(IAccessManaged(releaseManagerAddress).authority() != authority()) {
|
78
|
+
revert ErrorRegistryAdminReleaseManagerAuthorityMismatch();
|
79
|
+
}
|
80
|
+
|
81
|
+
address tokenRegistryAddress = registry.getTokenRegistryAddress();
|
82
|
+
if(IAccessManaged(tokenRegistryAddress).authority() != authority()) {
|
83
|
+
revert ErrorRegistryAdminTokenRegistryAuthorityMismatch();
|
84
|
+
}
|
85
|
+
|
86
|
+
address stakingAddress = registry.getStakingAddress();
|
87
|
+
if(IAccessManaged(stakingAddress).authority() != authority()) {
|
88
|
+
revert ErrorRegistryAdminStakingAuthorityMismatch();
|
89
|
+
}
|
90
|
+
|
91
|
+
_releaseManager = releaseManagerAddress;
|
92
|
+
_tokenRegistry = tokenRegistryAddress;
|
93
|
+
_staking = stakingAddress;
|
94
|
+
|
95
|
+
// at this moment all registry contracts are deployed and fully intialized
|
96
|
+
_createRole(GIF_ADMIN_ROLE(), GIF_ADMIN_ROLE_NAME);
|
97
|
+
_createRole(GIF_MANAGER_ROLE(), GIF_MANAGER_ROLE_NAME);
|
98
|
+
|
99
|
+
_createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
|
100
|
+
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
|
101
|
+
_createTarget(_staking, STAKING_TARGET_NAME);
|
102
|
+
|
103
|
+
_setGifAdminRole();
|
104
|
+
_setGifManagerRole();
|
105
|
+
|
106
|
+
_grantRole(GIF_ADMIN_ROLE(), gifAdmin, 0);
|
107
|
+
_grantRole(GIF_MANAGER_ROLE(), gifManager, 0);
|
108
|
+
|
109
|
+
// set gif manager role admin
|
110
|
+
_setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
|
111
|
+
}
|
112
|
+
|
113
|
+
// TODO makes sense to do this in intialize() function
|
114
|
+
// it is a single contract
|
115
|
+
// but if many token registries a possible...
|
116
|
+
/*function setTokenRegistry(
|
117
|
+
address tokenRegistry
|
118
|
+
)
|
119
|
+
external
|
120
|
+
restricted() // GIF_ADMIN_ROLE
|
121
|
+
{
|
122
|
+
// for TokenRegistry
|
123
|
+
bytes4[] memory functionSelector = new bytes4[](5);
|
124
|
+
functionSelector[0] = TokenRegistry.registerToken.selector;
|
125
|
+
functionSelector[1] = TokenRegistry.registerRemoteToken.selector;
|
126
|
+
functionSelector[2] = TokenRegistry.setActive.selector;
|
127
|
+
functionSelector[3] = TokenRegistry.setActiveForVersion.selector;
|
128
|
+
|
129
|
+
// only needed for testing TODO find a better way
|
130
|
+
functionSelector[4] = TokenRegistry.setActiveWithVersionCheck.selector;
|
131
|
+
_setTargetFunctionRole(address(tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
|
132
|
+
}*/
|
133
|
+
|
134
|
+
|
135
|
+
function setTargetFunctionRole(
|
136
|
+
address target,
|
137
|
+
bytes4[] memory selector,
|
138
|
+
RoleId roleId
|
139
|
+
)
|
140
|
+
external
|
141
|
+
restricted // RELEASE_MANAGER_ROLE -> TODO create this role
|
142
|
+
{
|
143
|
+
_setTargetFunctionRole(target, selector, roleId);
|
144
|
+
}
|
145
|
+
|
146
|
+
/*function transferAdmin(address to)
|
147
|
+
external
|
148
|
+
restricted // only with GIF_ADMIN_ROLE or nft owner
|
149
|
+
{
|
150
|
+
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
151
|
+
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
152
|
+
}*/
|
153
|
+
|
154
|
+
//--- view functions ----------------------------------------------------//
|
155
|
+
|
156
|
+
function hasRole(address account, RoleId roleId) external view returns(bool) {
|
157
|
+
(bool isMember,) = AccessManagerExtendedInitializeable(authority()).hasRole(roleId.toInt(), account);
|
158
|
+
return isMember;
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
function canCall(
|
163
|
+
address account,
|
164
|
+
address target,
|
165
|
+
bytes4 functionSelector
|
166
|
+
)
|
167
|
+
external
|
168
|
+
view
|
169
|
+
returns(bool)
|
170
|
+
{
|
171
|
+
(bool immediate,) = AuthorityUtils.canCallWithDelay(
|
172
|
+
authority(),
|
173
|
+
account,
|
174
|
+
target,
|
175
|
+
functionSelector);
|
176
|
+
|
177
|
+
return immediate;
|
178
|
+
}
|
179
|
+
|
180
|
+
//--- private functions -------------------------------------------------//
|
181
|
+
|
182
|
+
function _setGifAdminRole() private
|
183
|
+
{
|
184
|
+
// for ReleaseManager
|
185
|
+
bytes4[] memory functionSelector2 = new bytes4[](2);
|
186
|
+
//functionSelector2[0] = ReleaseManager.registerStaking.selector;
|
187
|
+
functionSelector2[0] = ReleaseManager.createNextRelease.selector;
|
188
|
+
functionSelector2[1] = ReleaseManager.activateNextRelease.selector;
|
189
|
+
|
190
|
+
_setTargetFunctionRole(_releaseManager, functionSelector2, GIF_ADMIN_ROLE());
|
191
|
+
|
192
|
+
// for Staking
|
193
|
+
}
|
194
|
+
|
195
|
+
function _setGifManagerRole() private
|
196
|
+
{
|
197
|
+
// for TokenRegistry
|
198
|
+
bytes4[] memory functionSelectorTr = new bytes4[](5);
|
199
|
+
functionSelectorTr[0] = TokenRegistry.registerToken.selector;
|
200
|
+
functionSelectorTr[1] = TokenRegistry.registerRemoteToken.selector;
|
201
|
+
functionSelectorTr[2] = TokenRegistry.setActive.selector;
|
202
|
+
functionSelectorTr[3] = TokenRegistry.setActiveForVersion.selector;
|
203
|
+
|
204
|
+
// only needed for testing TODO find a better way
|
205
|
+
functionSelectorTr[4] = TokenRegistry.setActiveWithVersionCheck.selector;
|
206
|
+
_setTargetFunctionRole(_tokenRegistry, functionSelectorTr, GIF_MANAGER_ROLE());
|
207
|
+
|
208
|
+
// for ReleaseManager
|
209
|
+
bytes4[] memory functionSelectorRm = new bytes4[](2);
|
210
|
+
functionSelectorRm[0] = ReleaseManager.registerService.selector;
|
211
|
+
functionSelectorRm[1] = ReleaseManager.prepareNextRelease.selector;
|
212
|
+
_setTargetFunctionRole(_releaseManager, functionSelectorRm, GIF_MANAGER_ROLE());
|
213
|
+
|
214
|
+
// for Staking
|
215
|
+
}
|
216
|
+
|
217
|
+
|
218
|
+
function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
|
219
|
+
AccessManagerExtendedInitializeable(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
|
220
|
+
}
|
221
|
+
|
222
|
+
function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
|
223
|
+
AccessManagerExtendedInitializeable(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
|
224
|
+
}
|
225
|
+
|
226
|
+
function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
|
227
|
+
AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, executionDelay);
|
228
|
+
}
|
229
|
+
|
230
|
+
function _createRole(RoleId roleId, string memory roleName) private {
|
231
|
+
AccessManagerExtendedInitializeable(authority()).createRole(roleId.toInt(), roleName);
|
232
|
+
}
|
233
|
+
|
234
|
+
function _createTarget(address target, string memory targetName) private {
|
235
|
+
AccessManagerExtendedInitializeable(authority()).createTarget(target, targetName);
|
236
|
+
}
|
237
|
+
}
|
@@ -2,28 +2,26 @@
|
|
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
|
-
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
20
18
|
|
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/
|
19
|
+
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
|
20
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
21
|
+
import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
|
22
|
+
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
23
|
+
import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
|
24
|
+
import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
|
27
25
|
|
28
26
|
import {Service} from "../shared/Service.sol";
|
29
27
|
import {IService} from "../shared/IService.sol";
|
@@ -31,7 +29,6 @@ import {IRegistryService} from "./IRegistryService.sol";
|
|
31
29
|
import {Registry} from "./Registry.sol";
|
32
30
|
|
33
31
|
contract RegistryService is
|
34
|
-
AccessManagedUpgradeable,
|
35
32
|
Service,
|
36
33
|
IRegistryService
|
37
34
|
{
|
@@ -40,84 +37,136 @@ contract RegistryService is
|
|
40
37
|
// TODO update to real hash when registry is stable
|
41
38
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
42
39
|
|
43
|
-
|
40
|
+
// From IService
|
41
|
+
function getDomain() public pure override returns(ObjectType serviceDomain) {
|
42
|
+
return REGISTRY();
|
43
|
+
}
|
44
|
+
|
45
|
+
// from Versionable
|
46
|
+
|
47
|
+
/// @dev top level initializer
|
48
|
+
function _initialize(
|
49
|
+
address owner,
|
50
|
+
bytes memory data
|
51
|
+
)
|
52
|
+
internal
|
53
|
+
virtual override
|
54
|
+
initializer()
|
55
|
+
{
|
56
|
+
(
|
57
|
+
address registryAddress,
|
58
|
+
address initialAuthority
|
59
|
+
) = abi.decode(data, (address, address));
|
60
|
+
|
61
|
+
initializeService(registryAddress, initialAuthority, owner);
|
62
|
+
registerInterface(type(IRegistryService).interfaceId);
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
function registerStaking(IRegisterable staking, address owner)
|
67
|
+
external
|
68
|
+
virtual
|
69
|
+
restricted()
|
70
|
+
returns(
|
71
|
+
IRegistry.ObjectInfo memory info
|
72
|
+
)
|
73
|
+
{
|
74
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
75
|
+
info.nftId = getRegistry().register(info);
|
76
|
+
}
|
44
77
|
|
45
78
|
|
46
|
-
function registerInstance(IRegisterable instance)
|
79
|
+
function registerInstance(IRegisterable instance, address owner)
|
47
80
|
external
|
81
|
+
virtual
|
82
|
+
restricted
|
48
83
|
returns(
|
49
|
-
IRegistry.ObjectInfo memory info
|
50
|
-
bytes memory data
|
84
|
+
IRegistry.ObjectInfo memory info
|
51
85
|
)
|
52
86
|
{
|
53
87
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
54
|
-
revert
|
88
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
55
89
|
}
|
56
90
|
|
57
|
-
|
91
|
+
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
92
|
+
info.nftId = getRegistry().register(info);
|
58
93
|
|
59
|
-
info.nftId = _registry.register(info);
|
60
94
|
instance.linkToRegisteredNftId(); // asume safe
|
61
|
-
|
62
|
-
return (info, data);
|
63
95
|
}
|
64
96
|
|
65
|
-
function registerProduct(
|
97
|
+
function registerProduct(IComponent product, address owner)
|
66
98
|
external
|
67
99
|
restricted
|
68
100
|
returns(
|
69
|
-
IRegistry.ObjectInfo memory info
|
70
|
-
bytes memory data
|
101
|
+
IRegistry.ObjectInfo memory info
|
71
102
|
)
|
72
103
|
{
|
73
104
|
// CAN revert if no ERC165 support -> will revert with empty message
|
74
105
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
75
|
-
revert
|
106
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
76
107
|
}
|
77
108
|
|
78
|
-
|
109
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
110
|
+
info.nftId = getRegistry().register(info);
|
111
|
+
}
|
79
112
|
|
80
|
-
|
113
|
+
function registerComponent(
|
114
|
+
IComponent component,
|
115
|
+
ObjectType objectType,
|
116
|
+
address initialOwner
|
117
|
+
)
|
118
|
+
external
|
119
|
+
restricted
|
120
|
+
returns(
|
121
|
+
IRegistry.ObjectInfo memory info
|
122
|
+
)
|
123
|
+
{
|
124
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
125
|
+
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
126
|
+
revert ErrorRegistryServiceNotComponent(address(component));
|
127
|
+
}
|
81
128
|
|
82
|
-
|
129
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
130
|
+
info.nftId = getRegistry().register(info);
|
83
131
|
}
|
84
132
|
|
85
|
-
function registerPool(
|
133
|
+
function registerPool(IComponent pool, address owner)
|
86
134
|
external
|
87
135
|
restricted
|
88
136
|
returns(
|
89
|
-
IRegistry.ObjectInfo memory info
|
90
|
-
bytes memory data
|
137
|
+
IRegistry.ObjectInfo memory info
|
91
138
|
)
|
92
139
|
{
|
93
140
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
94
|
-
revert
|
141
|
+
revert ErrorRegistryServiceNotPool(address(pool));
|
95
142
|
}
|
96
143
|
|
97
|
-
|
98
|
-
|
99
|
-
info.nftId = _registry.register(info);
|
100
|
-
|
101
|
-
return (info, data);
|
144
|
+
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
145
|
+
info.nftId = getRegistry().register(info);
|
102
146
|
}
|
103
147
|
|
104
|
-
function registerDistribution(
|
148
|
+
function registerDistribution(IComponent distribution, address owner)
|
105
149
|
external
|
106
150
|
restricted
|
107
151
|
returns(
|
108
|
-
IRegistry.ObjectInfo memory info
|
109
|
-
bytes memory data
|
152
|
+
IRegistry.ObjectInfo memory info
|
110
153
|
)
|
111
154
|
{
|
112
155
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
113
|
-
revert
|
156
|
+
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
114
157
|
}
|
115
158
|
|
116
|
-
|
117
|
-
|
118
|
-
|
159
|
+
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
160
|
+
info.nftId = getRegistry().register(info);
|
161
|
+
}
|
119
162
|
|
120
|
-
|
163
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
164
|
+
external
|
165
|
+
restricted
|
166
|
+
returns(NftId nftId)
|
167
|
+
{
|
168
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
169
|
+
nftId = getRegistry().register(info);
|
121
170
|
}
|
122
171
|
|
123
172
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
@@ -126,8 +175,7 @@ contract RegistryService is
|
|
126
175
|
returns(NftId nftId)
|
127
176
|
{
|
128
177
|
_verifyObjectInfo(info, POLICY());
|
129
|
-
|
130
|
-
nftId = _registry.register(info);
|
178
|
+
nftId = getRegistry().register(info);
|
131
179
|
}
|
132
180
|
|
133
181
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
@@ -136,8 +184,7 @@ contract RegistryService is
|
|
136
184
|
returns(NftId nftId)
|
137
185
|
{
|
138
186
|
_verifyObjectInfo(info, BUNDLE());
|
139
|
-
|
140
|
-
nftId = _registry.register(info);
|
187
|
+
nftId = getRegistry().register(info);
|
141
188
|
}
|
142
189
|
|
143
190
|
function registerStake(IRegistry.ObjectInfo memory info)
|
@@ -146,74 +193,7 @@ contract RegistryService is
|
|
146
193
|
returns(NftId nftId)
|
147
194
|
{
|
148
195
|
_verifyObjectInfo(info, STAKE());
|
149
|
-
|
150
|
-
nftId = _registry.register(info);
|
151
|
-
}
|
152
|
-
|
153
|
-
// From IService
|
154
|
-
function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
|
155
|
-
return REGISTRY();
|
156
|
-
}
|
157
|
-
|
158
|
-
// from Versionable
|
159
|
-
|
160
|
-
/// @dev top level initializer
|
161
|
-
function _initialize(
|
162
|
-
address owner,
|
163
|
-
bytes memory data
|
164
|
-
)
|
165
|
-
internal
|
166
|
-
initializer
|
167
|
-
virtual override
|
168
|
-
{
|
169
|
-
(
|
170
|
-
address initialAuthority,
|
171
|
-
address registry
|
172
|
-
) = abi.decode(data, (address, address));
|
173
|
-
|
174
|
-
__AccessManaged_init(initialAuthority);
|
175
|
-
|
176
|
-
_initializeService(address(registry), owner);
|
177
|
-
|
178
|
-
_registerInterface(type(IRegistryService).interfaceId);
|
179
|
-
}
|
180
|
-
|
181
|
-
// from IRegisterable
|
182
|
-
|
183
|
-
function getInitialInfo()
|
184
|
-
public
|
185
|
-
view
|
186
|
-
override(IRegisterable, Registerable)
|
187
|
-
returns (IRegistry.ObjectInfo memory info, bytes memory data)
|
188
|
-
{
|
189
|
-
(info , data) = super.getInitialInfo();
|
190
|
-
|
191
|
-
FunctionConfig[] memory config = new FunctionConfig[](6);
|
192
|
-
|
193
|
-
// order of service registrations MUST be reverse to this array
|
194
|
-
/*config[-1].serviceDomain = STAKE();
|
195
|
-
config[-1].selector = RegistryService.registerStake.selector;*/
|
196
|
-
|
197
|
-
config[0].serviceDomain = POLICY();
|
198
|
-
config[0].selector = RegistryService.registerPolicy.selector;
|
199
|
-
|
200
|
-
config[1].serviceDomain = BUNDLE();
|
201
|
-
config[1].selector = RegistryService.registerBundle.selector;
|
202
|
-
|
203
|
-
config[2].serviceDomain = PRODUCT();
|
204
|
-
config[2].selector = RegistryService.registerProduct.selector;
|
205
|
-
|
206
|
-
config[3].serviceDomain = POOL();
|
207
|
-
config[3].selector = RegistryService.registerPool.selector;
|
208
|
-
|
209
|
-
config[4].serviceDomain = DISTRIBUTION();
|
210
|
-
config[4].selector = RegistryService.registerDistribution.selector;
|
211
|
-
|
212
|
-
// registerInstance() have no restriction
|
213
|
-
config[5].serviceDomain = INSTANCE();
|
214
|
-
config[5].selector = RegistryService.registerInstance.selector;
|
215
|
-
|
216
|
-
data = abi.encode(config);
|
196
|
+
nftId = getRegistry().register(info);
|
217
197
|
}
|
218
198
|
|
219
199
|
// Internal
|
@@ -226,51 +206,36 @@ contract RegistryService is
|
|
226
206
|
internal
|
227
207
|
view
|
228
208
|
returns(
|
229
|
-
IRegistry.ObjectInfo memory info
|
230
|
-
bytes memory data
|
209
|
+
IRegistry.ObjectInfo memory info
|
231
210
|
)
|
232
211
|
{
|
233
|
-
(
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
212
|
+
info = registerable.getInitialInfo();
|
213
|
+
|
214
|
+
if(info.objectAddress != address(registerable)) {
|
215
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
216
|
+
}
|
238
217
|
|
239
218
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
240
|
-
revert
|
219
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
241
220
|
}
|
242
221
|
|
243
222
|
address owner = info.initialOwner;
|
244
223
|
|
245
|
-
//
|
246
|
-
|
247
|
-
// any address may create a new instance via instance service
|
248
|
-
} else {
|
249
|
-
if(owner != expectedOwner) { // registerable owner protection
|
250
|
-
revert NotRegisterableOwner(expectedOwner);
|
251
|
-
}
|
224
|
+
if(owner != expectedOwner) { // registerable owner protection
|
225
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
252
226
|
}
|
253
227
|
|
254
228
|
if(owner == address(registerable)) {
|
255
|
-
revert
|
229
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
256
230
|
}
|
257
231
|
|
258
232
|
if(owner == address(0)) {
|
259
|
-
revert
|
233
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
260
234
|
}
|
261
235
|
|
262
236
|
if(getRegistry().isRegistered(owner)) {
|
263
|
-
revert
|
237
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
264
238
|
}
|
265
|
-
|
266
|
-
/*NftId parentNftId = info.parentNftId;
|
267
|
-
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
268
|
-
|
269
|
-
if(parentInfo.objectType != parentType) { // parent registration + type
|
270
|
-
revert InvalidParent(parentNftId);
|
271
|
-
}*/
|
272
|
-
|
273
|
-
return(info, data);
|
274
239
|
}
|
275
240
|
|
276
241
|
function _verifyObjectInfo(
|
@@ -280,41 +245,22 @@ contract RegistryService is
|
|
280
245
|
internal
|
281
246
|
view
|
282
247
|
{
|
283
|
-
|
284
|
-
|
248
|
+
if(info.objectAddress > address(0)) {
|
249
|
+
revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
|
250
|
+
}
|
285
251
|
|
286
252
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
287
|
-
revert
|
253
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
288
254
|
}
|
289
255
|
|
290
256
|
address owner = info.initialOwner;
|
291
257
|
|
292
258
|
if(owner == address(0)) {
|
293
|
-
revert
|
259
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
294
260
|
}
|
295
261
|
|
296
262
|
if(getRegistry().isRegistered(owner)) {
|
297
|
-
revert
|
298
|
-
}
|
299
|
-
|
300
|
-
// can catch all 3 if check that initialOwner is not registered
|
301
|
-
/*if(info.initialOwner == msg.sender) {
|
302
|
-
revert InitialOwnerIsParent();
|
303
|
-
}
|
304
|
-
|
305
|
-
if(info.initialOwner == address(this)) {
|
306
|
-
revert InitialOwnerIsService();
|
263
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
307
264
|
}
|
308
|
-
|
309
|
-
if(info.initialOwner == address(getRegistry())) {
|
310
|
-
revert InitialOwnerIsRegistry();
|
311
|
-
}*/
|
312
|
-
|
313
|
-
/*NftId parentNftId = info.parentNftId;
|
314
|
-
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
315
|
-
|
316
|
-
if(parentInfo.objectType != parentType) { // parent registration + type
|
317
|
-
revert InvalidParent(parentNftId);
|
318
|
-
}*/
|
319
265
|
}
|
320
|
-
}
|
266
|
+
}
|