@etherisc/gif-next 0.0.2-984cc08-642 → 0.0.2-989147f-853
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -13
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +819 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -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 +273 -1592
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +264 -218
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +443 -2515
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +479 -178
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +442 -249
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +413 -390
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -95
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -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/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +93 -14
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- 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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +735 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +291 -276
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +438 -201
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +747 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +687 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IApplicationService.sol/IApplicationService.json} +219 -172
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +182 -302
- 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} +241 -230
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +239 -169
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +72 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +779 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +727 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +679 -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 +170 -17
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +208 -229
- 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 +196 -43
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +50 -97
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +323 -258
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +331 -81
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +397 -81
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +142 -54
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +199 -163
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponent.sol/IComponent.json} +163 -218
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -165
- 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/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -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 +173 -153
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -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/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → staking/IStakingService.sol/IStakingService.json} +219 -194
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -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 +124 -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 +285 -0
- package/contracts/distribution/DistributionService.sol +351 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
- package/contracts/distribution/IDistributionComponent.sol +71 -0
- package/contracts/distribution/IDistributionService.sol +87 -0
- package/contracts/instance/BundleManager.sol +15 -14
- package/contracts/instance/IInstance.sol +55 -40
- package/contracts/instance/IInstanceService.sol +49 -16
- package/contracts/instance/Instance.sol +149 -179
- package/contracts/instance/InstanceAccessManager.sol +406 -166
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +101 -26
- package/contracts/instance/InstanceService.sol +192 -253
- package/contracts/instance/InstanceServiceManager.sol +11 -8
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/base/IKeyValueStore.sol +14 -10
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +44 -47
- package/contracts/instance/base/Lifecycle.sol +28 -7
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +11 -8
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +50 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +9 -22
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/pool/BundleService.sol +384 -0
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +15 -12
- package/contracts/pool/IBundleService.sol +118 -0
- package/contracts/pool/IPoolComponent.sol +114 -0
- package/contracts/pool/IPoolService.sol +114 -0
- package/contracts/pool/Pool.sol +302 -0
- package/contracts/pool/PoolService.sol +416 -0
- package/contracts/{instance/service → pool}/PoolServiceManager.sol +15 -12
- package/contracts/product/ApplicationService.sol +187 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +443 -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 +80 -0
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/product/IProductComponent.sol +41 -0
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/product/PolicyService.sol +378 -0
- package/contracts/{instance/service → product}/PolicyServiceManager.sol +16 -13
- package/contracts/product/PricingService.sol +276 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +379 -0
- package/contracts/product/ProductService.sol +212 -0
- package/contracts/{instance/service → product}/ProductServiceManager.sol +16 -13
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +36 -21
- package/contracts/registry/IRegistryService.sol +33 -32
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +160 -89
- package/contracts/registry/RegistryAccessManager.sol +51 -129
- package/contracts/registry/RegistryService.sol +79 -165
- package/contracts/registry/RegistryServiceManager.sol +28 -18
- package/contracts/registry/ReleaseManager.sol +235 -197
- package/contracts/registry/TokenRegistry.sol +21 -15
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +271 -0
- package/contracts/shared/ComponentService.sol +141 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +90 -0
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +4 -4
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/NftOwnable.sol +64 -82
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +33 -21
- package/contracts/shared/TokenHandler.sol +14 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakingService.sol +169 -0
- package/contracts/staking/StakingServiceManager.sol +40 -0
- package/contracts/type/Amount.sol +109 -0
- package/contracts/{types → type}/Blocknumber.sol +1 -0
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +17 -8
- package/contracts/{types → type}/NftId.sol +8 -0
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +17 -7
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +139 -0
- package/contracts/type/Seconds.sol +54 -0
- package/contracts/{types → type}/StateId.sol +7 -2
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -413
- 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/IInstanceBase.sol/IInstanceBase.json +0 -619
- 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 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.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/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1094
- 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 -764
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
- 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 -1219
- 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 -798
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -848
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
- 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 -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/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 -177
- package/contracts/components/Distribution.sol +0 -154
- package/contracts/components/IComponent.sol +0 -37
- 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 -27
- package/contracts/instance/InstanceBase.sol +0 -38
- package/contracts/instance/base/ComponentService.sol +0 -133
- package/contracts/instance/base/IInstanceBase.sol +0 -21
- package/contracts/instance/service/BundleService.sol +0 -293
- package/contracts/instance/service/DistributionService.sol +0 -115
- 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/PolicyService.sol +0 -538
- package/contracts/instance/service/PoolService.sol +0 -142
- package/contracts/instance/service/ProductService.sol +0 -241
- 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/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,62 +1,77 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
5
|
|
7
|
-
import {
|
8
|
-
import {
|
6
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
7
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
8
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {StateId} from "../type/StateId.sol";
|
11
|
+
import {ReferralId} from "../type/Referral.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {VersionPart} from "../type/Version.sol";
|
14
|
+
import {Key32} from "../type/Key32.sol";
|
15
|
+
import {RoleId} from "../type/RoleId.sol";
|
16
|
+
|
17
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
9
18
|
|
10
|
-
import {
|
19
|
+
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
11
20
|
|
12
21
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
|
17
|
-
import {IBundleService} from "./service/IBundleService.sol";
|
18
|
-
import {IBundle} from "./module/IBundle.sol";
|
19
|
-
import {ISetup} from "./module/ISetup.sol";
|
20
|
-
import {NftId} from "../types/NftId.sol";
|
21
|
-
import {StateId} from "../types/StateId.sol";
|
22
|
-
import {RiskId} from "../types/RiskId.sol";
|
23
|
-
import {IRisk} from "./module/IRisk.sol";
|
24
|
-
import {IPolicy} from "./module/IPolicy.sol";
|
22
|
+
import {BundleManager} from "./BundleManager.sol";
|
23
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
24
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
25
|
+
|
25
26
|
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
26
27
|
|
28
|
+
import {IAccess} from "./module/IAccess.sol";
|
29
|
+
|
30
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
31
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
32
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
33
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
34
|
+
import {IProductService} from "../product/IProductService.sol";
|
35
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
36
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
27
37
|
|
28
|
-
interface IInstance is IInstanceBase, IAccessManaged {
|
29
38
|
|
30
|
-
function getDistributionService() external view returns (IDistributionService);
|
31
|
-
function getProductService() external view returns (IProductService);
|
32
|
-
function getPoolService() external view returns (IPoolService);
|
33
|
-
function getPolicyService() external view returns (IPolicyService);
|
34
|
-
function getBundleService() external view returns (IBundleService);
|
35
39
|
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
interface IInstance is
|
41
|
+
IRegisterable,
|
42
|
+
ITransferInterceptor,
|
43
|
+
IAccessManaged
|
44
|
+
{
|
45
|
+
error ErrorInstanceInstanceAccessManagerZero();
|
46
|
+
error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
|
47
|
+
error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
|
39
48
|
|
40
|
-
|
41
|
-
|
42
|
-
|
49
|
+
error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
|
50
|
+
error ErrorInstanceBundleManagerInstanceMismatch(address instance);
|
51
|
+
error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
|
43
52
|
|
44
|
-
|
45
|
-
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
|
46
|
-
function updateBundleState(NftId bundleNftId, StateId newState) external;
|
53
|
+
error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
|
47
54
|
|
48
|
-
|
49
|
-
|
50
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external;
|
55
|
+
error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
|
56
|
+
error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
|
51
57
|
|
52
|
-
function
|
53
|
-
function
|
54
|
-
function
|
58
|
+
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
59
|
+
function grantRole(RoleId roleId, address account) external;
|
60
|
+
function revokeRole(RoleId roleId, address account) external;
|
55
61
|
|
56
|
-
function
|
57
|
-
function
|
58
|
-
function
|
62
|
+
function createTarget(address target, string memory name) external;
|
63
|
+
function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
|
64
|
+
function setTargetLocked(address target, bool locked) external;
|
65
|
+
|
66
|
+
function getDistributionService() external view returns (IDistributionService);
|
67
|
+
function getProductService() external view returns (IProductService);
|
68
|
+
function getPoolService() external view returns (IPoolService);
|
69
|
+
function getPolicyService() external view returns (IPolicyService);
|
70
|
+
function getBundleService() external view returns (IBundleService);
|
59
71
|
|
72
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
60
73
|
function getInstanceReader() external view returns (InstanceReader);
|
61
74
|
function getBundleManager() external view returns (BundleManager);
|
75
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager);
|
76
|
+
function getInstanceStore() external view returns (InstanceStore);
|
62
77
|
}
|
@@ -1,40 +1,73 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../
|
5
|
-
import {ObjectType} from "../
|
6
|
-
import {RoleId} from "../
|
4
|
+
import {NftId} from "../type/NftId.sol";
|
5
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
|
+
import {RoleId} from "../type/RoleId.sol";
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
|
10
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
11
|
-
import {IComponent} from "../components/IComponent.sol";
|
12
8
|
|
9
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
13
10
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
14
11
|
import {Instance} from "./Instance.sol";
|
15
12
|
import {InstanceReader} from "./InstanceReader.sol";
|
16
13
|
import {BundleManager} from "./BundleManager.sol";
|
14
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
17
15
|
|
18
16
|
interface IInstanceService is IService {
|
19
17
|
|
18
|
+
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
19
|
+
error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
|
20
|
+
error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
|
21
|
+
error ErrorInstanceServiceMasterBundleManagerAlreadySet();
|
22
|
+
error ErrorInstanceServiceInstanceAddressZero();
|
23
|
+
|
24
|
+
error ErrorInstanceServiceMasterInstanceReaderNotSet();
|
25
|
+
error ErrorInstanceServiceInstanceReaderAddressZero();
|
26
|
+
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
27
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
28
|
+
|
29
|
+
error ErrorInstanceServiceInstanceAccessManagerZero();
|
30
|
+
error ErrorInstanceServiceInstanceReaderZero();
|
31
|
+
error ErrorInstanceServiceBundleManagerZero();
|
32
|
+
error ErrorInstanceServiceInstanceStoreZero();
|
33
|
+
|
34
|
+
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
35
|
+
error ErrorInstanceServiceBundleManagerAuthorityMismatch();
|
36
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
37
|
+
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
38
|
+
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
39
|
+
|
20
40
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
21
41
|
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
42
|
+
error ErrorInstanceServiceNotInstance(NftId nftId);
|
22
43
|
error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
|
44
|
+
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
45
|
+
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
23
46
|
|
24
|
-
event LogInstanceCloned(
|
47
|
+
event LogInstanceCloned(
|
48
|
+
address clonedOzAccessManager,
|
49
|
+
address clonedInstanceAccessManager,
|
50
|
+
address clonedInstance,
|
51
|
+
address clonedInstanceStore,
|
52
|
+
address clonedBundleManager,
|
53
|
+
address clonedInstanceReader,
|
54
|
+
NftId clonedInstanceNftId
|
55
|
+
);
|
25
56
|
|
26
57
|
function createInstanceClone()
|
27
58
|
external
|
28
59
|
returns (
|
29
|
-
InstanceAccessManager clonedAccessManager,
|
30
60
|
Instance clonedInstance,
|
31
|
-
NftId instanceNftId
|
32
|
-
InstanceReader clonedInstanceReader,
|
33
|
-
BundleManager clonedBundleManager
|
61
|
+
NftId instanceNftId
|
34
62
|
);
|
35
63
|
|
36
|
-
function
|
37
|
-
|
38
|
-
|
39
|
-
|
64
|
+
function createGifTarget(
|
65
|
+
NftId instanceNftId,
|
66
|
+
address targetAddress,
|
67
|
+
string memory targetName,
|
68
|
+
bytes4[][] memory selectors,
|
69
|
+
RoleId[] memory roles
|
70
|
+
) external;
|
40
71
|
|
72
|
+
function setComponentLocked(bool locked) external;
|
73
|
+
}
|
@@ -1,259 +1,229 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
7
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
8
5
|
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
6
|
+
import {Key32} from "../type/Key32.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {RiskId} from "../type/RiskId.sol";
|
9
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
11
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
13
|
+
import {ReferralId} from "../type/Referral.sol";
|
14
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
15
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
16
|
+
|
17
|
+
import {Registerable} from "../shared/Registerable.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
+
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
21
|
+
|
16
22
|
import {IInstance} from "./IInstance.sol";
|
17
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
18
24
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
19
25
|
import {BundleManager} from "./BundleManager.sol";
|
20
|
-
import {
|
21
|
-
|
22
|
-
import {
|
23
|
-
|
24
|
-
import {
|
25
|
-
import {
|
26
|
-
import {
|
27
|
-
import {
|
28
|
-
import {
|
29
|
-
import {
|
30
|
-
|
31
|
-
import {
|
26
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
27
|
+
|
28
|
+
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
29
|
+
|
30
|
+
import {IBundle} from "./module/IBundle.sol";
|
31
|
+
import {IComponents} from "./module/IComponents.sol";
|
32
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
33
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
34
|
+
import {IRisk} from "./module/IRisk.sol";
|
35
|
+
import {ISetup} from "./module/ISetup.sol";
|
36
|
+
|
37
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
38
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
39
|
+
import {IProductService} from "../product/IProductService.sol";
|
40
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
41
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
32
42
|
|
33
43
|
contract Instance is
|
34
44
|
IInstance,
|
35
45
|
AccessManagedUpgradeable,
|
36
|
-
|
37
|
-
InstanceBase
|
46
|
+
Registerable
|
38
47
|
{
|
39
|
-
|
40
|
-
uint64 public constant ADMIN_ROLE = type(uint64).min;
|
41
|
-
uint64 public constant PUBLIC_ROLE = type(uint64).max;
|
42
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
43
|
-
|
44
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
48
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
45
49
|
|
46
50
|
bool private _initialized;
|
47
51
|
|
52
|
+
InstanceAccessManager internal _accessManager;
|
48
53
|
InstanceReader internal _instanceReader;
|
49
54
|
BundleManager internal _bundleManager;
|
55
|
+
InstanceStore internal _instanceStore;
|
50
56
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
__AccessManaged_init(accessManagerAddress);
|
58
|
-
|
59
|
-
_initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
|
60
|
-
|
61
|
-
_registerInterface(type(IInstance).interfaceId);
|
62
|
-
_initialized = true;
|
57
|
+
modifier onlyChainNft() {
|
58
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
59
|
+
revert();
|
60
|
+
}
|
61
|
+
_;
|
63
62
|
}
|
64
63
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
}
|
73
|
-
|
74
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
75
|
-
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
76
|
-
}
|
77
|
-
|
78
|
-
//--- DistributionSetup ------------------------------------------------------//
|
79
|
-
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
|
80
|
-
create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
|
81
|
-
}
|
82
|
-
|
83
|
-
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
|
84
|
-
update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
|
85
|
-
}
|
86
|
-
|
87
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
88
|
-
updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
|
89
|
-
}
|
90
|
-
|
91
|
-
//--- PoolSetup ------------------------------------------------------//
|
92
|
-
function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
|
93
|
-
create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
|
94
|
-
}
|
95
|
-
|
96
|
-
function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
|
97
|
-
update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
|
98
|
-
}
|
99
|
-
|
100
|
-
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
101
|
-
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
102
|
-
}
|
103
|
-
|
104
|
-
//--- DistributorType ---------------------------------------------------//
|
105
|
-
function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
106
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
107
|
-
}
|
108
|
-
|
109
|
-
function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
110
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
111
|
-
}
|
64
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
65
|
+
external
|
66
|
+
initializer()
|
67
|
+
{
|
68
|
+
if(authority == address(0)) {
|
69
|
+
revert ErrorInstanceInstanceAccessManagerZero();
|
70
|
+
}
|
112
71
|
|
113
|
-
|
114
|
-
|
115
|
-
|
72
|
+
__AccessManaged_init(authority);
|
73
|
+
|
74
|
+
IRegistry registry = IRegistry(registryAddress);
|
75
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
116
76
|
|
117
|
-
|
118
|
-
function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
119
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
77
|
+
registerInterface(type(IInstance).interfaceId);
|
120
78
|
}
|
121
79
|
|
122
|
-
|
123
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
124
|
-
}
|
80
|
+
//--- Roles ------------------------------------------------------------//
|
125
81
|
|
126
|
-
function
|
127
|
-
|
82
|
+
function createRole(string memory roleName, string memory adminName)
|
83
|
+
external
|
84
|
+
restricted // INSTANCE_OWNER_ROLE
|
85
|
+
returns (RoleId roleId, RoleId admin)
|
86
|
+
{
|
87
|
+
(roleId, admin) = _accessManager.createRole(roleName, adminName);
|
128
88
|
}
|
129
89
|
|
130
|
-
|
131
|
-
|
132
|
-
|
90
|
+
function grantRole(RoleId roleId, address account)
|
91
|
+
external
|
92
|
+
restricted // INSTANCE_OWNER_ROLE
|
93
|
+
{
|
94
|
+
_accessManager.grantRole(roleId, account);
|
133
95
|
}
|
134
96
|
|
135
|
-
function
|
136
|
-
|
97
|
+
function revokeRole(RoleId roleId, address account)
|
98
|
+
external
|
99
|
+
restricted // INSTANCE_OWNER_ROLE
|
100
|
+
{
|
101
|
+
_accessManager.revokeRole(roleId, account);
|
137
102
|
}
|
138
103
|
|
139
|
-
|
140
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
141
|
-
}
|
104
|
+
//--- Targets ------------------------------------------------------------//
|
142
105
|
|
143
|
-
|
144
|
-
|
145
|
-
|
106
|
+
function createTarget(address target, string memory name)
|
107
|
+
external
|
108
|
+
restricted // INSTANCE_OWNER_ROLE
|
109
|
+
{
|
110
|
+
_accessManager.createTarget(target, name);
|
146
111
|
}
|
147
112
|
|
148
|
-
function
|
149
|
-
|
113
|
+
function setTargetFunctionRole(
|
114
|
+
string memory targetName,
|
115
|
+
bytes4[] calldata selectors,
|
116
|
+
RoleId roleId
|
117
|
+
)
|
118
|
+
external
|
119
|
+
restricted // INSTANCE_OWNER_ROLE
|
120
|
+
{
|
121
|
+
_accessManager.setTargetFunctionRole(targetName, selectors, roleId);
|
150
122
|
}
|
151
123
|
|
152
|
-
function
|
153
|
-
|
124
|
+
function setTargetLocked(address target, bool locked)
|
125
|
+
external
|
126
|
+
restricted // INSTANCE_OWNER_ROLE
|
127
|
+
{
|
128
|
+
_accessManager.setTargetLockedByInstance(target, locked);
|
154
129
|
}
|
155
130
|
|
156
|
-
//---
|
157
|
-
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
158
|
-
create(riskId.toKey32(), abi.encode(risk));
|
159
|
-
}
|
131
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
160
132
|
|
161
|
-
function
|
162
|
-
|
133
|
+
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
134
|
+
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
135
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
163
136
|
}
|
164
137
|
|
165
|
-
function
|
166
|
-
|
138
|
+
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
139
|
+
assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
|
140
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
167
141
|
}
|
168
142
|
|
169
|
-
//---
|
170
|
-
function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
171
|
-
create(toPolicyKey32(policyNftId), abi.encode(policy));
|
172
|
-
}
|
143
|
+
//--- initial setup functions -------------------------------------------//
|
173
144
|
|
174
|
-
function
|
175
|
-
|
145
|
+
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
146
|
+
if(address(_accessManager) != address(0)) {
|
147
|
+
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
148
|
+
}
|
149
|
+
if(accessManager.authority() != authority()) {
|
150
|
+
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
151
|
+
}
|
152
|
+
_accessManager = accessManager;
|
176
153
|
}
|
177
|
-
|
178
|
-
function
|
179
|
-
|
154
|
+
|
155
|
+
function setBundleManager(BundleManager bundleManager) external restricted() {
|
156
|
+
if(address(_bundleManager) != address(0)) {
|
157
|
+
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
158
|
+
}
|
159
|
+
if(bundleManager.getInstance() != Instance(this)) {
|
160
|
+
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
161
|
+
}
|
162
|
+
if(bundleManager.authority() != authority()) {
|
163
|
+
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
164
|
+
}
|
165
|
+
_bundleManager = bundleManager;
|
180
166
|
}
|
181
167
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
168
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
169
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
170
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
171
|
+
}
|
186
172
|
|
187
|
-
|
188
|
-
update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
|
173
|
+
_instanceReader = instanceReader;
|
189
174
|
}
|
190
175
|
|
191
|
-
|
192
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
193
|
-
}
|
176
|
+
//--- external view functions -------------------------------------------//
|
194
177
|
|
195
|
-
|
196
|
-
|
197
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
178
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
179
|
+
return _instanceReader;
|
198
180
|
}
|
199
181
|
|
200
|
-
function
|
201
|
-
|
182
|
+
function getBundleManager() external view returns (BundleManager) {
|
183
|
+
return _bundleManager;
|
202
184
|
}
|
203
185
|
|
204
|
-
function
|
205
|
-
|
186
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
187
|
+
return _accessManager;
|
206
188
|
}
|
207
189
|
|
208
|
-
|
209
|
-
|
210
|
-
|
190
|
+
function setInstanceStore(InstanceStore instanceStore) external restricted {
|
191
|
+
if(address(_instanceStore) != address(0)) {
|
192
|
+
revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
|
193
|
+
}
|
194
|
+
if(instanceStore.authority() != authority()) {
|
195
|
+
revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
|
196
|
+
}
|
197
|
+
_instanceStore = instanceStore;
|
211
198
|
}
|
212
199
|
|
213
|
-
function
|
214
|
-
return
|
200
|
+
function getInstanceStore() external view returns (InstanceStore) {
|
201
|
+
return _instanceStore;
|
215
202
|
}
|
216
203
|
|
217
|
-
function
|
218
|
-
return
|
204
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
205
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
219
206
|
}
|
220
207
|
|
221
208
|
function getDistributionService() external view returns (IDistributionService) {
|
222
|
-
return IDistributionService(
|
209
|
+
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
223
210
|
}
|
224
211
|
|
225
212
|
function getProductService() external view returns (IProductService) {
|
226
|
-
return IProductService(
|
213
|
+
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
227
214
|
}
|
228
215
|
|
229
216
|
function getPoolService() external view returns (IPoolService) {
|
230
|
-
return IPoolService(
|
217
|
+
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
231
218
|
}
|
232
219
|
|
233
220
|
function getPolicyService() external view returns (IPolicyService) {
|
234
|
-
return IPolicyService(
|
221
|
+
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
235
222
|
}
|
236
223
|
|
237
224
|
function getBundleService() external view returns (IBundleService) {
|
238
|
-
return IBundleService(
|
225
|
+
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
239
226
|
}
|
240
227
|
|
241
|
-
|
242
|
-
|
243
|
-
_instanceReader = instanceReader;
|
244
|
-
}
|
245
|
-
|
246
|
-
function getInstanceReader() external view returns (InstanceReader) {
|
247
|
-
return _instanceReader;
|
248
|
-
}
|
249
|
-
|
250
|
-
function setBundleManager(BundleManager bundleManager) external restricted() {
|
251
|
-
require(address(_bundleManager) == address(0), "BundleManager is set");
|
252
|
-
require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
|
253
|
-
_bundleManager = bundleManager;
|
254
|
-
}
|
255
|
-
|
256
|
-
function getBundleManager() external view returns (BundleManager) {
|
257
|
-
return _bundleManager;
|
258
|
-
}
|
259
|
-
}
|
228
|
+
//--- internal view/pure functions --------------------------------------//
|
229
|
+
}
|