@etherisc/gif-next 0.0.2-f752d2a-551 → 0.0.2-f79a517-071
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 +175 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -39
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +557 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +119 -39
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +108 -156
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +67 -139
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +417 -88
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +360 -51
- 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/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +768 -694
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +954 -816
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +224 -43
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +263 -45
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
- 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/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -51
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -51
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +29 -14
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -13
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +326 -221
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +326 -221
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +374 -70
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +630 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +176 -74
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +235 -50
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +325 -51
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +335 -53
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +468 -73
- 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 +190 -51
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +872 -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 +380 -139
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1245 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +496 -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 +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
- 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 +158 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
- 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/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +557 -0
- 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/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +417 -88
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +407 -56
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
- 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 +267 -62
- 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 +89 -25
- 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/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 +2 -2
- 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 +2 -2
- 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/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -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 +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- 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 +2 -2
- package/contracts/components/BaseComponent.sol +11 -20
- package/contracts/components/Distribution.sol +155 -0
- package/contracts/components/IBaseComponent.sol +1 -1
- package/contracts/components/IDistributionComponent.sol +46 -0
- package/contracts/components/IPoolComponent.sol +15 -8
- package/contracts/components/IProductComponent.sol +26 -8
- package/contracts/components/Pool.sol +99 -27
- package/contracts/components/Product.sol +204 -22
- package/contracts/experiment/cloning/Cloner.sol +47 -0
- package/contracts/instance/IInstance.sol +11 -11
- package/contracts/instance/Instance.sol +28 -13
- package/contracts/instance/base/ComponentServiceBase.sol +13 -6
- package/contracts/instance/base/IInstanceBase.sol +11 -2
- package/contracts/instance/base/IKeyValueStore.sol +4 -3
- package/contracts/instance/base/InstanceBase.sol +19 -10
- package/contracts/instance/base/KeyValueStore.sol +12 -7
- package/contracts/instance/base/Lifecycle.sol +15 -10
- package/contracts/instance/base/ModuleBase.sol +22 -17
- package/contracts/instance/base/ServiceBase.sol +20 -13
- package/contracts/instance/module/bundle/BundleModule.sol +10 -12
- package/contracts/instance/module/bundle/IBundle.sol +6 -11
- package/contracts/instance/module/component/ComponentModule.sol +33 -57
- package/contracts/instance/module/component/IComponent.sol +6 -31
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +13 -10
- package/contracts/instance/module/policy/PolicyModule.sol +35 -20
- package/contracts/instance/module/pool/IPoolModule.sol +4 -4
- package/contracts/instance/module/pool/PoolModule.sol +23 -15
- package/contracts/instance/module/risk/IRisk.sol +18 -2
- package/contracts/instance/module/risk/RiskModule.sol +56 -2
- package/contracts/instance/module/treasury/ITreasury.sol +31 -50
- package/contracts/instance/module/treasury/TokenHandler.sol +1 -1
- package/contracts/instance/module/treasury/TreasuryModule.sol +70 -91
- package/contracts/instance/service/ComponentOwnerService.sol +238 -93
- package/contracts/instance/service/DistributionService.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +0 -2
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +7 -0
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +49 -23
- package/contracts/instance/service/ProductService.sol +250 -94
- package/contracts/registry/ChainNft.sol +80 -37
- package/contracts/registry/IRegistry.sol +28 -28
- package/contracts/registry/IRegistryService.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +314 -272
- package/contracts/registry/RegistryService.sol +441 -0
- package/contracts/registry/RegistryServiceManager.sol +64 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/INftOwnable.sol +22 -0
- package/contracts/shared/IRegisterable.sol +8 -15
- package/contracts/shared/IVersionable.sol +55 -11
- package/contracts/shared/NftOwnable.sol +136 -0
- package/contracts/shared/ProxyManager.sol +94 -0
- package/contracts/shared/Registerable.sol +62 -59
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +112 -54
- package/contracts/test/TestDistribution.sol +22 -0
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/test/TestPool.sol +7 -2
- package/contracts/test/TestProduct.sol +37 -7
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestService.sol +5 -11
- package/contracts/types/Fee.sol +10 -5
- package/contracts/types/ObjectType.sol +24 -8
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +9 -2
- package/contracts/types/UFixed.sol +128 -12
- package/contracts/types/Version.sol +9 -0
- package/package.json +4 -3
- 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/IAccess.json +0 -10
- 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/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/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
- 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/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
@@ -1,19 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../types/NftId.sol";
|
5
4
|
import {Fee} from "../types/Fee.sol";
|
6
|
-
import {
|
5
|
+
import {NftId} from "../types/NftId.sol";
|
6
|
+
import {ReferralId} from "../types/ReferralId.sol";
|
7
|
+
import {RiskId} from "../types/RiskId.sol";
|
8
|
+
|
9
|
+
interface IProductComponent {
|
7
10
|
|
8
|
-
interface IProductComponent is IBaseComponent {
|
9
11
|
function setFees(
|
10
|
-
Fee memory
|
12
|
+
Fee memory productFee,
|
11
13
|
Fee memory processingFee
|
12
14
|
) external;
|
13
15
|
|
14
|
-
function
|
15
|
-
|
16
|
-
|
16
|
+
function calculatePremium(
|
17
|
+
uint256 sumInsuredAmount,
|
18
|
+
RiskId riskId,
|
19
|
+
uint256 lifetime,
|
20
|
+
bytes memory applicationData,
|
21
|
+
ReferralId referralId,
|
22
|
+
NftId bundleNftId
|
23
|
+
) external view returns (uint256 premiumAmount);
|
17
24
|
|
25
|
+
function calculateNetPremium(
|
26
|
+
uint256 sumInsuredAmount,
|
27
|
+
RiskId riskId,
|
28
|
+
uint256 lifetime,
|
29
|
+
bytes memory applicationData
|
30
|
+
) external view returns (uint256 netPremiumAmount);
|
31
|
+
|
32
|
+
function getProductFee() external view returns (Fee memory productFee);
|
18
33
|
function getProcessingFee() external view returns (Fee memory processingFee);
|
34
|
+
|
35
|
+
function getPoolNftId() external view returns (NftId poolNftId);
|
36
|
+
function getDistributionNftId() external view returns (NftId distributionNftId);
|
19
37
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ObjectType, POOL} from "../types/ObjectType.sol";
|
5
5
|
import {IProductService} from "../instance/service/IProductService.sol";
|
@@ -10,11 +10,22 @@ import {UFixed} from "../types/UFixed.sol";
|
|
10
10
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
11
11
|
import {BaseComponent} from "./BaseComponent.sol";
|
12
12
|
|
13
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
+
import {IPool} from "../instance/module/pool/IPoolModule.sol";
|
15
|
+
import {ITreasury} from "../instance/module/treasury/ITreasury.sol";
|
16
|
+
|
17
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
18
|
+
import {Registerable} from "../shared/Registerable.sol";
|
19
|
+
|
13
20
|
contract Pool is BaseComponent, IPoolComponent {
|
14
21
|
|
15
22
|
bool internal _isVerifying;
|
16
23
|
UFixed internal _collateralizationLevel;
|
17
24
|
|
25
|
+
Fee internal _initialPoolFee;
|
26
|
+
Fee internal _initialStakingFee;
|
27
|
+
Fee internal _initialPerformanceFee;
|
28
|
+
|
18
29
|
// may be used to interact with instance by derived contracts
|
19
30
|
IPoolService internal _poolService;
|
20
31
|
|
@@ -40,20 +51,31 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
40
51
|
NftId instanceNftId,
|
41
52
|
// TODO refactor into tokenNftId
|
42
53
|
address token,
|
54
|
+
bool isInterceptor,
|
43
55
|
bool verifying,
|
44
|
-
UFixed collateralizationLevel
|
56
|
+
UFixed collateralizationLevel,
|
57
|
+
Fee memory poolFee,
|
58
|
+
Fee memory stakingFee,
|
59
|
+
Fee memory performanceFee,
|
60
|
+
address initialOwner
|
45
61
|
)
|
46
|
-
BaseComponent(registry, instanceNftId, token)
|
62
|
+
BaseComponent(registry, instanceNftId, token, POOL(), isInterceptor, initialOwner)
|
47
63
|
{
|
48
64
|
_isVerifying = verifying;
|
49
65
|
// TODO add validation
|
50
66
|
_collateralizationLevel = collateralizationLevel;
|
67
|
+
_initialPoolFee = poolFee;
|
68
|
+
_initialStakingFee = stakingFee;
|
69
|
+
_initialPerformanceFee = performanceFee;
|
51
70
|
|
52
71
|
_poolService = _instance.getPoolService();
|
53
72
|
_productService = _instance.getProductService();
|
73
|
+
|
74
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
54
75
|
}
|
55
76
|
|
56
77
|
function createBundle(
|
78
|
+
Fee memory fee,
|
57
79
|
uint256 initialAmount,
|
58
80
|
uint256 lifetime,
|
59
81
|
bytes memory filter
|
@@ -65,6 +87,7 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
65
87
|
address owner = msg.sender;
|
66
88
|
bundleNftId = _poolService.createBundle(
|
67
89
|
owner,
|
90
|
+
fee,
|
68
91
|
initialAmount,
|
69
92
|
lifetime,
|
70
93
|
filter
|
@@ -115,6 +138,77 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
115
138
|
return _collateralizationLevel;
|
116
139
|
}
|
117
140
|
|
141
|
+
function setFees(
|
142
|
+
Fee memory poolFee,
|
143
|
+
Fee memory stakingFee,
|
144
|
+
Fee memory performanceFee
|
145
|
+
)
|
146
|
+
external
|
147
|
+
onlyOwner
|
148
|
+
override
|
149
|
+
{
|
150
|
+
_poolService.setFees(poolFee, stakingFee, performanceFee);
|
151
|
+
}
|
152
|
+
|
153
|
+
function setBundleFee(
|
154
|
+
NftId bundleNftId,
|
155
|
+
Fee memory fee
|
156
|
+
)
|
157
|
+
external
|
158
|
+
override
|
159
|
+
// TODO add onlyBundleOwner
|
160
|
+
{
|
161
|
+
_poolService.setBundleFee(bundleNftId, fee);
|
162
|
+
}
|
163
|
+
// TODO delete, call instance instead
|
164
|
+
function getFees()
|
165
|
+
external
|
166
|
+
view
|
167
|
+
override
|
168
|
+
returns (Fee memory, Fee memory, Fee memory)
|
169
|
+
{
|
170
|
+
NftId productNftId = _instance.getProductNftId(getNftId());
|
171
|
+
//if (_instance.hasTreasuryInfo(productNftId)) {
|
172
|
+
ITreasury.TreasuryInfo memory info = _instance.getTreasuryInfo(productNftId);
|
173
|
+
return (info.poolFee, info.stakingFee, info.performanceFee);
|
174
|
+
//} else {
|
175
|
+
// return (_initialPoolFee, _initialStakingFee, _initialPerformanceFee);
|
176
|
+
//}
|
177
|
+
}
|
178
|
+
|
179
|
+
// from IRegisterable
|
180
|
+
|
181
|
+
// TODO used only once, occupies space
|
182
|
+
// TODO do not use super
|
183
|
+
function getInitialInfo()
|
184
|
+
public
|
185
|
+
view
|
186
|
+
override (IRegisterable, Registerable)
|
187
|
+
returns (IRegistry.ObjectInfo memory, bytes memory)
|
188
|
+
{
|
189
|
+
(
|
190
|
+
IRegistry.ObjectInfo memory info,
|
191
|
+
bytes memory data
|
192
|
+
) = super.getInitialInfo();
|
193
|
+
|
194
|
+
return (
|
195
|
+
info,
|
196
|
+
abi.encode(
|
197
|
+
IPool.PoolInfo(
|
198
|
+
_isVerifying,
|
199
|
+
_collateralizationLevel
|
200
|
+
),
|
201
|
+
_wallet,
|
202
|
+
_token,
|
203
|
+
_initialPoolFee,
|
204
|
+
_initialStakingFee,
|
205
|
+
_initialPerformanceFee
|
206
|
+
)
|
207
|
+
);
|
208
|
+
}
|
209
|
+
|
210
|
+
// Internals
|
211
|
+
|
118
212
|
function _underwrite(
|
119
213
|
NftId policyNftId,
|
120
214
|
bytes memory policyData,
|
@@ -133,6 +227,7 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
133
227
|
|
134
228
|
function _createBundle(
|
135
229
|
address bundleOwner,
|
230
|
+
Fee memory fee,
|
136
231
|
uint256 amount,
|
137
232
|
uint256 lifetime,
|
138
233
|
bytes calldata filter
|
@@ -142,33 +237,10 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
142
237
|
{
|
143
238
|
bundleNftId = _poolService.createBundle(
|
144
239
|
bundleOwner,
|
240
|
+
fee,
|
145
241
|
amount,
|
146
242
|
lifetime,
|
147
243
|
filter
|
148
244
|
);
|
149
245
|
}
|
150
|
-
|
151
|
-
// from pool component
|
152
|
-
function getStakingFee()
|
153
|
-
external
|
154
|
-
view
|
155
|
-
override
|
156
|
-
returns (Fee memory stakingFee)
|
157
|
-
{
|
158
|
-
return _instance.getPoolSetup(getNftId()).stakingFee;
|
159
|
-
}
|
160
|
-
|
161
|
-
function getPerformanceFee()
|
162
|
-
external
|
163
|
-
view
|
164
|
-
override
|
165
|
-
returns (Fee memory performanceFee)
|
166
|
-
{
|
167
|
-
return _instance.getPoolSetup(getNftId()).performanceFee;
|
168
|
-
}
|
169
|
-
|
170
|
-
// from registerable
|
171
|
-
function getType() public pure override returns (ObjectType) {
|
172
|
-
return POOL();
|
173
|
-
}
|
174
246
|
}
|
@@ -1,42 +1,157 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IRisk} from "../instance/module/risk/IRisk.sol";
|
7
|
+
import {ITreasury} from "../instance/module/treasury/ITreasury.sol";
|
4
8
|
import {IProductService} from "../instance/service/IProductService.sol";
|
5
9
|
import {IProductComponent} from "./IProductComponent.sol";
|
6
|
-
import {NftId} from "../types/NftId.sol";
|
10
|
+
import {NftId, zeroNftId} from "../types/NftId.sol";
|
7
11
|
import {ObjectType, PRODUCT} from "../types/ObjectType.sol";
|
12
|
+
import {ReferralId} from "../types/ReferralId.sol";
|
13
|
+
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
14
|
+
import {StateId} from "../types/StateId.sol";
|
8
15
|
import {Timestamp} from "../types/Timestamp.sol";
|
9
|
-
import {Fee} from "../types/Fee.sol";
|
16
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
10
17
|
import {BaseComponent} from "./BaseComponent.sol";
|
11
18
|
|
19
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
20
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
|
+
import {Registerable} from "../shared/Registerable.sol";
|
22
|
+
|
23
|
+
import {IPool} from "../instance/module/pool/IPoolModule.sol";
|
24
|
+
import {Pool} from "../components/Pool.sol";
|
25
|
+
|
12
26
|
contract Product is BaseComponent, IProductComponent {
|
13
|
-
IProductService
|
14
|
-
|
27
|
+
IProductService internal _productService;
|
28
|
+
Pool internal _pool;
|
29
|
+
address internal _distribution;
|
30
|
+
Fee internal _initialProductFee;
|
31
|
+
Fee internal _initialProcessingFee;
|
32
|
+
|
33
|
+
NftId internal _poolNftId;
|
34
|
+
NftId internal _distributionNftId;
|
15
35
|
|
16
36
|
constructor(
|
17
37
|
address registry,
|
18
38
|
NftId instanceNftid,
|
19
39
|
address token,
|
20
|
-
|
21
|
-
|
40
|
+
bool isInterceptor,
|
41
|
+
address pool,
|
42
|
+
address distribution,
|
43
|
+
Fee memory productFee,
|
44
|
+
Fee memory processingFee,
|
45
|
+
address initialOwner
|
46
|
+
) BaseComponent(registry, instanceNftid, token, PRODUCT(), isInterceptor, initialOwner) {
|
22
47
|
// TODO add validation
|
23
48
|
_productService = _instance.getProductService();
|
24
|
-
_pool = pool;
|
49
|
+
_pool = Pool(pool);
|
50
|
+
_distribution = distribution;
|
51
|
+
_initialProductFee = productFee;
|
52
|
+
_initialProcessingFee = processingFee;
|
53
|
+
|
54
|
+
_poolNftId = getRegistry().getNftId(address(_pool));
|
55
|
+
_distributionNftId = getRegistry().getNftId(_distribution);
|
56
|
+
|
57
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
function calculatePremium(
|
62
|
+
uint256 sumInsuredAmount,
|
63
|
+
RiskId riskId,
|
64
|
+
uint256 lifetime,
|
65
|
+
bytes memory applicationData,
|
66
|
+
ReferralId referralId,
|
67
|
+
NftId bundleNftId
|
68
|
+
)
|
69
|
+
external
|
70
|
+
view
|
71
|
+
override
|
72
|
+
returns (uint256 premiumAmount)
|
73
|
+
{
|
74
|
+
(premiumAmount,,,,) = _productService.calculatePremium(
|
75
|
+
riskId,
|
76
|
+
sumInsuredAmount,
|
77
|
+
lifetime,
|
78
|
+
applicationData,
|
79
|
+
bundleNftId,
|
80
|
+
referralId
|
81
|
+
);
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
function calculateNetPremium(
|
86
|
+
uint256 sumInsuredAmount,
|
87
|
+
RiskId riskId,
|
88
|
+
uint256 lifetime,
|
89
|
+
bytes memory applicationData
|
90
|
+
)
|
91
|
+
external
|
92
|
+
view
|
93
|
+
virtual override
|
94
|
+
returns (uint256 netPremiumAmount)
|
95
|
+
{
|
96
|
+
// default 10% of sum insured
|
97
|
+
return sumInsuredAmount / 10;
|
98
|
+
}
|
99
|
+
|
100
|
+
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
101
|
+
return RiskIdLib.toRiskId(riskName);
|
102
|
+
}
|
103
|
+
|
104
|
+
function _createRisk(
|
105
|
+
RiskId id,
|
106
|
+
bytes memory data
|
107
|
+
) internal {
|
108
|
+
_productService.createRisk(
|
109
|
+
id,
|
110
|
+
data
|
111
|
+
);
|
112
|
+
}
|
113
|
+
|
114
|
+
function _setRiskInfo(
|
115
|
+
RiskId id,
|
116
|
+
IRisk.RiskInfo memory info
|
117
|
+
) internal {
|
118
|
+
_productService.setRiskInfo(
|
119
|
+
id,
|
120
|
+
info
|
121
|
+
);
|
122
|
+
}
|
123
|
+
|
124
|
+
function _updateRiskState(
|
125
|
+
RiskId id,
|
126
|
+
StateId state
|
127
|
+
) internal {
|
128
|
+
_productService.updateRiskState(
|
129
|
+
id,
|
130
|
+
state
|
131
|
+
);
|
132
|
+
}
|
133
|
+
|
134
|
+
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
135
|
+
return _instance.getRiskInfo(id);
|
25
136
|
}
|
26
137
|
|
27
138
|
function _createApplication(
|
28
139
|
address applicationOwner,
|
140
|
+
RiskId riskId,
|
29
141
|
uint256 sumInsuredAmount,
|
30
|
-
uint256 premiumAmount,
|
31
142
|
uint256 lifetime,
|
32
|
-
|
143
|
+
bytes memory applicationData,
|
144
|
+
NftId bundleNftId,
|
145
|
+
ReferralId referralId
|
33
146
|
) internal returns (NftId nftId) {
|
34
147
|
nftId = _productService.createApplication(
|
35
148
|
applicationOwner,
|
149
|
+
riskId,
|
36
150
|
sumInsuredAmount,
|
37
|
-
premiumAmount,
|
38
151
|
lifetime,
|
39
|
-
|
152
|
+
applicationData,
|
153
|
+
bundleNftId,
|
154
|
+
referralId
|
40
155
|
);
|
41
156
|
}
|
42
157
|
|
@@ -76,29 +191,38 @@ contract Product is BaseComponent, IProductComponent {
|
|
76
191
|
}
|
77
192
|
|
78
193
|
function getPoolNftId() external view override returns (NftId poolNftId) {
|
79
|
-
return
|
194
|
+
return getRegistry().getNftId(address(_pool));
|
195
|
+
}
|
196
|
+
|
197
|
+
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
198
|
+
return getRegistry().getNftId(_distribution);
|
80
199
|
}
|
81
200
|
|
82
201
|
// from product component
|
83
202
|
function setFees(
|
84
|
-
Fee memory
|
203
|
+
Fee memory productFee,
|
85
204
|
Fee memory processingFee
|
86
205
|
)
|
87
206
|
external
|
88
207
|
onlyOwner
|
89
208
|
override
|
90
209
|
{
|
91
|
-
_productService.setFees(
|
210
|
+
_productService.setFees(productFee, processingFee);
|
92
211
|
}
|
93
212
|
|
94
|
-
|
95
|
-
function
|
213
|
+
// TODO delete, call instance intead
|
214
|
+
function getProductFee()
|
96
215
|
external
|
97
216
|
view
|
98
217
|
override
|
99
|
-
returns (Fee memory
|
218
|
+
returns (Fee memory productFee)
|
100
219
|
{
|
101
|
-
|
220
|
+
NftId productNftId = getNftId();
|
221
|
+
if (_instance.hasTreasuryInfo(productNftId)) {
|
222
|
+
return _instance.getTreasuryInfo(productNftId).productFee;
|
223
|
+
} else {
|
224
|
+
return _initialProductFee;
|
225
|
+
}
|
102
226
|
}
|
103
227
|
|
104
228
|
function getProcessingFee()
|
@@ -107,11 +231,69 @@ contract Product is BaseComponent, IProductComponent {
|
|
107
231
|
override
|
108
232
|
returns (Fee memory processingFee)
|
109
233
|
{
|
110
|
-
|
234
|
+
NftId productNftId = getNftId();
|
235
|
+
if (_instance.hasTreasuryInfo(productNftId)) {
|
236
|
+
return _instance.getTreasuryInfo(productNftId).processingFee;
|
237
|
+
} else {
|
238
|
+
return _initialProcessingFee;
|
239
|
+
}
|
111
240
|
}
|
112
241
|
|
113
|
-
// from
|
114
|
-
|
115
|
-
|
242
|
+
// from IRegisterable
|
243
|
+
|
244
|
+
// TODO used only once, occupies space
|
245
|
+
function getInitialInfo()
|
246
|
+
public
|
247
|
+
view
|
248
|
+
override (IRegisterable, Registerable)
|
249
|
+
returns (IRegistry.ObjectInfo memory, bytes memory)
|
250
|
+
{
|
251
|
+
// from Registerable
|
252
|
+
(
|
253
|
+
IRegistry.ObjectInfo memory productInfo,
|
254
|
+
bytes memory data
|
255
|
+
) = super.getInitialInfo();
|
256
|
+
|
257
|
+
// TODO read pool & distribution fees
|
258
|
+
// 1) from pool -> the only option -> pool must be registered first?
|
259
|
+
// 2) from instance -> all fees are set into instance at product registration which is ongoing here
|
260
|
+
// checks are done in registryProduct() where THIS function is called
|
261
|
+
//require(getRegistry().getObjectInfo(_poolNftId).objectType == POOL(), "POOL_NOT_REGISTERED");
|
262
|
+
//require(getRegistry().getObjectInfo(_distributionNftId).objectType == DISTRIBUTION(), "DISTRIBUTION_NOT_REGISTERED");
|
263
|
+
|
264
|
+
// from PoolComponent
|
265
|
+
(
|
266
|
+
IRegistry.ObjectInfo memory poolInfo,
|
267
|
+
bytes memory poolData
|
268
|
+
) = _pool.getInitialInfo();
|
269
|
+
|
270
|
+
(
|
271
|
+
/*IPool.PoolInfo memory info*/,
|
272
|
+
/*address wallet*/,
|
273
|
+
/*IERC20Metadata token*/,
|
274
|
+
Fee memory initialPoolFee,
|
275
|
+
Fee memory initialStakingFee,
|
276
|
+
Fee memory initialPerformanceFee
|
277
|
+
) = abi.decode(poolData, (IPool.PoolInfo, address, IERC20Metadata, Fee, Fee, Fee));
|
278
|
+
|
279
|
+
// TODO from DistributionComponent
|
280
|
+
|
281
|
+
return (
|
282
|
+
productInfo,
|
283
|
+
abi.encode(
|
284
|
+
ITreasury.TreasuryInfo(
|
285
|
+
_poolNftId,
|
286
|
+
_distributionNftId,
|
287
|
+
_token,
|
288
|
+
_initialProductFee,
|
289
|
+
_initialProcessingFee,
|
290
|
+
initialPoolFee,
|
291
|
+
initialStakingFee,
|
292
|
+
initialPerformanceFee,
|
293
|
+
FeeLib.zeroFee()//_instance.getDistributionFee(_distributionNftId)
|
294
|
+
),
|
295
|
+
_wallet
|
296
|
+
)
|
297
|
+
);
|
116
298
|
}
|
117
299
|
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
+
|
6
|
+
|
7
|
+
contract Cloner {
|
8
|
+
|
9
|
+
Mock1 public mock1;
|
10
|
+
Mock2 public mock2;
|
11
|
+
|
12
|
+
constructor() {
|
13
|
+
mock1 = new Mock1();
|
14
|
+
mock2 = new Mock2();
|
15
|
+
}
|
16
|
+
|
17
|
+
function createClone(address master)
|
18
|
+
external
|
19
|
+
returns (address cloned)
|
20
|
+
{
|
21
|
+
cloned = Clones.clone(master);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
contract Mock1 {
|
27
|
+
function getValue() external virtual view returns (uint256) {
|
28
|
+
return 42;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
contract Mock2 is Mock1 {
|
33
|
+
uint256 internal _value;
|
34
|
+
|
35
|
+
constructor() {
|
36
|
+
_value = 42;
|
37
|
+
}
|
38
|
+
|
39
|
+
function setValue(uint256 value) external virtual {
|
40
|
+
_value = value;
|
41
|
+
}
|
42
|
+
|
43
|
+
function getValue() external virtual override view returns (uint256) {
|
44
|
+
return _value;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
@@ -3,14 +3,13 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
|
6
|
+
import {INftOwnable} from "../shared/INftOwnable.sol";
|
6
7
|
import {IVersionable} from "../shared/IVersionable.sol";
|
7
8
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
8
|
-
import {IOwnable} from "../shared/IOwnable.sol";
|
9
9
|
import {RoleId} from "../types/RoleId.sol";
|
10
10
|
|
11
|
-
import {IAccessModule} from "./module/access/IAccess.sol";
|
12
11
|
import {IBundleModule} from "./module/bundle/IBundle.sol";
|
13
|
-
import {
|
12
|
+
import {IDistributionModule} from "./module/distribution/IDistribution.sol";
|
14
13
|
import {IComponentModule} from "./module/component/IComponent.sol";
|
15
14
|
import {IPolicyModule} from "./module/policy/IPolicy.sol";
|
16
15
|
import {IPoolModule} from "./module/pool/IPoolModule.sol";
|
@@ -18,9 +17,10 @@ import {IRiskModule} from "./module/risk/IRisk.sol";
|
|
18
17
|
import {ITreasuryModule} from "./module/treasury/ITreasury.sol";
|
19
18
|
|
20
19
|
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
21
|
-
import {IRegistry
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
22
21
|
|
23
22
|
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
23
|
+
import {IDistributionService} from "./service/IDistributionService.sol";
|
24
24
|
import {IProductService} from "./service/IProductService.sol";
|
25
25
|
import {IPoolService} from "./service/IPoolService.sol";
|
26
26
|
import {IInstanceBase} from "./base/IInstanceBase.sol";
|
@@ -30,22 +30,22 @@ interface IInstance is
|
|
30
30
|
IERC165,
|
31
31
|
IVersionable,
|
32
32
|
IRegisterable,
|
33
|
-
IAccessModule,
|
34
33
|
IPolicyModule,
|
35
34
|
IPoolModule,
|
35
|
+
IRiskModule,
|
36
36
|
IBundleModule,
|
37
37
|
IComponentModule,
|
38
38
|
ITreasuryModule,
|
39
|
-
|
39
|
+
IDistributionModule,
|
40
40
|
IInstanceBase
|
41
41
|
{
|
42
|
-
function getRegistry() external view override (
|
43
|
-
function getOwner() external view override
|
42
|
+
function getRegistry() external view override (INftOwnable) returns (IRegistry registry);
|
43
|
+
function getOwner() external view override returns(address owner);
|
44
44
|
|
45
|
-
function
|
45
|
+
function getKeyValueStore() external view override (IInstanceBase) returns (IKeyValueStore keyValueStore);
|
46
46
|
|
47
|
-
function
|
48
|
-
function
|
47
|
+
function getComponentOwnerService() external view override (IInstanceBase, IComponentModule, IPoolModule, ITreasuryModule) returns(IComponentOwnerService);
|
48
|
+
function getDistributionService() external view override returns(IDistributionService);
|
49
49
|
function getProductService() external view override (IInstanceBase, IBundleModule, IPolicyModule) returns(IProductService);
|
50
50
|
function getPoolService() external view override (IInstanceBase, IBundleModule, IPoolModule) returns(IPoolService);
|
51
51
|
|