@etherisc/gif-next 0.0.2-f9bc4c7-556 → 0.0.2-fbe22f0-239
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 +314 -2
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +858 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +1114 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → components/IComponent.sol/IComponent.json} +281 -226
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +695 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +601 -76
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +582 -61
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +1099 -159
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +1030 -84
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +764 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1150 -1021
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +591 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2047 -1067
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +984 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1386 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1164 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +584 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +261 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +728 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +45 -127
- 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 +55 -245
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +254 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1091 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1292 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +560 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +897 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +548 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +625 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +785 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/InstanceBase.sol/InstanceBase.json → service/IDistributionService.sol/IDistributionService.json} +205 -85
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +771 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +203 -80
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +209 -150
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1352 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +616 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +546 -86
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +548 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +521 -213
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +548 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +466 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +986 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +470 -103
- 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 +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1325 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +575 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +505 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- 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 +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +56 -79
- 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 +116 -36
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +174 -117
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +277 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +172 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +473 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +293 -25
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +601 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +309 -26
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +412 -58
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
- 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 +103 -23
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
- 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/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +52 -13
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- 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 +4 -0
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
- 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/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
- 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 +15 -2
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -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 +230 -0
- package/contracts/components/Distribution.sol +156 -0
- package/contracts/components/IComponent.sol +50 -0
- package/contracts/components/IDistributionComponent.sol +47 -0
- package/contracts/components/IPoolComponent.sol +65 -35
- package/contracts/components/IProductComponent.sol +29 -9
- package/contracts/components/Pool.sol +180 -100
- package/contracts/components/Product.sol +203 -42
- package/contracts/experiment/cloning/Cloner.sol +47 -0
- package/contracts/instance/BundleManager.sol +125 -0
- package/contracts/instance/Cloneable.sol +46 -0
- package/contracts/instance/IInstance.sol +65 -45
- package/contracts/instance/IInstanceService.sol +41 -0
- package/contracts/instance/Instance.sol +253 -53
- package/contracts/instance/InstanceAccessManager.sol +297 -0
- package/contracts/instance/InstanceReader.sol +293 -0
- package/contracts/instance/InstanceService.sol +434 -0
- package/contracts/instance/InstanceServiceManager.sol +54 -0
- package/contracts/instance/ObjectManager.sol +84 -0
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/base/IKeyValueStore.sol +13 -13
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +53 -37
- package/contracts/instance/base/Lifecycle.sol +16 -11
- package/contracts/instance/module/IAccess.sol +47 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IDistribution.sol +39 -0
- package/contracts/instance/module/IPolicy.sol +45 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/instance/module/ISetup.sol +47 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/instance/service/ApplicationService.sol +268 -0
- package/contracts/instance/service/BundleService.sol +298 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/DistributionService.sol +105 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +54 -0
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPolicyService.sol +88 -0
- package/contracts/instance/service/IPoolService.sol +8 -18
- package/contracts/instance/service/IProductService.sol +21 -39
- package/contracts/instance/service/PolicyService.sol +524 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +78 -92
- package/contracts/instance/service/PoolServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +168 -289
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +79 -36
- package/contracts/registry/IRegistry.sol +66 -24
- package/contracts/registry/IRegistryService.sol +65 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +364 -283
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +261 -0
- package/contracts/registry/RegistryServiceManager.sol +62 -0
- package/contracts/registry/ReleaseManager.sol +332 -0
- package/contracts/registry/TokenRegistry.sol +113 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +13 -8
- package/contracts/shared/INftOwnable.sol +27 -0
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +10 -19
- package/contracts/shared/IService.sol +16 -0
- package/contracts/shared/IVersionable.sol +55 -11
- package/contracts/shared/NftOwnable.sol +187 -0
- package/contracts/shared/PolicyHolder.sol +52 -0
- package/contracts/shared/ProxyManager.sol +95 -0
- package/contracts/shared/Registerable.sol +58 -63
- package/contracts/shared/Service.sol +60 -0
- package/contracts/shared/TokenHandler.sol +27 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +113 -54
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestRoleId.sol +1 -1
- package/contracts/test/TestService.sol +7 -14
- package/contracts/types/DistributorType.sol +55 -0
- package/contracts/types/Fee.sol +10 -5
- package/contracts/types/Key32.sol +8 -3
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/NumberId.sol +52 -0
- package/contracts/types/ObjectType.sol +55 -14
- package/contracts/types/Referral.sol +85 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +62 -10
- package/contracts/types/StateId.sol +5 -1
- package/contracts/types/Timestamp.sol +7 -3
- package/contracts/types/UFixed.sol +128 -12
- package/contracts/types/Version.sol +13 -1
- package/package.json +6 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -88
- package/contracts/components/IBaseComponent.sol +0 -19
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/ComponentServiceBase.sol +0 -42
- package/contracts/instance/base/IInstanceBase.sol +0 -14
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/InstanceBase.sol +0 -80
- package/contracts/instance/base/ModuleBase.sol +0 -52
- package/contracts/instance/base/ServiceBase.sol +0 -37
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -136
- package/contracts/instance/module/bundle/IBundle.sol +0 -58
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/instance/module/component/ComponentModule.sol +0 -95
- package/contracts/instance/module/component/IComponent.sol +0 -53
- package/contracts/instance/module/policy/IPolicy.sol +0 -60
- package/contracts/instance/module/policy/PolicyModule.sol +0 -76
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -87
- package/contracts/instance/module/risk/IRisk.sol +0 -10
- package/contracts/instance/module/risk/RiskModule.sol +0 -8
- package/contracts/instance/module/treasury/ITreasury.sol +0 -103
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
- package/contracts/instance/service/ComponentOwnerService.sol +0 -170
- package/contracts/instance/service/IComponentOwnerService.sol +0 -22
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/test/TestPool.sol +0 -22
- package/contracts/test/TestProduct.sol +0 -44
@@ -1,152 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {NftId} from "../../../types/NftId.sol";
|
7
|
-
import {Fee, FeeLib} from "../../../types/Fee.sol";
|
8
|
-
import {UFixed, UFixedMathLib} from "../../../types/UFixed.sol";
|
9
|
-
import {TokenHandler} from "./TokenHandler.sol";
|
10
|
-
import {ITreasuryModule} from "./ITreasury.sol";
|
11
|
-
|
12
|
-
abstract contract TreasuryModule is ITreasuryModule {
|
13
|
-
mapping(NftId productNftId => ProductSetup setup) private _productSetup;
|
14
|
-
mapping(NftId distributorNftId => DistributorSetup setup)
|
15
|
-
private _distributorSetup;
|
16
|
-
mapping(NftId poolNftId => PoolSetup setup) private _poolSetup;
|
17
|
-
mapping(NftId componentNftId => TokenHandler tokenHanlder) _tokenHandler;
|
18
|
-
|
19
|
-
function registerProduct(
|
20
|
-
NftId productNftId,
|
21
|
-
NftId distributorNftId,
|
22
|
-
NftId poolNftId,
|
23
|
-
IERC20Metadata token,
|
24
|
-
address wallet,
|
25
|
-
Fee memory policyFee,
|
26
|
-
Fee memory processingFee
|
27
|
-
) external override // TODO add authz (only component module)
|
28
|
-
{
|
29
|
-
require(address(_tokenHandler[productNftId]) == address(0), "ERROR:TRS-010:TOKEN_HANDLER_ALREADY_REGISTERED");
|
30
|
-
require(address(_tokenHandler[poolNftId]) == address(0), "ERROR:TRS-011:TOKEN_HANDLER_ALREADY_REGISTERED");
|
31
|
-
require(address(_tokenHandler[distributorNftId]) == address(0), "ERROR:TRS-012:TOKEN_HANDLER_ALREADY_REGISTERED");
|
32
|
-
// TODO add additional validations
|
33
|
-
|
34
|
-
// deploy product specific handler contract
|
35
|
-
TokenHandler tokenHandler = new TokenHandler(productNftId, address(token));
|
36
|
-
_tokenHandler[productNftId] = tokenHandler;
|
37
|
-
_tokenHandler[poolNftId] = tokenHandler;
|
38
|
-
_tokenHandler[distributorNftId] = tokenHandler;
|
39
|
-
|
40
|
-
// create product setup
|
41
|
-
_productSetup[productNftId] = ProductSetup(
|
42
|
-
productNftId,
|
43
|
-
distributorNftId,
|
44
|
-
poolNftId,
|
45
|
-
token,
|
46
|
-
wallet,
|
47
|
-
policyFee,
|
48
|
-
processingFee
|
49
|
-
);
|
50
|
-
|
51
|
-
// TODO add logging
|
52
|
-
}
|
53
|
-
|
54
|
-
function setProductFees(
|
55
|
-
NftId productNftId,
|
56
|
-
Fee memory policyFee,
|
57
|
-
Fee memory processingFee
|
58
|
-
) external override // TODO add authz (only component owner service)
|
59
|
-
{
|
60
|
-
// TODO add validation
|
61
|
-
|
62
|
-
ProductSetup storage setup = _productSetup[productNftId];
|
63
|
-
setup.policyFee = policyFee;
|
64
|
-
setup.processingFee = processingFee;
|
65
|
-
|
66
|
-
// TODO add logging
|
67
|
-
}
|
68
|
-
|
69
|
-
function registerPool(
|
70
|
-
NftId poolNftId,
|
71
|
-
address wallet,
|
72
|
-
Fee memory stakingFee,
|
73
|
-
Fee memory performanceFee
|
74
|
-
) external override // TODO add authz (only component module)
|
75
|
-
{
|
76
|
-
// TODO add validation
|
77
|
-
|
78
|
-
_poolSetup[poolNftId] = PoolSetup(
|
79
|
-
poolNftId,
|
80
|
-
wallet,
|
81
|
-
stakingFee,
|
82
|
-
performanceFee
|
83
|
-
);
|
84
|
-
|
85
|
-
// TODO add logging
|
86
|
-
}
|
87
|
-
|
88
|
-
function setPoolFees(
|
89
|
-
NftId poolNftId,
|
90
|
-
Fee memory stakingFee,
|
91
|
-
Fee memory performanceFee
|
92
|
-
) external override // TODO add authz (only component owner service)
|
93
|
-
{
|
94
|
-
// TODO add validation
|
95
|
-
|
96
|
-
PoolSetup storage setup = _poolSetup[poolNftId];
|
97
|
-
setup.stakingFee = stakingFee;
|
98
|
-
setup.performanceFee = performanceFee;
|
99
|
-
|
100
|
-
// TODO add logging
|
101
|
-
}
|
102
|
-
|
103
|
-
function getTokenHandler(
|
104
|
-
NftId componentNftId
|
105
|
-
) external view override returns (TokenHandler tokenHandler) {
|
106
|
-
return _tokenHandler[componentNftId];
|
107
|
-
}
|
108
|
-
|
109
|
-
function getProductSetup(
|
110
|
-
NftId productNftId
|
111
|
-
) external view override returns (ProductSetup memory setup) {
|
112
|
-
return _productSetup[productNftId];
|
113
|
-
}
|
114
|
-
|
115
|
-
function getPoolSetup(
|
116
|
-
NftId poolNftId
|
117
|
-
) external view override returns (PoolSetup memory setup) {
|
118
|
-
return _poolSetup[poolNftId];
|
119
|
-
}
|
120
|
-
|
121
|
-
function calculateFeeAmount(
|
122
|
-
uint256 amount,
|
123
|
-
Fee memory fee
|
124
|
-
) public pure override returns (uint256 feeAmount, uint256 netAmount) {
|
125
|
-
return FeeLib.calculateFee(amount, fee);
|
126
|
-
}
|
127
|
-
|
128
|
-
function getFee(
|
129
|
-
UFixed fractionalFee,
|
130
|
-
uint256 fixedFee
|
131
|
-
) external pure override returns (Fee memory fee) {
|
132
|
-
return FeeLib.toFee(fractionalFee, fixedFee);
|
133
|
-
}
|
134
|
-
|
135
|
-
function getZeroFee() external pure override returns (Fee memory fee) {
|
136
|
-
return FeeLib.zeroFee();
|
137
|
-
}
|
138
|
-
|
139
|
-
function getUFixed(
|
140
|
-
uint256 a
|
141
|
-
) external pure override returns (UFixed) {
|
142
|
-
return UFixedMathLib.toUFixed(a);
|
143
|
-
}
|
144
|
-
|
145
|
-
function getUFixed(
|
146
|
-
uint256 a,
|
147
|
-
int8 exp
|
148
|
-
) external pure returns (UFixed)
|
149
|
-
{
|
150
|
-
return UFixedMathLib.toUFixed(a, exp);
|
151
|
-
}
|
152
|
-
}
|
@@ -1,170 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
7
|
-
import {IInstance} from "../IInstance.sol";
|
8
|
-
|
9
|
-
import {ITreasuryModule} from "../module/treasury/ITreasury.sol";
|
10
|
-
import {TreasuryModule} from "../module/treasury/TreasuryModule.sol";
|
11
|
-
import {IComponent, IComponentModule} from "../module/component/IComponent.sol";
|
12
|
-
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
13
|
-
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
14
|
-
|
15
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
16
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
17
|
-
|
18
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../types/RoleId.sol";
|
19
|
-
import {ObjectType, PRODUCT, ORACLE, POOL} from "../../types/ObjectType.sol";
|
20
|
-
import {StateId, ACTIVE, PAUSED} from "../../types/StateId.sol";
|
21
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
22
|
-
import {Fee} from "../../types/Fee.sol";
|
23
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
24
|
-
|
25
|
-
import {IProductComponent} from "../../components/IProductComponent.sol";
|
26
|
-
import {ServiceBase} from "../base/ServiceBase.sol";
|
27
|
-
import {IComponentOwnerService} from "./IComponentOwnerService.sol";
|
28
|
-
|
29
|
-
contract ComponentOwnerService is
|
30
|
-
ServiceBase,
|
31
|
-
IComponentOwnerService
|
32
|
-
{
|
33
|
-
using NftIdLib for NftId;
|
34
|
-
|
35
|
-
string public constant NAME = "ComponentOwnerService";
|
36
|
-
|
37
|
-
modifier onlyRegisteredComponent(IBaseComponent component) {
|
38
|
-
NftId nftId = _registry.getNftId(address(component));
|
39
|
-
require(nftId.gtz(), "ERROR:COS-001:COMPONENT_UNKNOWN");
|
40
|
-
_;
|
41
|
-
}
|
42
|
-
|
43
|
-
constructor(
|
44
|
-
address registry,
|
45
|
-
NftId registryNftId
|
46
|
-
) ServiceBase(registry, registryNftId) // solhint-disable-next-line no-empty-blocks
|
47
|
-
{
|
48
|
-
|
49
|
-
}
|
50
|
-
|
51
|
-
function getVersion()
|
52
|
-
public
|
53
|
-
pure
|
54
|
-
virtual override (IVersionable, Versionable)
|
55
|
-
returns(Version)
|
56
|
-
{
|
57
|
-
return VersionLib.toVersion(3,0,0);
|
58
|
-
}
|
59
|
-
|
60
|
-
function getName() external pure override returns(string memory name) {
|
61
|
-
return NAME;
|
62
|
-
}
|
63
|
-
|
64
|
-
function getRoleForType(
|
65
|
-
ObjectType cType
|
66
|
-
) public pure override returns (RoleId role) {
|
67
|
-
if (cType == PRODUCT()) {
|
68
|
-
return PRODUCT_OWNER_ROLE();
|
69
|
-
}
|
70
|
-
if (cType == POOL()) {
|
71
|
-
return POOL_OWNER_ROLE();
|
72
|
-
}
|
73
|
-
if (cType == ORACLE()) {
|
74
|
-
return ORACLE_OWNER_ROLE();
|
75
|
-
}
|
76
|
-
}
|
77
|
-
|
78
|
-
function register(
|
79
|
-
IBaseComponent component
|
80
|
-
) external override returns (NftId nftId) {
|
81
|
-
address initialOwner = component.getOwner();
|
82
|
-
require(
|
83
|
-
msg.sender == address(component),
|
84
|
-
"ERROR:COS-003:NOT_COMPONENT"
|
85
|
-
);
|
86
|
-
|
87
|
-
IInstance instance = component.getInstance();
|
88
|
-
ObjectType objectType = component.getType();
|
89
|
-
RoleId typeRole = getRoleForType(objectType);
|
90
|
-
require(
|
91
|
-
instance.hasRole(typeRole, initialOwner),
|
92
|
-
"ERROR:CMP-004:TYPE_ROLE_MISSING"
|
93
|
-
);
|
94
|
-
|
95
|
-
nftId = _registry.register(address(component));
|
96
|
-
IERC20Metadata token = component.getToken();
|
97
|
-
|
98
|
-
instance.registerComponent(
|
99
|
-
nftId,
|
100
|
-
objectType,
|
101
|
-
token);
|
102
|
-
|
103
|
-
address wallet = component.getWallet();
|
104
|
-
|
105
|
-
// component type specific registration actions
|
106
|
-
if (component.getType() == PRODUCT()) {
|
107
|
-
IProductComponent product = IProductComponent(address(component));
|
108
|
-
NftId poolNftId = product.getPoolNftId();
|
109
|
-
require(poolNftId.gtz(), "ERROR:CMP-005:POOL_UNKNOWN");
|
110
|
-
// validate pool token and product token are same
|
111
|
-
|
112
|
-
// register with tresury
|
113
|
-
// implement and add validation
|
114
|
-
NftId distributorNftId = zeroNftId();
|
115
|
-
instance.registerProduct(
|
116
|
-
nftId,
|
117
|
-
distributorNftId,
|
118
|
-
poolNftId,
|
119
|
-
token,
|
120
|
-
wallet,
|
121
|
-
product.getPolicyFee(),
|
122
|
-
product.getProcessingFee()
|
123
|
-
);
|
124
|
-
} else if (component.getType() == POOL()) {
|
125
|
-
IPoolComponent pool = IPoolComponent(address(component));
|
126
|
-
|
127
|
-
// register with pool
|
128
|
-
instance.registerPool(
|
129
|
-
nftId,
|
130
|
-
pool.isVerifying(),
|
131
|
-
pool.getCollateralizationLevel());
|
132
|
-
|
133
|
-
// register with tresury
|
134
|
-
instance.registerPool(
|
135
|
-
nftId,
|
136
|
-
wallet,
|
137
|
-
pool.getStakingFee(),
|
138
|
-
pool.getPerformanceFee());
|
139
|
-
}
|
140
|
-
// TODO add distribution
|
141
|
-
}
|
142
|
-
|
143
|
-
function lock(
|
144
|
-
IBaseComponent component
|
145
|
-
) external override onlyRegisteredComponent(component) {
|
146
|
-
IInstance instance = component.getInstance();
|
147
|
-
IComponent.ComponentInfo memory info = instance.getComponentInfo(
|
148
|
-
component.getNftId()
|
149
|
-
);
|
150
|
-
require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
151
|
-
|
152
|
-
info.state = PAUSED();
|
153
|
-
// setComponentInfo checks for valid state changes
|
154
|
-
instance.setComponentInfo(info);
|
155
|
-
}
|
156
|
-
|
157
|
-
function unlock(
|
158
|
-
IBaseComponent component
|
159
|
-
) external override onlyRegisteredComponent(component) {
|
160
|
-
IInstance instance = component.getInstance();
|
161
|
-
IComponent.ComponentInfo memory info = instance.getComponentInfo(
|
162
|
-
component.getNftId()
|
163
|
-
);
|
164
|
-
require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
165
|
-
|
166
|
-
info.state = ACTIVE();
|
167
|
-
// setComponentInfo checks for valid state changes
|
168
|
-
instance.setComponentInfo(info);
|
169
|
-
}
|
170
|
-
}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {NftId} from "../../types/NftId.sol";
|
5
|
-
import {ObjectType} from "../../types/ObjectType.sol";
|
6
|
-
import {RoleId} from "../../types/RoleId.sol";
|
7
|
-
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
8
|
-
import {IService} from "../base/IService.sol";
|
9
|
-
|
10
|
-
// TODO rename to registry service
|
11
|
-
interface IComponentOwnerService is IService {
|
12
|
-
|
13
|
-
function register(IBaseComponent component) external returns(NftId componentNftId);
|
14
|
-
|
15
|
-
// TODO move to product/pool services
|
16
|
-
function lock(IBaseComponent component) external;
|
17
|
-
|
18
|
-
// TODO move to product/pool services
|
19
|
-
function unlock(IBaseComponent component) external;
|
20
|
-
|
21
|
-
function getRoleForType(ObjectType cType) external pure returns (RoleId role);
|
22
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
|
5
|
-
|
6
|
-
interface IChainNft is IERC721Enumerable {
|
7
|
-
function mint(
|
8
|
-
address to,
|
9
|
-
string memory uri
|
10
|
-
) external returns (uint256 tokenId);
|
11
|
-
|
12
|
-
function burn(uint256 tokenId) external;
|
13
|
-
|
14
|
-
function setURI(uint256 tokenId, string memory uri) external;
|
15
|
-
|
16
|
-
function exists(uint256 tokenId) external view returns (bool);
|
17
|
-
|
18
|
-
function totalMinted() external view returns (uint256);
|
19
|
-
|
20
|
-
function getRegistryAddress() external view returns (address registry);
|
21
|
-
}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
5
|
-
import {UFixed} from "../../contracts/types/UFixed.sol";
|
6
|
-
import {Fee} from "../../contracts/types/Fee.sol";
|
7
|
-
import {Pool} from "../../contracts/components/Pool.sol";
|
8
|
-
|
9
|
-
|
10
|
-
contract TestPool is Pool {
|
11
|
-
|
12
|
-
constructor(
|
13
|
-
address registry,
|
14
|
-
NftId instanceNftid,
|
15
|
-
address token,
|
16
|
-
bool isVerifying,
|
17
|
-
UFixed collateralizationLevel
|
18
|
-
)
|
19
|
-
Pool(registry, instanceNftid, token, isVerifying, collateralizationLevel)
|
20
|
-
// solhint-disable-next-line no-empty-blocks
|
21
|
-
{}
|
22
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Product} from "../../contracts/components/Product.sol";
|
5
|
-
import {NftId, toNftId} from "../../contracts/types/NftId.sol";
|
6
|
-
import {Timestamp, blockTimestamp} from "../../contracts/types/Timestamp.sol";
|
7
|
-
import {Fee} from "../../contracts/types/Fee.sol";
|
8
|
-
|
9
|
-
contract TestProduct is Product {
|
10
|
-
|
11
|
-
event LogTestProductSender(address sender);
|
12
|
-
|
13
|
-
constructor(address registry, NftId instanceNftid, address token, address pool)
|
14
|
-
Product(registry, instanceNftid, token, pool)
|
15
|
-
// solhint-disable-next-line no-empty-blocks
|
16
|
-
{}
|
17
|
-
|
18
|
-
function applyForPolicy(
|
19
|
-
uint256 sumInsuredAmount,
|
20
|
-
uint256 premiumAmount,
|
21
|
-
uint256 lifetime,
|
22
|
-
NftId bundleNftId
|
23
|
-
)
|
24
|
-
external
|
25
|
-
returns(NftId nftId)
|
26
|
-
{
|
27
|
-
nftId = _createApplication(
|
28
|
-
msg.sender, // policy holder
|
29
|
-
sumInsuredAmount,
|
30
|
-
premiumAmount,
|
31
|
-
lifetime,
|
32
|
-
bundleNftId
|
33
|
-
);
|
34
|
-
}
|
35
|
-
|
36
|
-
function underwrite(NftId nftId, bool requirePremiumPayment, Timestamp activateAt) external {
|
37
|
-
emit LogTestProductSender(msg.sender);
|
38
|
-
_underwrite(nftId, requirePremiumPayment, activateAt);
|
39
|
-
}
|
40
|
-
|
41
|
-
function collectPremium(NftId nftId, Timestamp activateAt) external {
|
42
|
-
_collectPremium(nftId, activateAt);
|
43
|
-
}
|
44
|
-
}
|