@etherisc/gif-next 0.0.2-f824182-503 → 0.0.2-f8e07c7-917
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 +374 -19
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1524 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1210 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +919 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +293 -1120
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +445 -1266
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IRisk.sol/IRisk.json} +2 -2
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +978 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1288 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +400 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +748 -26
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1068 -66
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1640 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +977 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/ILifecycle.sol/ILifecycle.json} +37 -51
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/Lifecycle.sol/Lifecycle.json} +19 -68
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +46 -0
- package/contracts/distribution/Distribution.sol +284 -0
- package/contracts/distribution/DistributionService.sol +288 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +47 -0
- package/contracts/distribution/IDistributionService.sol +85 -0
- package/contracts/instance/BundleSet.sol +126 -0
- package/contracts/instance/IInstance.sol +83 -22
- package/contracts/instance/IInstanceService.sol +92 -0
- package/contracts/instance/Instance.sol +235 -53
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +405 -0
- package/contracts/instance/InstanceService.sol +443 -0
- package/contracts/instance/InstanceServiceManager.sol +40 -0
- package/contracts/instance/InstanceStore.sol +276 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectSet.sol +79 -0
- package/contracts/instance/module/IAccess.sol +46 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IComponents.sol +51 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +84 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +170 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +52 -0
- package/contracts/pool/BundleService.sol +284 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +51 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +311 -0
- package/contracts/pool/PoolService.sol +436 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +392 -0
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +144 -62
- package/contracts/registry/IRegistry.sol +112 -45
- package/contracts/registry/IRegistryService.sol +69 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +521 -127
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +252 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/shared/Component.sol +274 -0
- package/contracts/shared/ComponentService.sol +622 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +27 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/shared/IKeyValueStore.sol +54 -0
- package/contracts/shared/ILifecycle.sol +29 -0
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +15 -0
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +25 -0
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +107 -0
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/Registerable.sol +75 -0
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +82 -0
- package/contracts/shared/TokenHandler.sol +58 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +514 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +58 -0
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/type/Key32.sol +50 -0
- package/contracts/type/NftId.sol +78 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +89 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +43 -0
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +50 -6
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +41 -7
- package/contracts/type/UFixed.sol +332 -0
- package/contracts/type/Version.sol +110 -0
- package/contracts/upgradeability/IVersionable.sol +53 -0
- package/contracts/upgradeability/ProxyManager.sol +198 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +19 -7
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/Component.json +0 -205
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -346
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
- 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/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
- package/contracts/components/Component.sol +0 -77
- package/contracts/components/IPool.sol +0 -15
- package/contracts/components/IProduct.sol +0 -16
- package/contracts/components/Pool.sol +0 -52
- package/contracts/components/Product.sol +0 -89
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/access/Access.sol +0 -165
- package/contracts/instance/access/IAccess.sol +0 -63
- package/contracts/instance/component/ComponentModule.sol +0 -274
- package/contracts/instance/component/IComponent.sol +0 -74
- package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
- package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
- package/contracts/instance/policy/IPolicy.sol +0 -50
- package/contracts/instance/policy/PolicyModule.sol +0 -114
- package/contracts/instance/pool/IPoolModule.sol +0 -23
- package/contracts/instance/pool/PoolModule.sol +0 -81
- package/contracts/instance/product/IProductService.sol +0 -36
- package/contracts/instance/product/ProductService.sol +0 -136
- package/contracts/instance/treasury/ITreasury.sol +0 -91
- package/contracts/instance/treasury/TokenHandler.sol +0 -24
- package/contracts/instance/treasury/TreasuryModule.sol +0 -168
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -32
- package/contracts/types/NftId.sol +0 -51
- package/contracts/types/ObjectType.sol +0 -107
- package/contracts/types/UFixed.sol +0 -206
@@ -0,0 +1,436 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IBundleService} from "./IBundleService.sol";
|
5
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
7
|
+
import {IInstance} from "../instance/IInstance.sol";
|
8
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
9
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
import {IPoolService} from "./IPoolService.sol";
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
13
|
+
import {IStaking} from "../staking/IStaking.sol";
|
14
|
+
|
15
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
|
+
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
|
19
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
20
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
22
|
+
import {Seconds} from "../type/Seconds.sol";
|
23
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
24
|
+
import {UFixed} from "../type/UFixed.sol";
|
25
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
26
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
27
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
28
|
+
|
29
|
+
string constant POOL_SERVICE_NAME = "PoolService";
|
30
|
+
|
31
|
+
contract PoolService is
|
32
|
+
ComponentVerifyingService,
|
33
|
+
IPoolService
|
34
|
+
{
|
35
|
+
using NftIdLib for NftId;
|
36
|
+
using AmountLib for Amount;
|
37
|
+
|
38
|
+
IBundleService internal _bundleService;
|
39
|
+
IComponentService internal _componentService;
|
40
|
+
IInstanceService private _instanceService;
|
41
|
+
IRegistryService private _registryService;
|
42
|
+
|
43
|
+
IStaking private _staking;
|
44
|
+
|
45
|
+
function _initialize(
|
46
|
+
address owner,
|
47
|
+
bytes memory data
|
48
|
+
)
|
49
|
+
internal
|
50
|
+
initializer
|
51
|
+
virtual override
|
52
|
+
{
|
53
|
+
(
|
54
|
+
address registryAddress,,
|
55
|
+
//address managerAddress
|
56
|
+
address authority
|
57
|
+
) = abi.decode(data, (address, address, address));
|
58
|
+
|
59
|
+
initializeService(registryAddress, authority, owner);
|
60
|
+
|
61
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
62
|
+
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
63
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
64
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
65
|
+
|
66
|
+
_staking = IStaking(getRegistry().getStakingAddress());
|
67
|
+
|
68
|
+
registerInterface(type(IPoolService).interfaceId);
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount)
|
73
|
+
external
|
74
|
+
virtual
|
75
|
+
{
|
76
|
+
/*
|
77
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
78
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
79
|
+
|
80
|
+
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
81
|
+
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
82
|
+
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
83
|
+
|
84
|
+
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
85
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
86
|
+
|
87
|
+
emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
|
88
|
+
*/
|
89
|
+
}
|
90
|
+
|
91
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
92
|
+
external
|
93
|
+
virtual
|
94
|
+
{
|
95
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
96
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
97
|
+
|
98
|
+
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
99
|
+
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
100
|
+
|
101
|
+
// bundle owner role may only be set once per pool
|
102
|
+
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
103
|
+
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
104
|
+
}
|
105
|
+
|
106
|
+
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
107
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
108
|
+
|
109
|
+
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
110
|
+
}
|
111
|
+
|
112
|
+
|
113
|
+
function setFees(
|
114
|
+
Fee memory poolFee,
|
115
|
+
Fee memory stakingFee,
|
116
|
+
Fee memory performanceFee
|
117
|
+
)
|
118
|
+
external
|
119
|
+
virtual
|
120
|
+
{
|
121
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
122
|
+
|
123
|
+
IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
|
124
|
+
poolInfo.poolFee = poolFee;
|
125
|
+
poolInfo.stakingFee = stakingFee;
|
126
|
+
poolInfo.performanceFee = performanceFee;
|
127
|
+
|
128
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
129
|
+
|
130
|
+
// TODO add logging
|
131
|
+
}
|
132
|
+
|
133
|
+
function createBundle(
|
134
|
+
address bundleOwner, // initial bundle owner
|
135
|
+
Fee memory fee, // fees deducted from premium that go to bundle owner
|
136
|
+
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
137
|
+
Seconds lifetime, // initial duration for which new policies are covered
|
138
|
+
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
139
|
+
)
|
140
|
+
external
|
141
|
+
virtual
|
142
|
+
returns(NftId bundleNftId)
|
143
|
+
{
|
144
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
145
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
146
|
+
|
147
|
+
(
|
148
|
+
Amount stakingFeeAmount,
|
149
|
+
Amount stakingNetAmount
|
150
|
+
) = FeeLib.calculateFee(
|
151
|
+
_getStakingFee(instanceReader, poolNftId),
|
152
|
+
stakingAmount);
|
153
|
+
|
154
|
+
bundleNftId = _bundleService.create(
|
155
|
+
instance,
|
156
|
+
poolNftId,
|
157
|
+
bundleOwner,
|
158
|
+
fee,
|
159
|
+
stakingNetAmount,
|
160
|
+
lifetime,
|
161
|
+
filter);
|
162
|
+
|
163
|
+
// pool book keeping
|
164
|
+
_componentService.increasePoolBalance(
|
165
|
+
instance.getInstanceStore(),
|
166
|
+
poolNftId,
|
167
|
+
stakingAmount,
|
168
|
+
stakingFeeAmount);
|
169
|
+
|
170
|
+
// pool bookkeeping and collect tokens from bundle owner
|
171
|
+
_collectStakingAmount(
|
172
|
+
instanceReader,
|
173
|
+
poolNftId,
|
174
|
+
bundleOwner,
|
175
|
+
stakingAmount);
|
176
|
+
|
177
|
+
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
178
|
+
}
|
179
|
+
|
180
|
+
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
181
|
+
internal
|
182
|
+
virtual
|
183
|
+
view
|
184
|
+
returns (Fee memory stakingFee)
|
185
|
+
{
|
186
|
+
NftId productNftId = instanceReader.getPoolInfo(poolNftId).productNftId;
|
187
|
+
return instanceReader.getPoolInfo(productNftId).stakingFee;
|
188
|
+
}
|
189
|
+
|
190
|
+
function closeBundle(NftId bundleNftId)
|
191
|
+
external
|
192
|
+
virtual
|
193
|
+
{
|
194
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
195
|
+
|
196
|
+
// TODO book keeping for pool collateral released outside of retention level
|
197
|
+
|
198
|
+
// releasing collateral in bundle
|
199
|
+
_bundleService.close(instance, bundleNftId);
|
200
|
+
|
201
|
+
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
202
|
+
|
203
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
function processSale(
|
208
|
+
NftId bundleNftId,
|
209
|
+
IPolicy.Premium memory premium
|
210
|
+
)
|
211
|
+
external
|
212
|
+
virtual
|
213
|
+
restricted()
|
214
|
+
{
|
215
|
+
IRegistry registry = getRegistry();
|
216
|
+
IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
|
217
|
+
IRegistry.ObjectInfo memory poolObjectInfo = registry.getObjectInfo(bundleObjectInfo.parentNftId);
|
218
|
+
IRegistry.ObjectInfo memory instanceObjectInfo = registry.getObjectInfo(poolObjectInfo.parentNftId);
|
219
|
+
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
220
|
+
|
221
|
+
Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
|
222
|
+
Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
223
|
+
Amount bundleNetAmount = AmountLib.toAmount(premium.netPremiumAmount);
|
224
|
+
|
225
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
226
|
+
_componentService.increasePoolBalance(
|
227
|
+
instanceStore,
|
228
|
+
poolObjectInfo.nftId,
|
229
|
+
bundleNetAmount + bundleFeeAmount,
|
230
|
+
poolFeeAmount);
|
231
|
+
|
232
|
+
_componentService.increaseBundleBalance(
|
233
|
+
instanceStore,
|
234
|
+
bundleObjectInfo.nftId,
|
235
|
+
bundleNetAmount,
|
236
|
+
bundleFeeAmount);
|
237
|
+
}
|
238
|
+
|
239
|
+
|
240
|
+
function lockCollateral(
|
241
|
+
IInstance instance,
|
242
|
+
address token,
|
243
|
+
NftId productNftId,
|
244
|
+
NftId applicationNftId,
|
245
|
+
NftId bundleNftId,
|
246
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
247
|
+
)
|
248
|
+
external
|
249
|
+
virtual
|
250
|
+
restricted()
|
251
|
+
returns (
|
252
|
+
Amount localCollateralAmount,
|
253
|
+
Amount totalCollateralAmount
|
254
|
+
)
|
255
|
+
{
|
256
|
+
(
|
257
|
+
localCollateralAmount,
|
258
|
+
totalCollateralAmount
|
259
|
+
) = calculateRequiredCollateral(
|
260
|
+
instance.getInstanceReader(),
|
261
|
+
productNftId,
|
262
|
+
sumInsuredAmount);
|
263
|
+
|
264
|
+
// lock collateral amount from involved bundle
|
265
|
+
_bundleService.lockCollateral(
|
266
|
+
instance,
|
267
|
+
applicationNftId,
|
268
|
+
bundleNftId,
|
269
|
+
localCollateralAmount);
|
270
|
+
|
271
|
+
// update value locked with staking service
|
272
|
+
_staking.increaseTotalValueLocked(
|
273
|
+
instance.getNftId(),
|
274
|
+
token,
|
275
|
+
totalCollateralAmount);
|
276
|
+
|
277
|
+
// hierarhical riskpool setup
|
278
|
+
// TODO loop in with pool component to guarantee availability of external capital
|
279
|
+
if(totalCollateralAmount > localCollateralAmount) {
|
280
|
+
|
281
|
+
}
|
282
|
+
}
|
283
|
+
|
284
|
+
|
285
|
+
function reduceCollateral(
|
286
|
+
IInstance instance,
|
287
|
+
address token,
|
288
|
+
NftId policyNftId,
|
289
|
+
IPolicy.PolicyInfo memory policyInfo,
|
290
|
+
Amount payoutAmount
|
291
|
+
)
|
292
|
+
external
|
293
|
+
virtual
|
294
|
+
restricted()
|
295
|
+
{
|
296
|
+
_bundleService.releaseCollateral(
|
297
|
+
instance,
|
298
|
+
policyNftId,
|
299
|
+
policyInfo.bundleNftId,
|
300
|
+
payoutAmount);
|
301
|
+
|
302
|
+
// update value locked with staking service
|
303
|
+
_staking.decreaseTotalValueLocked(
|
304
|
+
instance.getNftId(),
|
305
|
+
token,
|
306
|
+
payoutAmount);
|
307
|
+
}
|
308
|
+
|
309
|
+
|
310
|
+
/// @dev releases the remaining collateral linked to the specified policy
|
311
|
+
/// may only be called by the policy service for unlocked pool components
|
312
|
+
function releaseCollateral(
|
313
|
+
IInstance instance,
|
314
|
+
address token,
|
315
|
+
NftId policyNftId,
|
316
|
+
IPolicy.PolicyInfo memory policyInfo
|
317
|
+
)
|
318
|
+
external
|
319
|
+
virtual
|
320
|
+
restricted()
|
321
|
+
{
|
322
|
+
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
323
|
+
|
324
|
+
_bundleService.releaseCollateral(
|
325
|
+
instance,
|
326
|
+
policyNftId,
|
327
|
+
policyInfo.bundleNftId,
|
328
|
+
remainingCollateralAmount);
|
329
|
+
|
330
|
+
_bundleService.unlinkPolicy(
|
331
|
+
instance,
|
332
|
+
policyNftId);
|
333
|
+
|
334
|
+
// update value locked with staking service
|
335
|
+
_staking.decreaseTotalValueLocked(
|
336
|
+
instance.getNftId(),
|
337
|
+
token,
|
338
|
+
remainingCollateralAmount);
|
339
|
+
}
|
340
|
+
|
341
|
+
|
342
|
+
function calculateRequiredCollateral(
|
343
|
+
InstanceReader instanceReader,
|
344
|
+
NftId productNftId,
|
345
|
+
Amount sumInsuredAmount
|
346
|
+
)
|
347
|
+
public
|
348
|
+
view
|
349
|
+
returns(
|
350
|
+
Amount localCollateralAmount,
|
351
|
+
Amount totalCollateralAmount
|
352
|
+
)
|
353
|
+
{
|
354
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
355
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
356
|
+
|
357
|
+
(
|
358
|
+
localCollateralAmount,
|
359
|
+
totalCollateralAmount
|
360
|
+
) = calculateRequiredCollateral(
|
361
|
+
poolInfo.collateralizationLevel,
|
362
|
+
poolInfo.retentionLevel,
|
363
|
+
sumInsuredAmount);
|
364
|
+
}
|
365
|
+
|
366
|
+
|
367
|
+
function calculateRequiredCollateral(
|
368
|
+
UFixed collateralizationLevel,
|
369
|
+
UFixed retentionLevel,
|
370
|
+
Amount sumInsuredAmount
|
371
|
+
)
|
372
|
+
public
|
373
|
+
pure
|
374
|
+
returns(
|
375
|
+
Amount localCollateralAmount,
|
376
|
+
Amount totalCollateralAmount
|
377
|
+
)
|
378
|
+
{
|
379
|
+
// TODO define if only applies to local collateral
|
380
|
+
// TODO add minimalistic implementation
|
381
|
+
|
382
|
+
// assumptions
|
383
|
+
// - collateralizationLevel == 1.0
|
384
|
+
// - retentionLevel == 1.0
|
385
|
+
localCollateralAmount = sumInsuredAmount;
|
386
|
+
totalCollateralAmount = localCollateralAmount;
|
387
|
+
}
|
388
|
+
|
389
|
+
|
390
|
+
function _processStakingFees(
|
391
|
+
Fee memory stakingFee,
|
392
|
+
Amount stakingAmount
|
393
|
+
)
|
394
|
+
internal
|
395
|
+
returns (Amount stakingNetAmount)
|
396
|
+
{
|
397
|
+
stakingNetAmount = stakingAmount;
|
398
|
+
|
399
|
+
// check if any staking fees apply
|
400
|
+
if (FeeLib.gtz(stakingFee)) {
|
401
|
+
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
402
|
+
stakingNetAmount = netAmount;
|
403
|
+
|
404
|
+
// TODO update fee balance for pool
|
405
|
+
}
|
406
|
+
}
|
407
|
+
|
408
|
+
|
409
|
+
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
410
|
+
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
411
|
+
function _collectStakingAmount(
|
412
|
+
InstanceReader instanceReader,
|
413
|
+
NftId poolNftId,
|
414
|
+
address bundleOwner,
|
415
|
+
Amount amount
|
416
|
+
)
|
417
|
+
internal
|
418
|
+
{
|
419
|
+
|
420
|
+
// collecting investor token
|
421
|
+
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
422
|
+
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
423
|
+
address poolWallet = componentInfo.wallet;
|
424
|
+
|
425
|
+
if(amount.gtz()) {
|
426
|
+
tokenHandler.transfer(
|
427
|
+
bundleOwner,
|
428
|
+
poolWallet,
|
429
|
+
amount);
|
430
|
+
}
|
431
|
+
}
|
432
|
+
|
433
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
434
|
+
return POOL();
|
435
|
+
}
|
436
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
|
+
import {PoolService} from "./PoolService.sol";
|
7
|
+
|
8
|
+
contract PoolServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
PoolService private _poolService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with pool service implementation
|
13
|
+
constructor(
|
14
|
+
address authority,
|
15
|
+
address registryAddress,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
18
|
+
ProxyManager(registryAddress)
|
19
|
+
{
|
20
|
+
PoolService poolSrv = new PoolService{salt: salt}();
|
21
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
22
|
+
IVersionable versionable = deployDetermenistic(
|
23
|
+
address(poolSrv),
|
24
|
+
data,
|
25
|
+
salt);
|
26
|
+
|
27
|
+
_poolService = PoolService(address(versionable));
|
28
|
+
}
|
29
|
+
|
30
|
+
//--- view functions ----------------------------------------------------//
|
31
|
+
function getPoolService()
|
32
|
+
external
|
33
|
+
view
|
34
|
+
returns (PoolService poolService)
|
35
|
+
{
|
36
|
+
return _poolService;
|
37
|
+
}
|
38
|
+
|
39
|
+
}
|
@@ -0,0 +1,230 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IApplicationService} from "./IApplicationService.sol";
|
5
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
9
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
10
|
+
import {IPricingService} from "./IPricingService.sol";
|
11
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
|
+
|
13
|
+
import {AmountLib} from "../type/Amount.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
15
|
+
import {zeroTimestamp} from "../type/Timestamp.sol";
|
16
|
+
import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
17
|
+
import {REVOKED} from "../type/StateId.sol";
|
18
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
+
import {ReferralId} from "../type/Referral.sol";
|
20
|
+
import {RiskId} from "../type/RiskId.sol";
|
21
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
22
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
23
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
contract ApplicationService is
|
28
|
+
ComponentVerifyingService,
|
29
|
+
IApplicationService
|
30
|
+
{
|
31
|
+
IDistributionService private _distributionService;
|
32
|
+
IPricingService private _pricingService;
|
33
|
+
IRegistryService private _registryService;
|
34
|
+
|
35
|
+
function _initialize(
|
36
|
+
address owner,
|
37
|
+
bytes memory data
|
38
|
+
)
|
39
|
+
internal
|
40
|
+
virtual override
|
41
|
+
initializer()
|
42
|
+
{
|
43
|
+
(
|
44
|
+
address registryAddress,,
|
45
|
+
//address managerAddress
|
46
|
+
address authority
|
47
|
+
) = abi.decode(data, (address, address, address));
|
48
|
+
|
49
|
+
initializeService(registryAddress, address(0), owner);
|
50
|
+
|
51
|
+
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
|
+
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
53
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
54
|
+
|
55
|
+
registerInterface(type(IApplicationService).interfaceId);
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
function _checkLinkedpplicationParameters(
|
60
|
+
InstanceReader instanceReader,
|
61
|
+
NftId productNftId,
|
62
|
+
RiskId rirskId,
|
63
|
+
ReferralId referralId,
|
64
|
+
NftId bundleNftId
|
65
|
+
)
|
66
|
+
internal
|
67
|
+
virtual
|
68
|
+
view
|
69
|
+
{
|
70
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
71
|
+
|
72
|
+
// TODO check riskId with product
|
73
|
+
|
74
|
+
// TODO check referral with distribution
|
75
|
+
|
76
|
+
// check bundle with pool
|
77
|
+
NftId productPoolNftId = productInfo.poolNftId;
|
78
|
+
NftId bundlePoolNftId = instanceReader.getBundleInfo(bundleNftId).poolNftId;
|
79
|
+
if(bundlePoolNftId != productPoolNftId) {
|
80
|
+
revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, productPoolNftId, bundlePoolNftId);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
function _registerApplication(
|
86
|
+
NftId productNftId,
|
87
|
+
address applicationOwner
|
88
|
+
)
|
89
|
+
internal
|
90
|
+
virtual
|
91
|
+
returns (NftId applicationNftId)
|
92
|
+
{
|
93
|
+
IRegistry.ObjectInfo memory objectInfo = IRegistry.ObjectInfo(
|
94
|
+
NftIdLib.zero(),
|
95
|
+
productNftId,
|
96
|
+
POLICY(),
|
97
|
+
false, // intercepting property for policies is defined on product
|
98
|
+
address(0),
|
99
|
+
applicationOwner,
|
100
|
+
"");
|
101
|
+
|
102
|
+
applicationNftId = _registryService.registerPolicy(objectInfo);
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
function _calculatePremiumAmount(
|
107
|
+
IPolicy.PolicyInfo memory info
|
108
|
+
)
|
109
|
+
internal
|
110
|
+
virtual
|
111
|
+
view
|
112
|
+
returns (Amount premiumAmount)
|
113
|
+
{
|
114
|
+
return AmountLib.toAmount(
|
115
|
+
_pricingService.calculatePremium(
|
116
|
+
info.productNftId,
|
117
|
+
info.riskId,
|
118
|
+
info.sumInsuredAmount,
|
119
|
+
info.lifetime,
|
120
|
+
info.applicationData,
|
121
|
+
info.bundleNftId,
|
122
|
+
info.referralId
|
123
|
+
).premiumAmount);
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
function create(
|
128
|
+
address applicationOwner,
|
129
|
+
RiskId riskId,
|
130
|
+
Amount sumInsuredAmount,
|
131
|
+
Seconds lifetime,
|
132
|
+
NftId bundleNftId,
|
133
|
+
ReferralId referralId,
|
134
|
+
bytes memory applicationData
|
135
|
+
)
|
136
|
+
external
|
137
|
+
virtual
|
138
|
+
returns (NftId applicationNftId)
|
139
|
+
{
|
140
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
141
|
+
|
142
|
+
// check if provided references are valid and linked to calling product contract
|
143
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
144
|
+
_checkLinkedpplicationParameters(
|
145
|
+
instanceReader,
|
146
|
+
productNftId,
|
147
|
+
riskId,
|
148
|
+
referralId,
|
149
|
+
bundleNftId);
|
150
|
+
|
151
|
+
// register application with registry
|
152
|
+
applicationNftId = _registerApplication(productNftId, applicationOwner);
|
153
|
+
|
154
|
+
// create policy info for application
|
155
|
+
IPolicy.PolicyInfo memory applicationInfo = IPolicy.PolicyInfo({
|
156
|
+
productNftId: productNftId,
|
157
|
+
bundleNftId: bundleNftId,
|
158
|
+
referralId: referralId,
|
159
|
+
riskId: riskId,
|
160
|
+
sumInsuredAmount: sumInsuredAmount,
|
161
|
+
premiumAmount: AmountLib.zero(),
|
162
|
+
premiumPaidAmount: AmountLib.zero(),
|
163
|
+
lifetime: lifetime,
|
164
|
+
applicationData: applicationData,
|
165
|
+
processData: "",
|
166
|
+
claimsCount: 0,
|
167
|
+
openClaimsCount: 0,
|
168
|
+
claimAmount: AmountLib.zero(),
|
169
|
+
payoutAmount: AmountLib.zero(),
|
170
|
+
activatedAt: zeroTimestamp(),
|
171
|
+
expiredAt: zeroTimestamp(),
|
172
|
+
closedAt: zeroTimestamp()
|
173
|
+
});
|
174
|
+
|
175
|
+
// TODO consider to provide this amount externally
|
176
|
+
// actual calculation is done 2nd time anyway for premium collection
|
177
|
+
// calculate premium amount
|
178
|
+
applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
|
179
|
+
|
180
|
+
// register application with instance
|
181
|
+
instance.getInstanceStore().createApplication(
|
182
|
+
applicationNftId,
|
183
|
+
applicationInfo);
|
184
|
+
|
185
|
+
// TODO: add logging
|
186
|
+
}
|
187
|
+
|
188
|
+
|
189
|
+
function renew(
|
190
|
+
NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
|
191
|
+
NftId bundleNftId // will likely need a newer bundle for underwriting
|
192
|
+
)
|
193
|
+
external
|
194
|
+
virtual override
|
195
|
+
returns (NftId applicationNftId)
|
196
|
+
{
|
197
|
+
|
198
|
+
}
|
199
|
+
|
200
|
+
|
201
|
+
function adjust(
|
202
|
+
NftId applicationNftId,
|
203
|
+
RiskId riskId,
|
204
|
+
NftId bundleNftId,
|
205
|
+
ReferralId referralId,
|
206
|
+
Amount sumInsuredAmount,
|
207
|
+
Seconds lifetime,
|
208
|
+
bytes memory applicationData
|
209
|
+
)
|
210
|
+
external
|
211
|
+
virtual override
|
212
|
+
{
|
213
|
+
|
214
|
+
}
|
215
|
+
|
216
|
+
function revoke(NftId applicationNftId)
|
217
|
+
external
|
218
|
+
virtual override
|
219
|
+
{
|
220
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
221
|
+
instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
|
222
|
+
}
|
223
|
+
|
224
|
+
// internal functions
|
225
|
+
|
226
|
+
|
227
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
228
|
+
return APPLICATION();
|
229
|
+
}
|
230
|
+
}
|