@etherisc/gif-next 0.0.2-f2b0fa2-473 → 0.0.2-f2df3e2-873
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 +75 -14
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +842 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +954 -219
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → components/IComponent.sol/IComponent.json} +303 -164
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +848 -31
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +864 -49
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +682 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +849 -247
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +637 -224
- 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 +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +91 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +2444 -184
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +368 -156
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1033 -1216
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +593 -180
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +357 -211
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +653 -216
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +392 -75
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +276 -150
- 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 +71 -45
- 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 +1060 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +681 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1266 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1040 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1774 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +793 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +627 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +686 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +804 -160
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +937 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +437 -154
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -391
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1511 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1237 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +661 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +840 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -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 +373 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +223 -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 +333 -188
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +227 -330
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +304 -138
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
- 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 -34
- 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 +86 -172
- 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 +120 -27
- 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 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- 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 +191 -163
- 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 +129 -51
- 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 +210 -214
- 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/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +185 -0
- 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 +179 -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 +40 -9
- 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 +26 -3
- 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 +209 -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 +38 -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 +22 -3
- package/contracts/components/Component.sol +253 -0
- package/contracts/components/Distribution.sol +204 -86
- package/contracts/components/IComponent.sol +76 -0
- package/contracts/components/IDistributionComponent.sol +44 -16
- package/contracts/components/IPoolComponent.sol +88 -37
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +224 -181
- package/contracts/components/Product.sol +249 -175
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/Cloneable.sol +51 -0
- package/contracts/instance/IInstance.sol +88 -14
- package/contracts/instance/IInstanceService.sol +54 -3
- package/contracts/instance/Instance.sol +155 -281
- package/contracts/instance/InstanceAccessManager.sol +414 -175
- package/contracts/instance/InstanceReader.sol +67 -30
- package/contracts/instance/InstanceService.sol +431 -55
- package/contracts/instance/InstanceServiceManager.sol +11 -13
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +121 -0
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +23 -6
- package/contracts/instance/module/IAccess.sol +36 -20
- package/contracts/instance/module/IBundle.sol +8 -4
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +41 -9
- package/contracts/instance/module/ISetup.sol +9 -19
- package/contracts/instance/service/ApplicationService.sol +355 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +436 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ClaimService.sol +239 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +431 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +78 -0
- package/contracts/instance/service/IBundleService.sol +96 -0
- package/contracts/instance/service/IClaimService.sol +92 -0
- package/contracts/instance/service/IDistributionService.sol +87 -0
- package/contracts/instance/service/IPolicyService.sol +137 -0
- package/contracts/instance/service/IPoolService.sol +79 -17
- package/contracts/instance/service/IProductService.sol +6 -73
- package/contracts/instance/service/PolicyService.sol +541 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +303 -0
- package/contracts/instance/service/PoolServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +210 -0
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +9 -1
- package/contracts/registry/IRegistry.sol +52 -8
- package/contracts/registry/IRegistryService.sol +47 -14
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +270 -226
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +111 -268
- package/contracts/registry/RegistryServiceManager.sol +24 -26
- package/contracts/registry/ReleaseManager.sol +324 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/ERC165.sol +14 -8
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +5 -4
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +67 -83
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -31
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +42 -24
- 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 +4 -3
- package/contracts/types/Amount.sol +65 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +75 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/ObjectType.sol +11 -6
- package/contracts/types/PayoutId.sol +82 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +26 -11
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +11 -2
- package/contracts/types/Timestamp.sol +18 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +5 -1
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- 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/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -86
- package/contracts/components/IBaseComponent.sol +0 -24
- 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/AccessManagedSimple.sol +0 -114
- package/contracts/instance/AccessManagerSimple.sol +0 -682
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
| @@ -1,186 +1,79 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import { | 
| 5 | 
            -
             | 
| 4 | 
            +
            import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            import {Key32} from "../types/Key32.sol";
         | 
| 7 | 
            +
            import {NftId} from "../types/NftId.sol";
         | 
| 8 | 
            +
            import {ClaimId} from "../types/ClaimId.sol";
         | 
| 9 | 
            +
            import {DistributorType} from "../types/DistributorType.sol";
         | 
| 10 | 
            +
            import {PayoutId} from "../types/PayoutId.sol";
         | 
| 11 | 
            +
            import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, DISTRIBUTOR} from "../types/ObjectType.sol";
         | 
| 12 | 
            +
            import {ReferralId} from "../types/Referral.sol";
         | 
| 13 | 
            +
            import {RiskId} from "../types/RiskId.sol";
         | 
| 14 | 
            +
            import {INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
         | 
| 15 | 
            +
            import {StateId} from "../types/StateId.sol";
         | 
| 16 | 
            +
            import {VersionPart, VersionPartLib} from "../types/Version.sol";
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            import {Registerable} from "../shared/Registerable.sol";
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            import {IInstance} from "./IInstance.sol";
         | 
| 23 | 
            +
            import {InstanceReader} from "./InstanceReader.sol";
         | 
| 24 | 
            +
            import {InstanceAccessManager} from "./InstanceAccessManager.sol";
         | 
| 25 | 
            +
            import {BundleManager} from "./BundleManager.sol";
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            import {KeyValueStore} from "./base/KeyValueStore.sol";
         | 
| 6 28 |  | 
| 7 | 
            -
            import {AccessManagedSimple} from "./AccessManagedSimple.sol";
         | 
| 8 | 
            -
            import {AccessManagerSimple} from "./AccessManagerSimple.sol";
         | 
| 9 | 
            -
            import {IAccess} from "./module/IAccess.sol";
         | 
| 10 29 | 
             
            import {IBundle} from "./module/IBundle.sol";
         | 
| 30 | 
            +
            import {IComponents} from "./module/IComponents.sol";
         | 
| 31 | 
            +
            import {IDistribution} from "./module/IDistribution.sol";
         | 
| 11 32 | 
             
            import {IPolicy} from "./module/IPolicy.sol";
         | 
| 12 33 | 
             
            import {IRisk} from "./module/IRisk.sol";
         | 
| 13 34 | 
             
            import {ISetup} from "./module/ISetup.sol";
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            import { | 
| 16 | 
            -
            import {IInstance} from "./IInstance.sol";
         | 
| 17 | 
            -
            import {InstanceReader} from "./InstanceReader.sol";
         | 
| 18 | 
            -
            import {NftId} from "../types/NftId.sol";
         | 
| 19 | 
            -
            import {NumberId} from "../types/NumberId.sol";
         | 
| 20 | 
            -
            import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
         | 
| 21 | 
            -
            import {RiskId, RiskIdLib} from "../types/RiskId.sol";
         | 
| 22 | 
            -
            import {RoleId, RoleIdLib} from "../types/RoleId.sol";
         | 
| 23 | 
            -
            import {StateId, ACTIVE} from "../types/StateId.sol";
         | 
| 24 | 
            -
            import {ERC165} from "../shared/ERC165.sol";
         | 
| 25 | 
            -
            import {Registerable} from "../shared/Registerable.sol";
         | 
| 26 | 
            -
            import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
         | 
| 27 | 
            -
            import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
         | 
| 28 | 
            -
            import {VersionPart} from "../types/Version.sol";
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            import {VersionPart, VersionPartLib} from "../types/Version.sol";
         | 
| 29 37 |  | 
| 30 38 | 
             
            contract Instance is
         | 
| 31 | 
            -
                AccessManagedSimple,
         | 
| 32 | 
            -
                KeyValueStore,
         | 
| 33 39 | 
             
                IInstance,
         | 
| 34 | 
            -
                 | 
| 35 | 
            -
                Registerable
         | 
| 40 | 
            +
                AccessManagedUpgradeable,
         | 
| 41 | 
            +
                Registerable,
         | 
| 42 | 
            +
                KeyValueStore
         | 
| 36 43 | 
             
            {
         | 
| 37 44 |  | 
| 45 | 
            +
                uint256 public constant GIF_MAJOR_VERSION = 3;
         | 
| 46 | 
            +
             | 
| 38 47 | 
             
                uint64 public constant ADMIN_ROLE = type(uint64).min;
         | 
| 39 48 | 
             
                uint64 public constant PUBLIC_ROLE = type(uint64).max;
         | 
| 40 49 | 
             
                uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
         | 
| 41 50 |  | 
| 42 51 | 
             
                uint32 public constant EXECUTION_DELAY = 0;
         | 
| 43 52 |  | 
| 44 | 
            -
                 | 
| 45 | 
            -
                mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers; 
         | 
| 46 | 
            -
                RoleId [] internal _roles;
         | 
| 53 | 
            +
                bool private _initialized;
         | 
| 47 54 |  | 
| 48 | 
            -
                 | 
| 49 | 
            -
             | 
| 50 | 
            -
                AccessManagerSimple internal _accessManager;
         | 
| 55 | 
            +
                InstanceAccessManager internal _accessManager;
         | 
| 51 56 | 
             
                InstanceReader internal _instanceReader;
         | 
| 57 | 
            +
                BundleManager internal _bundleManager;
         | 
| 52 58 |  | 
| 53 | 
            -
                 | 
| 54 | 
            -
                     | 
| 55 | 
            -
             | 
| 56 | 
            -
                    // TODO move to initializer method and remove constructor - required for the instance to be cloneable
         | 
| 57 | 
            -
                    _accessManager = AccessManagerSimple(accessManagerAddress);
         | 
| 58 | 
            -
                    _createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
         | 
| 59 | 
            -
                    _createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
         | 
| 60 | 
            -
             | 
| 61 | 
            -
                    _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, msg.sender, "");
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                    _registerInterface(type(IInstance).interfaceId);
         | 
| 64 | 
            -
                }
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                //--- Role ------------------------------------------------------//
         | 
| 67 | 
            -
                function createStandardRole(RoleId roleId, string memory name) external restricted() {
         | 
| 68 | 
            -
                    _createRole(roleId, name, false, true);
         | 
| 69 | 
            -
                }
         | 
| 70 | 
            -
             | 
| 71 | 
            -
                function createCustomRole(RoleId roleId, string memory name) external restricted() {
         | 
| 72 | 
            -
                    _createRole(roleId, name, true, true);
         | 
| 73 | 
            -
                }
         | 
| 74 | 
            -
             | 
| 75 | 
            -
                function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
         | 
| 76 | 
            -
                    (bool isCustom,) = _validateRoleParameters(roleId, name, false);
         | 
| 77 | 
            -
                    IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
         | 
| 78 | 
            -
                    update(toRoleKey32(roleId), abi.encode(role), newState);
         | 
| 79 | 
            -
                }
         | 
| 80 | 
            -
             | 
| 81 | 
            -
                function updateRoleState(RoleId roleId, StateId newState) external restricted() {
         | 
| 82 | 
            -
                    updateState(toRoleKey32(roleId), newState);
         | 
| 83 | 
            -
                }
         | 
| 84 | 
            -
             | 
| 85 | 
            -
                function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
         | 
| 86 | 
            -
                    Key32 roleKey = toRoleKey32(roleId);
         | 
| 87 | 
            -
             | 
| 88 | 
            -
                    if (!exists(roleKey)) {
         | 
| 89 | 
            -
                        revert IAccess.ErrorGrantNonexstentRole(roleId);
         | 
| 90 | 
            -
                    }
         | 
| 91 | 
            -
             | 
| 92 | 
            -
                    if (getState(roleKey) != ACTIVE()) {
         | 
| 93 | 
            -
                        revert IAccess.ErrorRoleIdNotActive(roleId);
         | 
| 94 | 
            -
                    }
         | 
| 95 | 
            -
             | 
| 96 | 
            -
                    if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
         | 
| 97 | 
            -
                        _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
         | 
| 98 | 
            -
                        EnumerableSet.add(_roleMembers[roleId], member);
         | 
| 99 | 
            -
                        return true;
         | 
| 100 | 
            -
                    }
         | 
| 101 | 
            -
             | 
| 102 | 
            -
                    return false;
         | 
| 103 | 
            -
                }
         | 
| 104 | 
            -
             | 
| 105 | 
            -
                function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
         | 
| 106 | 
            -
                    Key32 roleKey = toRoleKey32(roleId);
         | 
| 107 | 
            -
             | 
| 108 | 
            -
                    if (!exists(roleKey)) {
         | 
| 109 | 
            -
                        revert IAccess.ErrorRevokeNonexstentRole(roleId);
         | 
| 110 | 
            -
                    }
         | 
| 111 | 
            -
             | 
| 112 | 
            -
                    if (EnumerableSet.contains(_roleMembers[roleId], member)) {
         | 
| 113 | 
            -
                        _accessManager.revokeRole(roleId.toInt(), member);
         | 
| 114 | 
            -
                        EnumerableSet.remove(_roleMembers[roleId], member);
         | 
| 115 | 
            -
                        return true;
         | 
| 116 | 
            -
                    }
         | 
| 117 | 
            -
             | 
| 118 | 
            -
                    return false;
         | 
| 119 | 
            -
                }
         | 
| 120 | 
            -
             | 
| 121 | 
            -
                /// @dev not restricted function by intention
         | 
| 122 | 
            -
                /// the restriction to role members is already enforced by the call to the access manger
         | 
| 123 | 
            -
                function renounceRole(RoleId roleId) external returns (bool revoked) {
         | 
| 124 | 
            -
                    address member = msg.sender;
         | 
| 125 | 
            -
                    Key32 roleKey = toRoleKey32(roleId);
         | 
| 126 | 
            -
             | 
| 127 | 
            -
                    if (!exists(roleKey)) {
         | 
| 128 | 
            -
                        revert IAccess.ErrorRenounceNonexstentRole(roleId);
         | 
| 129 | 
            -
                    }
         | 
| 130 | 
            -
             | 
| 131 | 
            -
                    if (EnumerableSet.contains(_roleMembers[roleId], member)) {
         | 
| 132 | 
            -
                        _accessManager.renounceRole(roleId.toInt(), member);
         | 
| 133 | 
            -
                        EnumerableSet.remove(_roleMembers[roleId], member);
         | 
| 134 | 
            -
                        return true;
         | 
| 135 | 
            -
                    }
         | 
| 136 | 
            -
             | 
| 137 | 
            -
                    return false;
         | 
| 138 | 
            -
                }
         | 
| 139 | 
            -
             | 
| 140 | 
            -
                function roles() external view returns (uint256 numberOfRoles) {
         | 
| 141 | 
            -
                    return _roles.length;
         | 
| 142 | 
            -
                }
         | 
| 143 | 
            -
             | 
| 144 | 
            -
                function getRoleId(uint256 idx) external view returns (RoleId roleId) {
         | 
| 145 | 
            -
                    return _roles[idx];
         | 
| 146 | 
            -
                }
         | 
| 147 | 
            -
             | 
| 148 | 
            -
                function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
         | 
| 149 | 
            -
                    return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
         | 
| 150 | 
            -
                }
         | 
| 151 | 
            -
             | 
| 152 | 
            -
                function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
         | 
| 153 | 
            -
                    return EnumerableSet.length(_roleMembers[roleId]);
         | 
| 154 | 
            -
                }
         | 
| 155 | 
            -
             | 
| 156 | 
            -
                function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
         | 
| 157 | 
            -
                    return EnumerableSet.at(_roleMembers[roleId], idx);
         | 
| 158 | 
            -
                }
         | 
| 159 | 
            -
             | 
| 160 | 
            -
                function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
         | 
| 161 | 
            -
                    if (validateParameters) {
         | 
| 162 | 
            -
                        _validateRoleParameters(roleId, name, isCustom);
         | 
| 59 | 
            +
                modifier onlyChainNft() {
         | 
| 60 | 
            +
                    if(msg.sender != getRegistry().getChainNftAddress()) {
         | 
| 61 | 
            +
                        revert();
         | 
| 163 62 | 
             
                    }
         | 
| 164 | 
            -
             | 
| 165 | 
            -
                    IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
         | 
| 166 | 
            -
                    _role[role.name] = roleId;
         | 
| 167 | 
            -
                    _roles.push(roleId);
         | 
| 168 | 
            -
             | 
| 169 | 
            -
                    create(toRoleKey32(roleId), abi.encode(role));
         | 
| 170 | 
            -
                }
         | 
| 171 | 
            -
             | 
| 172 | 
            -
                //--- Target ------------------------------------------------------//
         | 
| 173 | 
            -
                function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
         | 
| 174 | 
            -
                    _validateTargetParameters(target, targetInfo);
         | 
| 175 | 
            -
                    create(toTargetKey32(target), abi.encode(targetInfo));
         | 
| 63 | 
            +
                    _;
         | 
| 176 64 | 
             
                }
         | 
| 177 65 |  | 
| 178 | 
            -
                function  | 
| 179 | 
            -
                     | 
| 180 | 
            -
             | 
| 181 | 
            -
             | 
| 66 | 
            +
                function initialize(address authority, address registryAddress, address initialOwner) 
         | 
| 67 | 
            +
                    public 
         | 
| 68 | 
            +
                    initializer()
         | 
| 69 | 
            +
                {
         | 
| 70 | 
            +
                    __AccessManaged_init(authority);
         | 
| 71 | 
            +
                    
         | 
| 72 | 
            +
                    IRegistry registry = IRegistry(registryAddress);
         | 
| 73 | 
            +
                    initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
         | 
| 74 | 
            +
                    initializeLifecycle();
         | 
| 182 75 |  | 
| 183 | 
            -
                     | 
| 76 | 
            +
                    registerInterface(type(IInstance).interfaceId);    
         | 
| 184 77 | 
             
                }
         | 
| 185 78 |  | 
| 186 79 | 
             
                //--- ProductSetup ------------------------------------------------------//
         | 
| @@ -210,68 +103,68 @@ contract Instance is | |
| 210 103 | 
             
                }
         | 
| 211 104 |  | 
| 212 105 | 
             
                //--- PoolSetup ------------------------------------------------------//
         | 
| 213 | 
            -
                function createPoolSetup(NftId  | 
| 214 | 
            -
                    create(_toNftKey32( | 
| 106 | 
            +
                function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
         | 
| 107 | 
            +
                    create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
         | 
| 215 108 | 
             
                }
         | 
| 216 109 |  | 
| 217 | 
            -
                function updatePoolSetup(NftId  | 
| 218 | 
            -
                    update(_toNftKey32( | 
| 110 | 
            +
                function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
         | 
| 111 | 
            +
                    update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
         | 
| 219 112 | 
             
                }
         | 
| 220 113 |  | 
| 221 | 
            -
                function updatePoolSetupState(NftId  | 
| 222 | 
            -
                    updateState(_toNftKey32( | 
| 114 | 
            +
                function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
         | 
| 115 | 
            +
                    updateState(_toNftKey32(poolNftId, POOL()), newState);
         | 
| 223 116 | 
             
                }
         | 
| 224 117 |  | 
| 225 | 
            -
                //--- DistributorType  | 
| 226 | 
            -
                function createDistributorType( | 
| 227 | 
            -
                    create( | 
| 118 | 
            +
                //--- DistributorType -------------------------------------------------------//
         | 
| 119 | 
            +
                function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
         | 
| 120 | 
            +
                    create(distributorType.toKey32(), abi.encode(info));
         | 
| 228 121 | 
             
                }
         | 
| 229 122 |  | 
| 230 | 
            -
                function updateDistributorType( | 
| 231 | 
            -
                    update( | 
| 123 | 
            +
                function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
         | 
| 124 | 
            +
                    update(distributorType.toKey32(), abi.encode(info), newState);
         | 
| 232 125 | 
             
                }
         | 
| 233 126 |  | 
| 234 | 
            -
                function updateDistributorTypeState( | 
| 235 | 
            -
                    updateState( | 
| 127 | 
            +
                function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
         | 
| 128 | 
            +
                    updateState(distributorType.toKey32(), newState);
         | 
| 236 129 | 
             
                }
         | 
| 237 130 |  | 
| 238 131 | 
             
                //--- Distributor -------------------------------------------------------//
         | 
| 239 | 
            -
                function createDistributor(NftId  | 
| 240 | 
            -
                    create( | 
| 132 | 
            +
                function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
         | 
| 133 | 
            +
                    create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
         | 
| 241 134 | 
             
                }
         | 
| 242 135 |  | 
| 243 | 
            -
                function updateDistributor(NftId  | 
| 244 | 
            -
                    update( | 
| 136 | 
            +
                function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
         | 
| 137 | 
            +
                    update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
         | 
| 245 138 | 
             
                }
         | 
| 246 139 |  | 
| 247 | 
            -
                function updateDistributorState(NftId  | 
| 248 | 
            -
                    updateState( | 
| 140 | 
            +
                function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
         | 
| 141 | 
            +
                    updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
         | 
| 249 142 | 
             
                }
         | 
| 250 143 |  | 
| 251 144 | 
             
                //--- Referral ----------------------------------------------------------//
         | 
| 252 | 
            -
                function createReferral( | 
| 253 | 
            -
                    create( | 
| 145 | 
            +
                function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
         | 
| 146 | 
            +
                    create(referralId.toKey32(), abi.encode(referralInfo));
         | 
| 254 147 | 
             
                }
         | 
| 255 148 |  | 
| 256 | 
            -
                function updateReferral( | 
| 257 | 
            -
                    update( | 
| 149 | 
            +
                function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
         | 
| 150 | 
            +
                    update(referralId.toKey32(), abi.encode(referralInfo), newState);
         | 
| 258 151 | 
             
                }
         | 
| 259 152 |  | 
| 260 | 
            -
                function updateReferralState( | 
| 261 | 
            -
                    updateState( | 
| 153 | 
            +
                function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
         | 
| 154 | 
            +
                    updateState(referralId.toKey32(), newState);
         | 
| 262 155 | 
             
                }
         | 
| 263 156 |  | 
| 264 157 | 
             
                //--- Bundle ------------------------------------------------------------//
         | 
| 265 158 | 
             
                function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
         | 
| 266 | 
            -
                    create( | 
| 159 | 
            +
                    create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
         | 
| 267 160 | 
             
                }
         | 
| 268 161 |  | 
| 269 162 | 
             
                function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
         | 
| 270 | 
            -
                    update( | 
| 163 | 
            +
                    update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
         | 
| 271 164 | 
             
                }
         | 
| 272 165 |  | 
| 273 166 | 
             
                function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
         | 
| 274 | 
            -
                    updateState( | 
| 167 | 
            +
                    updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
         | 
| 275 168 | 
             
                }
         | 
| 276 169 |  | 
| 277 170 | 
             
                //--- Risk --------------------------------------------------------------//
         | 
| @@ -287,150 +180,131 @@ contract Instance is | |
| 287 180 | 
             
                    updateState(riskId.toKey32(), newState);
         | 
| 288 181 | 
             
                }
         | 
| 289 182 |  | 
| 290 | 
            -
                //--- Policy  | 
| 291 | 
            -
                function  | 
| 292 | 
            -
                    create( | 
| 183 | 
            +
                //--- Application (Policy) ----------------------------------------------//
         | 
| 184 | 
            +
                function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
         | 
| 185 | 
            +
                    create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
         | 
| 293 186 | 
             
                }
         | 
| 294 187 |  | 
| 188 | 
            +
                function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 189 | 
            +
                    update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
         | 
| 190 | 
            +
                }
         | 
| 191 | 
            +
             | 
| 192 | 
            +
                function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
         | 
| 193 | 
            +
                    updateState(_toNftKey32(applicationNftId, POLICY()), newState);
         | 
| 194 | 
            +
                }
         | 
| 195 | 
            +
             | 
| 196 | 
            +
                //--- Policy ------------------------------------------------------------//
         | 
| 295 197 | 
             
                function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 296 | 
            -
                    update( | 
| 198 | 
            +
                    update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
         | 
| 297 199 | 
             
                }
         | 
| 298 200 |  | 
| 299 201 | 
             
                function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
         | 
| 300 | 
            -
                    updateState( | 
| 202 | 
            +
                    updateState(_toNftKey32(policyNftId, POLICY()), newState);
         | 
| 301 203 | 
             
                }
         | 
| 302 204 |  | 
| 303 205 | 
             
                //--- Claim -------------------------------------------------------------//
         | 
| 304 | 
            -
                function createClaim(NftId policyNftId,  | 
| 305 | 
            -
                    create( | 
| 206 | 
            +
                function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
         | 
| 207 | 
            +
                    create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
         | 
| 306 208 | 
             
                }
         | 
| 307 209 |  | 
| 308 | 
            -
                function updateClaim(NftId policyNftId,  | 
| 309 | 
            -
                    update( | 
| 210 | 
            +
                function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
         | 
| 211 | 
            +
                    update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
         | 
| 310 212 | 
             
                }
         | 
| 311 213 |  | 
| 312 | 
            -
                function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
         | 
| 313 | 
            -
                    updateState( | 
| 214 | 
            +
                function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
         | 
| 215 | 
            +
                    updateState(_toClaimKey32(policyNftId, claimId), newState);
         | 
| 314 216 | 
             
                }
         | 
| 315 217 |  | 
| 316 218 | 
             
                //--- Payout ------------------------------------------------------------//
         | 
| 317 | 
            -
                function createPayout(NftId policyNftId,  | 
| 318 | 
            -
                    create( | 
| 219 | 
            +
                function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
         | 
| 220 | 
            +
                    create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
         | 
| 319 221 | 
             
                }
         | 
| 320 222 |  | 
| 321 | 
            -
                function  | 
| 322 | 
            -
                    update( | 
| 223 | 
            +
                function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
         | 
| 224 | 
            +
                    update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
         | 
| 323 225 | 
             
                }
         | 
| 324 226 |  | 
| 325 | 
            -
                function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
         | 
| 326 | 
            -
                    updateState( | 
| 227 | 
            +
                function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
         | 
| 228 | 
            +
                    updateState(_toPayoutKey32(policyNftId, payoutId), newState);
         | 
| 327 229 | 
             
                }
         | 
| 328 230 |  | 
| 329 | 
            -
                //---  | 
| 330 | 
            -
                function  | 
| 331 | 
            -
                     | 
| 332 | 
            -
                     | 
| 333 | 
            -
             | 
| 334 | 
            -
             | 
| 335 | 
            -
             | 
| 336 | 
            -
             | 
| 337 | 
            -
             | 
| 338 | 
            -
                }
         | 
| 339 | 
            -
             | 
| 340 | 
            -
                 | 
| 341 | 
            -
             | 
| 342 | 
            -
             | 
| 343 | 
            -
                     | 
| 344 | 
            -
             | 
| 345 | 
            -
                    internal
         | 
| 346 | 
            -
                    view 
         | 
| 347 | 
            -
                    returns (
         | 
| 348 | 
            -
                        bool roleExists,
         | 
| 349 | 
            -
                        bool roleIsCustom
         | 
| 350 | 
            -
                    )
         | 
| 351 | 
            -
                {
         | 
| 352 | 
            -
                    Key32 roleKey = toRoleKey32(roleId);
         | 
| 353 | 
            -
                    roleExists = exists(roleKey);
         | 
| 354 | 
            -
                    if (roleExists) {
         | 
| 355 | 
            -
                        roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
         | 
| 356 | 
            -
                    } else {
         | 
| 357 | 
            -
                        roleIsCustom = isCustom;
         | 
| 231 | 
            +
                //--- ITransferInterceptor ------------------------------------------------------------//
         | 
| 232 | 
            +
                function nftMint(address to, uint256 tokenId) external onlyChainNft {
         | 
| 233 | 
            +
                    assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
         | 
| 234 | 
            +
                    assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
         | 
| 235 | 
            +
                }
         | 
| 236 | 
            +
             | 
| 237 | 
            +
                function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
         | 
| 238 | 
            +
                    assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
         | 
| 239 | 
            +
                    assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
         | 
| 240 | 
            +
                }
         | 
| 241 | 
            +
             | 
| 242 | 
            +
                //--- initial setup functions -------------------------------------------//
         | 
| 243 | 
            +
             | 
| 244 | 
            +
                function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
         | 
| 245 | 
            +
                    if(address(_accessManager) != address(0)) {
         | 
| 246 | 
            +
                        revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
         | 
| 358 247 | 
             
                    }
         | 
| 359 248 |  | 
| 360 | 
            -
                     | 
| 361 | 
            -
             | 
| 362 | 
            -
                    if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
         | 
| 363 | 
            -
                        revert IAccess.ErrorRoleIdInvalid(roleId); 
         | 
| 249 | 
            +
                    if(accessManager.authority() != authority()) {
         | 
| 250 | 
            +
                        revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
         | 
| 364 251 | 
             
                    }
         | 
| 365 252 |  | 
| 366 | 
            -
                     | 
| 367 | 
            -
             | 
| 368 | 
            -
             | 
| 369 | 
            -
             | 
| 253 | 
            +
                    _accessManager = accessManager;      
         | 
| 254 | 
            +
                }
         | 
| 255 | 
            +
             | 
| 256 | 
            +
                function setBundleManager(BundleManager bundleManager) external restricted() {
         | 
| 257 | 
            +
                    if(address(_bundleManager) != address(0)) {
         | 
| 258 | 
            +
                        revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
         | 
| 370 259 | 
             
                    }
         | 
| 371 260 |  | 
| 372 | 
            -
                     | 
| 373 | 
            -
             | 
| 374 | 
            -
                    if (ShortStrings.byteLength(nameShort) == 0) {
         | 
| 375 | 
            -
                        revert IAccess.ErrorRoleNameEmpty(roleId);
         | 
| 261 | 
            +
                    if(bundleManager.getInstance() != Instance(this)) {
         | 
| 262 | 
            +
                        revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
         | 
| 376 263 | 
             
                    }
         | 
| 377 264 |  | 
| 378 | 
            -
                    if | 
| 379 | 
            -
                        revert  | 
| 265 | 
            +
                    if(bundleManager.authority() != authority()) {
         | 
| 266 | 
            +
                        revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
         | 
| 380 267 | 
             
                    }
         | 
| 268 | 
            +
             | 
| 269 | 
            +
                    _bundleManager = bundleManager;
         | 
| 381 270 | 
             
                }
         | 
| 382 271 |  | 
| 383 | 
            -
                function  | 
| 272 | 
            +
                function setInstanceReader(InstanceReader instanceReader) external restricted() {
         | 
| 273 | 
            +
                    if(instanceReader.getInstance() != Instance(this)) {
         | 
| 274 | 
            +
                        revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
         | 
| 275 | 
            +
                    }
         | 
| 384 276 |  | 
| 277 | 
            +
                    _instanceReader = instanceReader;
         | 
| 385 278 | 
             
                }
         | 
| 386 279 |  | 
| 387 | 
            -
                 | 
| 388 | 
            -
                    return roleId.toKey32();
         | 
| 389 | 
            -
                }
         | 
| 280 | 
            +
                //--- external view functions -------------------------------------------//
         | 
| 390 281 |  | 
| 391 | 
            -
                function  | 
| 392 | 
            -
                    return  | 
| 282 | 
            +
                function getInstanceReader() external view returns (InstanceReader) {
         | 
| 283 | 
            +
                    return _instanceReader;
         | 
| 393 284 | 
             
                }
         | 
| 394 285 |  | 
| 395 | 
            -
                function  | 
| 396 | 
            -
                    return  | 
| 286 | 
            +
                function getBundleManager() external view returns (BundleManager) {
         | 
| 287 | 
            +
                    return _bundleManager;
         | 
| 397 288 | 
             
                }
         | 
| 398 289 |  | 
| 399 | 
            -
                function  | 
| 400 | 
            -
                    return  | 
| 290 | 
            +
                function getInstanceAccessManager() external view returns (InstanceAccessManager) {
         | 
| 291 | 
            +
                    return _accessManager;
         | 
| 401 292 | 
             
                }
         | 
| 402 293 |  | 
| 403 | 
            -
                function  | 
| 404 | 
            -
                    return  | 
| 294 | 
            +
                function getMajorVersion() external pure returns (VersionPart majorVersion) {
         | 
| 295 | 
            +
                    return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
         | 
| 405 296 | 
             
                }
         | 
| 406 297 |  | 
| 407 | 
            -
                 | 
| 408 | 
            -
             | 
| 298 | 
            +
                //--- internal view/pure functions --------------------------------------//
         | 
| 299 | 
            +
                function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
         | 
| 300 | 
            +
                    return nftId.toKey32(objectType);
         | 
| 409 301 | 
             
                }
         | 
| 410 302 |  | 
| 411 | 
            -
                 | 
| 412 | 
            -
             | 
| 413 | 
            -
                //     return DistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
         | 
| 414 | 
            -
                // }
         | 
| 415 | 
            -
             | 
| 416 | 
            -
                // TODO reactivate when services are available
         | 
| 417 | 
            -
                // function getProductService() external view returns (IProductService) {
         | 
| 418 | 
            -
                //     return ProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
         | 
| 419 | 
            -
                // }
         | 
| 420 | 
            -
             | 
| 421 | 
            -
                // TODO reactivate when services are available
         | 
| 422 | 
            -
                // function getPoolService() external view returns (IPoolService) {
         | 
| 423 | 
            -
                //     return PoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
         | 
| 424 | 
            -
                // }
         | 
| 425 | 
            -
             | 
| 426 | 
            -
                function setInstanceReader(InstanceReader instanceReader) external restricted() {
         | 
| 427 | 
            -
                    if (address(_instanceReader) != address(0)) {
         | 
| 428 | 
            -
                        revert("InstanceReader is set");
         | 
| 429 | 
            -
                    }
         | 
| 430 | 
            -
                    _instanceReader = instanceReader;
         | 
| 303 | 
            +
                function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
         | 
| 304 | 
            +
                    return claimId.toKey32(policyNftId);
         | 
| 431 305 | 
             
                }
         | 
| 432 306 |  | 
| 433 | 
            -
                function  | 
| 434 | 
            -
                    return  | 
| 307 | 
            +
                function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
         | 
| 308 | 
            +
                    return payoutId.toKey32(policyNftId);
         | 
| 435 309 | 
             
                }
         | 
| 436 310 | 
             
            }
         |