@etherisc/gif-next 0.0.2-f4f92b3-338 → 0.0.2-f509abc-684
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 +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +270 -94
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +627 -157
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +122 -72
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +323 -102
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +325 -186
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +126 -144
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +552 -212
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +374 -166
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +801 -434
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -192
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +992 -782
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +441 -164
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +119 -221
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +371 -302
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -102
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +118 -169
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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 +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +61 -78
- 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/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +306 -315
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +305 -93
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1212 -252
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +453 -85
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +155 -240
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +409 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +711 -139
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +60 -286
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -147
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -169
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +185 -391
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +311 -127
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +222 -204
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +310 -90
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +142 -221
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +302 -90
- 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 +34 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +83 -174
- 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 +47 -15
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +193 -216
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -94
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +11 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -37
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- 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/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -29
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +22 -169
- 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 +113 -33
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +113 -164
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- 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/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +125 -55
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +134 -221
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/Component.sol +112 -83
- package/contracts/components/Distribution.sol +189 -53
- package/contracts/components/IComponent.sol +48 -17
- package/contracts/components/IDistributionComponent.sol +39 -15
- package/contracts/components/IPoolComponent.sol +84 -41
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +211 -153
- package/contracts/components/Product.sol +96 -61
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +7 -5
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +36 -10
- package/contracts/instance/IInstanceService.sol +36 -4
- package/contracts/instance/Instance.sol +101 -43
- package/contracts/instance/InstanceAccessManager.sol +383 -159
- package/contracts/instance/InstanceReader.sol +7 -10
- package/contracts/instance/InstanceService.sol +262 -129
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +6 -6
- package/contracts/instance/base/KeyValueStore.sol +5 -2
- package/contracts/instance/base/Lifecycle.sol +11 -2
- package/contracts/instance/module/IAccess.sol +22 -16
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IComponents.sol +35 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +7 -20
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +82 -39
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +376 -15
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +30 -12
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +86 -0
- package/contracts/instance/service/IPolicyService.sol +27 -49
- package/contracts/instance/service/IPoolService.sol +17 -2
- package/contracts/instance/service/PolicyService.sol +148 -283
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +130 -19
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +20 -11
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +5 -2
- package/contracts/registry/IRegistryService.sol +10 -8
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +43 -28
- package/contracts/registry/RegistryService.sol +69 -48
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +18 -28
- package/contracts/registry/TokenRegistry.sol +16 -12
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -85
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +7 -19
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +15 -17
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +1 -0
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +10 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +16 -9
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +1 -0
- package/contracts/types/Timestamp.sol +13 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +3 -3
- 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/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- 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/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
| @@ -5,17 +5,20 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce | |
| 5 5 |  | 
| 6 6 | 
             
            import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
         | 
| 7 7 | 
             
            import {NftId} from "../types/NftId.sol";
         | 
| 8 | 
            +
            import {ClaimId} from "../types/ClaimId.sol";
         | 
| 8 9 | 
             
            import {NumberId} from "../types/NumberId.sol";
         | 
| 9 | 
            -
            import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT} from "../types/ObjectType.sol";
         | 
| 10 | 
            +
            import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
         | 
| 10 11 | 
             
            import {RiskId, RiskIdLib} from "../types/RiskId.sol";
         | 
| 11 | 
            -
            import {RoleId, RoleIdLib} from "../types/RoleId.sol";
         | 
| 12 | 
            +
            import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
         | 
| 12 13 | 
             
            import {StateId, ACTIVE} from "../types/StateId.sol";
         | 
| 13 14 | 
             
            import {TimestampLib} from "../types/Timestamp.sol";
         | 
| 14 | 
            -
            import {VersionPart} from "../types/Version.sol";
         | 
| 15 | 
            +
            import {VersionPart, VersionPartLib} from "../types/Version.sol";
         | 
| 15 16 |  | 
| 16 17 | 
             
            import {ERC165} from "../shared/ERC165.sol";
         | 
| 17 18 | 
             
            import {Registerable} from "../shared/Registerable.sol";
         | 
| 18 19 |  | 
| 20 | 
            +
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 21 | 
            +
             | 
| 19 22 | 
             
            import {IInstance} from "./IInstance.sol";
         | 
| 20 23 | 
             
            import {InstanceReader} from "./InstanceReader.sol";
         | 
| 21 24 | 
             
            import {InstanceAccessManager} from "./InstanceAccessManager.sol";
         | 
| @@ -25,6 +28,8 @@ import {KeyValueStore} from "./base/KeyValueStore.sol"; | |
| 25 28 |  | 
| 26 29 | 
             
            import {IAccess} from "./module/IAccess.sol";
         | 
| 27 30 | 
             
            import {IBundle} from "./module/IBundle.sol";
         | 
| 31 | 
            +
            import {IComponents} from "./module/IComponents.sol";
         | 
| 32 | 
            +
            import {IDistribution} from "./module/IDistribution.sol";
         | 
| 28 33 | 
             
            import {IPolicy} from "./module/IPolicy.sol";
         | 
| 29 34 | 
             
            import {IRisk} from "./module/IRisk.sol";
         | 
| 30 35 | 
             
            import {ISetup} from "./module/ISetup.sol";
         | 
| @@ -34,6 +39,7 @@ import {IPoolService} from "./service/IPoolService.sol"; | |
| 34 39 | 
             
            import {IProductService} from "./service/IProductService.sol";
         | 
| 35 40 | 
             
            import {IPolicyService} from "./service/IPolicyService.sol";
         | 
| 36 41 | 
             
            import {IBundleService} from "./service/IBundleService.sol";
         | 
| 42 | 
            +
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 37 43 | 
             
            import {VersionPart, VersionPartLib} from "../types/Version.sol";
         | 
| 38 44 |  | 
| 39 45 | 
             
            contract Instance is
         | 
| @@ -57,15 +63,24 @@ contract Instance is | |
| 57 63 | 
             
                InstanceReader internal _instanceReader;
         | 
| 58 64 | 
             
                BundleManager internal _bundleManager;
         | 
| 59 65 |  | 
| 60 | 
            -
                 | 
| 66 | 
            +
                modifier onlyChainNft() {
         | 
| 67 | 
            +
                    if(msg.sender != getRegistry().getChainNftAddress()) {
         | 
| 68 | 
            +
                        revert();
         | 
| 69 | 
            +
                    }
         | 
| 70 | 
            +
                    _;
         | 
| 71 | 
            +
                }
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                function initialize(address authority, address registryAddress, address initialOwner) 
         | 
| 61 74 | 
             
                    public 
         | 
| 62 | 
            -
                    initializer
         | 
| 75 | 
            +
                    initializer()
         | 
| 63 76 | 
             
                {
         | 
| 64 | 
            -
                    __AccessManaged_init( | 
| 77 | 
            +
                    __AccessManaged_init(authority);
         | 
| 65 78 |  | 
| 66 | 
            -
                     | 
| 79 | 
            +
                    IRegistry registry = IRegistry(registryAddress);
         | 
| 80 | 
            +
                    initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
         | 
| 81 | 
            +
                    initializeLifecycle();
         | 
| 67 82 |  | 
| 68 | 
            -
                     | 
| 83 | 
            +
                    registerInterface(type(IInstance).interfaceId);    
         | 
| 69 84 | 
             
                }
         | 
| 70 85 |  | 
| 71 86 | 
             
                //--- ProductSetup ------------------------------------------------------//
         | 
| @@ -95,55 +110,55 @@ contract Instance is | |
| 95 110 | 
             
                }
         | 
| 96 111 |  | 
| 97 112 | 
             
                //--- PoolSetup ------------------------------------------------------//
         | 
| 98 | 
            -
                function createPoolSetup(NftId poolNftId,  | 
| 99 | 
            -
                    create(_toNftKey32(poolNftId, POOL()), abi.encode( | 
| 113 | 
            +
                function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
         | 
| 114 | 
            +
                    create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
         | 
| 100 115 | 
             
                }
         | 
| 101 116 |  | 
| 102 | 
            -
                function updatePoolSetup(NftId poolNftId,  | 
| 103 | 
            -
                    update(_toNftKey32(poolNftId, POOL()), abi.encode( | 
| 117 | 
            +
                function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
         | 
| 118 | 
            +
                    update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
         | 
| 104 119 | 
             
                }
         | 
| 105 120 |  | 
| 106 121 | 
             
                function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
         | 
| 107 122 | 
             
                    updateState(_toNftKey32(poolNftId, POOL()), newState);
         | 
| 108 123 | 
             
                }
         | 
| 109 124 |  | 
| 110 | 
            -
                //--- DistributorType  | 
| 111 | 
            -
                function createDistributorType( | 
| 112 | 
            -
                    create( | 
| 125 | 
            +
                //--- DistributorType -------------------------------------------------------//
         | 
| 126 | 
            +
                function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external restricted() {
         | 
| 127 | 
            +
                    create(distributorKey, abi.encode(info));
         | 
| 113 128 | 
             
                }
         | 
| 114 129 |  | 
| 115 | 
            -
                function updateDistributorType( | 
| 116 | 
            -
                    update( | 
| 130 | 
            +
                function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
         | 
| 131 | 
            +
                    update(distributorKey, abi.encode(info), newState);
         | 
| 117 132 | 
             
                }
         | 
| 118 133 |  | 
| 119 | 
            -
                function updateDistributorTypeState( | 
| 120 | 
            -
                    updateState( | 
| 134 | 
            +
                function updateDistributorTypeState(Key32 distributorKey, StateId newState) external restricted() {
         | 
| 135 | 
            +
                    updateState(distributorKey, newState);
         | 
| 121 136 | 
             
                }
         | 
| 122 137 |  | 
| 123 138 | 
             
                //--- Distributor -------------------------------------------------------//
         | 
| 124 | 
            -
                function createDistributor(NftId  | 
| 125 | 
            -
                    create( | 
| 139 | 
            +
                function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external restricted() {
         | 
| 140 | 
            +
                    create(toDistributorKey32(nftId), abi.encode(info));
         | 
| 126 141 | 
             
                }
         | 
| 127 142 |  | 
| 128 | 
            -
                function updateDistributor(NftId  | 
| 129 | 
            -
                    update( | 
| 143 | 
            +
                function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
         | 
| 144 | 
            +
                    update(toDistributorKey32(nftId), abi.encode(info), newState);
         | 
| 130 145 | 
             
                }
         | 
| 131 146 |  | 
| 132 | 
            -
                function updateDistributorState(NftId  | 
| 133 | 
            -
                    updateState( | 
| 147 | 
            +
                function updateDistributorState(NftId nftId, StateId newState) external restricted() {
         | 
| 148 | 
            +
                    updateState(toDistributorKey32(nftId), newState);
         | 
| 134 149 | 
             
                }
         | 
| 135 150 |  | 
| 136 151 | 
             
                //--- Referral ----------------------------------------------------------//
         | 
| 137 | 
            -
                function createReferral( | 
| 138 | 
            -
                    create( | 
| 152 | 
            +
                function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external restricted() {
         | 
| 153 | 
            +
                    create(referralKey, abi.encode(referralInfo));
         | 
| 139 154 | 
             
                }
         | 
| 140 155 |  | 
| 141 | 
            -
                function updateReferral( | 
| 142 | 
            -
                    update( | 
| 156 | 
            +
                function updateReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
         | 
| 157 | 
            +
                    update(referralKey, abi.encode(referralInfo), newState);
         | 
| 143 158 | 
             
                }
         | 
| 144 159 |  | 
| 145 | 
            -
                function updateReferralState( | 
| 146 | 
            -
                    updateState( | 
| 160 | 
            +
                function updateReferralState(Key32 referralKey, StateId newState) external restricted() {
         | 
| 161 | 
            +
                    updateState(referralKey, newState);
         | 
| 147 162 | 
             
                }
         | 
| 148 163 |  | 
| 149 164 | 
             
                //--- Bundle ------------------------------------------------------------//
         | 
| @@ -172,11 +187,20 @@ contract Instance is | |
| 172 187 | 
             
                    updateState(riskId.toKey32(), newState);
         | 
| 173 188 | 
             
                }
         | 
| 174 189 |  | 
| 175 | 
            -
                //--- Policy  | 
| 176 | 
            -
                function  | 
| 177 | 
            -
                    create(toPolicyKey32( | 
| 190 | 
            +
                //--- Application (Policy) ----------------------------------------------//
         | 
| 191 | 
            +
                function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
         | 
| 192 | 
            +
                    create(toPolicyKey32(applicationNftId), abi.encode(policy));
         | 
| 193 | 
            +
                }
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 196 | 
            +
                    update(toPolicyKey32(applicationNftId), abi.encode(policy), newState);
         | 
| 178 197 | 
             
                }
         | 
| 179 198 |  | 
| 199 | 
            +
                function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
         | 
| 200 | 
            +
                    updateState(toPolicyKey32(applicationNftId), newState);
         | 
| 201 | 
            +
                }
         | 
| 202 | 
            +
             | 
| 203 | 
            +
                //--- Policy ------------------------------------------------------------//
         | 
| 180 204 | 
             
                function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 181 205 | 
             
                    update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
         | 
| 182 206 | 
             
                }
         | 
| @@ -186,15 +210,15 @@ contract Instance is | |
| 186 210 | 
             
                }
         | 
| 187 211 |  | 
| 188 212 | 
             
                //--- Claim -------------------------------------------------------------//
         | 
| 189 | 
            -
                function createClaim(NftId policyNftId,  | 
| 213 | 
            +
                function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
         | 
| 190 214 | 
             
                    create(toPolicyKey32(policyNftId), abi.encode(claim));
         | 
| 191 215 | 
             
                }
         | 
| 192 216 |  | 
| 193 | 
            -
                function updateClaim(NftId policyNftId,  | 
| 217 | 
            +
                function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
         | 
| 194 218 | 
             
                    update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
         | 
| 195 219 | 
             
                }
         | 
| 196 220 |  | 
| 197 | 
            -
                function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
         | 
| 221 | 
            +
                function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
         | 
| 198 222 | 
             
                    updateState(toPolicyKey32(policyNftId), newState);
         | 
| 199 223 | 
             
                }
         | 
| 200 224 |  | 
| @@ -203,7 +227,7 @@ contract Instance is | |
| 203 227 | 
             
                    create(toPolicyKey32(policyNftId), abi.encode(payout));
         | 
| 204 228 | 
             
                }
         | 
| 205 229 |  | 
| 206 | 
            -
                function  | 
| 230 | 
            +
                function updatePayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
         | 
| 207 231 | 
             
                    update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
         | 
| 208 232 | 
             
                }
         | 
| 209 233 |  | 
| @@ -211,6 +235,17 @@ contract Instance is | |
| 211 235 | 
             
                    updateState(toPolicyKey32(policyNftId), newState);
         | 
| 212 236 | 
             
                }
         | 
| 213 237 |  | 
| 238 | 
            +
                //--- ITransferInterceptor ------------------------------------------------------------//
         | 
| 239 | 
            +
                function nftMint(address to, uint256 tokenId) external onlyChainNft {
         | 
| 240 | 
            +
                    assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
         | 
| 241 | 
            +
                    assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
         | 
| 242 | 
            +
                }
         | 
| 243 | 
            +
             | 
| 244 | 
            +
                function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
         | 
| 245 | 
            +
                    assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
         | 
| 246 | 
            +
                    assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
         | 
| 247 | 
            +
                }
         | 
| 248 | 
            +
             | 
| 214 249 | 
             
                //--- internal view/pure functions --------------------------------------//
         | 
| 215 250 | 
             
                function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
         | 
| 216 251 | 
             
                    return nftId.toKey32(objectType);
         | 
| @@ -224,24 +259,36 @@ contract Instance is | |
| 224 259 | 
             
                    return policyNftId.toKey32(POLICY());
         | 
| 225 260 | 
             
                }
         | 
| 226 261 |  | 
| 262 | 
            +
                function toDistributionKey32(NftId distNftId) public pure returns (Key32) {
         | 
| 263 | 
            +
                    return distNftId.toKey32(DISTRIBUTION());
         | 
| 264 | 
            +
                }
         | 
| 265 | 
            +
             | 
| 266 | 
            +
                function toDistributorTypeKey32(NftId distNftId) public pure returns (Key32) {
         | 
| 267 | 
            +
                    return distNftId.toKey32(DISTRIBUTOR_TYPE());
         | 
| 268 | 
            +
                }
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                function toDistributorKey32(NftId distNftId) public pure returns (Key32) {
         | 
| 271 | 
            +
                    return distNftId.toKey32(DISTRIBUTOR());
         | 
| 272 | 
            +
                }
         | 
| 273 | 
            +
                
         | 
| 227 274 | 
             
                function getDistributionService() external view returns (IDistributionService) {
         | 
| 228 | 
            -
                    return IDistributionService( | 
| 275 | 
            +
                    return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
         | 
| 229 276 | 
             
                }
         | 
| 230 277 |  | 
| 231 278 | 
             
                function getProductService() external view returns (IProductService) {
         | 
| 232 | 
            -
                    return IProductService( | 
| 279 | 
            +
                    return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
         | 
| 233 280 | 
             
                }
         | 
| 234 281 |  | 
| 235 282 | 
             
                function getPoolService() external view returns (IPoolService) {
         | 
| 236 | 
            -
                    return IPoolService( | 
| 283 | 
            +
                    return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
         | 
| 237 284 | 
             
                }
         | 
| 238 285 |  | 
| 239 286 | 
             
                function getPolicyService() external view returns (IPolicyService) {
         | 
| 240 | 
            -
                    return IPolicyService( | 
| 287 | 
            +
                    return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
         | 
| 241 288 | 
             
                }
         | 
| 242 289 |  | 
| 243 290 | 
             
                function getBundleService() external view returns (IBundleService) {
         | 
| 244 | 
            -
                    return IBundleService( | 
| 291 | 
            +
                    return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
         | 
| 245 292 | 
             
                }
         | 
| 246 293 |  | 
| 247 294 | 
             
                function setInstanceReader(InstanceReader instanceReader) external restricted() {
         | 
| @@ -260,10 +307,21 @@ contract Instance is | |
| 260 307 | 
             
                function setBundleManager(BundleManager bundleManager) external restricted() {
         | 
| 261 308 | 
             
                    require(address(_bundleManager) == address(0), "BundleManager is set");
         | 
| 262 309 | 
             
                    require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
         | 
| 310 | 
            +
                    require(bundleManager.authority() == authority(), "BundleManager authority mismatch");
         | 
| 263 311 | 
             
                    _bundleManager = bundleManager;
         | 
| 264 312 | 
             
                }
         | 
| 265 313 |  | 
| 266 314 | 
             
                function getBundleManager() external view returns (BundleManager) {
         | 
| 267 315 | 
             
                    return _bundleManager;
         | 
| 268 316 | 
             
                }
         | 
| 317 | 
            +
             | 
| 318 | 
            +
                function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
         | 
| 319 | 
            +
                    require(address(_accessManager) == address(0), "InstanceAccessManager is set");
         | 
| 320 | 
            +
                    require(accessManager.authority() == authority(), "InstanceAccessManager authority mismatch");  
         | 
| 321 | 
            +
                    _accessManager = accessManager;      
         | 
| 322 | 
            +
                }
         | 
| 323 | 
            +
             | 
| 324 | 
            +
                function getInstanceAccessManager() external view returns (InstanceAccessManager) {
         | 
| 325 | 
            +
                    return _accessManager;
         | 
| 326 | 
            +
                }
         | 
| 269 327 | 
             
            }
         |