@etherisc/gif-next 0.0.2-bb1081a-994 → 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/{components/IPoolComponent.sol/IPoolComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +398 -276
- 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 +68 -54
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +268 -1576
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +296 -211
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +455 -2542
- 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 +609 -425
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +464 -375
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +368 -107
- 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 +256 -346
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +448 -290
- 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 -235
- 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 -303
- 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 -221
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +370 -281
- 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} +116 -170
- 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/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +822 -220
- 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 +203 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +349 -220
- 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 +440 -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 +480 -265
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -95
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
- 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 +349 -82
- 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/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +361 -271
- 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/{components/IComponent.sol/IComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +209 -185
- 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/Component.sol/Component.json → shared/IComponent.sol/IComponent.json} +205 -187
- 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/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +221 -211
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- 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 -30
- 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 -158
- 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 +108 -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 +330 -75
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -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 +178 -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 +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 +15 -14
- package/contracts/instance/IInstance.sol +53 -46
- package/contracts/instance/IInstanceService.sol +58 -17
- package/contracts/instance/Instance.sol +145 -179
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +135 -63
- package/contracts/instance/InstanceService.sol +250 -250
- 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 +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/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 +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 +47 -21
- package/contracts/registry/IRegistryService.sol +42 -38
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +220 -96
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +108 -104
- package/contracts/registry/RegistryServiceManager.sol +22 -26
- package/contracts/registry/ReleaseManager.sol +458 -191
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +263 -60
- 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 +3 -3
- 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 -91
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +19 -30
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +38 -21
- 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/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/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/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
- 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/ComponentService.sol/ComponentService.json +0 -603
- 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 -1167
- 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/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/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/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/Component.sol +0 -247
- package/contracts/components/Distribution.sol +0 -143
- package/contracts/components/IComponent.sol +0 -50
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -77
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -257
- package/contracts/components/Product.sol +0 -263
- 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/InstanceAccessManager.sol +0 -298
- 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 -299
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -106
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- 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 -519
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -232
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- 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}/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,19 +37,59 @@ 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
|
|
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
|
+
}
|
77
|
+
|
78
|
+
|
43
79
|
function registerInstance(IRegisterable instance, address owner)
|
44
80
|
external
|
81
|
+
virtual
|
45
82
|
restricted
|
46
83
|
returns(
|
47
84
|
IRegistry.ObjectInfo memory info
|
48
85
|
)
|
49
86
|
{
|
50
87
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
51
|
-
revert
|
88
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
52
89
|
}
|
53
90
|
|
54
91
|
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
55
|
-
info.nftId =
|
92
|
+
info.nftId = getRegistry().register(info);
|
56
93
|
|
57
94
|
instance.linkToRegisteredNftId(); // asume safe
|
58
95
|
}
|
@@ -66,11 +103,31 @@ contract RegistryService is
|
|
66
103
|
{
|
67
104
|
// CAN revert if no ERC165 support -> will revert with empty message
|
68
105
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
69
|
-
revert
|
106
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
70
107
|
}
|
71
108
|
|
72
109
|
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
73
|
-
info.nftId =
|
110
|
+
info.nftId = getRegistry().register(info);
|
111
|
+
}
|
112
|
+
|
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
|
+
}
|
128
|
+
|
129
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
130
|
+
info.nftId = getRegistry().register(info);
|
74
131
|
}
|
75
132
|
|
76
133
|
function registerPool(IComponent pool, address owner)
|
@@ -81,11 +138,11 @@ contract RegistryService is
|
|
81
138
|
)
|
82
139
|
{
|
83
140
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
84
|
-
revert
|
141
|
+
revert ErrorRegistryServiceNotPool(address(pool));
|
85
142
|
}
|
86
143
|
|
87
144
|
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
88
|
-
info.nftId =
|
145
|
+
info.nftId = getRegistry().register(info);
|
89
146
|
}
|
90
147
|
|
91
148
|
function registerDistribution(IComponent distribution, address owner)
|
@@ -96,11 +153,20 @@ contract RegistryService is
|
|
96
153
|
)
|
97
154
|
{
|
98
155
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
99
|
-
revert
|
156
|
+
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
100
157
|
}
|
101
158
|
|
102
159
|
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
103
|
-
info.nftId =
|
160
|
+
info.nftId = getRegistry().register(info);
|
161
|
+
}
|
162
|
+
|
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);
|
104
170
|
}
|
105
171
|
|
106
172
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
@@ -109,8 +175,7 @@ contract RegistryService is
|
|
109
175
|
returns(NftId nftId)
|
110
176
|
{
|
111
177
|
_verifyObjectInfo(info, POLICY());
|
112
|
-
|
113
|
-
nftId = _registry.register(info);
|
178
|
+
nftId = getRegistry().register(info);
|
114
179
|
}
|
115
180
|
|
116
181
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
@@ -119,8 +184,7 @@ contract RegistryService is
|
|
119
184
|
returns(NftId nftId)
|
120
185
|
{
|
121
186
|
_verifyObjectInfo(info, BUNDLE());
|
122
|
-
|
123
|
-
nftId = _registry.register(info);
|
187
|
+
nftId = getRegistry().register(info);
|
124
188
|
}
|
125
189
|
|
126
190
|
function registerStake(IRegistry.ObjectInfo memory info)
|
@@ -129,71 +193,7 @@ contract RegistryService is
|
|
129
193
|
returns(NftId nftId)
|
130
194
|
{
|
131
195
|
_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);
|
162
|
-
}
|
163
|
-
|
164
|
-
// from IRegisterable
|
165
|
-
|
166
|
-
function getFunctionConfigs()
|
167
|
-
external
|
168
|
-
pure
|
169
|
-
returns(
|
170
|
-
FunctionConfig[] memory config
|
171
|
-
)
|
172
|
-
{
|
173
|
-
config = new FunctionConfig[](6);
|
174
|
-
|
175
|
-
// order of service registrations MUST be reverse to this array
|
176
|
-
/*config[-1].serviceDomain = STAKE();
|
177
|
-
config[-1].selector = RegistryService.registerStake.selector;*/
|
178
|
-
|
179
|
-
config[0].serviceDomain = POLICY();
|
180
|
-
config[0].selector = RegistryService.registerPolicy.selector;
|
181
|
-
|
182
|
-
config[1].serviceDomain = BUNDLE();
|
183
|
-
config[1].selector = RegistryService.registerBundle.selector;
|
184
|
-
|
185
|
-
config[2].serviceDomain = PRODUCT();
|
186
|
-
config[2].selector = RegistryService.registerProduct.selector;
|
187
|
-
|
188
|
-
config[3].serviceDomain = POOL();
|
189
|
-
config[3].selector = RegistryService.registerPool.selector;
|
190
|
-
|
191
|
-
config[4].serviceDomain = DISTRIBUTION();
|
192
|
-
config[4].selector = RegistryService.registerDistribution.selector;
|
193
|
-
|
194
|
-
// registerInstance() have no restriction
|
195
|
-
config[5].serviceDomain = INSTANCE();
|
196
|
-
config[5].selector = RegistryService.registerInstance.selector;
|
196
|
+
nftId = getRegistry().register(info);
|
197
197
|
}
|
198
198
|
|
199
199
|
// Internal
|
@@ -204,34 +204,37 @@ contract RegistryService is
|
|
204
204
|
address expectedOwner // assume can be 0 when given by other service
|
205
205
|
)
|
206
206
|
internal
|
207
|
-
|
207
|
+
view
|
208
208
|
returns(
|
209
209
|
IRegistry.ObjectInfo memory info
|
210
210
|
)
|
211
211
|
{
|
212
212
|
info = registerable.getInitialInfo();
|
213
|
-
|
213
|
+
|
214
|
+
if(info.objectAddress != address(registerable)) {
|
215
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
216
|
+
}
|
214
217
|
|
215
218
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
216
|
-
revert
|
219
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
217
220
|
}
|
218
221
|
|
219
222
|
address owner = info.initialOwner;
|
220
223
|
|
221
224
|
if(owner != expectedOwner) { // registerable owner protection
|
222
|
-
revert
|
225
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
223
226
|
}
|
224
227
|
|
225
228
|
if(owner == address(registerable)) {
|
226
|
-
revert
|
229
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
227
230
|
}
|
228
231
|
|
229
232
|
if(owner == address(0)) {
|
230
|
-
revert
|
233
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
231
234
|
}
|
232
235
|
|
233
236
|
if(getRegistry().isRegistered(owner)) {
|
234
|
-
revert
|
237
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
235
238
|
}
|
236
239
|
}
|
237
240
|
|
@@ -242,21 +245,22 @@ contract RegistryService is
|
|
242
245
|
internal
|
243
246
|
view
|
244
247
|
{
|
245
|
-
|
246
|
-
|
248
|
+
if(info.objectAddress > address(0)) {
|
249
|
+
revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
|
250
|
+
}
|
247
251
|
|
248
252
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
249
|
-
revert
|
253
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
250
254
|
}
|
251
255
|
|
252
256
|
address owner = info.initialOwner;
|
253
257
|
|
254
258
|
if(owner == address(0)) {
|
255
|
-
revert
|
259
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
256
260
|
}
|
257
261
|
|
258
262
|
if(getRegistry().isRegistered(owner)) {
|
259
|
-
revert
|
263
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
260
264
|
}
|
261
265
|
}
|
262
|
-
}
|
266
|
+
}
|
@@ -1,10 +1,8 @@
|
|
1
|
-
// SPDX-License-Identifier:
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
5
|
|
6
|
-
import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
|
7
|
-
|
8
6
|
import {Registry} from "./Registry.sol";
|
9
7
|
import {IVersionable} from "../shared/IVersionable.sol";
|
10
8
|
import {ProxyManager} from "../shared/ProxyManager.sol";
|
@@ -15,41 +13,39 @@ import {TokenRegistry} from "./TokenRegistry.sol";
|
|
15
13
|
contract RegistryServiceManager is
|
16
14
|
ProxyManager
|
17
15
|
{
|
16
|
+
error ErrorRegistryAccessManagerAuthorityZero();
|
17
|
+
error ErrorRegistryAccessManagerRegistryZero();
|
18
|
+
|
18
19
|
bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
|
19
20
|
|
20
21
|
RegistryService private immutable _registryService;
|
21
22
|
|
22
23
|
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
23
24
|
constructor(
|
24
|
-
address
|
25
|
-
address registry
|
26
|
-
|
25
|
+
address authority, // used by implementation
|
26
|
+
address registry, // used by implementation
|
27
|
+
bytes32 salt
|
28
|
+
)
|
29
|
+
ProxyManager(registry)
|
27
30
|
{
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
// implementation's initializer func `data` argument
|
32
|
-
bytes memory initializationData = abi.encode(
|
33
|
-
initialAuthority,
|
34
|
-
registry);
|
31
|
+
if(authority == address(0)) {
|
32
|
+
revert ErrorRegistryAccessManagerAuthorityZero();
|
33
|
+
}
|
35
34
|
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
if(registry == address(0)) {
|
36
|
+
revert ErrorRegistryAccessManagerRegistryZero();
|
37
|
+
}
|
38
|
+
|
39
|
+
RegistryService srv = new RegistryService{ salt: salt }();
|
40
|
+
bytes memory data = abi.encode(registry, authority);
|
41
|
+
IVersionable versionable = deployDetermenistic(
|
42
|
+
address(srv),
|
43
|
+
data,
|
44
|
+
salt);
|
39
45
|
|
40
46
|
_registryService = RegistryService(address(versionable));
|
41
47
|
}
|
42
48
|
|
43
|
-
// from IRegisterable
|
44
|
-
|
45
|
-
// IMPORTANT: registry here and in constructor MUST be the same
|
46
|
-
function linkToNftOwnable(address registry)
|
47
|
-
public
|
48
|
-
onlyOwner
|
49
|
-
{
|
50
|
-
_linkToNftOwnable(registry, address(_registryService));
|
51
|
-
}
|
52
|
-
|
53
49
|
//--- view functions ----------------------------------------------------//
|
54
50
|
|
55
51
|
function getRegistryService()
|