@etherisc/gif-next 0.0.2-e42b0ca-323 → 0.0.2-e4b632c-016
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 +168 -28
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +610 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +121 -28
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +74 -181
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +55 -177
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +447 -60
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +519 -70
- 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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +114 -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/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 +278 -1700
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +480 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2509 -1176
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +930 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1283 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +755 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +432 -0
- 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 +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 +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/{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/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +381 -77
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +604 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +177 -75
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ServiceBase.sol/ServiceBase.json → service/IDistributionService.sol/IDistributionService.json} +204 -58
- 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/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 +1261 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +504 -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/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +175 -54
- 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/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +199 -83
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +468 -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 +204 -36
- 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 +283 -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 +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 +2 -2
- 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 +2 -2
- package/contracts/components/BaseComponent.sol +20 -22
- package/contracts/components/Distribution.sol +166 -0
- package/contracts/components/IBaseComponent.sol +8 -3
- package/contracts/components/IDistributionComponent.sol +43 -0
- package/contracts/components/IPoolComponent.sol +14 -9
- package/contracts/components/IProductComponent.sol +25 -9
- package/contracts/components/Pool.sol +115 -30
- package/contracts/components/Product.sol +212 -32
- package/contracts/experiment/cloning/Cloner.sol +47 -0
- package/contracts/instance/AccessManagedSimple.sol +122 -0
- package/contracts/instance/AccessManagerSimple.sol +692 -0
- package/contracts/instance/IAccessManagerSimple.sol +391 -0
- package/contracts/instance/IInstance.sol +26 -45
- package/contracts/instance/IInstanceService.sol +30 -0
- package/contracts/instance/Instance.sol +426 -52
- package/contracts/instance/InstanceAccessManager.sol +288 -0
- package/contracts/instance/InstanceReader.sol +290 -0
- package/contracts/instance/InstanceService.sol +138 -0
- package/contracts/instance/InstanceServiceManager.sol +56 -0
- package/contracts/instance/base/ComponentServiceBase.sol +11 -14
- package/contracts/instance/base/IInstanceBase.sol +11 -2
- 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 +38 -0
- package/contracts/instance/module/IBundle.sol +19 -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 +43 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/instance/service/ComponentOwnerService.sol +244 -97
- package/contracts/instance/service/DistributionService.sol +70 -0
- package/contracts/instance/service/DistributionServiceManager.sol +53 -0
- package/contracts/instance/service/IComponentOwnerService.sol +1 -3
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +8 -1
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/registry/ChainNft.sol +80 -37
- package/contracts/registry/IRegistry.sol +29 -28
- package/contracts/registry/IRegistryService.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +315 -273
- package/contracts/registry/RegistryService.sol +444 -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/{instance/base → shared}/IService.sol +3 -3
- 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/RegisterableUpgradable.sol +16 -0
- package/contracts/shared/Service.sol +54 -0
- package/contracts/shared/TokenHandler.sol +27 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +113 -55
- 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 +5 -13
- package/contracts/types/DistributorType.sol +55 -0
- package/contracts/types/Fee.sol +10 -5
- package/contracts/types/Key32.sol +8 -3
- package/contracts/types/NumberId.sol +52 -0
- package/contracts/types/ObjectType.sol +51 -14
- package/contracts/types/Referral.sol +85 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +54 -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 +9 -0
- package/package.json +4 -3
- 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/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/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
- 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/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/experiment/statemachine/README.md +0 -112
- package/contracts/instance/IInstanceLinked.sol +0 -8
- 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/PoolService.sol +0 -123
- package/contracts/instance/service/ProductService.sol +0 -354
- 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,37 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {NftId, zeroNftId} from "../../types/NftId.sol";
|
5
|
-
import {ObjectType, SERVICE} from "../../types/ObjectType.sol";
|
6
|
-
import {Version, VersionPart} from "../../types/Version.sol";
|
7
|
-
|
8
|
-
import {Registerable} from "../../shared/Registerable.sol";
|
9
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
10
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
11
|
-
|
12
|
-
import {IService} from "./IService.sol";
|
13
|
-
|
14
|
-
abstract contract ServiceBase is
|
15
|
-
Registerable,
|
16
|
-
Versionable,
|
17
|
-
IService
|
18
|
-
{
|
19
|
-
|
20
|
-
constructor(
|
21
|
-
address registry,
|
22
|
-
NftId registryNftId
|
23
|
-
)
|
24
|
-
Registerable(registry, registryNftId)
|
25
|
-
Versionable()
|
26
|
-
{
|
27
|
-
_registerInterface(type(IService).interfaceId);
|
28
|
-
}
|
29
|
-
|
30
|
-
function getMajorVersion() external view override returns(VersionPart majorVersion) {
|
31
|
-
return this.getVersion().toMajorPart();
|
32
|
-
}
|
33
|
-
|
34
|
-
function getType() external pure override returns (ObjectType) {
|
35
|
-
return SERVICE();
|
36
|
-
}
|
37
|
-
}
|
@@ -1,149 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
// role admin handling of oz doesn't fit nft ownability
|
5
|
-
// import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
|
6
|
-
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
7
|
-
|
8
|
-
import {RoleId, RoleIdLib} from "../../../types/RoleId.sol";
|
9
|
-
import {DISTRIBUTOR_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../../../types/RoleId.sol";
|
10
|
-
import {DISTRIBUTOR_OWNER_ROLE_NAME, ORACLE_OWNER_ROLE_NAME, POOL_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE_NAME} from "../../../types/RoleId.sol";
|
11
|
-
import {IAccessModule} from "./IAccess.sol";
|
12
|
-
|
13
|
-
abstract contract AccessModule is IAccessModule {
|
14
|
-
|
15
|
-
using EnumerableSet for EnumerableSet.AddressSet;
|
16
|
-
|
17
|
-
mapping(RoleId role => RoleInfo info) private _info;
|
18
|
-
RoleId[] private _roles;
|
19
|
-
|
20
|
-
mapping(RoleId role => mapping(address member => bool isMember))
|
21
|
-
private _isRoleMember;
|
22
|
-
mapping(RoleId role => EnumerableSet.AddressSet members) private _roleMembers;
|
23
|
-
|
24
|
-
modifier onlyAccessOwner() {
|
25
|
-
require(
|
26
|
-
msg.sender == this.getOwner(),
|
27
|
-
"ERROR:ACS-001:NOT_OWNER");
|
28
|
-
_;
|
29
|
-
}
|
30
|
-
|
31
|
-
modifier onlyExistingRole(RoleId role) {
|
32
|
-
require(
|
33
|
-
_info[role].id == role,
|
34
|
-
"ERROR:ACS-002:ROLE_NOT_EXISTING");
|
35
|
-
_;
|
36
|
-
}
|
37
|
-
|
38
|
-
constructor() {
|
39
|
-
_createRole(DISTRIBUTOR_OWNER_ROLE(), DISTRIBUTOR_OWNER_ROLE_NAME());
|
40
|
-
_createRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME());
|
41
|
-
_createRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME());
|
42
|
-
_createRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME());
|
43
|
-
}
|
44
|
-
|
45
|
-
function createRole(
|
46
|
-
string memory roleName
|
47
|
-
) public override onlyAccessOwner returns (RoleId role) {
|
48
|
-
role = RoleIdLib.toRoleId(roleName);
|
49
|
-
require(
|
50
|
-
!roleExists(role),
|
51
|
-
"ERROR:ACS-010:ROLE_ALREADY_EXISTS");
|
52
|
-
|
53
|
-
_createRole(role, roleName);
|
54
|
-
}
|
55
|
-
|
56
|
-
function setRoleState(RoleId role, bool active) external override onlyExistingRole(role) onlyAccessOwner {
|
57
|
-
RoleInfo memory info = _info[role];
|
58
|
-
info.isActive = active;
|
59
|
-
_setRoleInfo(info);
|
60
|
-
|
61
|
-
emit LogAccessRoleStateSet(role, active);
|
62
|
-
}
|
63
|
-
|
64
|
-
function grantRole(
|
65
|
-
RoleId role,
|
66
|
-
address member
|
67
|
-
) external override onlyExistingRole(role) onlyAccessOwner {
|
68
|
-
require(_info[role].isActive, "ERROR:ACS-040:ROLE_NOT_ACTIVE");
|
69
|
-
|
70
|
-
_isRoleMember[role][member] = true;
|
71
|
-
_roleMembers[role].add(member);
|
72
|
-
|
73
|
-
emit LogAccessRoleGranted(role, member, _isRoleMember[role][member]);
|
74
|
-
}
|
75
|
-
|
76
|
-
function revokeRole(
|
77
|
-
RoleId role,
|
78
|
-
address member
|
79
|
-
) external override onlyExistingRole(role) onlyAccessOwner {
|
80
|
-
delete _isRoleMember[role][member];
|
81
|
-
_roleMembers[role].remove(member);
|
82
|
-
|
83
|
-
emit LogAccessRoleGranted(role, member, false);
|
84
|
-
}
|
85
|
-
|
86
|
-
function roleExists(RoleId role) public view virtual override returns (bool) {
|
87
|
-
return _info[role].id == role;
|
88
|
-
}
|
89
|
-
|
90
|
-
function hasRole(
|
91
|
-
RoleId role,
|
92
|
-
address member
|
93
|
-
) public view virtual override returns (bool) {
|
94
|
-
return _isRoleMember[role][member];
|
95
|
-
}
|
96
|
-
|
97
|
-
function getRoleId(string memory roleName) external pure override returns (RoleId role) {
|
98
|
-
return RoleIdLib.toRoleId(roleName);
|
99
|
-
}
|
100
|
-
|
101
|
-
function getRoleInfo(
|
102
|
-
RoleId role
|
103
|
-
) external view override returns (RoleInfo memory info) {
|
104
|
-
return _info[role];
|
105
|
-
}
|
106
|
-
|
107
|
-
function getRole(
|
108
|
-
uint256 idx
|
109
|
-
) external view override returns (RoleId role) {
|
110
|
-
return _roles[idx];
|
111
|
-
}
|
112
|
-
|
113
|
-
function getRoleCount() external view override returns (uint256 roles) {
|
114
|
-
return _roles.length;
|
115
|
-
}
|
116
|
-
|
117
|
-
function getRoleMemberCount(
|
118
|
-
RoleId role
|
119
|
-
) public view override returns (uint256 roleMembers) {
|
120
|
-
return _roleMembers[role].length();
|
121
|
-
}
|
122
|
-
|
123
|
-
function getRoleMember(
|
124
|
-
RoleId role,
|
125
|
-
uint256 idx
|
126
|
-
) public view override returns (address roleMembers) {
|
127
|
-
return _roleMembers[role].at(idx);
|
128
|
-
}
|
129
|
-
|
130
|
-
function _createRole(
|
131
|
-
RoleId role,
|
132
|
-
string memory roleName
|
133
|
-
) internal {
|
134
|
-
RoleInfo memory info = RoleInfo(role, roleName, true);
|
135
|
-
_setRoleInfo(info);
|
136
|
-
|
137
|
-
emit LogAccessRoleCreated(role, roleName);
|
138
|
-
}
|
139
|
-
|
140
|
-
function _setRoleInfo(
|
141
|
-
RoleInfo memory info
|
142
|
-
) internal {
|
143
|
-
RoleId role = info.id;
|
144
|
-
_info[role] = info;
|
145
|
-
if(!roleExists(role)) {
|
146
|
-
_roles.push(role);
|
147
|
-
}
|
148
|
-
}
|
149
|
-
}
|
@@ -1,53 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {RoleId} from "../../../types/RoleId.sol";
|
5
|
-
|
6
|
-
interface IAccess {
|
7
|
-
struct RoleInfo {
|
8
|
-
RoleId id;
|
9
|
-
string name;
|
10
|
-
bool isActive;
|
11
|
-
}
|
12
|
-
}
|
13
|
-
|
14
|
-
interface IAccessModule is
|
15
|
-
IAccess
|
16
|
-
{
|
17
|
-
event LogAccessRoleCreated(RoleId role, string roleName);
|
18
|
-
event LogAccessRoleStateSet(RoleId role, bool active);
|
19
|
-
event LogAccessRoleGranted(RoleId role, address member, bool isMember);
|
20
|
-
|
21
|
-
function createRole(string memory roleName) external returns (RoleId role);
|
22
|
-
|
23
|
-
function setRoleState(RoleId role, bool active) external;
|
24
|
-
|
25
|
-
function grantRole(RoleId role, address member) external;
|
26
|
-
|
27
|
-
function revokeRole(RoleId role, address member) external;
|
28
|
-
|
29
|
-
function roleExists(RoleId role) external view returns (bool);
|
30
|
-
|
31
|
-
function hasRole(RoleId role, address member) external view returns (bool);
|
32
|
-
|
33
|
-
function getRoleCount() external view returns (uint256 roles);
|
34
|
-
|
35
|
-
function getRole(uint256 idx) external view returns (RoleId role);
|
36
|
-
|
37
|
-
function getRoleId(string memory roleName) external pure returns (RoleId role);
|
38
|
-
|
39
|
-
function getRoleInfo(
|
40
|
-
RoleId role
|
41
|
-
) external view returns (RoleInfo memory info);
|
42
|
-
|
43
|
-
function getRoleMemberCount(
|
44
|
-
RoleId role
|
45
|
-
) external view returns (uint256 roleMembers);
|
46
|
-
|
47
|
-
function getRoleMember(
|
48
|
-
RoleId role,
|
49
|
-
uint256 idx
|
50
|
-
) external view returns (address roleMember);
|
51
|
-
|
52
|
-
function getOwner() external view returns (address owner);
|
53
|
-
}
|
@@ -1,136 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
|
6
|
-
import {IProductService} from "../../service/IProductService.sol";
|
7
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
8
|
-
|
9
|
-
import {NftId} from "../../../types/NftId.sol";
|
10
|
-
import {Key32, KeyId} from "../../../types/Key32.sol";
|
11
|
-
import {LibNftIdSet} from "../../../types/NftIdSet.sol";
|
12
|
-
import {ObjectType, PRODUCT, ORACLE, POOL, BUNDLE, POLICY} from "../../../types/ObjectType.sol";
|
13
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, REVOKED, DECLINED} from "../../../types/StateId.sol";
|
14
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
|
15
|
-
import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
|
16
|
-
|
17
|
-
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
18
|
-
import {ModuleBase} from "../../base/ModuleBase.sol";
|
19
|
-
|
20
|
-
import {IBundleModule} from "./IBundle.sol";
|
21
|
-
|
22
|
-
abstract contract BundleModule is
|
23
|
-
ModuleBase,
|
24
|
-
IBundleModule
|
25
|
-
{
|
26
|
-
|
27
|
-
using LibNftIdSet for LibNftIdSet.Set;
|
28
|
-
|
29
|
-
mapping(NftId bundleNftId => LibNftIdSet.Set policies) private _collateralizedPolicies;
|
30
|
-
mapping(NftId bundleNftId => mapping(NftId policyNftId => uint256 amount)) private _collateralizationAmount;
|
31
|
-
|
32
|
-
modifier onlyBundlePoolService() {
|
33
|
-
require(
|
34
|
-
msg.sender == address(this.getPoolService()),
|
35
|
-
"ERROR:BDL-001:NOT_POOL_SERVICE"
|
36
|
-
);
|
37
|
-
_;
|
38
|
-
}
|
39
|
-
|
40
|
-
modifier onlyBundleProductService() {
|
41
|
-
require(
|
42
|
-
msg.sender == address(this.getProductService()),
|
43
|
-
"ERROR:BDL-002:NOT_PRODUCT_SERVICE"
|
44
|
-
);
|
45
|
-
_;
|
46
|
-
}
|
47
|
-
|
48
|
-
modifier onlyPoolOrProductService() {
|
49
|
-
require(
|
50
|
-
msg.sender == address(this.getPoolService())
|
51
|
-
|| msg.sender == address(this.getProductService()),
|
52
|
-
"ERROR:BDL-003:NOT_POOL_OR_PRODUCT_SERVICE"
|
53
|
-
);
|
54
|
-
_;
|
55
|
-
}
|
56
|
-
|
57
|
-
function initializeBundleModule(IKeyValueStore keyValueStore) internal {
|
58
|
-
_initialize(keyValueStore, BUNDLE());
|
59
|
-
}
|
60
|
-
|
61
|
-
function createBundleInfo(
|
62
|
-
NftId bundleNftId,
|
63
|
-
NftId poolNftId,
|
64
|
-
uint256 amount,
|
65
|
-
uint256 lifetime,
|
66
|
-
bytes calldata filter
|
67
|
-
)
|
68
|
-
external
|
69
|
-
onlyBundlePoolService
|
70
|
-
override
|
71
|
-
{
|
72
|
-
BundleInfo memory bundleInfo = BundleInfo(
|
73
|
-
bundleNftId,
|
74
|
-
poolNftId,
|
75
|
-
filter,
|
76
|
-
amount, // capital
|
77
|
-
0, // locked capital
|
78
|
-
amount, // balance
|
79
|
-
blockTimestamp().addSeconds(lifetime), // expiredAt
|
80
|
-
zeroTimestamp() // closedAt
|
81
|
-
);
|
82
|
-
|
83
|
-
_create(bundleNftId, abi.encode(bundleInfo));
|
84
|
-
}
|
85
|
-
|
86
|
-
function setBundleInfo(BundleInfo memory bundleInfo)
|
87
|
-
external
|
88
|
-
override
|
89
|
-
onlyPoolOrProductService
|
90
|
-
{
|
91
|
-
_updateData(bundleInfo.nftId, abi.encode(bundleInfo));
|
92
|
-
}
|
93
|
-
|
94
|
-
function updateBundleState(NftId bundleNftId, StateId state)
|
95
|
-
external
|
96
|
-
override
|
97
|
-
onlyBundlePoolService
|
98
|
-
{
|
99
|
-
_updateState(bundleNftId, state);
|
100
|
-
}
|
101
|
-
|
102
|
-
function collateralizePolicy(
|
103
|
-
NftId bundleNftId,
|
104
|
-
NftId policyNftId,
|
105
|
-
uint256 collateralAmount
|
106
|
-
)
|
107
|
-
external
|
108
|
-
onlyBundleProductService
|
109
|
-
override
|
110
|
-
{
|
111
|
-
_collateralizationAmount[bundleNftId][policyNftId] = collateralAmount;
|
112
|
-
_collateralizedPolicies[bundleNftId].add(policyNftId);
|
113
|
-
}
|
114
|
-
|
115
|
-
function releasePolicy(
|
116
|
-
NftId bundleNftId,
|
117
|
-
NftId policyNftId
|
118
|
-
)
|
119
|
-
external
|
120
|
-
onlyBundleProductService
|
121
|
-
override
|
122
|
-
returns(uint256 collateralAmount)
|
123
|
-
{
|
124
|
-
collateralAmount = _collateralizationAmount[bundleNftId][policyNftId];
|
125
|
-
delete _collateralizationAmount[bundleNftId][policyNftId];
|
126
|
-
_collateralizedPolicies[bundleNftId].remove(policyNftId);
|
127
|
-
}
|
128
|
-
|
129
|
-
function getBundleInfo(NftId bundleNftId) external view override returns(BundleInfo memory bundleInfo) {
|
130
|
-
return abi.decode(_getData(bundleNftId), (BundleInfo));
|
131
|
-
}
|
132
|
-
|
133
|
-
function toBundleKey32(NftId bundleNftId) external view override returns (Key32 key32) {
|
134
|
-
return _toKey32(bundleNftId);
|
135
|
-
}
|
136
|
-
}
|
@@ -1,58 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../../IInstance.sol";
|
6
|
-
import {Key32} from "../../../types/Key32.sol";
|
7
|
-
import {NftId} from "../../../types/NftId.sol";
|
8
|
-
import {StateId} from "../../../types/StateId.sol";
|
9
|
-
import {Timestamp} from "../../../types/Timestamp.sol";
|
10
|
-
import {Blocknumber} from "../../../types/Blocknumber.sol";
|
11
|
-
|
12
|
-
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
13
|
-
import {IProductService} from "../../service/IProductService.sol";
|
14
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
15
|
-
|
16
|
-
interface IBundle {
|
17
|
-
|
18
|
-
struct BundleInfo {
|
19
|
-
NftId nftId;
|
20
|
-
NftId poolNftId;
|
21
|
-
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
22
|
-
uint256 capitalAmount; // net investment capital amount (<= balance)
|
23
|
-
uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
|
24
|
-
uint256 balanceAmount; // total amount of funds: net investment capital + net premiums - payouts
|
25
|
-
Timestamp expiredAt; // no new policies
|
26
|
-
Timestamp closedAt;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
interface IBundleModule is IBundle {
|
31
|
-
|
32
|
-
function createBundleInfo(
|
33
|
-
NftId bundleNftId,
|
34
|
-
NftId poolNftId,
|
35
|
-
uint256 amount,
|
36
|
-
uint256 lifetime,
|
37
|
-
bytes calldata filter
|
38
|
-
) external;
|
39
|
-
|
40
|
-
function setBundleInfo(BundleInfo memory bundleInfo) external;
|
41
|
-
function updateBundleState(NftId bundleNftId, StateId state) external;
|
42
|
-
|
43
|
-
function collateralizePolicy(NftId bundleNftId, NftId policyNftId, uint256 amount) external;
|
44
|
-
function releasePolicy(NftId bundleNftId, NftId policyNftId) external returns(uint256 collateralAmount);
|
45
|
-
|
46
|
-
function getBundleInfo(NftId bundleNftId) external view returns(BundleInfo memory bundleInfo);
|
47
|
-
function toBundleKey32(NftId bundleNftId) external view returns (Key32 key32);
|
48
|
-
|
49
|
-
// repeat registry linked signature
|
50
|
-
function getRegistry() external view returns (IRegistry registry);
|
51
|
-
|
52
|
-
// repeat instance base signature
|
53
|
-
function getKeyValueStore() external view returns (IKeyValueStore keyValueStore);
|
54
|
-
|
55
|
-
// repeat service linked signatures to avoid linearization issues
|
56
|
-
function getProductService() external returns(IProductService);
|
57
|
-
function getPoolService() external returns(IPoolService);
|
58
|
-
}
|
@@ -1,95 +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 {IComponent, IComponentModule} from "./IComponent.sol";
|
10
|
-
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
11
|
-
import {ObjectType, PRODUCT, ORACLE, POOL} from "../../../types/ObjectType.sol";
|
12
|
-
import {StateId, ACTIVE, PAUSED} from "../../../types/StateId.sol";
|
13
|
-
import {NftId, NftIdLib, zeroNftId} from "../../../types/NftId.sol";
|
14
|
-
import {Fee} from "../../../types/Fee.sol";
|
15
|
-
|
16
|
-
abstract contract ComponentModule is
|
17
|
-
IComponentModule
|
18
|
-
{
|
19
|
-
using NftIdLib for NftId;
|
20
|
-
|
21
|
-
mapping(NftId nftId => ComponentInfo info) private _componentInfo;
|
22
|
-
NftId[] private _nftIds;
|
23
|
-
|
24
|
-
mapping(ObjectType cType => bytes32 role) private _componentOwnerRole;
|
25
|
-
|
26
|
-
modifier onlyComponentOwnerService() {
|
27
|
-
require(
|
28
|
-
msg.sender == address(this.getComponentOwnerService()),
|
29
|
-
"ERROR:CMP-001:NOT_OWNER_SERVICE"
|
30
|
-
);
|
31
|
-
_;
|
32
|
-
}
|
33
|
-
|
34
|
-
function registerComponent(
|
35
|
-
NftId nftId,
|
36
|
-
ObjectType objectType,
|
37
|
-
IERC20Metadata token
|
38
|
-
) external override onlyComponentOwnerService {
|
39
|
-
|
40
|
-
// create component info
|
41
|
-
_componentInfo[nftId] = ComponentInfo(
|
42
|
-
nftId,
|
43
|
-
// _lifecycleModule.getInitialState(objectType),
|
44
|
-
ACTIVE(),
|
45
|
-
token
|
46
|
-
);
|
47
|
-
|
48
|
-
_nftIds.push(nftId);
|
49
|
-
|
50
|
-
// TODO add logging
|
51
|
-
}
|
52
|
-
|
53
|
-
function setComponentInfo(
|
54
|
-
ComponentInfo memory info
|
55
|
-
) external onlyComponentOwnerService returns (NftId nftId) {
|
56
|
-
nftId = info.nftId;
|
57
|
-
require(
|
58
|
-
nftId.gtz() && _componentInfo[nftId].nftId.eq(nftId),
|
59
|
-
"ERROR:CMP-006:COMPONENT_UNKNOWN"
|
60
|
-
);
|
61
|
-
|
62
|
-
// TODO decide if state changes should have explicit functions and not
|
63
|
-
// just a generic setXYZInfo and implicit state transitions
|
64
|
-
// when in doubt go for the explicit approach ...
|
65
|
-
// ObjectType objectType = this.getRegistry().getObjectInfo(nftId).objectType;
|
66
|
-
// _lifecycleModule.checkAndLogTransition(
|
67
|
-
// nftId,
|
68
|
-
// objectType,
|
69
|
-
// _componentInfo[nftId].state,
|
70
|
-
// info.state
|
71
|
-
// );
|
72
|
-
_componentInfo[nftId] = info;
|
73
|
-
}
|
74
|
-
|
75
|
-
function getComponentCount()
|
76
|
-
external
|
77
|
-
view
|
78
|
-
override
|
79
|
-
returns (uint256 numberOfCompnents)
|
80
|
-
{
|
81
|
-
return _nftIds.length;
|
82
|
-
}
|
83
|
-
|
84
|
-
function getComponentId(
|
85
|
-
uint256 idx
|
86
|
-
) external view override returns (NftId componentNftId) {
|
87
|
-
return _nftIds[idx];
|
88
|
-
}
|
89
|
-
|
90
|
-
function getComponentInfo(
|
91
|
-
NftId nftId
|
92
|
-
) external view override returns (ComponentInfo memory) {
|
93
|
-
return _componentInfo[nftId];
|
94
|
-
}
|
95
|
-
}
|
@@ -1,53 +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
|
-
|
7
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
8
|
-
import {IInstance} from "../../IInstance.sol";
|
9
|
-
import {StateId} from "../../../types/StateId.sol";
|
10
|
-
import {NftId} from "../../../types/NftId.sol";
|
11
|
-
import {ObjectType} from "../../../types/ObjectType.sol";
|
12
|
-
import {RoleId} from "../../../types/RoleId.sol";
|
13
|
-
import {Fee} from "../../../types/Fee.sol";
|
14
|
-
import {UFixed} from "../../../types/UFixed.sol";
|
15
|
-
|
16
|
-
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
17
|
-
// import {IComponentBase} from "../../../components/IComponentBase.sol";
|
18
|
-
|
19
|
-
interface IComponent {
|
20
|
-
// component dynamic info (static info kept in registry)
|
21
|
-
struct ComponentInfo {
|
22
|
-
NftId nftId;
|
23
|
-
StateId state;
|
24
|
-
IERC20Metadata token;
|
25
|
-
}
|
26
|
-
}
|
27
|
-
|
28
|
-
interface IComponentModule is IComponent {
|
29
|
-
function getRegistry() external view returns (IRegistry registry);
|
30
|
-
|
31
|
-
function registerComponent(
|
32
|
-
NftId nftId,
|
33
|
-
ObjectType objectType,
|
34
|
-
IERC20Metadata token
|
35
|
-
) external;
|
36
|
-
|
37
|
-
function setComponentInfo(
|
38
|
-
ComponentInfo memory info
|
39
|
-
) external returns (NftId componentNftId);
|
40
|
-
|
41
|
-
function getComponentInfo(
|
42
|
-
NftId nftId
|
43
|
-
) external view returns (ComponentInfo memory info);
|
44
|
-
|
45
|
-
function getComponentCount() external view returns (uint256 numberOfCompnents);
|
46
|
-
|
47
|
-
function getComponentId(uint256 idx) external view returns (NftId nftId);
|
48
|
-
|
49
|
-
// repeat service linked signaturea to avoid linearization issues
|
50
|
-
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
51
|
-
|
52
|
-
function hasRole(RoleId role, address member) external view returns (bool);
|
53
|
-
}
|
@@ -1,60 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../../IInstance.sol";
|
6
|
-
import {IProductService} from "../../service/IProductService.sol";
|
7
|
-
import {NftId} from "../../../types/NftId.sol";
|
8
|
-
import {StateId} from "../../../types/StateId.sol";
|
9
|
-
import {Timestamp} from "../../../types/Timestamp.sol";
|
10
|
-
import {Blocknumber} from "../../../types/Blocknumber.sol";
|
11
|
-
|
12
|
-
// TODO check if there is value to introuce IContract and let IPolicy derive from IContract
|
13
|
-
interface IPolicy {
|
14
|
-
struct PolicyInfo {
|
15
|
-
NftId nftId;
|
16
|
-
NftId productNftId;
|
17
|
-
NftId bundleNftId;
|
18
|
-
address beneficiary;
|
19
|
-
StateId state; // applied, withdrawn, rejected, active, closed
|
20
|
-
uint256 sumInsuredAmount;
|
21
|
-
uint256 premiumAmount;
|
22
|
-
uint256 premiumPaidAmount;
|
23
|
-
uint256 lifetime;
|
24
|
-
bytes data;
|
25
|
-
Timestamp createdAt;
|
26
|
-
Timestamp activatedAt; // time of underwriting
|
27
|
-
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
28
|
-
Timestamp closedAt; // no locked capital
|
29
|
-
Blocknumber updatedIn; // write log entries in a way to support backtracking of all state changes
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
interface IPolicyModule is IPolicy {
|
34
|
-
function createApplication(
|
35
|
-
NftId productNftId,
|
36
|
-
NftId policyNftId,
|
37
|
-
uint256 sumInsuredAmount,
|
38
|
-
uint256 premiumAmount,
|
39
|
-
uint256 lifetime,
|
40
|
-
NftId bundleNftId
|
41
|
-
) external;
|
42
|
-
|
43
|
-
function setPolicyInfo(PolicyInfo memory policyInfo) external;
|
44
|
-
|
45
|
-
// function underwrite(NftId nftId) external;
|
46
|
-
|
47
|
-
// function processPremium(NftId nftId, uint256 amount) external;
|
48
|
-
|
49
|
-
// function activate(NftId nftId, Timestamp activateAt) external;
|
50
|
-
|
51
|
-
function getPolicyInfo(
|
52
|
-
NftId nftId
|
53
|
-
) external view returns (PolicyInfo memory info);
|
54
|
-
|
55
|
-
// repeat registry linked signature
|
56
|
-
function getRegistry() external view returns (IRegistry registry);
|
57
|
-
|
58
|
-
// repeat service linked signature to avoid linearization issues
|
59
|
-
function getProductService() external returns(IProductService);
|
60
|
-
}
|