@etherisc/gif-next 0.0.2-f7eda15-119 → 0.0.2-f831797-539
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 +252 -94
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +611 -159
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +104 -72
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +311 -108
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +331 -164
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +108 -144
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +553 -185
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +356 -166
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +30 -11
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +722 -422
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +94 -171
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +911 -779
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +39 -89
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +119 -216
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +276 -254
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +319 -99
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- 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 +13 -13
- 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 +1207 -255
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +449 -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 +214 -204
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +306 -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/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +15 -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/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +28 -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 +2 -2
- 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 +103 -78
- package/contracts/components/Distribution.sol +187 -57
- package/contracts/components/IComponent.sol +48 -17
- package/contracts/components/IDistributionComponent.sol +39 -15
- package/contracts/components/IPoolComponent.sol +84 -31
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +217 -145
- package/contracts/components/Product.sol +97 -69
- package/contracts/instance/BundleManager.sol +7 -5
- package/contracts/instance/IInstance.sol +24 -3
- package/contracts/instance/IInstanceService.sol +20 -1
- package/contracts/instance/Instance.sol +65 -39
- package/contracts/instance/InstanceAccessManager.sol +12 -13
- package/contracts/instance/InstanceReader.sol +4 -3
- package/contracts/instance/InstanceService.sol +111 -57
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/base/ComponentService.sol +1 -1
- package/contracts/instance/base/KeyValueStore.sol +5 -2
- package/contracts/instance/base/Lifecycle.sol +11 -2
- package/contracts/instance/module/IAccess.sol +3 -4
- 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 +360 -16
- 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 +75 -22
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +10 -11
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/IRegistry.sol +3 -2
- package/contracts/registry/IRegistryService.sol +10 -8
- package/contracts/registry/Registry.sol +20 -8
- 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 +10 -5
- 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
@@ -4,12 +4,16 @@ pragma solidity ^0.8.19;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {IRisk} from "../instance/module/IRisk.sol";
|
7
|
+
import {IApplicationService} from "../instance/service/IApplicationService.sol";
|
7
8
|
import {IPolicyService} from "../instance/service/IPolicyService.sol";
|
9
|
+
import {IProductService} from "../instance/service/IProductService.sol";
|
10
|
+
import {IClaimService} from "../instance/service/IClaimService.sol";
|
8
11
|
import {IProductComponent} from "./IProductComponent.sol";
|
9
12
|
import {NftId, NftIdLib} from "../types/NftId.sol";
|
10
|
-
import {PRODUCT} from "../types/ObjectType.sol";
|
13
|
+
import {PRODUCT, APPLICATION, POLICY, CLAIM } from "../types/ObjectType.sol";
|
11
14
|
import {ReferralId} from "../types/Referral.sol";
|
12
15
|
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
16
|
+
import {Seconds} from "../types/Seconds.sol";
|
13
17
|
import {StateId} from "../types/StateId.sol";
|
14
18
|
import {Timestamp} from "../types/Timestamp.sol";
|
15
19
|
import {Fee} from "../types/Fee.sol";
|
@@ -18,26 +22,36 @@ import {Component} from "./Component.sol";
|
|
18
22
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
23
|
|
20
24
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
25
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
26
|
import {ISetup} from "../instance/module/ISetup.sol";
|
27
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
22
28
|
import {Pool} from "../components/Pool.sol";
|
23
29
|
import {Distribution} from "../components/Distribution.sol";
|
24
30
|
|
25
|
-
abstract contract Product is
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
abstract contract Product is
|
32
|
+
Component,
|
33
|
+
IProductComponent
|
34
|
+
{
|
35
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
|
36
|
+
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
37
|
+
|
38
|
+
struct ProductStorage {
|
39
|
+
IProductService _productService;
|
40
|
+
IApplicationService _applicationService;
|
41
|
+
IPolicyService _policyService;
|
42
|
+
IClaimService _claimService;
|
43
|
+
Pool _pool;
|
44
|
+
Distribution _distribution;
|
45
|
+
Fee _initialProductFee;
|
46
|
+
Fee _initialProcessingFee;
|
47
|
+
TokenHandler _tokenHandler;
|
48
|
+
NftId _poolNftId;
|
49
|
+
NftId _distributionNftId;
|
50
|
+
}
|
37
51
|
|
38
|
-
|
52
|
+
function initializeProduct(
|
39
53
|
address registry,
|
40
|
-
NftId
|
54
|
+
NftId instanceNftId,
|
41
55
|
string memory name,
|
42
56
|
address token,
|
43
57
|
bool isInterceptor,
|
@@ -46,37 +60,37 @@ abstract contract Product is Component, IProductComponent {
|
|
46
60
|
Fee memory productFee,
|
47
61
|
Fee memory processingFee,
|
48
62
|
address initialOwner,
|
49
|
-
bytes memory data
|
50
|
-
)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
PRODUCT(),
|
56
|
-
isInterceptor,
|
57
|
-
initialOwner,
|
58
|
-
data
|
59
|
-
) {
|
60
|
-
// TODO add validation
|
61
|
-
_policyService = getInstance().getPolicyService();
|
62
|
-
_pool = Pool(pool);
|
63
|
-
_distribution = Distribution(distribution);
|
64
|
-
_initialProductFee = productFee;
|
65
|
-
_initialProcessingFee = processingFee;
|
66
|
-
|
67
|
-
_tokenHandler = new TokenHandler(token);
|
68
|
-
|
69
|
-
_poolNftId = getRegistry().getNftId(address(_pool));
|
70
|
-
_distributionNftId = getRegistry().getNftId(address(_distribution));
|
63
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
64
|
+
)
|
65
|
+
public
|
66
|
+
virtual
|
67
|
+
onlyInitializing()
|
68
|
+
{
|
69
|
+
initializeComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData);
|
71
70
|
|
72
|
-
|
71
|
+
ProductStorage storage $ = _getProductStorage();
|
72
|
+
// TODO add validation
|
73
|
+
// TODO refactor to go via registry
|
74
|
+
$._productService = IProductService(_getServiceAddress(PRODUCT()));
|
75
|
+
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
76
|
+
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
77
|
+
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
78
|
+
$._pool = Pool(pool);
|
79
|
+
$._distribution = Distribution(distribution);
|
80
|
+
$._initialProductFee = productFee;
|
81
|
+
$._initialProcessingFee = processingFee;
|
82
|
+
$._tokenHandler = new TokenHandler(token);
|
83
|
+
$._poolNftId = getRegistry().getNftId(pool);
|
84
|
+
$._distributionNftId = getRegistry().getNftId(distribution);
|
85
|
+
|
86
|
+
registerInterface(type(IProductComponent).interfaceId);
|
73
87
|
}
|
74
88
|
|
75
89
|
|
76
90
|
function calculatePremium(
|
77
91
|
uint256 sumInsuredAmount,
|
78
92
|
RiskId riskId,
|
79
|
-
|
93
|
+
Seconds lifetime,
|
80
94
|
bytes memory applicationData,
|
81
95
|
NftId bundleNftId,
|
82
96
|
ReferralId referralId
|
@@ -86,7 +100,8 @@ abstract contract Product is Component, IProductComponent {
|
|
86
100
|
override
|
87
101
|
returns (uint256 premiumAmount)
|
88
102
|
{
|
89
|
-
|
103
|
+
IPolicy.Premium memory premium = _getProductStorage()._applicationService.calculatePremium(
|
104
|
+
getNftId(),
|
90
105
|
riskId,
|
91
106
|
sumInsuredAmount,
|
92
107
|
lifetime,
|
@@ -94,13 +109,14 @@ abstract contract Product is Component, IProductComponent {
|
|
94
109
|
bundleNftId,
|
95
110
|
referralId
|
96
111
|
);
|
112
|
+
premiumAmount = premium.premiumAmount;
|
97
113
|
}
|
98
114
|
|
99
115
|
|
100
116
|
function calculateNetPremium(
|
101
117
|
uint256 sumInsuredAmount,
|
102
118
|
RiskId riskId,
|
103
|
-
|
119
|
+
Seconds lifetime,
|
104
120
|
bytes memory applicationData
|
105
121
|
)
|
106
122
|
external
|
@@ -120,7 +136,7 @@ abstract contract Product is Component, IProductComponent {
|
|
120
136
|
RiskId id,
|
121
137
|
bytes memory data
|
122
138
|
) internal {
|
123
|
-
|
139
|
+
_getProductService().createRisk(
|
124
140
|
id,
|
125
141
|
data
|
126
142
|
);
|
@@ -130,7 +146,7 @@ abstract contract Product is Component, IProductComponent {
|
|
130
146
|
RiskId id,
|
131
147
|
bytes memory data
|
132
148
|
) internal {
|
133
|
-
|
149
|
+
_getProductService().updateRisk(
|
134
150
|
id,
|
135
151
|
data
|
136
152
|
);
|
@@ -140,7 +156,7 @@ abstract contract Product is Component, IProductComponent {
|
|
140
156
|
RiskId id,
|
141
157
|
StateId state
|
142
158
|
) internal {
|
143
|
-
|
159
|
+
_getProductService().updateRiskState(
|
144
160
|
id,
|
145
161
|
state
|
146
162
|
);
|
@@ -154,19 +170,22 @@ abstract contract Product is Component, IProductComponent {
|
|
154
170
|
address applicationOwner,
|
155
171
|
RiskId riskId,
|
156
172
|
uint256 sumInsuredAmount,
|
157
|
-
|
158
|
-
bytes memory applicationData,
|
173
|
+
Seconds lifetime,
|
159
174
|
NftId bundleNftId,
|
160
|
-
ReferralId referralId
|
161
|
-
|
162
|
-
|
175
|
+
ReferralId referralId,
|
176
|
+
bytes memory applicationData
|
177
|
+
)
|
178
|
+
internal
|
179
|
+
returns (NftId applicationNftId)
|
180
|
+
{
|
181
|
+
return _getProductStorage()._applicationService.create(
|
163
182
|
applicationOwner,
|
164
183
|
riskId,
|
165
184
|
sumInsuredAmount,
|
166
185
|
lifetime,
|
167
|
-
applicationData,
|
168
186
|
bundleNftId,
|
169
|
-
referralId
|
187
|
+
referralId,
|
188
|
+
applicationData
|
170
189
|
);
|
171
190
|
}
|
172
191
|
|
@@ -177,7 +196,7 @@ abstract contract Product is Component, IProductComponent {
|
|
177
196
|
)
|
178
197
|
internal
|
179
198
|
{
|
180
|
-
_policyService.underwrite(
|
199
|
+
_getProductStorage()._policyService.underwrite(
|
181
200
|
policyNftId,
|
182
201
|
requirePremiumPayment,
|
183
202
|
activateAt);
|
@@ -189,7 +208,7 @@ abstract contract Product is Component, IProductComponent {
|
|
189
208
|
)
|
190
209
|
internal
|
191
210
|
{
|
192
|
-
_policyService.collectPremium(
|
211
|
+
_getProductStorage()._policyService.collectPremium(
|
193
212
|
policyNftId,
|
194
213
|
activateAt);
|
195
214
|
}
|
@@ -200,7 +219,7 @@ abstract contract Product is Component, IProductComponent {
|
|
200
219
|
)
|
201
220
|
internal
|
202
221
|
{
|
203
|
-
_policyService.activate(
|
222
|
+
_getProductStorage()._policyService.activate(
|
204
223
|
policyNftId,
|
205
224
|
activateAt);
|
206
225
|
}
|
@@ -210,15 +229,15 @@ abstract contract Product is Component, IProductComponent {
|
|
210
229
|
)
|
211
230
|
internal
|
212
231
|
{
|
213
|
-
_policyService.close(policyNftId);
|
232
|
+
_getProductStorage()._policyService.close(policyNftId);
|
214
233
|
}
|
215
234
|
|
216
235
|
function getPoolNftId() external view override returns (NftId poolNftId) {
|
217
|
-
return getRegistry().getNftId(address(_pool));
|
236
|
+
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
218
237
|
}
|
219
238
|
|
220
239
|
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
221
|
-
return getRegistry().getNftId(address(_distribution));
|
240
|
+
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
222
241
|
}
|
223
242
|
|
224
243
|
// from product component
|
@@ -228,9 +247,10 @@ abstract contract Product is Component, IProductComponent {
|
|
228
247
|
)
|
229
248
|
external
|
230
249
|
onlyOwner
|
250
|
+
restricted()
|
231
251
|
override
|
232
252
|
{
|
233
|
-
|
253
|
+
_getProductService().setFees(productFee, processingFee);
|
234
254
|
}
|
235
255
|
|
236
256
|
function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
@@ -244,22 +264,30 @@ abstract contract Product is Component, IProductComponent {
|
|
244
264
|
}
|
245
265
|
|
246
266
|
function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
247
|
-
|
248
|
-
|
267
|
+
ProductStorage storage $ = _getProductStorage();
|
268
|
+
|
269
|
+
ISetup.DistributionSetupInfo memory distributionSetupInfo = $._distribution.getSetupInfo();
|
270
|
+
IComponents.PoolInfo memory poolInfo = $._pool.getPoolInfo();
|
249
271
|
|
250
272
|
return ISetup.ProductSetupInfo(
|
251
273
|
getToken(),
|
252
|
-
_tokenHandler,
|
253
|
-
_distributionNftId,
|
254
|
-
_poolNftId,
|
255
|
-
|
256
|
-
|
257
|
-
_initialProcessingFee,
|
258
|
-
poolSetupInfo.poolFee,
|
259
|
-
poolSetupInfo.stakingFee,
|
260
|
-
poolSetupInfo.performanceFee,
|
274
|
+
$._tokenHandler,
|
275
|
+
$._distributionNftId,
|
276
|
+
$._poolNftId,
|
277
|
+
$._initialProductFee,
|
278
|
+
$._initialProcessingFee,
|
261
279
|
false,
|
262
280
|
getWallet()
|
263
281
|
);
|
264
282
|
}
|
283
|
+
|
284
|
+
function _getProductStorage() private pure returns (ProductStorage storage $) {
|
285
|
+
assembly {
|
286
|
+
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
287
|
+
}
|
288
|
+
}
|
289
|
+
|
290
|
+
function _getProductService() internal view returns (IProductService) {
|
291
|
+
return _getProductStorage()._productService;
|
292
|
+
}
|
265
293
|
}
|
@@ -22,9 +22,10 @@ contract BundleManager is
|
|
22
22
|
event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
|
23
23
|
event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
|
24
24
|
event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
|
25
|
+
event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
|
25
26
|
|
26
|
-
error
|
27
|
-
error
|
27
|
+
error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
|
28
|
+
error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
|
28
29
|
error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
|
29
30
|
error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
|
30
31
|
error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
|
@@ -32,7 +33,7 @@ contract BundleManager is
|
|
32
33
|
|
33
34
|
mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
|
34
35
|
|
35
|
-
/// @dev links a policy
|
36
|
+
/// @dev links a policy to its bundle
|
36
37
|
// to link a policy it MUST NOT yet have been activated
|
37
38
|
// the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
|
38
39
|
function linkPolicy(NftId policyNftId) external restricted() {
|
@@ -42,7 +43,7 @@ contract BundleManager is
|
|
42
43
|
|
43
44
|
// ensure bundle is unlocked (in active set) and registered with this instance
|
44
45
|
if (!_isActive(poolNftId, bundleNftId)) {
|
45
|
-
revert
|
46
|
+
revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
|
46
47
|
}
|
47
48
|
|
48
49
|
LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
|
@@ -71,7 +72,7 @@ contract BundleManager is
|
|
71
72
|
}
|
72
73
|
|
73
74
|
|
74
|
-
/// @dev add a new bundle to a
|
75
|
+
/// @dev add a new bundle to a pool registerd with this instance
|
75
76
|
// the corresponding pool is fetched via instance reader
|
76
77
|
function add(NftId bundleNftId) external restricted() {
|
77
78
|
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
@@ -85,6 +86,7 @@ contract BundleManager is
|
|
85
86
|
emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
|
86
87
|
}
|
87
88
|
|
89
|
+
|
88
90
|
/// @dev unlocked (active) bundles are available to underwrite new policies
|
89
91
|
function unlock(NftId bundleNftId) external restricted() {
|
90
92
|
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
@@ -15,10 +15,12 @@ import {InstanceReader} from "./InstanceReader.sol";
|
|
15
15
|
|
16
16
|
import {IBundle} from "./module/IBundle.sol";
|
17
17
|
import {IBundleService} from "./service/IBundleService.sol";
|
18
|
+
import {IComponents} from "./module/IComponents.sol";
|
18
19
|
import {IDistributionService} from "./service/IDistributionService.sol";
|
19
20
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
20
21
|
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
21
22
|
import {IPolicy} from "./module/IPolicy.sol";
|
23
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
22
24
|
import {IPolicyService} from "./service/IPolicyService.sol";
|
23
25
|
import {IPoolService} from "./service/IPoolService.sol";
|
24
26
|
import {IProductService} from "./service/IProductService.sol";
|
@@ -30,6 +32,7 @@ import {NftId} from "../types/NftId.sol";
|
|
30
32
|
import {RiskId} from "../types/RiskId.sol";
|
31
33
|
import {StateId} from "../types/StateId.sol";
|
32
34
|
import {VersionPart} from "../types/Version.sol";
|
35
|
+
import {Key32} from "../types/Key32.sol";
|
33
36
|
|
34
37
|
|
35
38
|
|
@@ -46,8 +49,8 @@ interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
|
|
46
49
|
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
|
47
50
|
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
|
48
51
|
|
49
|
-
function createPoolSetup(NftId poolNftId,
|
50
|
-
function updatePoolSetup(NftId poolNftId,
|
52
|
+
function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external;
|
53
|
+
function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external;
|
51
54
|
function updatePoolSetupState(NftId poolNftId, StateId newState) external;
|
52
55
|
|
53
56
|
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
|
@@ -58,14 +61,32 @@ interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
|
|
58
61
|
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
|
59
62
|
function updateProductSetupState(NftId productNftId, StateId newState) external;
|
60
63
|
|
64
|
+
function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external;
|
65
|
+
function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external;
|
66
|
+
function updateDistributorTypeState(Key32 distributorKey, StateId newState) external;
|
67
|
+
|
68
|
+
function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external;
|
69
|
+
function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external;
|
70
|
+
function updateDistributorState(NftId nftId, StateId newState) external;
|
71
|
+
|
72
|
+
function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external;
|
73
|
+
function updateReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo, StateId newState) external;
|
74
|
+
function updateReferralState(Key32 referralKey, StateId newState) external;
|
75
|
+
|
61
76
|
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
|
62
77
|
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
|
63
78
|
function updateRiskState(RiskId riskId, StateId newState) external;
|
64
79
|
|
65
|
-
function
|
80
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external;
|
81
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
|
82
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external;
|
83
|
+
|
66
84
|
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
|
67
85
|
function updatePolicyState(NftId policyNftId, StateId newState) external;
|
68
86
|
|
87
|
+
// TODO add claims/payouts function to instance
|
88
|
+
// function updateClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
|
89
|
+
|
69
90
|
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
70
91
|
function getInstanceReader() external view returns (InstanceReader);
|
71
92
|
function getBundleManager() external view returns (BundleManager);
|
@@ -17,6 +17,24 @@ import {BundleManager} from "./BundleManager.sol";
|
|
17
17
|
|
18
18
|
interface IInstanceService is IService {
|
19
19
|
|
20
|
+
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
21
|
+
error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
|
22
|
+
error ErrorInstanceServiceMasterBundleManagerAlreadySet();
|
23
|
+
error ErrorInstanceServiceInstanceAddressZero();
|
24
|
+
|
25
|
+
error ErrorInstanceServiceMasterInstanceReaderNotSet();
|
26
|
+
error ErrorInstanceServiceInstanceReaderAddressZero();
|
27
|
+
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
28
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
29
|
+
|
30
|
+
error ErrorInstanceServiceAccessManagerZero();
|
31
|
+
error ErrorInstanceServiceInstanceReaderZero();
|
32
|
+
error ErrorInstanceServiceBundleManagerZero();
|
33
|
+
|
34
|
+
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
35
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
36
|
+
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
37
|
+
|
20
38
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
21
39
|
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
22
40
|
error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
|
@@ -34,8 +52,9 @@ interface IInstanceService is IService {
|
|
34
52
|
BundleManager clonedBundleManager
|
35
53
|
);
|
36
54
|
|
37
|
-
function hasRole(address account, RoleId role, address instanceAddress) external returns (bool);
|
38
55
|
function setTargetLocked(string memory targetName, bool locked) external;
|
39
56
|
|
57
|
+
function hasRole(address account, RoleId role, address instanceAddress) external returns (bool);
|
58
|
+
|
40
59
|
}
|
41
60
|
|