@etherisc/gif-next 0.0.2-e46206a-486 → 0.0.2-e510b92-393
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 +67 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +152 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +220 -33
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +114 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -25
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +24 -57
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -50
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +291 -68
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +299 -58
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
- 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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1132 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +775 -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/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +778 -1020
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +485 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2286 -1032
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +970 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +512 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +272 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +59 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
- 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 +37 -253
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -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/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
- 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/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +32 -48
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +111 -41
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +444 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +167 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +40 -31
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +322 -42
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +464 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +176 -105
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +488 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +201 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +94 -19
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +172 -49
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +61 -29
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +47 -34
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +4 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +2 -104
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +2 -2
- 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 +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +4 -4
- 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 +11 -11
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- 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/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
- package/contracts/components/BaseComponent.sol +64 -11
- package/contracts/components/Distribution.sol +22 -14
- package/contracts/components/IBaseComponent.sol +14 -2
- package/contracts/components/IDistributionComponent.sol +1 -3
- package/contracts/components/IPoolComponent.sol +5 -3
- package/contracts/components/IProductComponent.sol +1 -3
- package/contracts/components/Pool.sol +50 -29
- package/contracts/components/Product.sol +50 -60
- package/contracts/instance/AccessManagedSimple.sol +115 -0
- package/contracts/instance/AccessManagerSimple.sol +692 -0
- package/contracts/instance/BundleManager.sol +129 -0
- package/contracts/instance/Cloneable.sol +46 -0
- package/contracts/instance/IAccessManagerSimple.sol +391 -0
- package/contracts/instance/IInstance.sol +48 -44
- package/contracts/instance/IInstanceService.sol +32 -0
- package/contracts/instance/Instance.sol +434 -63
- package/contracts/instance/InstanceAccessManager.sol +288 -0
- package/contracts/instance/InstanceReader.sol +315 -0
- package/contracts/instance/InstanceService.sol +232 -0
- package/contracts/instance/InstanceServiceManager.sol +57 -0
- package/contracts/instance/ObjectManager.sol +95 -0
- package/contracts/instance/base/ComponentServiceBase.sol +93 -8
- package/contracts/instance/base/IKeyValueStore.sol +13 -14
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +49 -39
- package/contracts/instance/base/Lifecycle.sol +1 -1
- package/contracts/instance/module/IAccess.sol +38 -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 +46 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/instance/service/ComponentOwnerService.sol +62 -60
- package/contracts/instance/service/DistributionService.sol +49 -15
- package/contracts/instance/service/DistributionServiceManager.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +1 -1
- package/contracts/instance/service/IDistributionService.sol +1 -1
- package/contracts/instance/service/IPoolService.sol +17 -3
- package/contracts/instance/service/IProductService.sol +8 -5
- package/contracts/instance/service/PoolService.sol +183 -45
- package/contracts/instance/service/PoolServiceManager.sol +54 -0
- package/contracts/instance/service/ProductService.sol +175 -115
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/IRegistry.sol +26 -2
- package/contracts/registry/IRegistryService.sol +34 -19
- package/contracts/registry/Registry.sol +61 -36
- package/contracts/registry/RegistryService.sol +42 -125
- package/contracts/registry/RegistryServiceManager.sol +21 -5
- package/contracts/registry/TokenRegistry.sol +111 -0
- package/contracts/shared/ERC165.sol +6 -2
- package/contracts/{instance/base → shared}/IService.sol +3 -3
- package/contracts/shared/NftOwnable.sol +2 -4
- package/contracts/shared/Registerable.sol +1 -0
- package/contracts/shared/RegisterableUpgradable.sol +16 -0
- package/contracts/shared/Service.sol +55 -0
- package/contracts/shared/TokenHandler.sol +27 -0
- package/contracts/test/TestService.sol +3 -5
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/RoleId.sol +8 -0
- package/contracts/types/StateId.sol +4 -0
- package/contracts/types/Version.sol +4 -1
- package/package.json +1 -1
- 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/IService.sol/IService.dbg.json +0 -4
- 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/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
- 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 -297
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
- 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 -117
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
- 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 -271
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
- 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 -164
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
- 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 -113
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
- 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 -638
- 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 -638
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -557
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -716
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -744
- package/contracts/instance/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/InstanceBase.sol +0 -89
- package/contracts/instance/base/ModuleBase.sol +0 -57
- package/contracts/instance/base/ServiceBase.sol +0 -44
- package/contracts/instance/module/bundle/BundleModule.sol +0 -134
- package/contracts/instance/module/bundle/IBundle.sol +0 -53
- package/contracts/instance/module/component/ComponentModule.sol +0 -71
- package/contracts/instance/module/component/IComponent.sol +0 -28
- package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
- package/contracts/instance/module/distribution/IDistribution.sol +0 -10
- package/contracts/instance/module/policy/IPolicy.sol +0 -63
- package/contracts/instance/module/policy/PolicyModule.sol +0 -91
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -95
- package/contracts/instance/module/risk/IRisk.sol +0 -26
- package/contracts/instance/module/risk/RiskModule.sol +0 -62
- package/contracts/instance/module/treasury/ITreasury.sol +0 -84
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
- package/contracts/test/TestDistribution.sol +0 -22
- package/contracts/test/TestPool.sol +0 -27
- package/contracts/test/TestProduct.sol +0 -74
@@ -3,11 +3,11 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {IRisk} from "../instance/module/
|
7
|
-
import {ITreasury} from "../instance/module/
|
6
|
+
import {IRisk} from "../instance/module/IRisk.sol";
|
7
|
+
import {ITreasury} from "../instance/module/ITreasury.sol";
|
8
8
|
import {IProductService} from "../instance/service/IProductService.sol";
|
9
9
|
import {IProductComponent} from "./IProductComponent.sol";
|
10
|
-
import {NftId, zeroNftId} from "../types/NftId.sol";
|
10
|
+
import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
|
11
11
|
import {ObjectType, PRODUCT} from "../types/ObjectType.sol";
|
12
12
|
import {ReferralId} from "../types/Referral.sol";
|
13
13
|
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
@@ -19,16 +19,24 @@ import {BaseComponent} from "./BaseComponent.sol";
|
|
19
19
|
import {IRegistry} from "../registry/IRegistry.sol";
|
20
20
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
21
|
import {Registerable} from "../shared/Registerable.sol";
|
22
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
23
|
|
23
|
-
import {
|
24
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
25
|
+
import {ISetup} from "../instance/module/ISetup.sol";
|
24
26
|
import {Pool} from "../components/Pool.sol";
|
27
|
+
import {Distribution} from "../components/Distribution.sol";
|
28
|
+
|
29
|
+
import {zeroNftId} from "../types/NftId.sol";
|
25
30
|
|
26
31
|
contract Product is BaseComponent, IProductComponent {
|
32
|
+
using NftIdLib for NftId;
|
33
|
+
|
27
34
|
IProductService internal _productService;
|
28
35
|
Pool internal _pool;
|
29
|
-
|
36
|
+
Distribution internal _distribution;
|
30
37
|
Fee internal _initialProductFee;
|
31
38
|
Fee internal _initialProcessingFee;
|
39
|
+
TokenHandler internal _tokenHandler;
|
32
40
|
|
33
41
|
NftId internal _poolNftId;
|
34
42
|
NftId internal _distributionNftId;
|
@@ -47,12 +55,14 @@ contract Product is BaseComponent, IProductComponent {
|
|
47
55
|
// TODO add validation
|
48
56
|
_productService = _instance.getProductService();
|
49
57
|
_pool = Pool(pool);
|
50
|
-
_distribution = distribution;
|
58
|
+
_distribution = Distribution(distribution);
|
51
59
|
_initialProductFee = productFee;
|
52
60
|
_initialProcessingFee = processingFee;
|
53
61
|
|
62
|
+
_tokenHandler = new TokenHandler(token);
|
63
|
+
|
54
64
|
_poolNftId = getRegistry().getNftId(address(_pool));
|
55
|
-
_distributionNftId = getRegistry().getNftId(_distribution);
|
65
|
+
_distributionNftId = getRegistry().getNftId(address(_distribution));
|
56
66
|
|
57
67
|
_registerInterface(type(IProductComponent).interfaceId);
|
58
68
|
}
|
@@ -111,13 +121,13 @@ contract Product is BaseComponent, IProductComponent {
|
|
111
121
|
);
|
112
122
|
}
|
113
123
|
|
114
|
-
function
|
124
|
+
function _updateRisk(
|
115
125
|
RiskId id,
|
116
|
-
|
126
|
+
bytes memory data
|
117
127
|
) internal {
|
118
|
-
_productService.
|
128
|
+
_productService.updateRisk(
|
119
129
|
id,
|
120
|
-
|
130
|
+
data
|
121
131
|
);
|
122
132
|
}
|
123
133
|
|
@@ -132,7 +142,7 @@ contract Product is BaseComponent, IProductComponent {
|
|
132
142
|
}
|
133
143
|
|
134
144
|
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
135
|
-
return _instance.getRiskInfo(id);
|
145
|
+
return _instance.getInstanceReader().getRiskInfo(id);
|
136
146
|
}
|
137
147
|
|
138
148
|
function _createApplication(
|
@@ -195,7 +205,7 @@ contract Product is BaseComponent, IProductComponent {
|
|
195
205
|
}
|
196
206
|
|
197
207
|
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
198
|
-
return getRegistry().getNftId(_distribution);
|
208
|
+
return getRegistry().getNftId(address(_distribution));
|
199
209
|
}
|
200
210
|
|
201
211
|
// from product component
|
@@ -210,38 +220,13 @@ contract Product is BaseComponent, IProductComponent {
|
|
210
220
|
_productService.setFees(productFee, processingFee);
|
211
221
|
}
|
212
222
|
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
view
|
217
|
-
override
|
218
|
-
returns (Fee memory productFee)
|
219
|
-
{
|
220
|
-
NftId productNftId = getNftId();
|
221
|
-
if (_instance.hasTreasuryInfo(productNftId)) {
|
222
|
-
return _instance.getTreasuryInfo(productNftId).productFee;
|
223
|
-
} else {
|
224
|
-
return _initialProductFee;
|
225
|
-
}
|
226
|
-
}
|
227
|
-
|
228
|
-
function getProcessingFee()
|
229
|
-
external
|
230
|
-
view
|
231
|
-
override
|
232
|
-
returns (Fee memory processingFee)
|
233
|
-
{
|
234
|
-
NftId productNftId = getNftId();
|
235
|
-
if (_instance.hasTreasuryInfo(productNftId)) {
|
236
|
-
return _instance.getTreasuryInfo(productNftId).processingFee;
|
237
|
-
} else {
|
238
|
-
return _initialProcessingFee;
|
239
|
-
}
|
223
|
+
function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
224
|
+
InstanceReader reader = _instance.getInstanceReader();
|
225
|
+
return reader.getProductSetupInfo(getNftId());
|
240
226
|
}
|
241
227
|
|
242
228
|
// from IRegisterable
|
243
229
|
|
244
|
-
// TODO used only once, occupies space
|
245
230
|
function getInitialInfo()
|
246
231
|
public
|
247
232
|
view
|
@@ -253,7 +238,7 @@ contract Product is BaseComponent, IProductComponent {
|
|
253
238
|
IRegistry.ObjectInfo memory productInfo,
|
254
239
|
bytes memory data
|
255
240
|
) = super.getInitialInfo();
|
256
|
-
|
241
|
+
|
257
242
|
// TODO read pool & distribution fees
|
258
243
|
// 1) from pool -> the only option -> pool must be registered first?
|
259
244
|
// 2) from instance -> all fees are set into instance at product registration which is ongoing here
|
@@ -263,36 +248,41 @@ contract Product is BaseComponent, IProductComponent {
|
|
263
248
|
|
264
249
|
// from PoolComponent
|
265
250
|
(
|
266
|
-
|
251
|
+
,
|
267
252
|
bytes memory poolData
|
268
253
|
) = _pool.getInitialInfo();
|
254
|
+
|
255
|
+
(
|
256
|
+
ISetup.PoolSetupInfo memory poolSetupInfo
|
257
|
+
) = abi.decode(poolData, (ISetup.PoolSetupInfo));
|
269
258
|
|
259
|
+
// from DistributionComponent
|
270
260
|
(
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
Fee memory initialPoolFee,
|
275
|
-
Fee memory initialStakingFee,
|
276
|
-
Fee memory initialPerformanceFee
|
277
|
-
) = abi.decode(poolData, (IPool.PoolInfo, address, IERC20Metadata, Fee, Fee, Fee));
|
261
|
+
,
|
262
|
+
bytes memory distributionData
|
263
|
+
) = _distribution.getInitialInfo();
|
278
264
|
|
279
|
-
|
265
|
+
(
|
266
|
+
ISetup.DistributionSetupInfo memory distributionSetupInfo
|
267
|
+
) = abi.decode(distributionData, (ISetup.DistributionSetupInfo));
|
280
268
|
|
281
269
|
return (
|
282
270
|
productInfo,
|
283
271
|
abi.encode(
|
284
|
-
|
285
|
-
_poolNftId,
|
286
|
-
_distributionNftId,
|
272
|
+
ISetup.ProductSetupInfo(
|
287
273
|
_token,
|
274
|
+
_tokenHandler,
|
275
|
+
_distributionNftId,
|
276
|
+
_poolNftId,
|
277
|
+
distributionSetupInfo.distributionFee,
|
288
278
|
_initialProductFee,
|
289
279
|
_initialProcessingFee,
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
280
|
+
poolSetupInfo.poolFee,
|
281
|
+
poolSetupInfo.stakingFee,
|
282
|
+
poolSetupInfo.performanceFee,
|
283
|
+
false,
|
284
|
+
_wallet
|
285
|
+
)
|
296
286
|
)
|
297
287
|
);
|
298
288
|
}
|
@@ -0,0 +1,115 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
// OpenZeppelin Contracts (last updated v5.0.0) (access/manager/AccessManaged.sol)
|
3
|
+
|
4
|
+
pragma solidity ^0.8.20;
|
5
|
+
|
6
|
+
import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
|
7
|
+
import {Context} from "@openzeppelin/contracts/utils/Context.sol";
|
8
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
9
|
+
import {IAuthority} from "@openzeppelin/contracts/access/manager/IAuthority.sol";
|
10
|
+
|
11
|
+
import {IAccessManagerSimple} from "./IAccessManagerSimple.sol";
|
12
|
+
|
13
|
+
/**
|
14
|
+
* @dev This contract module makes available a {restricted} modifier. Functions decorated with this modifier will be
|
15
|
+
* permissioned according to an "authority": a contract like {AccessManager} that follows the {IAuthority} interface,
|
16
|
+
* implementing a policy that allows certain callers to access certain functions.
|
17
|
+
*
|
18
|
+
* IMPORTANT: The `restricted` modifier should never be used on `internal` functions, judiciously used in `public`
|
19
|
+
* functions, and ideally only used in `external` functions. See {restricted}.
|
20
|
+
*/
|
21
|
+
abstract contract AccessManagedSimple is Context, IAccessManaged {
|
22
|
+
bool private _initialized;
|
23
|
+
address private _authority;
|
24
|
+
|
25
|
+
bool private _consumingSchedule;
|
26
|
+
|
27
|
+
function initializeAccessManagedSimple(address initialAuthority) internal {
|
28
|
+
require(!_initialized, "AccessManaged: already initialized");
|
29
|
+
_setAuthority(initialAuthority);
|
30
|
+
_initialized = true;
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
/**
|
35
|
+
* @dev Restricts access to a function as defined by the connected Authority for this contract and the
|
36
|
+
* caller and selector of the function that entered the contract.
|
37
|
+
*
|
38
|
+
* [IMPORTANT]
|
39
|
+
* ====
|
40
|
+
* In general, this modifier should only be used on `external` functions. It is okay to use it on `public`
|
41
|
+
* functions that are used as external entry points and are not called internally. Unless you know what you're
|
42
|
+
* doing, it should never be used on `internal` functions. Failure to follow these rules can have critical security
|
43
|
+
* implications! This is because the permissions are determined by the function that entered the contract, i.e. the
|
44
|
+
* function at the bottom of the call stack, and not the function where the modifier is visible in the source code.
|
45
|
+
* ====
|
46
|
+
*
|
47
|
+
* [WARNING]
|
48
|
+
* ====
|
49
|
+
* Avoid adding this modifier to the https://docs.soliditylang.org/en/v0.8.20/contracts.html#receive-ether-function[`receive()`]
|
50
|
+
* function or the https://docs.soliditylang.org/en/v0.8.20/contracts.html#fallback-function[`fallback()`]. These
|
51
|
+
* functions are the only execution paths where a function selector cannot be unambiguosly determined from the calldata
|
52
|
+
* since the selector defaults to `0x00000000` in the `receive()` function and similarly in the `fallback()` function
|
53
|
+
* if no calldata is provided. (See {_checkCanCall}).
|
54
|
+
*
|
55
|
+
* The `receive()` function will always panic whereas the `fallback()` may panic depending on the calldata length.
|
56
|
+
* ====
|
57
|
+
*/
|
58
|
+
modifier restricted() {
|
59
|
+
_checkCanCall(_msgSender(), _msgData());
|
60
|
+
_;
|
61
|
+
}
|
62
|
+
|
63
|
+
/// @inheritdoc IAccessManaged
|
64
|
+
function authority() public view virtual returns (address) {
|
65
|
+
return _authority;
|
66
|
+
}
|
67
|
+
|
68
|
+
/// @inheritdoc IAccessManaged
|
69
|
+
function setAuthority(address newAuthority) public virtual {
|
70
|
+
address caller = _msgSender();
|
71
|
+
if (caller != authority()) {
|
72
|
+
revert AccessManagedUnauthorized(caller);
|
73
|
+
}
|
74
|
+
if (newAuthority.code.length == 0) {
|
75
|
+
revert AccessManagedInvalidAuthority(newAuthority);
|
76
|
+
}
|
77
|
+
_setAuthority(newAuthority);
|
78
|
+
}
|
79
|
+
|
80
|
+
/// @inheritdoc IAccessManaged
|
81
|
+
function isConsumingScheduledOp() public view returns (bytes4) {
|
82
|
+
return _consumingSchedule ? this.isConsumingScheduledOp.selector : bytes4(0);
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* @dev Transfers control to a new authority. Internal function with no access restriction. Allows bypassing the
|
87
|
+
* permissions set by the current authority.
|
88
|
+
*/
|
89
|
+
function _setAuthority(address newAuthority) internal virtual {
|
90
|
+
_authority = newAuthority;
|
91
|
+
emit AuthorityUpdated(newAuthority);
|
92
|
+
}
|
93
|
+
|
94
|
+
/**
|
95
|
+
* @dev Reverts if the caller is not allowed to call the function identified by a selector. Panics if the calldata
|
96
|
+
* is less than 4 bytes long.
|
97
|
+
*/
|
98
|
+
function _checkCanCall(address caller, bytes calldata data) internal virtual {
|
99
|
+
(bool immediate, uint32 delay) = AuthorityUtils.canCallWithDelay(
|
100
|
+
authority(),
|
101
|
+
caller,
|
102
|
+
address(this),
|
103
|
+
bytes4(data[0:4])
|
104
|
+
);
|
105
|
+
if (!immediate) {
|
106
|
+
if (delay > 0) {
|
107
|
+
_consumingSchedule = true;
|
108
|
+
IAccessManagerSimple(authority()).consumeScheduledOp(caller, data);
|
109
|
+
_consumingSchedule = false;
|
110
|
+
} else {
|
111
|
+
revert AccessManagedUnauthorized(caller);
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|